@onlive.ai/common-121 0.2.163 → 0.2.184
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/audi-dark.theme-B8g9SRrd.d.cts +11 -0
- package/audi-dark.theme-B8g9SRrd.d.ts +11 -0
- package/audi.theme-CbqEkKLD.d.cts +11 -0
- package/audi.theme-CbqEkKLD.d.ts +11 -0
- package/australia.theme-Cs0cygOQ.d.cts +11 -0
- package/australia.theme-Cs0cygOQ.d.ts +11 -0
- package/chunk-UTOVVCSU.js +2 -0
- package/components/asset/asset-modal-portal.cjs +1 -1
- package/components/asset/asset-modal-portal.d.cts +1 -1
- package/components/asset/asset-modal-portal.d.ts +1 -1
- package/components/asset/asset-modal-portal.js +1 -1
- package/components/asset/asset.cjs +4 -4
- package/components/asset/asset.d.cts +1 -1
- package/components/asset/asset.d.ts +1 -1
- package/components/asset/asset.js +13 -13
- package/components/asset/asset.loaders.cjs +1 -1
- package/components/asset/asset.loaders.d.cts +1 -1
- package/components/asset/asset.loaders.d.ts +1 -1
- package/components/asset/asset.loaders.js +1 -1
- package/components/asset/asset.renderer.cjs +4 -4
- package/components/asset/asset.renderer.d.cts +1 -1
- package/components/asset/asset.renderer.d.ts +1 -1
- package/components/asset/asset.renderer.js +10 -10
- package/components/asset/asset.styles.cjs +1 -1
- package/components/asset/asset.styles.d.cts +1 -1
- package/components/asset/asset.styles.d.ts +1 -1
- package/components/asset/asset.styles.js +1 -1
- package/components/asset/asset.types.cjs +1 -1
- package/components/asset/asset.types.d.cts +1 -1
- package/components/asset/asset.types.d.ts +1 -1
- package/components/asset/asset.types.js +1 -1
- package/components/asset/index.cjs +4 -4
- package/components/asset/index.d.cts +1 -1
- package/components/asset/index.d.ts +1 -1
- package/components/asset/index.js +13 -13
- package/components/player/player.cjs +1 -1
- package/components/player/player.d.cts +1 -1
- package/components/player/player.d.ts +1 -1
- package/components/player/player.js +1 -1
- package/components/player/player.styles.cjs +1 -1
- package/components/player/player.styles.d.cts +1 -1
- package/components/player/player.styles.d.ts +1 -1
- package/components/player/player.styles.js +1 -1
- package/components/side-bar/index.cjs +1 -1
- package/components/side-bar/index.d.cts +1 -1
- package/components/side-bar/index.d.ts +1 -1
- package/components/side-bar/index.js +1 -1
- package/components/side-bar/side-bar.cjs +1 -1
- package/components/side-bar/side-bar.d.cts +1 -1
- package/components/side-bar/side-bar.d.ts +1 -1
- package/components/side-bar/side-bar.js +1 -1
- package/components/side-bar/side-bar.styles.cjs +1 -1
- package/components/side-bar/side-bar.styles.d.cts +1 -1
- package/components/side-bar/side-bar.styles.d.ts +1 -1
- package/components/side-bar/side-bar.styles.js +1 -1
- package/components/side-bar/side-bar.types.cjs +1 -1
- package/components/side-bar/side-bar.types.d.cts +1 -1
- package/components/side-bar/side-bar.types.d.ts +1 -1
- package/components/side-bar/side-bar.types.js +1 -1
- package/components/upload/index.cjs +1 -1
- package/components/upload/index.d.cts +1 -1
- package/components/upload/index.d.ts +1 -1
- package/components/upload/index.js +1 -1
- package/components/upload/upload.cjs +1 -1
- package/components/upload/upload.d.cts +1 -1
- package/components/upload/upload.d.ts +1 -1
- package/components/upload/upload.js +1 -1
- package/components/upload/upload.styles.cjs +1 -1
- package/components/upload/upload.styles.d.cts +1 -1
- package/components/upload/upload.styles.d.ts +1 -1
- package/components/upload/upload.styles.js +1 -1
- package/components/upload/upload.types.cjs +1 -1
- package/components/upload/upload.types.d.cts +1 -1
- package/components/upload/upload.types.d.ts +1 -1
- package/components/upload/upload.types.js +1 -1
- package/cuernavaca.theme-0UFX1MeG.d.cts +11 -0
- package/cuernavaca.theme-0UFX1MeG.d.ts +11 -0
- package/cupra-diagonal.theme-DVrQr2iv.d.cts +11 -0
- package/cupra-diagonal.theme-DVrQr2iv.d.ts +11 -0
- package/cupra-events.theme-D2xJeafa.d.cts +11 -0
- package/cupra-events.theme-D2xJeafa.d.ts +11 -0
- package/cupra.theme-CqgKWLYE.d.cts +11 -0
- package/cupra.theme-CqgKWLYE.d.ts +11 -0
- package/germany.theme-CnwD309P.d.cts +11 -0
- package/germany.theme-CnwD309P.d.ts +11 -0
- package/hyundai.theme-E2ZiyZmJ.d.cts +11 -0
- package/hyundai.theme-E2ZiyZmJ.d.ts +11 -0
- package/index.cjs +276 -276
- package/index.d.cts +4134 -3
- package/index.d.ts +4134 -3
- package/index.js +280 -280
- package/italy.theme-BjfPp7rU.d.cts +11 -0
- package/italy.theme-BjfPp7rU.d.ts +11 -0
- package/magimix.theme-7cd19P1X.d.cts +11 -0
- package/magimix.theme-7cd19P1X.d.ts +11 -0
- package/media-SB4RDT6E.js +2 -0
- package/onlive-ai.theme-CASPoRHr.d.cts +11 -0
- package/onlive-ai.theme-CASPoRHr.d.ts +11 -0
- package/onlive.theme-nKZQHG1I.d.cts +11 -0
- package/onlive.theme-nKZQHG1I.d.ts +11 -0
- package/package.json +13 -9
- package/react/components/asset/Asset.cjs +1 -1
- package/react/components/asset/Asset.jsx +1 -1
- package/react/components/side-bar/SideBar.cjs +1 -1
- package/react/components/side-bar/SideBar.jsx +1 -1
- package/react/components/upload/Upload.cjs +1 -1
- package/react/components/upload/Upload.jsx +1 -1
- package/seat-cupra.theme-B4ylEjOZ.d.cts +11 -0
- package/seat-cupra.theme-B4ylEjOZ.d.ts +11 -0
- package/services/audio.service.cjs +1 -1
- package/services/audio.service.d.cts +1 -1
- package/services/audio.service.d.ts +1 -1
- package/services/audio.service.js +1 -1
- package/services/conversation/conversation.service.cjs +2 -2
- package/services/conversation/conversation.service.d.cts +26 -3
- package/services/conversation/conversation.service.d.ts +26 -3
- package/services/conversation/conversation.service.js +2 -2
- package/services/conversation/conversation.types.cjs +2 -2
- package/services/conversation/conversation.types.d.cts +120 -4
- package/services/conversation/conversation.types.d.ts +120 -4
- package/services/conversation/conversation.types.js +2 -2
- package/services/conversation/index.cjs +2 -2
- package/services/conversation/index.d.cts +19 -2
- package/services/conversation/index.d.ts +19 -2
- package/services/conversation/index.js +2 -2
- package/services/conversation/mock/actor/agent.cjs +2 -0
- package/services/conversation/mock/actor/agent.d.cts +202 -0
- package/services/conversation/mock/actor/agent.d.ts +202 -0
- package/services/conversation/mock/actor/agent.js +2 -0
- package/services/conversation/mock/actor/index.cjs +2 -0
- package/services/conversation/mock/actor/index.d.cts +4 -0
- package/services/conversation/mock/actor/index.d.ts +4 -0
- package/services/conversation/mock/actor/index.js +2 -0
- package/services/conversation/mock/actor/strategies.cjs +2 -0
- package/services/conversation/mock/actor/strategies.d.cts +31 -0
- package/services/conversation/mock/actor/strategies.d.ts +31 -0
- package/services/conversation/mock/actor/strategies.js +2 -0
- package/services/conversation/mock/errors.cjs +2 -0
- package/services/conversation/mock/errors.d.cts +125 -0
- package/services/conversation/mock/errors.d.ts +125 -0
- package/services/conversation/mock/errors.js +2 -0
- package/services/conversation/mock/events.cjs +2 -0
- package/services/conversation/mock/events.d.cts +253 -0
- package/services/conversation/mock/events.d.ts +253 -0
- package/services/conversation/mock/events.js +2 -0
- package/services/conversation/mock/factory.cjs +2 -0
- package/services/conversation/mock/factory.d.cts +134 -0
- package/services/conversation/mock/factory.d.ts +134 -0
- package/services/conversation/mock/factory.js +2 -0
- package/services/conversation/mock/fixtures.cjs +2 -0
- package/services/conversation/mock/fixtures.d.cts +191 -0
- package/services/conversation/mock/fixtures.d.ts +191 -0
- package/services/conversation/mock/fixtures.js +2 -0
- package/services/conversation/mock/generators.cjs +2 -0
- package/services/conversation/mock/generators.d.cts +123 -0
- package/services/conversation/mock/generators.d.ts +123 -0
- package/services/conversation/mock/generators.js +2 -0
- package/services/conversation/mock/index.cjs +2 -0
- package/services/conversation/mock/index.d.cts +24 -0
- package/services/conversation/mock/index.d.ts +24 -0
- package/services/conversation/mock/index.js +2 -0
- package/services/conversation/mock/livekit/index.cjs +2 -0
- package/services/conversation/mock/livekit/index.d.cts +7 -0
- package/services/conversation/mock/livekit/index.d.ts +7 -0
- package/services/conversation/mock/livekit/index.js +2 -0
- package/services/conversation/mock/livekit/local-participant.cjs +2 -0
- package/services/conversation/mock/livekit/local-participant.d.cts +204 -0
- package/services/conversation/mock/livekit/local-participant.d.ts +204 -0
- package/services/conversation/mock/livekit/local-participant.js +2 -0
- package/services/conversation/mock/livekit/participant.cjs +2 -0
- package/services/conversation/mock/livekit/participant.d.cts +171 -0
- package/services/conversation/mock/livekit/participant.d.ts +171 -0
- package/services/conversation/mock/livekit/participant.js +2 -0
- package/services/conversation/mock/livekit/room.cjs +2 -0
- package/services/conversation/mock/livekit/room.d.cts +292 -0
- package/services/conversation/mock/livekit/room.d.ts +292 -0
- package/services/conversation/mock/livekit/room.js +2 -0
- package/services/conversation/mock/livekit/streams.cjs +2 -0
- package/services/conversation/mock/livekit/streams.d.cts +190 -0
- package/services/conversation/mock/livekit/streams.d.ts +190 -0
- package/services/conversation/mock/livekit/streams.js +2 -0
- package/services/conversation/mock/livekit/tracks.cjs +2 -0
- package/services/conversation/mock/livekit/tracks.d.cts +149 -0
- package/services/conversation/mock/livekit/tracks.d.ts +149 -0
- package/services/conversation/mock/livekit/tracks.js +2 -0
- package/services/conversation/mock/media.cjs +2 -0
- package/services/conversation/mock/media.d.cts +174 -0
- package/services/conversation/mock/media.d.ts +174 -0
- package/services/conversation/mock/media.js +2 -0
- package/services/conversation/mock/service.cjs +2 -0
- package/services/conversation/mock/service.d.cts +305 -0
- package/services/conversation/mock/service.d.ts +305 -0
- package/services/conversation/mock/service.js +2 -0
- package/services/conversation/mock/service.test.cjs +2 -0
- package/services/conversation/mock/service.test.d.cts +1 -0
- package/services/conversation/mock/service.test.d.ts +1 -0
- package/services/conversation/mock/service.test.js +2 -0
- package/services/conversation/mock/state.cjs +2 -0
- package/services/conversation/mock/state.d.cts +296 -0
- package/services/conversation/mock/state.d.ts +296 -0
- package/services/conversation/mock/state.js +2 -0
- package/services/conversation/mock/storybook.cjs +2 -0
- package/services/conversation/mock/storybook.d.cts +197 -0
- package/services/conversation/mock/storybook.d.ts +197 -0
- package/services/conversation/mock/storybook.js +2 -0
- package/services/conversation/mock/types.cjs +2 -0
- package/services/conversation/mock/types.d.cts +442 -0
- package/services/conversation/mock/types.d.ts +442 -0
- package/services/conversation/mock/types.js +1 -0
- package/services/faqs/faqs.service.cjs +1 -1
- package/services/faqs/faqs.service.d.cts +1 -1
- package/services/faqs/faqs.service.d.ts +1 -1
- package/services/faqs/faqs.service.js +1 -1
- package/services/faqs/faqs.types.cjs +1 -1
- package/services/faqs/faqs.types.d.cts +1 -1
- package/services/faqs/faqs.types.d.ts +1 -1
- package/services/faqs/faqs.types.js +1 -1
- package/services/faqs/index.cjs +1 -1
- package/services/faqs/index.d.cts +1 -1
- package/services/faqs/index.d.ts +1 -1
- package/services/faqs/index.js +1 -1
- package/services/file/file.service.cjs +1 -1
- package/services/file/file.service.d.cts +1 -1
- package/services/file/file.service.d.ts +1 -1
- package/services/file/file.service.js +1 -1
- package/services/file/file.types.cjs +1 -1
- package/services/file/file.types.d.cts +1 -1
- package/services/file/file.types.d.ts +1 -1
- package/services/file/file.types.js +1 -1
- package/services/file/index.cjs +1 -1
- package/services/file/index.d.cts +1 -1
- package/services/file/index.d.ts +1 -1
- package/services/file/index.js +1 -1
- package/services/firebase/firebase-api.cjs +1 -1
- package/services/firebase/firebase-api.d.cts +1 -1
- package/services/firebase/firebase-api.d.ts +1 -1
- package/services/firebase/firebase-api.js +1 -1
- package/services/multimedia/config.example.cjs +1 -1
- package/services/multimedia/config.example.d.cts +1 -1
- package/services/multimedia/config.example.d.ts +1 -1
- package/services/multimedia/config.example.js +1 -1
- package/services/multimedia/index.cjs +1 -1
- package/services/multimedia/index.d.cts +1 -1
- package/services/multimedia/index.d.ts +1 -1
- package/services/multimedia/index.js +1 -1
- package/services/multimedia/multimedia.service.cjs +1 -1
- package/services/multimedia/multimedia.service.d.cts +1 -1
- package/services/multimedia/multimedia.service.d.ts +1 -1
- package/services/multimedia/multimedia.service.js +1 -1
- package/services/multimedia/multimedia.types.cjs +1 -1
- package/services/multimedia/multimedia.types.d.cts +1 -1
- package/services/multimedia/multimedia.types.d.ts +1 -1
- package/services/multimedia/multimedia.types.js +1 -1
- package/services/product/index.cjs +1 -1
- package/services/product/index.d.cts +1 -1
- package/services/product/index.d.ts +1 -1
- package/services/product/index.js +1 -1
- package/services/product/product.service.cjs +1 -1
- package/services/product/product.service.d.cts +1 -1
- package/services/product/product.service.d.ts +1 -1
- package/services/product/product.service.js +1 -1
- package/services/product/product.types.cjs +1 -1
- package/services/product/product.types.d.cts +1 -1
- package/services/product/product.types.d.ts +1 -1
- package/services/product/product.types.js +1 -1
- package/services/request.provider.cjs +1 -1
- package/services/request.provider.d.cts +1 -1
- package/services/request.provider.d.ts +1 -1
- package/services/request.provider.js +1 -1
- package/services/session.service.cjs +2 -2
- package/services/session.service.d.cts +1 -1
- package/services/session.service.d.ts +1 -1
- package/services/session.service.js +2 -2
- package/services/upload/index.cjs +1 -1
- package/services/upload/index.d.cts +1 -1
- package/services/upload/index.d.ts +1 -1
- package/services/upload/index.js +1 -1
- package/services/upload/upload.service.cjs +1 -1
- package/services/upload/upload.service.d.cts +1 -1
- package/services/upload/upload.service.d.ts +1 -1
- package/services/upload/upload.service.js +1 -1
- package/themes/custom/audi-dark.theme.cjs +920 -0
- package/themes/custom/audi-dark.theme.d.cts +3 -0
- package/themes/custom/audi-dark.theme.d.ts +3 -0
- package/themes/custom/audi-dark.theme.js +920 -0
- package/themes/custom/audi.theme.cjs +777 -0
- package/themes/custom/audi.theme.d.cts +3 -0
- package/themes/custom/audi.theme.d.ts +3 -0
- package/themes/custom/audi.theme.js +777 -0
- package/themes/custom/australia.theme.cjs +386 -0
- package/themes/custom/australia.theme.d.cts +3 -0
- package/themes/custom/australia.theme.d.ts +3 -0
- package/themes/custom/australia.theme.js +386 -0
- package/themes/custom/cuernavaca.theme.cjs +196 -0
- package/themes/custom/cuernavaca.theme.d.cts +3 -0
- package/themes/custom/cuernavaca.theme.d.ts +3 -0
- package/themes/custom/cuernavaca.theme.js +196 -0
- package/themes/custom/cupra-diagonal.theme.cjs +1029 -0
- package/themes/custom/cupra-diagonal.theme.d.cts +3 -0
- package/themes/custom/cupra-diagonal.theme.d.ts +3 -0
- package/themes/custom/cupra-diagonal.theme.js +1029 -0
- package/themes/custom/cupra-events.theme.cjs +555 -0
- package/themes/custom/cupra-events.theme.d.cts +3 -0
- package/themes/custom/cupra-events.theme.d.ts +3 -0
- package/themes/custom/cupra-events.theme.js +555 -0
- package/themes/custom/cupra.theme.cjs +147 -0
- package/themes/custom/cupra.theme.d.cts +3 -0
- package/themes/custom/cupra.theme.d.ts +3 -0
- package/themes/custom/cupra.theme.js +147 -0
- package/themes/custom/germany.theme.cjs +716 -0
- package/themes/custom/germany.theme.d.cts +3 -0
- package/themes/custom/germany.theme.d.ts +3 -0
- package/themes/custom/germany.theme.js +716 -0
- package/themes/custom/hyundai.theme.cjs +294 -0
- package/themes/custom/hyundai.theme.d.cts +3 -0
- package/themes/custom/hyundai.theme.d.ts +3 -0
- package/themes/custom/hyundai.theme.js +294 -0
- package/themes/custom/italy.theme.cjs +850 -0
- package/themes/custom/italy.theme.d.cts +3 -0
- package/themes/custom/italy.theme.d.ts +3 -0
- package/themes/custom/italy.theme.js +850 -0
- package/themes/custom/magimix.theme.cjs +119 -0
- package/themes/custom/magimix.theme.d.cts +3 -0
- package/themes/custom/magimix.theme.d.ts +3 -0
- package/themes/custom/magimix.theme.js +119 -0
- package/themes/custom/onlive-ai.theme.cjs +74 -0
- package/themes/custom/onlive-ai.theme.d.cts +3 -0
- package/themes/custom/onlive-ai.theme.d.ts +3 -0
- package/themes/custom/onlive-ai.theme.js +74 -0
- package/themes/custom/onlive.theme.cjs +33 -0
- package/themes/custom/onlive.theme.d.cts +3 -0
- package/themes/custom/onlive.theme.d.ts +3 -0
- package/themes/custom/onlive.theme.js +33 -0
- package/themes/custom/seat-cupra.theme.cjs +478 -0
- package/themes/custom/seat-cupra.theme.d.cts +3 -0
- package/themes/custom/seat-cupra.theme.d.ts +3 -0
- package/themes/custom/seat-cupra.theme.js +478 -0
- package/themes/dark.cjs +13 -2
- package/themes/dark.d.cts +1 -1
- package/themes/dark.d.ts +1 -1
- package/themes/dark.js +12 -1
- package/themes/light.cjs +13 -2
- package/themes/light.d.cts +1 -1
- package/themes/light.d.ts +1 -1
- package/themes/light.js +12 -1
- package/types/globals.cjs +1 -1
- package/types/globals.d.cts +1 -1
- package/types/globals.d.ts +1 -1
- package/types/globals.js +1 -1
- package/types/tracking-options.cjs +1 -1
- package/types/tracking-options.d.cts +1 -1
- package/types/tracking-options.d.ts +1 -1
- package/types/tracking-options.js +1 -1
- package/utils/adopt-styles.cjs +1 -1
- package/utils/adopt-styles.d.cts +1 -1
- package/utils/adopt-styles.d.ts +1 -1
- package/utils/adopt-styles.js +1 -1
- package/utils/apply-optional-styles.cjs +6548 -0
- package/utils/apply-optional-styles.d.cts +47 -0
- package/utils/apply-optional-styles.d.ts +47 -0
- package/utils/apply-optional-styles.js +6548 -0
- package/utils/browser-preferences.cjs +1 -1
- package/utils/browser-preferences.d.cts +1 -1
- package/utils/browser-preferences.d.ts +1 -1
- package/utils/browser-preferences.js +1 -1
- package/utils/classify-media.cjs +1 -1
- package/utils/classify-media.d.cts +1 -1
- package/utils/classify-media.d.ts +1 -1
- package/utils/classify-media.js +1 -1
- package/utils/decorators.cjs +1 -1
- package/utils/decorators.d.cts +1 -1
- package/utils/decorators.d.ts +1 -1
- package/utils/decorators.js +1 -1
- package/utils/detected-lang.cjs +1 -1
- package/utils/detected-lang.d.cts +1 -1
- package/utils/detected-lang.d.ts +1 -1
- package/utils/detected-lang.js +1 -1
- package/utils/fullscreen.cjs +1 -1
- package/utils/fullscreen.d.cts +1 -1
- package/utils/fullscreen.d.ts +1 -1
- package/utils/fullscreen.js +1 -1
- package/utils/insert-script.cjs +1 -1
- package/utils/insert-script.d.cts +1 -1
- package/utils/insert-script.d.ts +1 -1
- package/utils/insert-script.js +1 -1
- package/utils/is-map-compatible.cjs +1 -1
- package/utils/is-map-compatible.d.cts +1 -1
- package/utils/is-map-compatible.d.ts +1 -1
- package/utils/is-map-compatible.js +1 -1
- package/utils/markdown.cjs +1 -1
- package/utils/markdown.d.cts +1 -1
- package/utils/markdown.d.ts +1 -1
- package/utils/markdown.js +1 -1
- package/utils/merge.cjs +1 -1
- package/utils/merge.d.cts +1 -1
- package/utils/merge.d.ts +1 -1
- package/utils/merge.js +1 -1
- package/utils/multiband-track-volume.cjs +1 -1
- package/utils/multiband-track-volume.d.cts +1 -1
- package/utils/multiband-track-volume.d.ts +1 -1
- package/utils/multiband-track-volume.js +1 -1
- package/utils/onlive-url-params.cjs +1 -1
- package/utils/onlive-url-params.d.cts +1 -1
- package/utils/onlive-url-params.d.ts +1 -1
- package/utils/onlive-url-params.js +1 -1
- package/utils/pretty-distance.cjs +1 -1
- package/utils/pretty-distance.d.cts +1 -1
- package/utils/pretty-distance.d.ts +1 -1
- package/utils/pretty-distance.js +1 -1
- package/utils/pretty-time.cjs +1 -1
- package/utils/pretty-time.d.cts +1 -1
- package/utils/pretty-time.d.ts +1 -1
- package/utils/pretty-time.js +1 -1
- package/utils/random-string.cjs +1 -1
- package/utils/random-string.d.cts +1 -1
- package/utils/random-string.d.ts +1 -1
- package/utils/random-string.js +1 -1
- package/utils/resource-type.cjs +1 -1
- package/utils/resource-type.d.cts +1 -1
- package/utils/resource-type.d.ts +1 -1
- package/utils/resource-type.js +1 -1
- package/utils/round-number.cjs +1 -1
- package/utils/round-number.d.cts +1 -1
- package/utils/round-number.d.ts +1 -1
- package/utils/round-number.js +1 -1
- package/utils/safe-html.cjs +2 -2
- package/utils/safe-html.d.cts +9 -2
- package/utils/safe-html.d.ts +9 -2
- package/utils/safe-html.js +2 -2
- package/utils/sanitize.cjs +1 -1
- package/utils/sanitize.d.cts +1 -1
- package/utils/sanitize.d.ts +1 -1
- package/utils/sanitize.js +1 -1
- package/utils/spread.cjs +1 -1
- package/utils/spread.d.cts +1 -1
- package/utils/spread.d.ts +1 -1
- package/utils/spread.js +1 -1
- package/utils/watch.cjs +1 -1
- package/utils/watch.d.cts +1 -1
- package/utils/watch.d.ts +1 -1
- package/utils/watch.js +1 -1
- package/react/components/asset/Asset.d.cts +0 -33
- package/react/components/asset/Asset.d.ts +0 -33
- package/react/components/side-bar/SideBar.d.cts +0 -37
- package/react/components/side-bar/SideBar.d.ts +0 -37
- package/react/components/upload/Upload.d.cts +0 -23
- package/react/components/upload/Upload.d.ts +0 -23
package/index.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! @onlive.ai/common-121 v0.2.
|
|
2
|
-
"use strict";var ye=Object.create;var I=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,we=Object.prototype.hasOwnProperty;var Ae=(a,t)=>{for(var e in t)I(a,e,{get:t[e],enumerable:!0})},G=(a,t,e,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of _e(t))!we.call(a,s)&&s!==e&&I(a,s,{get:()=>t[s],enumerable:!(o=B(t,s))||o.enumerable});return a};var f=(a,t,e)=>(e=a!=null?ye(xe(a)):{},G(t||!a||!a.__esModule?I(e,"default",{value:a,enumerable:!0}):e,a)),ke=a=>G(I({},"__esModule",{value:!0}),a),d=(a,t,e,o)=>{for(var s=o>1?void 0:o?B(t,e):t,i=a.length-1,n;i>=0;i--)(n=a[i])&&(s=(o?n(t,e,s):n(s))||s);return o&&s&&I(t,e,s),s};var Te={};Ae(Te,{Asset:()=>pe,OSBAsset:()=>g,OSBSideBar:()=>p,OSBUpload:()=>j,SideBar:()=>ge,Upload:()=>be});module.exports=ke(Te);var S=require("lit"),b=require("lit/decorators.js"),ae=require("lit/directives/class-map.js");var Se=(a,t)=>(customElements.get(a)?console.debug(`Custom element <${a}> is already defined, skipping definition of ${t.name}.`):window.customElements.define(a,t),t),ze=(a,t)=>{let{kind:e,elements:o}=t;return{kind:e,elements:o,finisher(s){customElements.get(a)||window.customElements.define(a,s)}}},w=a=>t=>typeof t=="function"?Se(a,t):ze(a,t);var C=class a{constructor(t){this.config=t}static initialize(t){return new a(t)}getBaseUrl(){return`${this.config.baseUrl}`}getHeaders(){return{"Content-Type":"application/json"}}async makeRequest(t,e={}){let o=`${this.getBaseUrl()}${t}`,s=await fetch(o,{...e,headers:{...this.getHeaders(),...e.headers}});if(!s.ok)throw new Error(`FAQs API error: ${s.status} ${s.statusText}`);return s.json()}async getSettingsByOrganization(t,e){try{let o=new URLSearchParams;e&&o.append("userGroupId",e);let s=o.toString(),i=`${this.getBaseUrl()}/settings/organization/${t}${s?`?${s}`:""}`,n=await fetch(i,{method:"GET",headers:this.getHeaders(),credentials:"include"});if(n.status===404)return null;if(!n.ok)throw new Error(`Failed to fetch settings: ${n.statusText}`);return await n.json()}catch(o){return console.error("Error fetching settings:",o),null}}async getFaqs(t={}){let e=new URLSearchParams;if(t.search&&e.append("search",t.search),t.organizationId&&e.append("organizationId",t.organizationId),t.groupId&&e.append("groupId",t.groupId),t.isActive!==void 0&&e.append("isActive",t.isActive.toString()),t.page&&e.append("page",t.page.toString()),t.limit&&e.append("limit",t.limit.toString()),t.sortBy&&e.append("sortBy",t.sortBy),t.sortOrder&&e.append("sortOrder",t.sortOrder),t.extraFilters){for(let[i,n]of Object.entries(t.extraFilters))if(n&&(Array.isArray(n)?n.length>0:n.toString().trim()!=="")){let c=Array.isArray(n)?n.join(","):n.toString();e.append(`extra_${i}`,c)}}let o=e.toString(),s=`/faqs${o?`?${o}`:""}`;return this.makeRequest(s)}async getFaqById(t){return this.makeRequest(`/faqs/${t}`,{})}};var T=async(a,t)=>{let e=await fetch(a,t);if(!e.ok){let o=await e.json().catch(()=>({}));throw new Error(JSON.stringify({status:e.status,statusText:e.statusText,...o}))}return e&&e.json()};var F=class a{constructor(t){this.config=t,this.enableUpload=t.enableUpload||!1}static getInstance(t){if(!a.instance&&t&&(a.instance=new a(t)),!a.instance)throw new Error("FileService must be initialized with config first");return a.instance}static initialize(t){return a.instance=new a(t),a.instance}async uploadFile(t,e={}){try{let o=await this.requestSignedUrl({filename:t.name,description:e.description,loadDirection:"up",bucketType:e.bucketType||"conversations",path:e.path||".temp",mimeType:t.type});return await this.uploadToSignedUrl(o.data.signedUrlData.signedUrl,t),{success:!0,id:o.data.file.id,name:o.data.file.name,url:o.data.file.url,type:o.data.file.type}}catch(o){return console.error("Error uploading file:",o),{success:!1,error:o instanceof Error?o.message:"Unknown error"}}}async requestSignedUrl(t){let e=`${this.config.baseUrl}/files/upload-url`;return this.makeRequest(e,{method:"POST",body:JSON.stringify(t)})}async uploadToSignedUrl(t,e){let o=await fetch(t,{method:"PUT",body:e,headers:{"Content-Type":e.type}});if(!o.ok){let s=await o.text().catch(()=>"No response");throw new Error(`Upload failed with status: ${o.status}. Response: ${s}`)}}async uploadFileWithRetry(t,e={}){let o=e.maxRetries||3,s=null;for(let i=1;i<=o;i++)try{let n=await this.uploadFile(t,e);if(n.success)return n;throw new Error(n.error||"Upload failed")}catch(n){if(s=n instanceof Error?n:new Error("Unknown error"),i===o)break;let c=2**i*1e3;await new Promise(v=>setTimeout(v,c))}return{success:!1,error:s?.message||"Upload failed after retries"}}async getFileById(t){let e=`${this.config.baseUrl}/files/${t}`,o=await this.makeRequest(e);if(!o.success)throw new Error("Failed to get file");return o.data}async makeRequest(t,e){let o={"Content-Type":"application/json"};return this.config.organizationId&&(o["X-Onlive-Organization-Id"]=this.config.organizationId),e?.headers&&Object.assign(o,e.headers),T(t,{...e,headers:o})}updateConfig(t){this.config={...this.config,...t}}getConfig(){return{...this.config}}};var E=class a{constructor(t){this.config=t}static getInstance(t){if(!a.instance&&t&&(a.instance=new a(t)),!a.instance)throw new Error("MultimediaService must be initialized with config first");return a.instance}static initialize(t){return a.instance=new a(t),a.instance}async getImages(t={}){let e=new URLSearchParams({type:"image",page:(t.page||1).toString(),limit:(t.limit||12).toString(),...t.search&&{search:t.search},...t.labels&&{labels:t.labels.join(",")},...t.includeSecureToken&&{includeSecureToken:t.includeSecureToken.toString()}});this.appendExtraFilters(e,t.extraFilters);let o=`${this.config.baseUrl}/multimedia?${e}`;return this.makeRequest(o)}async getVideos(t={}){let e=new URLSearchParams({type:"video",page:(t.page||1).toString(),limit:(t.limit||12).toString(),...t.search&&{search:t.search},...t.labels&&{labels:t.labels.join(",")},...t.includeSecureToken&&{includeSecureToken:t.includeSecureToken.toString()}});this.appendExtraFilters(e,t.extraFilters);let o=`${this.config.baseUrl}/multimedia?${e}`;return this.makeRequest(o)}async getPresentations(t={}){let e=new URLSearchParams({type:"presentation",page:(t.page||1).toString(),limit:(t.limit||12).toString(),...t.search&&{search:t.search},...t.labels&&{labels:t.labels.join(",")},...t.includeSecureToken&&{includeSecureToken:t.includeSecureToken.toString()}});this.appendExtraFilters(e,t.extraFilters);let o=`${this.config.baseUrl}/multimedia?${e}`;return this.makeRequest(o)}async getAllMultimedia(t={}){let[e,o,s]=await Promise.all([this.getImages(t),this.getVideos(t),this.getPresentations(t)]);return{images:e,videos:o,presentations:s}}async getMultimediaByToken(t){let e=`${this.config.baseUrl}/multimedia/secure-token/${t}`;return this.makeRequest(e,!1)}async searchMultimedia(t,e){let o={search:t,page:1,limit:50,includeSecureToken:!0};if(e)return this.getMultimediaByType(e,o);let[s,i,n]=await Promise.all([this.getImages(o),this.getVideos(o),this.getPresentations(o)]),c=[...s.items,...i.items,...n.items];return{items:c,total:c.length,count:c.length,currentPage:1,totalPages:1}}async getMultimediaByType(t,e){switch(t){case"image":return this.getImages(e);case"video":return this.getVideos(e);case"presentation":return this.getPresentations(e);default:throw new Error(`Invalid multimedia type: ${t}`)}}appendExtraFilters(t,e){if(e){for(let[o,s]of Object.entries(e))if(s&&(Array.isArray(s)?s.length>0:s.toString().trim()!=="")){let i=Array.isArray(s)?s.join(","):s.toString();t.append(`extra_${o}`,i)}}}async makeRequest(t,e=!0){let o={"Content-Type":"application/json","X-Onlive-Organization-Id":this.config.organizationId};return T(t,{method:"GET",headers:o,credentials:e?"include":void 0})}updateConfig(t){this.config={...this.config,...t}}getConfig(){return{...this.config}}};var A=class a{constructor(t){this.config=t}static getInstance(t){if(!a.instance&&t&&(a.instance=new a(t)),!a.instance)throw new Error("ProductService must be initialized with config first");return a.instance}static initialize(t){return a.instance=new a(t),a.instance}async getProducts(t={}){let e=new URLSearchParams({...t.title&&{title:t.title},...t.search&&{search:t.search},...t.category&&{category:t.category},...t.tags&&{tags:t.tags.join(",")},...t.sortBy&&{sortBy:t.sortBy},...t.sortOrder&&{sortOrder:t.sortOrder},...t.minPrice&&{minPrice:t.minPrice.toString()},...t.maxPrice&&{maxPrice:t.maxPrice.toString()},...t.inStock!==void 0&&{inStock:t.inStock.toString()},...t.offset&&{offset:t.offset.toString()},...t.includeSecureToken&&{includeSecureToken:t.includeSecureToken.toString()}});t.extraFields&&Object.keys(t.extraFields).length>0&&e.append("extraFields",JSON.stringify(t.extraFields));let o=`${this.config.baseUrl}/products?${e}`;return this.makeRequest(o,!0)}async getProductByToken(t){let e=`${this.config.baseUrl}/products/secure-token/${t}`;return this.makeRequest(e)}async searchProducts(t,e={}){return this.getProducts({...e,search:t})}async makeRequest(t,e=!1){let o={"Content-Type":"application/json","X-Onlive-Organization-Id":this.config.organizationId};return T(t,{method:"GET",headers:o,credentials:e?"include":"same-origin"})}updateConfig(t){this.config={...this.config,...t}}getConfig(){return{...this.config}}};var R=class{constructor(t){t?.multimediaService&&(this.multimediaService=E.initialize(t.multimediaService)),t?.faqsService&&(this.faqsService=C.initialize(t.faqsService)),t?.productService&&(this.productService=A.initialize(t.productService)),t?.fileService&&(this.fileService=F.initialize(t.fileService))}async loadAsset(t,e){switch(t){case"multimedia":return this.loadMultimediaAsset(e);case"product":return this.loadProductAsset(e);case"faq":return this.loadFaqAsset(e);case"file":return this.loadFileAsset(e);default:throw new Error(`Unsupported asset type: ${t}`)}}async loadMultimediaAsset(t){if(!this.multimediaService)throw new Error("MultimediaService not configured");let e=await this.multimediaService.getMultimediaByToken(t);if(!e)throw new Error("Multimedia not found");return{id:e.id,name:e.name,description:e.description||"",url:e.url,thumbnail:e.animatedCoverUrl||e.url,type:"multimedia",externalId:e.id,format:e.format,size:e.size||void 0,duration:e.duration||void 0,vodUrl:e.vodUrl||void 0,slides:e.slides||[],labels:e.labels,animatedCoverUrl:e.animatedCoverUrl||void 0,metadata:{organizationId:e.organizationId,status:e.status,createdAt:e.createdAt,updatedAt:e.updatedAt}}}async loadProductAsset(t){if(!this.productService)throw new Error("MultimediaService not configured");let e=await this.productService.getProductByToken(t);if(!e)throw new Error("Product not found");return{id:e.id,name:e.name,description:e.description,url:e.url,thumbnail:e.images?.[0],type:"product",externalId:e.externalId,price:e.price,currency:e.currency,category:e.category,tags:e.tags,images:e.images,variants:e.variants?.map(o=>({id:o.id,externalId:o.externalId,price:o.price,currency:o.currency,images:o.images})),options:e.options,metadata:{providerType:e.providerType,providerId:e.providerId,discountType:e.discountType,discount:e.discount,stock:e.stock,broken:e.broken}}}async loadFaqAsset(t){if(!this.faqsService)throw new Error("FaqsService not configured");let e=await this.faqsService.getFaqById(t);return{id:e.id,name:e.question,description:e.answer,url:`#faq-${e.id}`,type:"faq",externalId:e.id,question:e.question,answer:e.answer,priority:e.priority,isActive:e.isActive,metadata:{organizationId:e.organizationId,createdAt:e.createdAt,updatedAt:e.updatedAt}}}async loadFileAsset(t){if(!this.fileService)throw new Error("FileService not configured");let e=await this.fileService.getFileById(t),o=e.type||"",s=o.startsWith("video/"),i=o.startsWith("image/");return{id:e.id,name:e.name,description:e.description||"",url:e.url,thumbnail:i?e.url:void 0,type:"file",externalId:e.id,format:o,size:e.metadata?.size,duration:void 0,vodUrl:s?e.url:void 0,labels:[],animatedCoverUrl:s?e.url:void 0,metadata:{path:e.metadata?.path,bucketType:e.metadata?.bucketType,loadDirection:e.metadata?.loadDirection,createdAt:e.createdAt,updatedAt:e.updatedAt}}}};var r=require("lit"),oe=require("lit/directives/class-map.js"),P=require("lit/directives/if-defined.js"),_=require("lit/directives/when.js");var K=require("lit/directives/unsafe-html.js");var O=f(require("dompurify"),1),Ce={ALLOWED_TAGS:["p","br","span","b","strong","i","em","u","s","del","ul","ol","li","code","pre","a","h1","h2","h3","h4","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel","title","aria-label","role","colspan","rowspan"],FORCE_HTTPS:!0,ALLOW_DATA_ATTR:!1};O.default.addHook("afterSanitizeAttributes",a=>{"target"in a&&a.target==="_blank"&&a.setAttribute("rel","noopener noreferrer")});var Q=(a,t=Ce)=>O.default.sanitize(a,t);function X(a=""){return(0,K.unsafeHTML)(Q(a,{ADD_ATTR:["target","rel"],ADD_TAGS:["ol-"],CUSTOM_ELEMENT_HANDLING:{tagNameCheck:/^ol-/,attributeNameCheck:null,allowCustomizedBuiltInElements:!0}}))}var Ze=require("@onlive.ai/ui/dist/components/button/button.js"),et=require("@onlive.ai/ui/dist/components/icon/icon.js"),q=require("lit"),D=require("lit/decorators.js"),ee=require("lit/directives/repeat.js"),te=f(require("video.js"),1);var U=require("lit"),W=f(require("video.js/dist/video-js.min.css?inline"),1),Z=U.css`
|
|
3
|
-
${(0,
|
|
1
|
+
/*! @onlive.ai/common-121 v0.2.184 | © 2026 Onlive.ai */
|
|
2
|
+
"use strict";var Si=Object.create;var Te=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var Mi=Object.getOwnPropertyNames;var xi=Object.getPrototypeOf,_i=Object.prototype.hasOwnProperty;var Ai=(s,e)=>()=>(s&&(e=s(s=0)),e);var Ht=(s,e)=>{for(var t in e)Te(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Mi(e))!_i.call(s,o)&&o!==t&&Te(s,o,{get:()=>e[o],enumerable:!(i=Nt(e,o))||i.enumerable});return s};var A=(s,e,t)=>(t=s!=null?Si(xi(s)):{},Vt(e||!s||!s.__esModule?Te(t,"default",{value:s,enumerable:!0}):t,s)),Ci=s=>Vt(Te({},"__esModule",{value:!0}),s),v=(s,e,t,i)=>{for(var o=i>1?void 0:i?Nt(e,t):e,r=s.length-1,n;r>=0;r--)(n=s[r])&&(o=(i?n(e,t,o):n(o))||o);return i&&o&&Te(e,t,o),o};var xe={};Ht(xe,{SYNTHETIC_MEDIA_PRESETS:()=>Oe,createSyntheticAudioTrack:()=>Ee,createSyntheticMedia:()=>ze,createSyntheticMediaFromPreset:()=>Ze,createSyntheticVideoTrack:()=>Ie});function Ie(s={}){let{width:e=640,height:t=480,fps:i=30,backgroundColor:o="#1a1a2e",foregroundColor:r="#4361ee",label:n="Mock Video",animation:a="wave"}=s,l=document.createElement("canvas");l.width=e,l.height=t;let d=l.getContext("2d"),m,V=Date.now(),J={wave:I=>{d.fillStyle=o,d.fillRect(0,0,e,t),d.strokeStyle=r,d.lineWidth=3,d.beginPath();for(let S=0;S<e;S++){let T=t/2+Math.sin(S/e*4*Math.PI+I*.002)*(t/4);S===0?d.moveTo(S,T):d.lineTo(S,T)}d.stroke()},pulse:I=>{d.fillStyle=o,d.fillRect(0,0,e,t);let S=Math.sin(I*.003)*.3+.7,T=Math.min(e,t)*.3*S;d.beginPath(),d.arc(e/2,t/2,T,0,Math.PI*2),d.fillStyle=r,d.fill()},bars:I=>{d.fillStyle=o,d.fillRect(0,0,e,t);let S=20,T=e/S,W=t*.7;d.fillStyle=r;for(let Ce=0;Ce<S;Ce++){let qt=Math.abs(Math.sin(Ce/S*Math.PI*2+I*.004))*W,ji=Ce*T,wi=t-qt;d.fillRect(ji+2,wi,T-4,qt)}},avatar:I=>{d.fillStyle=o,d.fillRect(0,0,e,t);let S=e/2,T=t/2-20,W=Math.min(e,t)*.15;d.beginPath(),d.arc(S,T,W,0,Math.PI*2),d.fillStyle=r,d.fill(),d.beginPath(),d.ellipse(S,T+W*2.2,W*1.5,W,0,Math.PI,0),d.fill(),Math.sin(I*.01)>0&&(d.beginPath(),d.arc(S,T+W*3,5+Math.sin(I*.02)*3,0,Math.PI*2),d.fillStyle="#22c55e",d.fill())},none:()=>{d.fillStyle=o,d.fillRect(0,0,e,t)}},B=()=>{d.fillStyle="rgba(255, 255, 255, 0.8)",d.font=`${Math.floor(t*.04)}px system-ui, sans-serif`,d.textAlign="center",d.fillText(n,e/2,t-20)},ae=()=>{let I=Date.now()-V;J[a](I),B(),m=requestAnimationFrame(ae)};ae();let Ut=l.captureStream(i),$t=Ut.getVideoTracks()[0];return{track:$t,stream:Ut,cleanup:()=>{cancelAnimationFrame(m),$t.stop()}}}function Ee(s={}){let{frequency:e=440,volume:t=.1,waveType:i="sine",addVariation:o=!0,enabled:r=!1}=s,n=new AudioContext,a=n.createMediaStreamDestination(),l=n.createOscillator();l.type=i,l.frequency.value=e;let d=n.createGain();d.gain.value=r?t:0;let m=null,V=null;o&&(m=n.createOscillator(),m.frequency.value=.5,V=n.createGain(),V.gain.value=10,m.connect(V),V.connect(l.frequency),m.start()),l.connect(d),d.connect(a),l.start();let J=a.stream,B=J.getAudioTracks()[0];return{track:B,stream:J,setVolume:ae=>{d.gain.value=Math.max(0,Math.min(1,ae))},setEnabled:ae=>{d.gain.value=ae?t:0},cleanup:()=>{l.stop(),m?.stop(),n.close(),B.stop()}}}function ze(s,e){let t=Ie(s),i=Ee(e),o=new MediaStream([t.track,i.track]);return{videoTrack:t.track,audioTrack:i.track,combinedStream:o,setAudioVolume:i.setVolume,setAudioEnabled:i.setEnabled,cleanup:()=>{t.cleanup(),i.cleanup()}}}function Ze(s){let e=Oe[s];return ze(e.video,e.audio)}var Oe,re=Ai(()=>{"use strict";Oe={localCamera:{video:{width:640,height:480,animation:"avatar",label:"You",foregroundColor:"#4361ee"},audio:{enabled:!1}},agentCamera:{video:{width:640,height:480,animation:"avatar",label:"AI Agent",foregroundColor:"#22c55e",backgroundColor:"#0f172a"},audio:{enabled:!1,frequency:300}},screenShare:{video:{width:1920,height:1080,animation:"bars",label:"Screen Share",backgroundColor:"#0a0a0a",foregroundColor:"#f59e0b"},audio:{enabled:!1}},voiceOnly:{video:{width:320,height:240,animation:"wave",label:"Voice Call"},audio:{enabled:!1,volume:.05}}}});var Ni={};Ht(Ni,{AgentNotFoundError:()=>ye,Asset:()=>li,ConversationServiceFactory:()=>H,InvalidOperationError:()=>we,MockConversationService:()=>D,MockEventEmitter:()=>se,MockLiveKitError:()=>b,MockLocalParticipant:()=>Y,MockParticipant:()=>L,MockRoom:()=>F,MockServiceActions:()=>nt,MockState:()=>ne,MockTextStreamReader:()=>Ae,MockTrack:()=>C,MockTrackPublication:()=>_,NetworkError:()=>je,OSBAsset:()=>j,OSBSideBar:()=>f,OSBUpload:()=>R,ParticipantAlreadyJoinedError:()=>he,ParticipantNotFoundError:()=>fe,RoomEndedError:()=>ve,RoomNotFoundError:()=>z,SYNTHETIC_MEDIA_PRESETS:()=>Oe,SideBar:()=>pi,StorybookScenarios:()=>Ft,TimeoutError:()=>Se,TrackNotFoundError:()=>be,UnauthorizedError:()=>ke,Upload:()=>gi,createAgentFixture:()=>$e,createAgentWithCannedResponses:()=>_t,createChatScenario:()=>It,createConversationFixture:()=>st,createConversationService:()=>wt,createDefaultConfig:()=>_e,createDefaultRoomFixture:()=>Fe,createDeterministicConfig:()=>Rt,createErrorFromMockError:()=>oe,createLatencyConfig:()=>Pt,createMessageFixture:()=>Ct,createMockConversationService:()=>Le,createMockServiceFactory:()=>Dt,createParticipantBatch:()=>xt,createParticipantFixture:()=>ot,createRoomWithAgent:()=>Ue,createRoomWithAgentAndDataTrack:()=>St,createRoomWithLocalParticipant:()=>De,createRoomWithMediaTracks:()=>Mt,createRoomWithTwoParticipants:()=>it,createSequentialAgent:()=>At,createStrictConfig:()=>Tt,createSyntheticAudioTrack:()=>Ee,createSyntheticMedia:()=>ze,createSyntheticMediaFromPreset:()=>Ze,createSyntheticVideoTrack:()=>Ie,createVideoCallScenario:()=>Et,decodeMockToken:()=>pt,destroyStorybookMockService:()=>zt,generateMockApiResponseId:()=>ht,generateMockExternalId:()=>ft,generateMockId:()=>g,generateMockIdBatch:()=>bt,generateMockMessageId:()=>vt,generateMockParticipantIdentity:()=>ut,generateMockRoomName:()=>mt,generateMockToken:()=>E,generateMockTrackSid:()=>gt,generateMockWsUrl:()=>ie,generateSeededMockId:()=>dt,getStorybookMockService:()=>y,isMockConversationService:()=>Lt,isMockError:()=>O,isMockLiveKitError:()=>yt,resetIdCounter:()=>Re,resetStorybookMockService:()=>rt,setIdCounter:()=>ct,withMockConversationService:()=>Ot});module.exports=Ci(Ni);var ee=require("lit"),P=require("lit/decorators.js"),ti=require("lit/directives/class-map.js");var Ti=(s,e)=>(customElements.get(s)?console.debug(`Custom element <${s}> is already defined, skipping definition of ${e.name}.`):window.customElements.define(s,e),e),Pi=(s,e)=>{let{kind:t,elements:i}=e;return{kind:t,elements:i,finisher(o){customElements.get(s)||window.customElements.define(s,o)}}},K=s=>e=>typeof e=="function"?Ti(s,e):Pi(s,e);var le=class s{constructor(e){this.config=e}static initialize(e){return new s(e)}getBaseUrl(){return`${this.config.baseUrl}`}getHeaders(){return{"Content-Type":"application/json"}}async makeRequest(e,t={}){let i=`${this.getBaseUrl()}${e}`,o=await fetch(i,{...t,headers:{...this.getHeaders(),...t.headers}});if(!o.ok)throw new Error(`FAQs API error: ${o.status} ${o.statusText}`);return o.json()}async getSettingsByOrganization(e,t){try{let i=new URLSearchParams;t&&i.append("userGroupId",t);let o=i.toString(),r=`${this.getBaseUrl()}/settings/organization/${e}${o?`?${o}`:""}`,n=await fetch(r,{method:"GET",headers:this.getHeaders(),credentials:"include"});if(n.status===404)return null;if(!n.ok)throw new Error(`Failed to fetch settings: ${n.statusText}`);return await n.json()}catch(i){return console.error("Error fetching settings:",i),null}}async getFaqs(e={}){let t=new URLSearchParams;if(e.search&&t.append("search",e.search),e.organizationId&&t.append("organizationId",e.organizationId),e.groupId&&t.append("groupId",e.groupId),e.isActive!==void 0&&t.append("isActive",e.isActive.toString()),e.page&&t.append("page",e.page.toString()),e.limit&&t.append("limit",e.limit.toString()),e.sortBy&&t.append("sortBy",e.sortBy),e.sortOrder&&t.append("sortOrder",e.sortOrder),e.extraFilters){for(let[r,n]of Object.entries(e.extraFilters))if(n&&(Array.isArray(n)?n.length>0:n.toString().trim()!=="")){let a=Array.isArray(n)?n.join(","):n.toString();t.append(`extra_${r}`,a)}}let i=t.toString(),o=`/faqs${i?`?${i}`:""}`;return this.makeRequest(o)}async getFaqById(e){return this.makeRequest(`/faqs/${e}`,{})}};var h=async(s,e)=>{let t=await fetch(s,e);if(!t.ok){let i=await t.json().catch(()=>({}));throw new Error(JSON.stringify({status:t.status,statusText:t.statusText,...i}))}return t&&t.json()};var ce=class s{constructor(e){this.config=e,this.enableUpload=e.enableUpload||!1}static getInstance(e){if(!s.instance&&e&&(s.instance=new s(e)),!s.instance)throw new Error("FileService must be initialized with config first");return s.instance}static initialize(e){return s.instance=new s(e),s.instance}async uploadFile(e,t={}){try{let i=await this.requestSignedUrl({filename:e.name,description:t.description,loadDirection:"up",bucketType:t.bucketType||"conversations",path:t.path||".temp",mimeType:e.type});return await this.uploadToSignedUrl(i.data.signedUrlData.signedUrl,e),{success:!0,id:i.data.file.id,name:i.data.file.name,url:i.data.file.url,type:i.data.file.type}}catch(i){return console.error("Error uploading file:",i),{success:!1,error:i instanceof Error?i.message:"Unknown error"}}}async requestSignedUrl(e){let t=`${this.config.baseUrl}/files/upload-url`;return this.makeRequest(t,{method:"POST",body:JSON.stringify(e)})}async uploadToSignedUrl(e,t){let i=await fetch(e,{method:"PUT",body:t,headers:{"Content-Type":t.type}});if(!i.ok){let o=await i.text().catch(()=>"No response");throw new Error(`Upload failed with status: ${i.status}. Response: ${o}`)}}async uploadFileWithRetry(e,t={}){let i=t.maxRetries||3,o=null;for(let r=1;r<=i;r++)try{let n=await this.uploadFile(e,t);if(n.success)return n;throw new Error(n.error||"Upload failed")}catch(n){if(o=n instanceof Error?n:new Error("Unknown error"),r===i)break;let a=2**r*1e3;await new Promise(l=>setTimeout(l,a))}return{success:!1,error:o?.message||"Upload failed after retries"}}async getFileById(e){let t=`${this.config.baseUrl}/files/${e}`,i=await this.makeRequest(t);if(!i.success)throw new Error("Failed to get file");return i.data}async makeRequest(e,t){let i={"Content-Type":"application/json"};return this.config.organizationId&&(i["X-Onlive-Organization-Id"]=this.config.organizationId),t?.headers&&Object.assign(i,t.headers),h(e,{...t,headers:i})}updateConfig(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};var de=class s{constructor(e){this.config=e}static getInstance(e){if(!s.instance&&e&&(s.instance=new s(e)),!s.instance)throw new Error("MultimediaService must be initialized with config first");return s.instance}static initialize(e){return s.instance=new s(e),s.instance}async getImages(e={}){let t=new URLSearchParams({type:"image",page:(e.page||1).toString(),limit:(e.limit||12).toString(),...e.search&&{search:e.search},...e.labels&&{labels:e.labels.join(",")},...e.includeSecureToken&&{includeSecureToken:e.includeSecureToken.toString()}});this.appendExtraFilters(t,e.extraFilters);let i=`${this.config.baseUrl}/multimedia?${t}`;return this.makeRequest(i)}async getVideos(e={}){let t=new URLSearchParams({type:"video",page:(e.page||1).toString(),limit:(e.limit||12).toString(),...e.search&&{search:e.search},...e.labels&&{labels:e.labels.join(",")},...e.includeSecureToken&&{includeSecureToken:e.includeSecureToken.toString()}});this.appendExtraFilters(t,e.extraFilters);let i=`${this.config.baseUrl}/multimedia?${t}`;return this.makeRequest(i)}async getPresentations(e={}){let t=new URLSearchParams({type:"presentation",page:(e.page||1).toString(),limit:(e.limit||12).toString(),...e.search&&{search:e.search},...e.labels&&{labels:e.labels.join(",")},...e.includeSecureToken&&{includeSecureToken:e.includeSecureToken.toString()}});this.appendExtraFilters(t,e.extraFilters);let i=`${this.config.baseUrl}/multimedia?${t}`;return this.makeRequest(i)}async getAllMultimedia(e={}){let[t,i,o]=await Promise.all([this.getImages(e),this.getVideos(e),this.getPresentations(e)]);return{images:t,videos:i,presentations:o}}async getMultimediaByToken(e){let t=`${this.config.baseUrl}/multimedia/secure-token/${e}`;return this.makeRequest(t,!1)}async searchMultimedia(e,t){let i={search:e,page:1,limit:50,includeSecureToken:!0};if(t)return this.getMultimediaByType(t,i);let[o,r,n]=await Promise.all([this.getImages(i),this.getVideos(i),this.getPresentations(i)]),a=[...o.items,...r.items,...n.items];return{items:a,total:a.length,count:a.length,currentPage:1,totalPages:1}}async getMultimediaByType(e,t){switch(e){case"image":return this.getImages(t);case"video":return this.getVideos(t);case"presentation":return this.getPresentations(t);default:throw new Error(`Invalid multimedia type: ${e}`)}}appendExtraFilters(e,t){if(t){for(let[i,o]of Object.entries(t))if(o&&(Array.isArray(o)?o.length>0:o.toString().trim()!=="")){let r=Array.isArray(o)?o.join(","):o.toString();e.append(`extra_${i}`,r)}}}async makeRequest(e,t=!0){let i={"Content-Type":"application/json","X-Onlive-Organization-Id":this.config.organizationId};return h(e,{method:"GET",headers:i,credentials:t?"include":void 0})}updateConfig(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};var X=class s{constructor(e){this.config=e}static getInstance(e){if(!s.instance&&e&&(s.instance=new s(e)),!s.instance)throw new Error("ProductService must be initialized with config first");return s.instance}static initialize(e){return s.instance=new s(e),s.instance}async getProducts(e={}){let t=new URLSearchParams({...e.title&&{title:e.title},...e.search&&{search:e.search},...e.category&&{category:e.category},...e.tags&&{tags:e.tags.join(",")},...e.sortBy&&{sortBy:e.sortBy},...e.sortOrder&&{sortOrder:e.sortOrder},...e.minPrice&&{minPrice:e.minPrice.toString()},...e.maxPrice&&{maxPrice:e.maxPrice.toString()},...e.inStock!==void 0&&{inStock:e.inStock.toString()},...e.offset&&{offset:e.offset.toString()},...e.includeSecureToken&&{includeSecureToken:e.includeSecureToken.toString()}});e.extraFields&&Object.keys(e.extraFields).length>0&&t.append("extraFields",JSON.stringify(e.extraFields));let i=`${this.config.baseUrl}/products?${t}`;return this.makeRequest(i,!0)}async getProductByToken(e){let t=`${this.config.baseUrl}/products/secure-token/${e}`;return this.makeRequest(t)}async searchProducts(e,t={}){return this.getProducts({...t,search:e})}async makeRequest(e,t=!1){let i={"Content-Type":"application/json","X-Onlive-Organization-Id":this.config.organizationId};return h(e,{method:"GET",headers:i,credentials:t?"include":"same-origin"})}updateConfig(e){this.config={...this.config,...e}}getConfig(){return{...this.config}}};var qe=class{constructor(e){e?.multimediaService&&(this.multimediaService=de.initialize(e.multimediaService)),e?.faqsService&&(this.faqsService=le.initialize(e.faqsService)),e?.productService&&(this.productService=X.initialize(e.productService)),e?.fileService&&(this.fileService=ce.initialize(e.fileService))}async loadAsset(e,t){switch(e){case"multimedia":return this.loadMultimediaAsset(t);case"product":return this.loadProductAsset(t);case"faq":return this.loadFaqAsset(t);case"file":return this.loadFileAsset(t);default:throw new Error(`Unsupported asset type: ${e}`)}}async loadMultimediaAsset(e){if(!this.multimediaService)throw new Error("MultimediaService not configured");let t=await this.multimediaService.getMultimediaByToken(e);if(!t)throw new Error("Multimedia not found");return{id:t.id,name:t.name,description:t.description||"",url:t.url,thumbnail:t.animatedCoverUrl||t.url,type:"multimedia",externalId:t.id,format:t.format,size:t.size||void 0,duration:t.duration||void 0,vodUrl:t.vodUrl||void 0,slides:t.slides||[],labels:t.labels,animatedCoverUrl:t.animatedCoverUrl||void 0,metadata:{organizationId:t.organizationId,status:t.status,createdAt:t.createdAt,updatedAt:t.updatedAt}}}async loadProductAsset(e){if(!this.productService)throw new Error("MultimediaService not configured");let t=await this.productService.getProductByToken(e);if(!t)throw new Error("Product not found");return{id:t.id,name:t.name,description:t.description,url:t.url,thumbnail:t.images?.[0],type:"product",externalId:t.externalId,price:t.price,currency:t.currency,category:t.category,tags:t.tags,images:t.images,variants:t.variants?.map(i=>({id:i.id,externalId:i.externalId,price:i.price,currency:i.currency,images:i.images})),options:t.options,metadata:{providerType:t.providerType,providerId:t.providerId,discountType:t.discountType,discount:t.discount,stock:t.stock,broken:t.broken}}}async loadFaqAsset(e){if(!this.faqsService)throw new Error("FaqsService not configured");let t=await this.faqsService.getFaqById(e);return{id:t.id,name:t.question,description:t.answer,url:`#faq-${t.id}`,type:"faq",externalId:t.id,question:t.question,answer:t.answer,priority:t.priority,isActive:t.isActive,metadata:{organizationId:t.organizationId,createdAt:t.createdAt,updatedAt:t.updatedAt}}}async loadFileAsset(e){if(!this.fileService)throw new Error("FileService not configured");let t=await this.fileService.getFileById(e),i=t.type||"",o=i.startsWith("video/"),r=i.startsWith("image/");return{id:t.id,name:t.name,description:t.description||"",url:t.url,thumbnail:r?t.url:void 0,type:"file",externalId:t.id,format:i,size:t.metadata?.size,duration:void 0,vodUrl:o?t.url:void 0,labels:[],animatedCoverUrl:o?t.url:void 0,metadata:{path:t.metadata?.path,bucketType:t.metadata?.bucketType,loadDirection:t.metadata?.loadDirection,createdAt:t.createdAt,updatedAt:t.updatedAt}}}};var c=require("lit"),Xt=require("lit/directives/class-map.js"),pe=require("lit/directives/if-defined.js"),U=require("lit/directives/when.js");var Bt=require("lit/directives/unsafe-html.js");var at=A(require("dompurify"),1),Ri={ALLOWED_TAGS:["p","br","span","b","strong","i","em","u","s","del","ul","ol","li","code","pre","a","h1","h2","h3","h4","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel","title","aria-label","role","colspan","rowspan"],FORCE_HTTPS:!0,ALLOW_DATA_ATTR:!1};at.default.addHook("afterSanitizeAttributes",s=>{"target"in s&&s.target==="_blank"&&s.setAttribute("rel","noopener noreferrer")});var Jt=(s,e=Ri)=>at.default.sanitize(s,e);function Kt(s=""){return(0,Bt.unsafeHTML)(Ii(s))}function Ii(s=""){return Jt(s,{ADD_ATTR:["target","rel"],ADD_TAGS:["ol-"],CUSTOM_ELEMENT_HANDLING:{tagNameCheck:/^ol-/,attributeNameCheck:null,allowCustomizedBuiltInElements:!0}})}var mo=require("@onlive.ai/ui/dist/components/button/button.js"),go=require("@onlive.ai/ui/dist/components/icon/icon.js"),Pe=require("lit"),He=require("lit/decorators.js"),Qt=require("lit/directives/repeat.js"),Wt=A(require("video.js"),1);var Ne=require("lit"),Gt=A(require("video.js/dist/video-js.min.css?inline"),1),Yt=Ne.css`
|
|
3
|
+
${(0,Ne.unsafeCSS)(Gt.default)}
|
|
4
4
|
.och__player {
|
|
5
5
|
width: 100%;
|
|
6
6
|
height: auto;
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
background: transparent;
|
|
14
14
|
transition: all 0.2s ease;
|
|
15
15
|
}
|
|
16
|
-
`;var
|
|
16
|
+
`;var Z=class extends Pe.LitElement{constructor(){super(...arguments);this.sources=[];this.player=null}connectedCallback(){super.connectedCallback();let t="videojs-font-face";if(!document.head.querySelector(`#${t}`)){let i=document.createElement("style");i.id=t,i.innerHTML=`
|
|
17
17
|
@font-face {
|
|
18
18
|
font-family: VideoJS;
|
|
19
19
|
src:
|
|
20
20
|
url(https://cdn.onlive.site/fonts/video-js/font/VideoJS.woff) format("woff"),
|
|
21
21
|
url(https://cdn.onlive.site/fonts/video-js/font/VideoJS.ttf) format("truetype");
|
|
22
|
-
}`,document.head.appendChild(
|
|
22
|
+
}`,document.head.appendChild(i)}}firstUpdated(){this.$player&&(this.player=(0,Wt.default)(this.$player,{controls:!0,controlBar:{children:["playToggle","progressControl","volumePanel","fullscreenToggle"]}}))}play(){this.player?.play()}pause(){this.player?.pause()}render(){return Pe.html`
|
|
23
23
|
<video
|
|
24
24
|
id="player"
|
|
25
25
|
class="och__player video-js video-js vjs-16-9 vjs-controls-enabled vjs-workinghover vjs-v8 vjs-theme-sea vjs_video_2321-dimensions vjs-has-started vjs-paused vjs-user-inactive"
|
|
26
26
|
>
|
|
27
|
-
${(0,
|
|
27
|
+
${(0,Qt.repeat)(this.sources,t=>t.src,t=>Pe.html`<source src=${t.src} type=${t.type}></source>`)}
|
|
28
28
|
<p class="vjs-no-js">
|
|
29
29
|
To view this video please enable JavaScript, and consider upgrading to a web browser that
|
|
30
30
|
<a href="https://videojs.com/html5-video-support/" target="_blank"> supports HTML5 video </a>
|
|
@@ -2041,45 +2041,45 @@ video::-webkit-media-text-track-display {
|
|
|
2041
2041
|
transition: all 0.2s ease;
|
|
2042
2042
|
}
|
|
2043
2043
|
</style>
|
|
2044
|
-
`}};
|
|
2044
|
+
`}};Z.styles=[Yt],v([(0,He.property)({type:Array})],Z.prototype,"sources",2),v([(0,He.query)("#player")],Z.prototype,"$player",2),Z=v([K("och-player")],Z);var Ve=class{formatFileSize(e){let t=["B","KB","MB","GB"];if(e===0)return"0 B";let i=Math.floor(Math.log(e)/Math.log(1024));return Math.round(e/1024**i*100)/100+" "+t[i]}formatDuration(e){let t=Math.floor(e/60),i=Math.floor(e%60);return`${t}:${i.toString().padStart(2,"0")}`}getMultimediaSubtype(e){let t=e.format||"";return t.startsWith("video/")?"video":t.startsWith("image/")?"image":t.includes("presentation")||t.includes("pdf")||t.includes("powerpoint")||t.includes("slides")||t.includes("application/vnd.ms-powerpoint")||t.includes("application/vnd.openxmlformats-officedocument.presentationml")||e.slides&&e.slides.length>0?"presentation":e.duration||e.vodUrl?"video":"image"}renderThumbnail(e,t,i,o,r){return!t.showThumbnail||e.type==="faq"?c.html``:c.html`
|
|
2045
2045
|
<div class="ol-asset__thumbnail">
|
|
2046
|
-
${this.renderThumbnailContent(
|
|
2047
|
-
${this.renderMetadata(t
|
|
2048
|
-
${this.renderThumbnailOverlay(
|
|
2049
|
-
${this.renderHoverOverlay(
|
|
2046
|
+
${this.renderThumbnailContent(e)}
|
|
2047
|
+
${this.renderMetadata(e,t)}
|
|
2048
|
+
${this.renderThumbnailOverlay(e)}
|
|
2049
|
+
${this.renderHoverOverlay(e,i,r,o)}
|
|
2050
2050
|
</div>
|
|
2051
|
-
`}renderThumbnailContent(
|
|
2051
|
+
`}renderThumbnailContent(e){switch(e.type){case"multimedia":{let t=e;switch(this.getMultimediaSubtype(t)){case"video":return this.renderVideoThumbnail(t);case"presentation":return this.renderPresentationThumbnail(t);default:return c.html`
|
|
2052
2052
|
<img
|
|
2053
|
-
src="${(0,
|
|
2054
|
-
alt="${
|
|
2053
|
+
src="${(0,pe.ifDefined)(t.thumbnail||t.url)}"
|
|
2054
|
+
alt="${t.name}"
|
|
2055
2055
|
class="ol-asset__image"
|
|
2056
2056
|
/>
|
|
2057
|
-
`}}case"file":{let e
|
|
2057
|
+
`}}case"file":{let t=e;switch(this.getMultimediaSubtype(t)){case"video":return this.renderVideoThumbnail(t);case"presentation":return this.renderPresentationThumbnail(t);default:return c.html`
|
|
2058
2058
|
<img
|
|
2059
|
-
src="${(0,
|
|
2060
|
-
alt="${
|
|
2059
|
+
src="${(0,pe.ifDefined)(t.thumbnail||t.url)}"
|
|
2060
|
+
alt="${t.name}"
|
|
2061
2061
|
class="ol-asset__image"
|
|
2062
2062
|
/>
|
|
2063
|
-
`}}default:return
|
|
2063
|
+
`}}default:return c.html`
|
|
2064
2064
|
<img
|
|
2065
|
-
src="${(0,
|
|
2066
|
-
alt="${
|
|
2065
|
+
src="${(0,pe.ifDefined)(e.thumbnail||e.url)}"
|
|
2066
|
+
alt="${e.name}"
|
|
2067
2067
|
class="ol-asset__image"
|
|
2068
2068
|
/>
|
|
2069
|
-
`}}renderVideoThumbnail(
|
|
2069
|
+
`}}renderVideoThumbnail(e){return c.html`
|
|
2070
2070
|
<och-player
|
|
2071
2071
|
class="ol-asset__video-player"
|
|
2072
|
-
.sources=${[{src:
|
|
2072
|
+
.sources=${[{src:e.url||"",type:e.format||"video/mp4"}]}
|
|
2073
2073
|
></och-player>
|
|
2074
|
-
`}renderPresentationThumbnail(
|
|
2074
|
+
`}renderPresentationThumbnail(e){return c.html`
|
|
2075
2075
|
<div class="ol-asset__presentation-preview">
|
|
2076
|
-
${(0,
|
|
2076
|
+
${(0,U.when)(e.slides&&e.slides.length>0,()=>c.html`
|
|
2077
2077
|
<img
|
|
2078
|
-
src="${
|
|
2078
|
+
src="${e.slides[0]}"
|
|
2079
2079
|
alt="Presentation preview"
|
|
2080
2080
|
class="ol-asset__presentation-image"
|
|
2081
2081
|
/>
|
|
2082
|
-
`,()=>
|
|
2082
|
+
`,()=>c.html`
|
|
2083
2083
|
<div class="ol-asset__presentation-fallback">
|
|
2084
2084
|
<div class="ol-asset__presentation-icon">
|
|
2085
2085
|
<svg width="48" height="48" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
@@ -2090,145 +2090,145 @@ video::-webkit-media-text-track-display {
|
|
|
2090
2090
|
<polyline points="10 9 9 9 8 9"></polyline>
|
|
2091
2091
|
</svg>
|
|
2092
2092
|
</div>
|
|
2093
|
-
<div class="ol-asset__presentation-name">${
|
|
2093
|
+
<div class="ol-asset__presentation-name">${e.name}</div>
|
|
2094
2094
|
</div>
|
|
2095
2095
|
`)}
|
|
2096
2096
|
</div>
|
|
2097
|
-
`}renderThumbnailOverlay(
|
|
2098
|
-
<div class="ol-asset__duration">${this.formatDuration(
|
|
2099
|
-
`)}return
|
|
2100
|
-
<div class=${(0,
|
|
2101
|
-
${this.renderName(t
|
|
2102
|
-
${this.renderDescription(t
|
|
2103
|
-
${this.renderPrice(
|
|
2104
|
-
${this.renderTags(t
|
|
2097
|
+
`}renderThumbnailOverlay(e){let t=[];if(e.type==="multimedia"||e.type==="file"){let i=e;this.getMultimediaSubtype(i)==="video"&&i.duration&&t.push(c.html`
|
|
2098
|
+
<div class="ol-asset__duration">${this.formatDuration(i.duration)}</div>
|
|
2099
|
+
`)}return c.html`${t}`}renderContent(e,t){let i=(e.type==="multimedia"||e.type==="file")&&!t.showName&&!t.showDescription&&!t.showTags;return c.html`
|
|
2100
|
+
<div class=${(0,Xt.classMap)({"ol-asset__content":!0,"ol-asset__content--assets":!!i})}>
|
|
2101
|
+
${this.renderName(e,t)}
|
|
2102
|
+
${this.renderDescription(e,t)}
|
|
2103
|
+
${this.renderPrice(e)}
|
|
2104
|
+
${this.renderTags(e,t)}
|
|
2105
2105
|
</div>
|
|
2106
|
-
`}renderName(t
|
|
2107
|
-
<div class="ol-asset__name">${
|
|
2108
|
-
`:(
|
|
2109
|
-
<div class="ol-asset__name">${
|
|
2110
|
-
`:
|
|
2111
|
-
<div class="ol-asset__name">${
|
|
2112
|
-
`:
|
|
2113
|
-
<div class="ol-asset__description ol-asset__answer">${
|
|
2114
|
-
`:
|
|
2115
|
-
<div class="ol-asset__description">${
|
|
2116
|
-
`:
|
|
2117
|
-
<div class="ol-asset__description">${
|
|
2118
|
-
`:
|
|
2106
|
+
`}renderName(e,t){return e.type==="faq"?c.html``:e.type==="product"?c.html`
|
|
2107
|
+
<div class="ol-asset__name">${e.name}</div>
|
|
2108
|
+
`:(e.type==="multimedia"||e.type==="file")&&this.getMultimediaSubtype(e)==="presentation"&&(!e.slides||e.slides.length===0)?c.html`
|
|
2109
|
+
<div class="ol-asset__name">${e.name}</div>
|
|
2110
|
+
`:t.showName?c.html`
|
|
2111
|
+
<div class="ol-asset__name">${e.name}</div>
|
|
2112
|
+
`:c.html``}renderDescription(e,t){if(e.type==="faq"){let o=e;return o.answer?c.html`
|
|
2113
|
+
<div class="ol-asset__description ol-asset__answer">${o.answer}</div>
|
|
2114
|
+
`:c.html``}return e.description?e.type==="product"?c.html`
|
|
2115
|
+
<div class="ol-asset__description">${Kt(e.description)}</div>
|
|
2116
|
+
`:t.showDescription?c.html`
|
|
2117
|
+
<div class="ol-asset__description">${e.description}</div>
|
|
2118
|
+
`:c.html``:c.html``}renderPrice(e){if(e.type!=="product")return c.html``;let t=e;return t.price?c.html`
|
|
2119
2119
|
<div class="ol-asset__price">
|
|
2120
|
-
${
|
|
2120
|
+
${t.currency} ${t.price}
|
|
2121
2121
|
</div>
|
|
2122
|
-
`:
|
|
2122
|
+
`:c.html``}renderMetadata(e,t){if(!t.showMetadata)return c.html``;let i=[];if(t.showSize&&e.type!=="faq"&&"size"in e&&e.size&&typeof e.size=="number"&&i.push(c.html`
|
|
2123
2123
|
<div class="ol-asset__meta-item">
|
|
2124
|
-
<span>${this.formatFileSize(
|
|
2124
|
+
<span>${this.formatFileSize(e.size)}</span>
|
|
2125
2125
|
</div>
|
|
2126
|
-
`),
|
|
2126
|
+
`),t.showDuration&&(e.type==="multimedia"||e.type==="file")){let o=e;this.getMultimediaSubtype(o)==="video"&&o.duration&&i.push(c.html`
|
|
2127
2127
|
<div class="ol-asset__meta-item">
|
|
2128
2128
|
<span>⏱️</span>
|
|
2129
|
-
<span>${this.formatDuration(
|
|
2129
|
+
<span>${this.formatDuration(o.duration)}</span>
|
|
2130
2130
|
</div>
|
|
2131
|
-
`)}return
|
|
2131
|
+
`)}return i.length===0?c.html``:c.html`
|
|
2132
2132
|
<div class="ol-asset__metadata">
|
|
2133
|
-
${
|
|
2133
|
+
${i}
|
|
2134
2134
|
</div>
|
|
2135
|
-
`}renderTags(t
|
|
2135
|
+
`}renderTags(e,t){if(!t.showTags)return c.html``;let i=[];switch(e.type){case"product":i=e.tags||[];break;case"multimedia":case"file":i=e.labels||[];break}return i.length===0?c.html``:c.html`
|
|
2136
2136
|
<div class="ol-asset__tags">
|
|
2137
|
-
${
|
|
2138
|
-
<span class="ol-asset__tag">${
|
|
2137
|
+
${i.slice(0,3).map(o=>c.html`
|
|
2138
|
+
<span class="ol-asset__tag">${o}</span>
|
|
2139
2139
|
`)}
|
|
2140
2140
|
</div>
|
|
2141
|
-
`}renderLoading(){return
|
|
2141
|
+
`}renderLoading(){return c.html`
|
|
2142
2142
|
<div class="ol-asset__loading">
|
|
2143
2143
|
<div class="ol-asset__spinner"></div>
|
|
2144
2144
|
<span>Loading...</span>
|
|
2145
2145
|
</div>
|
|
2146
|
-
`}renderError(
|
|
2146
|
+
`}renderError(e){return c.html`
|
|
2147
2147
|
<div class="ol-asset__error">
|
|
2148
2148
|
<span class="ol-asset__error-icon">⚠️</span>
|
|
2149
|
-
<span>${
|
|
2149
|
+
<span>${e}</span>
|
|
2150
2150
|
</div>
|
|
2151
|
-
`}renderModal(t,
|
|
2152
|
-
<div class="ol-asset__modal-overlay" @click=${
|
|
2153
|
-
<div class="ol-asset__modal" @click=${
|
|
2154
|
-
<ol-button class="ol-asset__modal-close" @click=${
|
|
2151
|
+
`}renderModal(e,t,i){return t?c.html`
|
|
2152
|
+
<div class="ol-asset__modal-overlay" @click=${i}>
|
|
2153
|
+
<div class="ol-asset__modal" @click=${o=>o.stopPropagation()}>
|
|
2154
|
+
<ol-button class="ol-asset__modal-close" @click=${i}>
|
|
2155
2155
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2156
2156
|
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
2157
2157
|
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
2158
2158
|
</svg>
|
|
2159
2159
|
</ol-button>
|
|
2160
2160
|
<div class="ol-asset__modal-content">
|
|
2161
|
-
${this.renderModalContent(
|
|
2161
|
+
${this.renderModalContent(e)}
|
|
2162
2162
|
</div>
|
|
2163
2163
|
</div>
|
|
2164
2164
|
</div>
|
|
2165
|
-
`:
|
|
2165
|
+
`:c.html``}renderModalContent(e){switch(e.type){case"multimedia":{let t=e,i=this.getMultimediaSubtype(t);return i==="image"?c.html`
|
|
2166
2166
|
<img
|
|
2167
|
-
src="${(0,
|
|
2168
|
-
alt="${
|
|
2167
|
+
src="${(0,pe.ifDefined)(t.url)}"
|
|
2168
|
+
alt="${t.name}"
|
|
2169
2169
|
class="ol-asset__modal-image"
|
|
2170
2170
|
/>
|
|
2171
2171
|
<div class="ol-asset__modal-info">
|
|
2172
|
-
<h3 class="ol-asset__modal-title">${
|
|
2173
|
-
${
|
|
2172
|
+
<h3 class="ol-asset__modal-title">${t.name}</h3>
|
|
2173
|
+
${t.description?c.html`<p class="ol-asset__modal-description">${t.description}</p>`:c.html``}
|
|
2174
2174
|
</div>
|
|
2175
|
-
`:
|
|
2175
|
+
`:c.html`
|
|
2176
2176
|
<div class="ol-asset__modal-info">
|
|
2177
|
-
<h3 class="ol-asset__modal-title">${
|
|
2178
|
-
${
|
|
2179
|
-
<p class="ol-asset__modal-type">Type: ${
|
|
2177
|
+
<h3 class="ol-asset__modal-title">${t.name}</h3>
|
|
2178
|
+
${t.description?c.html`<p class="ol-asset__modal-description">${t.description}</p>`:c.html``}
|
|
2179
|
+
<p class="ol-asset__modal-type">Type: ${i}</p>
|
|
2180
2180
|
</div>
|
|
2181
|
-
`}case"file":{let e
|
|
2181
|
+
`}case"file":{let t=e,i=this.getMultimediaSubtype(t);return i==="image"?c.html`
|
|
2182
2182
|
<img
|
|
2183
|
-
src="${(0,
|
|
2184
|
-
alt="${
|
|
2183
|
+
src="${(0,pe.ifDefined)(t.url)}"
|
|
2184
|
+
alt="${t.name}"
|
|
2185
2185
|
class="ol-asset__modal-image"
|
|
2186
2186
|
/>
|
|
2187
2187
|
<div class="ol-asset__modal-info">
|
|
2188
|
-
<h3 class="ol-asset__modal-title">${
|
|
2189
|
-
${
|
|
2188
|
+
<h3 class="ol-asset__modal-title">${t.name}</h3>
|
|
2189
|
+
${t.description?c.html`<p class="ol-asset__modal-description">${t.description}</p>`:c.html``}
|
|
2190
2190
|
</div>
|
|
2191
|
-
`:
|
|
2191
|
+
`:c.html`
|
|
2192
2192
|
<div class="ol-asset__modal-info">
|
|
2193
|
-
<h3 class="ol-asset__modal-title">${
|
|
2194
|
-
${
|
|
2195
|
-
<p class="ol-asset__modal-type">Type: ${
|
|
2193
|
+
<h3 class="ol-asset__modal-title">${t.name}</h3>
|
|
2194
|
+
${t.description?c.html`<p class="ol-asset__modal-description">${t.description}</p>`:c.html``}
|
|
2195
|
+
<p class="ol-asset__modal-type">Type: ${i}</p>
|
|
2196
2196
|
</div>
|
|
2197
|
-
`}case"faq":return
|
|
2197
|
+
`}case"faq":return c.html`
|
|
2198
2198
|
<div class="ol-asset__modal-faq">
|
|
2199
|
-
<div class="ol-asset__modal-answer">${
|
|
2199
|
+
<div class="ol-asset__modal-answer">${e.answer||e.description}</div>
|
|
2200
2200
|
</div>
|
|
2201
|
-
`;default:return
|
|
2201
|
+
`;default:return c.html`
|
|
2202
2202
|
<div class="ol-asset__modal-info">
|
|
2203
|
-
<h3 class="ol-asset__modal-title">${
|
|
2204
|
-
${
|
|
2203
|
+
<h3 class="ol-asset__modal-title">${e.name}</h3>
|
|
2204
|
+
${e.description?c.html`<p class="ol-asset__modal-description">${e.description}</p>`:c.html``}
|
|
2205
2205
|
</div>
|
|
2206
|
-
`}}renderHoverOverlay(t,
|
|
2206
|
+
`}}renderHoverOverlay(e,t,i,o){let r=e.type==="multimedia"&&this.getMultimediaSubtype(e)==="video",n=(e.type==="multimedia"||e.type==="file")&&this.getMultimediaSubtype(e)==="presentation"&&(!e.slides||e.slides.length===0);return r?c.html`
|
|
2207
2207
|
<div class="ol-asset__video-controls">
|
|
2208
|
-
${(0,
|
|
2208
|
+
${(0,U.when)(i,()=>c.html`
|
|
2209
2209
|
<ol-button
|
|
2210
2210
|
class="ol-asset__video-btn ol-asset__video-btn--maximize"
|
|
2211
|
-
@click=${
|
|
2212
|
-
title="Maximize ${
|
|
2211
|
+
@click=${a=>{a.stopPropagation(),i(e)}}
|
|
2212
|
+
title="Maximize ${e.name}"
|
|
2213
2213
|
>
|
|
2214
2214
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2215
2215
|
<path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path>
|
|
2216
2216
|
</svg>
|
|
2217
2217
|
</ol-button>
|
|
2218
2218
|
`)}
|
|
2219
|
-
${(0,
|
|
2219
|
+
${(0,U.when)(t,()=>c.html`
|
|
2220
2220
|
<ol-button
|
|
2221
|
-
class="ol-asset__video-btn ol-asset__video-btn--download ${
|
|
2222
|
-
@click=${
|
|
2223
|
-
title="Download ${
|
|
2224
|
-
?disabled=${
|
|
2221
|
+
class="ol-asset__video-btn ol-asset__video-btn--download ${o?"ol-asset__video-btn--downloading":""}"
|
|
2222
|
+
@click=${a=>{a.stopPropagation(),t(e)}}
|
|
2223
|
+
title="Download ${e.name}"
|
|
2224
|
+
?disabled=${o}
|
|
2225
2225
|
>
|
|
2226
|
-
${(0,
|
|
2226
|
+
${(0,U.when)(o,()=>c.html`
|
|
2227
2227
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="ol-asset__download-spinner">
|
|
2228
2228
|
<circle cx="12" cy="12" r="10"></circle>
|
|
2229
2229
|
<path d="M12 2a10 10 0 0 1 10 10"></path>
|
|
2230
2230
|
</svg>
|
|
2231
|
-
`,()=>
|
|
2231
|
+
`,()=>c.html`
|
|
2232
2232
|
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2233
2233
|
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
|
|
2234
2234
|
<polyline points="7,10 12,15 17,10"></polyline>
|
|
@@ -2238,14 +2238,14 @@ video::-webkit-media-text-track-display {
|
|
|
2238
2238
|
</ol-button>
|
|
2239
2239
|
`)}
|
|
2240
2240
|
</div>
|
|
2241
|
-
`:
|
|
2241
|
+
`:c.html`
|
|
2242
2242
|
<div class="ol-asset__hover-overlay">
|
|
2243
2243
|
<div class="ol-asset__hover-buttons">
|
|
2244
|
-
${(0,
|
|
2244
|
+
${(0,U.when)(e.type==="product",()=>c.html`
|
|
2245
2245
|
<ol-button
|
|
2246
2246
|
class="ol-asset__hover-btn ol-asset__hover-btn--external"
|
|
2247
|
-
@click=${
|
|
2248
|
-
title="Open ${
|
|
2247
|
+
@click=${a=>{a.stopPropagation(),this.openProductInNewWindow(e)}}
|
|
2248
|
+
title="Open ${e.name} in new window"
|
|
2249
2249
|
>
|
|
2250
2250
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2251
2251
|
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path>
|
|
@@ -2253,31 +2253,31 @@ video::-webkit-media-text-track-display {
|
|
|
2253
2253
|
<line x1="10" y1="14" x2="21" y2="3"></line>
|
|
2254
2254
|
</svg>
|
|
2255
2255
|
</ol-button>
|
|
2256
|
-
`,()=>
|
|
2257
|
-
${(0,
|
|
2256
|
+
`,()=>c.html`
|
|
2257
|
+
${(0,U.when)(i&&!n,()=>c.html`
|
|
2258
2258
|
<ol-button
|
|
2259
2259
|
class="ol-asset__hover-btn ol-asset__hover-btn--maximize"
|
|
2260
|
-
@click=${
|
|
2261
|
-
title="Maximize ${
|
|
2260
|
+
@click=${a=>{a.stopPropagation(),i(e)}}
|
|
2261
|
+
title="Maximize ${e.name}"
|
|
2262
2262
|
>
|
|
2263
2263
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2264
2264
|
<path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3"></path>
|
|
2265
2265
|
</svg>
|
|
2266
2266
|
</ol-button>
|
|
2267
2267
|
`)}
|
|
2268
|
-
${(0,
|
|
2268
|
+
${(0,U.when)(t&&["multimedia","file"].includes(e.type),()=>c.html`
|
|
2269
2269
|
<ol-button
|
|
2270
|
-
class="ol-asset__hover-btn ol-asset__hover-btn--download ${
|
|
2271
|
-
@click=${
|
|
2272
|
-
title="Download ${
|
|
2273
|
-
?disabled=${
|
|
2270
|
+
class="ol-asset__hover-btn ol-asset__hover-btn--download ${o?"ol-asset__hover-btn--downloading":""}"
|
|
2271
|
+
@click=${a=>{a.stopPropagation(),t(e)}}
|
|
2272
|
+
title="Download ${e.name}"
|
|
2273
|
+
?disabled=${o}
|
|
2274
2274
|
>
|
|
2275
|
-
${(0,
|
|
2275
|
+
${(0,U.when)(o,()=>c.html`
|
|
2276
2276
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="ol-asset__download-spinner">
|
|
2277
2277
|
<circle cx="12" cy="12" r="10"></circle>
|
|
2278
2278
|
<path d="M12 2a10 10 0 0 1 10 10"></path>
|
|
2279
2279
|
</svg>
|
|
2280
|
-
`,()=>
|
|
2280
|
+
`,()=>c.html`
|
|
2281
2281
|
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
2282
2282
|
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
|
|
2283
2283
|
<polyline points="7,10 12,15 17,10"></polyline>
|
|
@@ -2289,7 +2289,7 @@ video::-webkit-media-text-track-display {
|
|
|
2289
2289
|
`)}
|
|
2290
2290
|
</div>
|
|
2291
2291
|
</div>
|
|
2292
|
-
`}openProductInNewWindow(
|
|
2292
|
+
`}openProductInNewWindow(e){e.url&&window.open(e.url,"_blank","noopener,noreferrer")}};var Zt=require("lit"),ei=Zt.css`
|
|
2293
2293
|
:host {
|
|
2294
2294
|
display: block;
|
|
2295
2295
|
--asset-border-radius: 8px;
|
|
@@ -2970,7 +2970,7 @@ video::-webkit-media-text-track-display {
|
|
|
2970
2970
|
opacity: 0;
|
|
2971
2971
|
visibility: hidden;
|
|
2972
2972
|
}
|
|
2973
|
-
`;var
|
|
2973
|
+
`;var Je=class{constructor(e,t){this.asset=e,this.onClose=t}getMultimediaSubtype(e){let t=e.format||"";return t.startsWith("video/")?"video":t.startsWith("image/")?"image":t.includes("presentation")||t.includes("pdf")||t.includes("powerpoint")||t.includes("slides")||t.includes("application/vnd.ms-powerpoint")||t.includes("application/vnd.openxmlformats-officedocument.presentationml")||e.slides&&e.slides.length>0?"presentation":e.duration||e.vodUrl?"video":"image"}formatDuration(e){let t=Math.floor(e/60),i=Math.floor(e%60);return`${t}:${i.toString().padStart(2,"0")}`}async open(){await import("@onlive.ai/ui/dist/components/dialog/dialog.js"),await import("@onlive.ai/ui/dist/components/icon-button/icon-button.js"),await import("@onlive.ai/ui/dist/components/button/button.js"),await import("@onlive.ai/ui/dist/components/icon/icon.js");let e=this.asset;this.getMultimediaSubtype(e)==="presentation"&&(e.slides?.length??0)>0&&await Promise.all([import("@onlive.ai/ui/dist/components/carousel/carousel.js"),import("@onlive.ai/ui/dist/components/carousel-item/carousel-item.js")]),this.injectStyles(),this.createDialog(),this.dialog?.show()}close(){this.dialog?.hide(),setTimeout(()=>{this.removeDialog()},300)}createDialog(){if(this.dialog||!this.asset)return;let e=this.createDialogHTML(),t=document.createElement("div");t.innerHTML=e,this.dialog=t.firstElementChild,this.dialog&&(document.body.appendChild(this.dialog),this.attachEventListeners())}removeDialog(){this.dialog&&(this.dialog.parentNode&&this.dialog.parentNode.removeChild(this.dialog),this.dialog=void 0)}injectStyles(){if(document.getElementById("asset-modal-styles"))return;let e=document.createElement("style");e.id="asset-modal-styles",e.textContent=this.getModalStyles(),document.head.appendChild(e)}getModalStyles(){return`
|
|
2974
2974
|
|
|
2975
2975
|
ol-dialog::part(base){
|
|
2976
2976
|
z-index: 1000000;
|
|
@@ -3311,20 +3311,20 @@ video::-webkit-media-text-track-display {
|
|
|
3311
3311
|
max-height: 90vh;
|
|
3312
3312
|
}
|
|
3313
3313
|
}
|
|
3314
|
-
`}createDialogHTML(){if(!this.asset)return"";let{name:
|
|
3314
|
+
`}createDialogHTML(){if(!this.asset)return"";let{name:e,description:t,url:i,type:o}=this.asset,r="";if(o==="multimedia"){let l=this.asset,d=this.getMultimediaSubtype(l);if(d==="image")r=`
|
|
3315
3315
|
<div class="ol-asset__modal-media-container">
|
|
3316
3316
|
<div class="ol-asset__modal-image-container">
|
|
3317
3317
|
<img
|
|
3318
|
-
src="${
|
|
3319
|
-
alt="${
|
|
3318
|
+
src="${i||""}"
|
|
3319
|
+
alt="${e}"
|
|
3320
3320
|
class="ol-asset__modal-image"
|
|
3321
3321
|
loading="eager"
|
|
3322
3322
|
/>
|
|
3323
3323
|
</div>
|
|
3324
3324
|
</div>
|
|
3325
3325
|
<div class="ol-asset__modal-info">
|
|
3326
|
-
<h3 class="ol-asset__modal-title">${
|
|
3327
|
-
${
|
|
3326
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3327
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3328
3328
|
<div class="ol-asset__modal-metadata">
|
|
3329
3329
|
<div class="ol-asset__modal-metadata-item">
|
|
3330
3330
|
<ol-icon name="photo"></ol-icon>
|
|
@@ -3332,11 +3332,11 @@ video::-webkit-media-text-track-display {
|
|
|
3332
3332
|
</div>
|
|
3333
3333
|
</div>
|
|
3334
3334
|
</div>
|
|
3335
|
-
`;else if(
|
|
3335
|
+
`;else if(d==="video")r=`
|
|
3336
3336
|
<div class="ol-asset__modal-media-container">
|
|
3337
3337
|
<div class="ol-asset__modal-video-container">
|
|
3338
3338
|
<video
|
|
3339
|
-
src="${
|
|
3339
|
+
src="${i||l.vodUrl||""}"
|
|
3340
3340
|
controls
|
|
3341
3341
|
class="ol-asset__modal-video-player"
|
|
3342
3342
|
preload="metadata"
|
|
@@ -3346,30 +3346,30 @@ video::-webkit-media-text-track-display {
|
|
|
3346
3346
|
</div>
|
|
3347
3347
|
</div>
|
|
3348
3348
|
<div class="ol-asset__modal-info">
|
|
3349
|
-
<h3 class="ol-asset__modal-title">${
|
|
3350
|
-
${
|
|
3349
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3350
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3351
3351
|
<div class="ol-asset__modal-metadata">
|
|
3352
3352
|
<div class="ol-asset__modal-metadata-item">
|
|
3353
3353
|
<ol-icon name="video"></ol-icon>
|
|
3354
3354
|
<span class="ol-asset__modal-type">Video</span>
|
|
3355
3355
|
</div>
|
|
3356
|
-
${
|
|
3356
|
+
${l.duration?`
|
|
3357
3357
|
<div class="ol-asset__modal-metadata-item">
|
|
3358
3358
|
<ol-icon name="clock"></ol-icon>
|
|
3359
|
-
<span class="ol-asset__modal-duration">${this.formatDuration(
|
|
3359
|
+
<span class="ol-asset__modal-duration">${this.formatDuration(l.duration)}</span>
|
|
3360
3360
|
</div>
|
|
3361
3361
|
`:""}
|
|
3362
3362
|
</div>
|
|
3363
3363
|
</div>
|
|
3364
|
-
`;else if(
|
|
3364
|
+
`;else if(d==="presentation")if(l.slides&&l.slides.length>0){let m=l.slides;r=`
|
|
3365
3365
|
<div class="ol-asset__modal-media-container" data-type="presentation">
|
|
3366
3366
|
<div class="ol-asset__modal-presentation">
|
|
3367
3367
|
<ol-carousel pagination navigation loop class="ol-asset__modal-carousel">
|
|
3368
|
-
${m.map((
|
|
3368
|
+
${m.map((J,B)=>`
|
|
3369
3369
|
<ol-carousel-item>
|
|
3370
3370
|
<img
|
|
3371
|
-
src="${
|
|
3372
|
-
alt="Slide ${
|
|
3371
|
+
src="${J}"
|
|
3372
|
+
alt="Slide ${B+1} of ${m.length}"
|
|
3373
3373
|
class="ol-asset__modal-slide-image"
|
|
3374
3374
|
/>
|
|
3375
3375
|
</ol-carousel-item>
|
|
@@ -3378,8 +3378,8 @@ video::-webkit-media-text-track-display {
|
|
|
3378
3378
|
</div>
|
|
3379
3379
|
</div>
|
|
3380
3380
|
<div class="ol-asset__modal-info">
|
|
3381
|
-
<h3 class="ol-asset__modal-title">${
|
|
3382
|
-
${
|
|
3381
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3382
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3383
3383
|
<div class="ol-asset__modal-metadata">
|
|
3384
3384
|
<div class="ol-asset__modal-metadata-item">
|
|
3385
3385
|
<ol-icon name="file-presentation"></ol-icon>
|
|
@@ -3391,7 +3391,7 @@ video::-webkit-media-text-track-display {
|
|
|
3391
3391
|
</div>
|
|
3392
3392
|
</div>
|
|
3393
3393
|
</div>
|
|
3394
|
-
`}else
|
|
3394
|
+
`}else r=`
|
|
3395
3395
|
<div class="ol-asset__modal-presentation">
|
|
3396
3396
|
<div class="ol-asset__modal-presentation-fallback">
|
|
3397
3397
|
<div class="ol-asset__modal-presentation-icon">\u{1F4C4}</div>
|
|
@@ -3399,24 +3399,24 @@ video::-webkit-media-text-track-display {
|
|
|
3399
3399
|
</div>
|
|
3400
3400
|
</div>
|
|
3401
3401
|
<div class="ol-asset__modal-info">
|
|
3402
|
-
<h3 class="ol-asset__modal-title">${
|
|
3403
|
-
${
|
|
3402
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3403
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3404
3404
|
<p class="ol-asset__modal-type">Type: Presentation</p>
|
|
3405
3405
|
</div>
|
|
3406
|
-
`}else if(
|
|
3406
|
+
`}else if(o==="file"){let l=this.asset,d=this.getMultimediaSubtype(l);if(d==="image")r=`
|
|
3407
3407
|
<div class="ol-asset__modal-media-container">
|
|
3408
3408
|
<div class="ol-asset__modal-image-container">
|
|
3409
3409
|
<img
|
|
3410
|
-
src="${
|
|
3411
|
-
alt="${
|
|
3410
|
+
src="${i||""}"
|
|
3411
|
+
alt="${e}"
|
|
3412
3412
|
class="ol-asset__modal-image"
|
|
3413
3413
|
loading="eager"
|
|
3414
3414
|
/>
|
|
3415
3415
|
</div>
|
|
3416
3416
|
</div>
|
|
3417
3417
|
<div class="ol-asset__modal-info">
|
|
3418
|
-
<h3 class="ol-asset__modal-title">${
|
|
3419
|
-
${
|
|
3418
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3419
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3420
3420
|
<div class="ol-asset__modal-metadata">
|
|
3421
3421
|
<div class="ol-asset__modal-metadata-item">
|
|
3422
3422
|
<ol-icon name="photo"></ol-icon>
|
|
@@ -3424,11 +3424,11 @@ video::-webkit-media-text-track-display {
|
|
|
3424
3424
|
</div>
|
|
3425
3425
|
</div>
|
|
3426
3426
|
</div>
|
|
3427
|
-
`;else if(
|
|
3427
|
+
`;else if(d==="video")r=`
|
|
3428
3428
|
<div class="ol-asset__modal-media-container">
|
|
3429
3429
|
<div class="ol-asset__modal-video-container">
|
|
3430
3430
|
<video
|
|
3431
|
-
src="${
|
|
3431
|
+
src="${i||l.vodUrl||""}"
|
|
3432
3432
|
controls
|
|
3433
3433
|
class="ol-asset__modal-video-player"
|
|
3434
3434
|
preload="metadata"
|
|
@@ -3438,30 +3438,30 @@ video::-webkit-media-text-track-display {
|
|
|
3438
3438
|
</div>
|
|
3439
3439
|
</div>
|
|
3440
3440
|
<div class="ol-asset__modal-info">
|
|
3441
|
-
<h3 class="ol-asset__modal-title">${
|
|
3442
|
-
${
|
|
3441
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3442
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3443
3443
|
<div class="ol-asset__modal-metadata">
|
|
3444
3444
|
<div class="ol-asset__modal-metadata-item">
|
|
3445
3445
|
<ol-icon name="video"></ol-icon>
|
|
3446
3446
|
<span class="ol-asset__modal-type">Video File</span>
|
|
3447
3447
|
</div>
|
|
3448
|
-
${
|
|
3448
|
+
${l.duration?`
|
|
3449
3449
|
<div class="ol-asset__modal-metadata-item">
|
|
3450
3450
|
<ol-icon name="clock"></ol-icon>
|
|
3451
|
-
<span class="ol-asset__modal-duration">${this.formatDuration(
|
|
3451
|
+
<span class="ol-asset__modal-duration">${this.formatDuration(l.duration)}</span>
|
|
3452
3452
|
</div>
|
|
3453
3453
|
`:""}
|
|
3454
3454
|
</div>
|
|
3455
3455
|
</div>
|
|
3456
|
-
`;else if(
|
|
3456
|
+
`;else if(d==="presentation")if(l.slides&&l.slides.length>0){let m=l.slides;r=`
|
|
3457
3457
|
<div class="ol-asset__modal-media-container" data-type="presentation">
|
|
3458
3458
|
<div class="ol-asset__modal-presentation">
|
|
3459
3459
|
<ol-carousel pagination navigation loop class="ol-asset__modal-carousel">
|
|
3460
|
-
${m.map((
|
|
3460
|
+
${m.map((J,B)=>`
|
|
3461
3461
|
<ol-carousel-item>
|
|
3462
3462
|
<img
|
|
3463
|
-
src="${
|
|
3464
|
-
alt="Slide ${
|
|
3463
|
+
src="${J}"
|
|
3464
|
+
alt="Slide ${B+1} of ${m.length}"
|
|
3465
3465
|
class="ol-asset__modal-slide-image"
|
|
3466
3466
|
/>
|
|
3467
3467
|
</ol-carousel-item>
|
|
@@ -3470,8 +3470,8 @@ video::-webkit-media-text-track-display {
|
|
|
3470
3470
|
</div>
|
|
3471
3471
|
</div>
|
|
3472
3472
|
<div class="ol-asset__modal-info">
|
|
3473
|
-
<h3 class="ol-asset__modal-title">${
|
|
3474
|
-
${
|
|
3473
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3474
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3475
3475
|
<div class="ol-asset__modal-metadata">
|
|
3476
3476
|
<div class="ol-asset__modal-metadata-item">
|
|
3477
3477
|
<ol-icon name="file-presentation"></ol-icon>
|
|
@@ -3483,7 +3483,7 @@ video::-webkit-media-text-track-display {
|
|
|
3483
3483
|
</div>
|
|
3484
3484
|
</div>
|
|
3485
3485
|
</div>
|
|
3486
|
-
`}else
|
|
3486
|
+
`}else r=`
|
|
3487
3487
|
<div class="ol-asset__modal-presentation">
|
|
3488
3488
|
<div class="ol-asset__modal-presentation-fallback">
|
|
3489
3489
|
<div class="ol-asset__modal-presentation-icon">\u{1F4C4}</div>
|
|
@@ -3491,49 +3491,49 @@ video::-webkit-media-text-track-display {
|
|
|
3491
3491
|
</div>
|
|
3492
3492
|
</div>
|
|
3493
3493
|
<div class="ol-asset__modal-info">
|
|
3494
|
-
<h3 class="ol-asset__modal-title">${
|
|
3495
|
-
${
|
|
3494
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3495
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3496
3496
|
<p class="ol-asset__modal-type">Type: Presentation File</p>
|
|
3497
3497
|
</div>
|
|
3498
|
-
`}else if(
|
|
3498
|
+
`}else if(o==="faq"){let l=this.asset;r=`
|
|
3499
3499
|
<div class="ol-asset__modal-faq">
|
|
3500
|
-
<h3 class="ol-asset__modal-question">${
|
|
3501
|
-
<div class="ol-asset__modal-answer">${
|
|
3500
|
+
<h3 class="ol-asset__modal-question">${l.question||e}</h3>
|
|
3501
|
+
<div class="ol-asset__modal-answer">${l.answer||t}</div>
|
|
3502
3502
|
</div>
|
|
3503
|
-
`}else
|
|
3503
|
+
`}else r=`
|
|
3504
3504
|
<div class="ol-asset__modal-info">
|
|
3505
|
-
<h3 class="ol-asset__modal-title">${
|
|
3506
|
-
${
|
|
3505
|
+
<h3 class="ol-asset__modal-title">${e}</h3>
|
|
3506
|
+
${t?`<p class="ol-asset__modal-description">${t}</p>`:""}
|
|
3507
3507
|
</div>
|
|
3508
|
-
`;let n=
|
|
3508
|
+
`;let n=o==="multimedia"||o==="file",a=o==="faq"&&this.asset.question||e;return`
|
|
3509
3509
|
<ol-dialog
|
|
3510
|
-
label="${this.escapeHtml(
|
|
3510
|
+
label="${this.escapeHtml(a)}"
|
|
3511
3511
|
class="ol-asset__dialog"
|
|
3512
3512
|
data-fullscreen="${n}"
|
|
3513
3513
|
${n?'style="--width: 95vw; --max-width: 1600px;"':""}
|
|
3514
3514
|
>
|
|
3515
3515
|
<div class="ol-asset__dialog-content">
|
|
3516
3516
|
<div class="ol-asset__dialog-body">
|
|
3517
|
-
${
|
|
3517
|
+
${r}
|
|
3518
3518
|
</div>
|
|
3519
3519
|
</div>
|
|
3520
3520
|
</ol-dialog>
|
|
3521
|
-
`}attachEventListeners(){this.dialog&&(this.dialog.addEventListener("ol-after-hide",()=>{this.onClose?.()}),this.dialog.addEventListener("ol-request-close",
|
|
3521
|
+
`}attachEventListeners(){this.dialog&&(this.dialog.addEventListener("ol-after-hide",()=>{this.onClose?.()}),this.dialog.addEventListener("ol-request-close",e=>{e.detail?.source==="overlay"&&e.preventDefault()}))}escapeHtml(e){let t=document.createElement("div");return t.textContent=e,t.innerHTML}};var j=class extends ee.LitElement{constructor(){super(...arguments);this.loadingState="idle";this.assetRenderer=new Ve;this.isDownloading=!1;this.defaultDisplayOptions={showThumbnail:!0,showName:!1,showDescription:!1,showMetadata:!0,showPrice:!0,showDuration:!1,showSize:!1,showTags:!1,layout:"card",size:"medium"}}connectedCallback(){super.connectedCallback(),this.initializeServices(),this.loadAsset()}disconnectedCallback(){super.disconnectedCallback(),this.closeModal()}initializeServices(){this.assetLoader=new qe(this.config)}async loadAsset(){if(!this.type||!this.externalId){this.error="Type and externalId are required",this.loadingState="error";return}this.loadingState="loading",this.error=void 0;try{let t=await this.assetLoader.loadAsset(this.type,this.externalId);this.asset=t,this.loadingState="loaded",this.dispatchEvent(new CustomEvent("asset-load",{detail:t})),console.debug("Asset loaded:",t)}catch(t){console.error(`Error loading ${this.type} asset:`,t),this.error=t instanceof Error?t.message:"Failed to load asset",this.loadingState="error",this.dispatchEvent(new CustomEvent("asset-error",{detail:{error:this.error,asset:this.asset}}))}}async onDownload(t){if(!(!t.url||this.isDownloading)){this.isDownloading=!0;try{let i=await fetch(t.url,{method:"GET",mode:"cors",cache:"no-cache"});if(i.ok){let o=await i.blob(),r=window.URL.createObjectURL(o),n=document.createElement("a");n.href=r,n.download=this.getDownloadFilename(t),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),setTimeout(()=>window.URL.revokeObjectURL(r),100),this.dispatchEvent(new CustomEvent("asset-download",{detail:t})),this.isDownloading=!1;return}}catch(i){console.warn("Fetch strategy failed:",i)}try{let i=await fetch(t.url,{headers:{Accept:"*/*"},mode:"no-cors"});if(i.type==="opaque")throw new Error("No-cors response, cannot access blob");let o=await i.blob(),r=window.URL.createObjectURL(o),n=document.createElement("a");n.href=r,n.download=this.getDownloadFilename(t),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),setTimeout(()=>window.URL.revokeObjectURL(r),100),this.dispatchEvent(new CustomEvent("asset-download",{detail:t})),this.isDownloading=!1;return}catch(i){console.warn("No-cors strategy failed:",i)}try{let i=document.createElement("a");i.href=t.url,i.download=this.getDownloadFilename(t),i.target="_blank",i.rel="noopener noreferrer",i.style.position="absolute",i.style.left="-9999px",document.body.appendChild(i),i.click(),setTimeout(()=>{document.body.removeChild(i)},100),this.dispatchEvent(new CustomEvent("asset-download",{detail:t}))}catch(i){console.error("All download strategies failed:",i),window.open(t.url,"_blank")}this.isDownloading=!1}}getDownloadFilename(t){let i=Date.now(),o=this.getFileExtension(t);return`${t.name||`asset-${t.type}-${i}`}${o}`}getFileExtension(t){if(t.url){let r=new URL(t.url).pathname,n=r.lastIndexOf(".");if(n>0)return r.substring(n)}return{multimedia:".jpg",file:".bin",product:".jpg",faq:".txt"}[t.type]||""}async openModal(){this.asset&&(this.modalPortal=new Je(this.asset,this.closeModal.bind(this)),await this.modalPortal.open())}onMaximize(){if(this.asset){if(this.asset.type==="multimedia"||this.asset.type==="file"){let t=this.asset,i=t.slides&&t.slides.length>0,o=t.format||"";if((o.includes("presentation")||o.includes("pdf")||o.includes("powerpoint")||o.includes("slides")||o.includes("application/vnd.ms-powerpoint")||o.includes("application/vnd.openxmlformats-officedocument.presentationml")||i&&t.slides.length>0)&&!i)return}this.asset.type==="multimedia"||this.asset.type==="file"||this.asset.type==="faq"?this.openModal():this.dispatchEvent(new CustomEvent("asset-click",{detail:this.asset}))}}closeModal(){this.modalPortal&&(this.modalPortal.close(),this.modalPortal=void 0)}render(){let t={...this.defaultDisplayOptions,...this.config?.assetDisplayOptions||{}};return this.loadingState==="loading"?ee.html`
|
|
3522
3522
|
<div class="ol-asset ol-asset--loading">
|
|
3523
3523
|
${this.assetRenderer.renderLoading()}
|
|
3524
3524
|
</div>
|
|
3525
|
-
`:this.loadingState==="error"?
|
|
3525
|
+
`:this.loadingState==="error"?ee.html`
|
|
3526
3526
|
<div class="ol-asset ol-asset--error">
|
|
3527
3527
|
${this.assetRenderer.renderError(this.error)}
|
|
3528
3528
|
</div>
|
|
3529
|
-
`:this.asset?
|
|
3529
|
+
`:this.asset?ee.html`
|
|
3530
3530
|
<div
|
|
3531
|
-
class="ol-asset ${(0,
|
|
3531
|
+
class="ol-asset ${(0,ti.classMap)({"ol-asset--compact":t.layout==="compact","ol-asset--minimal":t.layout==="minimal","ol-asset--small":t.size==="small","ol-asset--medium":t.size==="medium","ol-asset--large":t.size==="large","ol-asset--faq":this.asset.type==="faq"})}"
|
|
3532
3532
|
>
|
|
3533
|
-
${this.assetRenderer.renderThumbnail(this.asset,
|
|
3534
|
-
${this.assetRenderer.renderContent(this.asset,
|
|
3533
|
+
${this.assetRenderer.renderThumbnail(this.asset,t,this.onDownload.bind(this),this.isDownloading,this.onMaximize.bind(this))}
|
|
3534
|
+
${this.assetRenderer.renderContent(this.asset,t)}
|
|
3535
3535
|
</div>
|
|
3536
|
-
`:
|
|
3536
|
+
`:ee.html``}};j.styles=[ei],v([(0,P.property)({type:String})],j.prototype,"type",2),v([(0,P.property)({type:String})],j.prototype,"externalId",2),v([(0,P.property)({type:Object})],j.prototype,"config",2),v([(0,P.state)()],j.prototype,"asset",2),v([(0,P.state)()],j.prototype,"loadingState",2),v([(0,P.state)()],j.prototype,"error",2),v([(0,P.state)()],j.prototype,"assetLoader",2),v([(0,P.state)()],j.prototype,"assetRenderer",2),v([(0,P.state)()],j.prototype,"isDownloading",2),j=v([K("osb-asset")],j);var No=require("@onlive.ai/ui/dist/components/button/button.js"),Ho=require("@onlive.ai/ui/dist/components/details/details.js"),Vo=require("@onlive.ai/ui/dist/components/icon/icon.js"),Jo=require("@onlive.ai/ui/dist/components/input/input.js"),Bo=require("@onlive.ai/ui/dist/components/option/option.js"),Ko=require("@onlive.ai/ui/dist/components/select/select.js"),u=require("lit"),w=require("lit/decorators.js"),te=require("lit/directives/class-map.js"),me=require("lit/directives/if-defined.js"),Be=require("lit/directives/repeat.js"),k=require("lit/directives/when.js");var Ro=require("@onlive.ai/ui/dist/components/button/button.js"),Io=require("@onlive.ai/ui/dist/components/dropdown/dropdown.js"),Eo=require("@onlive.ai/ui/dist/components/icon/icon.js"),zo=require("@onlive.ai/ui/dist/components/menu-item/menu-item.js"),Oo=require("@onlive.ai/ui/dist/components/menu/menu.js"),ue=require("lit"),lt=require("lit/decorators.js");var ii=require("lit"),oi=ii.css`
|
|
3537
3537
|
:host {
|
|
3538
3538
|
display: inline-block;
|
|
3539
3539
|
}
|
|
@@ -3596,7 +3596,7 @@ video::-webkit-media-text-track-display {
|
|
|
3596
3596
|
background: var(--ol-color-success-300, #86efac);
|
|
3597
3597
|
transform: scale(1.1);
|
|
3598
3598
|
}
|
|
3599
|
-
`;var
|
|
3599
|
+
`;var R=class extends ue.LitElement{constructor(){super(...arguments);this.defaultConfig={maxFileSize:10*1024*1024,multiple:!1,showImage:!0,showVideo:!0,showDocument:!0}}getAllowedExtensions(t){switch(t){case"image":return[".jpg",".jpeg",".png",".gif",".webp",".svg"];case"video":return[".mp4",".avi",".mov",".wmv",".flv",".webm"];case"document":return[".pdf",".doc",".docx",".txt",".rtf",".odt"];default:return[]}}getAcceptAttribute(t){return this.getAllowedExtensions(t).join(",")}getFileTypeLabel(t){switch(t){case"image":return"Imagen";case"video":return"Video";case"document":return"Documento";default:return"Archivo"}}getAvailableTypes(){let t={...this.defaultConfig,...this.config},i=[];return t.showImage&&i.push("image"),t.showVideo&&i.push("video"),t.showDocument&&i.push("document"),i}onTypeSelect(t){this.openFileDialog(t)}openFileDialog(t){let i=document.createElement("input");i.type="file",i.accept=this.getAcceptAttribute(t),i.multiple=this.config?.multiple||!1,i.onchange=o=>{let r=o.target.files?.[0];r&&this.handleFileSelection(r,t)},i.click()}handleFileSelection(t,i){let o=this.validateFile(t,i);if(!o.valid){this.dispatchEvent(new CustomEvent("osb-upload-error",{detail:{error:o.error},bubbles:!0}));return}this.dispatchEvent(new CustomEvent("osb-file-selected",{detail:{file:t,type:i},bubbles:!0})),this.events?.onFileSelected?.(t,i)}validateFile(t,i){let o={...this.defaultConfig,...this.config};if(o.maxFileSize&&t.size>o.maxFileSize)return{valid:!1,error:`El archivo es demasiado grande. Tama\xF1o m\xE1ximo: ${Math.round(o.maxFileSize/1048576)}MB`};let r=t.name.toLowerCase(),n=this.getAllowedExtensions(i);return n.some(l=>r.endsWith(l.toLowerCase()))?{valid:!0}:{valid:!1,error:`Tipo de archivo no v\xE1lido. Extensiones permitidas: ${n.join(", ")}`}}render(){let t=this.getAvailableTypes();return t.length===0?ue.html`<div class="ol-upload ol-upload--empty">No hay tipos de archivo disponibles</div>`:ue.html`
|
|
3600
3600
|
<div class="ol-upload">
|
|
3601
3601
|
<ol-dropdown placement="bottom-start" distance="8">
|
|
3602
3602
|
<div slot="trigger">
|
|
@@ -3605,16 +3605,16 @@ video::-webkit-media-text-track-display {
|
|
|
3605
3605
|
</div>
|
|
3606
3606
|
|
|
3607
3607
|
<ol-menu>
|
|
3608
|
-
${
|
|
3609
|
-
<ol-menu-item @click="${()=>this.onTypeSelect(
|
|
3610
|
-
<ol-icon slot="prefix" name="${this.getIconName(
|
|
3611
|
-
${this.getFileTypeLabel(
|
|
3608
|
+
${t.map(i=>ue.html`
|
|
3609
|
+
<ol-menu-item @click="${()=>this.onTypeSelect(i)}">
|
|
3610
|
+
<ol-icon slot="prefix" name="${this.getIconName(i)}"></ol-icon>
|
|
3611
|
+
${this.getFileTypeLabel(i)}
|
|
3612
3612
|
</ol-menu-item>
|
|
3613
3613
|
`)}
|
|
3614
3614
|
</ol-menu>
|
|
3615
3615
|
</ol-dropdown>
|
|
3616
3616
|
</div>
|
|
3617
|
-
`}getIconName(
|
|
3617
|
+
`}getIconName(t){switch(t){case"image":return"image";case"video":return"file-play";case"document":return"file-text";default:return"file"}}};R.styles=[oi],v([(0,lt.property)({type:Object})],R.prototype,"config",2),v([(0,lt.property)({type:Object})],R.prototype,"events",2),R=v([K("osb-upload")],R);var si=require("lit"),ri=si.css`
|
|
3618
3618
|
:host {
|
|
3619
3619
|
display: block;
|
|
3620
3620
|
position: fixed;
|
|
@@ -4413,207 +4413,207 @@ video::-webkit-media-text-track-display {
|
|
|
4413
4413
|
height: 120px;
|
|
4414
4414
|
}
|
|
4415
4415
|
}
|
|
4416
|
-
`;var
|
|
4416
|
+
`;var $={products:{label:"PRODUCTS",icon:"shopping-bag",enabled:!0,displayOptions:{showThumbnail:!0,showDescription:!1,showPrice:!0,showTags:!1,thumbnailSize:"small",layout:"grid"}},videos:{label:"VIDEOS",icon:"video",enabled:!0,displayOptions:{showThumbnail:!0,showDescription:!1,showDuration:!0,showSize:!1,thumbnailSize:"small",layout:"grid"}},images:{label:"IMAGES",icon:"image",enabled:!0,displayOptions:{showThumbnail:!0,showDescription:!1,showSize:!1,thumbnailSize:"small",layout:"grid"}},presentations:{label:"PRESENTATIONS",icon:"file-text",enabled:!0,displayOptions:{showThumbnail:!0,showDescription:!1,showSize:!1,thumbnailSize:"small",layout:"grid"}},faqs:{label:"FAQS",icon:"help-circle",enabled:!0,displayOptions:{showThumbnail:!1,showDescription:!0,showSize:!1,thumbnailSize:"small",layout:"list"}},audios:{label:"AUDIOS",icon:"music",enabled:!1,displayOptions:{showThumbnail:!0,showDescription:!1,showDuration:!0,showSize:!1,thumbnailSize:"small",layout:"grid"}},"special-effects":{label:"SPECIAL EFFECTS",icon:"zap",enabled:!1,displayOptions:{showThumbnail:!0,showDescription:!1,showSize:!1,thumbnailSize:"small",layout:"grid"}}};var f=class extends u.LitElement{constructor(){super(...arguments);this.selectedCategory="products";this.disabled=!1;this.isUploading=!1;this.uploadProgress=0;this.categoryStates=new Map;this.unifiedSearchQuery="";this.extraFilters=[];this.activeFilters={};this.loadingFilters=!1;this.defaultSearchConfig={placeholder:"Search all assets...",debounceMs:300,minLength:2}}async firstUpdated(){this.initializeService(),this.initializeCategoryStates(),await this.loadExtraFilters()}initializeService(){this.config?.multimediaService&&(this.multimediaService=de.initialize(this.config.multimediaService)),this.config?.productService&&(this.productService=X.initialize(this.config.productService)),this.config?.faqsService&&(this.faqsService=le.initialize(this.config.faqsService)),this.config?.fileService&&(this.fileService=ce.initialize(this.config.fileService))}initializeCategoryStates(){(this.config?.customCategories||Object.keys($)).forEach(i=>{this.categoryStates.set(i,{category:i,items:[],pagination:{page:1,limit:this.config?.itemsPerPage||12,total:0,hasMore:!1,loading:!1},searchQuery:"",loading:!1})})}async loadExtraFilters(){if(!this.config?.enableExtraFilters||!this.faqsService)return;let t=this.config.faqsService?.organizationId;if(!t){console.warn("Organization ID required for loading extra filters");return}this.loadingFilters=!0;try{let i=await this.faqsService.getSettingsByOrganization(t,this.config.userGroupId);i?.extraFilters&&(this.extraFilters=i.extraFilters.filter(o=>o.enabled&&(o.entity==="all"||o.entity==="assets")).sort((o,r)=>o.order-r.order))}catch(i){console.error("Error loading extra filters:",i)}finally{this.loadingFilters=!1}}hasActiveFilters(){return Object.keys(this.activeFilters).length>0}convertToExtraFields(t){if(!t||Object.keys(t).length===0)return;let i={};for(let[o,r]of Object.entries(t))r!=null&&(Array.isArray(r)?r.length>0&&(i[o]=r.join(",")):typeof r=="string"&&r.trim()!==""&&(r==="true"?i[o]=!0:r==="false"?i[o]=!1:!isNaN(Number(r))&&r.trim()!==""?i[o]=Number(r):i[o]=r));return Object.keys(i).length>0?i:void 0}async loadCategoryData(t,i="",o=1){if(!this.multimediaService&&t!=="faqs"&&t!=="products"||!this.productService&&t==="products"||!this.faqsService&&t==="faqs")return;let r=this.categoryStates.get(t);if(!r)return;this.updateCategoryState(t,{loading:!0,error:void 0});let n=this.hasActiveFilters()?this.activeFilters:void 0;try{let a=[],l=0;switch(t){case"products":{let m=await this.productService.getProducts({title:i,limit:r.pagination.limit,includeSecureToken:!0,extraFields:this.convertToExtraFields(n)});a=this.mapProductsToAssetItems(m),l=m.length;break}case"images":{let m=await this.multimediaService.getImages({search:i,page:o,limit:r.pagination.limit,includeSecureToken:!0,extraFilters:n});a=this.mapMultimediaToAssetItems(m.items,"images"),l=m.total;break}case"videos":{let m=await this.multimediaService.getVideos({search:i,page:o,limit:r.pagination.limit,includeSecureToken:!0,extraFilters:n});a=this.mapMultimediaToAssetItems(m.items,"videos"),l=m.total;break}case"presentations":{let m=await this.multimediaService.getPresentations({search:i,page:o,limit:r.pagination.limit,includeSecureToken:!0,extraFilters:n});a=this.mapMultimediaToAssetItems(m.items,"presentations"),l=m.total;break}case"faqs":{let m=await this.faqsService.getFaqs({search:i,isActive:!0,page:o,organizationId:this.config?.faqsService?.organizationId,limit:r.pagination.limit,sortBy:"priority",sortOrder:"desc",extraFilters:n});a=this.mapFaqsToAssetItems(m.data),l=m.total;break}}let d=o===1?a:[...r.items,...a];this.updateCategoryState(t,{items:d,pagination:{...r.pagination,page:o,total:l,hasMore:d.length<l,loading:!1},searchQuery:i,loading:!1})}catch(a){console.error(`Error loading ${t} data:`,a),this.updateCategoryState(t,{loading:!1,error:a instanceof Error?a.message:"Failed to load data"})}}mapProductsToAssetItems(t){return t.map(i=>({id:i.id,name:i.name,description:i.description,url:i.url,thumbnail:i.images?.[0],type:"products",price:i.price,currency:i.currency,tags:i.tags,secureToken:i.secureToken,metadata:{externalId:i.externalId,category:i.category,providerType:i.providerType,variants:i.variants,options:i.options}}))}mapMultimediaToAssetItems(t,i){return t?.map(o=>({id:o.id,name:o.name,description:o.description,url:o.url,thumbnail:i==="images"?o.url:o.animatedCoverUrl,type:i,size:o.size,format:o.format,duration:o.duration,labels:o.labels,secureToken:o.secureToken,metadata:{organizationId:o.organizationId,status:o.status,vodUrl:o.vodUrl,slides:o.slides}}))}mapFaqsToAssetItems(t){return t.map(i=>({id:i.id,name:i.question,description:i.answer,url:`#faq-${i.id}`,type:"faqs",metadata:{organizationId:i.organizationId,groupId:i.groupId,priority:i.priority,isActive:i.isActive,createdAt:i.createdAt,updatedAt:i.updatedAt}}))}updateCategoryState(t,i){let o=this.categoryStates.get(t);o&&(this.categoryStates.set(t,{...o,...i}),this.requestUpdate())}async onCategoryToggle(t){if(this.disabled)return;let i=this.categoryStates.get(t);i&&i.items.length===0&&!i.loading&&await this.loadCategoryData(t,this.unifiedSearchQuery),this.dispatchEvent(new CustomEvent("category-change",{detail:t}))}async onUnifiedSearchInput(t){if(this.disabled)return;let o=t.target.value.trim();this.unifiedSearchQuery=o,this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=window.setTimeout(async()=>{o.length>=(this.searchConfig?.minLength||this.defaultSearchConfig.minLength)?(await this.searchAllCategories(o),this.dispatchEvent(new CustomEvent("search",{detail:{query:o,category:"all"}}))):o.length===0&&await this.clearSearchAllCategories()},this.searchConfig?.debounceMs||this.defaultSearchConfig.debounceMs)}async searchAllCategories(t){let i=this.config?.customCategories||Object.keys($);for(let o of i)this.updateCategoryState(o,{searchQuery:t}),await this.loadCategoryData(o,t,1)}async clearSearchAllCategories(){let t=this.config?.customCategories||Object.keys($);for(let i of t)this.updateCategoryState(i,{searchQuery:""}),await this.loadCategoryData(i,"",1)}async onFilterChange(t,i){if(!this.disabled){if(!i||Array.isArray(i)&&i.length===0||i===""){let{[t]:o,...r}=this.activeFilters;this.activeFilters=r}else this.activeFilters={...this.activeFilters,[t]:i};await this.reloadAllOpenCategories(),this.dispatchEvent(new CustomEvent("filter-change",{detail:{filterName:t,value:i,activeFilters:this.activeFilters}}))}}async reloadAllOpenCategories(){let t=this.config?.customCategories||Object.keys($);for(let i of t){let o=this.categoryStates.get(i);o&&o.items.length>0&&await this.loadCategoryData(i,o.searchQuery,1)}}renderExtraFilters(){return this.extraFilters.length?u.html`
|
|
4417
4417
|
<div class="ol-sidebar__extra-filters">
|
|
4418
|
-
${(0,
|
|
4418
|
+
${(0,Be.repeat)(this.extraFilters,t=>t.name,t=>this.renderFilter(t))}
|
|
4419
4419
|
</div>
|
|
4420
|
-
`:
|
|
4420
|
+
`:u.html``}renderFilter(t){switch(t.type){case"select":return this.renderSelectFilter(t);case"multiselect":return this.renderMultiselectFilter(t);case"text":return this.renderTextFilter(t);default:return u.html``}}renderSelectFilter(t){let i=this.activeFilters[t.name];return u.html`
|
|
4421
4421
|
<div class="ol-sidebar__filter">
|
|
4422
|
-
<label class="ol-sidebar__filter-label">${
|
|
4422
|
+
<label class="ol-sidebar__filter-label">${t.label}</label>
|
|
4423
4423
|
<ol-select
|
|
4424
4424
|
class="ol-sidebar__filter-select"
|
|
4425
|
-
placeholder=${(0
|
|
4425
|
+
placeholder=${(0,me.ifDefined)(t.placeholder||`Select ${t.label.toLowerCase()}`)}
|
|
4426
4426
|
clearable
|
|
4427
4427
|
size="small"
|
|
4428
4428
|
?disabled=${this.disabled}
|
|
4429
|
-
.value=${
|
|
4430
|
-
@ol-change=${
|
|
4429
|
+
.value=${i||""}
|
|
4430
|
+
@ol-change=${o=>{let r=o.target;this.onFilterChange(t.name,r.value)}}
|
|
4431
4431
|
>
|
|
4432
|
-
${
|
|
4433
|
-
<ol-option value=${
|
|
4432
|
+
${t.values?.map(o=>u.html`
|
|
4433
|
+
<ol-option value=${o}>${o}</ol-option>
|
|
4434
4434
|
`)}
|
|
4435
4435
|
</ol-select>
|
|
4436
4436
|
</div>
|
|
4437
|
-
`}renderMultiselectFilter(
|
|
4437
|
+
`}renderMultiselectFilter(t){let i=this.activeFilters[t.name]||[];return u.html`
|
|
4438
4438
|
<div class="ol-sidebar__filter">
|
|
4439
|
-
<label class="ol-sidebar__filter-label">${
|
|
4439
|
+
<label class="ol-sidebar__filter-label">${t.label}</label>
|
|
4440
4440
|
<ol-select
|
|
4441
4441
|
class="ol-sidebar__filter-select"
|
|
4442
|
-
placeholder=${(0
|
|
4442
|
+
placeholder=${(0,me.ifDefined)(t.placeholder||`Select ${t.label.toLowerCase()}`)}
|
|
4443
4443
|
multiple
|
|
4444
4444
|
clearable
|
|
4445
4445
|
size="small"
|
|
4446
4446
|
?disabled=${this.disabled}
|
|
4447
|
-
.value=${
|
|
4448
|
-
@ol-change=${
|
|
4447
|
+
.value=${i}
|
|
4448
|
+
@ol-change=${o=>{let r=o.target,n=Array.isArray(r.value)?r.value:[r.value].filter(Boolean);this.onFilterChange(t.name,n)}}
|
|
4449
4449
|
>
|
|
4450
|
-
${
|
|
4451
|
-
<ol-option value=${
|
|
4450
|
+
${t.values?.map(o=>u.html`
|
|
4451
|
+
<ol-option value=${o}>${o}</ol-option>
|
|
4452
4452
|
`)}
|
|
4453
4453
|
</ol-select>
|
|
4454
4454
|
</div>
|
|
4455
|
-
`}renderTextFilter(
|
|
4455
|
+
`}renderTextFilter(t){let i=this.activeFilters[t.name]||"";return u.html`
|
|
4456
4456
|
<div class="ol-sidebar__filter">
|
|
4457
|
-
<label class="ol-sidebar__filter-label">${
|
|
4457
|
+
<label class="ol-sidebar__filter-label">${t.label}</label>
|
|
4458
4458
|
<ol-input
|
|
4459
4459
|
class="ol-sidebar__filter-input"
|
|
4460
|
-
placeholder=${(0
|
|
4460
|
+
placeholder=${(0,me.ifDefined)(t.placeholder||`Enter ${t.label.toLowerCase()}`)}
|
|
4461
4461
|
size="small"
|
|
4462
4462
|
?disabled=${this.disabled}
|
|
4463
|
-
.value=${
|
|
4464
|
-
@ol-input=${
|
|
4463
|
+
.value=${i}
|
|
4464
|
+
@ol-input=${o=>{let r=o.target;this.searchTimeout&&clearTimeout(this.searchTimeout),this.searchTimeout=window.setTimeout(()=>{this.onFilterChange(t.name,r.value)},this.searchConfig?.debounceMs||this.defaultSearchConfig.debounceMs)}}
|
|
4465
4465
|
></ol-input>
|
|
4466
4466
|
</div>
|
|
4467
|
-
`}async onLoadMore(
|
|
4467
|
+
`}async onLoadMore(t){if(this.disabled)return;let i=this.categoryStates.get(t);!i||!i.pagination.hasMore||i.pagination.loading||(await this.loadCategoryData(t,i.searchQuery,i.pagination.page+1),this.dispatchEvent(new CustomEvent("load-more",{detail:t})))}onItemSelect(t){this.disabled||this.dispatchEvent(new CustomEvent("item-select",{detail:t}))}async onFileSelected(t){if(this.disabled)return;if(!this.fileService){console.warn("FileService not configured");return}let{file:i,type:o}=t.detail;this.isUploading=!0,this.uploadProgress=0;try{let r=await this.fileService.uploadFile(i,{bucketType:"conversations",path:"scanned",description:`${o} uploaded from sidebar`,onProgress:n=>{this.uploadProgress=n}});if(r.success)this.dispatchEvent(new CustomEvent("file-uploaded",{detail:{id:r.id,name:r.name,url:r.url,type:"file"}}));else throw new Error(r.error||"Upload failed")}catch(r){console.error("Error uploading file:",r),this.dispatchEvent(new CustomEvent("file-upload-error",{detail:{error:r instanceof Error?r.message:"Unknown error"},bubbles:!0}))}finally{this.isUploading=!1,this.uploadProgress=0}}renderCategoryHeader(t){let i=$[t],r=this.categoryStates.get(t)?.items.length||0;return u.html`
|
|
4468
4468
|
<div class="ol-sidebar__category-header">
|
|
4469
4469
|
<div class="ol-sidebar__category-info">
|
|
4470
|
-
<span class="ol-sidebar__category-label">${
|
|
4471
|
-
${(0,
|
|
4472
|
-
<span class="ol-sidebar__category-count">(${
|
|
4470
|
+
<span class="ol-sidebar__category-label">${i.label}</span>
|
|
4471
|
+
${(0,k.when)(r>0,()=>u.html`
|
|
4472
|
+
<span class="ol-sidebar__category-count">(${r})</span>
|
|
4473
4473
|
`)}
|
|
4474
4474
|
</div>
|
|
4475
4475
|
|
|
4476
4476
|
</div>
|
|
4477
|
-
`}renderAssetItem(
|
|
4477
|
+
`}renderAssetItem(t,i){return u.html`
|
|
4478
4478
|
<div
|
|
4479
|
-
class="ol-sidebar__asset-item ${(0,
|
|
4480
|
-
@click=${()=>this.onItemSelect(
|
|
4479
|
+
class="ol-sidebar__asset-item ${(0,te.classMap)({"ol-sidebar__asset-item--grid":i.layout==="grid","ol-sidebar__asset-item--list":i.layout==="list","ol-sidebar__asset-item--faq":t.type==="faqs","ol-sidebar__asset-item--disabled":this.disabled})}"
|
|
4480
|
+
@click=${()=>this.onItemSelect(t)}
|
|
4481
4481
|
>
|
|
4482
|
-
${this.renderAssetThumbnail(
|
|
4483
|
-
${this.renderAssetContent(
|
|
4482
|
+
${this.renderAssetThumbnail(t)}
|
|
4483
|
+
${this.renderAssetContent(t,i)}
|
|
4484
4484
|
</div>
|
|
4485
|
-
`}renderAssetThumbnail(
|
|
4486
|
-
${(0,
|
|
4485
|
+
`}renderAssetThumbnail(t){return t.type==="faqs"?u.html``:u.html`
|
|
4486
|
+
${(0,k.when)(t.type==="videos",()=>u.html`
|
|
4487
4487
|
<div class="ol-sidebar__asset-thumbnail">
|
|
4488
4488
|
<och-player
|
|
4489
4489
|
class="och__media-visualizer__item--video"
|
|
4490
|
-
.sources=${[{src:
|
|
4490
|
+
.sources=${[{src:t.url,type:t.format||"video/mp4"}]}
|
|
4491
4491
|
></och-player>
|
|
4492
4492
|
<div class="ol-sidebar__asset-duration">
|
|
4493
|
-
${this.formatDuration(
|
|
4493
|
+
${this.formatDuration(t.duration)}
|
|
4494
4494
|
</div>
|
|
4495
4495
|
</div>
|
|
4496
|
-
`,()=>
|
|
4496
|
+
`,()=>u.html`
|
|
4497
4497
|
<div class="ol-sidebar__asset-thumbnail">
|
|
4498
4498
|
<img
|
|
4499
|
-
src="${(0
|
|
4500
|
-
alt="${
|
|
4499
|
+
src="${(0,me.ifDefined)(t.thumbnail)}"
|
|
4500
|
+
alt="${t.name}"
|
|
4501
4501
|
class="ol-sidebar__asset-image"
|
|
4502
4502
|
/>
|
|
4503
4503
|
</div>
|
|
4504
4504
|
`)}
|
|
4505
|
-
`}renderAssetContent(
|
|
4505
|
+
`}renderAssetContent(t,i){return u.html`
|
|
4506
4506
|
<div class="ol-sidebar__asset-content">
|
|
4507
|
-
${this.renderAssetName(
|
|
4508
|
-
${this.renderAssetPrice(
|
|
4509
|
-
${this.renderAssetPresentation(
|
|
4510
|
-
${this.renderAssetDescription(
|
|
4511
|
-
${this.renderAssetMeta(
|
|
4512
|
-
${this.renderAssetTags(
|
|
4507
|
+
${this.renderAssetName(t)}
|
|
4508
|
+
${this.renderAssetPrice(t)}
|
|
4509
|
+
${this.renderAssetPresentation(t)}
|
|
4510
|
+
${this.renderAssetDescription(t,i)}
|
|
4511
|
+
${this.renderAssetMeta(t,i)}
|
|
4512
|
+
${this.renderAssetTags(t,i)}
|
|
4513
4513
|
</div>
|
|
4514
|
-
`}renderAssetName(
|
|
4515
|
-
<div class="ol-sidebar__asset-name ${(0,
|
|
4516
|
-
${
|
|
4514
|
+
`}renderAssetName(t){return u.html`
|
|
4515
|
+
<div class="ol-sidebar__asset-name ${(0,te.classMap)({"ol-sidebar__asset-name--faq":t.type==="faqs"})}">
|
|
4516
|
+
${t.name}
|
|
4517
4517
|
</div>
|
|
4518
|
-
`}renderAssetPrice(
|
|
4519
|
-
${(0,
|
|
4518
|
+
`}renderAssetPrice(t){return u.html`
|
|
4519
|
+
${(0,k.when)(t.type==="products"&&t.price,()=>u.html`
|
|
4520
4520
|
<div class="ol-sidebar__asset-price">
|
|
4521
|
-
${
|
|
4521
|
+
${t.currency} ${t.price}
|
|
4522
4522
|
</div>
|
|
4523
4523
|
`)}
|
|
4524
|
-
`}renderAssetPresentation(
|
|
4525
|
-
${(0,
|
|
4524
|
+
`}renderAssetPresentation(t){return u.html`
|
|
4525
|
+
${(0,k.when)(t.type==="presentations",()=>u.html`
|
|
4526
4526
|
<div class="ol-sidebar__asset-presentation">
|
|
4527
|
-
${(0,
|
|
4527
|
+
${(0,k.when)(t.metadata?.slides&&t.metadata.slides.length>0,()=>u.html`
|
|
4528
4528
|
<div class="ol-sidebar__asset-presentation-preview">
|
|
4529
4529
|
<img
|
|
4530
|
-
src=${
|
|
4530
|
+
src=${t.metadata?.slides[0]}
|
|
4531
4531
|
alt="Presentation preview"
|
|
4532
4532
|
class="ol-sidebar__asset-presentation-image"
|
|
4533
4533
|
/>
|
|
4534
4534
|
<div class="ol-sidebar__asset-presentation-format">
|
|
4535
|
-
${this.getFormat(
|
|
4535
|
+
${this.getFormat(t.format)}
|
|
4536
4536
|
</div>
|
|
4537
4537
|
</div>
|
|
4538
|
-
`,()=>
|
|
4538
|
+
`,()=>u.html`
|
|
4539
4539
|
<div class="ol-sidebar__asset-presentation-fallback">
|
|
4540
4540
|
<div class="ol-sidebar__asset-presentation-icon">📄</div>
|
|
4541
4541
|
<div class="ol-sidebar__asset-presentation-format">
|
|
4542
|
-
${this.getFormat(
|
|
4542
|
+
${this.getFormat(t.format)}
|
|
4543
4543
|
</div>
|
|
4544
4544
|
</div>
|
|
4545
4545
|
`)}
|
|
4546
4546
|
</div>
|
|
4547
4547
|
`)}
|
|
4548
|
-
`}renderAssetDescription(
|
|
4549
|
-
${(0,
|
|
4550
|
-
<div class="ol-sidebar__asset-description ${(0,
|
|
4551
|
-
${
|
|
4548
|
+
`}renderAssetDescription(t,i){return u.html`
|
|
4549
|
+
${(0,k.when)(i.showDescription&&t.description&&t.type!=="products",()=>u.html`
|
|
4550
|
+
<div class="ol-sidebar__asset-description ${(0,te.classMap)({"ol-sidebar__asset-description--faq":t.type==="faqs"})}">
|
|
4551
|
+
${t.description}
|
|
4552
4552
|
</div>
|
|
4553
4553
|
`)}
|
|
4554
|
-
`}renderAssetMeta(
|
|
4554
|
+
`}renderAssetMeta(t,i){return u.html`
|
|
4555
4555
|
<div class="ol-sidebar__asset-meta">
|
|
4556
|
-
${(0,
|
|
4556
|
+
${(0,k.when)(i.showSize&&t.size,()=>u.html`
|
|
4557
4557
|
<span class="ol-sidebar__asset-size">
|
|
4558
|
-
${this.formatFileSize(
|
|
4558
|
+
${this.formatFileSize(t.size)}
|
|
4559
4559
|
</span>
|
|
4560
4560
|
`)}
|
|
4561
4561
|
</div>
|
|
4562
|
-
`}renderAssetTags(
|
|
4563
|
-
${(0,
|
|
4562
|
+
`}renderAssetTags(t,i){return u.html`
|
|
4563
|
+
${(0,k.when)(i.showTags&&t.tags&&t.tags.length>0,()=>u.html`
|
|
4564
4564
|
<div class="ol-sidebar__asset-tags">
|
|
4565
|
-
${
|
|
4566
|
-
<span class="ol-sidebar__asset-tag">${
|
|
4565
|
+
${t.tags?.map(o=>u.html`
|
|
4566
|
+
<span class="ol-sidebar__asset-tag">${o}</span>
|
|
4567
4567
|
`)}
|
|
4568
4568
|
</div>
|
|
4569
4569
|
`)}
|
|
4570
|
-
`}renderCategoryContent(
|
|
4570
|
+
`}renderCategoryContent(t){let i=this.categoryStates.get(t),o=$[t];return i?u.html`
|
|
4571
4571
|
<div class="ol-sidebar__category-content">
|
|
4572
4572
|
|
|
4573
|
-
${(0,
|
|
4573
|
+
${(0,k.when)(i.loading&&i.items.length===0,()=>u.html`
|
|
4574
4574
|
<div class="ol-sidebar__loading">
|
|
4575
4575
|
<div class="ol-sidebar__spinner"></div>
|
|
4576
|
-
<span>Loading ${
|
|
4576
|
+
<span>Loading ${o.label.toLowerCase()}...</span>
|
|
4577
4577
|
</div>
|
|
4578
4578
|
`)}
|
|
4579
4579
|
|
|
4580
|
-
${(0,
|
|
4580
|
+
${(0,k.when)(i.error,()=>u.html`
|
|
4581
4581
|
<div class="ol-sidebar__error">
|
|
4582
4582
|
<span class="ol-sidebar__error-icon">⚠</span>
|
|
4583
|
-
<span>${
|
|
4583
|
+
<span>${i.error}</span>
|
|
4584
4584
|
</div>
|
|
4585
4585
|
`)}
|
|
4586
4586
|
|
|
4587
|
-
${(0,
|
|
4588
|
-
<div class="ol-sidebar__assets ${(0,
|
|
4589
|
-
${(0,
|
|
4587
|
+
${(0,k.when)(i.items.length>0,()=>u.html`
|
|
4588
|
+
<div class="ol-sidebar__assets ${(0,te.classMap)({"ol-sidebar__assets--list":o.displayOptions.layout==="list"})}">
|
|
4589
|
+
${(0,Be.repeat)(i.items,r=>r.id,r=>this.renderAssetItem(r,o.displayOptions))}
|
|
4590
4590
|
</div>
|
|
4591
4591
|
`)}
|
|
4592
4592
|
|
|
4593
|
-
${(0,
|
|
4593
|
+
${(0,k.when)(i.pagination.hasMore,()=>u.html`
|
|
4594
4594
|
<div class="ol-sidebar__load-more">
|
|
4595
4595
|
<ol-button
|
|
4596
4596
|
class="ol-sidebar__load-more-button"
|
|
4597
|
-
?disabled=${
|
|
4598
|
-
@click=${()=>this.onLoadMore(
|
|
4597
|
+
?disabled=${i.pagination.loading||this.disabled}
|
|
4598
|
+
@click=${()=>this.onLoadMore(t)}
|
|
4599
4599
|
>
|
|
4600
|
-
${
|
|
4600
|
+
${i.pagination.loading?"Loading...":"Load More"}
|
|
4601
4601
|
</ol-button>
|
|
4602
4602
|
</div>
|
|
4603
4603
|
`)}
|
|
4604
4604
|
|
|
4605
|
-
${(0,
|
|
4605
|
+
${(0,k.when)(!i.loading&&i.items.length===0&&!i.error,()=>u.html`
|
|
4606
4606
|
<div class="ol-sidebar__empty">
|
|
4607
|
-
<span>No ${
|
|
4607
|
+
<span>No ${o.label.toLowerCase()}s found</span>
|
|
4608
4608
|
</div>
|
|
4609
4609
|
`)}
|
|
4610
4610
|
</div>
|
|
4611
|
-
`:
|
|
4612
|
-
<div class="ol-sidebar ${(0,
|
|
4611
|
+
`:u.html``}formatFileSize(t){let i=["B","KB","MB","GB"];if(t===0)return"0 B";let o=Math.floor(Math.log(t)/Math.log(1024));return Math.round(t/1024**o*100)/100+" "+i[o]}getFormat(t){return t.split("/")[1]}formatDuration(t){let i=Math.floor(t/60),o=Math.floor(t%60);return`${i}:${o.toString().padStart(2,"0")}`}render(){let t=this.config?.customCategories||Object.keys($);return u.html`
|
|
4612
|
+
<div class="ol-sidebar ${(0,te.classMap)({"ol-sidebar--disabled":this.disabled})}">
|
|
4613
4613
|
<div class="ol-sidebar__header">
|
|
4614
4614
|
<div class="ol-sidebar__header-top">
|
|
4615
4615
|
<h2 class="ol-sidebar__title">Assets</h2>
|
|
4616
|
-
${(0,
|
|
4616
|
+
${(0,k.when)(this.config?.enableUpload&&this.fileService&&!this.disabled,()=>u.html`
|
|
4617
4617
|
<osb-upload
|
|
4618
4618
|
.config=${{maxFileSize:10*1024*1024,showImage:!0,showVideo:!0,showDocument:!0}}
|
|
4619
4619
|
@osb-file-selected=${this.onFileSelected}
|
|
@@ -4622,7 +4622,7 @@ video::-webkit-media-text-track-display {
|
|
|
4622
4622
|
<ol-icon name="plus"></ol-icon>
|
|
4623
4623
|
</ol-button>
|
|
4624
4624
|
</osb-upload>
|
|
4625
|
-
${(0,
|
|
4625
|
+
${(0,k.when)(this.isUploading,()=>u.html`
|
|
4626
4626
|
<div class="ol-sidebar__upload-progress">
|
|
4627
4627
|
<div class="ol-sidebar__upload-progress-bar">
|
|
4628
4628
|
<div
|
|
@@ -4637,20 +4637,20 @@ video::-webkit-media-text-track-display {
|
|
|
4637
4637
|
`)}
|
|
4638
4638
|
`)}
|
|
4639
4639
|
</div>
|
|
4640
|
-
${(0,
|
|
4640
|
+
${(0,k.when)(this.config?.showSearch,()=>u.html`
|
|
4641
4641
|
<div class="ol-sidebar__unified-search">
|
|
4642
4642
|
<input
|
|
4643
4643
|
class="ol-sidebar__unified-search-input"
|
|
4644
4644
|
type="text"
|
|
4645
|
-
placeholder="${(0
|
|
4645
|
+
placeholder="${(0,me.ifDefined)(this.searchConfig?.placeholder||this.defaultSearchConfig.placeholder)}"
|
|
4646
4646
|
.value=${this.unifiedSearchQuery}
|
|
4647
4647
|
?disabled=${this.disabled}
|
|
4648
4648
|
@input=${this.onUnifiedSearchInput}
|
|
4649
4649
|
/>
|
|
4650
4650
|
</div>
|
|
4651
4651
|
`)}
|
|
4652
|
-
${(0,
|
|
4653
|
-
${(0,
|
|
4652
|
+
${(0,k.when)(this.config?.enableExtraFilters&&this.extraFilters.length>0,()=>this.renderExtraFilters())}
|
|
4653
|
+
${(0,k.when)(this.loadingFilters,()=>u.html`
|
|
4654
4654
|
<div class="ol-sidebar__filters-loading">
|
|
4655
4655
|
<div class="ol-sidebar__spinner ol-sidebar__spinner--small"></div>
|
|
4656
4656
|
<span>Loading filters...</span>
|
|
@@ -4659,19 +4659,19 @@ video::-webkit-media-text-track-display {
|
|
|
4659
4659
|
</div>
|
|
4660
4660
|
|
|
4661
4661
|
<div class="ol-sidebar__content">
|
|
4662
|
-
${(0,
|
|
4662
|
+
${(0,Be.repeat)(t,i=>i,i=>$[i].enabled?u.html`
|
|
4663
4663
|
<ol-details
|
|
4664
|
-
class="ol-sidebar__category ${(0,
|
|
4664
|
+
class="ol-sidebar__category ${(0,te.classMap)({"ol-sidebar__category--disabled":this.disabled})}"
|
|
4665
4665
|
summary=""
|
|
4666
4666
|
?disabled=${this.disabled}
|
|
4667
|
-
@ol-show=${()=>this.onCategoryToggle(
|
|
4667
|
+
@ol-show=${()=>this.onCategoryToggle(i)}
|
|
4668
4668
|
>
|
|
4669
4669
|
<div class="ol-sidebar__category-summary" slot="summary">
|
|
4670
|
-
${this.renderCategoryHeader(
|
|
4670
|
+
${this.renderCategoryHeader(i)}
|
|
4671
4671
|
</div>
|
|
4672
|
-
${this.renderCategoryContent(
|
|
4672
|
+
${this.renderCategoryContent(i)}
|
|
4673
4673
|
</ol-details>
|
|
4674
|
-
`:
|
|
4674
|
+
`:u.html``)}
|
|
4675
4675
|
</div>
|
|
4676
4676
|
</div>
|
|
4677
|
-
`}};p.styles=[de],d([(0,h.property)({type:Object})],p.prototype,"config",2),d([(0,h.property)({type:Object})],p.prototype,"searchConfig",2),d([(0,h.property)({type:String})],p.prototype,"selectedCategory",2),d([(0,h.property)({type:Boolean})],p.prototype,"disabled",2),d([(0,h.state)()],p.prototype,"multimediaService",2),d([(0,h.state)()],p.prototype,"productService",2),d([(0,h.state)()],p.prototype,"faqsService",2),d([(0,h.state)()],p.prototype,"fileService",2),d([(0,h.state)()],p.prototype,"isUploading",2),d([(0,h.state)()],p.prototype,"uploadProgress",2),d([(0,h.state)()],p.prototype,"categoryStates",2),d([(0,h.state)()],p.prototype,"searchTimeout",2),d([(0,h.state)()],p.prototype,"unifiedSearchQuery",2),d([(0,h.state)()],p.prototype,"extraFilters",2),d([(0,h.state)()],p.prototype,"activeFilters",2),d([(0,h.state)()],p.prototype,"loadingFilters",2),p=d([w("osb-side-bar")],p);var ce=require("@lit/react"),ve=f(require("react"),1);var pe=(0,ce.createComponent)({tagName:"osb-asset",elementClass:g,react:ve.default,events:{onAssetClick:"asset-click",onAssetDownload:"asset-download",onAssetLoad:"asset-load",onAssetError:"asset-error",onContentClick:"content-click"}});var me=require("@lit/react"),ue=f(require("react"),1);var ge=(0,me.createComponent)({tagName:"osb-side-bar",elementClass:p,react:ue.default,events:{onSearch:"search",onLoadMore:"load-more",onItemAdd:"item-add",onCategoryChange:"category-change",onItemSelect:"item-select",onFileUpload:"file-uploaded"}});var he=require("@lit/react"),fe=f(require("react"),1);var be=(0,he.createComponent)({tagName:"osb-upload",elementClass:j,react:fe.default,events:{onFileSelected:"osb-file-selected",onUploadError:"osb-upload-error"}});0&&(module.exports={Asset,OSBAsset,OSBSideBar,OSBUpload,SideBar,Upload});
|
|
4677
|
+
`}};f.styles=[ri],v([(0,w.property)({type:Object})],f.prototype,"config",2),v([(0,w.property)({type:Object})],f.prototype,"searchConfig",2),v([(0,w.property)({type:String})],f.prototype,"selectedCategory",2),v([(0,w.property)({type:Boolean})],f.prototype,"disabled",2),v([(0,w.state)()],f.prototype,"multimediaService",2),v([(0,w.state)()],f.prototype,"productService",2),v([(0,w.state)()],f.prototype,"faqsService",2),v([(0,w.state)()],f.prototype,"fileService",2),v([(0,w.state)()],f.prototype,"isUploading",2),v([(0,w.state)()],f.prototype,"uploadProgress",2),v([(0,w.state)()],f.prototype,"categoryStates",2),v([(0,w.state)()],f.prototype,"searchTimeout",2),v([(0,w.state)()],f.prototype,"unifiedSearchQuery",2),v([(0,w.state)()],f.prototype,"extraFilters",2),v([(0,w.state)()],f.prototype,"activeFilters",2),v([(0,w.state)()],f.prototype,"loadingFilters",2),f=v([K("osb-side-bar")],f);var ni=require("@lit/react"),ai=A(require("react"),1);var li=(0,ni.createComponent)({tagName:"osb-asset",elementClass:j,react:ai.default,events:{onAssetClick:"asset-click",onAssetDownload:"asset-download",onAssetLoad:"asset-load",onAssetError:"asset-error",onContentClick:"content-click"}});var ci=require("@lit/react"),di=A(require("react"),1);var pi=(0,ci.createComponent)({tagName:"osb-side-bar",elementClass:f,react:di.default,events:{onSearch:"search",onLoadMore:"load-more",onItemAdd:"item-add",onCategoryChange:"category-change",onItemSelect:"item-select",onFileUpload:"file-uploaded"}});var ui=require("@lit/react"),mi=A(require("react"),1);var gi=(0,ui.createComponent)({tagName:"osb-upload",elementClass:R,react:mi.default,events:{onFileSelected:"osb-file-selected",onUploadError:"osb-upload-error"}});var M=0;function Re(){M=0}function ct(s){M=s}function g(s){return M++,`mock_${s}_${M}_${Date.now().toString(36)}`}function dt(s,e){return`mock_${s}_${e.toString(36)}`}function E(s,e,t){let i=t||new Date().toISOString(),o=typeof btoa=="function"?btoa(i).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""):i.replace(/[^a-zA-Z0-9]/g,"");return`mock_token_${s}_${e}_${o}`}function pt(s){if(!s.startsWith("mock_token_"))return null;let e=s.replace("mock_token_","").split("_");if(e.length<3)return null;let t=e[e.length-1],i=e[e.length-2],o=e.slice(0,-2).join("_");try{let r=t.replace(/-/g,"+").replace(/_/g,"/"),n=typeof atob=="function"?atob(r):t;return{roomId:o,identity:i,timestamp:n}}catch{return null}}function ie(s){return`wss://mock-livekit.local/room/${s}`}function ut(s="participant",e){let t=e??M++;return`${s}_${t}_${Date.now().toString(36)}`}function mt(s="room"){return M++,`${s}_${M}_${Date.now().toString(36)}`}function gt(s,e){return M++,`TR_${s.toUpperCase()}_${e}_${M}`}function vt(){return M++,`msg_${M}_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function ht(s){return M++,`api_${s}_${M}_${Date.now().toString(36)}`}function ft(){return[Math.random().toString(16).slice(2,10),Math.random().toString(16).slice(2,6),Math.random().toString(16).slice(2,6),Math.random().toString(16).slice(2,6),Math.random().toString(16).slice(2,14)].join("-")}function bt(s,e){let t=[];for(let i=0;i<e;i++)t.push(g(s));return t}var Ke={responseStrategy:"echo",responseDelayMs:100,cannedResponses:[],type:"text",nature:"ai",simulateTyping:!1,typingDelayPerChar:20};function Ge(s,e,t=[],i=0,o=Math.random){switch(s){case"echo":return{response:`Echo: ${e}`,nextIndex:i};case"canned":return{response:t[0]||"Default response",nextIndex:i};case"sequential":return{response:t[i]||"No more responses",nextIndex:(i+1)%Math.max(1,t.length)};case"random":{if(t.length===0)return{response:"Random response",nextIndex:i};let r=Math.floor(o()*t.length);return{response:t[r],nextIndex:i}}case"silent":return{response:"",nextIndex:i};case"error":throw new Error("Agent error");case"custom":return{response:"",nextIndex:i};default:return{response:"Default agent response",nextIndex:i}}}var ge=class{constructor(e,t,i={}){this._state="idle";this.conversationHistory=[];this.responseIndex=0;this.eventListeners=new Set;this.randomFn=Math.random;this.messageCount=0;this.id=e,this.name=t,this.config={...Ke,...i}}get state(){return this._state}get isRunning(){return this._state==="running"}get history(){return[...this.conversationHistory]}getConfig(){return{...this.config}}updateConfig(e){this.config={...this.config,...e}}setStrategy(e){this.config.responseStrategy=e}setCannedResponses(e){this.config.cannedResponses=e,this.responseIndex=0}setCustomHandler(e){this.customHandler=e,this.config.responseStrategy="custom"}setRandomFunction(e){this.randomFn=e}async start(e){this._state!=="running"&&(this._state="starting",this.roomId=e,this.conversationHistory=[],this.responseIndex=0,this.messageCount=0,await this.delay(50),this._state="running",this.emitEvent({type:"started",agentId:this.id}))}async stop(){this._state==="running"&&(this._state="stopping",await this.delay(50),this._state="stopped",this.roomId=void 0,this.emitEvent({type:"stopped",agentId:this.id}))}async processMessage(e){if(this._state!=="running")throw new Error("Agent is not running");if(this.config.maxMessages&&this.messageCount>=this.config.maxMessages)return await this.stop(),"";this.addMessage(e,"user"),this.emitEvent({type:"message_received",agentId:this.id,message:e});let t;try{if(this.config.responseStrategy==="custom"&&this.customHandler)t=await this.customHandler(this.id,e,this.conversationHistory);else{if(this.config.responseStrategy==="silent")return"";if(this.config.responseStrategy==="error"){let i=new Error("Agent error");throw this.emitEvent({type:"error",agentId:this.id,error:i}),i}else{let i=Ge(this.config.responseStrategy,e,this.config.cannedResponses,this.responseIndex,this.randomFn);t=i.response,this.responseIndex=i.nextIndex}}}catch(i){throw this._state="error",i}return this.config.simulateTyping&&this.config.typingDelayPerChar&&await this.delay(t.length*this.config.typingDelayPerChar),this.config.responseDelayMs&&await this.delay(this.config.responseDelayMs),this.addMessage(t,"agent"),this.messageCount++,this.emitEvent({type:"response_sent",agentId:this.id,response:t}),t}addEventListener(e){return this.eventListeners.add(e),()=>this.eventListeners.delete(e)}clearHistory(){this.conversationHistory=[],this.responseIndex=0}reset(){this._state="idle",this.roomId=void 0,this.conversationHistory=[],this.responseIndex=0,this.messageCount=0}toJSON(){return{id:this.id,name:this.name,state:this._state,roomId:this.roomId,config:this.config,historyLength:this.conversationHistory.length,messageCount:this.messageCount}}addMessage(e,t){let i={id:g("msg"),content:e,role:t,timestamp:Date.now()};return this.conversationHistory.push(i),i}emitEvent(e){for(let t of this.eventListeners)try{t(e)}catch(i){console.error("Error in agent event listener:",i)}}delay(e){return new Promise(t=>setTimeout(t,e))}};var b=class s extends Error{constructor(e,t,i){super(t),this.name="MockLiveKitError",this.code=e,this.details=i,typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,s)}toMockError(){return{code:this.code,message:this.message,details:this.details}}static fromMockError(e){return new s(e.code,e.message,e.details)}},z=class extends b{constructor(e){super("ROOM_NOT_FOUND",`Room not found: ${e}`,{roomId:e}),this.name="RoomNotFoundError"}},ve=class extends b{constructor(e){super("ROOM_ENDED",`Room has ended: ${e}`,{roomId:e}),this.name="RoomEndedError"}},he=class extends b{constructor(e,t){super("PARTICIPANT_ALREADY_JOINED",`Participant ${e} is already in room ${t}`,{identity:e,roomId:t}),this.name="ParticipantAlreadyJoinedError"}},fe=class extends b{constructor(e){super("PARTICIPANT_NOT_FOUND",`Participant not found: ${e}`,{identity:e}),this.name="ParticipantNotFoundError"}},be=class extends b{constructor(e){super("TRACK_NOT_FOUND",`Track not found: ${e}`,{trackId:e}),this.name="TrackNotFoundError"}},ye=class extends b{constructor(e){super("AGENT_NOT_FOUND",`Agent not found: ${e}`,{agentId:e}),this.name="AgentNotFoundError"}},ke=class extends b{constructor(e="Unauthorized"){super("UNAUTHORIZED",e),this.name="UnauthorizedError"}},je=class extends b{constructor(e="Network error occurred"){super("NETWORK_ERROR",e),this.name="NetworkError"}},we=class extends b{constructor(e,t){super("INVALID_OPERATION",e,t),this.name="InvalidOperationError"}},Se=class extends b{constructor(e,t){super("TIMEOUT",`Operation timed out: ${e}`,{operation:e,timeoutMs:t}),this.name="TimeoutError"}};function oe(s){switch(s.code){case"ROOM_NOT_FOUND":return new z(s.details?.roomId??"unknown");case"ROOM_ENDED":return new ve(s.details?.roomId??"unknown");case"PARTICIPANT_ALREADY_JOINED":return new he(s.details?.identity??"unknown",s.details?.roomId??"unknown");case"PARTICIPANT_NOT_FOUND":return new fe(s.details?.identity??"unknown");case"TRACK_NOT_FOUND":return new be(s.details?.trackId??"unknown");case"AGENT_NOT_FOUND":return new ye(s.details?.agentId??"unknown");case"UNAUTHORIZED":return new ke(s.message);case"NETWORK_ERROR":return new je(s.message);case"INVALID_OPERATION":return new we(s.message,s.details);case"TIMEOUT":return new Se(s.details?.operation??"unknown",s.details?.timeoutMs??0);default:return b.fromMockError(s)}}function O(s){return typeof s=="object"&&s!==null&&"code"in s&&"message"in s&&typeof s.code=="string"&&typeof s.message=="string"}function yt(s){return s instanceof b}var se=class{constructor(){this.listeners={};this.wildcardListeners=new Set;this.eventHistory=[];this.maxHistorySize=1e3;this.recordHistory=!0}setMaxHistorySize(e){this.maxHistorySize=e,this.trimHistory()}setRecordHistory(e){this.recordHistory=e}on(e,t){return this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t),()=>{this.off(e,t)}}once(e,t){let i=o=>{this.off(e,i),t(o)};return this.on(e,i)}off(e,t){this.listeners[e]?.delete(t)}onAny(e){return this.wildcardListeners.add(e),()=>{this.wildcardListeners.delete(e)}}offAny(e){this.wildcardListeners.delete(e)}removeAllListeners(e){e?delete this.listeners[e]:(this.listeners={},this.wildcardListeners.clear())}emit(e){this.recordHistory&&(this.eventHistory.push(e),this.trimHistory());let t=this.listeners[e.type];if(t)for(let i of t)try{i(e)}catch(o){console.error(`Error in mock event listener for ${e.type}:`,o)}for(let i of this.wildcardListeners)try{i(e)}catch(o){console.error("Error in mock wildcard event listener:",o)}}trimHistory(){this.eventHistory.length>this.maxHistorySize&&(this.eventHistory=this.eventHistory.slice(-this.maxHistorySize))}emitRoomCreated(e){let t={type:"roomCreated",timestamp:new Date().toISOString(),roomId:e.id,room:e};this.emit(t)}emitRoomEnded(e){let t={type:"roomEnded",timestamp:new Date().toISOString(),roomId:e};this.emit(t)}emitRoomConnectionStateChanged(e,t,i){let o={type:"roomConnectionStateChanged",timestamp:new Date().toISOString(),roomId:e,state:t,previousState:i};this.emit(o)}emitParticipantJoined(e,t){let i={type:"participantJoined",timestamp:new Date().toISOString(),roomId:e,participant:t};this.emit(i)}emitParticipantLeft(e,t){let i={type:"participantLeft",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t};this.emit(i)}emitParticipantAttributesChanged(e,t,i,o){let r={type:"participantAttributesChanged",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t,attributes:i,previousAttributes:o};this.emit(r)}emitTrackPublished(e,t,i){let o={type:"trackPublished",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t,track:i};this.emit(o)}emitTrackUnpublished(e,t,i){let o={type:"trackUnpublished",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t,trackId:i};this.emit(o)}emitTrackMuted(e,t){let i={type:"trackMuted",timestamp:new Date().toISOString(),roomId:e,trackId:t};this.emit(i)}emitTrackUnmuted(e,t){let i={type:"trackUnmuted",timestamp:new Date().toISOString(),roomId:e,trackId:t};this.emit(i)}emitMessageReceived(e,t){let i={type:"messageReceived",timestamp:new Date().toISOString(),roomId:e,message:t};this.emit(i)}emitMessageSent(e,t){let i={type:"messageSent",timestamp:new Date().toISOString(),roomId:e,message:t};this.emit(i)}emitTypingIndicator(e,t,i){let o={type:"typingIndicator",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t,isTyping:i};this.emit(o)}emitAgentStarted(e,t){let i={type:"agentStarted",timestamp:new Date().toISOString(),roomId:e,agent:t};this.emit(i)}emitAgentStopped(e,t){let i={type:"agentStopped",timestamp:new Date().toISOString(),roomId:e,agentId:t};this.emit(i)}emitAgentMessage(e,t,i){let o={type:"agentMessage",timestamp:new Date().toISOString(),roomId:e,agentId:t,message:i};this.emit(o)}emitDataReceived(e,t,i,o){let r={type:"dataReceived",timestamp:new Date().toISOString(),roomId:e,participantIdentity:t,data:i,topic:o};this.emit(r)}emitError(e,t){let i={type:"error",timestamp:new Date().toISOString(),roomId:t,error:e};this.emit(i)}getHistory(e){return e?this.eventHistory.filter(t=>t.type===e):[...this.eventHistory]}getLastEvents(e,t){return(t?this.eventHistory.filter(o=>o.type===t):this.eventHistory).slice(-e)}clearHistory(){this.eventHistory=[]}listenerCount(e){return(this.listeners[e]?.size??0)+this.wildcardListeners.size}};var We=require("@onlive.ai/tracker/session"),Me=require("livekit-client");var vi=require("firebase/app"),p=require("firebase/database"),Ye=class{constructor(e){this.onChildChanged=(e,t)=>(0,p.onChildChanged)(this.ref(e),i=>t(i.key||"",i.val(),i));this.onChildRemoved=(e,t)=>(0,p.onChildRemoved)(this.ref(e),i=>t(i.key||"",i.val(),i));this.onChildChangedQuery=(e,t)=>(0,p.onChildChanged)(e,i=>t(i.key||"",i.val(),i));this.onChildRemovedQuery=(e,t)=>(0,p.onChildRemoved)(e,i=>t(i.key||"",i.val(),i));let t=(0,vi.initializeApp)(e.config);this.db=(0,p.getDatabase)(t)}ref(e){return(0,p.ref)(this.db,e)}async getOnce(e){let t=await(0,p.get)(this.ref(e));return t.exists()?t.val():null}async getOnceQuery(e){let t=await(0,p.get)(e),i=[];return t.exists()&&t.forEach(o=>{i.push({key:o.key||"",value:o.val()})}),i}onValue(e,t){return(0,p.onValue)(this.ref(e),i=>t(i.key??"",i.val(),i),i=>console.error("onValue error",i))}onValueQuery(e,t){return(0,p.onValue)(e,i=>t(i.key??"",i.val(),i),i=>console.error("onValueQuery error",i))}onChildAdded(e,t){return(0,p.onChildAdded)(this.ref(e),i=>t(i.key||"",i.val(),i),i=>console.error("onChildAdded error",i))}onChildAddedQuery(e,t){return(0,p.onChildAdded)(e,i=>t(i.key||"",i.val(),i),i=>console.error("onChildAddedQuery error",i))}write(e,t){return(0,p.set)(this.ref(e),t)}update(e,t){return(0,p.update)(this.ref(e),t)}remove(e){return(0,p.remove)(this.ref(e))}async push(e,t){let i=(0,p.push)(this.ref(e));return await(0,p.set)(i,t),i.key}onDisconnectUpdate(e,t){return(0,p.onDisconnect)(this.ref(e)).update(t)}cancelOnDisconnect(e){return(0,p.onDisconnect)(this.ref(e)).cancel()}transaction(e,t){return(0,p.runTransaction)(this.ref(e),i=>t(i))}query(e,t={}){let i=this.ref(e);return t.orderBy==="child"&&t.childKey&&(i=(0,p.query)(i,(0,p.orderByChild)(t.childKey))),t.orderBy==="key"&&(i=(0,p.query)(i,(0,p.orderByKey)())),t.orderBy==="value"&&(i=(0,p.query)(i,(0,p.orderByValue)())),t.startAt!=null&&(i=(0,p.query)(i,(0,p.startAt)(t.startAt))),t.endAt!=null&&(i=(0,p.query)(i,(0,p.endAt)(t.endAt))),t.equalTo!=null&&(i=(0,p.query)(i,(0,p.equalTo)(t.equalTo))),t.limitFirst!=null&&(i=(0,p.query)(i,(0,p.limitToFirst)(t.limitFirst))),t.limitLast!=null&&(i=(0,p.query)(i,(0,p.limitToLast)(t.limitLast))),i}};var hi=s=>{let e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",t="";for(let i=0;i<s;i++)t+=e.charAt(Math.floor(Math.random()*e.length));return t};var fi=require("@onlive.ai/tracker/generator"),x=require("@onlive.ai/tracker/session"),G="chatbot",Qe=class s{static hasSession(){return!!x.Session.getCookie(G)}static getSession(e={role:"guest",regenerate:!1}){e.regenerate&&(x.Session.id=fi.Generator.uuid(),x.Session.deleteCookie(G));let t=x.Session.getCookie(G);return t&&s.isValidSession(t,e.role)?t:s.createSession(e.role)}static createSession(e){let t={externalId:e==="agent"?String(s.getUserId()||x.Session.id):x.Session.id,secret:hi(16),createdAt:new Date().toISOString()};return x.Session.setCookie(G,t,3600*24*365),t}static isValidSession(e,t){if(t==="guest")return!0;let i=s.getUserId();return!!(i&&String(i)===e.externalId)}static getUserId(){return x.Session.getCookie("user-id",{objectKey:"userId",storageKey:"user",storageType:"localStorage",ttl:3600*24*365,preserveData:!0})}static updateSessionWithRegistrationData(e){let t=x.Session.getCookie(G);if(t||(t=s.createSession("guest")),t){let i={...t,registrationData:e};x.Session.setCookie(G,i,3600*24*365)}}static hasRegistrationData(){return!!x.Session.getCookie(G)?.registrationData}static async getAgentInfo(e){return fetch(`${e}/api/v1/auth/user-info`,{credentials:"include"}).then(t=>t.json())}static getRegistrationData(){return x.Session.getCookie(G)?.registrationData}};var bi="lk.chat",yi="lk.transcription",ki="lk.events",kt="typing-indicator";var jt=class extends Me.Room{},Xe=class{constructor(e){this.listeners=new Set;this.typingListeners=new Set;this.transcriptionMap=new Map;this.abortControllers={register:new AbortController,createRoom:new AbortController,quickStart:new AbortController,closeRoom:new AbortController,evaluateRoom:new AbortController,persistMessage:new AbortController,sendMessageReport:new AbortController,deleteMessageReport:new AbortController,updateMessageReactions:new AbortController,getRooms:new AbortController};this.authToken=null;this.firebaseUnsubscribers={};this.seenRequestIds=new Set;this.lastSnapshotById=new Map;this.handleIncomingMessage=async(e,t)=>{let i=e?.info?.id,o=e.info?.attributes?.["lk.segment_id"];o&&(this.transcriptionMap.has(o)?i=this.transcriptionMap.get(o)||"":this.transcriptionMap.set(o,i));let r=t?.identity?this.room.getParticipantByIdentity(t.identity):void 0,n="";for await(let a of e)n+=a,this.emitMessage({id:i,timestamp:Date.now(),message:n,assets:JSON.parse(e.info?.attributes?.assets||"[]"),from:r});this.messagePersistence==="client"&&this.persistMessage({roomId:this.room.id,content:n,externalId:i,identity:r?.identity,kind:r?.kind})};this.emitMessage=e=>{for(let t of this.listeners)t([e])};this.handleDataReceived=(e,t,i,o)=>{if(o===kt)try{let r=JSON.parse(new TextDecoder().decode(e));if(r.type==="typing"&&r.participantId!==this.room.localParticipant.identity){let n={type:"typing",isTyping:r.isTyping,timestamp:r.timestamp,participantId:r.participantId};this.emitTypingIndicator(n)}}catch(r){console.warn("Failed to parse typing indicator:",r)}};this.emitTypingIndicator=e=>{for(let t of this.typingListeners)t(e)};this.apiUrl=e.apiUrl,this.authUrl=e.authUrl,this.organizationId=e.organizationId,this.channelTopic=e.channelTopic||bi,this.transcriptionTopic=e.transcriptionTopic||yi,this.eventsTopic=e.eventsTopic||ki,this.messagePersistence=e.messagePersistence||"disabled",this.room=this.createRoomInstance(),e.firebaseConfig&&this.initializeFirebase(e.firebaseConfig)}createRoomInstance(){return new jt({adaptiveStream:!0,dynacast:!0})}ensureRoom(){return this.room||(this.room=this.createRoomInstance()),this.room}initializeFirebase(e){this.firebaseApi=new Ye({config:e}),this.presencePath=`orgs/${this.organizationId}/presence`,this.callsPath=`orgs/${this.organizationId}/calls`}initializeRoomHandlers(){try{this.room.unregisterTextStreamHandler(this.channelTopic),this.room.unregisterTextStreamHandler(this.transcriptionTopic)}catch{}this.room.off(Me.RoomEvent.DataReceived,this.handleDataReceived),this.room.registerTextStreamHandler(this.channelTopic,this.handleIncomingMessage),this.room.registerTextStreamHandler(this.transcriptionTopic,this.handleIncomingMessage),this.room.on(Me.RoomEvent.DataReceived,this.handleDataReceived)}async registerUser(e,t,i,o){let r=await h(`${this.apiUrl}/users/register`,{method:"POST",body:JSON.stringify({externalId:e,secret:t,...i,metadata:o}),headers:{"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.register.signal});if(!r.token)throw new Error("Registration failed: No token received from server");return this.authToken=r.token,r}async registerAgent(e,t){let i=We.Session.getCookie("livekit-agent-token");if(i){if(this.decodeJwtPayload(i)?.username===t.name)return this.authToken=i,i;We.Session.deleteCookie("livekit-agent-token")}let o=await h(`${this.authUrl}/admins/register`,{method:"POST",body:JSON.stringify({externalId:e,name:t.name,email:t.email,avatar:t.avatar}),headers:{"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},credentials:"include",signal:this.abortControllers.register.signal});return We.Session.setCookie("livekit-agent-token",o.token,1440*60),this.authToken=o.token,o.token}decodeJwtPayload(e){try{let t=e.split(".");if(t.length!==3)return null;let i=t[1],o=atob(i.replace(/-/g,"+").replace(/_/g,"/"));return JSON.parse(o)}catch{return null}}async quickStart(e){this.room=this.ensureRoom();let t=await h(`${this.apiUrl}/rooms/quick-start`,{method:"POST",body:JSON.stringify(e),headers:{"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.quickStart.signal});if(!t.user?.token)throw new Error("Quick start failed: No user token received from server");this.authToken=t.user.token;let i={id:t.room.id,groupId:t.room.groupId||"",token:t.room.token,wsURL:t.room.wsURL,createdAt:t.room.createdAt||new Date().toISOString(),affinity:t.room.affinity};return this.setRoomMetadata(i),this.setupParticipantAttributesHandler(),this.room.connect(i.wsURL,i.token),this.initializeRoomHandlers(),this.room}async createRoom(e){if(!this.authToken)throw new Error("Cannot create room: No authentication token. Call registerUser() first.");this.room=this.ensureRoom();let{initialMessage:t,...i}=e,o=await h(`${this.apiUrl}/rooms`,{method:"POST",body:JSON.stringify(i),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.createRoom.signal});return this.setRoomMetadata(o),this.setupParticipantAttributesHandler(),this.room.connect(o.wsURL,o.token).then(async()=>{if(t)try{await this.sendMessage(t)}catch(r){console.error("[ConversationService] Failed to send initial message:",r)}}),this.initializeRoomHandlers(),this.room}async joinRoom(e,t,i,o){let r=await h(`${this.apiUrl}/rooms/${e}/join`,{method:"POST",body:JSON.stringify({timezone:t,language:i,...o??{}}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.createRoom.signal});return this.setRoomMetadata(r),this.setupParticipantAttributesHandler(),await this.room.connect(r.wsURL,r.token),this.initializeRoomHandlers(),this.room}setRoomMetadata(e){this.room.id=e.id,this.room.groupId=e.groupId,this.room.createdAt=e.createdAt,this.room.connectedAt=new Date().toISOString(),this.room.affinity=e.affinity}setupParticipantAttributesHandler(){this.room.on(Me.RoomEvent.ParticipantAttributesChanged,e=>{e.identity===this.room.localParticipant.identity&&Qe.updateSessionWithRegistrationData(e.attributes)})}async evaluateRoom(e){let t=e.roomId||this.room?.id;if(!t)throw new Error("Room ID is required for evaluation");return h(`${this.apiUrl}/rooms/${t}/evaluate`,{method:"POST",body:JSON.stringify({rating:e.rating,comment:e.comment}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.evaluateRoom.signal})}async closeRoom(){this.room&&(await h(`${this.apiUrl}/rooms/${this.room.id}/close`,{method:"POST",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.closeRoom.signal}),await this.stopAndUnpublishLocalTracks())}async disconnect(){this.room&&(await this.stopAndUnpublishLocalTracks(),this.room.removeAllListeners(),await this.room.disconnect(),this.room=null)}async stopAndUnpublishLocalTracks(){let e=this.room?.localParticipant;if(!e)return;await Promise.allSettled([e.setMicrophoneEnabled(!1),e.setCameraEnabled(!1),e.setScreenShareEnabled(!1)]);let t=Array.from(e.trackPublications.values());await Promise.all(t.map(async i=>{let o=i.track;if(o)try{await e.unpublishTrack(o,!0)}catch{o.stop()}}))}async disconnectAndCloseRoom(){await this.closeRoom(),await this.disconnect()}async readRoom(e){return h(`${this.apiUrl}/rooms/${e}/read`,{method:"POST",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.persistMessage.signal})}async getRooms(e){let t=new URLSearchParams;return e.page&&t.append("page",e.page.toString()),e.limit&&t.append("limit",e.limit.toString()),e.offset&&t.append("offset",e.offset.toString()),e.orderBy&&t.append("orderBy",e.orderBy),e.orderDir&&t.append("orderDir",e.orderDir),e.ids?.length&&t.append("ids",e.ids.join(",")),e.with?.length&&t.append("with",e.with.join(",")),e.count?.length&&t.append("count",e.count.join(",")),e.latestOnly&&t.append("latestOnly",e.latestOnly.toString()),e.includeUnread&&t.append("includeUnread",e.includeUnread.toString()),e.roomStatus&&t.append("roomStatus",e.roomStatus),e.archived&&t.append("archived",e.archived.toString()),e.participantIds?.length&&t.append("participantIds",e.participantIds.join(",")),e.participantExternalIds?.length&&t.append("participantExternalIds",e.participantExternalIds.join(",")),e.groupId&&t.append("groupId",e.groupId),e.hasMessages!==void 0&&t.append("hasMessages",e.hasMessages.toString()),h(`${this.authUrl}/rooms?${t}`,{method:"GET",headers:{"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},credentials:"include",signal:this.abortControllers.getRooms.signal})}async sendMessage(e,t){let i=await this.room.localParticipant.sendText(e,{topic:this.channelTopic,attributes:t});this.emitMessage({id:i.id,timestamp:Date.now(),message:e,assets:JSON.parse(t?.assets||"[]"),from:this.room.localParticipant}),this.messagePersistence==="client"&&this.persistMessage({roomId:this.room.id,content:e,externalId:i.id,identity:this.room.localParticipant?.identity,kind:this.room.localParticipant?.kind})}async persistMessage(e){return h(`${this.apiUrl}/messages/create`,{method:"POST",body:JSON.stringify(e),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.persistMessage.signal})}async getMessages(e){let t=new URLSearchParams;return e.limit&&t.append("limit",e.limit.toString()),e.with&&t.append("with",e.with.join(",")),(await h(`${this.apiUrl}/messages/search${t.size?`?${t.toString()}`:""}`,{method:"POST",body:JSON.stringify(e),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.createRoom.signal})).items}async sendMessageReport(e){try{return h(`${this.apiUrl}/messages/${e.messageId}/report`,{method:"POST",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.sendMessageReport.signal})}catch(t){console.error("Error sending message report:",t)}}async deleteMessageReport(e){try{return h(`${this.apiUrl}/messages/${e.messageId}/report`,{method:"DELETE",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.deleteMessageReport.signal})}catch(t){console.error("Error deleting message report:",t)}}async updateMessageReactions(e){try{return h(`${this.apiUrl}/messages/${e.messageId}/reactions`,{method:"PATCH",body:JSON.stringify({add:e.add||[],remove:e.remove||[]}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},signal:this.abortControllers.updateMessageReactions.signal})}catch(t){console.error("Error updating message reactions:",t)}}subscribeMessages(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}async sendTypingIndicator(e){if(!(!this.room||this.room.state!=="connected"))try{let t=new TextEncoder().encode(JSON.stringify({type:"typing",isTyping:e,timestamp:Date.now(),participantId:this.room.localParticipant.identity}));await this.room.localParticipant.publishData(t,{reliable:!1,topic:kt})}catch(t){console.warn("Failed to send typing indicator:",t)}}subscribeTypingIndicators(e){return this.typingListeners.add(e),()=>{this.typingListeners.delete(e)}}unsubscribeTypingIndicators(e){this.typingListeners.delete(e)}async sendContextualEvent(e){try{let t=JSON.stringify(e);await this.room.localParticipant.sendText(t,{topic:this.eventsTopic})}catch(t){console.warn("Failed to send event:",t)}}async requestNewRoom(e){return h(`${this.apiUrl}/rooms/request-new`,{method:"POST",body:JSON.stringify(e),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"}})}async confirmRoomRequest(e){return h(`${this.apiUrl}/rooms/confirm-call`,{method:"POST",body:JSON.stringify({roomId:e}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"}})}async cancelRoomRequest(e){return h(`${this.apiUrl}/rooms/cancel-call`,{method:"POST",body:JSON.stringify({roomId:e}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"}})}async finishCall(){if(this.room?.id)return h(`${this.apiUrl}/rooms/finish-call`,{method:"POST",body:JSON.stringify({roomId:this.room.id}),headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"}})}isFirebaseEnabled(){return!!(this.firebaseApi&&this.presencePath&&this.callsPath)}getFirebase(){if(!this.firebaseApi||!this.presencePath||!this.callsPath)throw new Error("Firebase is not initialized. Provide firebaseConfig in constructor.");return{api:this.firebaseApi,presencePath:this.presencePath,callsPath:this.callsPath}}buildAgentPresencePath(e){return`${this.presencePath}/${e}`}onPresenceChange(e){let{api:t,presencePath:i}=this.getFirebase();return t.onChildChanged(i,(o,r)=>e(o,r))}onPresenceAgentChange(e,t){let{api:i}=this.getFirebase();return i.onValue(this.buildAgentPresencePath(e),(o,r)=>t(o,r))}async createCallRequest(e){let{api:t,callsPath:i}=this.getFirebase(),r=(await h(`${this.apiUrl}/rooms/call-request`,{method:"POST",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},body:JSON.stringify(e)})).id;return t.onDisconnectUpdate(`${i}/${r}`,{status:"disconnected"}),r}onNewCallRequest(e){let{api:t,callsPath:i}=this.getFirebase();return t.onChildAdded(i,(o,r)=>e(o,{...r,id:o}))}onCallRequestChange(e){let{api:t,callsPath:i}=this.getFirebase();return t.onChildChanged(i,(o,r)=>e(o,{...r,id:o}))}onCallRequestRemoved(e){let{api:t,callsPath:i}=this.getFirebase();return t.onChildRemoved(i,o=>e(o))}async acceptCallRequest(e){let{api:t,callsPath:i}=this.getFirebase();return await t.cancelOnDisconnect(`${i}/${e}`),t.update(`${i}/${e}`,{status:"accepted"})}async cancelCallRequest(e){let{api:t,callsPath:i}=this.getFirebase();await t.cancelOnDisconnect(`${i}/${e}`),await h(`${this.apiUrl}/rooms/call-request/cancel`,{method:"POST",headers:{Authorization:`Bearer ${this.authToken}`,"X-Onlive-Organization-Id":this.organizationId,"Content-Type":"application/json"},body:JSON.stringify({callId:e})})}async cancelOnDisconnect(e){let{api:t,callsPath:i}=this.getFirebase();await t.cancelOnDisconnect(`${i}/${e}`)}subscribePendingRequests(e,t={}){let{api:i,callsPath:o}=this.getFirebase();t.resetSeen&&this.seenRequestIds.clear(),this.firebaseUnsubscribers["pending-requests"]?.();let r=i.query(o,{orderBy:"child",childKey:"status",equalTo:"pending"}),n=i.onChildAddedQuery(r,(a,l)=>{if(!a||this.seenRequestIds.has(a))return;let d={...l,id:a};this.seenRequestIds.add(a),e(a,d)});return this.firebaseUnsubscribers["pending-requests"]=n,()=>{n?.(),delete this.firebaseUnsubscribers["pending-requests"]}}subscribeRequestChanges(e){let{api:t,callsPath:i}=this.getFirebase();this.firebaseUnsubscribers["request-changes"]?.();let o=t.onChildChanged(i,(r,n)=>{if(!r)return;let a=JSON.stringify(n);this.lastSnapshotById.get(r)!==a&&(this.lastSnapshotById.set(r,a),e(r,{...n,id:r}))});return this.firebaseUnsubscribers["request-changes"]=o,()=>{o?.(),delete this.firebaseUnsubscribers["request-changes"]}}async tryAcceptRequest(e){let{api:t,callsPath:i}=this.getFirebase(),o=`${i}/${e}`;return await t.transaction(o,n=>n&&(n.status==="pending"?{...n,status:"accepted"}:n)),(await t.getOnce(o))?.status==="accepted"}onRoomSync(e,t){let{api:i}=this.getFirebase(),o=`orgs/${this.organizationId}/rooms/${e}/sync`;return i.onValue(o,(r,n)=>{t(n)})}async clearRoomSync(e,t){let{api:i}=this.getFirebase(),o=`orgs/${this.organizationId}/rooms/${e}/sync`;await i.write(o,{needsSync:!1,reason:t||null,timestamp:Date.now()})}onNewRoomRequest(e,t){let{api:i}=this.getFirebase(),o=`orgs/${this.organizationId}/rooms/${e}/call`;return i.onValue(o,(r,n)=>{t(n)})}unsubscribeAllFirebase(){Object.values(this.firebaseUnsubscribers).forEach(e=>e?.()),this.firebaseUnsubscribers={}}async destroy(){this.unsubscribeAllFirebase(),this.listeners.clear(),this.typingListeners.clear(),this.transcriptionMap.clear(),this.seenRequestIds.clear(),this.lastSnapshotById.clear(),Object.values(this.abortControllers).forEach(e=>e.abort()),await this.disconnect()}};var C=class{constructor(e,t,i,o){this.muted=!1;this.enabled=!0;this.attachedElements=new Set;this.kind=e,this.source=t,this.sid=g("TR"),this.mediaStreamTrack=i,this.mediaCleanup=o}get mediaTrack(){return this.mediaStreamTrack}attach(e){let t=e||document.createElement(this.kind==="video"?"video":"audio");if(this.mediaStreamTrack){let i=new MediaStream([this.mediaStreamTrack]);t.srcObject=i,t.autoplay=!0,this.kind==="video"&&(t.playsInline=!0,t.muted=!0)}return this.attachedElements.add(t),t}detach(e){if(e)return e.srcObject=null,this.attachedElements.delete(e),[e];let t=Array.from(this.attachedElements);for(let i of t)i.srcObject=null;return this.attachedElements.clear(),t}stop(){this.detach(),this.mediaCleanup&&this.mediaCleanup(),this.mediaStreamTrack&&this.mediaStreamTrack.stop(),this.enabled=!1}setMuted(e){this.muted=e,this.mediaStreamTrack&&(this.mediaStreamTrack.enabled=!e)}setEnabled(e){this.enabled=e,this.mediaStreamTrack&&(this.mediaStreamTrack.enabled=e)}},_=class{constructor(e,t){this.subscribed=!0;this.isEnabled=!0;this.track=e,this.trackSid=e.sid,this.trackName=t||`${e.kind}_${e.source}`,this.source=e.source,this.kind=e.kind}get isMuted(){return this.track?.muted??!1}get isSubscribed(){return this.subscribed&&this.track!==null}setSubscribed(e){this.subscribed=e}setEnabled(e){this.isEnabled=e,this.track&&(this.track.enabled=e)}setMuted(e){this.track&&this.track.setMuted(e)}};var Y=class{constructor(e){this.identity="";this.sid="";this.name="";this.attributes={};this.kind="standard";this.trackPublications=new Map;this.audioTrackPublications=new Map;this.videoTrackPublications=new Map;this._cameraEnabled=!1;this._microphoneEnabled=!1;this._screenShareEnabled=!1;this.room=e,this.sid=g("PA"),this.joinedAt=new Date}get isCameraEnabled(){return this._cameraEnabled}get isMicrophoneEnabled(){return this._microphoneEnabled}get isScreenShareEnabled(){return this._screenShareEnabled}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){let i={camera:"camera",Camera:"camera",microphone:"microphone",Microphone:"microphone",screen_share:"screen_share",ScreenShare:"screen_share",screen_share_audio:"screen_share_audio",ScreenShareAudio:"screen_share_audio"}[e]||e;return this.trackPublications.get(i)}getTrackPublicationBySid(e){for(let t of this.trackPublications.values())if(t.trackSid===e)return t}setAttributes(e){this.attributes={...this.attributes,...e}}async setCameraEnabled(e,t){if(this._cameraEnabled=e,e){let{createSyntheticVideoTrack:o}=await Promise.resolve().then(()=>(re(),xe)),{track:r,cleanup:n}=o({animation:"avatar",label:this.name||"Local Camera"}),a=new C("video","camera",r,n),l=new _(a,t?.name);return this.trackPublications.set("camera",l),this.videoTrackPublications.set(a.sid,l),this.room.emit("localTrackPublished",l,this),l}let i=this.trackPublications.get("camera");i&&(i.track?.stop(),this.trackPublications.delete("camera"),this.videoTrackPublications.delete(i.trackSid),this.room.emit("localTrackUnpublished",i,this))}async setMicrophoneEnabled(e,t){if(this._microphoneEnabled=e,e){let{createSyntheticAudioTrack:o}=await Promise.resolve().then(()=>(re(),xe)),{track:r,cleanup:n}=o({enabled:!1}),a=new C("audio","microphone",r,n),l=new _(a,t?.name);return this.trackPublications.set("microphone",l),this.audioTrackPublications.set(a.sid,l),this.room.emit("localTrackPublished",l,this),l}let i=this.trackPublications.get("microphone");i&&(i.track?.stop(),this.trackPublications.delete("microphone"),this.audioTrackPublications.delete(i.trackSid),this.room.emit("localTrackUnpublished",i,this))}async setScreenShareEnabled(e,t){if(this._screenShareEnabled=e,e){let{createSyntheticVideoTrack:o}=await Promise.resolve().then(()=>(re(),xe)),{track:r,cleanup:n}=o({animation:"bars",label:"Screen Share",width:1920,height:1080}),a=new C("video","screen_share",r,n),l=new _(a,t?.name||"screen");return this.trackPublications.set("screen_share",l),this.videoTrackPublications.set(a.sid,l),this.room.emit("localTrackPublished",l,this),l}let i=this.trackPublications.get("screen_share");i&&(i.track?.stop(),this.trackPublications.delete("screen_share"),this.videoTrackPublications.delete(i.trackSid),this.room.emit("localTrackUnpublished",i,this))}async publishTrack(e,t){let i=new _(e,t?.name),o=t?.source||e.source;return this.trackPublications.set(o,i),e.kind==="audio"?this.audioTrackPublications.set(e.sid,i):e.kind==="video"&&this.videoTrackPublications.set(e.sid,i),this.room.emit("localTrackPublished",i,this),i}async unpublishTrack(e){e.stop();for(let[t,i]of this.trackPublications)if(i.track===e){this.trackPublications.delete(t),e.kind==="audio"?this.audioTrackPublications.delete(e.sid):e.kind==="video"&&this.videoTrackPublications.delete(e.sid),this.room.emit("localTrackUnpublished",i,this);break}}async sendText(e,t){return{id:g("msg")}}async publishData(e,t){}async setMetadata(e){this.attributes.metadata=e}async setName(e){this.name=e}cleanup(){for(let e of this.trackPublications.values())e.track?.stop();this.trackPublications.clear(),this.audioTrackPublications.clear(),this.videoTrackPublications.clear(),this._cameraEnabled=!1,this._microphoneEnabled=!1,this._screenShareEnabled=!1}};function zi(s){switch(s){case"standard":return 0;case"ingress":return 1;case"egress":return 2;case"sip":return 3;case"agent":return 4;default:return 0}}var L=class{constructor(e,t,i={},o="standard"){this.connectionQuality="excellent";this.isSpeaking=!1;this.audioLevel=0;this.trackPublications=new Map;this.identity=e,this.sid=g("PA"),this.name=t,this.attributes=i,this._kindString=o,this.kind=zi(o),this.joinedAt=new Date}get isAgent(){return this.kind===4||this.attributes["lk.agent.name"]!==void 0}get kindString(){return this._kindString}get isCameraEnabled(){let e=this.getTrackPublication("camera");return!!(e?.track&&!e.isMuted)}get isMicrophoneEnabled(){let e=this.getTrackPublication("microphone");return!!(e?.track&&!e.isMuted)}getTrackPublication(e){for(let t of this.trackPublications.values())if(t.source===e)return t}getTrackPublicationBySid(e){return this.trackPublications.get(e)}getTrackPublications(){return Array.from(this.trackPublications.values())}getAudioTracks(){return this.getTrackPublications().filter(e=>e.kind==="audio")}getVideoTracks(){return this.getTrackPublications().filter(e=>e.kind==="video")}addTrackPublication(e){this.trackPublications.set(e.trackSid,e)}removeTrackPublication(e){let t=this.trackPublications.get(e);return t&&(this.trackPublications.delete(e),t.track?.stop()),t}setAttributes(e){this.attributes={...this.attributes,...e}}getAttribute(e){return this.attributes[e]}startSpeaking(e=.5){this.isSpeaking=!0,this.audioLevel=e}stopSpeaking(){this.isSpeaking=!1,this.audioLevel=0}setConnectionQuality(e){this.connectionQuality=e}cleanup(){for(let e of this.trackPublications.values())e.track?.stop();this.trackPublications.clear()}};var F=class{constructor(e){this.remoteParticipants=new Map;this._state="disconnected";this.eventHandlers=new Map;this.textStreamHandlers=new Map;this.rpcHandlers=new Map;this.mockService=e,this.localParticipant=new Y(this),this.sid=g("RM")}get state(){return this._state}set state(e){let t=this._state;this._state=e,t!==e&&this.emit("connectionStateChanged",e,t)}get numParticipants(){return this.remoteParticipants.size+1}get isConnected(){return this._state==="connected"}async connect(e,t){this._state="connecting",this.emit("connectionStateChanged","connecting","disconnected"),await this.mockService.simulateLatency(),this._state="connected",this.connectedAt=new Date().toISOString(),this.emit("connectionStateChanged","connected","connecting"),this.emit("connected")}async disconnect(){for(let t of this.remoteParticipants.values())t.cleanup();this.remoteParticipants.clear(),this.localParticipant.cleanup();let e=this._state;this._state="disconnected",this.emit("connectionStateChanged","disconnected",e),this.emit("disconnected"),this.eventHandlers.clear()}async reconnect(){this._state="reconnecting",this.emit("connectionStateChanged","reconnecting","connected"),await this.mockService.simulateLatency(),this._state="connected",this.emit("connectionStateChanged","connected","reconnecting"),this.emit("reconnected")}on(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new Set),this.eventHandlers.get(e).add(t),this}once(e,t){let i=(...o)=>{this.off(e,i),t(...o)};return this.on(e,i)}off(e,t){return this.eventHandlers.get(e)?.delete(t),this}removeAllListeners(){this.eventHandlers.clear()}emit(e,...t){let i=this.eventHandlers.get(e);if(i)for(let o of i)try{o(...t)}catch(r){console.error(`Error in mock room event handler for ${e}:`,r)}}registerRpcMethod(e,t){this.rpcHandlers.set(e,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}async callRpc(e,t,i,o=1e4){let r=this.rpcHandlers.get(e);if(!r)throw new Error(`RPC method not found: ${e}`);return r({callerIdentity:t,payload:i,responseTimeout:o})}registerTextStreamHandler(e,t){this.textStreamHandlers.set(e,t)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}simulateTextStream(e,t){let i=this.textStreamHandlers.get(e);i&&i(t,{identity:t.participantIdentity})}getParticipantByIdentity(e){return e===this.localParticipant.identity?new L(this.localParticipant.identity,this.localParticipant.name,this.localParticipant.attributes):this.remoteParticipants.get(e)}getParticipantBySid(e){if(e===this.localParticipant.sid)return new L(this.localParticipant.identity,this.localParticipant.name,this.localParticipant.attributes);for(let t of this.remoteParticipants.values())if(t.sid===e)return t}async simulateParticipantJoin(e,t){let i=new L(e,t?.name,t?.attributes||{},t?.kind||"standard");return this.remoteParticipants.set(e,i),this.emit("participantConnected",i),t?.withCamera&&await this.simulateRemoteTrack(e,"video","camera"),t?.withMicrophone&&await this.simulateRemoteTrack(e,"audio","microphone"),i}simulateParticipantLeave(e){let t=this.remoteParticipants.get(e);if(t){for(let i of t.getTrackPublications())i.track?.stop(),this.emit("trackUnsubscribed",i.track,i,t);this.remoteParticipants.delete(e),this.emit("participantDisconnected",t)}}async simulateRemoteTrack(e,t,i){let o=this.remoteParticipants.get(e);if(!o)return;let r,n;if(t==="video"){let{createSyntheticVideoTrack:d}=await Promise.resolve().then(()=>(re(),xe)),m=d({animation:o.isAgent?"avatar":"pulse",label:o.name||e,foregroundColor:o.isAgent?"#22c55e":"#4361ee"});r=m.track,n=m.cleanup}else if(t==="audio"){let{createSyntheticAudioTrack:d}=await Promise.resolve().then(()=>(re(),xe)),m=d({enabled:!1});r=m.track,n=m.cleanup}let a=new C(t,i,r,n),l=new _(a);return o.addTrackPublication(l),this.emit("trackSubscribed",a,l,o),this.emit("trackPublished",l,o),a}simulateTrackUnpublished(e,t){let i=this.remoteParticipants.get(e);if(!i)return;let o=i.getTrackPublication(t);o&&(i.removeTrackPublication(o.trackSid),this.emit("trackUnpublished",o,i),this.emit("trackUnsubscribed",o.track,o,i))}async simulateAgentJoin(e,t="AI Agent"){return this.simulateParticipantJoin(e,{name:t,kind:"agent",withCamera:!0,withMicrophone:!0,attributes:{"lk.agent.name":t,"lk.agent.state":"active"}})}simulateAttributeChange(e,t){let i=this.remoteParticipants.get(e);if(i){let o={...i.attributes};i.setAttributes(t),this.emit("participantAttributesChanged",t,o,i)}}simulateTrackMuted(e,t,i){let o=this.remoteParticipants.get(e);if(!o)return;let r=o.getTrackPublication(t);r?.track&&(r.track.setMuted(i),this.emit(i?"trackMuted":"trackUnmuted",r,o))}simulateActiveSpeakersChanged(e){let t=[];for(let i of e){let o=this.remoteParticipants.get(i);o&&(o.startSpeaking(),t.push(o))}this.emit("activeSpeakersChanged",t)}simulateDataReceived(e,t,i,o){let r=this.remoteParticipants.get(t);this.emit("dataReceived",e,r,i,o)}};var ne=class{constructor(e={}){this.rooms=new Map;this.participants=new Map;this.tracks=new Map;this.agents=new Map;this.messages=new Map;this.config=e,this.randomState=e.seed??Date.now()}updateConfig(e){this.config={...this.config,...e},e.seed!==void 0&&(this.randomState=e.seed)}getConfig(){return{...this.config}}random(){return this.randomState=(this.randomState*1103515245+12345)%2147483648,this.randomState/2147483648}createRoom(e,t,i){let o=g("room"),r=new Date().toISOString(),n={id:o,name:e,groupId:t||g("group"),createdAt:r,metadata:i,isActive:!0,participantIds:[],connectionState:"disconnected",wsURL:ie(o),token:E(o,"pending",r)};return this.rooms.set(o,n),this.messages.set(o,[]),n}getRoom(e){return this.rooms.get(e)}getRoomByName(e){for(let t of this.rooms.values())if(t.name===e)return t}listRooms(e=!1){let t=Array.from(this.rooms.values());return e?t.filter(i=>i.isActive):t}updateRoomConnectionState(e,t){let i=this.rooms.get(e);if(!i)return;let o=i.connectionState;return i.connectionState=t,o}endRoom(e){let t=this.rooms.get(e);if(!t||!t.isActive)return!1;t.isActive=!1,t.endedAt=new Date().toISOString(),t.connectionState="disconnected";for(let i of t.participantIds){let o=this.participants.get(i);o&&(o.isConnected=!1)}for(let i of this.agents.values())i.roomId===e&&i.status==="running"&&(i.status="stopped",i.stoppedAt=new Date().toISOString());return!0}deleteRoom(e){let t=this.rooms.get(e);if(!t)return!1;for(let i of t.participantIds)this.participants.delete(i);for(let[i,o]of this.tracks)o.roomId===e&&this.tracks.delete(i);for(let[i,o]of this.agents)o.roomId===e&&this.agents.delete(i);return this.messages.delete(e),this.rooms.delete(e),!0}addParticipant(e,t,i,o="user",r="standard",n=!1){let a=this.rooms.get(e);if(!a)return this.createError("ROOM_NOT_FOUND",`Room ${e} not found`);if(!a.isActive)return this.createError("ROOM_ENDED",`Room ${e} has ended`);let l=this.participants.get(t);if(l&&l.roomId===e&&l.isConnected)return this.config.strictMode?this.createError("PARTICIPANT_ALREADY_JOINED",`Participant ${t} is already in room ${e}`):l;let d={identity:t,name:i||t,roomId:e,joinedAt:new Date().toISOString(),isConnected:!0,trackIds:[],role:o,attributes:{},kind:r,isLocal:n};return this.participants.set(t,d),a.participantIds.push(t),d}getParticipant(e){return this.participants.get(e)}listParticipants(e,t=!0){let i=this.rooms.get(e);if(!i)return[];let o=[];for(let r of i.participantIds){let n=this.participants.get(r);n&&(!t||n.isConnected)&&o.push(n)}return o}updateParticipantAttributes(e,t){let i=this.participants.get(e);if(!i)return;let o={...i.attributes};return i.attributes={...i.attributes,...t},o}removeParticipant(e){let t=this.participants.get(e);if(!t)return;t.isConnected=!1;for(let o of t.trackIds)this.tracks.delete(o);t.trackIds=[];let i=this.rooms.get(t.roomId);if(i){let o=i.participantIds.indexOf(e);o!==-1&&i.participantIds.splice(o,1)}return t}publishTrack(e,t,i="unknown",o){let r=this.participants.get(e);if(!r)return this.createError("PARTICIPANT_NOT_FOUND",`Participant ${e} not found`);if(!r.isConnected)return this.createError("INVALID_OPERATION",`Participant ${e} is not connected`);let n=this.rooms.get(r.roomId);if(!n||!n.isActive)return this.createError("ROOM_ENDED","Room is not active");let a=g("track"),l={id:a,kind:t,source:i,participantIdentity:e,roomId:r.roomId,publishedAt:new Date().toISOString(),muted:!1,metadata:o};return this.tracks.set(a,l),r.trackIds.push(a),l}getTrack(e){return this.tracks.get(e)}listTracks(e,t){let i=[];for(let o of this.tracks.values())e&&o.roomId!==e||t&&o.participantIdentity!==t||i.push(o);return i}unpublishTrack(e){let t=this.tracks.get(e);if(!t)return;let i=this.participants.get(t.participantIdentity);if(i){let o=i.trackIds.indexOf(e);o!==-1&&i.trackIds.splice(o,1)}return this.tracks.delete(e),t}setTrackMuted(e,t){let i=this.tracks.get(e);return i?(i.muted=t,!0):!1}startAgent(e,t,i={}){let o=this.rooms.get(e);if(!o)return this.createError("ROOM_NOT_FOUND",`Room ${e} not found`);if(!o.isActive)return this.createError("ROOM_ENDED",`Room ${e} has ended`);let r=g("agent"),n={id:r,roomId:e,name:t,status:"running",startedAt:new Date().toISOString(),config:{responseStrategy:"echo",...i},messageHistory:[]};return this.agents.set(r,n),this.addParticipant(e,`agent_${r}`,t,"agent","agent",!1),n}getAgent(e){return this.agents.get(e)}listAgents(e){let t=[];for(let i of this.agents.values())i.roomId===e&&t.push(i);return t}stopAgent(e){let t=this.agents.get(e);if(t)return t.status="stopped",t.stoppedAt=new Date().toISOString(),this.removeParticipant(`agent_${e}`),t}updateAgentStatus(e,t){let i=this.agents.get(e);return i?(i.status=t,t==="stopped"&&(i.stoppedAt=new Date().toISOString()),!0):!1}addAgentMessage(e,t,i){let o=this.agents.get(e);if(!o)return;let r={id:g("msg"),content:t,role:i,timestamp:new Date().toISOString()};return o.messageHistory.push(r),r}addMessage(e,t,i,o="standard",r){if(!this.rooms.get(e))return this.createError("ROOM_NOT_FOUND",`Room ${e} not found`);let a={id:g("msg"),roomId:e,content:i,participantIdentity:t,createdAt:new Date().toISOString(),type:o,attributes:r},l=this.messages.get(e)||[];return l.push(a),this.messages.set(e,l),a}getMessages(e,t){let i=this.messages.get(e)||[];return t?i.slice(-t):i}createError(e,t,i){return{code:e,message:t,details:i}}isError(e){return typeof e=="object"&&e!==null&&"code"in e&&"message"in e}reset(){this.rooms.clear(),this.participants.clear(),this.tracks.clear(),this.agents.clear(),this.messages.clear(),this.randomState=this.config.seed??Date.now()}getSnapshot(){return{rooms:new Map(this.rooms),participants:new Map(this.participants),tracks:new Map(this.tracks),agents:new Map(this.agents),messages:new Map(this.messages),config:{...this.config},eventHistory:[]}}toJSON(){return{rooms:Object.fromEntries(this.rooms),participants:Object.fromEntries(this.participants),tracks:Object.fromEntries(this.tracks),agents:Object.fromEntries(this.agents),messages:Object.fromEntries(this.messages),config:this.config,eventHistory:[],exportedAt:new Date().toISOString()}}fromJSON(e){this.rooms=new Map(Object.entries(e.rooms)),this.participants=new Map(Object.entries(e.participants)),this.tracks=new Map(Object.entries(e.tracks)),this.agents=new Map(Object.entries(e.agents)),this.messages=new Map(Object.entries(e.messages).map(([t,i])=>[t,i])),this.config=e.config}};var D=class{constructor(e={}){this.messageListeners=new Set;this.typingListeners=new Set;this.callRequestListeners=new Map;this._authToken=null;this._registeredUser=null;this.agents=new Map;this.config={latencyMs:e.latencyMs??0,strictMode:e.strictMode??!1,seed:e.seed,scenario:e.scenario,errorConfig:e.errorConfig,autoEmitEvents:e.autoEmitEvents??!0,organizationId:e.organizationId??"mock_org",apiUrl:e.apiUrl??"https://mock-livekit.local"},this.state=new ne(this.config),this.events=new se,this.room=new F(this),this.config.scenario&&this.applyScenario(this.config.scenario)}get authToken(){return this._authToken}get registeredUser(){return this._registeredUser}getState(){return this.state}getEvents(){return this.events}updateConfig(e){this.config={...this.config,...e},this.state.updateConfig(e)}getConfig(){return{...this.config}}async simulateLatency(){this.config.latencyMs&&this.config.latencyMs>0&&await new Promise(e=>setTimeout(e,this.config.latencyMs))}applyScenario(e){switch(e){case"happy_path":this.config.errorConfig={},this.config.latencyMs=0;break;case"slow_network":this.config.latencyMs=500;break;case"network_unstable":this.config.errorConfig={errorRate:30};break;default:break}}shouldThrowError(){return this.config.errorConfig?.errorRate?this.state.random()*100<this.config.errorConfig.errorRate:!1}ensureRoom(){return this.room||(this.room=new F(this)),this.room}async registerUser(e,t,i,o){if(await this.simulateLatency(),this.config.errorConfig?.unauthorized)throw new b("UNAUTHORIZED","Registration failed");let r={id:g("user"),externalId:e,organizationId:this.config.organizationId,role:"user",token:E("pending",e,new Date().toISOString())};return this._authToken=r.token,this._registeredUser=r,this.room.localParticipant.identity=e,this.room.localParticipant.name=i?.name||e,r}async registerAgent(e,t){if(await this.simulateLatency(),this.config.errorConfig?.unauthorized)throw new b("UNAUTHORIZED","Agent registration failed");let i=E("agent",e,new Date().toISOString());return this._authToken=i,this.room.localParticipant.identity=e,this.room.localParticipant.name=t.name,i}async quickStart(e){return await this.registerUser(e.user.externalId,e.user.secret,{name:e.user.name,email:e.user.email,phone:e.user.phone,avatar:e.user.avatar,userGroupId:e.user.userGroupId},e.user.metadata),this.createRoom({language:e.room.language,timezone:e.room.timezone,affinity:e.room.affinity,metadata:e.room.metadata,disablePersistence:e.room.disablePersistence,contextualEvents:e.room.contextualEvents,userGroupId:e.room.userGroupId??void 0})}async createRoom(e,t={}){if(await this.simulateLatency(),this.config.errorConfig?.networkError||this.shouldThrowError())throw new b("NETWORK_ERROR","Failed to create room");let i=this.state.createRoom(`room_${Date.now()}`,e.affinity?.agentId,e.metadata);this.room.id=i.id,this.room.groupId=i.groupId,this.room.createdAt=i.createdAt,this.room.connectedAt=new Date().toISOString();let o=this.room.localParticipant.identity||"local_user";return this.state.addParticipant(i.id,o,this.room.localParticipant.name,"user","standard",!0),Object.keys(t).length>0&&(this.state.updateParticipantAttributes(o,t),this.room.localParticipant.setAttributes(t)),this.state.updateRoomConnectionState(i.id,"connected"),this.config.autoEmitEvents&&(this.events.emitRoomCreated(i),this.events.emitRoomConnectionStateChanged(i.id,"connected","disconnected")),(e.affinity?.agentId||e.affinity?.agentType)&&await this.startMockAgent(i.id,{type:e.affinity?.agentType,nature:e.affinity?.nature??"ai"}),await this.room.connect(i.wsURL,i.token),this.room}async joinRoom(e,t,i,o){await this.simulateLatency();let r=this.state.getRoom(e);if(!r)throw new z(e);if(!r.isActive)throw new b("ROOM_ENDED",`Room ${e} has ended`);this.room.id=r.id,this.room.groupId=r.groupId,this.room.createdAt=r.createdAt,this.room.connectedAt=new Date().toISOString();let n=this.room.localParticipant.identity||"local_user",a=this.state.addParticipant(e,n,this.room.localParticipant.name,"user","standard",!0);if(O(a))throw oe(a);if(o){let l={};for(let[d,m]of Object.entries(o))l[d]=String(m);this.state.updateParticipantAttributes(n,l)}return this.state.updateRoomConnectionState(e,"connected"),this.config.autoEmitEvents&&(this.events.emitParticipantJoined(e,a),this.events.emitRoomConnectionStateChanged(e,"connected","disconnected")),await this.room.connect(r.wsURL,r.token),this.room}async evaluateRoom(e){await this.simulateLatency();let t=e.roomId||this.room?.id;if(!t)throw new b("ROOM_NOT_FOUND","No room to evaluate");let i=this.state.getRoom(t);if(!i)throw new z(t);i.metadata||(i.metadata={}),i.metadata.evaluation={rating:e.rating,comment:e.comment,evaluatedAt:new Date().toISOString()}}async closeRoom(){await this.simulateLatency(),this.room?.id&&(this.state.endRoom(this.room.id),await this.stopLocalTracks(),this.config.autoEmitEvents&&this.events.emitRoomEnded(this.room.id))}async disconnect(){if(this.room){let e=this.room.id,t=this.room.localParticipant.identity;await this.stopLocalTracks(),this.state.removeParticipant(t),this.config.autoEmitEvents&&e&&this.events.emitParticipantLeft(e,t),this.room.removeAllListeners(),await this.room.disconnect()}}async stopLocalTracks(){let e=this.room?.localParticipant;e&&await Promise.all([e.setCameraEnabled(!1),e.setMicrophoneEnabled(!1),e.setScreenShareEnabled(!1)])}async disconnectAndCloseRoom(){await this.closeRoom(),await this.disconnect()}async readRoom(e){await this.simulateLatency();let t=this.state.getRoom(e);if(!t)throw new z(e);t.metadata||(t.metadata={}),t.metadata.lastReadAt=new Date().toISOString()}async getRooms(e){await this.simulateLatency();let t=this.state.listRooms();e.roomStatus==="active"?t=t.filter(a=>a.isActive):e.roomStatus==="closed"&&(t=t.filter(a=>!a.isActive)),e.ids?.length&&(t=t.filter(a=>e.ids.includes(a.id))),e.groupId&&(t=t.filter(a=>a.groupId===e.groupId));let i=e.offset??0,o=e.limit??20;return{items:t.slice(i,i+o).map(a=>({id:a.id,name:a.name,groupId:a.groupId,organizationId:this.config.organizationId,endedAt:a.endedAt??null,createdAt:a.createdAt,updatedAt:a.createdAt,status:a.isActive?"active":"ended",participants:this.state.listParticipants(a.id).map(l=>({id:l.identity,name:l.name||l.identity,role:l.role,isLocal:l.isLocal})),evaluations:[],_count:{messages:this.state.getMessages(a.id).length,participants:a.participantIds.length}})),count:t.length,limit:o,offset:i}}async sendMessage(e,t){if(await this.simulateLatency(),!this.room?.id)throw new b("INVALID_OPERATION","Not connected to a room");let i=this.state.addMessage(this.room.id,this.room.localParticipant.identity,e,"standard",t);if(O(i))throw oe(i);let o={id:i.id,timestamp:Date.now(),message:e,content:e,createdAt:i.createdAt,from:{identity:this.room.localParticipant.identity,name:this.room.localParticipant.name,id:this.room.localParticipant.identity,role:"user"}};for(let r of this.messageListeners)r([o]);this.config.autoEmitEvents&&this.events.emitMessageSent(this.room.id,i);for(let r of this.agents.values())r.isRunning&&r.roomId===this.room.id&&this.triggerAgentResponse(r,e)}async persistMessage(e){await this.simulateLatency();let t=this.state.addMessage(e.roomId,e.identity||"system",e.content);if(O(t))throw oe(t);return{items:[{id:t.id,timestamp:Date.now(),message:t.content,content:t.content,createdAt:t.createdAt}],count:1,limit:1,offset:0}}async getMessages(e){await this.simulateLatency();let t=e.roomId||this.room?.id;return t?this.state.getMessages(t,e.limit).map(o=>({id:o.id,timestamp:Date.parse(o.createdAt),message:o.content,content:o.content,createdAt:o.createdAt,from:{identity:o.participantIdentity,id:o.participantIdentity,role:"user"}})):[]}async sendMessageReport(e){await this.simulateLatency()}async deleteMessageReport(e){await this.simulateLatency()}async updateMessageReactions(e){await this.simulateLatency()}subscribeMessages(e){return this.messageListeners.add(e),()=>{this.messageListeners.delete(e)}}async sendTypingIndicator(e){if(!this.room?.id)return;let t={type:"typing",isTyping:e,timestamp:Date.now(),participantId:this.room.localParticipant.identity};for(let i of this.typingListeners)i(t);this.config.autoEmitEvents&&this.events.emitTypingIndicator(this.room.id,this.room.localParticipant.identity,e)}subscribeTypingIndicators(e){return this.typingListeners.add(e),()=>this.typingListeners.delete(e)}unsubscribeTypingIndicators(e){this.typingListeners.delete(e)}async sendContextualEvent(e){await this.simulateLatency()}async requestNewRoom(e){await this.simulateLatency();let t=this.state.createRoom(`transfer_${Date.now()}`,void 0,{originRoom:e.originRoom});return{id:t.id,groupId:t.groupId,token:t.token,wsURL:t.wsURL,createdAt:t.createdAt}}async confirmRoomRequest(e){return await this.simulateLatency(),{success:!0,message:"Request confirmed",roomId:e}}async cancelRoomRequest(e){return await this.simulateLatency(),{success:!0,message:"Request cancelled",roomId:e}}async finishCall(){await this.simulateLatency(),this.room?.id&&this.state.endRoom(this.room.id)}isFirebaseEnabled(){return!0}onPresenceChange(e){return()=>{}}onPresenceAgentChange(e,t){return()=>{}}async createCallRequest(e){return await this.simulateLatency(),g("call")}onNewCallRequest(e){return this.callRequestListeners.has("new")||this.callRequestListeners.set("new",new Set),this.callRequestListeners.get("new").add(e),()=>this.callRequestListeners.get("new")?.delete(e)}onCallRequestChange(e){return this.callRequestListeners.has("change")||this.callRequestListeners.set("change",new Set),this.callRequestListeners.get("change").add(e),()=>this.callRequestListeners.get("change")?.delete(e)}onCallRequestRemoved(e){return()=>{}}async acceptCallRequest(e){await this.simulateLatency()}async cancelCallRequest(e){await this.simulateLatency()}async cancelOnDisconnect(e){await this.simulateLatency()}subscribePendingRequests(e,t={}){return()=>{}}subscribeRequestChanges(e){return()=>{}}async tryAcceptRequest(e){return await this.simulateLatency(),!0}onRoomSync(e,t){return()=>{}}async clearRoomSync(e,t){await this.simulateLatency()}onNewRoomRequest(e,t){return()=>{}}unsubscribeAllFirebase(){this.callRequestListeners.clear()}async destroy(){this.unsubscribeAllFirebase(),this.messageListeners.clear(),this.typingListeners.clear(),await this.disconnect(),this.state.reset()}async startMockAgent(e,t){let i=t?.name||"AI Assistant",o=new ge(g("agent"),i,{responseStrategy:t?.responseStrategy||"echo",responseDelayMs:t?.responseDelayMs||100,cannedResponses:t?.cannedResponses||[],type:t?.type,nature:t?.nature});await o.start(e),this.agents.set(o.id,o),this.customAgentHandler&&o.setCustomHandler((d,m)=>this.customAgentHandler(d,m));let r=t?.type,n=Array.isArray(r)?r:[r].filter(Boolean),a=n.includes("video"),l=n.includes("voice");return(a||l)&&this.room.isConnected&&await this.room.simulateParticipantJoin(o.id,{name:i,kind:"agent",withCamera:a,withMicrophone:l||a,attributes:{"lk.agent.name":i,"lk.agent.state":"active",role:"agent"}}),this.config.autoEmitEvents&&this.events.emitAgentStarted(e,{id:o.id,name:o.name,roomId:e,status:"running",config:o.getConfig(),startedAt:new Date().toISOString(),messageHistory:[]}),o.id}async stopMockAgent(e){let t=this.agents.get(e);if(t){let i=t.roomId;await t.stop(),this.agents.delete(e),this.config.autoEmitEvents&&i&&this.events.emitAgentStopped(i,e)}}setAgentResponseHandler(e){this.customAgentHandler=e;for(let t of this.agents.values())t.setCustomHandler((i,o)=>e(i,o))}async triggerAgentResponse(e,t){if(this.config.scenario!=="agent_timeout")try{let i=await e.processMessage(t);if(!i)return;let o=this.state.addMessage(e.roomId,`agent_${e.id}`,i);if(!O(o)){let r={id:o.id,timestamp:Date.now(),message:i,content:i,createdAt:o.createdAt,from:{identity:`agent_${e.id}`,name:e.name,id:e.id,role:"agent"}};for(let n of this.messageListeners)n([r]);this.config.autoEmitEvents&&this.events.emitMessageReceived(e.roomId,o)}}catch(i){console.error("Agent response error:",i)}}simulateCallRequest(e){let t={id:g("call"),guestId:e.guestId||"guest_user",name:e.name||"Guest User",createdAt:new Date().toISOString(),status:e.status||"pending",...e},i=this.callRequestListeners.get("new");if(i)for(let o of i)o(t.id,t)}simulateParticipantJoin(e,t,i="user"){if(!this.room?.id)return;let o=this.state.addParticipant(this.room.id,e,t,i,"standard",!1);!O(o)&&this.config.autoEmitEvents&&this.events.emitParticipantJoined(this.room.id,o)}simulateParticipantLeave(e){if(!this.room?.id)return;this.state.removeParticipant(e)&&this.config.autoEmitEvents&&this.events.emitParticipantLeft(this.room.id,e)}simulateIncomingMessage(e,t){if(!this.room?.id)return;let i=this.state.addMessage(this.room.id,e,t);if(O(i))return;let o={id:i.id,timestamp:Date.now(),message:t,content:t,createdAt:i.createdAt,from:{identity:e,id:e,role:"user"}};for(let r of this.messageListeners)r([o]);this.config.autoEmitEvents&&this.events.emitMessageReceived(this.room.id,i)}async simulateDisconnect(){if(!this.room?.id)return;let e=this.room.state;this.room.state="disconnected",this.config.autoEmitEvents&&this.events.emitRoomConnectionStateChanged(this.room.id,"disconnected",e),this.room.emit("connectionStateChanged","disconnected")}reset(){this.state.reset(),this.events.clearHistory(),this.messageListeners.clear(),this.typingListeners.clear(),this.callRequestListeners.clear(),this.agents.clear(),this._authToken=null,this._registeredUser=null,this.room=new F(this),Re()}seed(e){this.config.seed=e,this.state.updateConfig({seed:e})}setScenario(e){this.config.scenario=e,this.applyScenario(e)}exportState(){return{...this.state.toJSON(),eventHistory:this.events.getHistory()}}getEventHistory(e){return this.events.getHistory(e)}};var tt={},q={MODE:"LIVEKIT_MODE",USE_MOCK:"USE_LIVEKIT_MOCK",MOCK_LATENCY:"MOCK_LIVEKIT_LATENCY_MS",MOCK_STRICT:"MOCK_LIVEKIT_STRICT",MOCK_SCENARIO:"MOCK_LIVEKIT_SCENARIO",MOCK_SEED:"MOCK_LIVEKIT_SEED",API_URL:"LIVEKIT_API_URL",AUTH_URL:"LIVEKIT_AUTH_URL",ORG_ID:"LIVEKIT_ORGANIZATION_ID"};function et(){let s=N(q.MODE);if(s==="mock"||s==="real")return s;let e=N(q.USE_MOCK);return e==="true"||e==="1"||Fi()?"mock":"real"}function Oi(){let s={},e=N(q.MOCK_LATENCY);e&&(s.latencyMs=parseInt(e,10));let t=N(q.MOCK_STRICT);(t==="true"||t==="1")&&(s.strictMode=!0);let i=N(q.MOCK_SCENARIO);i&&(s.scenario=i);let o=N(q.MOCK_SEED);return o&&(s.seed=parseInt(o,10)),s}function Li(){let s={},e=N(q.API_URL);e&&(s.apiUrl=e);let t=N(q.AUTH_URL);t&&(s.authUrl=t);let i=N(q.ORG_ID);return i&&(s.organizationId=i),s}function N(s){if(typeof process<"u"&&process.env)return process.env[s];if(typeof tt<"u"&&tt.env)return tt.env[`VITE_${s}`]||tt.env[s];if(typeof window<"u"&&window.__ENV__)return window.__ENV__[s]}function Fi(){return!!(typeof process<"u"&&process.env&&(process.env.NODE_ENV==="test"||process.env.VITEST||process.env.JEST_WORKER_ID)||typeof globalThis.__vitest_index__<"u")}var H=class s{static create(e){if((e.mode??et())==="mock"){let i={...Oi(),...e.mockConfig,organizationId:e.organizationId,apiUrl:e.apiUrl};return new D(i)}if(!e.organizationId||!e.apiUrl)throw new Error("ConversationService requires organizationId and apiUrl. Provide them in options or set LIVEKIT_ORGANIZATION_ID and LIVEKIT_API_URL environment variables.");return new Xe(e)}static createFromEnv(e){let t=e?.mode??et(),i=Li();return s.create({...i,...e,mode:t})}static createMock(e){return new D({organizationId:"mock_org",apiUrl:"https://mock-livekit.local",...e})}static createDeterministicMock(e=12345){return new D({organizationId:"mock_org",apiUrl:"https://mock-livekit.local",seed:e,strictMode:!0})}static getCurrentMode(){return et()}static isMockMode(){return et()==="mock"}static isMockService(e){return e instanceof D}};function wt(s){return H.createFromEnv(s)}function Le(s){return H.createMock(s)}function Fe(s){let e=s?.id??g("room"),t=new Date().toISOString();return{id:e,name:`Test Room ${e}`,groupId:g("group"),createdAt:t,isActive:!0,participantIds:[],connectionState:"connected",wsURL:ie(e),token:E(e,"local_user",t),...s}}function De(s="local_user",e){let t=Fe(e);t.participantIds.push(s);let i={identity:s,name:"Local User",roomId:t.id,joinedAt:new Date().toISOString(),isConnected:!0,trackIds:[],role:"user",attributes:{},kind:"standard",isLocal:!0};return{room:t,localParticipant:i}}function it(s){let e=Fe(s),t=new Date().toISOString(),i={identity:"user_1",name:"User One",roomId:e.id,joinedAt:t,isConnected:!0,trackIds:[],role:"user",attributes:{},kind:"standard",isLocal:!0},o={identity:"user_2",name:"User Two",roomId:e.id,joinedAt:t,isConnected:!0,trackIds:[],role:"user",attributes:{},kind:"standard",isLocal:!1};return e.participantIds.push(i.identity,o.identity),{room:e,participant1:i,participant2:o}}function Ue(s,e){let{room:t,localParticipant:i}=De("local_user",e),o=new Date().toISOString(),r=g("agent"),n={id:r,roomId:t.id,name:"AI Assistant",status:"running",startedAt:o,config:{responseStrategy:"echo",nature:"ai",...s},messageHistory:[]},a={identity:`agent_${r}`,name:"AI Assistant",roomId:t.id,joinedAt:o,isConnected:!0,trackIds:[],role:"agent",attributes:{},kind:"agent",isLocal:!1};return t.participantIds.push(a.identity),{room:t,localParticipant:i,agent:n,agentParticipant:a}}function St(s){let{room:e,localParticipant:t,agent:i,agentParticipant:o}=Ue(void 0,s),r={id:g("track"),kind:"data",source:"unknown",participantIdentity:o.identity,roomId:e.id,publishedAt:new Date().toISOString(),muted:!1};return o.trackIds.push(r.id),{room:e,localParticipant:t,agent:i,dataTrack:r}}function Mt(s){let{room:e,localParticipant:t}=De("local_user",s),i=new Date().toISOString(),o={id:g("track"),kind:"audio",source:"microphone",participantIdentity:t.identity,roomId:e.id,publishedAt:i,muted:!1},r={id:g("track"),kind:"video",source:"camera",participantIdentity:t.identity,roomId:e.id,publishedAt:i,muted:!1};return t.trackIds.push(o.id,r.id),{room:e,participant:t,audioTrack:o,videoTrack:r}}function ot(s,e){let t=e?.identity??g("participant");return{identity:t,name:`Participant ${t}`,roomId:s,joinedAt:new Date().toISOString(),isConnected:!0,trackIds:[],role:"user",attributes:{},kind:"standard",isLocal:!1,...e}}function xt(s,e){let t=[];for(let i=0;i<e;i++)t.push(ot(s,{identity:`participant_${i+1}`,name:`Participant ${i+1}`,isLocal:i===0}));return t}function $e(s,e){return{id:e?.id??g("agent"),roomId:s,name:"AI Assistant",status:"running",startedAt:new Date().toISOString(),config:{responseStrategy:"echo",nature:"ai",...e?.config},messageHistory:[],...e}}function _t(s,e){return $e(s,{config:{responseStrategy:"canned",cannedResponses:e}})}function At(s,e){return $e(s,{config:{responseStrategy:"sequential",cannedResponses:e}})}function Ct(s,e,t){return{id:g("msg"),roomId:s,content:"Test message",participantIdentity:e,createdAt:new Date().toISOString(),type:"standard",...t}}function st(s,e){return e.map((t,i)=>({id:g("msg"),roomId:s,content:t.content,participantIdentity:t.identity,createdAt:new Date(Date.now()+i*1e3).toISOString(),type:"standard"}))}function _e(s){return{latencyMs:0,strictMode:!1,autoEmitEvents:!0,organizationId:"test_org",apiUrl:"https://mock-api.local",...s}}function Tt(s){return _e({strictMode:!0,...s})}function Pt(s,e){return _e({latencyMs:s,...e})}function Rt(s,e){return _e({seed:s,...e})}function It(){let{room:s,localParticipant:e,agent:t,agentParticipant:i}=Ue(),o=st(s.id,[{identity:e.identity,content:"Hello, I need help"},{identity:i.identity,content:"Hi! How can I assist you today?"},{identity:e.identity,content:"I have a question about my order"},{identity:i.identity,content:"Of course! Please provide your order number."}]);return{room:s,user:e,agent:t,agentParticipant:i,messages:o}}function Et(){let{room:s,participant1:e,participant2:t}=it(),i=new Date().toISOString(),o=[{id:g("track"),kind:"audio",source:"microphone",participantIdentity:e.identity,roomId:s.id,publishedAt:i,muted:!1},{id:g("track"),kind:"video",source:"camera",participantIdentity:e.identity,roomId:s.id,publishedAt:i,muted:!1},{id:g("track"),kind:"audio",source:"microphone",participantIdentity:t.identity,roomId:s.id,publishedAt:i,muted:!1},{id:g("track"),kind:"video",source:"camera",participantIdentity:t.identity,roomId:s.id,publishedAt:i,muted:!1}];return e.trackIds.push(o[0].id,o[1].id),t.trackIds.push(o[2].id,o[3].id),{room:s,participant1:e,participant2:t,tracks:o}}var Ae=class{constructor(e,t,i,o,r){this.index=0;this._complete=!1;this.info={id:e,attributes:o,topic:r,timestamp:Date.now()},this.participantIdentity=t,this.topic=r,this.chunks=Array.isArray(i)?i:[i],this.info.totalSize=this.chunks.reduce((n,a)=>n+a.length,0)}get isComplete(){return this._complete}async*[Symbol.asyncIterator](){for(let e of this.chunks)yield e;this._complete=!0}async read(){return this.index>=this.chunks.length?(this._complete=!0,null):this.chunks[this.index++]}async readAll(){let e=this.chunks.slice(this.index).join("");return this.index=this.chunks.length,this._complete=!0,e}cancel(){this._complete=!0}};re();var Q=null;function y(s){return Q||(Q=Le({organizationId:"storybook_org",apiUrl:"https://storybook.mock",latencyMs:50,autoEmitEvents:!0,...s})),Q}function rt(){Q&&Q.reset()}async function zt(){Q&&(await Q.destroy(),Q=null)}function Ot(s={}){return(e,t)=>{rt();let i={default:void 0,slow_network:"slow_network",unreliable:"unreliable",agent_timeout:"agent_timeout"},o=y({organizationId:s.organizationId,latencyMs:s.latencyMs??50,scenario:s.scenario?i[s.scenario]:void 0});return(async()=>{try{if(s.autoRegisterUser&&await o.registerUser(s.autoRegisterUser.identity,s.autoRegisterUser.secret||"storybook_secret",{name:s.autoRegisterUser.name||"Storybook User"}),s.autoCreateRoom){if(await o.createRoom({language:s.autoCreateRoom.language||"en",timezone:s.autoCreateRoom.timezone||"UTC"}),s.seedMessages)for(let r of s.seedMessages)o.simulateIncomingMessage(r.from,r.content);s.autoStartAgent&&o.room?.id&&await o.startMockAgent(o.room.id,s.autoStartAgent)}}catch(r){console.error("[Storybook Mock] Setup error:",r)}})(),window.__mockConversationService=o,e()}}function Lt(s){return H.isMockService(s)}var Ft={basicChat:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"echo"}},aiAssistant:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"canned",cannedResponses:["Hello! How can I help you today?","I understand. Let me look into that for you.","Is there anything else you'd like to know?","Thank you for your patience!"]}},videoCall:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"canned",type:["text","video"],nature:"ai",name:"Video Agent",cannedResponses:["I can see you! The video quality looks great.","Let me share my screen to show you what I mean.","Is the audio coming through clearly?"]},simulateVideo:!0},multiParticipantCall:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"echo",type:["text","video"],name:"Video Agent"},simulateVideo:!0},multiTurnConversation:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"sequential",cannedResponses:["Welcome! I'm your virtual assistant.","I can help you with product information, orders, and support.","What would you like to know?"]},seedMessages:[{from:"agent",content:"Welcome! I'm your virtual assistant."}]},slowNetwork:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},autoStartAgent:{responseStrategy:"echo",responseDelayMs:2e3},latencyMs:500,scenario:"slow_network"},unreliable:{autoRegisterUser:{identity:"sb_user",name:"User"},autoCreateRoom:{language:"en",timezone:"UTC"},scenario:"unreliable"}};function Dt(s){return()=>y(s)}var nt={async receiveMessage(s,e){y().simulateIncomingMessage(s,e)},simulateJoin(s,e){y().simulateParticipantJoin(s,e)},simulateLeave(s){y().simulateParticipantLeave(s)},async simulateVideoParticipant(s,e,t){let o=y().room;o&&await o.simulateParticipantJoin(s,{name:e||s,kind:"standard",withCamera:t?.withCamera??!0,withMicrophone:t?.withMicrophone??!0})},async simulateVideoAgent(s,e){let i=y().room;i&&await i.simulateAgentJoin(s,e||"AI Agent")},async enableLocalCamera(){let e=y().room;e&&await e.localParticipant.setCameraEnabled(!0)},async disableLocalCamera(){let e=y().room;e&&await e.localParticipant.setCameraEnabled(!1)},async enableLocalMicrophone(){let e=y().room;e&&await e.localParticipant.setMicrophoneEnabled(!0)},async simulateMultipleParticipants(s){let e=["Alice","Bob","Carol","David","Eve","Frank","Grace","Henry","Ivy","Jack"],i=y().room;if(i)for(let o=0;o<Math.min(s,e.length);o++)await i.simulateParticipantJoin(`participant_${o+1}`,{name:e[o],kind:"standard",withCamera:!0,withMicrophone:!0}),await new Promise(r=>setTimeout(r,100))},clearParticipants(){let e=y().room;if(e)for(let t of e.remoteParticipants.keys())e.simulateParticipantLeave(t)},simulateCallRequest(s,e){y().simulateCallRequest({name:s,guestId:e||`guest_${Date.now()}`})},async simulateDisconnect(){await y().simulateDisconnect()},getEventHistory(){return y().getEventHistory()},exportState(){return y().exportState()},getRoom(){return y().room}};typeof window<"u"&&(window.MockServiceActions=nt);0&&(module.exports={AgentNotFoundError,Asset,ConversationServiceFactory,InvalidOperationError,MockConversationService,MockEventEmitter,MockLiveKitError,MockLocalParticipant,MockParticipant,MockRoom,MockServiceActions,MockState,MockTextStreamReader,MockTrack,MockTrackPublication,NetworkError,OSBAsset,OSBSideBar,OSBUpload,ParticipantAlreadyJoinedError,ParticipantNotFoundError,RoomEndedError,RoomNotFoundError,SYNTHETIC_MEDIA_PRESETS,SideBar,StorybookScenarios,TimeoutError,TrackNotFoundError,UnauthorizedError,Upload,createAgentFixture,createAgentWithCannedResponses,createChatScenario,createConversationFixture,createConversationService,createDefaultConfig,createDefaultRoomFixture,createDeterministicConfig,createErrorFromMockError,createLatencyConfig,createMessageFixture,createMockConversationService,createMockServiceFactory,createParticipantBatch,createParticipantFixture,createRoomWithAgent,createRoomWithAgentAndDataTrack,createRoomWithLocalParticipant,createRoomWithMediaTracks,createRoomWithTwoParticipants,createSequentialAgent,createStrictConfig,createSyntheticAudioTrack,createSyntheticMedia,createSyntheticMediaFromPreset,createSyntheticVideoTrack,createVideoCallScenario,decodeMockToken,destroyStorybookMockService,generateMockApiResponseId,generateMockExternalId,generateMockId,generateMockIdBatch,generateMockMessageId,generateMockParticipantIdentity,generateMockRoomName,generateMockToken,generateMockTrackSid,generateMockWsUrl,generateSeededMockId,getStorybookMockService,isMockConversationService,isMockError,isMockLiveKitError,resetIdCounter,resetStorybookMockService,setIdCounter,withMockConversationService});
|