@en-solutions/tgm-client-sdk 1.6.21
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/LICENSE +19 -0
- package/README.md +788 -0
- package/esm2022/en-solutions-tgm-client-sdk.mjs +5 -0
- package/esm2022/lib/components/database-manager/database-manager/database-manager.component.mjs +308 -0
- package/esm2022/lib/components/database-manager/database-manager.module.mjs +66 -0
- package/esm2022/lib/components/database-manager/object-browser/object-browser.component.mjs +98 -0
- package/esm2022/lib/components/database-manager/query-editor/query-editor.component.mjs +196 -0
- package/esm2022/lib/components/database-manager/query-toolbar/query-toolbar.component.mjs +70 -0
- package/esm2022/lib/components/database-manager/record-detail/record-detail.component.mjs +112 -0
- package/esm2022/lib/components/database-manager/registry/entity-registry.mjs +512 -0
- package/esm2022/lib/components/database-manager/results-grid/results-grid.component.mjs +165 -0
- package/esm2022/lib/components/database-manager/services/entity-schema.service.mjs +91 -0
- package/esm2022/lib/components/database-manager/services/query-executor.service.mjs +204 -0
- package/esm2022/lib/components/database-manager/table-data-viewer/table-data-viewer.component.mjs +166 -0
- package/esm2022/lib/components/database-manager/table-structure/table-structure.component.mjs +42 -0
- package/esm2022/lib/components/database-manager/types/database-manager.types.mjs +6 -0
- package/esm2022/lib/components/reporting/export-button/export-button.component.mjs +203 -0
- package/esm2022/lib/components/reporting/generated-report-list/generated-report-list.component.mjs +285 -0
- package/esm2022/lib/components/reporting/report-definition-form/report-definition-form.component.mjs +206 -0
- package/esm2022/lib/components/reporting/report-definition-list/report-definition-list.component.mjs +252 -0
- package/esm2022/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.mjs +122 -0
- package/esm2022/lib/components/reporting/report-stats/report-stats.component.mjs +164 -0
- package/esm2022/lib/components/reporting/report-template-list/report-template-list.component.mjs +114 -0
- package/esm2022/lib/components/reporting/reporting.module.mjs +60 -0
- package/esm2022/lib/components/video-call/incoming-call/incoming-call.component.mjs +80 -0
- package/esm2022/lib/components/video-call/services/livekit-room.service.mjs +142 -0
- package/esm2022/lib/components/video-call/services/video-call-signaling.service.mjs +42 -0
- package/esm2022/lib/components/video-call/services/video-call-state.service.mjs +52 -0
- package/esm2022/lib/components/video-call/types/video-call.types.mjs +2 -0
- package/esm2022/lib/components/video-call/video-call.module.mjs +42 -0
- package/esm2022/lib/components/video-call/video-controls/video-controls.component.mjs +33 -0
- package/esm2022/lib/components/video-call/video-participant/video-participant.component.mjs +68 -0
- package/esm2022/lib/components/video-call/video-room/video-room.component.mjs +89 -0
- package/esm2022/lib/core/auth-interceptor.mjs +33 -0
- package/esm2022/lib/core/client-interceptor.mjs +34 -0
- package/esm2022/lib/core/error-handler.mjs +32 -0
- package/esm2022/lib/core/http-client.service.mjs +254 -0
- package/esm2022/lib/core/websocket.service.mjs +185 -0
- package/esm2022/lib/models/admin/audit.models.mjs +2 -0
- package/esm2022/lib/models/admin/backup.models.mjs +2 -0
- package/esm2022/lib/models/admin/client.models.mjs +2 -0
- package/esm2022/lib/models/admin/email-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/erp.models.mjs +2 -0
- package/esm2022/lib/models/admin/identity-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/index.mjs +14 -0
- package/esm2022/lib/models/admin/messaging-provider.models.mjs +2 -0
- package/esm2022/lib/models/admin/platform-admin.models.mjs +2 -0
- package/esm2022/lib/models/admin/queue.models.mjs +2 -0
- package/esm2022/lib/models/admin/role.models.mjs +2 -0
- package/esm2022/lib/models/admin/sandbox.models.mjs +2 -0
- package/esm2022/lib/models/admin/ticket.models.mjs +2 -0
- package/esm2022/lib/models/admin/webhook.models.mjs +2 -0
- package/esm2022/lib/models/api/ai.models.mjs +2 -0
- package/esm2022/lib/models/api/aip.models.mjs +2 -0
- package/esm2022/lib/models/api/cat.models.mjs +2 -0
- package/esm2022/lib/models/api/company.models.mjs +2 -0
- package/esm2022/lib/models/api/compliance.models.mjs +2 -0
- package/esm2022/lib/models/api/component.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-edge.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-event.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-insight.models.mjs +2 -0
- package/esm2022/lib/models/api/cortex-node.models.mjs +2 -0
- package/esm2022/lib/models/api/custom-field.models.mjs +2 -0
- package/esm2022/lib/models/api/deferral.models.mjs +2 -0
- package/esm2022/lib/models/api/diagnostic-report.models.mjs +2 -0
- package/esm2022/lib/models/api/document.models.mjs +2 -0
- package/esm2022/lib/models/api/energy.models.mjs +2 -0
- package/esm2022/lib/models/api/failure.models.mjs +2 -0
- package/esm2022/lib/models/api/fleet.models.mjs +2 -0
- package/esm2022/lib/models/api/inspection.models.mjs +2 -0
- package/esm2022/lib/models/api/intervention.models.mjs +2 -0
- package/esm2022/lib/models/api/iot.models.mjs +2 -0
- package/esm2022/lib/models/api/knowledge.models.mjs +2 -0
- package/esm2022/lib/models/api/loto.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance-record.models.mjs +2 -0
- package/esm2022/lib/models/api/maintenance.models.mjs +2 -0
- package/esm2022/lib/models/api/material.models.mjs +2 -0
- package/esm2022/lib/models/api/media.models.mjs +2 -0
- package/esm2022/lib/models/api/misc.models.mjs +2 -0
- package/esm2022/lib/models/api/project.models.mjs +2 -0
- package/esm2022/lib/models/api/quality.models.mjs +2 -0
- package/esm2022/lib/models/api/reporting.models.mjs +3 -0
- package/esm2022/lib/models/api/reservoir-websocket.models.mjs +17 -0
- package/esm2022/lib/models/api/reservoir.models.mjs +2 -0
- package/esm2022/lib/models/api/search.models.mjs +2 -0
- package/esm2022/lib/models/api/sensor.models.mjs +2 -0
- package/esm2022/lib/models/api/unit.models.mjs +2 -0
- package/esm2022/lib/models/api/user.models.mjs +2 -0
- package/esm2022/lib/models/api/warranty.models.mjs +2 -0
- package/esm2022/lib/models/api/work-permit.models.mjs +2 -0
- package/esm2022/lib/models/api/workflow.models.mjs +2 -0
- package/esm2022/lib/models/auth/index.mjs +4 -0
- package/esm2022/lib/models/auth/login.models.mjs +2 -0
- package/esm2022/lib/models/auth/sso.models.mjs +2 -0
- package/esm2022/lib/models/auth/totp.models.mjs +2 -0
- package/esm2022/lib/models/base.models.mjs +99 -0
- package/esm2022/lib/models/chat/chat.models.mjs +2 -0
- package/esm2022/lib/models/enums/cat.enums.mjs +17 -0
- package/esm2022/lib/models/enums/energy.enums.mjs +8 -0
- package/esm2022/lib/models/enums/erp.enums.mjs +5 -0
- package/esm2022/lib/models/enums/index.mjs +15 -0
- package/esm2022/lib/models/enums/inspection.enums.mjs +7 -0
- package/esm2022/lib/models/enums/loto.enums.mjs +25 -0
- package/esm2022/lib/models/enums/misc.enums.mjs +19 -0
- package/esm2022/lib/models/enums/quality.enums.mjs +22 -0
- package/esm2022/lib/models/enums/reservoir.enums.mjs +13 -0
- package/esm2022/lib/models/enums/sso.enums.mjs +3 -0
- package/esm2022/lib/models/enums/status.enums.mjs +41 -0
- package/esm2022/lib/models/enums/time.enums.mjs +5 -0
- package/esm2022/lib/models/enums/type.enums.mjs +45 -0
- package/esm2022/lib/models/enums/user.enums.mjs +6 -0
- package/esm2022/lib/models/enums/work-permit.enums.mjs +33 -0
- package/esm2022/lib/models/index.mjs +42 -0
- package/esm2022/lib/models/realtime/realtime-event.models.mjs +9 -0
- package/esm2022/lib/models/video/video-call.models.mjs +2 -0
- package/esm2022/lib/services/admin/activity-log.service.mjs +28 -0
- package/esm2022/lib/services/admin/announcement.service.mjs +37 -0
- package/esm2022/lib/services/admin/article-admin.service.mjs +37 -0
- package/esm2022/lib/services/admin/audit-log.service.mjs +53 -0
- package/esm2022/lib/services/admin/backup.service.mjs +28 -0
- package/esm2022/lib/services/admin/cache-admin.service.mjs +64 -0
- package/esm2022/lib/services/admin/client-admin.service.mjs +101 -0
- package/esm2022/lib/services/admin/client-api-key.service.mjs +31 -0
- package/esm2022/lib/services/admin/client-ocr.service.mjs +28 -0
- package/esm2022/lib/services/admin/client-usage.service.mjs +31 -0
- package/esm2022/lib/services/admin/data-export.service.mjs +19 -0
- package/esm2022/lib/services/admin/document-admin.service.mjs +40 -0
- package/esm2022/lib/services/admin/email-admin.service.mjs +28 -0
- package/esm2022/lib/services/admin/email-provider.service.mjs +58 -0
- package/esm2022/lib/services/admin/erp-admin.service.mjs +111 -0
- package/esm2022/lib/services/admin/identity-provider.service.mjs +46 -0
- package/esm2022/lib/services/admin/impersonation.service.mjs +19 -0
- package/esm2022/lib/services/admin/index.mjs +31 -0
- package/esm2022/lib/services/admin/messaging-provider.service.mjs +55 -0
- package/esm2022/lib/services/admin/notification.service.mjs +31 -0
- package/esm2022/lib/services/admin/platform-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/platform-webhook.service.mjs +34 -0
- package/esm2022/lib/services/admin/queue-admin.service.mjs +55 -0
- package/esm2022/lib/services/admin/role-admin.service.mjs +81 -0
- package/esm2022/lib/services/admin/sandbox-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/scheduler-admin.service.mjs +34 -0
- package/esm2022/lib/services/admin/subscription.service.mjs +28 -0
- package/esm2022/lib/services/admin/system-health.service.mjs +22 -0
- package/esm2022/lib/services/admin/user-admin.service.mjs +67 -0
- package/esm2022/lib/services/admin/user-permission.service.mjs +40 -0
- package/esm2022/lib/services/admin/webhook-admin.service.mjs +61 -0
- package/esm2022/lib/services/api/agent.service.mjs +29 -0
- package/esm2022/lib/services/api/ai-feedback.service.mjs +17 -0
- package/esm2022/lib/services/api/ai.service.mjs +66 -0
- package/esm2022/lib/services/api/aip-analysis.service.mjs +20 -0
- package/esm2022/lib/services/api/aip-financial.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-geographic.service.mjs +30 -0
- package/esm2022/lib/services/api/aip-network.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-performance.service.mjs +29 -0
- package/esm2022/lib/services/api/aip-resource.service.mjs +23 -0
- package/esm2022/lib/services/api/aip-workflow.service.mjs +32 -0
- package/esm2022/lib/services/api/aip.service.mjs +158 -0
- package/esm2022/lib/services/api/alert.service.mjs +26 -0
- package/esm2022/lib/services/api/anomaly-detection.service.mjs +40 -0
- package/esm2022/lib/services/api/asset-lifecycle.service.mjs +78 -0
- package/esm2022/lib/services/api/audit-entry.service.mjs +22 -0
- package/esm2022/lib/services/api/base-crud.service.mjs +37 -0
- package/esm2022/lib/services/api/bid.service.mjs +17 -0
- package/esm2022/lib/services/api/budget.service.mjs +17 -0
- package/esm2022/lib/services/api/bulk-operation.service.mjs +65 -0
- package/esm2022/lib/services/api/capex-project.service.mjs +17 -0
- package/esm2022/lib/services/api/cat.service.mjs +77 -0
- package/esm2022/lib/services/api/client-article.service.mjs +23 -0
- package/esm2022/lib/services/api/community.service.mjs +41 -0
- package/esm2022/lib/services/api/company-material-type.service.mjs +17 -0
- package/esm2022/lib/services/api/company-material.service.mjs +17 -0
- package/esm2022/lib/services/api/company.service.mjs +30 -0
- package/esm2022/lib/services/api/compliance.service.mjs +74 -0
- package/esm2022/lib/services/api/component-info.service.mjs +17 -0
- package/esm2022/lib/services/api/component-location.service.mjs +17 -0
- package/esm2022/lib/services/api/component.service.mjs +53 -0
- package/esm2022/lib/services/api/cortex-event.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex-insight.service.mjs +23 -0
- package/esm2022/lib/services/api/cortex-node.service.mjs +17 -0
- package/esm2022/lib/services/api/cortex.service.mjs +29 -0
- package/esm2022/lib/services/api/custom-field.service.mjs +70 -0
- package/esm2022/lib/services/api/custom.service.mjs +43 -0
- package/esm2022/lib/services/api/dashboard.service.mjs +44 -0
- package/esm2022/lib/services/api/deferral.service.mjs +54 -0
- package/esm2022/lib/services/api/department.service.mjs +17 -0
- package/esm2022/lib/services/api/device-gateway.service.mjs +33 -0
- package/esm2022/lib/services/api/diagnostic-report.service.mjs +23 -0
- package/esm2022/lib/services/api/digital-twin.service.mjs +56 -0
- package/esm2022/lib/services/api/document.service.mjs +53 -0
- package/esm2022/lib/services/api/dynamic-crud.service.mjs +67 -0
- package/esm2022/lib/services/api/energy-analytics.service.mjs +42 -0
- package/esm2022/lib/services/api/energy-production.service.mjs +17 -0
- package/esm2022/lib/services/api/energy.service.mjs +91 -0
- package/esm2022/lib/services/api/entity-comment.service.mjs +31 -0
- package/esm2022/lib/services/api/event.service.mjs +17 -0
- package/esm2022/lib/services/api/export.service.mjs +216 -0
- package/esm2022/lib/services/api/extension.service.mjs +56 -0
- package/esm2022/lib/services/api/failure.service.mjs +53 -0
- package/esm2022/lib/services/api/fleet.service.mjs +140 -0
- package/esm2022/lib/services/api/inactive-component.service.mjs +17 -0
- package/esm2022/lib/services/api/index.mjs +101 -0
- package/esm2022/lib/services/api/inspection.service.mjs +29 -0
- package/esm2022/lib/services/api/intervention-request.service.mjs +17 -0
- package/esm2022/lib/services/api/intervention.service.mjs +17 -0
- package/esm2022/lib/services/api/knowledge.service.mjs +209 -0
- package/esm2022/lib/services/api/license.service.mjs +25 -0
- package/esm2022/lib/services/api/location.service.mjs +17 -0
- package/esm2022/lib/services/api/log.service.mjs +17 -0
- package/esm2022/lib/services/api/login-history.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-plan.service.mjs +17 -0
- package/esm2022/lib/services/api/maintenance-record.service.mjs +17 -0
- package/esm2022/lib/services/api/material-consumable.service.mjs +41 -0
- package/esm2022/lib/services/api/material-instrument.service.mjs +29 -0
- package/esm2022/lib/services/api/material-item.service.mjs +53 -0
- package/esm2022/lib/services/api/material-tooling.service.mjs +41 -0
- package/esm2022/lib/services/api/measurement-unit.service.mjs +17 -0
- package/esm2022/lib/services/api/misc-crud.service.mjs +329 -0
- package/esm2022/lib/services/api/note.service.mjs +37 -0
- package/esm2022/lib/services/api/outage-resource.service.mjs +28 -0
- package/esm2022/lib/services/api/plant-data.service.mjs +31 -0
- package/esm2022/lib/services/api/procurement.service.mjs +53 -0
- package/esm2022/lib/services/api/project.service.mjs +17 -0
- package/esm2022/lib/services/api/property-template.service.mjs +17 -0
- package/esm2022/lib/services/api/quality.service.mjs +29 -0
- package/esm2022/lib/services/api/recurring-event.service.mjs +17 -0
- package/esm2022/lib/services/api/reporting.service.mjs +117 -0
- package/esm2022/lib/services/api/reservoir-data.service.mjs +19 -0
- package/esm2022/lib/services/api/reservoir.service.mjs +209 -0
- package/esm2022/lib/services/api/room.service.mjs +17 -0
- package/esm2022/lib/services/api/sandbox.service.mjs +62 -0
- package/esm2022/lib/services/api/scheduled-report.service.mjs +17 -0
- package/esm2022/lib/services/api/search.service.mjs +77 -0
- package/esm2022/lib/services/api/sensor.service.mjs +36 -0
- package/esm2022/lib/services/api/sla-policy.service.mjs +17 -0
- package/esm2022/lib/services/api/sla.service.mjs +17 -0
- package/esm2022/lib/services/api/threshold-alert-rule.service.mjs +17 -0
- package/esm2022/lib/services/api/ticket.service.mjs +73 -0
- package/esm2022/lib/services/api/time-entry.service.mjs +17 -0
- package/esm2022/lib/services/api/todo.service.mjs +17 -0
- package/esm2022/lib/services/api/unit.service.mjs +17 -0
- package/esm2022/lib/services/api/upload.service.mjs +84 -0
- package/esm2022/lib/services/api/user.service.mjs +107 -0
- package/esm2022/lib/services/api/warehouse.service.mjs +29 -0
- package/esm2022/lib/services/api/warranty.service.mjs +29 -0
- package/esm2022/lib/services/api/work-order.service.mjs +28 -0
- package/esm2022/lib/services/api/work-permit.service.mjs +17 -0
- package/esm2022/lib/services/api/workflow.service.mjs +86 -0
- package/esm2022/lib/services/auth/auth.service.mjs +97 -0
- package/esm2022/lib/services/auth/index.mjs +5 -0
- package/esm2022/lib/services/auth/platform-auth.service.mjs +39 -0
- package/esm2022/lib/services/auth/sso-auth.service.mjs +46 -0
- package/esm2022/lib/services/auth/totp.service.mjs +34 -0
- package/esm2022/lib/services/chat/chat-rest.service.mjs +104 -0
- package/esm2022/lib/services/chat/chat-websocket.service.mjs +70 -0
- package/esm2022/lib/services/chat/index.mjs +3 -0
- package/esm2022/lib/services/index.mjs +8 -0
- package/esm2022/lib/services/realtime/index.mjs +2 -0
- package/esm2022/lib/services/realtime/realtime-event.service.mjs +187 -0
- package/esm2022/lib/services/reservoir/index.mjs +2 -0
- package/esm2022/lib/services/reservoir/reservoir-websocket.service.mjs +105 -0
- package/esm2022/lib/services/video/index.mjs +3 -0
- package/esm2022/lib/services/video/video-call-rest.service.mjs +42 -0
- package/esm2022/lib/services/video/video-call-websocket.service.mjs +55 -0
- package/esm2022/lib/tgm-sdk.config.mjs +32 -0
- package/esm2022/lib/tgm-sdk.module.mjs +38 -0
- package/esm2022/public-api.mjs +52 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs +11029 -0
- package/fesm2022/en-solutions-tgm-client-sdk.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/database-manager/database-manager/database-manager.component.d.ts +70 -0
- package/lib/components/database-manager/database-manager.module.d.ts +15 -0
- package/lib/components/database-manager/object-browser/object-browser.component.d.ts +35 -0
- package/lib/components/database-manager/query-editor/query-editor.component.d.ts +31 -0
- package/lib/components/database-manager/query-toolbar/query-toolbar.component.d.ts +23 -0
- package/lib/components/database-manager/record-detail/record-detail.component.d.ts +35 -0
- package/lib/components/database-manager/registry/entity-registry.d.ts +16 -0
- package/lib/components/database-manager/results-grid/results-grid.component.d.ts +62 -0
- package/lib/components/database-manager/services/entity-schema.service.d.ts +37 -0
- package/lib/components/database-manager/services/query-executor.service.d.ts +57 -0
- package/lib/components/database-manager/table-data-viewer/table-data-viewer.component.d.ts +54 -0
- package/lib/components/database-manager/table-structure/table-structure.component.d.ts +16 -0
- package/lib/components/database-manager/types/database-manager.types.d.ts +71 -0
- package/lib/components/reporting/export-button/export-button.component.d.ts +50 -0
- package/lib/components/reporting/generated-report-list/generated-report-list.component.d.ts +93 -0
- package/lib/components/reporting/report-definition-form/report-definition-form.component.d.ts +65 -0
- package/lib/components/reporting/report-definition-list/report-definition-list.component.d.ts +90 -0
- package/lib/components/reporting/report-generate-dialog/report-generate-dialog.component.d.ts +46 -0
- package/lib/components/reporting/report-stats/report-stats.component.d.ts +47 -0
- package/lib/components/reporting/report-template-list/report-template-list.component.d.ts +39 -0
- package/lib/components/reporting/reporting.module.d.ts +14 -0
- package/lib/components/video-call/incoming-call/incoming-call.component.d.ts +20 -0
- package/lib/components/video-call/services/livekit-room.service.d.ts +28 -0
- package/lib/components/video-call/services/video-call-signaling.service.d.ts +21 -0
- package/lib/components/video-call/services/video-call-state.service.d.ts +25 -0
- package/lib/components/video-call/types/video-call.types.d.ts +49 -0
- package/lib/components/video-call/video-call.module.d.ts +11 -0
- package/lib/components/video-call/video-controls/video-controls.component.d.ts +13 -0
- package/lib/components/video-call/video-participant/video-participant.component.d.ts +17 -0
- package/lib/components/video-call/video-room/video-room.component.d.ts +30 -0
- package/lib/core/auth-interceptor.d.ts +13 -0
- package/lib/core/client-interceptor.d.ts +14 -0
- package/lib/core/error-handler.d.ts +13 -0
- package/lib/core/http-client.service.d.ts +61 -0
- package/lib/core/websocket.service.d.ts +37 -0
- package/lib/models/admin/audit.models.d.ts +73 -0
- package/lib/models/admin/backup.models.d.ts +101 -0
- package/lib/models/admin/client.models.d.ts +99 -0
- package/lib/models/admin/email-provider.models.d.ts +56 -0
- package/lib/models/admin/erp.models.d.ts +188 -0
- package/lib/models/admin/identity-provider.models.d.ts +1 -0
- package/lib/models/admin/index.d.ts +13 -0
- package/lib/models/admin/messaging-provider.models.d.ts +49 -0
- package/lib/models/admin/platform-admin.models.d.ts +33 -0
- package/lib/models/admin/queue.models.d.ts +54 -0
- package/lib/models/admin/role.models.d.ts +50 -0
- package/lib/models/admin/sandbox.models.d.ts +54 -0
- package/lib/models/admin/ticket.models.d.ts +48 -0
- package/lib/models/admin/webhook.models.d.ts +65 -0
- package/lib/models/api/ai.models.d.ts +75 -0
- package/lib/models/api/aip.models.d.ts +545 -0
- package/lib/models/api/cat.models.d.ts +260 -0
- package/lib/models/api/company.models.d.ts +125 -0
- package/lib/models/api/compliance.models.d.ts +74 -0
- package/lib/models/api/component.models.d.ts +294 -0
- package/lib/models/api/cortex-edge.models.d.ts +14 -0
- package/lib/models/api/cortex-event.models.d.ts +12 -0
- package/lib/models/api/cortex-insight.models.d.ts +25 -0
- package/lib/models/api/cortex-node.models.d.ts +10 -0
- package/lib/models/api/custom-field.models.d.ts +37 -0
- package/lib/models/api/deferral.models.d.ts +81 -0
- package/lib/models/api/diagnostic-report.models.d.ts +29 -0
- package/lib/models/api/document.models.d.ts +95 -0
- package/lib/models/api/energy.models.d.ts +210 -0
- package/lib/models/api/failure.models.d.ts +171 -0
- package/lib/models/api/fleet.models.d.ts +193 -0
- package/lib/models/api/inspection.models.d.ts +110 -0
- package/lib/models/api/intervention.models.d.ts +254 -0
- package/lib/models/api/iot.models.d.ts +15 -0
- package/lib/models/api/knowledge.models.d.ts +340 -0
- package/lib/models/api/loto.models.d.ts +51 -0
- package/lib/models/api/maintenance-record.models.d.ts +100 -0
- package/lib/models/api/maintenance.models.d.ts +188 -0
- package/lib/models/api/material.models.d.ts +261 -0
- package/lib/models/api/media.models.d.ts +106 -0
- package/lib/models/api/misc.models.d.ts +929 -0
- package/lib/models/api/project.models.d.ts +118 -0
- package/lib/models/api/quality.models.d.ts +153 -0
- package/lib/models/api/reporting.models.d.ts +76 -0
- package/lib/models/api/reservoir-websocket.models.d.ts +48 -0
- package/lib/models/api/reservoir.models.d.ts +274 -0
- package/lib/models/api/search.models.d.ts +30 -0
- package/lib/models/api/sensor.models.d.ts +117 -0
- package/lib/models/api/unit.models.d.ts +82 -0
- package/lib/models/api/user.models.d.ts +253 -0
- package/lib/models/api/warranty.models.d.ts +51 -0
- package/lib/models/api/work-permit.models.d.ts +70 -0
- package/lib/models/api/workflow.models.d.ts +52 -0
- package/lib/models/auth/index.d.ts +3 -0
- package/lib/models/auth/login.models.d.ts +134 -0
- package/lib/models/auth/sso.models.d.ts +136 -0
- package/lib/models/auth/totp.models.d.ts +19 -0
- package/lib/models/base.models.d.ts +90 -0
- package/lib/models/chat/chat.models.d.ts +171 -0
- package/lib/models/enums/cat.enums.d.ts +114 -0
- package/lib/models/enums/energy.enums.d.ts +50 -0
- package/lib/models/enums/erp.enums.d.ts +49 -0
- package/lib/models/enums/index.d.ts +14 -0
- package/lib/models/enums/inspection.enums.d.ts +61 -0
- package/lib/models/enums/loto.enums.d.ts +41 -0
- package/lib/models/enums/misc.enums.d.ts +151 -0
- package/lib/models/enums/quality.enums.d.ts +25 -0
- package/lib/models/enums/reservoir.enums.d.ts +80 -0
- package/lib/models/enums/sso.enums.d.ts +15 -0
- package/lib/models/enums/status.enums.d.ts +296 -0
- package/lib/models/enums/time.enums.d.ts +51 -0
- package/lib/models/enums/type.enums.d.ts +324 -0
- package/lib/models/enums/user.enums.d.ts +31 -0
- package/lib/models/enums/work-permit.enums.d.ts +56 -0
- package/lib/models/index.d.ts +41 -0
- package/lib/models/realtime/realtime-event.models.d.ts +95 -0
- package/lib/models/video/video-call.models.d.ts +65 -0
- package/lib/services/admin/activity-log.service.d.ts +13 -0
- package/lib/services/admin/announcement.service.d.ts +17 -0
- package/lib/services/admin/article-admin.service.d.ts +17 -0
- package/lib/services/admin/audit-log.service.d.ts +22 -0
- package/lib/services/admin/backup.service.d.ts +15 -0
- package/lib/services/admin/cache-admin.service.d.ts +26 -0
- package/lib/services/admin/client-admin.service.d.ts +38 -0
- package/lib/services/admin/client-api-key.service.d.ts +15 -0
- package/lib/services/admin/client-ocr.service.d.ts +14 -0
- package/lib/services/admin/client-usage.service.d.ts +15 -0
- package/lib/services/admin/data-export.service.d.ts +10 -0
- package/lib/services/admin/document-admin.service.d.ts +18 -0
- package/lib/services/admin/email-admin.service.d.ts +14 -0
- package/lib/services/admin/email-provider.service.d.ts +25 -0
- package/lib/services/admin/erp-admin.service.d.ts +41 -0
- package/lib/services/admin/identity-provider.service.d.ts +21 -0
- package/lib/services/admin/impersonation.service.d.ts +11 -0
- package/lib/services/admin/index.d.ts +30 -0
- package/lib/services/admin/messaging-provider.service.d.ts +24 -0
- package/lib/services/admin/notification.service.d.ts +15 -0
- package/lib/services/admin/platform-admin.service.d.ts +17 -0
- package/lib/services/admin/platform-webhook.service.d.ts +16 -0
- package/lib/services/admin/queue-admin.service.d.ts +24 -0
- package/lib/services/admin/role-admin.service.d.ts +37 -0
- package/lib/services/admin/sandbox-admin.service.d.ts +17 -0
- package/lib/services/admin/scheduler-admin.service.d.ts +61 -0
- package/lib/services/admin/subscription.service.d.ts +15 -0
- package/lib/services/admin/system-health.service.d.ts +11 -0
- package/lib/services/admin/user-admin.service.d.ts +27 -0
- package/lib/services/admin/user-permission.service.d.ts +18 -0
- package/lib/services/admin/webhook-admin.service.d.ts +26 -0
- package/lib/services/api/agent.service.d.ts +16 -0
- package/lib/services/api/ai-feedback.service.d.ts +9 -0
- package/lib/services/api/ai.service.d.ts +36 -0
- package/lib/services/api/aip-analysis.service.d.ts +13 -0
- package/lib/services/api/aip-financial.service.d.ts +16 -0
- package/lib/services/api/aip-geographic.service.d.ts +16 -0
- package/lib/services/api/aip-network.service.d.ts +16 -0
- package/lib/services/api/aip-performance.service.d.ts +16 -0
- package/lib/services/api/aip-resource.service.d.ts +14 -0
- package/lib/services/api/aip-workflow.service.d.ts +24 -0
- package/lib/services/api/aip.service.d.ts +73 -0
- package/lib/services/api/alert.service.d.ts +15 -0
- package/lib/services/api/anomaly-detection.service.d.ts +26 -0
- package/lib/services/api/asset-lifecycle.service.d.ts +29 -0
- package/lib/services/api/audit-entry.service.d.ts +13 -0
- package/lib/services/api/base-crud.service.d.ts +18 -0
- package/lib/services/api/bid.service.d.ts +10 -0
- package/lib/services/api/budget.service.d.ts +10 -0
- package/lib/services/api/bulk-operation.service.d.ts +26 -0
- package/lib/services/api/capex-project.service.d.ts +10 -0
- package/lib/services/api/cat.service.d.ts +40 -0
- package/lib/services/api/client-article.service.d.ts +14 -0
- package/lib/services/api/community.service.d.ts +21 -0
- package/lib/services/api/company-material-type.service.d.ts +10 -0
- package/lib/services/api/company-material.service.d.ts +9 -0
- package/lib/services/api/company.service.d.ts +15 -0
- package/lib/services/api/compliance.service.d.ts +35 -0
- package/lib/services/api/component-info.service.d.ts +10 -0
- package/lib/services/api/component-location.service.d.ts +10 -0
- package/lib/services/api/component.service.d.ts +32 -0
- package/lib/services/api/cortex-event.service.d.ts +10 -0
- package/lib/services/api/cortex-insight.service.d.ts +14 -0
- package/lib/services/api/cortex-node.service.d.ts +10 -0
- package/lib/services/api/cortex.service.d.ts +15 -0
- package/lib/services/api/custom-field.service.d.ts +33 -0
- package/lib/services/api/custom.service.d.ts +23 -0
- package/lib/services/api/dashboard.service.d.ts +18 -0
- package/lib/services/api/deferral.service.d.ts +29 -0
- package/lib/services/api/department.service.d.ts +9 -0
- package/lib/services/api/device-gateway.service.d.ts +16 -0
- package/lib/services/api/diagnostic-report.service.d.ts +14 -0
- package/lib/services/api/digital-twin.service.d.ts +29 -0
- package/lib/services/api/document.service.d.ts +28 -0
- package/lib/services/api/dynamic-crud.service.d.ts +41 -0
- package/lib/services/api/energy-analytics.service.d.ts +16 -0
- package/lib/services/api/energy-production.service.d.ts +10 -0
- package/lib/services/api/energy.service.d.ts +46 -0
- package/lib/services/api/entity-comment.service.d.ts +16 -0
- package/lib/services/api/event.service.d.ts +10 -0
- package/lib/services/api/export.service.d.ts +48 -0
- package/lib/services/api/extension.service.d.ts +24 -0
- package/lib/services/api/failure.service.d.ts +28 -0
- package/lib/services/api/fleet.service.d.ts +71 -0
- package/lib/services/api/inactive-component.service.d.ts +10 -0
- package/lib/services/api/index.d.ts +101 -0
- package/lib/services/api/inspection.service.d.ts +16 -0
- package/lib/services/api/intervention-request.service.d.ts +10 -0
- package/lib/services/api/intervention.service.d.ts +10 -0
- package/lib/services/api/knowledge.service.d.ts +106 -0
- package/lib/services/api/license.service.d.ts +14 -0
- package/lib/services/api/location.service.d.ts +9 -0
- package/lib/services/api/log.service.d.ts +9 -0
- package/lib/services/api/login-history.service.d.ts +10 -0
- package/lib/services/api/maintenance-plan.service.d.ts +10 -0
- package/lib/services/api/maintenance-record.service.d.ts +10 -0
- package/lib/services/api/material-consumable.service.d.ts +22 -0
- package/lib/services/api/material-instrument.service.d.ts +16 -0
- package/lib/services/api/material-item.service.d.ts +28 -0
- package/lib/services/api/material-tooling.service.d.ts +22 -0
- package/lib/services/api/measurement-unit.service.d.ts +10 -0
- package/lib/services/api/misc-crud.service.d.ts +167 -0
- package/lib/services/api/note.service.d.ts +14 -0
- package/lib/services/api/outage-resource.service.d.ts +15 -0
- package/lib/services/api/plant-data.service.d.ts +14 -0
- package/lib/services/api/procurement.service.d.ts +27 -0
- package/lib/services/api/project.service.d.ts +10 -0
- package/lib/services/api/property-template.service.d.ts +10 -0
- package/lib/services/api/quality.service.d.ts +16 -0
- package/lib/services/api/recurring-event.service.d.ts +10 -0
- package/lib/services/api/reporting.service.d.ts +38 -0
- package/lib/services/api/reservoir-data.service.d.ts +10 -0
- package/lib/services/api/reservoir.service.d.ts +109 -0
- package/lib/services/api/room.service.d.ts +10 -0
- package/lib/services/api/sandbox.service.d.ts +26 -0
- package/lib/services/api/scheduled-report.service.d.ts +10 -0
- package/lib/services/api/search.service.d.ts +54 -0
- package/lib/services/api/sensor.service.d.ts +17 -0
- package/lib/services/api/sla-policy.service.d.ts +10 -0
- package/lib/services/api/sla.service.d.ts +10 -0
- package/lib/services/api/threshold-alert-rule.service.d.ts +10 -0
- package/lib/services/api/ticket.service.d.ts +60 -0
- package/lib/services/api/time-entry.service.d.ts +10 -0
- package/lib/services/api/todo.service.d.ts +10 -0
- package/lib/services/api/unit.service.d.ts +10 -0
- package/lib/services/api/upload.service.d.ts +50 -0
- package/lib/services/api/user.service.d.ts +59 -0
- package/lib/services/api/warehouse.service.d.ts +15 -0
- package/lib/services/api/warranty.service.d.ts +16 -0
- package/lib/services/api/work-order.service.d.ts +17 -0
- package/lib/services/api/work-permit.service.d.ts +10 -0
- package/lib/services/api/workflow.service.d.ts +33 -0
- package/lib/services/auth/auth.service.d.ts +33 -0
- package/lib/services/auth/index.d.ts +4 -0
- package/lib/services/auth/platform-auth.service.d.ts +16 -0
- package/lib/services/auth/sso-auth.service.d.ts +21 -0
- package/lib/services/auth/totp.service.d.ts +18 -0
- package/lib/services/chat/chat-rest.service.d.ts +40 -0
- package/lib/services/chat/chat-websocket.service.d.ts +34 -0
- package/lib/services/chat/index.d.ts +2 -0
- package/lib/services/index.d.ts +7 -0
- package/lib/services/realtime/index.d.ts +1 -0
- package/lib/services/realtime/realtime-event.service.d.ts +137 -0
- package/lib/services/reservoir/index.d.ts +1 -0
- package/lib/services/reservoir/reservoir-websocket.service.d.ts +47 -0
- package/lib/services/video/index.d.ts +2 -0
- package/lib/services/video/video-call-rest.service.d.ts +19 -0
- package/lib/services/video/video-call-websocket.service.d.ts +31 -0
- package/lib/tgm-sdk.config.d.ts +36 -0
- package/lib/tgm-sdk.module.d.ts +13 -0
- package/package.json +40 -0
- package/public-api.d.ts +42 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../core/websocket.service";
|
|
5
|
+
export class ChatWebSocketService {
|
|
6
|
+
ws;
|
|
7
|
+
destroy$ = new Subject();
|
|
8
|
+
connected = false;
|
|
9
|
+
/** Incoming new messages */
|
|
10
|
+
messages$;
|
|
11
|
+
/** Typing indicators */
|
|
12
|
+
typing$;
|
|
13
|
+
/** Presence updates */
|
|
14
|
+
presence$;
|
|
15
|
+
/** Read receipt broadcasts */
|
|
16
|
+
readReceipts$;
|
|
17
|
+
/** Reaction broadcasts */
|
|
18
|
+
reactions$;
|
|
19
|
+
/** Error messages */
|
|
20
|
+
errors$;
|
|
21
|
+
constructor(ws) {
|
|
22
|
+
this.ws = ws;
|
|
23
|
+
this.messages$ = this.ws.subscribe('/user/queue/chat/messages').pipe(takeUntil(this.destroy$));
|
|
24
|
+
this.typing$ = this.ws.subscribe('/user/queue/chat/typing').pipe(takeUntil(this.destroy$));
|
|
25
|
+
this.presence$ = this.ws.subscribe('/user/queue/chat/presence').pipe(takeUntil(this.destroy$));
|
|
26
|
+
this.readReceipts$ = this.ws.subscribe('/user/queue/chat/receipts').pipe(takeUntil(this.destroy$));
|
|
27
|
+
this.reactions$ = this.ws.subscribe('/user/queue/chat/reactions').pipe(takeUntil(this.destroy$));
|
|
28
|
+
this.errors$ = this.ws.subscribe('/user/queue/chat/errors').pipe(takeUntil(this.destroy$));
|
|
29
|
+
}
|
|
30
|
+
connect() {
|
|
31
|
+
if (!this.connected) {
|
|
32
|
+
this.ws.connect('/ws/chat');
|
|
33
|
+
this.connected = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
disconnect() {
|
|
37
|
+
this.ws.disconnect();
|
|
38
|
+
this.connected = false;
|
|
39
|
+
}
|
|
40
|
+
sendMessage(request) {
|
|
41
|
+
this.ws.send('/app/chat.send', request);
|
|
42
|
+
}
|
|
43
|
+
sendTyping(conversationId, typing) {
|
|
44
|
+
this.ws.send('/app/chat.typing', { conversationId, typing });
|
|
45
|
+
}
|
|
46
|
+
markRead(conversationId, lastMessageId) {
|
|
47
|
+
this.ws.send('/app/chat.markRead', { conversationId, lastReadMessageId: lastMessageId });
|
|
48
|
+
}
|
|
49
|
+
sendReaction(messageId, conversationId, emoji, add) {
|
|
50
|
+
this.ws.send('/app/chat.reaction', { messageId, conversationId, emoji, add });
|
|
51
|
+
}
|
|
52
|
+
updatePresence(online, deviceType) {
|
|
53
|
+
this.ws.send('/app/chat.presence', { online, deviceType });
|
|
54
|
+
}
|
|
55
|
+
heartbeat() {
|
|
56
|
+
this.ws.send('/app/chat.heartbeat', {});
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this.destroy$.next();
|
|
60
|
+
this.destroy$.complete();
|
|
61
|
+
this.disconnect();
|
|
62
|
+
}
|
|
63
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWebSocketService, deps: [{ token: i1.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWebSocketService, providedIn: 'root' });
|
|
65
|
+
}
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatWebSocketService, decorators: [{
|
|
67
|
+
type: Injectable,
|
|
68
|
+
args: [{ providedIn: 'root' }]
|
|
69
|
+
}], ctorParameters: () => [{ type: i1.WebSocketService }] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC13ZWJzb2NrZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvY2hhdC9jaGF0LXdlYnNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVl0RCxNQUFNLE9BQU8sb0JBQW9CO0lBc0JYO0lBckJaLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9CLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFMUIsNEJBQTRCO0lBQ25CLFNBQVMsQ0FBMEI7SUFFNUMsd0JBQXdCO0lBQ2YsT0FBTyxDQUFzQztJQUV0RCx1QkFBdUI7SUFDZCxTQUFTLENBQStCO0lBRWpELDhCQUE4QjtJQUNyQixhQUFhLENBQW1DO0lBRXpELDBCQUEwQjtJQUNqQixVQUFVLENBQWdDO0lBRW5ELHFCQUFxQjtJQUNaLE9BQU8sQ0FBa0I7SUFFbEMsWUFBb0IsRUFBb0I7UUFBcEIsT0FBRSxHQUFGLEVBQUUsQ0FBa0I7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBYywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBMEIseUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQW1CLDJCQUEyQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUNqSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUF1QiwyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDekgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBb0IsNEJBQTRCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQU0seUJBQXlCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBMkI7UUFDckMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxjQUFzQixFQUFFLE1BQWU7UUFDaEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsUUFBUSxDQUFDLGNBQXNCLEVBQUUsYUFBc0I7UUFDckQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQWlCLEVBQUUsY0FBc0IsRUFBRSxLQUFhLEVBQUUsR0FBWTtRQUNqRixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFlLEVBQUUsVUFBbUI7UUFDakQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO3dHQXZFVSxvQkFBb0I7NEdBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dlYnNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENoYXRNZXNzYWdlLFxuICBUeXBpbmdJbmRpY2F0b3JSZXNwb25zZSxcbiAgUHJlc2VuY2VSZXNwb25zZSxcbiAgUmVhZFJlY2VpcHRCcm9hZGNhc3QsXG4gIFJlYWN0aW9uQnJvYWRjYXN0LFxuICBTZW5kTWVzc2FnZVJlcXVlc3QsXG59IGZyb20gJy4uLy4uL21vZGVscy9jaGF0L2NoYXQubW9kZWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDaGF0V2ViU29ja2V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGNvbm5lY3RlZCA9IGZhbHNlO1xuXG4gIC8qKiBJbmNvbWluZyBuZXcgbWVzc2FnZXMgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZXMkOiBPYnNlcnZhYmxlPENoYXRNZXNzYWdlPjtcblxuICAvKiogVHlwaW5nIGluZGljYXRvcnMgKi9cbiAgcmVhZG9ubHkgdHlwaW5nJDogT2JzZXJ2YWJsZTxUeXBpbmdJbmRpY2F0b3JSZXNwb25zZT47XG5cbiAgLyoqIFByZXNlbmNlIHVwZGF0ZXMgKi9cbiAgcmVhZG9ubHkgcHJlc2VuY2UkOiBPYnNlcnZhYmxlPFByZXNlbmNlUmVzcG9uc2U+O1xuXG4gIC8qKiBSZWFkIHJlY2VpcHQgYnJvYWRjYXN0cyAqL1xuICByZWFkb25seSByZWFkUmVjZWlwdHMkOiBPYnNlcnZhYmxlPFJlYWRSZWNlaXB0QnJvYWRjYXN0PjtcblxuICAvKiogUmVhY3Rpb24gYnJvYWRjYXN0cyAqL1xuICByZWFkb25seSByZWFjdGlvbnMkOiBPYnNlcnZhYmxlPFJlYWN0aW9uQnJvYWRjYXN0PjtcblxuICAvKiogRXJyb3IgbWVzc2FnZXMgKi9cbiAgcmVhZG9ubHkgZXJyb3JzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IFdlYlNvY2tldFNlcnZpY2UpIHtcbiAgICB0aGlzLm1lc3NhZ2VzJCA9IHRoaXMud3Muc3Vic2NyaWJlPENoYXRNZXNzYWdlPignL3VzZXIvcXVldWUvY2hhdC9tZXNzYWdlcycpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB0aGlzLnR5cGluZyQgPSB0aGlzLndzLnN1YnNjcmliZTxUeXBpbmdJbmRpY2F0b3JSZXNwb25zZT4oJy91c2VyL3F1ZXVlL2NoYXQvdHlwaW5nJykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIHRoaXMucHJlc2VuY2UkID0gdGhpcy53cy5zdWJzY3JpYmU8UHJlc2VuY2VSZXNwb25zZT4oJy91c2VyL3F1ZXVlL2NoYXQvcHJlc2VuY2UnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgdGhpcy5yZWFkUmVjZWlwdHMkID0gdGhpcy53cy5zdWJzY3JpYmU8UmVhZFJlY2VpcHRCcm9hZGNhc3Q+KCcvdXNlci9xdWV1ZS9jaGF0L3JlY2VpcHRzJykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIHRoaXMucmVhY3Rpb25zJCA9IHRoaXMud3Muc3Vic2NyaWJlPFJlYWN0aW9uQnJvYWRjYXN0PignL3VzZXIvcXVldWUvY2hhdC9yZWFjdGlvbnMnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgdGhpcy5lcnJvcnMkID0gdGhpcy53cy5zdWJzY3JpYmU8YW55PignL3VzZXIvcXVldWUvY2hhdC9lcnJvcnMnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25uZWN0ZWQpIHtcbiAgICAgIHRoaXMud3MuY29ubmVjdCgnL3dzL2NoYXQnKTtcbiAgICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIHRoaXMud3MuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gIH1cblxuICBzZW5kTWVzc2FnZShyZXF1ZXN0OiBTZW5kTWVzc2FnZVJlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLndzLnNlbmQoJy9hcHAvY2hhdC5zZW5kJywgcmVxdWVzdCk7XG4gIH1cblxuICBzZW5kVHlwaW5nKGNvbnZlcnNhdGlvbklkOiBudW1iZXIsIHR5cGluZzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMud3Muc2VuZCgnL2FwcC9jaGF0LnR5cGluZycsIHsgY29udmVyc2F0aW9uSWQsIHR5cGluZyB9KTtcbiAgfVxuXG4gIG1hcmtSZWFkKGNvbnZlcnNhdGlvbklkOiBudW1iZXIsIGxhc3RNZXNzYWdlSWQ/OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLndzLnNlbmQoJy9hcHAvY2hhdC5tYXJrUmVhZCcsIHsgY29udmVyc2F0aW9uSWQsIGxhc3RSZWFkTWVzc2FnZUlkOiBsYXN0TWVzc2FnZUlkIH0pO1xuICB9XG5cbiAgc2VuZFJlYWN0aW9uKG1lc3NhZ2VJZDogbnVtYmVyLCBjb252ZXJzYXRpb25JZDogbnVtYmVyLCBlbW9qaTogc3RyaW5nLCBhZGQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLndzLnNlbmQoJy9hcHAvY2hhdC5yZWFjdGlvbicsIHsgbWVzc2FnZUlkLCBjb252ZXJzYXRpb25JZCwgZW1vamksIGFkZCB9KTtcbiAgfVxuXG4gIHVwZGF0ZVByZXNlbmNlKG9ubGluZTogYm9vbGVhbiwgZGV2aWNlVHlwZT86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3Muc2VuZCgnL2FwcC9jaGF0LnByZXNlbmNlJywgeyBvbmxpbmUsIGRldmljZVR5cGUgfSk7XG4gIH1cblxuICBoZWFydGJlYXQoKTogdm9pZCB7XG4gICAgdGhpcy53cy5zZW5kKCcvYXBwL2NoYXQuaGVhcnRiZWF0Jywge30pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { ChatRestService } from './chat-rest.service';
|
|
2
|
+
export { ChatWebSocketService } from './chat-websocket.service';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2NoYXQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ2hhdFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi9jaGF0LXJlc3Quc2VydmljZSc7XG5leHBvcnQgeyBDaGF0V2ViU29ja2V0U2VydmljZSB9IGZyb20gJy4vY2hhdC13ZWJzb2NrZXQuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './auth';
|
|
2
|
+
export * from './admin';
|
|
3
|
+
export * from './api';
|
|
4
|
+
export * from './chat';
|
|
5
|
+
export * from './realtime';
|
|
6
|
+
export * from './reservoir';
|
|
7
|
+
export * from './video';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsT0FBTyxDQUFDO0FBQ3RCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYWRtaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jaGF0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVhbHRpbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNlcnZvaXInO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlbyc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { RealtimeEventService } from './realtime-event.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlYWx0aW1lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUmVhbHRpbWVFdmVudFNlcnZpY2UgfSBmcm9tICcuL3JlYWx0aW1lLWV2ZW50LnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../core/websocket.service";
|
|
5
|
+
/**
|
|
6
|
+
* Real-time event service for subscribing to entity CRUD changes,
|
|
7
|
+
* dynamic queue messages, IoT events, notifications, and calendar updates.
|
|
8
|
+
*
|
|
9
|
+
* ## Entity Changes
|
|
10
|
+
*
|
|
11
|
+
* When any entity is created, updated, or deleted via the API, an event is
|
|
12
|
+
* broadcast to WebSocket. No RabbitMQ required — this works automatically
|
|
13
|
+
* for every entity type managed by BaseApiController.
|
|
14
|
+
*
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // All entity changes
|
|
17
|
+
* this.realtimeEvents.allEntityChanges$.subscribe(event => { ... });
|
|
18
|
+
*
|
|
19
|
+
* // Specific resource type
|
|
20
|
+
* this.realtimeEvents.entityChanges('inspections').subscribe(event => { ... });
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* ## Dynamic Queue Messages
|
|
24
|
+
*
|
|
25
|
+
* When a RabbitMQ dynamic queue message is processed, it is broadcast to
|
|
26
|
+
* WebSocket. The queue must exist and have an active listener (create via
|
|
27
|
+
* QueueAdminService).
|
|
28
|
+
*
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // All queue messages
|
|
31
|
+
* this.realtimeEvents.allQueueMessages$.subscribe(event => { ... });
|
|
32
|
+
*
|
|
33
|
+
* // Specific queue
|
|
34
|
+
* this.realtimeEvents.queueMessages('tgm_iot').subscribe(event => { ... });
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* ## Connection
|
|
38
|
+
*
|
|
39
|
+
* Call `connect()` once (e.g. after login). The service uses the shared
|
|
40
|
+
* `WebSocketService` and auto-reconnects on disconnect.
|
|
41
|
+
*/
|
|
42
|
+
export class RealtimeEventService {
|
|
43
|
+
ws;
|
|
44
|
+
destroy$ = new Subject();
|
|
45
|
+
connected = false;
|
|
46
|
+
// ─── Entity Change Streams ────────────────────────────────────────
|
|
47
|
+
/**
|
|
48
|
+
* All entity CRUD changes (firehose).
|
|
49
|
+
* Emits for every create, update, and delete across all entity types.
|
|
50
|
+
*
|
|
51
|
+
* STOMP destination: `/topic/entities`
|
|
52
|
+
*/
|
|
53
|
+
allEntityChanges$;
|
|
54
|
+
// ─── Queue Message Streams ────────────────────────────────────────
|
|
55
|
+
/**
|
|
56
|
+
* All dynamic queue messages (firehose).
|
|
57
|
+
* Emits for every successfully processed message across all queues.
|
|
58
|
+
*
|
|
59
|
+
* STOMP destination: `/topic/queues`
|
|
60
|
+
*/
|
|
61
|
+
allQueueMessages$;
|
|
62
|
+
// ─── IoT Stream ───────────────────────────────────────────────────
|
|
63
|
+
/**
|
|
64
|
+
* IoT sensor events from the static RabbitMQ listener.
|
|
65
|
+
*
|
|
66
|
+
* STOMP destination: `/topic/iot-event`
|
|
67
|
+
*/
|
|
68
|
+
iotEvents$;
|
|
69
|
+
// ─── User-Specific Streams ────────────────────────────────────────
|
|
70
|
+
/**
|
|
71
|
+
* Notifications for the authenticated user.
|
|
72
|
+
*
|
|
73
|
+
* STOMP destination: `/user/queue/notifications`
|
|
74
|
+
*/
|
|
75
|
+
notifications$;
|
|
76
|
+
/**
|
|
77
|
+
* Calendar updates for the authenticated user.
|
|
78
|
+
*
|
|
79
|
+
* STOMP destination: `/user/queue/calendar`
|
|
80
|
+
*/
|
|
81
|
+
calendarUpdates$;
|
|
82
|
+
constructor(ws) {
|
|
83
|
+
this.ws = ws;
|
|
84
|
+
this.allEntityChanges$ = this.ws
|
|
85
|
+
.subscribe('/topic/entities')
|
|
86
|
+
.pipe(takeUntil(this.destroy$));
|
|
87
|
+
this.allQueueMessages$ = this.ws
|
|
88
|
+
.subscribe('/topic/queues')
|
|
89
|
+
.pipe(takeUntil(this.destroy$));
|
|
90
|
+
this.iotEvents$ = this.ws
|
|
91
|
+
.subscribe('/topic/iot-event')
|
|
92
|
+
.pipe(takeUntil(this.destroy$));
|
|
93
|
+
this.notifications$ = this.ws
|
|
94
|
+
.subscribe('/user/queue/notifications')
|
|
95
|
+
.pipe(takeUntil(this.destroy$));
|
|
96
|
+
this.calendarUpdates$ = this.ws
|
|
97
|
+
.subscribe('/user/queue/calendar')
|
|
98
|
+
.pipe(takeUntil(this.destroy$));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Connect to the WebSocket server.
|
|
102
|
+
* Call once after authentication (e.g. in AppComponent.ngOnInit or after login).
|
|
103
|
+
* Subsequent calls are no-ops.
|
|
104
|
+
*/
|
|
105
|
+
connect() {
|
|
106
|
+
if (!this.connected) {
|
|
107
|
+
this.ws.connect('/ws');
|
|
108
|
+
this.connected = true;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Disconnect from the WebSocket server.
|
|
113
|
+
*/
|
|
114
|
+
disconnect() {
|
|
115
|
+
this.ws.disconnect();
|
|
116
|
+
this.connected = false;
|
|
117
|
+
}
|
|
118
|
+
// ─── Resource-Specific Subscriptions ──────────────────────────────
|
|
119
|
+
/**
|
|
120
|
+
* Subscribe to entity changes for a specific resource type.
|
|
121
|
+
*
|
|
122
|
+
* @param resourceName The API resource name (plural) — e.g. 'inspections', 'units', 'interventions', 'failures', 'locations'
|
|
123
|
+
* @returns Observable that emits EntityChangeEvent for that resource
|
|
124
|
+
*
|
|
125
|
+
* STOMP destination: `/topic/entities/{resourceName}`
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* this.realtimeEvents.entityChanges('inspections').subscribe(event => {
|
|
130
|
+
* console.log(event.action, event.entityId, event.data);
|
|
131
|
+
* });
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
entityChanges(resourceName) {
|
|
135
|
+
return this.ws
|
|
136
|
+
.subscribe(`/topic/entities/${resourceName}`)
|
|
137
|
+
.pipe(takeUntil(this.destroy$));
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Subscribe to messages from a specific dynamic queue.
|
|
141
|
+
*
|
|
142
|
+
* The queue must exist in RabbitMQ with an active listener.
|
|
143
|
+
* Create queues via `QueueAdminService.create()`.
|
|
144
|
+
*
|
|
145
|
+
* @param queueName The queue name — e.g. 'tgm_iot', 'tgm_notifications', 'my_custom_queue'
|
|
146
|
+
* @returns Observable that emits QueueMessageEvent for that queue
|
|
147
|
+
*
|
|
148
|
+
* STOMP destination: `/topic/queues/{queueName}`
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```typescript
|
|
152
|
+
* this.realtimeEvents.queueMessages('tgm_iot').subscribe(event => {
|
|
153
|
+
* console.log(event.handlerType, event.payload);
|
|
154
|
+
* });
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
queueMessages(queueName) {
|
|
158
|
+
return this.ws
|
|
159
|
+
.subscribe(`/topic/queues/${queueName}`)
|
|
160
|
+
.pipe(takeUntil(this.destroy$));
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Stop listening to a specific entity resource.
|
|
164
|
+
* Useful when navigating away from a page that was watching a resource.
|
|
165
|
+
*/
|
|
166
|
+
unsubscribeEntity(resourceName) {
|
|
167
|
+
this.ws.unsubscribe(`/topic/entities/${resourceName}`);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Stop listening to a specific queue.
|
|
171
|
+
*/
|
|
172
|
+
unsubscribeQueue(queueName) {
|
|
173
|
+
this.ws.unsubscribe(`/topic/queues/${queueName}`);
|
|
174
|
+
}
|
|
175
|
+
ngOnDestroy() {
|
|
176
|
+
this.destroy$.next();
|
|
177
|
+
this.destroy$.complete();
|
|
178
|
+
this.disconnect();
|
|
179
|
+
}
|
|
180
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RealtimeEventService, deps: [{ token: i1.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
181
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RealtimeEventService, providedIn: 'root' });
|
|
182
|
+
}
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RealtimeEventService, decorators: [{
|
|
184
|
+
type: Injectable,
|
|
185
|
+
args: [{ providedIn: 'root' }]
|
|
186
|
+
}], ctorParameters: () => [{ type: i1.WebSocketService }] });
|
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhbHRpbWUtZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvcmVhbHRpbWUvcmVhbHRpbWUtZXZlbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFXdEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9DRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFpRFg7SUFoRFosUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDL0IsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUxQixxRUFBcUU7SUFFckU7Ozs7O09BS0c7SUFDTSxpQkFBaUIsQ0FBZ0M7SUFFMUQscUVBQXFFO0lBRXJFOzs7OztPQUtHO0lBQ00saUJBQWlCLENBQXdDO0lBRWxFLHFFQUFxRTtJQUVyRTs7OztPQUlHO0lBQ00sVUFBVSxDQUF1QjtJQUUxQyxxRUFBcUU7SUFFckU7Ozs7T0FJRztJQUNNLGNBQWMsQ0FBZ0M7SUFFdkQ7Ozs7T0FJRztJQUNNLGdCQUFnQixDQUFrQztJQUUzRCxZQUFvQixFQUFvQjtRQUFwQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEVBQUU7YUFDN0IsU0FBUyxDQUFvQixpQkFBaUIsQ0FBQzthQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsRUFBRTthQUM3QixTQUFTLENBQTRCLGVBQWUsQ0FBQzthQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUU7YUFDdEIsU0FBUyxDQUFXLGtCQUFrQixDQUFDO2FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRTthQUMxQixTQUFTLENBQW9CLDJCQUEyQixDQUFDO2FBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFO2FBQzVCLFNBQVMsQ0FBc0Isc0JBQXNCLENBQUM7YUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN6QixDQUFDO0lBRUQscUVBQXFFO0lBRXJFOzs7Ozs7Ozs7Ozs7OztPQWNHO0lBQ0gsYUFBYSxDQUFVLFlBQW9CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEVBQUU7YUFDWCxTQUFTLENBQXVCLG1CQUFtQixZQUFZLEVBQUUsQ0FBQzthQUNsRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSCxhQUFhLENBQVUsU0FBaUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsRUFBRTthQUNYLFNBQVMsQ0FBdUIsaUJBQWlCLFNBQVMsRUFBRSxDQUFDO2FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGlCQUFpQixDQUFDLFlBQW9CO1FBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLG1CQUFtQixZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLGlCQUFpQixTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO3dHQTdKVSxvQkFBb0I7NEdBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3dlYnNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEVudGl0eUNoYW5nZUV2ZW50LFxuICBRdWV1ZU1lc3NhZ2VFdmVudCxcbiAgUXVldWVNZXNzYWdlRmlyZWhvc2VFdmVudCxcbiAgSW9URXZlbnQsXG4gIE5vdGlmaWNhdGlvbkV2ZW50LFxuICBDYWxlbmRhclVwZGF0ZUV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhbHRpbWUvcmVhbHRpbWUtZXZlbnQubW9kZWxzJztcblxuLyoqXG4gKiBSZWFsLXRpbWUgZXZlbnQgc2VydmljZSBmb3Igc3Vic2NyaWJpbmcgdG8gZW50aXR5IENSVUQgY2hhbmdlcyxcbiAqIGR5bmFtaWMgcXVldWUgbWVzc2FnZXMsIElvVCBldmVudHMsIG5vdGlmaWNhdGlvbnMsIGFuZCBjYWxlbmRhciB1cGRhdGVzLlxuICpcbiAqICMjIEVudGl0eSBDaGFuZ2VzXG4gKlxuICogV2hlbiBhbnkgZW50aXR5IGlzIGNyZWF0ZWQsIHVwZGF0ZWQsIG9yIGRlbGV0ZWQgdmlhIHRoZSBBUEksIGFuIGV2ZW50IGlzXG4gKiBicm9hZGNhc3QgdG8gV2ViU29ja2V0LiBObyBSYWJiaXRNUSByZXF1aXJlZCDigJQgdGhpcyB3b3JrcyBhdXRvbWF0aWNhbGx5XG4gKiBmb3IgZXZlcnkgZW50aXR5IHR5cGUgbWFuYWdlZCBieSBCYXNlQXBpQ29udHJvbGxlci5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBBbGwgZW50aXR5IGNoYW5nZXNcbiAqIHRoaXMucmVhbHRpbWVFdmVudHMuYWxsRW50aXR5Q2hhbmdlcyQuc3Vic2NyaWJlKGV2ZW50ID0+IHsgLi4uIH0pO1xuICpcbiAqIC8vIFNwZWNpZmljIHJlc291cmNlIHR5cGVcbiAqIHRoaXMucmVhbHRpbWVFdmVudHMuZW50aXR5Q2hhbmdlcygnaW5zcGVjdGlvbnMnKS5zdWJzY3JpYmUoZXZlbnQgPT4geyAuLi4gfSk7XG4gKiBgYGBcbiAqXG4gKiAjIyBEeW5hbWljIFF1ZXVlIE1lc3NhZ2VzXG4gKlxuICogV2hlbiBhIFJhYmJpdE1RIGR5bmFtaWMgcXVldWUgbWVzc2FnZSBpcyBwcm9jZXNzZWQsIGl0IGlzIGJyb2FkY2FzdCB0b1xuICogV2ViU29ja2V0LiBUaGUgcXVldWUgbXVzdCBleGlzdCBhbmQgaGF2ZSBhbiBhY3RpdmUgbGlzdGVuZXIgKGNyZWF0ZSB2aWFcbiAqIFF1ZXVlQWRtaW5TZXJ2aWNlKS5cbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBBbGwgcXVldWUgbWVzc2FnZXNcbiAqIHRoaXMucmVhbHRpbWVFdmVudHMuYWxsUXVldWVNZXNzYWdlcyQuc3Vic2NyaWJlKGV2ZW50ID0+IHsgLi4uIH0pO1xuICpcbiAqIC8vIFNwZWNpZmljIHF1ZXVlXG4gKiB0aGlzLnJlYWx0aW1lRXZlbnRzLnF1ZXVlTWVzc2FnZXMoJ3RnbV9pb3QnKS5zdWJzY3JpYmUoZXZlbnQgPT4geyAuLi4gfSk7XG4gKiBgYGBcbiAqXG4gKiAjIyBDb25uZWN0aW9uXG4gKlxuICogQ2FsbCBgY29ubmVjdCgpYCBvbmNlIChlLmcuIGFmdGVyIGxvZ2luKS4gVGhlIHNlcnZpY2UgdXNlcyB0aGUgc2hhcmVkXG4gKiBgV2ViU29ja2V0U2VydmljZWAgYW5kIGF1dG8tcmVjb25uZWN0cyBvbiBkaXNjb25uZWN0LlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlYWx0aW1lRXZlbnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgY29ubmVjdGVkID0gZmFsc2U7XG5cbiAgLy8g4pSA4pSA4pSAIEVudGl0eSBDaGFuZ2UgU3RyZWFtcyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogQWxsIGVudGl0eSBDUlVEIGNoYW5nZXMgKGZpcmVob3NlKS5cbiAgICogRW1pdHMgZm9yIGV2ZXJ5IGNyZWF0ZSwgdXBkYXRlLCBhbmQgZGVsZXRlIGFjcm9zcyBhbGwgZW50aXR5IHR5cGVzLlxuICAgKlxuICAgKiBTVE9NUCBkZXN0aW5hdGlvbjogYC90b3BpYy9lbnRpdGllc2BcbiAgICovXG4gIHJlYWRvbmx5IGFsbEVudGl0eUNoYW5nZXMkOiBPYnNlcnZhYmxlPEVudGl0eUNoYW5nZUV2ZW50PjtcblxuICAvLyDilIDilIDilIAgUXVldWUgTWVzc2FnZSBTdHJlYW1zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBBbGwgZHluYW1pYyBxdWV1ZSBtZXNzYWdlcyAoZmlyZWhvc2UpLlxuICAgKiBFbWl0cyBmb3IgZXZlcnkgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCBtZXNzYWdlIGFjcm9zcyBhbGwgcXVldWVzLlxuICAgKlxuICAgKiBTVE9NUCBkZXN0aW5hdGlvbjogYC90b3BpYy9xdWV1ZXNgXG4gICAqL1xuICByZWFkb25seSBhbGxRdWV1ZU1lc3NhZ2VzJDogT2JzZXJ2YWJsZTxRdWV1ZU1lc3NhZ2VGaXJlaG9zZUV2ZW50PjtcblxuICAvLyDilIDilIDilIAgSW9UIFN0cmVhbSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogSW9UIHNlbnNvciBldmVudHMgZnJvbSB0aGUgc3RhdGljIFJhYmJpdE1RIGxpc3RlbmVyLlxuICAgKlxuICAgKiBTVE9NUCBkZXN0aW5hdGlvbjogYC90b3BpYy9pb3QtZXZlbnRgXG4gICAqL1xuICByZWFkb25seSBpb3RFdmVudHMkOiBPYnNlcnZhYmxlPElvVEV2ZW50PjtcblxuICAvLyDilIDilIDilIAgVXNlci1TcGVjaWZpYyBTdHJlYW1zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBOb3RpZmljYXRpb25zIGZvciB0aGUgYXV0aGVudGljYXRlZCB1c2VyLlxuICAgKlxuICAgKiBTVE9NUCBkZXN0aW5hdGlvbjogYC91c2VyL3F1ZXVlL25vdGlmaWNhdGlvbnNgXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25FdmVudD47XG5cbiAgLyoqXG4gICAqIENhbGVuZGFyIHVwZGF0ZXMgZm9yIHRoZSBhdXRoZW50aWNhdGVkIHVzZXIuXG4gICAqXG4gICAqIFNUT01QIGRlc3RpbmF0aW9uOiBgL3VzZXIvcXVldWUvY2FsZW5kYXJgXG4gICAqL1xuICByZWFkb25seSBjYWxlbmRhclVwZGF0ZXMkOiBPYnNlcnZhYmxlPENhbGVuZGFyVXBkYXRlRXZlbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IFdlYlNvY2tldFNlcnZpY2UpIHtcbiAgICB0aGlzLmFsbEVudGl0eUNoYW5nZXMkID0gdGhpcy53c1xuICAgICAgLnN1YnNjcmliZTxFbnRpdHlDaGFuZ2VFdmVudD4oJy90b3BpYy9lbnRpdGllcycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuXG4gICAgdGhpcy5hbGxRdWV1ZU1lc3NhZ2VzJCA9IHRoaXMud3NcbiAgICAgIC5zdWJzY3JpYmU8UXVldWVNZXNzYWdlRmlyZWhvc2VFdmVudD4oJy90b3BpYy9xdWV1ZXMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcblxuICAgIHRoaXMuaW90RXZlbnRzJCA9IHRoaXMud3NcbiAgICAgIC5zdWJzY3JpYmU8SW9URXZlbnQ+KCcvdG9waWMvaW90LWV2ZW50JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG5cbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMkID0gdGhpcy53c1xuICAgICAgLnN1YnNjcmliZTxOb3RpZmljYXRpb25FdmVudD4oJy91c2VyL3F1ZXVlL25vdGlmaWNhdGlvbnMnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcblxuICAgIHRoaXMuY2FsZW5kYXJVcGRhdGVzJCA9IHRoaXMud3NcbiAgICAgIC5zdWJzY3JpYmU8Q2FsZW5kYXJVcGRhdGVFdmVudD4oJy91c2VyL3F1ZXVlL2NhbGVuZGFyJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29ubmVjdCB0byB0aGUgV2ViU29ja2V0IHNlcnZlci5cbiAgICogQ2FsbCBvbmNlIGFmdGVyIGF1dGhlbnRpY2F0aW9uIChlLmcuIGluIEFwcENvbXBvbmVudC5uZ09uSW5pdCBvciBhZnRlciBsb2dpbikuXG4gICAqIFN1YnNlcXVlbnQgY2FsbHMgYXJlIG5vLW9wcy5cbiAgICovXG4gIGNvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbm5lY3RlZCkge1xuICAgICAgdGhpcy53cy5jb25uZWN0KCcvd3MnKTtcbiAgICAgIHRoaXMuY29ubmVjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGlzY29ubmVjdCBmcm9tIHRoZSBXZWJTb2NrZXQgc2VydmVyLlxuICAgKi9cbiAgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLndzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8g4pSA4pSA4pSAIFJlc291cmNlLVNwZWNpZmljIFN1YnNjcmlwdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBlbnRpdHkgY2hhbmdlcyBmb3IgYSBzcGVjaWZpYyByZXNvdXJjZSB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0gcmVzb3VyY2VOYW1lIFRoZSBBUEkgcmVzb3VyY2UgbmFtZSAocGx1cmFsKSDigJQgZS5nLiAnaW5zcGVjdGlvbnMnLCAndW5pdHMnLCAnaW50ZXJ2ZW50aW9ucycsICdmYWlsdXJlcycsICdsb2NhdGlvbnMnXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGUgdGhhdCBlbWl0cyBFbnRpdHlDaGFuZ2VFdmVudCBmb3IgdGhhdCByZXNvdXJjZVxuICAgKlxuICAgKiBTVE9NUCBkZXN0aW5hdGlvbjogYC90b3BpYy9lbnRpdGllcy97cmVzb3VyY2VOYW1lfWBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB0aGlzLnJlYWx0aW1lRXZlbnRzLmVudGl0eUNoYW5nZXMoJ2luc3BlY3Rpb25zJykuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICogICBjb25zb2xlLmxvZyhldmVudC5hY3Rpb24sIGV2ZW50LmVudGl0eUlkLCBldmVudC5kYXRhKTtcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgZW50aXR5Q2hhbmdlczxUID0gYW55PihyZXNvdXJjZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8RW50aXR5Q2hhbmdlRXZlbnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy53c1xuICAgICAgLnN1YnNjcmliZTxFbnRpdHlDaGFuZ2VFdmVudDxUPj4oYC90b3BpYy9lbnRpdGllcy8ke3Jlc291cmNlTmFtZX1gKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdWJzY3JpYmUgdG8gbWVzc2FnZXMgZnJvbSBhIHNwZWNpZmljIGR5bmFtaWMgcXVldWUuXG4gICAqXG4gICAqIFRoZSBxdWV1ZSBtdXN0IGV4aXN0IGluIFJhYmJpdE1RIHdpdGggYW4gYWN0aXZlIGxpc3RlbmVyLlxuICAgKiBDcmVhdGUgcXVldWVzIHZpYSBgUXVldWVBZG1pblNlcnZpY2UuY3JlYXRlKClgLlxuICAgKlxuICAgKiBAcGFyYW0gcXVldWVOYW1lIFRoZSBxdWV1ZSBuYW1lIOKAlCBlLmcuICd0Z21faW90JywgJ3RnbV9ub3RpZmljYXRpb25zJywgJ215X2N1c3RvbV9xdWV1ZSdcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIFF1ZXVlTWVzc2FnZUV2ZW50IGZvciB0aGF0IHF1ZXVlXG4gICAqXG4gICAqIFNUT01QIGRlc3RpbmF0aW9uOiBgL3RvcGljL3F1ZXVlcy97cXVldWVOYW1lfWBcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB0aGlzLnJlYWx0aW1lRXZlbnRzLnF1ZXVlTWVzc2FnZXMoJ3RnbV9pb3QnKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKGV2ZW50LmhhbmRsZXJUeXBlLCBldmVudC5wYXlsb2FkKTtcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcXVldWVNZXNzYWdlczxUID0gYW55PihxdWV1ZU5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8UXVldWVNZXNzYWdlRXZlbnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy53c1xuICAgICAgLnN1YnNjcmliZTxRdWV1ZU1lc3NhZ2VFdmVudDxUPj4oYC90b3BpYy9xdWV1ZXMvJHtxdWV1ZU5hbWV9YClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gYSBzcGVjaWZpYyBlbnRpdHkgcmVzb3VyY2UuXG4gICAqIFVzZWZ1bCB3aGVuIG5hdmlnYXRpbmcgYXdheSBmcm9tIGEgcGFnZSB0aGF0IHdhcyB3YXRjaGluZyBhIHJlc291cmNlLlxuICAgKi9cbiAgdW5zdWJzY3JpYmVFbnRpdHkocmVzb3VyY2VOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndzLnVuc3Vic2NyaWJlKGAvdG9waWMvZW50aXRpZXMvJHtyZXNvdXJjZU5hbWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gYSBzcGVjaWZpYyBxdWV1ZS5cbiAgICovXG4gIHVuc3Vic2NyaWJlUXVldWUocXVldWVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndzLnVuc3Vic2NyaWJlKGAvdG9waWMvcXVldWVzLyR7cXVldWVOYW1lfWApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { ReservoirWebSocketService } from './reservoir-websocket.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3Jlc2Vydm9pci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFJlc2Vydm9pcldlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3Jlc2Vydm9pci13ZWJzb2NrZXQuc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../core/websocket.service";
|
|
5
|
+
/**
|
|
6
|
+
* WebSocket service for real-time reservoir data streams.
|
|
7
|
+
*
|
|
8
|
+
* Provides 4 strongly-typed observable streams per reservoir:
|
|
9
|
+
* - `sensors$` — real-time sensor readings (single or bulk)
|
|
10
|
+
* - `externalData$` — weather, grid market, lab results, fish monitoring, regulatory updates
|
|
11
|
+
* - `manualData$` — inspections, manual readings, operational observations
|
|
12
|
+
* - `statusAlerts$` — operating events and alert notifications
|
|
13
|
+
*/
|
|
14
|
+
export class ReservoirWebSocketService {
|
|
15
|
+
ws;
|
|
16
|
+
destroy$ = new Subject();
|
|
17
|
+
connected = false;
|
|
18
|
+
currentReservoirId = null;
|
|
19
|
+
sensorsSubject$ = new Subject();
|
|
20
|
+
externalDataSubject$ = new Subject();
|
|
21
|
+
manualDataSubject$ = new Subject();
|
|
22
|
+
statusAlertsSubject$ = new Subject();
|
|
23
|
+
/** Real-time sensor readings stream (single or bulk messages) */
|
|
24
|
+
sensors$ = this.sensorsSubject$.asObservable();
|
|
25
|
+
/** External data stream (weather, grid market, lab results, etc.) */
|
|
26
|
+
externalData$ = this.externalDataSubject$.asObservable();
|
|
27
|
+
/** Manual data stream (inspections, manual readings, observations) */
|
|
28
|
+
manualData$ = this.manualDataSubject$.asObservable();
|
|
29
|
+
/** Status and alert notifications stream */
|
|
30
|
+
statusAlerts$ = this.statusAlertsSubject$.asObservable();
|
|
31
|
+
constructor(ws) {
|
|
32
|
+
this.ws = ws;
|
|
33
|
+
}
|
|
34
|
+
/** Connects to the WebSocket and subscribes to all 4 streams for the given reservoir. */
|
|
35
|
+
connect(reservoirId) {
|
|
36
|
+
if (this.connected && this.currentReservoirId === reservoirId)
|
|
37
|
+
return;
|
|
38
|
+
// Disconnect from previous reservoir if switching
|
|
39
|
+
if (this.connected) {
|
|
40
|
+
this.unsubscribeStreams();
|
|
41
|
+
}
|
|
42
|
+
this.ws.connect('/ws');
|
|
43
|
+
this.connected = true;
|
|
44
|
+
this.currentReservoirId = reservoirId;
|
|
45
|
+
this.ws.subscribe(`/topic/reservoir/${reservoirId}/sensors`)
|
|
46
|
+
.pipe(takeUntil(this.destroy$))
|
|
47
|
+
.subscribe(data => this.sensorsSubject$.next(data));
|
|
48
|
+
this.ws.subscribe(`/topic/reservoir/${reservoirId}/external`)
|
|
49
|
+
.pipe(takeUntil(this.destroy$))
|
|
50
|
+
.subscribe(data => this.externalDataSubject$.next(data));
|
|
51
|
+
this.ws.subscribe(`/topic/reservoir/${reservoirId}/manual`)
|
|
52
|
+
.pipe(takeUntil(this.destroy$))
|
|
53
|
+
.subscribe(data => this.manualDataSubject$.next(data));
|
|
54
|
+
this.ws.subscribe(`/topic/reservoir/${reservoirId}/status`)
|
|
55
|
+
.pipe(takeUntil(this.destroy$))
|
|
56
|
+
.subscribe(data => this.statusAlertsSubject$.next(data));
|
|
57
|
+
}
|
|
58
|
+
/** Disconnects from the WebSocket. */
|
|
59
|
+
disconnect() {
|
|
60
|
+
this.unsubscribeStreams();
|
|
61
|
+
this.ws.disconnect();
|
|
62
|
+
this.connected = false;
|
|
63
|
+
this.currentReservoirId = null;
|
|
64
|
+
}
|
|
65
|
+
/** Sends a subscription request to the backend for a specific data type. */
|
|
66
|
+
subscribe(reservoirId, dataType) {
|
|
67
|
+
this.ws.send('/app/reservoir.subscribe', {
|
|
68
|
+
action: 'subscribe',
|
|
69
|
+
dataType,
|
|
70
|
+
reservoir_id: reservoirId,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
/** Sends an unsubscription request for a specific data type. */
|
|
74
|
+
unsubscribe(reservoirId, dataType) {
|
|
75
|
+
this.ws.send('/app/reservoir.unsubscribe', {
|
|
76
|
+
action: 'unsubscribe',
|
|
77
|
+
dataType,
|
|
78
|
+
reservoir_id: reservoirId,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** The currently subscribed reservoir ID. */
|
|
82
|
+
getCurrentReservoirId() {
|
|
83
|
+
return this.currentReservoirId;
|
|
84
|
+
}
|
|
85
|
+
unsubscribeStreams() {
|
|
86
|
+
if (this.currentReservoirId) {
|
|
87
|
+
this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/sensors`);
|
|
88
|
+
this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/external`);
|
|
89
|
+
this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/manual`);
|
|
90
|
+
this.ws.unsubscribe(`/topic/reservoir/${this.currentReservoirId}/status`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this.destroy$.next();
|
|
95
|
+
this.destroy$.complete();
|
|
96
|
+
this.disconnect();
|
|
97
|
+
}
|
|
98
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReservoirWebSocketService, deps: [{ token: i1.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
99
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReservoirWebSocketService, providedIn: 'root' });
|
|
100
|
+
}
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReservoirWebSocketService, decorators: [{
|
|
102
|
+
type: Injectable,
|
|
103
|
+
args: [{ providedIn: 'root' }]
|
|
104
|
+
}], ctorParameters: () => [{ type: i1.WebSocketService }] });
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXJ2b2lyLXdlYnNvY2tldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9yZXNlcnZvaXIvcmVzZXJ2b2lyLXdlYnNvY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQVN0RDs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFzQmhCO0lBckJaLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9CLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUV6QyxlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7SUFDdEQsb0JBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQTRCLENBQUM7SUFDL0Qsa0JBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7SUFDM0Qsb0JBQW9CLEdBQUcsSUFBSSxPQUFPLEVBQTBCLENBQUM7SUFFckUsaUVBQWlFO0lBQ3hELFFBQVEsR0FBcUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUUxRixxRUFBcUU7SUFDNUQsYUFBYSxHQUF5QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFeEcsc0VBQXNFO0lBQzdELFdBQVcsR0FBdUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBRWxHLDRDQUE0QztJQUNuQyxhQUFhLEdBQXVDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV0RyxZQUFvQixFQUFvQjtRQUFwQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtJQUFHLENBQUM7SUFFNUMseUZBQXlGO0lBQ3pGLE9BQU8sQ0FBQyxXQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLFdBQVc7WUFBRSxPQUFPO1FBRXRFLGtEQUFrRDtRQUNsRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztRQUV0QyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBdUIsb0JBQW9CLFdBQVcsVUFBVSxDQUFDO2FBQy9FLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQTJCLG9CQUFvQixXQUFXLFdBQVcsQ0FBQzthQUNwRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQXlCLG9CQUFvQixXQUFXLFNBQVMsQ0FBQzthQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFekQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQXlCLG9CQUFvQixXQUFXLFNBQVMsQ0FBQzthQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELHNDQUFzQztJQUN0QyxVQUFVO1FBQ1IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7SUFFRCw0RUFBNEU7SUFDNUUsU0FBUyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7UUFDN0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDdkMsTUFBTSxFQUFFLFdBQVc7WUFDbkIsUUFBUTtZQUNSLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsV0FBVyxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7UUFDL0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLEVBQUU7WUFDekMsTUFBTSxFQUFFLGFBQWE7WUFDckIsUUFBUTtZQUNSLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLGtCQUFrQixVQUFVLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLGtCQUFrQixXQUFXLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLGtCQUFrQixTQUFTLENBQUMsQ0FBQztZQUMxRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLGtCQUFrQixTQUFTLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7d0dBbEdVLHlCQUF5Qjs0R0FBekIseUJBQXlCLGNBRFosTUFBTTs7NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV2ViU29ja2V0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvd2Vic29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUmVzZXJ2b2lyU2Vuc29yRXZlbnQsXG4gIFJlc2Vydm9pckV4dGVybmFsTWVzc2FnZSxcbiAgUmVzZXJ2b2lyTWFudWFsTWVzc2FnZSxcbiAgUmVzZXJ2b2lyU3RhdHVzTWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2FwaS9yZXNlcnZvaXItd2Vic29ja2V0Lm1vZGVscyc7XG5cbi8qKlxuICogV2ViU29ja2V0IHNlcnZpY2UgZm9yIHJlYWwtdGltZSByZXNlcnZvaXIgZGF0YSBzdHJlYW1zLlxuICpcbiAqIFByb3ZpZGVzIDQgc3Ryb25nbHktdHlwZWQgb2JzZXJ2YWJsZSBzdHJlYW1zIHBlciByZXNlcnZvaXI6XG4gKiAtIGBzZW5zb3JzJGAg4oCUIHJlYWwtdGltZSBzZW5zb3IgcmVhZGluZ3MgKHNpbmdsZSBvciBidWxrKVxuICogLSBgZXh0ZXJuYWxEYXRhJGAg4oCUIHdlYXRoZXIsIGdyaWQgbWFya2V0LCBsYWIgcmVzdWx0cywgZmlzaCBtb25pdG9yaW5nLCByZWd1bGF0b3J5IHVwZGF0ZXNcbiAqIC0gYG1hbnVhbERhdGEkYCDigJQgaW5zcGVjdGlvbnMsIG1hbnVhbCByZWFkaW5ncywgb3BlcmF0aW9uYWwgb2JzZXJ2YXRpb25zXG4gKiAtIGBzdGF0dXNBbGVydHMkYCDigJQgb3BlcmF0aW5nIGV2ZW50cyBhbmQgYWxlcnQgbm90aWZpY2F0aW9uc1xuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlc2Vydm9pcldlYlNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBjb25uZWN0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBjdXJyZW50UmVzZXJ2b2lySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgc2Vuc29yc1N1YmplY3QkID0gbmV3IFN1YmplY3Q8UmVzZXJ2b2lyU2Vuc29yRXZlbnQ+KCk7XG4gIHByaXZhdGUgZXh0ZXJuYWxEYXRhU3ViamVjdCQgPSBuZXcgU3ViamVjdDxSZXNlcnZvaXJFeHRlcm5hbE1lc3NhZ2U+KCk7XG4gIHByaXZhdGUgbWFudWFsRGF0YVN1YmplY3QkID0gbmV3IFN1YmplY3Q8UmVzZXJ2b2lyTWFudWFsTWVzc2FnZT4oKTtcbiAgcHJpdmF0ZSBzdGF0dXNBbGVydHNTdWJqZWN0JCA9IG5ldyBTdWJqZWN0PFJlc2Vydm9pclN0YXR1c01lc3NhZ2U+KCk7XG5cbiAgLyoqIFJlYWwtdGltZSBzZW5zb3IgcmVhZGluZ3Mgc3RyZWFtIChzaW5nbGUgb3IgYnVsayBtZXNzYWdlcykgKi9cbiAgcmVhZG9ubHkgc2Vuc29ycyQ6IE9ic2VydmFibGU8UmVzZXJ2b2lyU2Vuc29yRXZlbnQ+ID0gdGhpcy5zZW5zb3JzU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqIEV4dGVybmFsIGRhdGEgc3RyZWFtICh3ZWF0aGVyLCBncmlkIG1hcmtldCwgbGFiIHJlc3VsdHMsIGV0Yy4pICovXG4gIHJlYWRvbmx5IGV4dGVybmFsRGF0YSQ6IE9ic2VydmFibGU8UmVzZXJ2b2lyRXh0ZXJuYWxNZXNzYWdlPiA9IHRoaXMuZXh0ZXJuYWxEYXRhU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgLyoqIE1hbnVhbCBkYXRhIHN0cmVhbSAoaW5zcGVjdGlvbnMsIG1hbnVhbCByZWFkaW5ncywgb2JzZXJ2YXRpb25zKSAqL1xuICByZWFkb25seSBtYW51YWxEYXRhJDogT2JzZXJ2YWJsZTxSZXNlcnZvaXJNYW51YWxNZXNzYWdlPiA9IHRoaXMubWFudWFsRGF0YVN1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIC8qKiBTdGF0dXMgYW5kIGFsZXJ0IG5vdGlmaWNhdGlvbnMgc3RyZWFtICovXG4gIHJlYWRvbmx5IHN0YXR1c0FsZXJ0cyQ6IE9ic2VydmFibGU8UmVzZXJ2b2lyU3RhdHVzTWVzc2FnZT4gPSB0aGlzLnN0YXR1c0FsZXJ0c1N1YmplY3QkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IFdlYlNvY2tldFNlcnZpY2UpIHt9XG5cbiAgLyoqIENvbm5lY3RzIHRvIHRoZSBXZWJTb2NrZXQgYW5kIHN1YnNjcmliZXMgdG8gYWxsIDQgc3RyZWFtcyBmb3IgdGhlIGdpdmVuIHJlc2Vydm9pci4gKi9cbiAgY29ubmVjdChyZXNlcnZvaXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGVkICYmIHRoaXMuY3VycmVudFJlc2Vydm9pcklkID09PSByZXNlcnZvaXJJZCkgcmV0dXJuO1xuXG4gICAgLy8gRGlzY29ubmVjdCBmcm9tIHByZXZpb3VzIHJlc2Vydm9pciBpZiBzd2l0Y2hpbmdcbiAgICBpZiAodGhpcy5jb25uZWN0ZWQpIHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVTdHJlYW1zKCk7XG4gICAgfVxuXG4gICAgdGhpcy53cy5jb25uZWN0KCcvd3MnKTtcbiAgICB0aGlzLmNvbm5lY3RlZCA9IHRydWU7XG4gICAgdGhpcy5jdXJyZW50UmVzZXJ2b2lySWQgPSByZXNlcnZvaXJJZDtcblxuICAgIHRoaXMud3Muc3Vic2NyaWJlPFJlc2Vydm9pclNlbnNvckV2ZW50PihgL3RvcGljL3Jlc2Vydm9pci8ke3Jlc2Vydm9pcklkfS9zZW5zb3JzYClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLnNlbnNvcnNTdWJqZWN0JC5uZXh0KGRhdGEpKTtcblxuICAgIHRoaXMud3Muc3Vic2NyaWJlPFJlc2Vydm9pckV4dGVybmFsTWVzc2FnZT4oYC90b3BpYy9yZXNlcnZvaXIvJHtyZXNlcnZvaXJJZH0vZXh0ZXJuYWxgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHRoaXMuZXh0ZXJuYWxEYXRhU3ViamVjdCQubmV4dChkYXRhKSk7XG5cbiAgICB0aGlzLndzLnN1YnNjcmliZTxSZXNlcnZvaXJNYW51YWxNZXNzYWdlPihgL3RvcGljL3Jlc2Vydm9pci8ke3Jlc2Vydm9pcklkfS9tYW51YWxgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZShkYXRhID0+IHRoaXMubWFudWFsRGF0YVN1YmplY3QkLm5leHQoZGF0YSkpO1xuXG4gICAgdGhpcy53cy5zdWJzY3JpYmU8UmVzZXJ2b2lyU3RhdHVzTWVzc2FnZT4oYC90b3BpYy9yZXNlcnZvaXIvJHtyZXNlcnZvaXJJZH0vc3RhdHVzYClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLnN0YXR1c0FsZXJ0c1N1YmplY3QkLm5leHQoZGF0YSkpO1xuICB9XG5cbiAgLyoqIERpc2Nvbm5lY3RzIGZyb20gdGhlIFdlYlNvY2tldC4gKi9cbiAgZGlzY29ubmVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlU3RyZWFtcygpO1xuICAgIHRoaXMud3MuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY29ubmVjdGVkID0gZmFsc2U7XG4gICAgdGhpcy5jdXJyZW50UmVzZXJ2b2lySWQgPSBudWxsO1xuICB9XG5cbiAgLyoqIFNlbmRzIGEgc3Vic2NyaXB0aW9uIHJlcXVlc3QgdG8gdGhlIGJhY2tlbmQgZm9yIGEgc3BlY2lmaWMgZGF0YSB0eXBlLiAqL1xuICBzdWJzY3JpYmUocmVzZXJ2b2lySWQ6IHN0cmluZywgZGF0YVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3Muc2VuZCgnL2FwcC9yZXNlcnZvaXIuc3Vic2NyaWJlJywge1xuICAgICAgYWN0aW9uOiAnc3Vic2NyaWJlJyxcbiAgICAgIGRhdGFUeXBlLFxuICAgICAgcmVzZXJ2b2lyX2lkOiByZXNlcnZvaXJJZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBTZW5kcyBhbiB1bnN1YnNjcmlwdGlvbiByZXF1ZXN0IGZvciBhIHNwZWNpZmljIGRhdGEgdHlwZS4gKi9cbiAgdW5zdWJzY3JpYmUocmVzZXJ2b2lySWQ6IHN0cmluZywgZGF0YVR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMud3Muc2VuZCgnL2FwcC9yZXNlcnZvaXIudW5zdWJzY3JpYmUnLCB7XG4gICAgICBhY3Rpb246ICd1bnN1YnNjcmliZScsXG4gICAgICBkYXRhVHlwZSxcbiAgICAgIHJlc2Vydm9pcl9pZDogcmVzZXJ2b2lySWQsXG4gICAgfSk7XG4gIH1cblxuICAvKiogVGhlIGN1cnJlbnRseSBzdWJzY3JpYmVkIHJlc2Vydm9pciBJRC4gKi9cbiAgZ2V0Q3VycmVudFJlc2Vydm9pcklkKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRSZXNlcnZvaXJJZDtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVTdHJlYW1zKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmN1cnJlbnRSZXNlcnZvaXJJZCkge1xuICAgICAgdGhpcy53cy51bnN1YnNjcmliZShgL3RvcGljL3Jlc2Vydm9pci8ke3RoaXMuY3VycmVudFJlc2Vydm9pcklkfS9zZW5zb3JzYCk7XG4gICAgICB0aGlzLndzLnVuc3Vic2NyaWJlKGAvdG9waWMvcmVzZXJ2b2lyLyR7dGhpcy5jdXJyZW50UmVzZXJ2b2lySWR9L2V4dGVybmFsYCk7XG4gICAgICB0aGlzLndzLnVuc3Vic2NyaWJlKGAvdG9waWMvcmVzZXJ2b2lyLyR7dGhpcy5jdXJyZW50UmVzZXJ2b2lySWR9L21hbnVhbGApO1xuICAgICAgdGhpcy53cy51bnN1YnNjcmliZShgL3RvcGljL3Jlc2Vydm9pci8ke3RoaXMuY3VycmVudFJlc2Vydm9pcklkfS9zdGF0dXNgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { VideoCallRestService } from './video-call-rest.service';
|
|
2
|
+
export { VideoCallWebSocketService } from './video-call-websocket.service';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3ZpZGVvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgVmlkZW9DYWxsUmVzdFNlcnZpY2UgfSBmcm9tICcuL3ZpZGVvLWNhbGwtcmVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFZpZGVvQ2FsbFdlYlNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3ZpZGVvLWNhbGwtd2Vic29ja2V0LnNlcnZpY2UnO1xuIl19
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../core/http-client.service";
|
|
4
|
+
export class VideoCallRestService {
|
|
5
|
+
http;
|
|
6
|
+
basePath = '/api/video-calls';
|
|
7
|
+
constructor(http) {
|
|
8
|
+
this.http = http;
|
|
9
|
+
}
|
|
10
|
+
initiateCall(request) {
|
|
11
|
+
return this.http.post(this.basePath, request);
|
|
12
|
+
}
|
|
13
|
+
answerCall(callId, accepted) {
|
|
14
|
+
return this.http.post(`${this.basePath}/${callId}/answer`, { callId, accepted });
|
|
15
|
+
}
|
|
16
|
+
joinCall(callId) {
|
|
17
|
+
return this.http.post(`${this.basePath}/${callId}/join`);
|
|
18
|
+
}
|
|
19
|
+
endCall(callId) {
|
|
20
|
+
return this.http.post(`${this.basePath}/${callId}/end`);
|
|
21
|
+
}
|
|
22
|
+
getCall(callId) {
|
|
23
|
+
return this.http.get(`${this.basePath}/${callId}`);
|
|
24
|
+
}
|
|
25
|
+
getCallHistory(companyId, page = 0, size = 20) {
|
|
26
|
+
return this.http.get(this.basePath, {
|
|
27
|
+
params: { companyId, page, size },
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
getActiveCall(companyId) {
|
|
31
|
+
return this.http.get(`${this.basePath}/active`, {
|
|
32
|
+
params: { companyId },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallRestService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallRestService, providedIn: 'root' });
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallRestService, decorators: [{
|
|
39
|
+
type: Injectable,
|
|
40
|
+
args: [{ providedIn: 'root' }]
|
|
41
|
+
}], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tY2FsbC1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3ZpZGVvL3ZpZGVvLWNhbGwtcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVkzQyxNQUFNLE9BQU8sb0JBQW9CO0lBR1g7SUFGSCxRQUFRLEdBQUcsa0JBQWtCLENBQUM7SUFFL0MsWUFBb0IsSUFBbUI7UUFBbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUFHLENBQUM7SUFFM0MsWUFBWSxDQUFDLE9BQTRCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXlCLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsUUFBaUI7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNkMsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxNQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXNDLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLE9BQU8sQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxPQUFPLENBQUMsTUFBYztRQUNwQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQixHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxNQUFNLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBeUIsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGNBQWMsQ0FBQyxTQUFpQixFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUU7UUFDbkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBd0MsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN6RSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtTQUNsQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQWlCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLFFBQVEsU0FBUyxFQUFFO1lBQzdFLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO3dHQW5DVSxvQkFBb0I7NEdBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGdtSHR0cENsaWVudCB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgUGFnZWRSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9iYXNlLm1vZGVscyc7XG5pbXBvcnQge1xuICBWaWRlb0NhbGwsXG4gIEluaXRpYXRlQ2FsbFJlcXVlc3QsXG4gIEFuc3dlckNhbGxSZXF1ZXN0LFxuICBWaWRlb0NhbGxUb2tlblJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9tb2RlbHMvdmlkZW8vdmlkZW8tY2FsbC5tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZpZGVvQ2FsbFJlc3RTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlUGF0aCA9ICcvYXBpL3ZpZGVvLWNhbGxzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IFRnbUh0dHBDbGllbnQpIHt9XG5cbiAgaW5pdGlhdGVDYWxsKHJlcXVlc3Q6IEluaXRpYXRlQ2FsbFJlcXVlc3QpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPFZpZGVvQ2FsbD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8VmlkZW9DYWxsPj4odGhpcy5iYXNlUGF0aCwgcmVxdWVzdCk7XG4gIH1cblxuICBhbnN3ZXJDYWxsKGNhbGxJZDogbnVtYmVyLCBhY2NlcHRlZDogYm9vbGVhbik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8VmlkZW9DYWxsVG9rZW5SZXNwb25zZSB8IG51bGw+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPFZpZGVvQ2FsbFRva2VuUmVzcG9uc2UgfCBudWxsPj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtjYWxsSWR9L2Fuc3dlcmAsIHsgY2FsbElkLCBhY2NlcHRlZCB9KTtcbiAgfVxuXG4gIGpvaW5DYWxsKGNhbGxJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxWaWRlb0NhbGxUb2tlblJlc3BvbnNlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxWaWRlb0NhbGxUb2tlblJlc3BvbnNlPj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtjYWxsSWR9L2pvaW5gKTtcbiAgfVxuXG4gIGVuZENhbGwoY2FsbElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPHZvaWQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPHZvaWQ+PihgJHt0aGlzLmJhc2VQYXRofS8ke2NhbGxJZH0vZW5kYCk7XG4gIH1cblxuICBnZXRDYWxsKGNhbGxJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxWaWRlb0NhbGw+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8VmlkZW9DYWxsPj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtjYWxsSWR9YCk7XG4gIH1cblxuICBnZXRDYWxsSGlzdG9yeShjb21wYW55SWQ6IG51bWJlciwgcGFnZSA9IDAsIHNpemUgPSAyMCk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8UGFnZWRSZXNwb25zZTxWaWRlb0NhbGw+Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPFBhZ2VkUmVzcG9uc2U8VmlkZW9DYWxsPj4+KHRoaXMuYmFzZVBhdGgsIHtcbiAgICAgIHBhcmFtczogeyBjb21wYW55SWQsIHBhZ2UsIHNpemUgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldEFjdGl2ZUNhbGwoY29tcGFueUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPFZpZGVvQ2FsbCB8IG51bGw+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8VmlkZW9DYWxsIHwgbnVsbD4+KGAke3RoaXMuYmFzZVBhdGh9L2FjdGl2ZWAsIHtcbiAgICAgIHBhcmFtczogeyBjb21wYW55SWQgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../core/websocket.service";
|
|
5
|
+
export class VideoCallWebSocketService {
|
|
6
|
+
ws;
|
|
7
|
+
destroy$ = new Subject();
|
|
8
|
+
/** Incoming call notification (for targets) */
|
|
9
|
+
incomingCall$;
|
|
10
|
+
/** Call initiated confirmation (for initiator) */
|
|
11
|
+
callInitiated$;
|
|
12
|
+
/** Call answered notification */
|
|
13
|
+
callAnswered$;
|
|
14
|
+
/** LiveKit token delivery (after accepting call) */
|
|
15
|
+
callToken$;
|
|
16
|
+
/** Call ended notification */
|
|
17
|
+
callEnded$;
|
|
18
|
+
/** Call rejected notification */
|
|
19
|
+
callRejected$;
|
|
20
|
+
/** Error messages */
|
|
21
|
+
errors$;
|
|
22
|
+
constructor(ws) {
|
|
23
|
+
this.ws = ws;
|
|
24
|
+
this.incomingCall$ = this.ws.subscribe('/user/queue/video/incoming-call').pipe(takeUntil(this.destroy$));
|
|
25
|
+
this.callInitiated$ = this.ws.subscribe('/user/queue/video/call-initiated').pipe(takeUntil(this.destroy$));
|
|
26
|
+
this.callAnswered$ = this.ws.subscribe('/user/queue/video/call-answered').pipe(takeUntil(this.destroy$));
|
|
27
|
+
this.callToken$ = this.ws.subscribe('/user/queue/video/call-token').pipe(takeUntil(this.destroy$));
|
|
28
|
+
this.callEnded$ = this.ws.subscribe('/user/queue/video/call-ended').pipe(takeUntil(this.destroy$));
|
|
29
|
+
this.callRejected$ = this.ws.subscribe('/user/queue/video/call-rejected').pipe(takeUntil(this.destroy$));
|
|
30
|
+
this.errors$ = this.ws.subscribe('/user/queue/video/errors').pipe(takeUntil(this.destroy$));
|
|
31
|
+
}
|
|
32
|
+
initiateCall(request) {
|
|
33
|
+
this.ws.send('/app/video.call-init', request);
|
|
34
|
+
}
|
|
35
|
+
answerCall(callId, accepted) {
|
|
36
|
+
this.ws.send('/app/video.call-answer', { callId, accepted });
|
|
37
|
+
}
|
|
38
|
+
endCall(callId) {
|
|
39
|
+
this.ws.send('/app/video.call-end', { callId });
|
|
40
|
+
}
|
|
41
|
+
rejectCall(callId) {
|
|
42
|
+
this.ws.send('/app/video.call-reject', { callId });
|
|
43
|
+
}
|
|
44
|
+
ngOnDestroy() {
|
|
45
|
+
this.destroy$.next();
|
|
46
|
+
this.destroy$.complete();
|
|
47
|
+
}
|
|
48
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallWebSocketService, deps: [{ token: i1.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallWebSocketService, providedIn: 'root' });
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: VideoCallWebSocketService, decorators: [{
|
|
52
|
+
type: Injectable,
|
|
53
|
+
args: [{ providedIn: 'root' }]
|
|
54
|
+
}], ctorParameters: () => [{ type: i1.WebSocketService }] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tY2FsbC13ZWJzb2NrZXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdmlkZW8vdmlkZW8tY2FsbC13ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFhdEQsTUFBTSxPQUFPLHlCQUF5QjtJQXdCaEI7SUF2QlosUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdkMsK0NBQStDO0lBQ3RDLGFBQWEsQ0FBZ0M7SUFFdEQsa0RBQWtEO0lBQ3pDLGNBQWMsQ0FBd0I7SUFFL0MsaUNBQWlDO0lBQ3hCLGFBQWEsQ0FBZ0M7SUFFdEQsb0RBQW9EO0lBQzNDLFVBQVUsQ0FBcUM7SUFFeEQsOEJBQThCO0lBQ3JCLFVBQVUsQ0FBNkI7SUFFaEQsaUNBQWlDO0lBQ3hCLGFBQWEsQ0FBZ0M7SUFFdEQscUJBQXFCO0lBQ1osT0FBTyxDQUFrQjtJQUVsQyxZQUFvQixFQUFvQjtRQUFwQixPQUFFLEdBQUYsRUFBRSxDQUFrQjtRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFvQixpQ0FBaUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBWSxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBb0IsaUNBQWlDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQXlCLDhCQUE4QixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUMzSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFpQiw4QkFBOEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBb0IsaUNBQWlDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQU0sMEJBQTBCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxZQUFZLENBQUMsT0FBNEI7UUFDdkMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsUUFBaUI7UUFDMUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWM7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0FyRFUseUJBQXlCOzRHQUF6Qix5QkFBeUIsY0FEWixNQUFNOzs0RkFDbkIseUJBQXlCO2tCQURyQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXZWJTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS93ZWJzb2NrZXQuc2VydmljZSc7XG5pbXBvcnQge1xuICBWaWRlb0NhbGwsXG4gIEluaXRpYXRlQ2FsbFJlcXVlc3QsXG4gIEFuc3dlckNhbGxSZXF1ZXN0LFxuICBWaWRlb0NhbGxUb2tlblJlc3BvbnNlLFxuICBJbmNvbWluZ0NhbGxFdmVudCxcbiAgQ2FsbEFuc3dlcmVkRXZlbnQsXG4gIENhbGxFbmRlZEV2ZW50LFxufSBmcm9tICcuLi8uLi9tb2RlbHMvdmlkZW8vdmlkZW8tY2FsbC5tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFZpZGVvQ2FsbFdlYlNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogSW5jb21pbmcgY2FsbCBub3RpZmljYXRpb24gKGZvciB0YXJnZXRzKSAqL1xuICByZWFkb25seSBpbmNvbWluZ0NhbGwkOiBPYnNlcnZhYmxlPEluY29taW5nQ2FsbEV2ZW50PjtcblxuICAvKiogQ2FsbCBpbml0aWF0ZWQgY29uZmlybWF0aW9uIChmb3IgaW5pdGlhdG9yKSAqL1xuICByZWFkb25seSBjYWxsSW5pdGlhdGVkJDogT2JzZXJ2YWJsZTxWaWRlb0NhbGw+O1xuXG4gIC8qKiBDYWxsIGFuc3dlcmVkIG5vdGlmaWNhdGlvbiAqL1xuICByZWFkb25seSBjYWxsQW5zd2VyZWQkOiBPYnNlcnZhYmxlPENhbGxBbnN3ZXJlZEV2ZW50PjtcblxuICAvKiogTGl2ZUtpdCB0b2tlbiBkZWxpdmVyeSAoYWZ0ZXIgYWNjZXB0aW5nIGNhbGwpICovXG4gIHJlYWRvbmx5IGNhbGxUb2tlbiQ6IE9ic2VydmFibGU8VmlkZW9DYWxsVG9rZW5SZXNwb25zZT47XG5cbiAgLyoqIENhbGwgZW5kZWQgbm90aWZpY2F0aW9uICovXG4gIHJlYWRvbmx5IGNhbGxFbmRlZCQ6IE9ic2VydmFibGU8Q2FsbEVuZGVkRXZlbnQ+O1xuXG4gIC8qKiBDYWxsIHJlamVjdGVkIG5vdGlmaWNhdGlvbiAqL1xuICByZWFkb25seSBjYWxsUmVqZWN0ZWQkOiBPYnNlcnZhYmxlPENhbGxBbnN3ZXJlZEV2ZW50PjtcblxuICAvKiogRXJyb3IgbWVzc2FnZXMgKi9cbiAgcmVhZG9ubHkgZXJyb3JzJDogT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd3M6IFdlYlNvY2tldFNlcnZpY2UpIHtcbiAgICB0aGlzLmluY29taW5nQ2FsbCQgPSB0aGlzLndzLnN1YnNjcmliZTxJbmNvbWluZ0NhbGxFdmVudD4oJy91c2VyL3F1ZXVlL3ZpZGVvL2luY29taW5nLWNhbGwnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgdGhpcy5jYWxsSW5pdGlhdGVkJCA9IHRoaXMud3Muc3Vic2NyaWJlPFZpZGVvQ2FsbD4oJy91c2VyL3F1ZXVlL3ZpZGVvL2NhbGwtaW5pdGlhdGVkJykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIHRoaXMuY2FsbEFuc3dlcmVkJCA9IHRoaXMud3Muc3Vic2NyaWJlPENhbGxBbnN3ZXJlZEV2ZW50PignL3VzZXIvcXVldWUvdmlkZW8vY2FsbC1hbnN3ZXJlZCcpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB0aGlzLmNhbGxUb2tlbiQgPSB0aGlzLndzLnN1YnNjcmliZTxWaWRlb0NhbGxUb2tlblJlc3BvbnNlPignL3VzZXIvcXVldWUvdmlkZW8vY2FsbC10b2tlbicpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgICB0aGlzLmNhbGxFbmRlZCQgPSB0aGlzLndzLnN1YnNjcmliZTxDYWxsRW5kZWRFdmVudD4oJy91c2VyL3F1ZXVlL3ZpZGVvL2NhbGwtZW5kZWQnKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gICAgdGhpcy5jYWxsUmVqZWN0ZWQkID0gdGhpcy53cy5zdWJzY3JpYmU8Q2FsbEFuc3dlcmVkRXZlbnQ+KCcvdXNlci9xdWV1ZS92aWRlby9jYWxsLXJlamVjdGVkJykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICAgIHRoaXMuZXJyb3JzJCA9IHRoaXMud3Muc3Vic2NyaWJlPGFueT4oJy91c2VyL3F1ZXVlL3ZpZGVvL2Vycm9ycycpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIGluaXRpYXRlQ2FsbChyZXF1ZXN0OiBJbml0aWF0ZUNhbGxSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy53cy5zZW5kKCcvYXBwL3ZpZGVvLmNhbGwtaW5pdCcsIHJlcXVlc3QpO1xuICB9XG5cbiAgYW5zd2VyQ2FsbChjYWxsSWQ6IG51bWJlciwgYWNjZXB0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLndzLnNlbmQoJy9hcHAvdmlkZW8uY2FsbC1hbnN3ZXInLCB7IGNhbGxJZCwgYWNjZXB0ZWQgfSk7XG4gIH1cblxuICBlbmRDYWxsKGNhbGxJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53cy5zZW5kKCcvYXBwL3ZpZGVvLmNhbGwtZW5kJywgeyBjYWxsSWQgfSk7XG4gIH1cblxuICByZWplY3RDYWxsKGNhbGxJZDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53cy5zZW5kKCcvYXBwL3ZpZGVvLmNhbGwtcmVqZWN0JywgeyBjYWxsSWQgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const TGM_SDK_CONFIG = new InjectionToken('TGM_SDK_CONFIG', {
|
|
3
|
+
providedIn: 'root',
|
|
4
|
+
factory: () => ({
|
|
5
|
+
baseUrl: '',
|
|
6
|
+
tokenStorage: new InMemoryTokenStorage(),
|
|
7
|
+
autoRefresh: false,
|
|
8
|
+
})
|
|
9
|
+
});
|
|
10
|
+
export class InMemoryTokenStorage {
|
|
11
|
+
token = null;
|
|
12
|
+
refreshToken = null;
|
|
13
|
+
getToken() {
|
|
14
|
+
return this.token;
|
|
15
|
+
}
|
|
16
|
+
setToken(token) {
|
|
17
|
+
this.token = token;
|
|
18
|
+
}
|
|
19
|
+
removeToken() {
|
|
20
|
+
this.token = null;
|
|
21
|
+
}
|
|
22
|
+
getRefreshToken() {
|
|
23
|
+
return this.refreshToken;
|
|
24
|
+
}
|
|
25
|
+
setRefreshToken(token) {
|
|
26
|
+
this.refreshToken = token;
|
|
27
|
+
}
|
|
28
|
+
removeRefreshToken() {
|
|
29
|
+
this.refreshToken = null;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGdtLXNkay5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RnbS1zZGsuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFrQy9DLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBZSxnQkFBZ0IsRUFBRTtJQUMvRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLE9BQU8sRUFBRSxFQUFFO1FBQ1gsWUFBWSxFQUFFLElBQUksb0JBQW9CLEVBQUU7UUFDeEMsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztDQUNILENBQUMsQ0FBQztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsS0FBSyxHQUFrQixJQUFJLENBQUM7SUFDNUIsWUFBWSxHQUFrQixJQUFJLENBQUM7SUFFM0MsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRva2VuU3RvcmFnZVN0cmF0ZWd5IHtcbiAgZ2V0VG9rZW4oKTogc3RyaW5nIHwgbnVsbDtcbiAgc2V0VG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQ7XG4gIHJlbW92ZVRva2VuKCk6IHZvaWQ7XG4gIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsO1xuICBzZXRSZWZyZXNoVG9rZW4odG9rZW46IHN0cmluZyk6IHZvaWQ7XG4gIHJlbW92ZVJlZnJlc2hUb2tlbigpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRnbVNka0NvbmZpZyB7XG4gIC8qKiBCYXNlIFVSTCBvZiB0aGUgVEdNIE1hbmFnZXIgYmFja2VuZCAoZS5nLiwgJ2h0dHA6Ly9sb2NhbGhvc3Q6MTMzNycpICovXG4gIGJhc2VVcmw6IHN0cmluZztcblxuICAvKiogU3RhdGljIGNsaWVudCBpZGVudGlmaWVyIGZvciBtdWx0aS10ZW5hbmN5IChYLUNsaWVudC1JRCBoZWFkZXIpICovXG4gIGNsaWVudElkPzogc3RyaW5nO1xuXG4gIC8qKiBXZWJTb2NrZXQgZW5kcG9pbnQgcGF0aCAoZGVmYXVsdHMgdG8gJy93cycpICovXG4gIHdzRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqIEN1c3RvbSB0b2tlbiBzdG9yYWdlIHN0cmF0ZWd5LiBEZWZhdWx0cyB0byBpbi1tZW1vcnkgc3RvcmFnZS4gKi9cbiAgdG9rZW5TdG9yYWdlPzogVG9rZW5TdG9yYWdlU3RyYXRlZ3k7XG5cbiAgLyoqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSByZWZyZXNoIHRva2VucyBvbiA0MDEgKGRlZmF1bHRzIHRvIHRydWUpICovXG4gIGF1dG9SZWZyZXNoPzogYm9vbGVhbjtcblxuICAvKiogVG9rZW4ga2V5IG5hbWUgdXNlZCBpbiBhdXRoIHJlc3BvbnNlcyAoZGVmYXVsdHMgdG8gJ2p3dCcpICovXG4gIHRva2VuS2V5Pzogc3RyaW5nO1xuXG4gIC8qKiBSZWZyZXNoIHRva2VuIGtleSBuYW1lIChkZWZhdWx0cyB0byAncmVmcmVzaFRva2VuJykgKi9cbiAgcmVmcmVzaFRva2VuS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgVEdNX1NES19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VGdtU2RrQ29uZmlnPignVEdNX1NES19DT05GSUcnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4gKHtcbiAgICBiYXNlVXJsOiAnJyxcbiAgICB0b2tlblN0b3JhZ2U6IG5ldyBJbk1lbW9yeVRva2VuU3RvcmFnZSgpLFxuICAgIGF1dG9SZWZyZXNoOiBmYWxzZSxcbiAgfSlcbn0pO1xuXG5leHBvcnQgY2xhc3MgSW5NZW1vcnlUb2tlblN0b3JhZ2UgaW1wbGVtZW50cyBUb2tlblN0b3JhZ2VTdHJhdGVneSB7XG4gIHByaXZhdGUgdG9rZW46IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJlZnJlc2hUb2tlbjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0VG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW47XG4gIH1cblxuICBzZXRUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbiA9IHRva2VuO1xuICB9XG5cbiAgcmVtb3ZlVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy50b2tlbiA9IG51bGw7XG4gIH1cblxuICBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucmVmcmVzaFRva2VuO1xuICB9XG5cbiAgc2V0UmVmcmVzaFRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2hUb2tlbiA9IHRva2VuO1xuICB9XG5cbiAgcmVtb3ZlUmVmcmVzaFRva2VuKCk6IHZvaWQge1xuICAgIHRoaXMucmVmcmVzaFRva2VuID0gbnVsbDtcbiAgfVxufVxuIl19
|