@acorex/components 20.1.15 → 20.2.0-next.0
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/fesm2022/acorex-components-accordion.mjs +10 -10
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +10 -10
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +7 -7
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +7 -7
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +7 -7
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +10 -10
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +7 -7
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +10 -10
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +13 -13
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +15 -16
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +7 -7
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +7 -7
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +7 -7
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +10 -10
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +7 -7
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +28 -28
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +28 -28
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +49 -49
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +46 -46
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +31 -31
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +37 -37
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +7 -7
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +7 -7
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +7 -7
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +25 -25
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +10 -10
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-2.mjs +10 -10
- package/fesm2022/acorex-components-drawer-2.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +13 -13
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +16 -16
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +25 -25
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +16 -16
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +16 -16
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +34 -34
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +7 -7
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +3 -3
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +10 -10
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +7 -7
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +7 -7
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +10 -10
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +16 -16
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +13 -13
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +34 -34
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +84 -54
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-BSSuFZvQ.mjs → acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs} +21 -21
- package/fesm2022/{acorex-components-modal-acorex-components-modal-BSSuFZvQ.mjs.map → acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs.map} +1 -1
- package/fesm2022/{acorex-components-modal-modal-content.component-V7QnN7MC.mjs → acorex-components-modal-modal-content.component-DfhgA_WL.mjs} +5 -5
- package/fesm2022/{acorex-components-modal-modal-content.component-V7QnN7MC.mjs.map → acorex-components-modal-modal-content.component-DfhgA_WL.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +7 -7
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +10 -10
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-2.mjs +5 -5
- package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +7 -7
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +7 -7
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +25 -25
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +10 -10
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +7 -7
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +13 -13
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +7 -7
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +10 -10
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +7 -7
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +7 -7
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +13 -13
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +7 -7
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +7 -7
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +7 -7
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +7 -7
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +31 -31
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +7 -7
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +22 -31
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +7 -7
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +7 -7
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +13 -13
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +7 -7
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +13 -13
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +13 -13
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +13 -13
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +7 -7
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +7 -7
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +7 -7
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +10 -10
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +7 -7
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +10 -10
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +10 -10
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +7 -7
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +10 -10
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +10 -10
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +22 -22
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +31 -31
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/menu/index.d.ts +1 -1
- package/package.json +1 -1
- package/select-box/index.d.ts +3 -4
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-conversation.mjs","sources":["../tmp-esm2022/conversation/lib/classes/events.interface.js","../tmp-esm2022/conversation/lib/services/conversation.service.js","../tmp-esm2022/conversation/lib/services/recording.service.js","../tmp-esm2022/conversation/lib/conversation-container/conversation-container.component.js","../tmp-esm2022/conversation/lib/conversation-input/conversation-input.component.js","../tmp-esm2022/conversation/lib/services/conversation-message-type-registry.service.js","../tmp-esm2022/conversation/lib/conversation-message/conversation-message.component.js","../tmp-esm2022/conversation/lib/conversation.types.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.js","../tmp-esm2022/conversation/lib/conversation-view/conversation-view.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.js","../tmp-esm2022/conversation/lib/conversation.module.js","../tmp-esm2022/conversation/acorex-components-conversation.js"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\nexport class AXConversationActionEvent extends AXEvent {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY2xhc3Nlcy9ldmVudHMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUsxRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBTztDQUVyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBWElucHV0RmlsZUNoYW5nZSBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcbiAgZGF0YT86IGFueTtcbn1cbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkFjdGlvbkV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XG4gIGRhdGE6IGFueTtcbn1cbiJdfQ==","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationService {\n constructor() {\n this.replyId = signal('', ...(ngDevMode ? [{ debugName: \"replyId\" }] : []));\n this.chats = signal([], ...(ngDevMode ? [{ debugName: \"chats\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRUUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxFQUFFLG1EQUFDLENBQUM7UUFDckIsVUFBSyxHQUFHLE1BQU0sQ0FBMEIsRUFBRSxpREFBQyxDQUFDO0tBQzdDOzhHQUhZLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25TZXJ2aWNlIHtcbiAgcmVwbHlJZCA9IHNpZ25hbCgnJyk7XG4gIGNoYXRzID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZVtdPihbXSk7XG59XG4iXX0=","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXRecordingService {\n constructor() {\n this.audioBlobs = [];\n this.streamBeingCaptured = null;\n this.timer = signal('00:0', ...(ngDevMode ? [{ debugName: \"timer\" }] : []));\n this.time = {\n seconds: 0,\n minutes: 0,\n hours: 0,\n };\n }\n startRecording() {\n if (!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\n return Promise.reject(new Error('mediaDevices API or getUserMedia method is not supported in this browser.'));\n }\n else {\n return navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => {\n this.streamBeingCaptured = stream;\n this.mediaRecorder = new MediaRecorder(stream);\n this.audioBlobs = [];\n this.mediaRecorder.addEventListener('dataavailable', (event) => {\n this.audioBlobs.push(event.data);\n });\n this.mediaRecorder.start();\n this.timerInterval = setInterval(() => {\n this.calculateTime();\n }, 1000);\n });\n }\n }\n endRecording() {\n return new Promise((resolve) => {\n const mimeType = this.mediaRecorder?.mimeType;\n this.mediaRecorder?.addEventListener('stop', () => {\n const audioBlob = new Blob(this.audioBlobs, { type: mimeType });\n resolve(audioBlob);\n });\n this.mediaRecorder?.stop();\n this.streamBeingCaptured.getTracks().forEach((track) => track.stop());\n this.mediaRecorder = null;\n this.streamBeingCaptured = null;\n this.resetTimer();\n });\n }\n calculateTime() {\n this.time.seconds++;\n if (this.time.seconds >= 60) {\n this.time.seconds = 0;\n this.time.minutes++;\n if (this.time.minutes >= 60) {\n this.time.minutes = 0;\n this.time.hours++;\n }\n }\n const formattedTime = (this.time.hours > 0 ? this.time.hours + ':' : '') +\n (this.time.minutes < 10 ? '0' + this.time.minutes : this.time.minutes) +\n ':' +\n (this.time.seconds < 10 ? '0' + this.time.seconds : this.time.seconds);\n this.timer.set(formattedTime);\n }\n resetTimer() {\n clearInterval(this.timerInterval);\n this.time.seconds = 0;\n this.time.minutes = 0;\n this.time.hours = 0;\n this.timer.set('00:0');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXRecordingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXRecordingService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXRecordingService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVFLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFdkIsd0JBQW1CLEdBQVEsSUFBSSxDQUFDO1FBRWhDLFVBQUssR0FBMkIsTUFBTSxDQUFDLE1BQU0saURBQUMsQ0FBQztRQUVyQyxTQUFJLEdBQUc7WUFDZixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO0tBaUVIO0lBN0RDLGNBQWM7UUFDWixJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsMkVBQTJFLENBQUMsQ0FBQyxDQUFDO1FBQ2hILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMxRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7b0JBQ3BDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ2hFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGFBQWEsR0FDakIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQ3RFLEdBQUc7WUFDSCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxVQUFVO1FBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQTNFVSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUmVjb3JkaW5nU2VydmljZSB7XG4gIGF1ZGlvQmxvYnM6IGFueVtdID0gW107XG4gIG1lZGlhUmVjb3JkZXI6IE1lZGlhUmVjb3JkZXIgfCBudWxsO1xuICBzdHJlYW1CZWluZ0NhcHR1cmVkOiBhbnkgPSBudWxsO1xuXG4gIHRpbWVyOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcwMDowJyk7XG5cbiAgcHJvdGVjdGVkIHRpbWUgPSB7XG4gICAgc2Vjb25kczogMCxcbiAgICBtaW51dGVzOiAwLFxuICAgIGhvdXJzOiAwLFxuICB9O1xuXG4gIHByb3RlY3RlZCB0aW1lckludGVydmFsO1xuXG4gIHN0YXJ0UmVjb3JkaW5nKCkge1xuICAgIGlmICghKG5hdmlnYXRvci5tZWRpYURldmljZXMgJiYgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdtZWRpYURldmljZXMgQVBJIG9yIGdldFVzZXJNZWRpYSBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KS50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgdGhpcy5zdHJlYW1CZWluZ0NhcHR1cmVkID0gc3RyZWFtO1xuICAgICAgICB0aGlzLm1lZGlhUmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihzdHJlYW0pO1xuICAgICAgICB0aGlzLmF1ZGlvQmxvYnMgPSBbXTtcbiAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGFhdmFpbGFibGUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmF1ZGlvQmxvYnMucHVzaChldmVudC5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWVkaWFSZWNvcmRlci5zdGFydCgpO1xuICAgICAgICB0aGlzLnRpbWVySW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVUaW1lKCk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZW5kUmVjb3JkaW5nKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbWltZVR5cGUgPSB0aGlzLm1lZGlhUmVjb3JkZXI/Lm1pbWVUeXBlO1xuICAgICAgdGhpcy5tZWRpYVJlY29yZGVyPy5hZGRFdmVudExpc3RlbmVyKCdzdG9wJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0Jsb2IgPSBuZXcgQmxvYih0aGlzLmF1ZGlvQmxvYnMsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gICAgICAgIHJlc29sdmUoYXVkaW9CbG9iKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZWRpYVJlY29yZGVyPy5zdG9wKCk7XG4gICAgICB0aGlzLnN0cmVhbUJlaW5nQ2FwdHVyZWQuZ2V0VHJhY2tzKCkuZm9yRWFjaCgodHJhY2spID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICB0aGlzLm1lZGlhUmVjb3JkZXIgPSBudWxsO1xuICAgICAgdGhpcy5zdHJlYW1CZWluZ0NhcHR1cmVkID0gbnVsbDtcbiAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlVGltZSgpIHtcbiAgICB0aGlzLnRpbWUuc2Vjb25kcysrO1xuICAgIGlmICh0aGlzLnRpbWUuc2Vjb25kcyA+PSA2MCkge1xuICAgICAgdGhpcy50aW1lLnNlY29uZHMgPSAwO1xuICAgICAgdGhpcy50aW1lLm1pbnV0ZXMrKztcbiAgICAgIGlmICh0aGlzLnRpbWUubWludXRlcyA+PSA2MCkge1xuICAgICAgICB0aGlzLnRpbWUubWludXRlcyA9IDA7XG4gICAgICAgIHRoaXMudGltZS5ob3VycysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFRpbWUgPVxuICAgICAgKHRoaXMudGltZS5ob3VycyA+IDAgPyB0aGlzLnRpbWUuaG91cnMgKyAnOicgOiAnJykgK1xuICAgICAgKHRoaXMudGltZS5taW51dGVzIDwgMTAgPyAnMCcgKyB0aGlzLnRpbWUubWludXRlcyA6IHRoaXMudGltZS5taW51dGVzKSArXG4gICAgICAnOicgK1xuICAgICAgKHRoaXMudGltZS5zZWNvbmRzIDwgMTAgPyAnMCcgKyB0aGlzLnRpbWUuc2Vjb25kcyA6IHRoaXMudGltZS5zZWNvbmRzKTtcblxuICAgIHRoaXMudGltZXIuc2V0KGZvcm1hdHRlZFRpbWUpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMudGltZXJJbnRlcnZhbCk7XG4gICAgdGhpcy50aW1lLnNlY29uZHMgPSAwO1xuICAgIHRoaXMudGltZS5taW51dGVzID0gMDtcbiAgICB0aGlzLnRpbWUuaG91cnMgPSAwO1xuICAgIHRoaXMudGltZXIuc2V0KCcwMDowJyk7XG4gIH1cbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/cdk/common';\nimport { Component, effect, forwardRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A container for displaying and managing conversations.\n * @category Components\n */\nexport class AXConversationContainerComponent {\n constructor() {\n this.chatData = input([], ...(ngDevMode ? [{ debugName: \"chatData\" }] : []));\n this.conversationService = inject(AXConversationService);\n this.#init = effect(() => {\n this.conversationService.chats.set(this.chatData());\n }, ...(ngDevMode ? [{ debugName: \"#init\" }] : []));\n }\n #init;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.2\", type: AXConversationContainerComponent, isStandalone: true, selector: \"ax-conversation-container\", inputs: { chatData: { classPropertyName: \"chatData\", publicName: \"chatData\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n { provide: AXComponent, useExisting: AXConversationContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationContainerComponent },\n { provide: AXValuableComponent, useExisting: AXConversationContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationContainerComponent),\n multi: true,\n },\n AXConversationService,\n AXRecordingService,\n ], ngImport: i0, template: \"<div class=\\\"ax-conversation-container\\\">\\n <ng-content> </ng-content>\\n</div>\\n\", styles: [\"ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-surface);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-surface);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary-light-surface);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-on-primary-dark-surface);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-on-primary-light-surface)}ax-conversation-container{width:100%;display:block}ax-conversation-container>.ax-editor-container{display:block;height:100%!important}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-container', encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXComponent, useExisting: AXConversationContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationContainerComponent },\n { provide: AXValuableComponent, useExisting: AXConversationContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationContainerComponent),\n multi: true,\n },\n AXConversationService,\n AXRecordingService,\n ], template: \"<div class=\\\"ax-conversation-container\\\">\\n <ng-content> </ng-content>\\n</div>\\n\", styles: [\"ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-surface);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-surface);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary-light-surface);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-on-primary-dark-surface);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-on-primary-light-surface)}ax-conversation-container{width:100%;display:block}ax-conversation-container>.ax-editor-container{display:block;height:100%!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRW5FOzs7R0FHRztBQW1CSCxNQUFNLE9BQU8sZ0NBQWdDO0lBbEI3QztRQW1CRSxhQUFRLEdBQUcsS0FBSyxDQUEwQixFQUFFLG9EQUFDLENBQUM7UUFDdEMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxpREFBQyxDQUFDO0tBQ0o7SUFIQyxLQUFLLENBRUY7OEdBTlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MscU5BYmhDO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRTtZQUN2RSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUU7WUFDaEYsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFO1lBQy9FO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7Z0JBQy9ELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxxQkFBcUI7WUFDckIsa0JBQWtCO1NBQ25CLDBCQzNCSCxtRkFHQTs7MkZEMEJhLGdDQUFnQztrQkFsQjVDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUNoRixFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUMvRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQzs0QkFDL0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIEFYRm9jdXNhYmxlQ29tcG9uZW50LCBBWFZhbHVhYmxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhSZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIGZvciBkaXNwbGF5aW5nIGFuZCBtYW5hZ2luZyBjb252ZXJzYXRpb25zLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbkNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICBBWENvbnZlcnNhdGlvblNlcnZpY2UsXG4gICAgQVhSZWNvcmRpbmdTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkNvbnRhaW5lckNvbXBvbmVudCB7XG4gIGNoYXREYXRhID0gaW5wdXQ8QVhDb252ZXJzYXRpb25NZXNzYWdlW10+KFtdKTtcbiAgcHJpdmF0ZSBjb252ZXJzYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uU2VydmljZSk7XG5cbiAgI2luaXQgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuY29udmVyc2F0aW9uU2VydmljZS5jaGF0cy5zZXQodGhpcy5jaGF0RGF0YSgpKTtcbiAgfSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRhaW5lclwiPlxuICA8bmctY29udGVudD4gPC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownPanelComponent } from '@acorex/components/dropdown';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewChild, ViewEncapsulation, computed, contentChild, forwardRef, inject, input, output, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/decorators\";\n/**\n * An input component for entering conversation messages.\n *\n * @category Components\n */\nexport class AXConversationInputComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.sendIcon = contentChild('ax-icon', ...(ngDevMode ? [{ debugName: \"sendIcon\" }] : []));\n this.onActionClose = output();\n this.conversationService = inject(AXConversationService);\n this.chats = computed(() => {\n return this.conversationService.chats();\n }, ...(ngDevMode ? [{ debugName: \"chats\" }] : []));\n this.actionIcon = signal(null, ...(ngDevMode ? [{ debugName: \"actionIcon\" }] : []));\n this.actionContent = signal(null, ...(ngDevMode ? [{ debugName: \"actionContent\" }] : []));\n this.actionShowState = signal(false, ...(ngDevMode ? [{ debugName: \"actionShowState\" }] : []));\n this.actionUser = signal(null, ...(ngDevMode ? [{ debugName: \"actionUser\" }] : []));\n this.actionCloseCallback = signal(() => {\n return;\n }, ...(ngDevMode ? [{ debugName: \"actionCloseCallback\" }] : []));\n this.replyChat = computed(() => {\n const findMessage = this.chats().find((item) => item.id === this.conversationService.replyId());\n return findMessage;\n }, ...(ngDevMode ? [{ debugName: \"replyChat\" }] : []));\n /** Maximum length of input text */\n this.maxLength = input(...(ngDevMode ? [undefined, { debugName: \"maxLength\" }] : []));\n /** Indicates if an attachment is present */\n this.hasAttachment = input(true, ...(ngDevMode ? [{ debugName: \"hasAttachment\" }] : []));\n /** Indicates if voice recording is enabled */\n this.hasVoice = input(true, ...(ngDevMode ? [{ debugName: \"hasVoice\" }] : []));\n this.hasEmoji = input(true, ...(ngDevMode ? [{ debugName: \"hasEmoji\" }] : []));\n this.isLoading = input(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n /** Acceptable file types for attachment */\n this.acceptFileType = input('*', ...(ngDevMode ? [{ debugName: \"acceptFileType\" }] : []));\n /**\n * Emitted when the send button is clicked.\n *\n * @event\n */\n this.onSendClick = output();\n /**\n * Emitted when recording starts.\n *\n * @event\n */\n this.onStartRecording = output();\n /**\n * Emitted when recording is canceled.\n *\n * @event\n */\n this.onCancelRecording = output();\n this.onEnterPressed = output();\n /**\n * @ignore\n */\n this.recording = signal(false, ...(ngDevMode ? [{ debugName: \"recording\" }] : []));\n /**\n * @ignore\n */\n this.recordingService = inject(AXRecordingService);\n /**\n * @ignore\n */\n this._updateOn = 'change';\n this.shiftState = false;\n }\n setActionBoxContainer(icon, content, user, closeCallback) {\n this.actionIcon.set(icon);\n this.actionContent.set(content);\n this.actionShowState.set(true);\n this.actionUser.set(user);\n this.actionCloseCallback.set(closeCallback);\n }\n /**\n * @ignore\n */\n _handleModelChange(value) {\n this.commitValue(value, true);\n }\n /**\n * Initiates recording when the record button is clicked.\n * Emits an event when recording starts.\n * @ignore\n */\n handleRecordClick() {\n this.recording.set(true);\n this.recordingService\n ?.startRecording()\n .then(() => {\n this.onStartRecording.emit({\n component: this,\n data: { recording: true },\n isUserInteraction: true,\n });\n })\n .catch((e) => {\n throw e;\n });\n }\n /**\n * Cancels the recording and emits an event to indicate cancellation.\n * @ignore\n */\n handleCancelRecordingClick() {\n this.recording.set(false);\n this.onCancelRecording.emit({\n component: this,\n data: { value: null },\n });\n }\n keyDownHandler(e) {\n if (e.key === 'Shift') {\n this.shiftState = true;\n }\n this.onKeyDown.emit({\n component: this,\n nativeEvent: e,\n });\n }\n keyUpHandler(e) {\n if (e.key === 'Shift') {\n this.shiftState = false;\n }\n this.onKeyUp.emit({\n component: this,\n nativeEvent: e,\n });\n }\n keyPressHandler(e) {\n if (e.key === 'Enter' && !this.shiftState) {\n e.preventDefault();\n this.onEnterPressed.emit({ component: this });\n }\n this.onKeyPress.emit({\n component: this,\n nativeEvent: e,\n });\n }\n /**\n * Opens the file picker for attachment.\n * @ignore\n */\n handleAttachClick() {\n this.inputFile.nativeElement.click();\n }\n /**\n * Emits the selected files when the file input changes.\n * @ignore\n */\n handleChangeFile(event) {\n this.onSendClick.emit({\n component: this,\n data: { value: event.target.files, type: 'file' },\n });\n }\n /**\n * Emits the text value and optional replyChat when the send button is clicked.\n * @ignore\n */\n handleSendClick() {\n this.onSendClick.emit({\n component: this,\n data: { value: this.value, replyChat: this.replyChat() || null, type: 'text' },\n isUserInteraction: true,\n });\n this.actionShowState.set(false);\n }\n /**\n * Ends recording and emits the recorded voice data when the send voice button is clicked.\n * @ignore\n */\n handleSendVoiceClick() {\n this.recordingService.endRecording().then((c) => {\n this.recording.set(false);\n this.onSendClick.emit({\n component: this,\n data: { value: c, type: 'voice' },\n isUserInteraction: true,\n });\n });\n }\n /**\n * Clears the reply ID when closing a reply.\n * @ignore\n */\n closeReplyHandler() {\n this.actionShowState.set(false);\n this.actionCloseCallback();\n this.onActionClose.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationInputComponent, isStandalone: true, selector: \"ax-conversation-input\", inputs: { look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: \"maxLength\", publicName: \"maxLength\", isSignal: true, isRequired: false, transformFunction: null }, hasAttachment: { classPropertyName: \"hasAttachment\", publicName: \"hasAttachment\", isSignal: true, isRequired: false, transformFunction: null }, hasVoice: { classPropertyName: \"hasVoice\", publicName: \"hasVoice\", isSignal: true, isRequired: false, transformFunction: null }, hasEmoji: { classPropertyName: \"hasEmoji\", publicName: \"hasEmoji\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, acceptFileType: { classPropertyName: \"acceptFileType\", publicName: \"acceptFileType\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionClose: \"onActionClose\", onSendClick: \"onSendClick\", onStartRecording: \"onStartRecording\", onCancelRecording: \"onCancelRecording\", onEnterPressed: \"onEnterPressed\" }, providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ], queries: [{ propertyName: \"sendIcon\", first: true, predicate: [\"ax-icon\"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"inputFile\", first: true, predicate: [\"inputFile\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (actionShowState()) {\\n <div class=\\\"ax-editor-reply-container ax-editor-container ax-{{ look }}\\\">\\n @if (actionUser()) {\\n <ax-text> {{ actionUser() }}</ax-text>\\n }\\n <div class=\\\"ax-reply-container\\\">\\n <div class=\\\"ax-reply-start\\\">\\n <i [class]=\\\"actionIcon()\\\"></i>\\n <p>{{ actionContent() }}</p>\\n </div>\\n <i (click)=\\\"closeReplyHandler()\\\" class=\\\"fa-solid fa-xmark ax-cursor-pointer\\\"></i>\\n </div>\\n </div>\\n}\\n\\n<div class=\\\"ax-conversation-input ax-editor-container ax-{{ look }}\\\" [class.ax-state-recording]=\\\"recording()\\\">\\n @if (recording()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <span class=\\\"ax-record-dot\\\"></span>\\n <span>{{ recordingService.timer() }}</span>\\n </div>\\n <div class=\\\"ax-conversation-input-main-side\\\">\\n <ax-button\\n class=\\\"ax-sm\\\"\\n look=\\\"blank\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:common.actions.cancel' | translate | async\\\"\\n (onClick)=\\\"handleCancelRecordingClick()\\\"\\n ></ax-button>\\n </div>\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n <ax-button look=\\\"solid\\\" color=\\\"danger\\\" class=\\\"ax-blob ax-sm\\\" (onClick)=\\\"handleSendVoiceClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-send\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n } @else {\\n @if (hasEmoji()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-emoji\\\"></i>\\n </ax-icon>\\n <ax-dropdown-panel>\\n <ng-container>\\n <div class=\\\"ax-emoji-container\\\">\\n <div>\\u26A0\\uFE0F</div>\\n <div>\\u27A1\\uFE0F</div>\\n <div>\\uD83D\\uDD03</div>\\n <div>\\uD83D\\uDD37</div>\\n <div>\\uD83E\\uDD1A</div>\\n <div>\\uD83D\\uDE02</div>\\n <div>\\uD83D\\uDE0A</div>\\n </div>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <textarea\\n class=\\\"ax-conversation-input-main-side\\\"\\n oninput='this.style.height = \\\"\\\";this.style.height = this.scrollHeight + \\\"px\\\"'\\n type=\\\"text\\\"\\n rows=\\\"1\\\"\\n [id]=\\\"id\\\"\\n [name]=\\\"name\\\"\\n [attr.placeholder]=\\\"placeholder\\\"\\n [attr.maxlength]=\\\"maxLength()\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [tabindex]=\\\"tabIndex\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n [ngModelOptions]=\\\"{ updateOn: _updateOn }\\\"\\n (keydown)=\\\"keyDownHandler($event)\\\"\\n (keyup)=\\\"keyUpHandler($event)\\\"\\n (keypress)=\\\"keyPressHandler($event)\\\"\\n (focus)=\\\"emitOnFocusEvent($event)\\\"\\n (blur)=\\\"emitOnBlurEvent($event)\\\"\\n >\\n </textarea>\\n\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n @if (!value) {\\n @if (hasAttachment()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleAttachClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-attach\\\"></i>\\n </ax-icon>\\n </ax-button>\\n <input\\n multiple\\n #inputFile\\n [accept]=\\\"acceptFileType()\\\"\\n type=\\\"file\\\"\\n class=\\\"ax-attach-input\\\"\\n (change)=\\\"handleChangeFile($event)\\\"\\n />\\n }\\n @if (hasVoice()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleRecordClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-mic\\\"></i>\\n </ax-icon>\\n </ax-button>\\n }\\n } @else {\\n <ax-button [disabled]=\\\"isLoading()\\\" look=\\\"solid\\\" color=\\\"primary\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleSendClick()\\\">\\n @if (isLoading()) {\\n <ax-loading-spinner color=\\\"primary\\\"></ax-loading-spinner>\\n } @else {\\n @if (sendIcon()) {\\n <ng-content select=\\\"ax-icon\\\"></ng-content>\\n } @else {\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-arrow-long-up\\\"></i>\\n </ax-icon>\\n }\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n\", styles: [\".ax-action-list{display:flex;gap:.25rem}.ax-action-list.ax-action-list-horizontal{flex-direction:row}.ax-action-list.ax-action-list-horizontal ax-divider{width:0px;height:auto;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list.ax-action-list-vertical{flex-direction:column}.ax-action-list.ax-action-list-vertical .ax-action-item>div.ax-action-item-prefix ax-prefix{min-width:1rem}.ax-action-list.ax-action-list-vertical ax-divider{height:1px;width:100%}.ax-action-list ax-title{opacity:.5;display:block;font-size:.75rem;line-height:1rem;font-weight:bolder;text-transform:uppercase;padding-block:var(--ax-comp-action-item-padding-block, .25rem);padding-inline:var(--ax-comp-action-item-padding-inline, calc(var(--ax-comp-action-item-padding-inline, .875rem) / 3 * 2))}.ax-action-list ax-divider{display:block;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list ax-text{white-space:nowrap}.ax-action-list .ax-action-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;height:2.25rem;width:100%;cursor:pointer;padding-inline:var(--ax-comp-action-item-padding-inline, .875rem)}.ax-action-list .ax-action-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-prefix,.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-suffix{opacity:1}.ax-action-list .ax-action-item>div{display:flex;align-items:center;justify-content:center}.ax-action-list .ax-action-item>div.ax-action-item-prefix,.ax-action-list .ax-action-item>div.ax-action-item-suffix{gap:.5rem}.ax-action-list .ax-action-item ax-prefix{display:flex;gap:.5rem}.ax-action-list .ax-action-item ax-suffix ax-text{color:rgba(var(--ax-sys-body-text-color));opacity:.5;font-weight:lighter}.ax-action-sheet-panel{--ax-comp-action-sheet-border-radius-size: var(--ax-sys-border-radius);overflow:hidden;border-top-left-radius:var(--ax-comp-action-sheet-border-radius-size);border-top-right-radius:var(--ax-comp-action-sheet-border-radius-size);background-color:rgba(var(--ax-sys-color-surface-lowest));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);animation:1s both ax-fadeInUp;animation-duration:var(--ax-sys-transition-duration)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}@-moz-document url-prefix(){*{scrollbar-color:var(--ax-sys-scroller-thumb-color) var(--ax-sys-scroller-track-color)}}.ax-checkbox{margin:0;height:1rem;min-width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:.25rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-checkbox:checked,.ax-checkbox:indeterminate{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-checkbox:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\\\")}.ax-checkbox:indeterminate{background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIzIiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPjwvc3ZnPg==)}.ax-checkbox:focus-visible,.ax-checkbox:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-checkbox:disabled{cursor:not-allowed;opacity:.5}.ax-drop-down{display:contents}.ax-drop-down .ax-dropdown-content{display:flex;flex:1 1 0%;align-items:center;overflow-x:auto;overflow-y:hidden;font-size:.875rem;line-height:1.25rem;text-transform:capitalize}.ax-drop-down .ax-dropdown-content.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-overlay-pane{margin:.25rem 0;min-width:10rem;width:100%;height:fit-content;overflow:hidden;border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-top-left-radius:var(--ax-comp-drop-down-border-top-left-radius, var(--ax-sys-border-radius));border-top-right-radius:var(--ax-comp-drop-down-border-top-right-radius, var(--ax-sys-border-radius));border-bottom-left-radius:var(--ax-comp-drop-down-border-bottom-left-radius, var(--ax-sys-border-radius));border-bottom-right-radius:var(--ax-comp-drop-down-border-bottom-right-radius, var(--ax-sys-border-radius))}@media (min-width: 320px) and (max-width: 640px){.ax-overlay-pane{margin:0}}.ax-overlay-pane ax-header,.ax-overlay-pane ax-footer{background-color:rgba(var(--ax-sys-color-lightest-surface));padding:.75rem}.ax-overlay-pane.ax-overlay-center{height:fit-content;width:80vw;max-width:90vh}.ax-overlay-pane.ax-overlay-actionsheet{height:auto;max-height:85vh;width:100%;background-color:rgba(var(--ax-sys-color-lightest-surface))}.ax-overlay-pane.ax-overlay-actionsheet.ax-full{height:95vh;max-height:95vh}.ax-overlay-pane.ax-overlay-full{width:100vw;height:100vh}.ax-dark .ax-overlay-pane{background-color:rgba(var(--ax-sys-color-darker-surface));border-color:rgba(var(--ax-sys-color-border-darker-surface))}:root,.ax-editor-container{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-space-block-size: .5rem;--ax-comp-editor-height: var(--ax-sys-size-base);--ax-comp-editor-placeholder-space-x: .75rem;--ax-comp-editor-error-bg-color: var(--ax-sys-color-danger-light-surface);--ax-comp-editor-error-text-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-error-border-color: var(--ax-sys-color-border-danger-surface);--ax-comp-editor-error-box-shadow-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-surface);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-box-outline-width: 1px;--ax-comp-editor-box-outline-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-placeholder-opacity: .5;--ax-comp-editor-focused-border-color: var(--ax-sys-color-border-primary-surface);--ax-comp-editor-focused-box-shadow-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-border-width: 0px}.ax-editor-container{display:flex;align-items:center;overflow:hidden;width:100%;height:var(--ax-comp-editor-height);font-size:var(--ax-comp-editor-font-size);border-radius:var(--ax-comp-editor-border-radius);border-width:var(--ax-comp-editor-border-width);border-color:rgba(var(--ax-comp-editor-border-color));background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));position:relative;gap:var(--ax-comp-editor-gap);padding-inline-end:var(--ax-comp-editor-space-end-size);padding-inline-start:var(--ax-comp-editor-space-start-size);justify-content:space-between}.ax-editor-container .ax-icon{font-size:var(--ax-comp-editor-icon-font-size)}.ax-editor-container:has(>ax-prefix){padding-inline-start:0}.ax-editor-container:has(>ax-prefix)>ax-prefix{padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix)>ax-prefix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-start-size: 0px}.ax-editor-container:has(>ax-suffix){padding-inline-end:0}.ax-editor-container:has(>ax-suffix)>ax-suffix{padding-inline-end:var(--ax-comp-editor-space-end-size)}.ax-editor-container:has(>ax-suffix)>ax-suffix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-end-size: 0px}.ax-editor-container:not(.ax-state-disabled):focus-within{border-color:rgba(var(--ax-comp-editor-focused-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-style:solid;outline-color:rgba(var(--ax-comp-editor-focused-border-color))}.ax-editor-container.ax-state-error{border-color:rgba(var(--ax-comp-editor-error-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-color:rgba(var(--ax-comp-editor-error-border-color));outline-style:solid}.ax-editor-container.ax-state-error:focus-within{border-color:rgba(var(--ax-comp-editor-error-border-color))}.ax-editor-container.ax-state-error .ax-input .ax-placeholder,.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-comp-editor-error-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-flat{--ax-comp-editor-border-width: 2px;--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;border-width:0px!important;border-bottom-width:var(--ax-comp-editor-border-width)!important}.ax-editor-container.ax-fill{--ax-comp-editor-box-outline-width: 2px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-editor-container.ax-none{--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface)}.ax-editor-container .ax-editor-input{height:100%;flex:1 1 0%}.ax-editor-container .ax-editor-input .ax-input{height:100%}.ax-editor-container .ax-input{font-size:var(--ax-comp-editor-font-size);line-height:var(--ax-comp-editor-font-size);color:rgba(var(--ax-comp-editor-text-color));cursor:inherit}.ax-editor-container .ax-input .ax-placeholder,.ax-editor-container .ax-input::placeholder{font-size:inherit;font-weight:400;color:rgb(var(--ax-comp-editor-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container.ax-state-disabled{opacity:.5;cursor:not-allowed}.ax-editor-container .ax-editor-control{display:flex;height:100%;align-items:center;justify-content:center;padding-inline-start:.5rem;font-size:1.125rem;line-height:1.75rem;color:rgba(var(--ax-comp-editor-text-color))}.ax-editor-container.ax-button-icon{padding:0 .5rem}.ax-editor-container .ax-input,.ax-editor-container .ax-text-area{text-align:inherit;font-family:inherit;font-size:inherit;line-height:inherit;height:100%;width:100%;flex:1 1 0%;background-color:transparent;font-weight:inherit}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-text-area:focus{box-shadow:none}.ax-editor-container .ax-editor-button{font-size:var(--ax-comp-editor-button-font-size, var(--ax-comp-editor-font-size));height:var(--ax-comp-editor-button-height, 100%)}.ax-editor-container>ax-prefix,.ax-editor-container>ax-suffix{height:100%;max-width:fit-content}.ax-editor-container>ax-prefix ax-button,.ax-editor-container>ax-prefix ax-text,.ax-editor-container>ax-prefix ax-icon,.ax-editor-container>ax-prefix .ax-editor-container,.ax-editor-container>ax-suffix ax-button,.ax-editor-container>ax-suffix ax-text,.ax-editor-container>ax-suffix ax-icon,.ax-editor-container>ax-suffix .ax-editor-container{display:flex;height:100%;align-items:center;justify-content:center;border-radius:0}.ax-editor-container>ax-prefix ax-title,.ax-editor-container>ax-suffix ax-title{padding-left:1rem;padding-right:1rem}.ax-editor-container>ax-prefix>ax-text,.ax-editor-container>ax-suffix>ax-text{display:flex;align-items:center;justify-content:center}.ax-editor-container .ax-button{height:100%!important;border-radius:0!important}.ax-editor-container .ax-button.ax-button-icon{height:100%;width:var(--ax-comp-editor-height)}.ax-editor-container ax-popover{position:absolute}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-font-size: .75rem;--ax-comp-editor-space-start-size: .25rem;--ax-comp-editor-space-end-size: .25rem;--ax-comp-editor-button-font-size: .625rem;--ax-comp-editor-gap: .25rem;--ax-comp-editor-icon-font-size: .75rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .75rem;--ax-comp-editor-gap: .375rem;--ax-comp-editor-icon-font-size: .875rem}.ax-md .ax-editor-container,.ax-editor-container,.ax-editor-container.ax-md{--ax-comp-editor-space-start-size: .75rem;--ax-comp-editor-space-end-size: .75rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-icon-font-size: 1rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-font-size: 1.125rem;--ax-comp-editor-space-start-size: 1.125rem;--ax-comp-editor-space-end-size: 1.125rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .625rem;--ax-comp-editor-icon-font-size: 1.25rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-space-start-size: 1.5rem;--ax-comp-editor-space-end-size: 1.5rem;--ax-comp-editor-button-font-size: 1rem;--ax-comp-editor-gap: .75rem;--ax-comp-editor-icon-font-size: 1.5rem}ax-validation-rule{position:absolute}.ax-general-button{display:inline-flex;height:var(--ax-sys-size-base);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);padding-left:var(--ax-comp-general-button-padding-left, 1rem);padding-right:var(--ax-comp-general-button-padding-right, 1rem);font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-general-button:hover:not(.ax-general-button:hover:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity))}.ax-general-button:focus:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled),.ax-general-button:focus-visible:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled){color:rgba(var(--ax-sys-color-primary-700),var(--tw-text-opacity))}.ax-general-button:active:not(.ax-general-button:active:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-300),var(--tw-text-opacity))}.ax-general-button.ax-button-icon{padding-left:var(--ax-comp-general-button-padding-left, .5rem);padding-right:var(--ax-comp-general-button-padding-right, .5rem);font-size:100%}.ax-general-button.ax-button-icon>button{display:flex}.ax-general-button.ax-button-rounded{border-radius:var(--ax-sys-border-radius)}.ax-general-button:disabled,.ax-general-button.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-clear-button{display:inline-flex;height:var(--ax-sys-size-base);align-items:center;justify-content:center;margin-left:.25rem;margin-right:.25rem;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-clear-button>button{display:flex}.ax-clear-button:hover:not(.ax-clear-button:hover:disabled,.ax-state-disabled){color:rgb(var(--ax-sys-color-on-surface),.5)}.ax-clear-button:focus:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled),.ax-clear-button:focus-visible:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled){color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-800))!important;color:rgba(var(--ax-sys-color-on-primary))!important}.ax-list{display:flex;height:100%;flex-direction:column;overflow:hidden;background-color:rgba(var(--ax-sys-color-surface));font-size:.875rem;line-height:1.25rem}@media (min-width: 768px){.ax-list{max-height:20rem}}.ax-list ax-header,.ax-list ax-footer{display:flex;align-items:center;justify-content:space-between;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))}.ax-list ax-header{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));padding:1rem;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){.ax-list ax-header{font-size:1.125rem;line-height:1.75rem}}.ax-list ax-header ax-prefix,.ax-list ax-header ax-suffix{display:flex;flex-direction:column;justify-items:start}.ax-list ax-header ax-prefix{align-items:flex-start}.ax-list ax-header ax-suffix{align-items:flex-end}.ax-list ax-footer{border-top-width:1px}.ax-list .ax-content{flex:1 1 0%;overflow-y:auto;overflow-x:hidden}.ax-list .ax-content.ax-list-items-container{height:100%;overflow-y:auto;padding-top:.5rem;padding-bottom:.5rem}.ax-list .ax-content.ax-list-items-container.ax-vertical{display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}.ax-list .ax-content.ax-list-items-container.ax-vertical.ax-divide{border-top-width:1px;border-bottom-width:1px}.ax-list .ax-content.ax-list-items-container.ax-default{cursor:pointer}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>span{display:flex;align-items:center;padding:.75rem;font-weight:500}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>ul{padding-left:.75rem;padding-right:.75rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group .ax-list-item{margin-bottom:.25rem;border-radius:var(--ax-sys-border-radius)}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item{position:relative;display:flex;height:var(--ax-sys-size-base);-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:1rem;line-height:1.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible{outline-width:2px;outline-offset:2px}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-checkbox .ax-checkbox-label{margin-inline-start:.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity))!important;color:rgba(var(--ax-sys-color-on-primary),var(--tw-text-opacity))!important}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-focus{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container .ax-list-loading-container{display:flex;justify-content:center;padding:.5rem}.ax-list .ax-search-box-container{padding:.5rem}.ax-list .ax-search-box-container.ax-state-hidden{display:none}.ax-radio{margin:0;height:1rem;min-height:1rem;min-width:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-radio:checked{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-radio:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\\\")}.ax-radio:focus-visible,.ax-radio:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-radio:disabled{cursor:not-allowed;opacity:.5}.ax-ripple{transform:scale(0);animation:ripple .5s linear;position:absolute;border-radius:9999rem!important}@keyframes ripple{to{transform:scale(4);opacity:0}}.ax-dark .ax-table thead{background-color:rgba(var(--ax-sys-color-surface))}.ax-table{width:100%;border-collapse:collapse;border-spacing:0;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));font-size:.875rem;line-height:1.25rem}.ax-table td{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:.75rem 1rem}.ax-table thead{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-surface))}.ax-table thead th{padding:.875rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}.ax-table.ax-table-alternate tbody tr:nth-child(2n){background-color:rgba(var(--ax-sys-color-lighter-surface))}.ax-table.ax-table-bordered thead th{border-top-width:0px!important}.ax-table.ax-table-bordered tbody tr:last-child td{border-bottom-width:0px!important}.ax-table.ax-table-bordered tbody tr td:last-child{border-bottom-width:0px!important}.ax-table.ax-table-bordered td,.ax-table.ax-table-bordered th{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-bordered td:first-child,.ax-table.ax-table-bordered th:first-child{border-inline-start-width:0px}.ax-table.ax-table-bordered td:last-child,.ax-table.ax-table-bordered th:last-child{border-inline-end-width:0px}@media screen and (max-width: 640px){.ax-table.ax-table-responsive{display:block;overflow-wrap:break-word;border-width:0px}.ax-table.ax-table-responsive thead{position:absolute;inset-inline-start:-100%;top:-100%}.ax-table.ax-table-responsive td{float:inline-start;clear:both;box-sizing:border-box;display:block;width:100%;padding:.375rem .625rem}.ax-table.ax-table-responsive td:last-child{border-width:0px}.ax-table.ax-table-responsive td:before{content:attr(data-label);display:block;font-weight:700}.ax-table.ax-table-responsive tr{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-responsive tr,.ax-table.ax-table-responsive tbody{float:inline-start;margin-bottom:.625rem;width:100%}}.ax-uploader-overlay-state{border-radius:inherit;pointer-events:none;position:absolute;inset-inline-start:0px;top:0;z-index:10;display:flex;height:100%;width:100%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background-color:rgba(var(--ax-sys-color-primary-200),.75);font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-sys-color-on-primary-tint));outline-style:dashed;outline-offset:-4px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ax-drop-zone>input{position:absolute;height:100%;width:100%;cursor:pointer;opacity:0}.ax-dark .ax-uploader-overlay-state{background-color:rgba(var(--ax-sys-color-primary-800),.75);color:rgba(var(--ax-sys-color-on-primary));outline-color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-input{width:100%;display:block}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-surface));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-surface),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface))}ax-conversation-input .ax-editor-reply-container{--ax-comp-editor-height: 100%;display:flex;flex-direction:column;align-items:flex-start;padding:.5rem}ax-conversation-input .ax-editor-reply-container .ax-reply-container{display:flex;justify-content:space-between;align-items:center;width:100%}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\\n\"], dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationInputComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-input', inputs: ['look', 'placeholder'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ], imports: [\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXDropdownPanelComponent,\n FormsModule,\n AXLoadingSpinnerComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXDecoratorModule,\n ], template: \"@if (actionShowState()) {\\n <div class=\\\"ax-editor-reply-container ax-editor-container ax-{{ look }}\\\">\\n @if (actionUser()) {\\n <ax-text> {{ actionUser() }}</ax-text>\\n }\\n <div class=\\\"ax-reply-container\\\">\\n <div class=\\\"ax-reply-start\\\">\\n <i [class]=\\\"actionIcon()\\\"></i>\\n <p>{{ actionContent() }}</p>\\n </div>\\n <i (click)=\\\"closeReplyHandler()\\\" class=\\\"fa-solid fa-xmark ax-cursor-pointer\\\"></i>\\n </div>\\n </div>\\n}\\n\\n<div class=\\\"ax-conversation-input ax-editor-container ax-{{ look }}\\\" [class.ax-state-recording]=\\\"recording()\\\">\\n @if (recording()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <span class=\\\"ax-record-dot\\\"></span>\\n <span>{{ recordingService.timer() }}</span>\\n </div>\\n <div class=\\\"ax-conversation-input-main-side\\\">\\n <ax-button\\n class=\\\"ax-sm\\\"\\n look=\\\"blank\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:common.actions.cancel' | translate | async\\\"\\n (onClick)=\\\"handleCancelRecordingClick()\\\"\\n ></ax-button>\\n </div>\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n <ax-button look=\\\"solid\\\" color=\\\"danger\\\" class=\\\"ax-blob ax-sm\\\" (onClick)=\\\"handleSendVoiceClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-send\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n } @else {\\n @if (hasEmoji()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-emoji\\\"></i>\\n </ax-icon>\\n <ax-dropdown-panel>\\n <ng-container>\\n <div class=\\\"ax-emoji-container\\\">\\n <div>\\u26A0\\uFE0F</div>\\n <div>\\u27A1\\uFE0F</div>\\n <div>\\uD83D\\uDD03</div>\\n <div>\\uD83D\\uDD37</div>\\n <div>\\uD83E\\uDD1A</div>\\n <div>\\uD83D\\uDE02</div>\\n <div>\\uD83D\\uDE0A</div>\\n </div>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <textarea\\n class=\\\"ax-conversation-input-main-side\\\"\\n oninput='this.style.height = \\\"\\\";this.style.height = this.scrollHeight + \\\"px\\\"'\\n type=\\\"text\\\"\\n rows=\\\"1\\\"\\n [id]=\\\"id\\\"\\n [name]=\\\"name\\\"\\n [attr.placeholder]=\\\"placeholder\\\"\\n [attr.maxlength]=\\\"maxLength()\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [tabindex]=\\\"tabIndex\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n [ngModelOptions]=\\\"{ updateOn: _updateOn }\\\"\\n (keydown)=\\\"keyDownHandler($event)\\\"\\n (keyup)=\\\"keyUpHandler($event)\\\"\\n (keypress)=\\\"keyPressHandler($event)\\\"\\n (focus)=\\\"emitOnFocusEvent($event)\\\"\\n (blur)=\\\"emitOnBlurEvent($event)\\\"\\n >\\n </textarea>\\n\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n @if (!value) {\\n @if (hasAttachment()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleAttachClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-attach\\\"></i>\\n </ax-icon>\\n </ax-button>\\n <input\\n multiple\\n #inputFile\\n [accept]=\\\"acceptFileType()\\\"\\n type=\\\"file\\\"\\n class=\\\"ax-attach-input\\\"\\n (change)=\\\"handleChangeFile($event)\\\"\\n />\\n }\\n @if (hasVoice()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleRecordClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-mic\\\"></i>\\n </ax-icon>\\n </ax-button>\\n }\\n } @else {\\n <ax-button [disabled]=\\\"isLoading()\\\" look=\\\"solid\\\" color=\\\"primary\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleSendClick()\\\">\\n @if (isLoading()) {\\n <ax-loading-spinner color=\\\"primary\\\"></ax-loading-spinner>\\n } @else {\\n @if (sendIcon()) {\\n <ng-content select=\\\"ax-icon\\\"></ng-content>\\n } @else {\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-arrow-long-up\\\"></i>\\n </ax-icon>\\n }\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n\", styles: [\".ax-action-list{display:flex;gap:.25rem}.ax-action-list.ax-action-list-horizontal{flex-direction:row}.ax-action-list.ax-action-list-horizontal ax-divider{width:0px;height:auto;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list.ax-action-list-vertical{flex-direction:column}.ax-action-list.ax-action-list-vertical .ax-action-item>div.ax-action-item-prefix ax-prefix{min-width:1rem}.ax-action-list.ax-action-list-vertical ax-divider{height:1px;width:100%}.ax-action-list ax-title{opacity:.5;display:block;font-size:.75rem;line-height:1rem;font-weight:bolder;text-transform:uppercase;padding-block:var(--ax-comp-action-item-padding-block, .25rem);padding-inline:var(--ax-comp-action-item-padding-inline, calc(var(--ax-comp-action-item-padding-inline, .875rem) / 3 * 2))}.ax-action-list ax-divider{display:block;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list ax-text{white-space:nowrap}.ax-action-list .ax-action-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;height:2.25rem;width:100%;cursor:pointer;padding-inline:var(--ax-comp-action-item-padding-inline, .875rem)}.ax-action-list .ax-action-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-prefix,.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-suffix{opacity:1}.ax-action-list .ax-action-item>div{display:flex;align-items:center;justify-content:center}.ax-action-list .ax-action-item>div.ax-action-item-prefix,.ax-action-list .ax-action-item>div.ax-action-item-suffix{gap:.5rem}.ax-action-list .ax-action-item ax-prefix{display:flex;gap:.5rem}.ax-action-list .ax-action-item ax-suffix ax-text{color:rgba(var(--ax-sys-body-text-color));opacity:.5;font-weight:lighter}.ax-action-sheet-panel{--ax-comp-action-sheet-border-radius-size: var(--ax-sys-border-radius);overflow:hidden;border-top-left-radius:var(--ax-comp-action-sheet-border-radius-size);border-top-right-radius:var(--ax-comp-action-sheet-border-radius-size);background-color:rgba(var(--ax-sys-color-surface-lowest));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);animation:1s both ax-fadeInUp;animation-duration:var(--ax-sys-transition-duration)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}@-moz-document url-prefix(){*{scrollbar-color:var(--ax-sys-scroller-thumb-color) var(--ax-sys-scroller-track-color)}}.ax-checkbox{margin:0;height:1rem;min-width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:.25rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-checkbox:checked,.ax-checkbox:indeterminate{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-checkbox:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\\\")}.ax-checkbox:indeterminate{background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIzIiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPjwvc3ZnPg==)}.ax-checkbox:focus-visible,.ax-checkbox:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-checkbox:disabled{cursor:not-allowed;opacity:.5}.ax-drop-down{display:contents}.ax-drop-down .ax-dropdown-content{display:flex;flex:1 1 0%;align-items:center;overflow-x:auto;overflow-y:hidden;font-size:.875rem;line-height:1.25rem;text-transform:capitalize}.ax-drop-down .ax-dropdown-content.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-overlay-pane{margin:.25rem 0;min-width:10rem;width:100%;height:fit-content;overflow:hidden;border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-top-left-radius:var(--ax-comp-drop-down-border-top-left-radius, var(--ax-sys-border-radius));border-top-right-radius:var(--ax-comp-drop-down-border-top-right-radius, var(--ax-sys-border-radius));border-bottom-left-radius:var(--ax-comp-drop-down-border-bottom-left-radius, var(--ax-sys-border-radius));border-bottom-right-radius:var(--ax-comp-drop-down-border-bottom-right-radius, var(--ax-sys-border-radius))}@media (min-width: 320px) and (max-width: 640px){.ax-overlay-pane{margin:0}}.ax-overlay-pane ax-header,.ax-overlay-pane ax-footer{background-color:rgba(var(--ax-sys-color-lightest-surface));padding:.75rem}.ax-overlay-pane.ax-overlay-center{height:fit-content;width:80vw;max-width:90vh}.ax-overlay-pane.ax-overlay-actionsheet{height:auto;max-height:85vh;width:100%;background-color:rgba(var(--ax-sys-color-lightest-surface))}.ax-overlay-pane.ax-overlay-actionsheet.ax-full{height:95vh;max-height:95vh}.ax-overlay-pane.ax-overlay-full{width:100vw;height:100vh}.ax-dark .ax-overlay-pane{background-color:rgba(var(--ax-sys-color-darker-surface));border-color:rgba(var(--ax-sys-color-border-darker-surface))}:root,.ax-editor-container{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-space-block-size: .5rem;--ax-comp-editor-height: var(--ax-sys-size-base);--ax-comp-editor-placeholder-space-x: .75rem;--ax-comp-editor-error-bg-color: var(--ax-sys-color-danger-light-surface);--ax-comp-editor-error-text-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-error-border-color: var(--ax-sys-color-border-danger-surface);--ax-comp-editor-error-box-shadow-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-surface);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-box-outline-width: 1px;--ax-comp-editor-box-outline-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-placeholder-opacity: .5;--ax-comp-editor-focused-border-color: var(--ax-sys-color-border-primary-surface);--ax-comp-editor-focused-box-shadow-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-border-width: 0px}.ax-editor-container{display:flex;align-items:center;overflow:hidden;width:100%;height:var(--ax-comp-editor-height);font-size:var(--ax-comp-editor-font-size);border-radius:var(--ax-comp-editor-border-radius);border-width:var(--ax-comp-editor-border-width);border-color:rgba(var(--ax-comp-editor-border-color));background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));position:relative;gap:var(--ax-comp-editor-gap);padding-inline-end:var(--ax-comp-editor-space-end-size);padding-inline-start:var(--ax-comp-editor-space-start-size);justify-content:space-between}.ax-editor-container .ax-icon{font-size:var(--ax-comp-editor-icon-font-size)}.ax-editor-container:has(>ax-prefix){padding-inline-start:0}.ax-editor-container:has(>ax-prefix)>ax-prefix{padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix)>ax-prefix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-start-size: 0px}.ax-editor-container:has(>ax-suffix){padding-inline-end:0}.ax-editor-container:has(>ax-suffix)>ax-suffix{padding-inline-end:var(--ax-comp-editor-space-end-size)}.ax-editor-container:has(>ax-suffix)>ax-suffix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-end-size: 0px}.ax-editor-container:not(.ax-state-disabled):focus-within{border-color:rgba(var(--ax-comp-editor-focused-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-style:solid;outline-color:rgba(var(--ax-comp-editor-focused-border-color))}.ax-editor-container.ax-state-error{border-color:rgba(var(--ax-comp-editor-error-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-color:rgba(var(--ax-comp-editor-error-border-color));outline-style:solid}.ax-editor-container.ax-state-error:focus-within{border-color:rgba(var(--ax-comp-editor-error-border-color))}.ax-editor-container.ax-state-error .ax-input .ax-placeholder,.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-comp-editor-error-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-flat{--ax-comp-editor-border-width: 2px;--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;border-width:0px!important;border-bottom-width:var(--ax-comp-editor-border-width)!important}.ax-editor-container.ax-fill{--ax-comp-editor-box-outline-width: 2px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-editor-container.ax-none{--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface)}.ax-editor-container .ax-editor-input{height:100%;flex:1 1 0%}.ax-editor-container .ax-editor-input .ax-input{height:100%}.ax-editor-container .ax-input{font-size:var(--ax-comp-editor-font-size);line-height:var(--ax-comp-editor-font-size);color:rgba(var(--ax-comp-editor-text-color));cursor:inherit}.ax-editor-container .ax-input .ax-placeholder,.ax-editor-container .ax-input::placeholder{font-size:inherit;font-weight:400;color:rgb(var(--ax-comp-editor-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container.ax-state-disabled{opacity:.5;cursor:not-allowed}.ax-editor-container .ax-editor-control{display:flex;height:100%;align-items:center;justify-content:center;padding-inline-start:.5rem;font-size:1.125rem;line-height:1.75rem;color:rgba(var(--ax-comp-editor-text-color))}.ax-editor-container.ax-button-icon{padding:0 .5rem}.ax-editor-container .ax-input,.ax-editor-container .ax-text-area{text-align:inherit;font-family:inherit;font-size:inherit;line-height:inherit;height:100%;width:100%;flex:1 1 0%;background-color:transparent;font-weight:inherit}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-text-area:focus{box-shadow:none}.ax-editor-container .ax-editor-button{font-size:var(--ax-comp-editor-button-font-size, var(--ax-comp-editor-font-size));height:var(--ax-comp-editor-button-height, 100%)}.ax-editor-container>ax-prefix,.ax-editor-container>ax-suffix{height:100%;max-width:fit-content}.ax-editor-container>ax-prefix ax-button,.ax-editor-container>ax-prefix ax-text,.ax-editor-container>ax-prefix ax-icon,.ax-editor-container>ax-prefix .ax-editor-container,.ax-editor-container>ax-suffix ax-button,.ax-editor-container>ax-suffix ax-text,.ax-editor-container>ax-suffix ax-icon,.ax-editor-container>ax-suffix .ax-editor-container{display:flex;height:100%;align-items:center;justify-content:center;border-radius:0}.ax-editor-container>ax-prefix ax-title,.ax-editor-container>ax-suffix ax-title{padding-left:1rem;padding-right:1rem}.ax-editor-container>ax-prefix>ax-text,.ax-editor-container>ax-suffix>ax-text{display:flex;align-items:center;justify-content:center}.ax-editor-container .ax-button{height:100%!important;border-radius:0!important}.ax-editor-container .ax-button.ax-button-icon{height:100%;width:var(--ax-comp-editor-height)}.ax-editor-container ax-popover{position:absolute}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-font-size: .75rem;--ax-comp-editor-space-start-size: .25rem;--ax-comp-editor-space-end-size: .25rem;--ax-comp-editor-button-font-size: .625rem;--ax-comp-editor-gap: .25rem;--ax-comp-editor-icon-font-size: .75rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .75rem;--ax-comp-editor-gap: .375rem;--ax-comp-editor-icon-font-size: .875rem}.ax-md .ax-editor-container,.ax-editor-container,.ax-editor-container.ax-md{--ax-comp-editor-space-start-size: .75rem;--ax-comp-editor-space-end-size: .75rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-icon-font-size: 1rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-font-size: 1.125rem;--ax-comp-editor-space-start-size: 1.125rem;--ax-comp-editor-space-end-size: 1.125rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .625rem;--ax-comp-editor-icon-font-size: 1.25rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-space-start-size: 1.5rem;--ax-comp-editor-space-end-size: 1.5rem;--ax-comp-editor-button-font-size: 1rem;--ax-comp-editor-gap: .75rem;--ax-comp-editor-icon-font-size: 1.5rem}ax-validation-rule{position:absolute}.ax-general-button{display:inline-flex;height:var(--ax-sys-size-base);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);padding-left:var(--ax-comp-general-button-padding-left, 1rem);padding-right:var(--ax-comp-general-button-padding-right, 1rem);font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-general-button:hover:not(.ax-general-button:hover:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity))}.ax-general-button:focus:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled),.ax-general-button:focus-visible:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled){color:rgba(var(--ax-sys-color-primary-700),var(--tw-text-opacity))}.ax-general-button:active:not(.ax-general-button:active:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-300),var(--tw-text-opacity))}.ax-general-button.ax-button-icon{padding-left:var(--ax-comp-general-button-padding-left, .5rem);padding-right:var(--ax-comp-general-button-padding-right, .5rem);font-size:100%}.ax-general-button.ax-button-icon>button{display:flex}.ax-general-button.ax-button-rounded{border-radius:var(--ax-sys-border-radius)}.ax-general-button:disabled,.ax-general-button.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-clear-button{display:inline-flex;height:var(--ax-sys-size-base);align-items:center;justify-content:center;margin-left:.25rem;margin-right:.25rem;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-clear-button>button{display:flex}.ax-clear-button:hover:not(.ax-clear-button:hover:disabled,.ax-state-disabled){color:rgb(var(--ax-sys-color-on-surface),.5)}.ax-clear-button:focus:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled),.ax-clear-button:focus-visible:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled){color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-800))!important;color:rgba(var(--ax-sys-color-on-primary))!important}.ax-list{display:flex;height:100%;flex-direction:column;overflow:hidden;background-color:rgba(var(--ax-sys-color-surface));font-size:.875rem;line-height:1.25rem}@media (min-width: 768px){.ax-list{max-height:20rem}}.ax-list ax-header,.ax-list ax-footer{display:flex;align-items:center;justify-content:space-between;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))}.ax-list ax-header{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));padding:1rem;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){.ax-list ax-header{font-size:1.125rem;line-height:1.75rem}}.ax-list ax-header ax-prefix,.ax-list ax-header ax-suffix{display:flex;flex-direction:column;justify-items:start}.ax-list ax-header ax-prefix{align-items:flex-start}.ax-list ax-header ax-suffix{align-items:flex-end}.ax-list ax-footer{border-top-width:1px}.ax-list .ax-content{flex:1 1 0%;overflow-y:auto;overflow-x:hidden}.ax-list .ax-content.ax-list-items-container{height:100%;overflow-y:auto;padding-top:.5rem;padding-bottom:.5rem}.ax-list .ax-content.ax-list-items-container.ax-vertical{display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}.ax-list .ax-content.ax-list-items-container.ax-vertical.ax-divide{border-top-width:1px;border-bottom-width:1px}.ax-list .ax-content.ax-list-items-container.ax-default{cursor:pointer}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>span{display:flex;align-items:center;padding:.75rem;font-weight:500}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>ul{padding-left:.75rem;padding-right:.75rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group .ax-list-item{margin-bottom:.25rem;border-radius:var(--ax-sys-border-radius)}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item{position:relative;display:flex;height:var(--ax-sys-size-base);-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:1rem;line-height:1.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible{outline-width:2px;outline-offset:2px}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-checkbox .ax-checkbox-label{margin-inline-start:.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity))!important;color:rgba(var(--ax-sys-color-on-primary),var(--tw-text-opacity))!important}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-focus{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container .ax-list-loading-container{display:flex;justify-content:center;padding:.5rem}.ax-list .ax-search-box-container{padding:.5rem}.ax-list .ax-search-box-container.ax-state-hidden{display:none}.ax-radio{margin:0;height:1rem;min-height:1rem;min-width:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-radio:checked{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-radio:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\\\")}.ax-radio:focus-visible,.ax-radio:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-radio:disabled{cursor:not-allowed;opacity:.5}.ax-ripple{transform:scale(0);animation:ripple .5s linear;position:absolute;border-radius:9999rem!important}@keyframes ripple{to{transform:scale(4);opacity:0}}.ax-dark .ax-table thead{background-color:rgba(var(--ax-sys-color-surface))}.ax-table{width:100%;border-collapse:collapse;border-spacing:0;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));font-size:.875rem;line-height:1.25rem}.ax-table td{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:.75rem 1rem}.ax-table thead{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-surface))}.ax-table thead th{padding:.875rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}.ax-table.ax-table-alternate tbody tr:nth-child(2n){background-color:rgba(var(--ax-sys-color-lighter-surface))}.ax-table.ax-table-bordered thead th{border-top-width:0px!important}.ax-table.ax-table-bordered tbody tr:last-child td{border-bottom-width:0px!important}.ax-table.ax-table-bordered tbody tr td:last-child{border-bottom-width:0px!important}.ax-table.ax-table-bordered td,.ax-table.ax-table-bordered th{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-bordered td:first-child,.ax-table.ax-table-bordered th:first-child{border-inline-start-width:0px}.ax-table.ax-table-bordered td:last-child,.ax-table.ax-table-bordered th:last-child{border-inline-end-width:0px}@media screen and (max-width: 640px){.ax-table.ax-table-responsive{display:block;overflow-wrap:break-word;border-width:0px}.ax-table.ax-table-responsive thead{position:absolute;inset-inline-start:-100%;top:-100%}.ax-table.ax-table-responsive td{float:inline-start;clear:both;box-sizing:border-box;display:block;width:100%;padding:.375rem .625rem}.ax-table.ax-table-responsive td:last-child{border-width:0px}.ax-table.ax-table-responsive td:before{content:attr(data-label);display:block;font-weight:700}.ax-table.ax-table-responsive tr{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-responsive tr,.ax-table.ax-table-responsive tbody{float:inline-start;margin-bottom:.625rem;width:100%}}.ax-uploader-overlay-state{border-radius:inherit;pointer-events:none;position:absolute;inset-inline-start:0px;top:0;z-index:10;display:flex;height:100%;width:100%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background-color:rgba(var(--ax-sys-color-primary-200),.75);font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-sys-color-on-primary-tint));outline-style:dashed;outline-offset:-4px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ax-drop-zone>input{position:absolute;height:100%;width:100%;cursor:pointer;opacity:0}.ax-dark .ax-uploader-overlay-state{background-color:rgba(var(--ax-sys-color-primary-800),.75);color:rgba(var(--ax-sys-color-on-primary));outline-color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-input{width:100%;display:block}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-surface));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-surface),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface))}ax-conversation-input .ax-editor-reply-container{--ax-comp-editor-height: 100%;display:flex;flex-direction:column;align-items:flex-start;padding:.5rem}ax-conversation-input .ax-editor-reply-container .ax-reply-container{display:flex;justify-content:space-between;align-items:center;width:100%}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\\n\"] }]\n }], propDecorators: { inputFile: [{\n type: ViewChild,\n args: ['inputFile']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1pbnB1dC9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFFVixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixF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cnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duUGFuZWxDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhSZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEFuIGlucHV0IGNvbXBvbmVudCBmb3IgZW50ZXJpbmcgY29udmVyc2F0aW9uIG1lc3NhZ2VzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2xvb2snLCAncGxhY2Vob2xkZXInXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQVhEcm9wZG93blBhbmVsQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RmlsZScpIHByb3RlY3RlZCBpbnB1dEZpbGU6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHNlbmRJY29uID0gY29udGVudENoaWxkKCdheC1pY29uJyk7XG5cbiAgcHJvdGVjdGVkIG9uQWN0aW9uQ2xvc2UgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgY29udmVyc2F0aW9uU2VydmljZSA9IGluamVjdChBWENvbnZlcnNhdGlvblNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaGF0czogU2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZVtdPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzKCk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBhY3Rpb25JY29uID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHByb3RlY3RlZCBhY3Rpb25Db250ZW50ID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHByb3RlY3RlZCBhY3Rpb25TaG93U3RhdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgYWN0aW9uVXNlciA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICBwcm90ZWN0ZWQgYWN0aW9uQ2xvc2VDYWxsYmFjayA9IHNpZ25hbDwoKSA9PiB2b2lkPigoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVwbHlDaGF0OiBTaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaW5kTWVzc2FnZSA9IHRoaXMuY2hhdHMoKS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UucmVwbHlJZCgpKTtcbiAgICByZXR1cm4gZmluZE1lc3NhZ2U7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZXRBY3Rpb25Cb3hDb250YWluZXIoaWNvbjogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIHVzZXI/OiBzdHJpbmcsIGNsb3NlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hY3Rpb25JY29uLnNldChpY29uKTtcbiAgICB0aGlzLmFjdGlvbkNvbnRlbnQuc2V0KGNvbnRlbnQpO1xuICAgIHRoaXMuYWN0aW9uU2hvd1N0YXRlLnNldCh0cnVlKTtcbiAgICB0aGlzLmFjdGlvblVzZXIuc2V0KHVzZXIpO1xuICAgIHRoaXMuYWN0aW9uQ2xvc2VDYWxsYmFjay5zZXQoY2xvc2VDYWxsYmFjayk7XG4gIH1cblxuICAvKiogTWF4aW11bSBsZW5ndGggb2YgaW5wdXQgdGV4dCAqL1xuICBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXI+KCk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiBhbiBhdHRhY2htZW50IGlzIHByZXNlbnQgKi9cbiAgaGFzQXR0YWNobWVudCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdm9pY2UgcmVjb3JkaW5nIGlzIGVuYWJsZWQgKi9cbiAgaGFzVm9pY2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBoYXNFbW9qaSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogQWNjZXB0YWJsZSBmaWxlIHR5cGVzIGZvciBhdHRhY2htZW50ICovXG4gIGFjY2VwdEZpbGVUeXBlID0gaW5wdXQ8c3RyaW5nPignKicpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqXG4gICAqIEBldmVudFxuICAgKi9cbiAgb25TZW5kQ2xpY2sgPSBvdXRwdXQ8QVhDbGlja0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gcmVjb3JkaW5nIHN0YXJ0cy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBvblN0YXJ0UmVjb3JkaW5nID0gb3V0cHV0PEFYQ2xpY2tFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHJlY29yZGluZyBpcyBjYW5jZWxlZC5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBvbkNhbmNlbFJlY29yZGluZyA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgb25FbnRlclByZXNzZWQgPSBvdXRwdXQ8QVhFdmVudD4oKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZWNvcmRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZWNvcmRpbmdTZXJ2aWNlOiBBWFJlY29yZGluZ1NlcnZpY2UgPSBpbmplY3QoQVhSZWNvcmRpbmdTZXJ2aWNlKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfdXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgPSAnY2hhbmdlJztcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyByZWNvcmRpbmcgd2hlbiB0aGUgcmVjb3JkIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHJlY29yZGluZyBzdGFydHMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVSZWNvcmRDbGljaygpIHtcbiAgICB0aGlzLnJlY29yZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5yZWNvcmRpbmdTZXJ2aWNlXG4gICAgICA/LnN0YXJ0UmVjb3JkaW5nKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXJ0UmVjb3JkaW5nLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICBkYXRhOiB7IHJlY29yZGluZzogdHJ1ZSB9LFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgdGhlIHJlY29yZGluZyBhbmQgZW1pdHMgYW4gZXZlbnQgdG8gaW5kaWNhdGUgY2FuY2VsbGF0aW9uLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2FuY2VsUmVjb3JkaW5nQ2xpY2soKSB7XG4gICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcblxuICAgIHRoaXMub25DYW5jZWxSZWNvcmRpbmcuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hpZnRTdGF0ZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQga2V5RG93bkhhbmRsZXIoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmtleSA9PT0gJ1NoaWZ0Jykge1xuICAgICAgdGhpcy5zaGlmdFN0YXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5vbktleURvd24uZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQga2V5VXBIYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdTaGlmdCcpIHtcbiAgICAgIHRoaXMuc2hpZnRTdGF0ZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLm9uS2V5VXAuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQga2V5UHJlc3NIYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIXRoaXMuc2hpZnRTdGF0ZSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vbkVudGVyUHJlc3NlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzIH0pO1xuICAgIH1cbiAgICB0aGlzLm9uS2V5UHJlc3MuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogT3BlbnMgdGhlIGZpbGUgcGlja2VyIGZvciBhdHRhY2htZW50LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQXR0YWNoQ2xpY2soKSB7XG4gICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCBmaWxlcyB3aGVuIHRoZSBmaWxlIGlucHV0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VGaWxlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25TZW5kQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzLCB0eXBlOiAnZmlsZScgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdGV4dCB2YWx1ZSBhbmQgb3B0aW9uYWwgcmVwbHlDaGF0IHdoZW4gdGhlIHNlbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZW5kQ2xpY2soKSB7XG4gICAgdGhpcy5vblNlbmRDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMudmFsdWUsIHJlcGx5Q2hhdDogdGhpcy5yZXBseUNoYXQoKSB8fCBudWxsLCB0eXBlOiAndGV4dCcgfSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWN0aW9uU2hvd1N0YXRlLnNldChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRW5kcyByZWNvcmRpbmcgYW5kIGVtaXRzIHRoZSByZWNvcmRlZCB2b2ljZSBkYXRhIHdoZW4gdGhlIHNlbmQgdm9pY2UgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZW5kVm9pY2VDbGljaygpIHtcbiAgICB0aGlzLnJlY29yZGluZ1NlcnZpY2UuZW5kUmVjb3JkaW5nKCkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMub25TZW5kQ2xpY2suZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogeyB2YWx1ZTogYywgdHlwZTogJ3ZvaWNlJyB9LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgcmVwbHkgSUQgd2hlbiBjbG9zaW5nIGEgcmVwbHkuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjbG9zZVJlcGx5SGFuZGxlcigpIHtcbiAgICB0aGlzLmFjdGlvblNob3dTdGF0ZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuYWN0aW9uQ2xvc2VDYWxsYmFjaygpO1xuICAgIHRoaXMub25BY3Rpb25DbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIkBpZiAoYWN0aW9uU2hvd1N0YXRlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWVkaXRvci1yZXBseS1jb250YWluZXIgYXgtZWRpdG9yLWNvbnRhaW5lciBheC17eyBsb29rIH19XCI+XG4gICAgQGlmIChhY3Rpb25Vc2VyKCkpIHtcbiAgICAgIDxheC10ZXh0PiB7eyBhY3Rpb25Vc2VyKCkgfX08L2F4LXRleHQ+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJheC1yZXBseS1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1yZXBseS1zdGFydFwiPlxuICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uSWNvbigpXCI+PC9pPlxuICAgICAgICA8cD57eyBhY3Rpb25Db250ZW50KCkgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpIChjbGljayk9XCJjbG9zZVJlcGx5SGFuZGxlcigpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayBheC1jdXJzb3ItcG9pbnRlclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQgYXgtZWRpdG9yLWNvbnRhaW5lciBheC17eyBsb29rIH19XCIgW2NsYXNzLmF4LXN0YXRlLXJlY29yZGluZ109XCJyZWNvcmRpbmcoKVwiPlxuICBAaWYgKHJlY29yZGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1zdGFydC1zaWRlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LXJlY29yZC1kb3RcIj48L3NwYW4+XG4gICAgICA8c3Bhbj57eyByZWNvcmRpbmdTZXJ2aWNlLnRpbWVyKCkgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1tYWluLXNpZGVcIj5cbiAgICAgIDxheC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmNvbW1vbi5hY3Rpb25zLmNhbmNlbCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNhbmNlbFJlY29yZGluZ0NsaWNrKClcIlxuICAgICAgPjwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtZW5kLXNpZGVcIj5cbiAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImF4LWJsb2IgYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVTZW5kVm9pY2VDbGljaygpXCI+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNlbmRcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICBAaWYgKGhhc0Vtb2ppKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtc3RhcnQtc2lkZVwiPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtc21cIj5cbiAgICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVtb2ppXCI+PC9pPlxuICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZW1vamktY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj7imqDvuI88L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PuKeoe+4jzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+UgzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+UtzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+kmjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+YgjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+YijwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPHRleHRhcmVhXG4gICAgICBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1tYWluLXNpZGVcIlxuICAgICAgb25pbnB1dD0ndGhpcy5zdHlsZS5oZWlnaHQgPSBcIlwiO3RoaXMuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zY3JvbGxIZWlnaHQgKyBcInB4XCInXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByb3dzPVwiMVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgdXBkYXRlT246IF91cGRhdGVPbiB9XCJcbiAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGVyKCRldmVudClcIlxuICAgICAgKGtleXVwKT1cImtleVVwSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJrZXlQcmVzc0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC90ZXh0YXJlYT5cblxuICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtZW5kLXNpZGVcIj5cbiAgICAgIEBpZiAoIXZhbHVlKSB7XG4gICAgICAgIEBpZiAoaGFzQXR0YWNobWVudCgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlQXR0YWNoQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWF0dGFjaFwiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlKClcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1hdHRhY2gtaW5wdXRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VGaWxlKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNWb2ljZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLW1pY1wiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxheC1idXR0b24gW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCIgbG9vaz1cInNvbGlkXCIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZVNlbmRDbGljaygpXCI+XG4gICAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmctc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIj48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoc2VuZEljb24oKSkge1xuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1pY29uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LWxvbmctdXBcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationMessageTypeRegistryService {\n constructor() {\n this.plugins = new Map();\n }\n register(...plugins) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n resolve(name) {\n return this.plugins.get(name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageTypeRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageTypeRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageTypeRegistryService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9zZXJ2aWNlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHdDQUF3QztJQURyRDtRQUVVLFlBQU8sR0FBMkMsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FTeEc7SUFQQyxRQUFRLENBQUMsR0FBRyxPQUFvQztRQUM5QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FUVSx3Q0FBd0M7a0hBQXhDLHdDQUF3QyxjQUQzQixNQUFNOzsyRkFDbkIsd0NBQXdDO2tCQURwRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2Uge1xuICBwcml2YXRlIHBsdWdpbnM6IE1hcDxzdHJpbmcsIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGU+ID0gbmV3IE1hcDxzdHJpbmcsIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGU+KCk7XG5cbiAgcmVnaXN0ZXIoLi4ucGx1Z2luczogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVtdKSB7XG4gICAgcGx1Z2lucy5mb3JFYWNoKChwKSA9PiB0aGlzLnBsdWdpbnMuc2V0KHAubmFtZSwgcCkpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2lucy5nZXQobmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXAvatarComponent } from '@acorex/components/avatar';\nimport { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, HostBinding, ViewEncapsulation, computed, inject, input, output, signal, viewChild, } from '@angular/core';\nimport { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';\nimport { AXConversationService } from '../services/conversation.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/menu\";\nimport * as i2 from \"@angular/common\";\n/**\n * A component for displaying individual conversation messages.\n *\n * @category Components\n */\nexport class AXConversationMessageComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.popover = viewChild('popover', ...(ngDevMode ? [{ debugName: \"popover\" }] : []));\n this.isReplyArrowShown = input(true, ...(ngDevMode ? [{ debugName: \"isReplyArrowShown\" }] : []));\n this.chatMessage = input(...(ngDevMode ? [undefined, { debugName: \"chatMessage\" }] : []));\n this.avatar = input(null, ...(ngDevMode ? [{ debugName: \"avatar\" }] : []));\n this.conversationService = inject(AXConversationService);\n this.registryService = inject(AXConversationMessageTypeRegistryService);\n this.actionButtonItemsPrivate = signal([], ...(ngDevMode ? [{ debugName: \"actionButtonItemsPrivate\" }] : []));\n this.actionButtonItemsPublic = {\n items: [],\n canceled: false,\n data: this.chatMessage(),\n };\n this.onActionMenuOpening = output();\n this.onReplyClick = output();\n this.portal = computed(() => {\n return new ComponentPortal(this.registryService.resolve(this.chatMessage().type).component);\n }, ...(ngDevMode ? [{ debugName: \"portal\" }] : []));\n this.messageType = computed(() => {\n return this.chatMessage().type;\n }, ...(ngDevMode ? [{ debugName: \"messageType\" }] : []));\n }\n get isOwn() {\n return !this.chatMessage().fromId;\n }\n handleActionClick() {\n this.actionButtonItemsPublic = {\n items: [],\n canceled: false,\n data: this.chatMessage(),\n };\n this.onActionMenuOpening.emit(this.actionButtonItemsPublic);\n if (this.actionButtonItemsPublic.canceled)\n return;\n this.actionButtonItemsPrivate.set(this.actionButtonItemsPublic.items);\n }\n _handleAttached(ref) {\n ref = ref;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.chatMessage() });\n const prefixContainer = this.getHostElement().querySelector('.ax-message-prefix');\n const suffixContainer = this.getHostElement().querySelector('.ax-message-suffix');\n prefixContainer.innerHTML = '';\n suffixContainer.innerHTML = '';\n const prefix = this.getHostElement().querySelector('ax-prefix');\n const suffix = this.getHostElement().querySelector('ax-suffix');\n if (prefix && prefixContainer) {\n prefix.style.display = 'flex';\n prefixContainer.append(prefix);\n }\n if (suffix && suffixContainer) {\n suffix.style.display = 'flex';\n suffixContainer.append(suffix);\n }\n }\n }\n handleResendClick() {\n this.popover()?.close();\n this.chatMessage().onResendClick();\n }\n handleDeleteClick() {\n this.popover()?.close();\n this.chatMessage().onDeleteClick();\n }\n replyHandler(e) {\n this.conversationService.replyId.set(e.id);\n this.onReplyClick.emit({ data: e, component: this });\n }\n get __hostClass() {\n return `${this.isOwn ? 'ax-state-own' : ''} ${!this.isOwn ? 'ax-state-other' : ''}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationMessageComponent, isStandalone: true, selector: \"ax-conversation-message\", inputs: { isReplyArrowShown: { classPropertyName: \"isReplyArrowShown\", publicName: \"isReplyArrowShown\", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: \"chatMessage\", publicName: \"chatMessage\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionMenuOpening: \"onActionMenuOpening\", onReplyClick: \"onReplyClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], viewQueries: [{ propertyName: \"popover\", first: true, predicate: [\"popover\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@if (chatMessage().fromId) {\\n @if (avatar()) {\\n <ng-container [ngTemplateOutlet]=\\\"avatar()\\\"></ng-container>\\n } @else {\\n <ax-avatar color=\\\"primary\\\" [size]=\\\"36\\\"> </ax-avatar>\\n }\\n}\\n\\n@if (isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-cursor-pointer\\\"></i>\\n}\\n\\n<div\\n class=\\\"ax-message-content\\\"\\n [class]=\\\"'ax-type-' + messageType()\\\"\\n [class.ax-state-own]=\\\"!chatMessage().fromId\\\"\\n [class.ax-state-other]=\\\"chatMessage().fromId\\\"\\n>\\n <div class=\\\"ax-action-button\\\">\\n @if (chatMessage()?.userName) {\\n <div class=\\\"ax-message-user-name\\\">\\n <ax-text>{{ chatMessage().userName }}</ax-text>\\n </div>\\n }\\n\\n @if (chatMessage()?.showActionButton) {\\n <div class=\\\"ax-message-action-button\\\">\\n <ax-menu openOn=\\\"click\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item class=\\\"ax-parent-menu-item\\\">\\n <ax-text (click)=\\\"handleActionClick()\\\">...</ax-text>\\n\\n @for (item of actionButtonItemsPrivate(); track item.text) {\\n <ax-menu-item [color]=\\\"item.color\\\" (onClick)=\\\"item.onClick(chatMessage().id)\\\">\\n <ax-text>{{ item.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"></ax-icon>\\n </ax-prefix>\\n\\n @for (innerItem of item.items; track innerItem.text) {\\n <ax-menu-item [color]=\\\"innerItem.color\\\" (onClick)=\\\"innerItem.onClick(chatMessage().id)\\\">\\n <ax-text>{{ innerItem.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"innerItem.icon\\\"></ax-icon>\\n </ax-prefix>\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n </ax-menu>\\n </div>\\n }\\n </div>\\n\\n <ng-template [cdkPortalOutlet]=\\\"portal()\\\" (attached)=\\\"_handleAttached($event)\\\"></ng-template>\\n\\n <div class=\\\"ax-chat-message-status\\\">\\n <div class=\\\"ax-message-prefix\\\"></div>\\n <div>\\n <div class=\\\"ax-message-suffix\\\"></div>\\n <span>\\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\\n </span>\\n <span>\\n @if (isOwn) {\\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-check ax-message-status\\\"></i>\\n }\\n @if (chatMessage().readTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-dobble-check ax-message-status\\\"></i>\\n }\\n }\\n </span>\\n </div>\\n </div>\\n</div>\\n\\n@if (!chatMessage().sendTime) {\\n <ax-button class=\\\"ax-resend-button ax-xs\\\" color=\\\"danger\\\" #b>\\n <ax-icon class=\\\"ax-icon ax-icon-error\\\"></ax-icon>\\n\\n <ax-popover [target]=\\\"b\\\" placement=\\\"bottom-end\\\" #popover>\\n <div class=\\\"ax-overlay-pane\\\">\\n <ax-content> </ax-content>\\n <ax-button-item-list>\\n @if (chatMessage().onResendClick) {\\n <ax-button-item text=\\\"Resend\\\" (onClick)=\\\"handleResendClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-reload ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (chatMessage().onDeleteClick) {\\n <ax-button-item text=\\\"Delete\\\" color=\\\"danger\\\" (onClick)=\\\"handleDeleteClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-clear ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </div>\\n </ax-popover>\\n </ax-button>\\n}\\n\\n@if (!isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-rotate ax-cursor-pointer\\\"></i>\\n}\\n\", styles: [\"ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\\n\"], dependencies: [{ kind: \"component\", type: AXAvatarComponent, selector: \"ax-avatar\", inputs: [\"color\", \"size\", \"shape\", \"look\"], outputs: [\"sizeChange\"] }, { kind: \"directive\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: AXPopoverComponent, selector: \"ax-popover\", inputs: [\"width\", \"disabled\", \"offsetX\", \"offsetY\", \"target\", \"placement\", \"content\", \"openOn\", \"closeOn\", \"hasBackdrop\", \"openAfter\", \"closeAfter\", \"backdropClass\", \"panelClass\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"component\", type: AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i1.AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: i1.AXMenuComponent, selector: \"ax-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"hasArrow\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message', encapsulation: ViewEncapsulation.None, imports: [\n AXAvatarComponent,\n CdkPortalOutlet,\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXPopoverComponent,\n AXDecoratorGenericComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AsyncPipe,\n AXFormatPipe,\n AXMenuModule,\n CommonModule,\n ], providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], template: \"@if (chatMessage().fromId) {\\n @if (avatar()) {\\n <ng-container [ngTemplateOutlet]=\\\"avatar()\\\"></ng-container>\\n } @else {\\n <ax-avatar color=\\\"primary\\\" [size]=\\\"36\\\"> </ax-avatar>\\n }\\n}\\n\\n@if (isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-cursor-pointer\\\"></i>\\n}\\n\\n<div\\n class=\\\"ax-message-content\\\"\\n [class]=\\\"'ax-type-' + messageType()\\\"\\n [class.ax-state-own]=\\\"!chatMessage().fromId\\\"\\n [class.ax-state-other]=\\\"chatMessage().fromId\\\"\\n>\\n <div class=\\\"ax-action-button\\\">\\n @if (chatMessage()?.userName) {\\n <div class=\\\"ax-message-user-name\\\">\\n <ax-text>{{ chatMessage().userName }}</ax-text>\\n </div>\\n }\\n\\n @if (chatMessage()?.showActionButton) {\\n <div class=\\\"ax-message-action-button\\\">\\n <ax-menu openOn=\\\"click\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item class=\\\"ax-parent-menu-item\\\">\\n <ax-text (click)=\\\"handleActionClick()\\\">...</ax-text>\\n\\n @for (item of actionButtonItemsPrivate(); track item.text) {\\n <ax-menu-item [color]=\\\"item.color\\\" (onClick)=\\\"item.onClick(chatMessage().id)\\\">\\n <ax-text>{{ item.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"></ax-icon>\\n </ax-prefix>\\n\\n @for (innerItem of item.items; track innerItem.text) {\\n <ax-menu-item [color]=\\\"innerItem.color\\\" (onClick)=\\\"innerItem.onClick(chatMessage().id)\\\">\\n <ax-text>{{ innerItem.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"innerItem.icon\\\"></ax-icon>\\n </ax-prefix>\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n </ax-menu>\\n </div>\\n }\\n </div>\\n\\n <ng-template [cdkPortalOutlet]=\\\"portal()\\\" (attached)=\\\"_handleAttached($event)\\\"></ng-template>\\n\\n <div class=\\\"ax-chat-message-status\\\">\\n <div class=\\\"ax-message-prefix\\\"></div>\\n <div>\\n <div class=\\\"ax-message-suffix\\\"></div>\\n <span>\\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\\n </span>\\n <span>\\n @if (isOwn) {\\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-check ax-message-status\\\"></i>\\n }\\n @if (chatMessage().readTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-dobble-check ax-message-status\\\"></i>\\n }\\n }\\n </span>\\n </div>\\n </div>\\n</div>\\n\\n@if (!chatMessage().sendTime) {\\n <ax-button class=\\\"ax-resend-button ax-xs\\\" color=\\\"danger\\\" #b>\\n <ax-icon class=\\\"ax-icon ax-icon-error\\\"></ax-icon>\\n\\n <ax-popover [target]=\\\"b\\\" placement=\\\"bottom-end\\\" #popover>\\n <div class=\\\"ax-overlay-pane\\\">\\n <ax-content> </ax-content>\\n <ax-button-item-list>\\n @if (chatMessage().onResendClick) {\\n <ax-button-item text=\\\"Resend\\\" (onClick)=\\\"handleResendClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-reload ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (chatMessage().onDeleteClick) {\\n <ax-button-item text=\\\"Delete\\\" color=\\\"danger\\\" (onClick)=\\\"handleDeleteClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-clear ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </div>\\n </ax-popover>\\n </ax-button>\\n}\\n\\n@if (!isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-rotate ax-cursor-pointer\\\"></i>\\n}\\n\", styles: [\"ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQThCLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pC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LENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN0RixDQUFDOzhHQXpGVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qixpb0JBRjlCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRSxDQUFDLHFLQ3ZEcEYsb3FIQXdHQSxtbkxEOURJLGlCQUFpQiwySEFDakIsZUFBZSxpSkFDZixpQkFBaUIsMlVBQ2pCLHdCQUF3QixzRUFDeEIsa0JBQWtCLG9TQUNsQiwyQkFBMkIseUxBQzNCLHlCQUF5Qiw2R0FDekIscUJBQXFCLHFNQUdyQixZQUFZLHFWQUNaLFlBQVksaU1BSFosU0FBUyx5Q0FDVCxZQUFZOzsyRkFNSCw4QkFBOEI7a0JBckIxQyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTtxQkFDYixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQzs4QkF5RjlFLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCwgQVhCdXR0b25JdGVtQ29tcG9uZW50LCBBWEJ1dHRvbkl0ZW1MaXN0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYRm9ybWF0UGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYQ29udmVyc2F0aW9uTWVudU9wZW5pbmdFdmVudCxcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlLFxuICBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBY3Rpb24sXG59IGZyb20gJy4uL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBpbmRpdmlkdWFsIGNvbnZlcnNhdGlvbiBtZXNzYWdlcy5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhckNvbXBvbmVudCxcbiAgICBDZGtQb3J0YWxPdXRsZXQsXG4gICAgQVhCdXR0b25Db21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LFxuICAgIEFYUG9wb3ZlckNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhCdXR0b25JdGVtTGlzdENvbXBvbmVudCxcbiAgICBBWEJ1dHRvbkl0ZW1Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgICBBWE1lbnVNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcG9wb3ZlciA9IHZpZXdDaGlsZDxBWFBvcG92ZXJDb21wb25lbnQ+KCdwb3BvdmVyJyk7XG5cbiAgaXNSZXBseUFycm93U2hvd24gPSBpbnB1dCh0cnVlKTtcbiAgY2hhdE1lc3NhZ2UgPSBpbnB1dDxBWENvbnZlcnNhdGlvbk1lc3NhZ2U+KCk7XG4gIGF2YXRhciA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBjb252ZXJzYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkJ1dHRvbkl0ZW1zUHJpdmF0ZSA9IHNpZ25hbDxBWENvbnZlcnNhdGlvbk1lc3NhZ2VBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIGFjdGlvbkJ1dHRvbkl0ZW1zUHVibGljOiBBWENvbnZlcnNhdGlvbk1lbnVPcGVuaW5nRXZlbnQgPSB7XG4gICAgaXRlbXM6IFtdLFxuICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICBkYXRhOiB0aGlzLmNoYXRNZXNzYWdlKCksXG4gIH07XG5cbiAgb25BY3Rpb25NZW51T3BlbmluZyA9IG91dHB1dDxBWENvbnZlcnNhdGlvbk1lbnVPcGVuaW5nRXZlbnQ+KCk7XG5cbiAgb25SZXBseUNsaWNrID0gb3V0cHV0PEFYQ2xpY2tFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgcG9ydGFsID0gY29tcHV0ZWQ8Q29tcG9uZW50UG9ydGFsPGFueT4gfCBudWxsPigoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5yZWdpc3RyeVNlcnZpY2UucmVzb2x2ZSh0aGlzLmNoYXRNZXNzYWdlKCkudHlwZSkuY29tcG9uZW50KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1lc3NhZ2VUeXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNoYXRNZXNzYWdlKCkudHlwZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdldCBpc093bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2hhdE1lc3NhZ2UoKS5mcm9tSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aW9uQ2xpY2soKSB7XG4gICAgdGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYyA9IHtcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgIGRhdGE6IHRoaXMuY2hhdE1lc3NhZ2UoKSxcbiAgICB9O1xuXG4gICAgdGhpcy5vbkFjdGlvbk1lbnVPcGVuaW5nLmVtaXQodGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYyk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYy5jYW5jZWxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5hY3Rpb25CdXR0b25JdGVtc1ByaXZhdGUuc2V0KHRoaXMuYWN0aW9uQnV0dG9uSXRlbXNQdWJsaWMuaXRlbXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVBdHRhY2hlZChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgcmVmID0gcmVmIGFzIENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgICBpZiAocmVmLmluc3RhbmNlICYmIGlzQnJvd3NlcigpKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlZi5pbnN0YW5jZSwgeyBtZXNzYWdlOiB0aGlzLmNoYXRNZXNzYWdlKCkgfSk7XG5cbiAgICAgIGNvbnN0IHByZWZpeENvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtbWVzc2FnZS1wcmVmaXgnKTtcbiAgICAgIGNvbnN0IHN1ZmZpeENvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtbWVzc2FnZS1zdWZmaXgnKTtcbiAgICAgIHByZWZpeENvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcbiAgICAgIHN1ZmZpeENvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcblxuICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXByZWZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXN1ZmZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgICBpZiAocHJlZml4ICYmIHByZWZpeENvbnRhaW5lcikge1xuICAgICAgICBwcmVmaXguc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgcHJlZml4Q29udGFpbmVyLmFwcGVuZChwcmVmaXgpO1xuICAgICAgfVxuICAgICAgaWYgKHN1ZmZpeCAmJiBzdWZmaXhDb250YWluZXIpIHtcbiAgICAgICAgc3VmZml4LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgIHN1ZmZpeENvbnRhaW5lci5hcHBlbmQoc3VmZml4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUmVzZW5kQ2xpY2soKSB7XG4gICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgdGhpcy5jaGF0TWVzc2FnZSgpLm9uUmVzZW5kQ2xpY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEZWxldGVDbGljaygpIHtcbiAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgICB0aGlzLmNoYXRNZXNzYWdlKCkub25EZWxldGVDbGljaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcGx5SGFuZGxlcihlOiBBWENvbnZlcnNhdGlvbk1lc3NhZ2UpIHtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UucmVwbHlJZC5zZXQoZS5pZCk7XG4gICAgdGhpcy5vblJlcGx5Q2xpY2suZW1pdCh7IGRhdGE6IGUsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pc093biA/ICdheC1zdGF0ZS1vd24nIDogJyd9ICR7IXRoaXMuaXNPd24gPyAnYXgtc3RhdGUtb3RoZXInIDogJyd9YDtcbiAgfVxufVxuIiwiQGlmIChjaGF0TWVzc2FnZSgpLmZyb21JZCkge1xuICBAaWYgKGF2YXRhcigpKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhdmF0YXIoKVwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8YXgtYXZhdGFyIGNvbG9yPVwicHJpbWFyeVwiIFtzaXplXT1cIjM2XCI+IDwvYXgtYXZhdGFyPlxuICB9XG59XG5cbkBpZiAoaXNPd24gJiYgaXNSZXBseUFycm93U2hvd24oKSkge1xuICA8aSAoY2xpY2spPVwicmVwbHlIYW5kbGVyKGNoYXRNZXNzYWdlKCkpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1yZXBseSBheC1jdXJzb3ItcG9pbnRlclwiPjwvaT5cbn1cblxuPGRpdlxuICBjbGFzcz1cImF4LW1lc3NhZ2UtY29udGVudFwiXG4gIFtjbGFzc109XCInYXgtdHlwZS0nICsgbWVzc2FnZVR5cGUoKVwiXG4gIFtjbGFzcy5heC1zdGF0ZS1vd25dPVwiIWNoYXRNZXNzYWdlKCkuZnJvbUlkXCJcbiAgW2NsYXNzLmF4LXN0YXRlLW90aGVyXT1cImNoYXRNZXNzYWdlKCkuZnJvbUlkXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF4LWFjdGlvbi1idXR0b25cIj5cbiAgICBAaWYgKGNoYXRNZXNzYWdlKCk/LnVzZXJOYW1lKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS11c2VyLW5hbWVcIj5cbiAgICAgICAgPGF4LXRleHQ+e3sgY2hhdE1lc3NhZ2UoKS51c2VyTmFtZSB9fTwvYXgtdGV4dD5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoY2hhdE1lc3NhZ2UoKT8uc2hvd0FjdGlvbkJ1dHRvbikge1xuICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2UtYWN0aW9uLWJ1dHRvblwiPlxuICAgICAgICA8YXgtbWVudSBvcGVuT249XCJjbGlja1wiIFtoYXNBcnJvd109XCJmYWxzZVwiPlxuICAgICAgICAgIDxheC1tZW51LWl0ZW0gY2xhc3M9XCJheC1wYXJlbnQtbWVudS1pdGVtXCI+XG4gICAgICAgICAgICA8YXgtdGV4dCAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soKVwiPi4uLjwvYXgtdGV4dD5cblxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhY3Rpb25CdXR0b25JdGVtc1ByaXZhdGUoKTsgdHJhY2sgaXRlbS50ZXh0KSB7XG4gICAgICAgICAgICAgIDxheC1tZW51LWl0ZW0gW2NvbG9yXT1cIml0ZW0uY29sb3JcIiAob25DbGljayk9XCJpdGVtLm9uQ2xpY2soY2hhdE1lc3NhZ2UoKS5pZClcIj5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cblxuICAgICAgICAgICAgICAgIEBmb3IgKGlubmVySXRlbSBvZiBpdGVtLml0ZW1zOyB0cmFjayBpbm5lckl0ZW0udGV4dCkge1xuICAgICAgICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSBbY29sb3JdPVwiaW5uZXJJdGVtLmNvbG9yXCIgKG9uQ2xpY2spPVwiaW5uZXJJdGVtLm9uQ2xpY2soY2hhdE1lc3NhZ2UoKS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQ+e3sgaW5uZXJJdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaW5uZXJJdGVtLmljb25cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgPC9heC1tZW51PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJfaGFuZGxlQXR0YWNoZWQoJGV2ZW50KVwiPjwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtbWVzc2FnZS1zdGF0dXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1wcmVmaXhcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2Utc3VmZml4XCI+PC9kaXY+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgY2hhdE1lc3NhZ2UoKS5zZW5kVGltZSB8IGZvcm1hdDogJ2RhdGV0aW1lJyA6ICdISDptbScgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4+XG4gICAgICAgIEBpZiAoaXNPd24pIHtcbiAgICAgICAgICBAaWYgKGNoYXRNZXNzYWdlKCkuZGVsaXZlclRpbWUgJiYgY2hhdE1lc3NhZ2UoKS5zZW5kVGltZSkge1xuICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2hhdE1lc3NhZ2UoKS5yZWFkVGltZSAmJiBjaGF0TWVzc2FnZSgpLnNlbmRUaW1lKSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb2JibGUtY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoIWNoYXRNZXNzYWdlKCkuc2VuZFRpbWUpIHtcbiAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXJlc2VuZC1idXR0b24gYXgteHNcIiBjb2xvcj1cImRhbmdlclwiICNiPlxuICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVycm9yXCI+PC9heC1pY29uPlxuXG4gICAgPGF4LXBvcG92ZXIgW3RhcmdldF09XCJiXCIgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiICNwb3BvdmVyPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgICAgICA8YXgtY29udGVudD4gPC9heC1jb250ZW50PlxuICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICBAaWYgKGNoYXRNZXNzYWdlKCkub25SZXNlbmRDbGljaykge1xuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJSZXNlbmRcIiAob25DbGljayk9XCJoYW5kbGVSZXNlbmRDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXJlbG9hZCBheC1ib2xkXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjaGF0TWVzc2FnZSgpLm9uRGVsZXRlQ2xpY2spIHtcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiRGVsZXRlXCIgY29sb3I9XCJkYW5nZXJcIiAob25DbGljayk9XCJoYW5kbGVEZWxldGVDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsZWFyIGF4LWJvbGRcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9heC1wb3BvdmVyPlxuICA8L2F4LWJ1dHRvbj5cbn1cblxuQGlmICghaXNPd24gJiYgaXNSZXBseUFycm93U2hvd24oKSkge1xuICA8aSAoY2xpY2spPVwicmVwbHlIYW5kbGVyKGNoYXRNZXNzYWdlKCkpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1yZXBseSBheC1yb3RhdGUgYXgtY3Vyc29yLXBvaW50ZXJcIj48L2k+XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationMessageAction {\n}\nexport class AXConversationMenuOpeningEvent {\n constructor() {\n this.canceled = false;\n }\n}\nexport class AXConversationMessageBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageBaseComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageBaseComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUEyQmpELE1BQU0sT0FBZ0IsMkJBQTJCO0NBTWhEO0FBRUQsTUFBTSxPQUFPLDhCQUE4QjtJQUEzQztRQUVFLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFFbkIsQ0FBQztDQUFBO0FBR0QsTUFBTSxPQUFPLGtDQUFrQzs4R0FBbEMsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb21wb25lbnQ6IFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWENvbnZlcnNhdGlvbk1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNlbmRUaW1lOiBEYXRlIHwgbnVsbDtcbiAgZGVsaXZlclRpbWU/OiBEYXRlO1xuICByZWFkVGltZT86IERhdGU7XG4gIHJlcGx5VG8/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbiAgY29udGVudDogYW55O1xuICBmcm9tSWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb25SZXNlbmRDbGljaz86ICgpID0+IHZvaWQ7XG4gIG9uRGVsZXRlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkRvd25sb2FkQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkNhbmNlbENsaWNrPzogKCkgPT4gdm9pZDtcbiAgc2hvd0FjdGlvbkJ1dHRvbj86IGJvb2xlYW47XG4gIHVzZXJOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhDb252ZXJzYXRpb25NZXNzYWdlQWN0aW9uIHtcbiAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBpdGVtcz86IEFYQ29udmVyc2F0aW9uTWVzc2FnZUFjdGlvbltdO1xufVxuXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25NZW51T3BlbmluZ0V2ZW50IHtcbiAgaXRlbXM6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUFjdGlvbltdO1xuICBjYW5jZWxlZCA9IGZhbHNlO1xuICBkYXRhOiBBWENvbnZlcnNhdGlvbk1lc3NhZ2U7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IHtcbiAgbWVzc2FnZTogQVhDb252ZXJzYXRpb25NZXNzYWdlO1xufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, Renderer2, ViewEncapsulation, afterNextRender, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * Component for displaying audio messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationMessageAudioComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n this.rendrer = inject(Renderer2);\n /**\n * @ignore\n */\n this.audioState = signal('paused', ...(ngDevMode ? [{ debugName: \"audioState\" }] : []));\n /**\n * @ignore\n */\n // audioTag = viewChild<ElementRef<HTMLAudioElement>>('a');\n this.audioTag = signal(new Audio(), ...(ngDevMode ? [{ debugName: \"audioTag\" }] : []));\n /**\n * @ignore\n */\n this.audioRate = signal(1, ...(ngDevMode ? [{ debugName: \"audioRate\" }] : []));\n /**\n * @ignore\n */\n this.currentTime = signal(0, ...(ngDevMode ? [{ debugName: \"currentTime\" }] : []));\n /**\n * @ignore\n */\n this.duration = signal(0, ...(ngDevMode ? [{ debugName: \"duration\" }] : []));\n /**\n * @ignore\n */\n this.currentTimeFormat = signal(0, ...(ngDevMode ? [{ debugName: \"currentTimeFormat\" }] : []));\n /**\n * @ignore\n */\n this.durationFormat = signal(0, ...(ngDevMode ? [{ debugName: \"durationFormat\" }] : []));\n afterNextRender(() => {\n this.audioTag().autoplay = false;\n this.audioTag().src = this.message.content;\n this.rendrer.listen(this.audioTag(), 'ended', this.endedFunction.bind(this));\n this.rendrer.listen(this.audioTag(), 'durationchange', this.durationchangeFunction.bind(this));\n this.rendrer.listen(this.audioTag(), 'timeupdate', this.timeupdateFunction.bind(this));\n });\n }\n /**\n * @ignore\n */\n ngOnDestroy() {\n if (this.endedEvent) {\n this.endedEvent();\n }\n if (this.durationchangeEvent) {\n this.durationchangeEvent();\n }\n if (this.timeupdateEvent) {\n this.timeupdateEvent();\n }\n }\n /**\n * @ignore\n */\n endedFunction() {\n this.audioState.set('paused');\n this.audioTag().pause();\n this.audioTag().currentTime = 0;\n this.currentTime.set(0);\n }\n /**\n * @ignore\n */\n durationchangeFunction() {\n if (this.audioTag().duration === Infinity)\n return;\n this.duration.set(this.audioTag().duration);\n this.durationFormat.set(Math.ceil(this.audioTag().duration) * 1000);\n }\n /**\n * @ignore\n */\n timeupdateFunction() {\n this.currentTime.set(this.audioTag().currentTime);\n this.currentTimeFormat.set(Math.ceil(this.audioTag().currentTime * 1000));\n }\n /**\n * Seeks to the specified time and resumes audio playback.\n *\n * @param e - Time in seconds to seek to.\n * @ignore\n */\n clickHandler(e) {\n this.audioTag().currentTime = e;\n }\n /**\n * Pauses the audio and updates the state to 'paused'.\n * @ignore\n */\n handlePauseClick() {\n this.audioState.set('paused');\n this.audioTag().pause();\n }\n /**\n * Plays the audio and updates the state to 'playing'.\\\n * @ignore\n */\n handlePlayClick() {\n this.audioState.set('playing');\n this.audioTag().play();\n }\n /**\n * Toggles the playback rate of the audio between 1x, 1.5x, and 2x.\n * @ignore\n */\n handleRateClick() {\n if (this.audioRate() === 1) {\n this.audioRate.set(1.5);\n this.audioTag().playbackRate = 1.5;\n }\n else if (this.audioRate() === 1.5) {\n this.audioRate.set(2);\n this.audioTag().playbackRate = 2;\n }\n else if (this.audioRate() === 2) {\n this.audioRate.set(1);\n this.audioTag().playbackRate = 1;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationMessageAudioComponent, isStandalone: true, selector: \"ax-conversation-message-audio\", providers: [{ provide: AXComponent, useExisting: AXConversationMessageAudioComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n <div class=\\\"ax-time-rate\\\">\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ durationFormat() | format: 'time-duration' | async }}\\n }\\n }\\n <ax-button\\n color=\\\"primary\\\"\\n look=\\\"solid\\\"\\n text=\\\"{{ audioRate() }}X\\\"\\n class=\\\"ax-audio-speed\\\"\\n (click)=\\\"handleRateClick()\\\"\\n ></ax-button>\\n </div>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n }\\n</div>\\n<ax-range-slider\\n class=\\\"ax-modify-bgSlider\\\"\\n (ngModelChange)=\\\"clickHandler($event)\\\"\\n [max]=\\\"duration()\\\"\\n [min]=\\\"0\\\"\\n mode=\\\"single\\\"\\n [ngModel]=\\\"currentTime()\\\"\\n color=\\\"primary\\\"\\n>\\n</ax-range-slider>\\n\", styles: [\"ax-conversation-message-audio{display:flex}ax-conversation-message-audio .ax-time-rate .ax-audio-speed{margin-inline-start:.3rem;border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem;padding:0}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageAudioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, imports: [\n AXDecoratorGenericComponent,\n AXButtonComponent,\n AXRangeSliderComponent,\n FormsModule,\n AsyncPipe,\n AXFormatPipe,\n ], providers: [{ provide: AXComponent, useExisting: AXConversationMessageAudioComponent }], template: \"<ax-prefix>\\n <div class=\\\"ax-time-rate\\\">\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ durationFormat() | format: 'time-duration' | async }}\\n }\\n }\\n <ax-button\\n color=\\\"primary\\\"\\n look=\\\"solid\\\"\\n text=\\\"{{ audioRate() }}X\\\"\\n class=\\\"ax-audio-speed\\\"\\n (click)=\\\"handleRateClick()\\\"\\n ></ax-button>\\n </div>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n }\\n</div>\\n<ax-range-slider\\n class=\\\"ax-modify-bgSlider\\\"\\n (ngModelChange)=\\\"clickHandler($event)\\\"\\n [max]=\\\"duration()\\\"\\n [min]=\\\"0\\\"\\n mode=\\\"single\\\"\\n [ngModel]=\\\"currentTime()\\\"\\n color=\\\"primary\\\"\\n>\\n</ax-range-slider>\\n\", styles: [\"ax-conversation-message-audio{display:flex}ax-conversation-message-audio .ax-time-rate .ax-audio-speed{margin-inline-start:.3rem;border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem;padding:0}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFOUU7Ozs7R0FJRztBQWdCSCxNQUFNLE9B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QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7OEdBdkpVLG1DQUFtQztrR0FBbkMsbUNBQW1DLDRFQUZuQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyxpREM1QnpGLDJxQ0E4Q0EseWpCRHpCSSwyQkFBMkIseUxBQzNCLGlCQUFpQiwyVUFDakIsc0JBQXNCLDJRQUN0QixXQUFXLDBWQUNYLFNBQVMseUNBQ1QsWUFBWTs7MkZBSUgsbUNBQW1DO2tCQWYvQyxTQUFTOytCQUNFLCtCQUErQixpQkFHMUIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCwyQkFBMkI7d0JBQzNCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsWUFBWTtxQkFDYixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbiwgYWZ0ZXJOZXh0UmVuZGVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYXVkaW8gbWVzc2FnZXMgaW4gYSBjb252ZXJzYXRpb24uXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUF1ZGlvQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZW5kcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGF1ZGlvU3RhdGUgPSBzaWduYWw8J3BsYXlpbmcnIHwgJ3BhdXNlZCc+KCdwYXVzZWQnKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIGF1ZGlvVGFnID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEF1ZGlvRWxlbWVudD4+KCdhJyk7XG4gIHByb3RlY3RlZCBhdWRpb1RhZyA9IHNpZ25hbChuZXcgQXVkaW8oKSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXVkaW9SYXRlID0gc2lnbmFsKDEpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lRm9ybWF0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uRm9ybWF0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGVuZGVkRXZlbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZHVyYXRpb25jaGFuZ2VFdmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB0aW1ldXBkYXRlRXZlbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmF1ZGlvVGFnKCkuYXV0b3BsYXkgPSBmYWxzZTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5zcmMgPSB0aGlzLm1lc3NhZ2UuY29udGVudDtcbiAgICAgIHRoaXMucmVuZHJlci5saXN0ZW4odGhpcy5hdWRpb1RhZygpLCAnZW5kZWQnLCB0aGlzLmVuZGVkRnVuY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLnJlbmRyZXIubGlzdGVuKHRoaXMuYXVkaW9UYWcoKSwgJ2R1cmF0aW9uY2hhbmdlJywgdGhpcy5kdXJhdGlvbmNoYW5nZUZ1bmN0aW9uLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZW5kcmVyLmxpc3Rlbih0aGlzLmF1ZGlvVGFnKCksICd0aW1ldXBkYXRlJywgdGhpcy50aW1ldXBkYXRlRnVuY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuZGVkRXZlbnQpIHtcbiAgICAgIHRoaXMuZW5kZWRFdmVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kdXJhdGlvbmNoYW5nZUV2ZW50KSB7XG4gICAgICB0aGlzLmR1cmF0aW9uY2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGltZXVwZGF0ZUV2ZW50KSB7XG4gICAgICB0aGlzLnRpbWV1cGRhdGVFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGVuZGVkRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGF1c2VkJyk7XG4gICAgdGhpcy5hdWRpb1RhZygpLnBhdXNlKCk7XG4gICAgdGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lID0gMDtcbiAgICB0aGlzLmN1cnJlbnRUaW1lLnNldCgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uY2hhbmdlRnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuYXVkaW9UYWcoKS5kdXJhdGlvbiA9PT0gSW5maW5pdHkpIHJldHVybjtcbiAgICB0aGlzLmR1cmF0aW9uLnNldCh0aGlzLmF1ZGlvVGFnKCkuZHVyYXRpb24pO1xuICAgIHRoaXMuZHVyYXRpb25Gb3JtYXQuc2V0KE1hdGguY2VpbCh0aGlzLmF1ZGlvVGFnKCkuZHVyYXRpb24pICogMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB0aW1ldXBkYXRlRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50VGltZS5zZXQodGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lKTtcbiAgICB0aGlzLmN1cnJlbnRUaW1lRm9ybWF0LnNldChNYXRoLmNlaWwodGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lICogMTAwMCkpO1xuICB9XG4gIC8qKlxuICAgKiBTZWVrcyB0byB0aGUgc3BlY2lmaWVkIHRpbWUgYW5kIHJlc3VtZXMgYXVkaW8gcGxheWJhY2suXG4gICAqXG4gICAqIEBwYXJhbSBlIC0gVGltZSBpbiBzZWNvbmRzIHRvIHNlZWsgdG8uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjbGlja0hhbmRsZXIoZTogYW55KSB7XG4gICAgdGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lID0gZSBhcyBudW1iZXI7XG4gIH1cblxuICAvKipcbiAgICogUGF1c2VzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgdG8gJ3BhdXNlZCcuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVQYXVzZUNsaWNrKCkge1xuICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5wYXVzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYXlzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgdG8gJ3BsYXlpbmcnLlxcXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVQbGF5Q2xpY2soKSB7XG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGxheWluZycpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5KCk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgcGxheWJhY2sgcmF0ZSBvZiB0aGUgYXVkaW8gYmV0d2VlbiAxeCwgMS41eCwgYW5kIDJ4LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmF0ZUNsaWNrKCkge1xuICAgIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAxKSB7XG4gICAgICB0aGlzLmF1ZGlvUmF0ZS5zZXQoMS41KTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5YmFja1JhdGUgPSAxLjU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAxLjUpIHtcbiAgICAgIHRoaXMuYXVkaW9SYXRlLnNldCgyKTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5YmFja1JhdGUgPSAyO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hdWRpb1JhdGUoKSA9PT0gMikge1xuICAgICAgdGhpcy5hdWRpb1JhdGUuc2V0KDEpO1xuICAgICAgdGhpcy5hdWRpb1RhZygpLnBsYXliYWNrUmF0ZSA9IDE7XG4gICAgfVxuICB9XG59XG4iLCI8YXgtcHJlZml4PlxuICA8ZGl2IGNsYXNzPVwiYXgtdGltZS1yYXRlXCI+XG4gICAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgICBAY2FzZSAoJ3BhdXNlZCcpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBjYXNlICgncGxheWluZycpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAge3sgZHVyYXRpb25Gb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICB9XG4gICAgPGF4LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICB0ZXh0PVwie3sgYXVkaW9SYXRlKCkgfX1YXCJcbiAgICAgIGNsYXNzPVwiYXgtYXVkaW8tc3BlZWRcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJhdGVDbGljaygpXCJcbiAgICA+PC9heC1idXR0b24+XG4gIDwvZGl2PlxuPC9heC1wcmVmaXg+XG48ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRyb2xsZXJcIj5cbiAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgQGNhc2UgKCdwbGF5aW5nJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGF1c2VDbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXBhdXNlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBjYXNlICgncGF1c2VkJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGxheUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGxheVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtbW9kaWZ5LWJnU2xpZGVyXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiY2xpY2tIYW5kbGVyKCRldmVudClcIlxuICBbbWF4XT1cImR1cmF0aW9uKClcIlxuICBbbWluXT1cIjBcIlxuICBtb2RlPVwic2luZ2xlXCJcbiAgW25nTW9kZWxdPVwiY3VycmVudFRpbWUoKVwiXG4gIGNvbG9yPVwicHJpbWFyeVwiXG4+XG48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective } from '@acorex/cdk/virtual-scroll';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input, output, } from '@angular/core';\nimport { AXConversationMessageComponent } from '../conversation-message/conversation-message.component';\nimport { AXConversationService } from '../services/conversation.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Displays the conversation view with messages and interactions.\n *\n * @category Components\n */\nexport class AXConversationViewComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.conversationService = inject(AXConversationService);\n this.onScrollEnd = output();\n this.chatBoxHeight = input('30vh', ...(ngDevMode ? [{ debugName: \"chatBoxHeight\" }] : []));\n this.isReplyArrowShown = input(true, ...(ngDevMode ? [{ debugName: \"isReplyArrowShown\" }] : []));\n this.onActionMenuOpening = output();\n this.onAction = output();\n this.onReplyClick = output();\n this.avatar = input(null, ...(ngDevMode ? [{ debugName: \"avatar\" }] : []));\n }\n updatePrevItems(item) {\n this.conversationService.chats.update((prev) => [...item, ...prev]);\n }\n callForUpdate() {\n this.onScrollEnd.emit({ component: this });\n }\n addNewItem(item) {\n this.conversationService.chats.update((prev) => [...prev, item]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationViewComponent, isStandalone: true, selector: \"ax-conversation-view\", inputs: { chatBoxHeight: { classPropertyName: \"chatBoxHeight\", publicName: \"chatBoxHeight\", isSignal: true, isRequired: false, transformFunction: null }, isReplyArrowShown: { classPropertyName: \"isReplyArrowShown\", publicName: \"isReplyArrowShown\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onScrollEnd: \"onScrollEnd\", onActionMenuOpening: \"onActionMenuOpening\", onAction: \"onAction\", onReplyClick: \"onReplyClick\" }, providers: [{ provide: AXComponent, useExisting: AXConversationViewComponent }], usesInheritance: true, ngImport: i0, template: \"<div axVirtualScrollingContainer (ScrollEnd)=\\\"callForUpdate()\\\" [height]=\\\"chatBoxHeight()\\\">\\n @for (item of conversationService.chats(); track item.id) {\\n <ax-conversation-message\\n [@fadeIn]\\n (onReplyClick)=\\\"onReplyClick.emit($event)\\\"\\n [avatar]=\\\"avatar()\\\"\\n (onActionMenuOpening)=\\\"onActionMenuOpening.emit($event)\\\"\\n [isReplyArrowShown]=\\\"isReplyArrowShown()\\\"\\n axVirtualScrollingItem\\n [chatMessage]=\\\"item\\\"\\n ></ax-conversation-message>\\n }\\n</div>\\n\", styles: [\"ax-conversation-view{display:block}ax-conversation-view .ax-conversation-container{overflow-y:auto;height:100%}\\n\"], dependencies: [{ kind: \"directive\", type: AXVirtualScrollingContainerDirective, selector: \"[axVirtualScrollingContainer]\", inputs: [\"height\"], outputs: [\"ScrollEnd\"] }, { kind: \"component\", type: AXConversationMessageComponent, selector: \"ax-conversation-message\", inputs: [\"isReplyArrowShown\", \"chatMessage\", \"avatar\"], outputs: [\"onActionMenuOpening\", \"onReplyClick\"] }, { kind: \"directive\", type: AXVirtualScrollingItemDirective, selector: \"[axVirtualScrollingItem]\" }], animations: [\n trigger('fadeIn', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms ease-out', style({ opacity: 1 }))]),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXVirtualScrollingContainerDirective, AXConversationMessageComponent, AXVirtualScrollingItemDirective], providers: [{ provide: AXComponent, useExisting: AXConversationViewComponent }], animations: [\n trigger('fadeIn', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms ease-out', style({ opacity: 1 }))]),\n ]),\n ], template: \"<div axVirtualScrollingContainer (ScrollEnd)=\\\"callForUpdate()\\\" [height]=\\\"chatBoxHeight()\\\">\\n @for (item of conversationService.chats(); track item.id) {\\n <ax-conversation-message\\n [@fadeIn]\\n (onReplyClick)=\\\"onReplyClick.emit($event)\\\"\\n [avatar]=\\\"avatar()\\\"\\n (onActionMenuOpening)=\\\"onActionMenuOpening.emit($event)\\\"\\n [isReplyArrowShown]=\\\"isReplyArrowShown()\\\"\\n axVirtualScrollingItem\\n [chatMessage]=\\\"item\\\"\\n ></ax-conversation-message>\\n }\\n</div>\\n\", styles: [\"ax-conversation-view{display:block}ax-conversation-view .ax-conversation-container{overflow-y:auto;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi12aWV3L2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsV0FBVyxFQUFXLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXpFOzs7O0dBSUc7QUFlSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQWRoRTs7UUFlWSx3QkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU5RCxnQkFBVyxHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRWhDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLE1BQU0seURBQUMsQ0FBQztRQUV0QyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSw2REFBQyxDQUFDO1FBRWhDLHdCQUFtQixHQUFHLE1BQU0sRUFBa0MsQ0FBQztRQUUvRCxhQUFRLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBRS9DLGlCQUFZLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBRXRDLFdBQU0sR0FBRyxLQUFLLENBQW1CLElBQUksa0RBQUMsQ0FBQztLQWF4QztJQVhDLGVBQWUsQ0FBQyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs4R0EzQlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK25CQVAzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxpREM3QmpGLGdnQkFhQSwyS0RlWSxvQ0FBb0Msc0hBQUUsOEJBQThCLDhLQUFFLCtCQUErQix1REFFbkc7WUFDVixPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDO1NBQ0g7OzJGQUVVLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLG9DQUFvQyxFQUFFLDhCQUE4QixFQUFFLCtCQUErQixDQUFDLGFBQ3JHLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNkJBQTZCLEVBQUUsQ0FBQyxjQUNuRTt3QkFDVixPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNoQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDaEcsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnQsIEFYRXZlbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFZpcnR1YWxTY3JvbGxpbmdDb250YWluZXJEaXJlY3RpdmUsIEFYVmlydHVhbFNjcm9sbGluZ0l0ZW1EaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L2Nkay92aXJ0dWFsLXNjcm9sbCc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25BY3Rpb25FdmVudCB9IGZyb20gJy4uL2NsYXNzZXMvZXZlbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZW51T3BlbmluZ0V2ZW50IH0gZnJvbSAnLi4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUgY29udmVyc2F0aW9uIHZpZXcgd2l0aCBtZXNzYWdlcyBhbmQgaW50ZXJhY3Rpb25zLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWFZpcnR1YWxTY3JvbGxpbmdDb250YWluZXJEaXJlY3RpdmUsIEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCwgQVhWaXJ0dWFsU2Nyb2xsaW5nSXRlbURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQgfV0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW4nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKCczMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGNvbnZlcnNhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhDb252ZXJzYXRpb25TZXJ2aWNlKTtcblxuICBvblNjcm9sbEVuZCA9IG91dHB1dDxBWEV2ZW50PigpO1xuXG4gIGNoYXRCb3hIZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCczMHZoJyk7XG5cbiAgaXNSZXBseUFycm93U2hvd24gPSBpbnB1dCh0cnVlKTtcblxuICBvbkFjdGlvbk1lbnVPcGVuaW5nID0gb3V0cHV0PEFYQ29udmVyc2F0aW9uTWVudU9wZW5pbmdFdmVudD4oKTtcblxuICBvbkFjdGlvbiA9IG91dHB1dDxBWENvbnZlcnNhdGlvbkFjdGlvbkV2ZW50PigpO1xuXG4gIG9uUmVwbHlDbGljayA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgYXZhdGFyID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgdXBkYXRlUHJldkl0ZW1zKGl0ZW06IGFueVtdKSB7XG4gICAgdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzLnVwZGF0ZSgocHJldikgPT4gWy4uLml0ZW0sIC4uLnByZXZdKTtcbiAgfVxuXG4gIGNhbGxGb3JVcGRhdGUoKSB7XG4gICAgdGhpcy5vblNjcm9sbEVuZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG5cbiAgYWRkTmV3SXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UuY2hhdHMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgaXRlbV0pO1xuICB9XG59XG4iLCI8ZGl2IGF4VmlydHVhbFNjcm9sbGluZ0NvbnRhaW5lciAoU2Nyb2xsRW5kKT1cImNhbGxGb3JVcGRhdGUoKVwiIFtoZWlnaHRdPVwiY2hhdEJveEhlaWdodCgpXCI+XG4gIEBmb3IgKGl0ZW0gb2YgY29udmVyc2F0aW9uU2VydmljZS5jaGF0cygpOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgPGF4LWNvbnZlcnNhdGlvbi1tZXNzYWdlXG4gICAgICBbQGZhZGVJbl1cbiAgICAgIChvblJlcGx5Q2xpY2spPVwib25SZXBseUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbYXZhdGFyXT1cImF2YXRhcigpXCJcbiAgICAgIChvbkFjdGlvbk1lbnVPcGVuaW5nKT1cIm9uQWN0aW9uTWVudU9wZW5pbmcuZW1pdCgkZXZlbnQpXCJcbiAgICAgIFtpc1JlcGx5QXJyb3dTaG93bl09XCJpc1JlcGx5QXJyb3dTaG93bigpXCJcbiAgICAgIGF4VmlydHVhbFNjcm9sbGluZ0l0ZW1cbiAgICAgIFtjaGF0TWVzc2FnZV09XCJpdGVtXCJcbiAgICA+PC9heC1jb252ZXJzYXRpb24tbWVzc2FnZT5cbiAgfVxuPC9kaXY+XG4iXX0=","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ViewEncapsulation, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Component for displaying file messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationFileMessageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this.fileState = signal('ready', ...(ngDevMode ? [{ debugName: \"fileState\" }] : []));\n /**\n * @ignore\n */\n this.fileSize = signal(null, ...(ngDevMode ? [{ debugName: \"fileSize\" }] : []));\n /**\n * @ignore\n */\n this.fileName = signal('', ...(ngDevMode ? [{ debugName: \"fileName\" }] : []));\n /**\n * @ignore\n */\n this.fileService = inject(AXFileService);\n /**\n * @ignore\n */\n this.http = inject(HttpClient);\n /**\n * @ignore\n */\n this.parent = inject(AXConversationViewComponent);\n afterNextRender(() => {\n if (this.message.name) {\n this.fileName.set(this.message.name);\n this.fileSize.set(this.fileService.getSize(this.message.content));\n }\n else {\n this.fileName.set(this.message.content[0].name);\n this.fileSize.set(this.message.content[0].size);\n }\n });\n }\n /**\n * Emits a download action event for the file.\n * @ignore\n */\n handleDownloadFile() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n /**\n * Emits a cancel action event for the file loading.\n * @ignore\n */\n handleCancelLoading() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationFileMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationFileMessageComponent, isStandalone: true, selector: \"ax-conversation-message-file\", providers: [{ provide: AXComponent, useExisting: AXConversationFileMessageComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n {{ fileSize() | format: 'filesize' | async }}\\n</ax-prefix>\\n<div class=\\\"ax-file-container\\\">\\n <div class=\\\"ax-conversation-controller\\\">\\n @switch (fileState()) {\\n @case ('ready') {\\n <button (click)=\\\"handleDownloadFile()\\\">\\n <i class=\\\"ax-icon ax-icon-download\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n </div>\\n\\n <div class=\\\"ax-file-name\\\">{{ fileName() }}</div>\\n</div>\\n\", styles: [\"ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationFileMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-file', encapsulation: ViewEncapsulation.None, imports: [AXDecoratorGenericComponent, AXLoadingSpinnerComponent, AsyncPipe, AXFormatPipe], providers: [{ provide: AXComponent, useExisting: AXConversationFileMessageComponent }], template: \"<ax-prefix>\\n {{ fileSize() | format: 'filesize' | async }}\\n</ax-prefix>\\n<div class=\\\"ax-file-container\\\">\\n <div class=\\\"ax-conversation-controller\\\">\\n @switch (fileState()) {\\n @case ('ready') {\\n <button (click)=\\\"handleDownloadFile()\\\">\\n <i class=\\\"ax-icon ax-icon-download\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n </div>\\n\\n <div class=\\\"ax-file-name\\\">{{ fileName() }}</div>\\n</div>\\n\", styles: [\"ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQWtCLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUU5RTs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLGtDQUFrQztJQTJCeEY7O09BRUc7SUFDSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBOUJWOztXQUVHO1FBQ0gsY0FBUyxHQUFrRCxNQUFNLENBQUMsT0FBTyxxREFBQyxDQUFDO1FBQzNFOztXQUVHO1FBQ0gsYUFBUSxHQUEyQixNQUFNLENBQUMsSUFBSSxvREFBQyxDQUFDO1FBQ2hEOztXQUVHO1FBQ0gsYUFBUSxHQUEyQixNQUFNLENBQUMsRUFBRSxvREFBQyxDQUFDO1FBRTlDOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEM7O1dBRUc7UUFDSCxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBTzNDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBVyxDQUFDLENBQUM7WUFDOUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQXpEVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywyRUFGbEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsaURDdkJ4Rixxc0JBMEJBLHFTREpZLDJCQUEyQix5TEFBRSx5QkFBeUIsdUdBQUUsU0FBUyx5Q0FBRSxZQUFZOzsyRkFHOUUsa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNFLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsYUFDL0UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxvQ0FBb0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYRm9ybWF0UGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBXcml0YWJsZVNpZ25hbCwgYWZ0ZXJOZXh0UmVuZGVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLXZpZXcvY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBmaWxlIG1lc3NhZ2VzIGluIGEgY29udmVyc2F0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCwgQXN5bmNQaXBlLCBBWEZvcm1hdFBpcGVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTdGF0ZTogV3JpdGFibGVTaWduYWw8J2xvYWRpbmcnIHwgJ3JlYWR5JyB8ICdlcnJvcic+ID0gc2lnbmFsKCdyZWFkeScpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTaXplOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKG51bGwpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVOYW1lOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcnKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcGFyZW50ID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlLm5hbWUpIHtcbiAgICAgICAgdGhpcy5maWxlTmFtZS5zZXQodGhpcy5tZXNzYWdlLm5hbWUpO1xuICAgICAgICB0aGlzLmZpbGVTaXplLnNldCh0aGlzLmZpbGVTZXJ2aWNlLmdldFNpemUodGhpcy5tZXNzYWdlLmNvbnRlbnQpIGFzIG51bWJlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGVOYW1lLnNldCh0aGlzLm1lc3NhZ2UuY29udGVudFswXS5uYW1lKTtcbiAgICAgICAgdGhpcy5maWxlU2l6ZS5zZXQodGhpcy5tZXNzYWdlLmNvbnRlbnRbMF0uc2l6ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBkb3dubG9hZCBhY3Rpb24gZXZlbnQgZm9yIHRoZSBmaWxlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoYW5kbGVEb3dubG9hZEZpbGUoKSB7XG4gICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5tZXNzYWdlLCBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGNhbmNlbCBhY3Rpb24gZXZlbnQgZm9yIHRoZSBmaWxlIGxvYWRpbmcuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZUNhbmNlbExvYWRpbmcoKSB7XG4gICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5tZXNzYWdlLCBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSB9KTtcbiAgfVxufVxuIiwiPGF4LXByZWZpeD5cbiAge3sgZmlsZVNpemUoKSB8IGZvcm1hdDogJ2ZpbGVzaXplJyB8IGFzeW5jIH19XG48L2F4LXByZWZpeD5cbjxkaXYgY2xhc3M9XCJheC1maWxlLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRyb2xsZXJcIj5cbiAgICBAc3dpdGNoIChmaWxlU3RhdGUoKSkge1xuICAgICAgQGNhc2UgKCdyZWFkeScpIHtcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlRG93bmxvYWRGaWxlKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb3dubG9hZFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsTG9hZGluZygpXCI+XG4gICAgICAgICAgPGF4LWxvYWRpbmctc3Bpbm5lclxuICAgICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgICAgW3N0cm9rZV09XCIyXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJtZXNzYWdlLmZyb21JZCA/ICd3aGl0ZScgOiAnd2FybmluZydcIlxuICAgICAgICAgID48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYXgtZmlsZS1uYW1lXCI+e3sgZmlsZU5hbWUoKSB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * A popup component for displaying an image in full view.\n *\n * @category Components\n */\nexport class ConversationMessageImagePopupComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: ConversationMessageImagePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.2\", type: ConversationMessageImagePopupComponent, isStandalone: true, selector: \"ax-conversation-message-image-popup\", providers: [{ provide: AXComponent, useExisting: ConversationMessageImagePopupComponent }], ngImport: i0, template: ` <img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" />`, isInline: true, styles: [\"ax-conversation-message-image-popup{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{object-fit:fill;width:30vw}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: ConversationMessageImagePopupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-image-popup', template: ` <img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" />`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: ConversationMessageImagePopupComponent }], styles: [\"ax-conversation-message-image-popup{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{object-fit:fill;width:30vw}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQzs4R0FBdEMsc0NBQXNDO2tHQUF0QyxzQ0FBc0Msa0ZBRnRDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQ0FBc0MsRUFBRSxDQUFDLDBCQUhoRixvREFBb0Q7OzJGQUtuRCxzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0UscUNBQXFDLFlBQ3JDLG9EQUFvRCxpQkFFL0MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHdDQUF3QyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQSBwb3B1cCBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYW4gaW1hZ2UgaW4gZnVsbCB2aWV3LlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWltYWdlLXBvcHVwJyxcbiAgdGVtcGxhdGU6IGAgPGltZyBjbGFzcz1cImF4LWltYWdlLXBvcHVwXCIgW3NyY109XCJ1cmxcIiBhbHQ9XCJcIiAvPmAsXG4gIHN0eWxlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VQb3B1cENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB1cmw6IHN0cmluZztcbn1cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { Component, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { ConversationMessageImagePopupComponent } from '../conversation-message-image-popup/conversation-message-image-popup.component';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying an image within a conversation message.\n *\n * @category Components\n */\nexport class AXConversationMessageImageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this._imageUrl = signal('', ...(ngDevMode ? [{ debugName: \"_imageUrl\" }] : []));\n /**\n * @ignore\n */\n this.popup = inject(AXPopupService);\n /**\n * @ignore\n */\n this._options = {\n header: true,\n footer: false,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n afterNextRender(() => {\n this._imageUrl.set(this.message?.content);\n });\n }\n /**\n * Opens a popup displaying the image with options for draggable, size, and backdrop.\n * @ignore\n */\n openPopup() {\n this.popup\n .open(ConversationMessageImagePopupComponent, {\n draggable: this._options.draggable,\n header: this._options.header,\n size: this._options.size,\n hasBackdrop: this._options.hasBackdrop,\n closeButton: this._options.closeButton,\n closeOnBackdropClick: this._options.closeOnBackdropClick,\n data: {\n url: this._imageUrl(),\n },\n })\n .then((c) => {\n console.log(c);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.2\", type: AXConversationMessageImageComponent, isStandalone: true, selector: \"ax-conversation-message-image\", inputs: { message: \"message\" }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageImageComponent }], usesInheritance: true, ngImport: i0, template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `, isInline: true, styles: [\"img{cursor:pointer;width:100%;height:100%}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageImageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-image', template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `, inputs: ['message'], providers: [{ provide: AXComponent, useExisting: AXConversationMessageImageComponent }], styles: [\"img{cursor:pointer;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7O0FBRXhJOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0NBQWtDO0lBd0J6Rjs7T0FFRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUEzQlY7O1dBRUc7UUFDTyxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUscURBQUMsQ0FBQztRQUVqQzs7V0FFRztRQUNLLFVBQUssR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ08sYUFBUSxHQUFHO1lBQ25CLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUk7WUFDakIsV0FBVyxFQUFFLElBQUk7WUFDakIsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDO1FBT0EsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxJQUFJLENBQUMsS0FBSzthQUNQLElBQUksQ0FBQyxzQ0FBc0MsRUFBRTtZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBdUI7WUFDM0MsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CO1lBQ3hELElBQUksRUFBRTtnQkFDSixHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTthQUN0QjtTQUNGLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXREVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw0R0FGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsaURBVDdFLDJEQUEyRDs7MkZBVzFELG1DQUFtQztrQkFiL0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsMkRBQTJELFVBUTdELENBQUMsU0FBUyxDQUFDLGFBQ1IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYUG9wdXBTaXplVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGFuIGltYWdlIHdpdGhpbiBhIGNvbnZlcnNhdGlvbiBtZXNzYWdlLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWltYWdlJyxcbiAgdGVtcGxhdGU6IGA8aW1nIChjbGljayk9XCJvcGVuUG9wdXAoKVwiIFtzcmNdPVwiX2ltYWdlVXJsKClcIiBhbHQ9XCJcIiAvPiBgLFxuICBzdHlsZXM6IGBcbiAgICBpbWcge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICBgLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9pbWFnZVVybCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX29wdGlvbnMgPSB7XG4gICAgaGVhZGVyOiB0cnVlLFxuICAgIGZvb3RlcjogZmFsc2UsXG4gICAgc2l6ZTogJ21kJyxcbiAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxuICB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5faW1hZ2VVcmwuc2V0KHRoaXMubWVzc2FnZT8uY29udGVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBwb3B1cCBkaXNwbGF5aW5nIHRoZSBpbWFnZSB3aXRoIG9wdGlvbnMgZm9yIGRyYWdnYWJsZSwgc2l6ZSwgYW5kIGJhY2tkcm9wLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvcGVuUG9wdXAoKSB7XG4gICAgdGhpcy5wb3B1cFxuICAgICAgLm9wZW4oQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQsIHtcbiAgICAgICAgZHJhZ2dhYmxlOiB0aGlzLl9vcHRpb25zLmRyYWdnYWJsZSxcbiAgICAgICAgaGVhZGVyOiB0aGlzLl9vcHRpb25zLmhlYWRlcixcbiAgICAgICAgc2l6ZTogdGhpcy5fb3B0aW9ucy5zaXplIGFzIEFYUG9wdXBTaXplVHlwZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuX29wdGlvbnMuaGFzQmFja2Ryb3AsXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0aGlzLl9vcHRpb25zLmNsb3NlQnV0dG9uLFxuICAgICAgICBjbG9zZU9uQmFja2Ryb3BDbGljazogdGhpcy5fb3B0aW9ucy5jbG9zZU9uQmFja2Ryb3BDbGljayxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHVybDogdGhpcy5faW1hZ2VVcmwoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhjKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { AXConversationService } from '../../services/conversation.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying a text message with optional reply content, including text, images, videos, files, and audio.\n *\n * @category Components\n */\nexport class AXConversationTextMessageComponent extends AXConversationMessageBaseComponent {\n constructor() {\n super(...arguments);\n /**\n * @ignore\n */\n this._text = signal('', ...(ngDevMode ? [{ debugName: \"_text\" }] : []));\n /**\n * @ignore\n */\n this.replyText = signal(null, ...(ngDevMode ? [{ debugName: \"replyText\" }] : []));\n /**\n * @ignore\n */\n this.replyImage = signal(null, ...(ngDevMode ? [{ debugName: \"replyImage\" }] : []));\n /**\n * @ignore\n */\n this.replyVideo = signal(null, ...(ngDevMode ? [{ debugName: \"replyVideo\" }] : []));\n /**\n * @ignore\n */\n this.replyAudio = signal(null, ...(ngDevMode ? [{ debugName: \"replyAudio\" }] : []));\n /**\n * @ignore\n */\n this.replyVoice = signal(null, ...(ngDevMode ? [{ debugName: \"replyVoice\" }] : []));\n /**\n * @ignore\n */\n this.replyFile = signal(null, ...(ngDevMode ? [{ debugName: \"replyFile\" }] : []));\n /**\n * @ignore\n */\n this.conversationService = inject(AXConversationService);\n }\n ngOnInit() {\n this._text.set(this.message?.content);\n if (!this.message?.replyTo)\n return;\n const replyMessage = this.conversationService.chats().find((chat) => chat.id === this.message?.replyTo?.id);\n switch (replyMessage.type) {\n case 'text':\n this.replyText.set(replyMessage);\n break;\n case 'image':\n this.replyImage.set(replyMessage);\n break;\n case 'video':\n this.replyVideo.set(replyMessage);\n break;\n case 'audio':\n this.replyAudio.set(replyMessage);\n break;\n case 'voice':\n this.replyVoice.set(replyMessage);\n break;\n case 'file':\n this.replyFile.set(replyMessage);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationTextMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationTextMessageComponent, isStandalone: true, selector: \"ng-component\", inputs: { message: \"message\" }, providers: [{ provide: AXComponent, useExisting: AXConversationTextMessageComponent }], usesInheritance: true, ngImport: i0, template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-image-reply-container\"><img [src]=\"replyImage().content\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-video-reply-container\"><video [src]=\"replyVideo().content\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `, isInline: true, styles: [\".ax-text-message{word-break:normal;white-space:break-spaces}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationTextMessageComponent, decorators: [{\n type: Component,\n args: [{ template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-image-reply-container\"><img [src]=\"replyImage().content\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-video-reply-container\"><video [src]=\"replyVideo().content\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `, encapsulation: ViewEncapsulation.None, inputs: ['message'], providers: [{ provide: AXComponent, useExisting: AXConversationTextMessageComponent }], styles: [\".ax-text-message{word-break:normal;white-space:break-spaces}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10ZXh0L2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUF5QixrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUU1RTs7OztHQUlHO0FBbUNILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxrQ0FBa0M7SUFsQzFGOztRQW1DRTs7V0FFRztRQUNPLFVBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxpREFBQyxDQUFDO1FBRTdCOztXQUVHO1FBQ08sY0FBUyxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxxREFBQyxDQUFDO1FBRWpFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sY0FBUyxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxxREFBQyxDQUFDO1FBRWpFOztXQUVHO1FBQ0gsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0E4QnJEO0lBNUJDLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU87WUFBRSxPQUFPO1FBRW5DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUcsUUFBUSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7OEdBcEVVLGtDQUFrQztrR0FBbEMsa0NBQWtDLDJGQUZsQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxpREEvQjVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7OzJGQU1VLGtDQUFrQztrQkFsQzlDLFNBQVM7K0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCLENBQUMsU0FBUyxDQUFDLGFBQ1IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxvQ0FBb0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlLCBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhIHRleHQgbWVzc2FnZSB3aXRoIG9wdGlvbmFsIHJlcGx5IGNvbnRlbnQsIGluY2x1ZGluZyB0ZXh0LCBpbWFnZXMsIHZpZGVvcywgZmlsZXMsIGFuZCBhdWRpby5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHJlcGx5VGV4dCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1yZXBseS1jb250YWluZXJcIj57eyByZXBseVRleHQoKS5jb250ZW50IH19PC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChyZXBseUltYWdlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1pbWFnZS1yZXBseS1jb250YWluZXJcIj48aW1nIFtzcmNdPVwicmVwbHlJbWFnZSgpLmNvbnRlbnRcIiBhbHQ9XCJcIiAvPjwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAocmVwbHlWaWRlbygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtdmlkZW8tcmVwbHktY29udGFpbmVyXCI+PHZpZGVvIFtzcmNdPVwicmVwbHlWaWRlbygpLmNvbnRlbnRcIj48L3ZpZGVvPjwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAocmVwbHlGaWxlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1tZXNzYWdlLXJlcGx5LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1mb2xkZXItb3BlblwiPjwvaT5cbiAgICAgICAgICB7eyByZXBseUZpbGUoKS5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChyZXBseUF1ZGlvKCkgfHwgcmVwbHlWb2ljZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1yZXBseS1jb250YWluZXJcIj57eyByZXBseUF1ZGlvKCkudHlwZSB9fTwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LW1lc3NhZ2VcIiBbaW5uZXJIdG1sXT1cIl90ZXh0KClcIj48L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfdGV4dCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlUZXh0ID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcGx5SW1hZ2UgPSBzaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlWaWRlbyA9IHNpZ25hbDxBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZXBseUF1ZGlvID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcGx5Vm9pY2UgPSBzaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlGaWxlID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29udmVyc2F0aW9uU2VydmljZSA9IGluamVjdChBWENvbnZlcnNhdGlvblNlcnZpY2UpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RleHQuc2V0KHRoaXMubWVzc2FnZT8uY29udGVudCk7XG5cbiAgICBpZiAoIXRoaXMubWVzc2FnZT8ucmVwbHlUbykgcmV0dXJuO1xuXG4gICAgY29uc3QgcmVwbHlNZXNzYWdlID0gdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzKCkuZmluZCgoY2hhdCkgPT4gY2hhdC5pZCA9PT0gdGhpcy5tZXNzYWdlPy5yZXBseVRvPy5pZCk7XG5cbiAgICBzd2l0Y2ggKHJlcGx5TWVzc2FnZS50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgdGhpcy5yZXBseVRleHQuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICB0aGlzLnJlcGx5SW1hZ2Uuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICB0aGlzLnJlcGx5VmlkZW8uc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICB0aGlzLnJlcGx5QXVkaW8uc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndm9pY2UnOlxuICAgICAgICB0aGlzLnJlcGx5Vm9pY2Uuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgIHRoaXMucmVwbHlGaWxlLnNldChyZXBseU1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying a video message with playback controls.\n *\n * @category Components\n */\nexport class AXConversationMessageVideoComponent extends AXConversationMessageBaseComponent {\n constructor() {\n super(...arguments);\n /**\n * @ignore\n */\n this._videoUrl = signal('', ...(ngDevMode ? [{ debugName: \"_videoUrl\" }] : []));\n }\n /**\n * @ignore\n */\n ngOnInit() {\n this._videoUrl.set(this.message?.content);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageVideoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.2\", type: AXConversationMessageVideoComponent, isStandalone: true, selector: \"ax-conversation-message-video\", providers: [{ provide: AXComponent, useExisting: AXConversationMessageVideoComponent }], usesInheritance: true, ngImport: i0, template: `<video controls [src]=\"_videoUrl()\"></video>`, isInline: true, styles: [\"video{width:100%;height:100%}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationMessageVideoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-video', template: `<video controls [src]=\"_videoUrl()\"></video>`, providers: [{ provide: AXComponent, useExisting: AXConversationMessageVideoComponent }], styles: [\"video{width:100%;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFOUU7Ozs7R0FJRztBQVlILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxrQ0FBa0M7SUFYM0Y7O1FBWUU7O1dBRUc7UUFDTyxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUscURBQUMsQ0FBQztLQVFsQztJQU5DOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs4R0FYVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw0RUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsaURBUDdFLDhDQUE4Qzs7MkZBUzdDLG1DQUFtQztrQkFYL0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsOENBQThDLGFBTzdDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgdmlkZW8gbWVzc2FnZSB3aXRoIHBsYXliYWNrIGNvbnRyb2xzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLXZpZGVvJyxcbiAgdGVtcGxhdGU6IGA8dmlkZW8gY29udHJvbHMgW3NyY109XCJfdmlkZW9VcmwoKVwiPjwvdmlkZW8+YCxcbiAgc3R5bGVzOiBgXG4gICAgdmlkZW8ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZVZpZGVvQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF92aWRlb1VybCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWRlb1VybC5zZXQodGhpcy5tZXNzYWdlPy5jb250ZW50KTtcbiAgfVxufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXAudioWaveComponent } from '@acorex/components/audio-wave';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport { Component, HostBinding, PLATFORM_ID, ViewChild, ViewEncapsulation, afterNextRender, inject, signal, } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying and handling audio messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationVoiceMessageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this.config = { url: '' };\n /**\n * @ignore\n */\n this.audioState = signal('paused', ...(ngDevMode ? [{ debugName: \"audioState\" }] : []));\n /**\n * @ignore\n */\n this.parent = inject(AXConversationViewComponent);\n this.platformID = inject(PLATFORM_ID);\n /**\n * @ignore\n */\n this.selectedRate = signal(1, ...(ngDevMode ? [{ debugName: \"selectedRate\" }] : []));\n /**\n * @ignore\n */\n this.selectedRateIndex = signal(1, ...(ngDevMode ? [{ debugName: \"selectedRateIndex\" }] : []));\n /**\n * @ignore\n */\n this.audioProgress = signal(0, ...(ngDevMode ? [{ debugName: \"audioProgress\" }] : []));\n /**\n * @ignore\n */\n this.timeLeft = signal(0, ...(ngDevMode ? [{ debugName: \"timeLeft\" }] : []));\n /**\n * @ignore\n */\n this.currentTime = signal(0, ...(ngDevMode ? [{ debugName: \"currentTime\" }] : []));\n /**\n * @ignore\n */\n this.duration = signal(0, ...(ngDevMode ? [{ debugName: \"duration\" }] : []));\n afterNextRender(() => {\n this.config.url = this.message?.content;\n this.config.audioRate = 0.25;\n this.setWaveColor();\n this.audio.onStatusChanged.subscribe((c) => {\n this.parent.onAction.emit(c);\n });\n this.handleLoadingProgress();\n });\n }\n /**\n * @ignore\n */\n setWaveColor() {\n let waveColor = '';\n let progressColor = '';\n if (isPlatformBrowser(this.platformID)) {\n if (this.message.fromId) {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-progress-color');\n }\n else {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-progress-color');\n }\n }\n this.config.waveColor = waveColor;\n this.config.progressColor = progressColor;\n }\n /**\n * Pauses the audio playback and updates the audio state to 'paused'.\n * @ignore\n */\n handlePauseClick() {\n this.audio?.pause();\n this.audioState.set('paused');\n }\n /**\n * Plays the audio and updates the audio state to 'playing'.\n * @ignore\n */\n handlePlayClick() {\n this.audio?.play()?.then(() => {\n this.audioState.set('playing');\n });\n }\n /**\n * Updates audio state and progress based on status changes from the audio wave.\n * @param e - The event containing status and data related to the audio.\n * @ignore\n */\n handleOnStatusChanged(e) {\n if (e.status === 'load' || e.status === 'loading') {\n this.audioState.set('loading');\n }\n if (e.status === 'loading') {\n this.audioProgress.set(e.data.percent);\n this.duration.set(Math.ceil(e.data.duration * 1000));\n }\n if (e.status === 'ready') {\n this.audioState.set('ready');\n this.duration.set(Math.ceil(e.data.duration * 1000));\n }\n if (e.status === 'finish') {\n this.audioState.set('paused');\n }\n if (e.status === 'timeupdate') {\n this.timeLeft.set(this.duration() - e.data.currentTime * 1000);\n this.currentTime.set(e.data.currentTime * 1000);\n }\n if (e.status === 'error') {\n this.audioState.set('error');\n }\n }\n /**\n * @ignore\n */\n handleLoadingProgress() {\n // this.audioLoaderProgress?.nativeElement.style.cssText = `--ax-audio-progress: ${this.audioProgress()}`;\n }\n /**\n * Handles the cancellation of a loading operation.\n * @ignore\n */\n handleCancelLoading() {\n //\n }\n /**\n * Reloads the audio and updates the state to 'loading'.\n * @ignore\n */\n handleReloadClick() {\n //\n this.audioState.set('loading');\n this.audio.load();\n }\n /**\n * Cycles through predefined audio playback rates and updates the rate.\n * @ignore\n */\n handleRateClick() {\n const rates = [0.5, 1, 2, 4];\n if (this.selectedRateIndex() == rates.length - 1) {\n this.selectedRateIndex.set(0);\n }\n else {\n this.selectedRateIndex.set(this.selectedRateIndex() + 1);\n }\n this.selectedRate.set(rates[this.selectedRateIndex()]);\n this.audio.setRate(this.selectedRate());\n }\n /**\n * @ignore\n */\n get __hostClass() {\n return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationVoiceMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.2\", type: AXConversationVoiceMessageComponent, isStandalone: true, selector: \"ax-conversation-message-audio\", inputs: { message: \"message\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [{ provide: AXComponent, useExisting: AXConversationVoiceMessageComponent }], viewQueries: [{ propertyName: \"audio\", first: true, predicate: [\"a\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ duration() | format: 'time-duration' | async }}\\n }\\n }\\n <button class=\\\"ax-audio-speed\\\" (click)=\\\"handleRateClick()\\\"></button>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n\\n @case ('ready') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('error') {\\n <button class=\\\"ax-state-error\\\" (click)=\\\"handleReloadClick()\\\">\\n <i class=\\\"ax-icon ax-icon-reload\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n</div>\\n<ax-audio-wave #a [config]=\\\"config\\\" (onStatusChanged)=\\\"handleOnStatusChanged($event)\\\"></ax-audio-wave>\\n<ax-suffix>\\n <div class=\\\"ax-audio-rate-button\\\" [class.ax-state-own]=\\\"!message?.fromId\\\" (click)=\\\"handleRateClick()\\\">\\n {{ selectedRate() }}X\\n </div>\\n</ax-suffix>\\n\", styles: [\"ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-comp-conversation-other-color-fore);color:var(--ax-comp-conversation-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-comp-conversation-own-color-fore);color:var(--ax-comp-conversation-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"component\", type: AXAudioWaveComponent, selector: \"ax-audio-wave\", inputs: [\"config\"], outputs: [\"onStatusChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationVoiceMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, inputs: ['message'], imports: [AXDecoratorGenericComponent, AXLoadingSpinnerComponent, AXAudioWaveComponent, AsyncPipe, AXFormatPipe], providers: [{ provide: AXComponent, useExisting: AXConversationVoiceMessageComponent }], template: \"<ax-prefix>\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ duration() | format: 'time-duration' | async }}\\n }\\n }\\n <button class=\\\"ax-audio-speed\\\" (click)=\\\"handleRateClick()\\\"></button>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n\\n @case ('ready') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('error') {\\n <button class=\\\"ax-state-error\\\" (click)=\\\"handleReloadClick()\\\">\\n <i class=\\\"ax-icon ax-icon-reload\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n</div>\\n<ax-audio-wave #a [config]=\\\"config\\\" (onStatusChanged)=\\\"handleOnStatusChanged($event)\\\"></ax-audio-wave>\\n<ax-suffix>\\n <div class=\\\"ax-audio-rate-button\\\" [class.ax-state-own]=\\\"!message?.fromId\\\" (click)=\\\"handleRateClick()\\\">\\n {{ selectedRate() }}X\\n </div>\\n</ax-suffix>\\n\", styles: [\"ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-comp-conversation-other-color-fore);color:var(--ax-comp-conversation-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-comp-conversation-own-color-fore);color:var(--ax-comp-conversation-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { audio: [{\n type: ViewChild,\n args: ['a']\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBMEIsb0JBQW9CLEVBQWdCLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFB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RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksV0FBVztRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7OEdBcExVLG1DQUFtQztrR0FBbkMsbUNBQW1DLG1LQUZuQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyw2SUNoQ3pGLHltREF5REEsd3lCRDFCWSwyQkFBMkIseUxBQUUseUJBQXlCLDRHQUFFLG9CQUFvQix1R0FBRSxTQUFTLHlDQUFFLFlBQVk7OzJGQUdwRyxtQ0FBbUM7a0JBVC9DLFNBQVM7K0JBQ0UsK0JBQStCLGlCQUcxQixpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCLENBQUMsU0FBUyxDQUFDLFdBQ1YsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLGFBQ3JHLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQzt3REFNdkUsS0FBSztzQkFBcEIsU0FBUzt1QkFBQyxHQUFHO2dCQThLVixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQsIEFYQXVkaW9XYXZlQ29tcG9uZW50LCBBWFdhdmVDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYXVkaW8td2F2ZSc7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGb3JtYXRQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIFBMQVRGT1JNX0lELFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYW5kIGhhbmRsaW5nIGF1ZGlvIG1lc3NhZ2VzIGluIGEgY29udmVyc2F0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6IGAuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudC5zY3NzYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnXSxcbiAgaW1wb3J0czogW0FYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCwgQVhBdWRpb1dhdmVDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhGb3JtYXRQaXBlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uVm9pY2VNZXNzYWdlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvblZvaWNlTWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2EnKSBhdWRpbzogQVhBdWRpb1dhdmVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25maWc6IEFYV2F2ZUNvbmZpZyA9IHsgdXJsOiAnJyB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgYXVkaW9TdGF0ZTogV3JpdGFibGVTaWduYWw8J3BsYXlpbmcnIHwgJ3BhdXNlZCcgfCAnbG9hZGluZycgfCAncmVhZHknIHwgJ2Vycm9yJz4gPSBzaWduYWwoJ3BhdXNlZCcpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcGFyZW50ID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBzZWxlY3RlZFJhdGUgPSBzaWduYWwoMSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBzZWxlY3RlZFJhdGVJbmRleCA9IHNpZ25hbCgxKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBhdWRpb1Byb2dyZXNzID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVMZWZ0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5jb25maWcudXJsID0gdGhpcy5tZXNzYWdlPy5jb250ZW50O1xuICAgICAgdGhpcy5jb25maWcuYXVkaW9SYXRlID0gMC4yNTtcbiAgICAgIHRoaXMuc2V0V2F2ZUNvbG9yKCk7XG4gICAgICB0aGlzLmF1ZGlvLm9uU3RhdHVzQ2hhbmdlZC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdChjKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYW5kbGVMb2FkaW5nUHJvZ3Jlc3MoKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHNldFdhdmVDb2xvcigpIHtcbiAgICBsZXQgd2F2ZUNvbG9yID0gJyc7XG4gICAgbGV0IHByb2dyZXNzQ29sb3IgPSAnJztcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZS5mcm9tSWQpIHtcbiAgICAgICAgd2F2ZUNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3RoZXItYmFyLWNvbG9yJyk7XG4gICAgICAgIHByb2dyZXNzQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtbWVzc2FnZS1vdGhlci1wcm9ncmVzcy1jb2xvcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2F2ZUNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3duLWJhci1jb2xvcicpO1xuICAgICAgICBwcm9ncmVzc0NvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3duLXByb2dyZXNzLWNvbG9yJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLndhdmVDb2xvciA9IHdhdmVDb2xvcjtcbiAgICB0aGlzLmNvbmZpZy5wcm9ncmVzc0NvbG9yID0gcHJvZ3Jlc3NDb2xvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXVzZXMgdGhlIGF1ZGlvIHBsYXliYWNrIGFuZCB1cGRhdGVzIHRoZSBhdWRpbyBzdGF0ZSB0byAncGF1c2VkJy5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlUGF1c2VDbGljaygpIHtcbiAgICB0aGlzLmF1ZGlvPy5wYXVzZSgpO1xuICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYXlzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgYXVkaW8gc3RhdGUgdG8gJ3BsYXlpbmcnLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoYW5kbGVQbGF5Q2xpY2soKSB7XG4gICAgdGhpcy5hdWRpbz8ucGxheSgpPy50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BsYXlpbmcnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGF1ZGlvIHN0YXRlIGFuZCBwcm9ncmVzcyBiYXNlZCBvbiBzdGF0dXMgY2hhbmdlcyBmcm9tIHRoZSBhdWRpbyB3YXZlLlxuICAgKiBAcGFyYW0gZSAtIFRoZSBldmVudCBjb250YWluaW5nIHN0YXR1cyBhbmQgZGF0YSByZWxhdGVkIHRvIHRoZSBhdWRpby5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlT25TdGF0dXNDaGFuZ2VkKGU6IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQpIHtcbiAgICBpZiAoZS5zdGF0dXMgPT09ICdsb2FkJyB8fCBlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdsb2FkaW5nJyk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvUHJvZ3Jlc3Muc2V0KGUuZGF0YS5wZXJjZW50KTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ3JlYWR5Jykge1xuICAgICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncmVhZHknKTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2ZpbmlzaCcpIHtcbiAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIH1cbiAgICBpZiAoZS5zdGF0dXMgPT09ICd0aW1ldXBkYXRlJykge1xuICAgICAgdGhpcy50aW1lTGVmdC5zZXQodGhpcy5kdXJhdGlvbigpIC0gZS5kYXRhLmN1cnJlbnRUaW1lICogMTAwMCk7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lLnNldChlLmRhdGEuY3VycmVudFRpbWUgKiAxMDAwKTtcbiAgICB9XG4gICAgaWYgKGUuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdlcnJvcicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlTG9hZGluZ1Byb2dyZXNzKCkge1xuICAgIC8vIHRoaXMuYXVkaW9Mb2FkZXJQcm9ncmVzcz8ubmF0aXZlRWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gYC0tYXgtYXVkaW8tcHJvZ3Jlc3M6ICR7dGhpcy5hdWRpb1Byb2dyZXNzKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjYW5jZWxsYXRpb24gb2YgYSBsb2FkaW5nIG9wZXJhdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlQ2FuY2VsTG9hZGluZygpIHtcbiAgICAvL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9hZHMgdGhlIGF1ZGlvIGFuZCB1cGRhdGVzIHRoZSBzdGF0ZSB0byAnbG9hZGluZycuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZVJlbG9hZENsaWNrKCkge1xuICAgIC8vXG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgnbG9hZGluZycpO1xuICAgIHRoaXMuYXVkaW8ubG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEN5Y2xlcyB0aHJvdWdoIHByZWRlZmluZWQgYXVkaW8gcGxheWJhY2sgcmF0ZXMgYW5kIHVwZGF0ZXMgdGhlIHJhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZVJhdGVDbGljaygpIHtcbiAgICBjb25zdCByYXRlcyA9IFswLjUsIDEsIDIsIDRdO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUmF0ZUluZGV4KCkgPT0gcmF0ZXMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJhdGVJbmRleC5zZXQoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXguc2V0KHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXgoKSArIDEpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUmF0ZS5zZXQocmF0ZXNbdGhpcy5zZWxlY3RlZFJhdGVJbmRleCgpXSk7XG4gICAgdGhpcy5hdWRpby5zZXRSYXRlKHRoaXMuc2VsZWN0ZWRSYXRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMubWVzc2FnZS5mcm9tSWQgPyAnYXgtc3RhdGUtb3RoZXInIDogJ2F4LXN0YXRlLW93bid9YDtcbiAgfVxufVxuIiwiPGF4LXByZWZpeD5cbiAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgQGNhc2UgKCdwYXVzZWQnKSB7XG4gICAgICB7eyBjdXJyZW50VGltZSgpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgICBAY2FzZSAoJ3BsYXlpbmcnKSB7XG4gICAgICB7eyBjdXJyZW50VGltZSgpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgICBAZGVmYXVsdCB7XG4gICAgICB7eyBkdXJhdGlvbigpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgfVxuICA8YnV0dG9uIGNsYXNzPVwiYXgtYXVkaW8tc3BlZWRcIiAoY2xpY2spPVwiaGFuZGxlUmF0ZUNsaWNrKClcIj48L2J1dHRvbj5cbjwvYXgtcHJlZml4PlxuPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1jb250cm9sbGVyXCI+XG4gIEBzd2l0Y2ggKGF1ZGlvU3RhdGUoKSkge1xuICAgIEBjYXNlICgncGxheWluZycpIHtcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImhhbmRsZVBhdXNlQ2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wYXVzZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBjYXNlICgncmVhZHknKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQbGF5Q2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wbGF5XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdwYXVzZWQnKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQbGF5Q2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wbGF5XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJheC1zdGF0ZS1lcnJvclwiIChjbGljayk9XCJoYW5kbGVSZWxvYWRDbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXJlbG9hZFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBkZWZhdWx0IHtcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImhhbmRsZUNhbmNlbExvYWRpbmcoKVwiPlxuICAgICAgICA8YXgtbG9hZGluZy1zcGlubmVyXG4gICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgIFtzdHJva2VdPVwiMlwiXG4gICAgICAgICAgW2NvbG9yXT1cIm1lc3NhZ2UuZnJvbUlkID8gJ3doaXRlJyA6ICd3YXJuaW5nJ1wiXG4gICAgICAgID48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YXgtYXVkaW8td2F2ZSAjYSBbY29uZmlnXT1cImNvbmZpZ1wiIChvblN0YXR1c0NoYW5nZWQpPVwiaGFuZGxlT25TdGF0dXNDaGFuZ2VkKCRldmVudClcIj48L2F4LWF1ZGlvLXdhdmU+XG48YXgtc3VmZml4PlxuICA8ZGl2IGNsYXNzPVwiYXgtYXVkaW8tcmF0ZS1idXR0b25cIiBbY2xhc3MuYXgtc3RhdGUtb3duXT1cIiFtZXNzYWdlPy5mcm9tSWRcIiAoY2xpY2spPVwiaGFuZGxlUmF0ZUNsaWNrKClcIj5cbiAgICB7eyBzZWxlY3RlZFJhdGUoKSB9fVhcbiAgPC9kaXY+XG48L2F4LXN1ZmZpeD5cbiJdfQ==","import { AXRippleDirective } from '@acorex/cdk/common';\nimport { AXVirtualScrollModule } from '@acorex/cdk/virtual-scroll';\nimport { AXAudioWaveModule } from '@acorex/components/audio-wave';\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { NgModule, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXConversationContainerComponent } from './conversation-container/conversation-container.component';\nimport { AXConversationInputComponent } from './conversation-input/conversation-input.component';\nimport { AXConversationMessageComponent } from './conversation-message/conversation-message.component';\nimport { AXConversationMessageAudioComponent } from './conversation-messages/conversation-message-audio/conversation-message-audio.component';\nimport { AXConversationFileMessageComponent } from './conversation-messages/conversation-message-file/conversation-message-file.component';\nimport { AXConversationMessageImageComponent } from './conversation-messages/conversation-message-image/conversation-message-image.component';\nimport { AXConversationTextMessageComponent } from './conversation-messages/conversation-message-text/conversation-message-text.component';\nimport { AXConversationMessageVideoComponent } from './conversation-messages/conversation-message-video/conversation-message-video.component';\nimport { AXConversationVoiceMessageComponent } from './conversation-messages/conversation-message-voice/conversation-message-voice.component';\nimport { AXConversationViewComponent } from './conversation-view/conversation-view.component';\nimport { AXConversationMessageTypeRegistryService } from './services/conversation-message-type-registry.service';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [\n AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent,\n];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AsyncPipe,\n AXRippleDirective,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n CdkPortalOutlet,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule,\n];\nexport class AXConversationModule {\n static forRoot(config) {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'text',\n component: AXConversationTextMessageComponent,\n });\n registry.register({\n name: 'voice',\n component: AXConversationVoiceMessageComponent,\n });\n registry.register({\n name: 'file',\n component: AXConversationFileMessageComponent,\n });\n registry.register({\n name: 'audio',\n component: AXConversationMessageAudioComponent,\n });\n registry.register({\n name: 'image',\n component: AXConversationMessageImageComponent,\n });\n registry.register({\n name: 'video',\n component: AXConversationMessageVideoComponent,\n });\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor() {\n const instances = inject('AXChatModuleFactory', { optional: true });\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationModule, imports: [CommonModule,\n FormsModule,\n AsyncPipe,\n AXRippleDirective,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n CdkPortalOutlet,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule, AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent], exports: [AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationModule, providers: [AXPopupService], imports: [CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule, AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationMessageAudioComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.2\", ngImport: i0, type: AXConversationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFF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ZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFZpcnR1YWxTY3JvbGxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay92aXJ0dWFsLXNjcm9sbCc7XG5pbXBvcnQgeyBBWEF1ZGlvV2F2ZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdWRpby13YXZlJztcbmltcG9ydCB7IEFYQXZhdGFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDaXJjdWxhclByb2dyZXNzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NpcmN1bGFyLXByb2dyZXNzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEZpbGVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQXVkaW9Db21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQvY29udmVyc2F0aW9uLW1lc3NhZ2UtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12b2ljZS9jb252ZXJzYXRpb24tbWVzc2FnZS12b2ljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJy4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXR5cGUtcmVnaXN0cnkuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDaGF0TW9kdWxlQ29uZmlnIHtcbiAgdHlwZXM6IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVbXTtcbn1cblxuY29uc3QgQ09NUE9ORU5UID0gW1xuICBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxuICBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uTWVzc2FnZVZpZGVvQ29tcG9uZW50LFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEFzeW5jUGlwZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgQVhEcm9wZG93bk1vZHVsZSxcbiAgQVhGb3JtYXRNb2R1bGUsXG4gIEFYQXVkaW9XYXZlTW9kdWxlLFxuICBBWENpcmN1bGFyUHJvZ3Jlc3NNb2R1bGUsXG4gIEFYRGF0ZVRpbWVNb2R1bGUsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWEF2YXRhck1vZHVsZSxcbiAgQVhQb3BvdmVyTW9kdWxlLFxuICBBWEZpbGVNb2R1bGUsXG4gIEFYUmFuZ2VTbGlkZXJNb2R1bGUsXG4gIEFYVmlydHVhbFNjcm9sbE1vZHVsZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbQVhQb3B1cFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYQ2hhdE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhDb252ZXJzYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYQ29udmVyc2F0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhDaGF0TW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy50eXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy50eXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvblRleHRNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd2b2ljZScsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2F1ZGlvJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd2aWRlbycsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc/OiBBWENoYXRNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYQ29udmVyc2F0aW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWENvbnZlcnNhdGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYQ2hhdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8udHlwZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlciguLi5jb25maWcudHlwZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IGluc3RhbmNlcyA9IGluamVjdDxhbnlbXT4oJ0FYQ2hhdE1vZHVsZUZhY3RvcnknIGFzIGFueSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGluc3RhbmNlcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtY29udmVyc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2Fjb3JleC1jb21wb25lbnRzLWNvbnZlcnNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-conversation.mjs","sources":["../tmp-esm2022/conversation/lib/classes/events.interface.js","../tmp-esm2022/conversation/lib/services/conversation.service.js","../tmp-esm2022/conversation/lib/services/recording.service.js","../tmp-esm2022/conversation/lib/conversation-container/conversation-container.component.js","../tmp-esm2022/conversation/lib/conversation-input/conversation-input.component.js","../tmp-esm2022/conversation/lib/services/conversation-message-type-registry.service.js","../tmp-esm2022/conversation/lib/conversation-message/conversation-message.component.js","../tmp-esm2022/conversation/lib/conversation.types.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-audio/conversation-message-audio.component.js","../tmp-esm2022/conversation/lib/conversation-view/conversation-view.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-file/conversation-message-file.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-image-popup/conversation-message-image-popup.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-image/conversation-message-image.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-text/conversation-message-text.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-video/conversation-message-video.component.js","../tmp-esm2022/conversation/lib/conversation-messages/conversation-message-voice/conversation-message-voice.component.js","../tmp-esm2022/conversation/lib/conversation.module.js","../tmp-esm2022/conversation/acorex-components-conversation.js"],"sourcesContent":["import { AXEvent } from '@acorex/cdk/common';\nexport class AXConversationActionEvent extends AXEvent {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY2xhc3Nlcy9ldmVudHMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWUsTUFBTSxvQkFBb0IsQ0FBQztBQUsxRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsT0FBTztDQUVyRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBBWElucHV0RmlsZUNoYW5nZSBleHRlbmRzIEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+IHtcbiAgZGF0YT86IGFueTtcbn1cbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkFjdGlvbkV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XG4gIGRhdGE6IGFueTtcbn1cbiJdfQ==","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationService {\n constructor() {\n this.replyId = signal('', ...(ngDevMode ? [{ debugName: \"replyId\" }] : []));\n this.chats = signal([], ...(ngDevMode ? [{ debugName: \"chats\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUluRCxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBRUUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxFQUFFLG1EQUFDLENBQUM7UUFDckIsVUFBSyxHQUFHLE1BQU0sQ0FBMEIsRUFBRSxpREFBQyxDQUFDO0tBQzdDOzhHQUhZLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25TZXJ2aWNlIHtcbiAgcmVwbHlJZCA9IHNpZ25hbCgnJyk7XG4gIGNoYXRzID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZVtdPihbXSk7XG59XG4iXX0=","import { Injectable, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXRecordingService {\n constructor() {\n this.audioBlobs = [];\n this.streamBeingCaptured = null;\n this.timer = signal('00:0', ...(ngDevMode ? [{ debugName: \"timer\" }] : []));\n this.time = {\n seconds: 0,\n minutes: 0,\n hours: 0,\n };\n }\n startRecording() {\n if (!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia)) {\n return Promise.reject(new Error('mediaDevices API or getUserMedia method is not supported in this browser.'));\n }\n else {\n return navigator.mediaDevices.getUserMedia({ audio: true }).then((stream) => {\n this.streamBeingCaptured = stream;\n this.mediaRecorder = new MediaRecorder(stream);\n this.audioBlobs = [];\n this.mediaRecorder.addEventListener('dataavailable', (event) => {\n this.audioBlobs.push(event.data);\n });\n this.mediaRecorder.start();\n this.timerInterval = setInterval(() => {\n this.calculateTime();\n }, 1000);\n });\n }\n }\n endRecording() {\n return new Promise((resolve) => {\n const mimeType = this.mediaRecorder?.mimeType;\n this.mediaRecorder?.addEventListener('stop', () => {\n const audioBlob = new Blob(this.audioBlobs, { type: mimeType });\n resolve(audioBlob);\n });\n this.mediaRecorder?.stop();\n this.streamBeingCaptured.getTracks().forEach((track) => track.stop());\n this.mediaRecorder = null;\n this.streamBeingCaptured = null;\n this.resetTimer();\n });\n }\n calculateTime() {\n this.time.seconds++;\n if (this.time.seconds >= 60) {\n this.time.seconds = 0;\n this.time.minutes++;\n if (this.time.minutes >= 60) {\n this.time.minutes = 0;\n this.time.hours++;\n }\n }\n const formattedTime = (this.time.hours > 0 ? this.time.hours + ':' : '') +\n (this.time.minutes < 10 ? '0' + this.time.minutes : this.time.minutes) +\n ':' +\n (this.time.seconds < 10 ? '0' + this.time.seconds : this.time.seconds);\n this.timer.set(formattedTime);\n }\n resetTimer() {\n clearInterval(this.timerInterval);\n this.time.seconds = 0;\n this.time.minutes = 0;\n this.time.hours = 0;\n this.timer.set('00:0');\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXRecordingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXRecordingService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXRecordingService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkaW5nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3NlcnZpY2VzL3JlY29yZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHbkUsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVFLGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFdkIsd0JBQW1CLEdBQVEsSUFBSSxDQUFDO1FBRWhDLFVBQUssR0FBMkIsTUFBTSxDQUFDLE1BQU0saURBQUMsQ0FBQztRQUVyQyxTQUFJLEdBQUc7WUFDZixPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDO0tBaUVIO0lBN0RDLGNBQWM7UUFDWixJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsMkVBQTJFLENBQUMsQ0FBQyxDQUFDO1FBQ2hILENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxTQUFTLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMxRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGFBQWEsQ0FB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QyxhQUFhLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QixDQUFDOzhHQTNFVSxrQkFBa0I7a0hBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFdyaXRhYmxlU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYUmVjb3JkaW5nU2VydmljZSB7XG4gIGF1ZGlvQmxvYnM6IGFueVtdID0gW107XG4gIG1lZGlhUmVjb3JkZXI6IE1lZGlhUmVjb3JkZXIgfCBudWxsO1xuICBzdHJlYW1CZWluZ0NhcHR1cmVkOiBhbnkgPSBudWxsO1xuXG4gIHRpbWVyOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcwMDowJyk7XG5cbiAgcHJvdGVjdGVkIHRpbWUgPSB7XG4gICAgc2Vjb25kczogMCxcbiAgICBtaW51dGVzOiAwLFxuICAgIGhvdXJzOiAwLFxuICB9O1xuXG4gIHByb3RlY3RlZCB0aW1lckludGVydmFsO1xuXG4gIHN0YXJ0UmVjb3JkaW5nKCkge1xuICAgIGlmICghKG5hdmlnYXRvci5tZWRpYURldmljZXMgJiYgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCdtZWRpYURldmljZXMgQVBJIG9yIGdldFVzZXJNZWRpYSBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCBpbiB0aGlzIGJyb3dzZXIuJykpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoeyBhdWRpbzogdHJ1ZSB9KS50aGVuKChzdHJlYW0pID0+IHtcbiAgICAgICAgdGhpcy5zdHJlYW1CZWluZ0NhcHR1cmVkID0gc3RyZWFtO1xuICAgICAgICB0aGlzLm1lZGlhUmVjb3JkZXIgPSBuZXcgTWVkaWFSZWNvcmRlcihzdHJlYW0pO1xuICAgICAgICB0aGlzLmF1ZGlvQmxvYnMgPSBbXTtcbiAgICAgICAgdGhpcy5tZWRpYVJlY29yZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2RhdGFhdmFpbGFibGUnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmF1ZGlvQmxvYnMucHVzaChldmVudC5kYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubWVkaWFSZWNvcmRlci5zdGFydCgpO1xuICAgICAgICB0aGlzLnRpbWVySW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYWxjdWxhdGVUaW1lKCk7XG4gICAgICAgIH0sIDEwMDApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZW5kUmVjb3JkaW5nKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgY29uc3QgbWltZVR5cGUgPSB0aGlzLm1lZGlhUmVjb3JkZXI/Lm1pbWVUeXBlO1xuICAgICAgdGhpcy5tZWRpYVJlY29yZGVyPy5hZGRFdmVudExpc3RlbmVyKCdzdG9wJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBhdWRpb0Jsb2IgPSBuZXcgQmxvYih0aGlzLmF1ZGlvQmxvYnMsIHsgdHlwZTogbWltZVR5cGUgfSk7XG4gICAgICAgIHJlc29sdmUoYXVkaW9CbG9iKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZWRpYVJlY29yZGVyPy5zdG9wKCk7XG4gICAgICB0aGlzLnN0cmVhbUJlaW5nQ2FwdHVyZWQuZ2V0VHJhY2tzKCkuZm9yRWFjaCgodHJhY2spID0+IHRyYWNrLnN0b3AoKSk7XG4gICAgICB0aGlzLm1lZGlhUmVjb3JkZXIgPSBudWxsO1xuICAgICAgdGhpcy5zdHJlYW1CZWluZ0NhcHR1cmVkID0gbnVsbDtcbiAgICAgIHRoaXMucmVzZXRUaW1lcigpO1xuICAgIH0pO1xuICB9XG5cbiAgY2FsY3VsYXRlVGltZSgpIHtcbiAgICB0aGlzLnRpbWUuc2Vjb25kcysrO1xuICAgIGlmICh0aGlzLnRpbWUuc2Vjb25kcyA+PSA2MCkge1xuICAgICAgdGhpcy50aW1lLnNlY29uZHMgPSAwO1xuICAgICAgdGhpcy50aW1lLm1pbnV0ZXMrKztcbiAgICAgIGlmICh0aGlzLnRpbWUubWludXRlcyA+PSA2MCkge1xuICAgICAgICB0aGlzLnRpbWUubWludXRlcyA9IDA7XG4gICAgICAgIHRoaXMudGltZS5ob3VycysrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFRpbWUgPVxuICAgICAgKHRoaXMudGltZS5ob3VycyA+IDAgPyB0aGlzLnRpbWUuaG91cnMgKyAnOicgOiAnJykgK1xuICAgICAgKHRoaXMudGltZS5taW51dGVzIDwgMTAgPyAnMCcgKyB0aGlzLnRpbWUubWludXRlcyA6IHRoaXMudGltZS5taW51dGVzKSArXG4gICAgICAnOicgK1xuICAgICAgKHRoaXMudGltZS5zZWNvbmRzIDwgMTAgPyAnMCcgKyB0aGlzLnRpbWUuc2Vjb25kcyA6IHRoaXMudGltZS5zZWNvbmRzKTtcblxuICAgIHRoaXMudGltZXIuc2V0KGZvcm1hdHRlZFRpbWUpO1xuICB9XG5cbiAgcmVzZXRUaW1lcigpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMudGltZXJJbnRlcnZhbCk7XG4gICAgdGhpcy50aW1lLnNlY29uZHMgPSAwO1xuICAgIHRoaXMudGltZS5taW51dGVzID0gMDtcbiAgICB0aGlzLnRpbWUuaG91cnMgPSAwO1xuICAgIHRoaXMudGltZXIuc2V0KCcwMDowJyk7XG4gIH1cbn1cbiJdfQ==","import { AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/cdk/common';\nimport { Component, effect, forwardRef, inject, input, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A container for displaying and managing conversations.\n * @category Components\n */\nexport class AXConversationContainerComponent {\n constructor() {\n this.chatData = input([], ...(ngDevMode ? [{ debugName: \"chatData\" }] : []));\n this.conversationService = inject(AXConversationService);\n this.#init = effect(() => {\n this.conversationService.chats.set(this.chatData());\n }, ...(ngDevMode ? [{ debugName: \"#init\" }] : []));\n }\n #init;\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.3\", type: AXConversationContainerComponent, isStandalone: true, selector: \"ax-conversation-container\", inputs: { chatData: { classPropertyName: \"chatData\", publicName: \"chatData\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [\n { provide: AXComponent, useExisting: AXConversationContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationContainerComponent },\n { provide: AXValuableComponent, useExisting: AXConversationContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationContainerComponent),\n multi: true,\n },\n AXConversationService,\n AXRecordingService,\n ], ngImport: i0, template: \"<div class=\\\"ax-conversation-container\\\">\\n <ng-content> </ng-content>\\n</div>\\n\", styles: [\"ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-surface);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-surface);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary-light-surface);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-on-primary-dark-surface);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-on-primary-light-surface)}ax-conversation-container{width:100%;display:block}ax-conversation-container>.ax-editor-container{display:block;height:100%!important}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationContainerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-container', encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXComponent, useExisting: AXConversationContainerComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationContainerComponent },\n { provide: AXValuableComponent, useExisting: AXConversationContainerComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationContainerComponent),\n multi: true,\n },\n AXConversationService,\n AXRecordingService,\n ], template: \"<div class=\\\"ax-conversation-container\\\">\\n <ng-content> </ng-content>\\n</div>\\n\", styles: [\"ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-surface);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-surface);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary-lightest-surface);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary-light-surface);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-lightest-surface);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-dark-surface);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-on-primary-dark-surface);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-lighter-surface);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-on-primary-lighter-surface);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-darkest-surface);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-light-surface);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-on-primary-light-surface)}ax-conversation-container{width:100%;display:block}ax-conversation-container>.ax-editor-container{display:block;height:100%!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRW5FOzs7R0FHRztBQW1CSCxNQUFNLE9BQU8sZ0NBQWdDO0lBbEI3QztRQW1CRSxhQUFRLEdBQUcsS0FBSyxDQUEwQixFQUFFLG9EQUFDLENBQUM7UUFDdEMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUQsVUFBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdEQsQ0FBQyxpREFBQyxDQUFDO0tBQ0o7SUFIQyxLQUFLLENBRUY7OEdBTlEsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0MscU5BYmhDO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRTtZQUN2RSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZ0NBQWdDLEVBQUU7WUFDaEYsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGdDQUFnQyxFQUFFO1lBQy9FO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7Z0JBQy9ELEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxxQkFBcUI7WUFDckIsa0JBQWtCO1NBQ25CLDBCQzNCSCxtRkFHQTs7MkZEMEJhLGdDQUFnQztrQkFsQjVDLFNBQVM7K0JBQ0UsMkJBQTJCLGlCQUd0QixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUN2RSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUNoRixFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLGtDQUFrQyxFQUFFO3dCQUMvRTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxpQ0FBaUMsQ0FBQzs0QkFDL0QsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QscUJBQXFCO3dCQUNyQixrQkFBa0I7cUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQsIEFYRm9jdXNhYmxlQ29tcG9uZW50LCBBWFZhbHVhYmxlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZWZmZWN0LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhSZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEEgY29udGFpbmVyIGZvciBkaXNwbGF5aW5nIGFuZCBtYW5hZ2luZyBjb252ZXJzYXRpb25zLlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbkNvbnRhaW5lckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICBBWENvbnZlcnNhdGlvblNlcnZpY2UsXG4gICAgQVhSZWNvcmRpbmdTZXJ2aWNlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkNvbnRhaW5lckNvbXBvbmVudCB7XG4gIGNoYXREYXRhID0gaW5wdXQ8QVhDb252ZXJzYXRpb25NZXNzYWdlW10+KFtdKTtcbiAgcHJpdmF0ZSBjb252ZXJzYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uU2VydmljZSk7XG5cbiAgI2luaXQgPSBlZmZlY3QoKCkgPT4ge1xuICAgIHRoaXMuY29udmVyc2F0aW9uU2VydmljZS5jaGF0cy5zZXQodGhpcy5jaGF0RGF0YSgpKTtcbiAgfSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRhaW5lclwiPlxuICA8bmctY29udGVudD4gPC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=","import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorIconComponent, AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownPanelComponent } from '@acorex/components/dropdown';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, ViewChild, ViewEncapsulation, computed, contentChild, forwardRef, inject, input, output, signal, } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport { AXConversationService } from '../services/conversation.service';\nimport { AXRecordingService } from '../services/recording.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@acorex/components/decorators\";\n/**\n * An input component for entering conversation messages.\n *\n * @category Components\n */\nexport class AXConversationInputComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.sendIcon = contentChild('ax-icon', ...(ngDevMode ? [{ debugName: \"sendIcon\" }] : []));\n this.onActionClose = output();\n this.conversationService = inject(AXConversationService);\n this.chats = computed(() => {\n return this.conversationService.chats();\n }, ...(ngDevMode ? [{ debugName: \"chats\" }] : []));\n this.actionIcon = signal(null, ...(ngDevMode ? [{ debugName: \"actionIcon\" }] : []));\n this.actionContent = signal(null, ...(ngDevMode ? [{ debugName: \"actionContent\" }] : []));\n this.actionShowState = signal(false, ...(ngDevMode ? [{ debugName: \"actionShowState\" }] : []));\n this.actionUser = signal(null, ...(ngDevMode ? [{ debugName: \"actionUser\" }] : []));\n this.actionCloseCallback = signal(() => {\n return;\n }, ...(ngDevMode ? [{ debugName: \"actionCloseCallback\" }] : []));\n this.replyChat = computed(() => {\n const findMessage = this.chats().find((item) => item.id === this.conversationService.replyId());\n return findMessage;\n }, ...(ngDevMode ? [{ debugName: \"replyChat\" }] : []));\n /** Maximum length of input text */\n this.maxLength = input(...(ngDevMode ? [undefined, { debugName: \"maxLength\" }] : []));\n /** Indicates if an attachment is present */\n this.hasAttachment = input(true, ...(ngDevMode ? [{ debugName: \"hasAttachment\" }] : []));\n /** Indicates if voice recording is enabled */\n this.hasVoice = input(true, ...(ngDevMode ? [{ debugName: \"hasVoice\" }] : []));\n this.hasEmoji = input(true, ...(ngDevMode ? [{ debugName: \"hasEmoji\" }] : []));\n this.isLoading = input(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n /** Acceptable file types for attachment */\n this.acceptFileType = input('*', ...(ngDevMode ? [{ debugName: \"acceptFileType\" }] : []));\n /**\n * Emitted when the send button is clicked.\n *\n * @event\n */\n this.onSendClick = output();\n /**\n * Emitted when recording starts.\n *\n * @event\n */\n this.onStartRecording = output();\n /**\n * Emitted when recording is canceled.\n *\n * @event\n */\n this.onCancelRecording = output();\n this.onEnterPressed = output();\n /**\n * @ignore\n */\n this.recording = signal(false, ...(ngDevMode ? [{ debugName: \"recording\" }] : []));\n /**\n * @ignore\n */\n this.recordingService = inject(AXRecordingService);\n /**\n * @ignore\n */\n this._updateOn = 'change';\n this.shiftState = false;\n }\n setActionBoxContainer(icon, content, user, closeCallback) {\n this.actionIcon.set(icon);\n this.actionContent.set(content);\n this.actionShowState.set(true);\n this.actionUser.set(user);\n this.actionCloseCallback.set(closeCallback);\n }\n /**\n * @ignore\n */\n _handleModelChange(value) {\n this.commitValue(value, true);\n }\n /**\n * Initiates recording when the record button is clicked.\n * Emits an event when recording starts.\n * @ignore\n */\n handleRecordClick() {\n this.recording.set(true);\n this.recordingService\n ?.startRecording()\n .then(() => {\n this.onStartRecording.emit({\n component: this,\n data: { recording: true },\n isUserInteraction: true,\n });\n })\n .catch((e) => {\n throw e;\n });\n }\n /**\n * Cancels the recording and emits an event to indicate cancellation.\n * @ignore\n */\n handleCancelRecordingClick() {\n this.recording.set(false);\n this.onCancelRecording.emit({\n component: this,\n data: { value: null },\n });\n }\n keyDownHandler(e) {\n if (e.key === 'Shift') {\n this.shiftState = true;\n }\n this.onKeyDown.emit({\n component: this,\n nativeEvent: e,\n });\n }\n keyUpHandler(e) {\n if (e.key === 'Shift') {\n this.shiftState = false;\n }\n this.onKeyUp.emit({\n component: this,\n nativeEvent: e,\n });\n }\n keyPressHandler(e) {\n if (e.key === 'Enter' && !this.shiftState) {\n e.preventDefault();\n this.onEnterPressed.emit({ component: this });\n }\n this.onKeyPress.emit({\n component: this,\n nativeEvent: e,\n });\n }\n /**\n * Opens the file picker for attachment.\n * @ignore\n */\n handleAttachClick() {\n this.inputFile.nativeElement.click();\n }\n /**\n * Emits the selected files when the file input changes.\n * @ignore\n */\n handleChangeFile(event) {\n this.onSendClick.emit({\n component: this,\n data: { value: event.target.files, type: 'file' },\n });\n }\n /**\n * Emits the text value and optional replyChat when the send button is clicked.\n * @ignore\n */\n handleSendClick() {\n this.onSendClick.emit({\n component: this,\n data: { value: this.value, replyChat: this.replyChat() || null, type: 'text' },\n isUserInteraction: true,\n });\n this.actionShowState.set(false);\n }\n /**\n * Ends recording and emits the recorded voice data when the send voice button is clicked.\n * @ignore\n */\n handleSendVoiceClick() {\n this.recordingService.endRecording().then((c) => {\n this.recording.set(false);\n this.onSendClick.emit({\n component: this,\n data: { value: c, type: 'voice' },\n isUserInteraction: true,\n });\n });\n }\n /**\n * Clears the reply ID when closing a reply.\n * @ignore\n */\n closeReplyHandler() {\n this.actionShowState.set(false);\n this.actionCloseCallback();\n this.onActionClose.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationInputComponent, isStandalone: true, selector: \"ax-conversation-input\", inputs: { look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: \"placeholder\", publicName: \"placeholder\", isSignal: false, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: \"maxLength\", publicName: \"maxLength\", isSignal: true, isRequired: false, transformFunction: null }, hasAttachment: { classPropertyName: \"hasAttachment\", publicName: \"hasAttachment\", isSignal: true, isRequired: false, transformFunction: null }, hasVoice: { classPropertyName: \"hasVoice\", publicName: \"hasVoice\", isSignal: true, isRequired: false, transformFunction: null }, hasEmoji: { classPropertyName: \"hasEmoji\", publicName: \"hasEmoji\", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: \"isLoading\", publicName: \"isLoading\", isSignal: true, isRequired: false, transformFunction: null }, acceptFileType: { classPropertyName: \"acceptFileType\", publicName: \"acceptFileType\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionClose: \"onActionClose\", onSendClick: \"onSendClick\", onStartRecording: \"onStartRecording\", onCancelRecording: \"onCancelRecording\", onEnterPressed: \"onEnterPressed\" }, providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ], queries: [{ propertyName: \"sendIcon\", first: true, predicate: [\"ax-icon\"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: \"inputFile\", first: true, predicate: [\"inputFile\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"@if (actionShowState()) {\\n <div class=\\\"ax-editor-reply-container ax-editor-container ax-{{ look }}\\\">\\n @if (actionUser()) {\\n <ax-text> {{ actionUser() }}</ax-text>\\n }\\n <div class=\\\"ax-reply-container\\\">\\n <div class=\\\"ax-reply-start\\\">\\n <i [class]=\\\"actionIcon()\\\"></i>\\n <p>{{ actionContent() }}</p>\\n </div>\\n <i (click)=\\\"closeReplyHandler()\\\" class=\\\"fa-solid fa-xmark ax-cursor-pointer\\\"></i>\\n </div>\\n </div>\\n}\\n\\n<div class=\\\"ax-conversation-input ax-editor-container ax-{{ look }}\\\" [class.ax-state-recording]=\\\"recording()\\\">\\n @if (recording()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <span class=\\\"ax-record-dot\\\"></span>\\n <span>{{ recordingService.timer() }}</span>\\n </div>\\n <div class=\\\"ax-conversation-input-main-side\\\">\\n <ax-button\\n class=\\\"ax-sm\\\"\\n look=\\\"blank\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:common.actions.cancel' | translate | async\\\"\\n (onClick)=\\\"handleCancelRecordingClick()\\\"\\n ></ax-button>\\n </div>\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n <ax-button look=\\\"solid\\\" color=\\\"danger\\\" class=\\\"ax-blob ax-sm\\\" (onClick)=\\\"handleSendVoiceClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-send\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n } @else {\\n @if (hasEmoji()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-emoji\\\"></i>\\n </ax-icon>\\n <ax-dropdown-panel>\\n <ng-container>\\n <div class=\\\"ax-emoji-container\\\">\\n <div>\\u26A0\\uFE0F</div>\\n <div>\\u27A1\\uFE0F</div>\\n <div>\\uD83D\\uDD03</div>\\n <div>\\uD83D\\uDD37</div>\\n <div>\\uD83E\\uDD1A</div>\\n <div>\\uD83D\\uDE02</div>\\n <div>\\uD83D\\uDE0A</div>\\n </div>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <textarea\\n class=\\\"ax-conversation-input-main-side\\\"\\n oninput='this.style.height = \\\"\\\";this.style.height = this.scrollHeight + \\\"px\\\"'\\n type=\\\"text\\\"\\n rows=\\\"1\\\"\\n [id]=\\\"id\\\"\\n [name]=\\\"name\\\"\\n [attr.placeholder]=\\\"placeholder\\\"\\n [attr.maxlength]=\\\"maxLength()\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [tabindex]=\\\"tabIndex\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n [ngModelOptions]=\\\"{ updateOn: _updateOn }\\\"\\n (keydown)=\\\"keyDownHandler($event)\\\"\\n (keyup)=\\\"keyUpHandler($event)\\\"\\n (keypress)=\\\"keyPressHandler($event)\\\"\\n (focus)=\\\"emitOnFocusEvent($event)\\\"\\n (blur)=\\\"emitOnBlurEvent($event)\\\"\\n >\\n </textarea>\\n\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n @if (!value) {\\n @if (hasAttachment()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleAttachClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-attach\\\"></i>\\n </ax-icon>\\n </ax-button>\\n <input\\n multiple\\n #inputFile\\n [accept]=\\\"acceptFileType()\\\"\\n type=\\\"file\\\"\\n class=\\\"ax-attach-input\\\"\\n (change)=\\\"handleChangeFile($event)\\\"\\n />\\n }\\n @if (hasVoice()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleRecordClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-mic\\\"></i>\\n </ax-icon>\\n </ax-button>\\n }\\n } @else {\\n <ax-button [disabled]=\\\"isLoading()\\\" look=\\\"solid\\\" color=\\\"primary\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleSendClick()\\\">\\n @if (isLoading()) {\\n <ax-loading-spinner color=\\\"primary\\\"></ax-loading-spinner>\\n } @else {\\n @if (sendIcon()) {\\n <ng-content select=\\\"ax-icon\\\"></ng-content>\\n } @else {\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-arrow-long-up\\\"></i>\\n </ax-icon>\\n }\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n\", styles: [\".ax-action-list{display:flex;gap:.25rem}.ax-action-list.ax-action-list-horizontal{flex-direction:row}.ax-action-list.ax-action-list-horizontal ax-divider{width:0px;height:auto;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list.ax-action-list-vertical{flex-direction:column}.ax-action-list.ax-action-list-vertical .ax-action-item>div.ax-action-item-prefix ax-prefix{min-width:1rem}.ax-action-list.ax-action-list-vertical ax-divider{height:1px;width:100%}.ax-action-list ax-title{opacity:.5;display:block;font-size:.75rem;line-height:1rem;font-weight:bolder;text-transform:uppercase;padding-block:var(--ax-comp-action-item-padding-block, .25rem);padding-inline:var(--ax-comp-action-item-padding-inline, calc(var(--ax-comp-action-item-padding-inline, .875rem) / 3 * 2))}.ax-action-list ax-divider{display:block;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list ax-text{white-space:nowrap}.ax-action-list .ax-action-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;height:2.25rem;width:100%;cursor:pointer;padding-inline:var(--ax-comp-action-item-padding-inline, .875rem)}.ax-action-list .ax-action-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-prefix,.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-suffix{opacity:1}.ax-action-list .ax-action-item>div{display:flex;align-items:center;justify-content:center}.ax-action-list .ax-action-item>div.ax-action-item-prefix,.ax-action-list .ax-action-item>div.ax-action-item-suffix{gap:.5rem}.ax-action-list .ax-action-item ax-prefix{display:flex;gap:.5rem}.ax-action-list .ax-action-item ax-suffix ax-text{color:rgba(var(--ax-sys-body-text-color));opacity:.5;font-weight:lighter}.ax-action-sheet-panel{--ax-comp-action-sheet-border-radius-size: var(--ax-sys-border-radius);overflow:hidden;border-top-left-radius:var(--ax-comp-action-sheet-border-radius-size);border-top-right-radius:var(--ax-comp-action-sheet-border-radius-size);background-color:rgba(var(--ax-sys-color-surface-lowest));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);animation:1s both ax-fadeInUp;animation-duration:var(--ax-sys-transition-duration)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}@-moz-document url-prefix(){*{scrollbar-color:var(--ax-sys-scroller-thumb-color) var(--ax-sys-scroller-track-color)}}.ax-checkbox{margin:0;height:1rem;min-width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:.25rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-checkbox:checked,.ax-checkbox:indeterminate{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-checkbox:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\\\")}.ax-checkbox:indeterminate{background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIzIiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPjwvc3ZnPg==)}.ax-checkbox:focus-visible,.ax-checkbox:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-checkbox:disabled{cursor:not-allowed;opacity:.5}.ax-drop-down{display:contents}.ax-drop-down .ax-dropdown-content{display:flex;flex:1 1 0%;align-items:center;overflow-x:auto;overflow-y:hidden;font-size:.875rem;line-height:1.25rem;text-transform:capitalize}.ax-drop-down .ax-dropdown-content.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-overlay-pane{margin:.25rem 0;min-width:10rem;width:100%;height:fit-content;overflow:hidden;border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-top-left-radius:var(--ax-comp-drop-down-border-top-left-radius, var(--ax-sys-border-radius));border-top-right-radius:var(--ax-comp-drop-down-border-top-right-radius, var(--ax-sys-border-radius));border-bottom-left-radius:var(--ax-comp-drop-down-border-bottom-left-radius, var(--ax-sys-border-radius));border-bottom-right-radius:var(--ax-comp-drop-down-border-bottom-right-radius, var(--ax-sys-border-radius))}@media (min-width: 320px) and (max-width: 640px){.ax-overlay-pane{margin:0}}.ax-overlay-pane ax-header,.ax-overlay-pane ax-footer{background-color:rgba(var(--ax-sys-color-lightest-surface));padding:.75rem}.ax-overlay-pane.ax-overlay-center{height:fit-content;width:80vw;max-width:90vh}.ax-overlay-pane.ax-overlay-actionsheet{height:auto;max-height:85vh;width:100%;background-color:rgba(var(--ax-sys-color-lightest-surface))}.ax-overlay-pane.ax-overlay-actionsheet.ax-full{height:95vh;max-height:95vh}.ax-overlay-pane.ax-overlay-full{width:100vw;height:100vh}.ax-dark .ax-overlay-pane{background-color:rgba(var(--ax-sys-color-darker-surface));border-color:rgba(var(--ax-sys-color-border-darker-surface))}:root,.ax-editor-container{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-space-block-size: .5rem;--ax-comp-editor-height: var(--ax-sys-size-base);--ax-comp-editor-placeholder-space-x: .75rem;--ax-comp-editor-error-bg-color: var(--ax-sys-color-danger-light-surface);--ax-comp-editor-error-text-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-error-border-color: var(--ax-sys-color-border-danger-surface);--ax-comp-editor-error-box-shadow-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-surface);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-box-outline-width: 1px;--ax-comp-editor-box-outline-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-placeholder-opacity: .5;--ax-comp-editor-focused-border-color: var(--ax-sys-color-border-primary-surface);--ax-comp-editor-focused-box-shadow-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-border-width: 0px}.ax-editor-container{display:flex;align-items:center;overflow:hidden;width:100%;height:var(--ax-comp-editor-height);font-size:var(--ax-comp-editor-font-size);border-radius:var(--ax-comp-editor-border-radius);border-width:var(--ax-comp-editor-border-width);border-color:rgba(var(--ax-comp-editor-border-color));background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));position:relative;gap:var(--ax-comp-editor-gap);padding-inline-end:var(--ax-comp-editor-space-end-size);padding-inline-start:var(--ax-comp-editor-space-start-size);justify-content:space-between}.ax-editor-container .ax-icon{font-size:var(--ax-comp-editor-icon-font-size)}.ax-editor-container:has(>ax-prefix){padding-inline-start:0}.ax-editor-container:has(>ax-prefix)>ax-prefix{padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix)>ax-prefix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-start-size: 0px}.ax-editor-container:has(>ax-suffix){padding-inline-end:0}.ax-editor-container:has(>ax-suffix)>ax-suffix{padding-inline-end:var(--ax-comp-editor-space-end-size)}.ax-editor-container:has(>ax-suffix)>ax-suffix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-end-size: 0px}.ax-editor-container:not(.ax-state-disabled):focus-within{border-color:rgba(var(--ax-comp-editor-focused-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-style:solid;outline-color:rgba(var(--ax-comp-editor-focused-border-color))}.ax-editor-container.ax-state-error{border-color:rgba(var(--ax-comp-editor-error-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-color:rgba(var(--ax-comp-editor-error-border-color));outline-style:solid}.ax-editor-container.ax-state-error:focus-within{border-color:rgba(var(--ax-comp-editor-error-border-color))}.ax-editor-container.ax-state-error .ax-input .ax-placeholder,.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-comp-editor-error-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-flat{--ax-comp-editor-border-width: 2px;--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;border-width:0px!important;border-bottom-width:var(--ax-comp-editor-border-width)!important}.ax-editor-container.ax-fill{--ax-comp-editor-box-outline-width: 2px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-editor-container.ax-none{--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface)}.ax-editor-container .ax-editor-input{height:100%;flex:1 1 0%}.ax-editor-container .ax-editor-input .ax-input{height:100%}.ax-editor-container .ax-input{font-size:var(--ax-comp-editor-font-size);line-height:var(--ax-comp-editor-font-size);color:rgba(var(--ax-comp-editor-text-color));cursor:inherit}.ax-editor-container .ax-input .ax-placeholder,.ax-editor-container .ax-input::placeholder{font-size:inherit;font-weight:400;color:rgb(var(--ax-comp-editor-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container.ax-state-disabled{opacity:.5;cursor:not-allowed}.ax-editor-container .ax-editor-control{display:flex;height:100%;align-items:center;justify-content:center;padding-inline-start:.5rem;font-size:1.125rem;line-height:1.75rem;color:rgba(var(--ax-comp-editor-text-color))}.ax-editor-container.ax-button-icon{padding:0 .5rem}.ax-editor-container .ax-input,.ax-editor-container .ax-text-area{text-align:inherit;font-family:inherit;font-size:inherit;line-height:inherit;height:100%;width:100%;flex:1 1 0%;background-color:transparent;font-weight:inherit}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-text-area:focus{box-shadow:none}.ax-editor-container .ax-editor-button{font-size:var(--ax-comp-editor-button-font-size, var(--ax-comp-editor-font-size));height:var(--ax-comp-editor-button-height, 100%)}.ax-editor-container>ax-prefix,.ax-editor-container>ax-suffix{height:100%;max-width:fit-content}.ax-editor-container>ax-prefix ax-button,.ax-editor-container>ax-prefix ax-text,.ax-editor-container>ax-prefix ax-icon,.ax-editor-container>ax-prefix .ax-editor-container,.ax-editor-container>ax-suffix ax-button,.ax-editor-container>ax-suffix ax-text,.ax-editor-container>ax-suffix ax-icon,.ax-editor-container>ax-suffix .ax-editor-container{display:flex;height:100%;align-items:center;justify-content:center;border-radius:0}.ax-editor-container>ax-prefix ax-title,.ax-editor-container>ax-suffix ax-title{padding-left:1rem;padding-right:1rem}.ax-editor-container>ax-prefix>ax-text,.ax-editor-container>ax-suffix>ax-text{display:flex;align-items:center;justify-content:center}.ax-editor-container .ax-button{height:100%!important;border-radius:0!important}.ax-editor-container .ax-button.ax-button-icon{height:100%;width:var(--ax-comp-editor-height)}.ax-editor-container ax-popover{position:absolute}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-font-size: .75rem;--ax-comp-editor-space-start-size: .25rem;--ax-comp-editor-space-end-size: .25rem;--ax-comp-editor-button-font-size: .625rem;--ax-comp-editor-gap: .25rem;--ax-comp-editor-icon-font-size: .75rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .75rem;--ax-comp-editor-gap: .375rem;--ax-comp-editor-icon-font-size: .875rem}.ax-md .ax-editor-container,.ax-editor-container,.ax-editor-container.ax-md{--ax-comp-editor-space-start-size: .75rem;--ax-comp-editor-space-end-size: .75rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-icon-font-size: 1rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-font-size: 1.125rem;--ax-comp-editor-space-start-size: 1.125rem;--ax-comp-editor-space-end-size: 1.125rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .625rem;--ax-comp-editor-icon-font-size: 1.25rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-space-start-size: 1.5rem;--ax-comp-editor-space-end-size: 1.5rem;--ax-comp-editor-button-font-size: 1rem;--ax-comp-editor-gap: .75rem;--ax-comp-editor-icon-font-size: 1.5rem}ax-validation-rule{position:absolute}.ax-general-button{display:inline-flex;height:var(--ax-sys-size-base);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);padding-left:var(--ax-comp-general-button-padding-left, 1rem);padding-right:var(--ax-comp-general-button-padding-right, 1rem);font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-general-button:hover:not(.ax-general-button:hover:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity))}.ax-general-button:focus:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled),.ax-general-button:focus-visible:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled){color:rgba(var(--ax-sys-color-primary-700),var(--tw-text-opacity))}.ax-general-button:active:not(.ax-general-button:active:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-300),var(--tw-text-opacity))}.ax-general-button.ax-button-icon{padding-left:var(--ax-comp-general-button-padding-left, .5rem);padding-right:var(--ax-comp-general-button-padding-right, .5rem);font-size:100%}.ax-general-button.ax-button-icon>button{display:flex}.ax-general-button.ax-button-rounded{border-radius:var(--ax-sys-border-radius)}.ax-general-button:disabled,.ax-general-button.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-clear-button{display:inline-flex;height:var(--ax-sys-size-base);align-items:center;justify-content:center;margin-left:.25rem;margin-right:.25rem;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-clear-button>button{display:flex}.ax-clear-button:hover:not(.ax-clear-button:hover:disabled,.ax-state-disabled){color:rgb(var(--ax-sys-color-on-surface),.5)}.ax-clear-button:focus:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled),.ax-clear-button:focus-visible:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled){color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-800))!important;color:rgba(var(--ax-sys-color-on-primary))!important}.ax-list{display:flex;height:100%;flex-direction:column;overflow:hidden;background-color:rgba(var(--ax-sys-color-surface));font-size:.875rem;line-height:1.25rem}@media (min-width: 768px){.ax-list{max-height:20rem}}.ax-list ax-header,.ax-list ax-footer{display:flex;align-items:center;justify-content:space-between;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))}.ax-list ax-header{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));padding:1rem;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){.ax-list ax-header{font-size:1.125rem;line-height:1.75rem}}.ax-list ax-header ax-prefix,.ax-list ax-header ax-suffix{display:flex;flex-direction:column;justify-items:start}.ax-list ax-header ax-prefix{align-items:flex-start}.ax-list ax-header ax-suffix{align-items:flex-end}.ax-list ax-footer{border-top-width:1px}.ax-list .ax-content{flex:1 1 0%;overflow-y:auto;overflow-x:hidden}.ax-list .ax-content.ax-list-items-container{height:100%;overflow-y:auto;padding-top:.5rem;padding-bottom:.5rem}.ax-list .ax-content.ax-list-items-container.ax-vertical{display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}.ax-list .ax-content.ax-list-items-container.ax-vertical.ax-divide{border-top-width:1px;border-bottom-width:1px}.ax-list .ax-content.ax-list-items-container.ax-default{cursor:pointer}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>span{display:flex;align-items:center;padding:.75rem;font-weight:500}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>ul{padding-left:.75rem;padding-right:.75rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group .ax-list-item{margin-bottom:.25rem;border-radius:var(--ax-sys-border-radius)}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item{position:relative;display:flex;height:var(--ax-sys-size-base);-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:1rem;line-height:1.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible{outline-width:2px;outline-offset:2px}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-checkbox .ax-checkbox-label{margin-inline-start:.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity))!important;color:rgba(var(--ax-sys-color-on-primary),var(--tw-text-opacity))!important}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-focus{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container .ax-list-loading-container{display:flex;justify-content:center;padding:.5rem}.ax-list .ax-search-box-container{padding:.5rem}.ax-list .ax-search-box-container.ax-state-hidden{display:none}.ax-radio{margin:0;height:1rem;min-height:1rem;min-width:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-radio:checked{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-radio:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\\\")}.ax-radio:focus-visible,.ax-radio:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-radio:disabled{cursor:not-allowed;opacity:.5}.ax-ripple{transform:scale(0);animation:ripple .5s linear;position:absolute;border-radius:9999rem!important}@keyframes ripple{to{transform:scale(4);opacity:0}}.ax-dark .ax-table thead{background-color:rgba(var(--ax-sys-color-surface))}.ax-table{width:100%;border-collapse:collapse;border-spacing:0;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));font-size:.875rem;line-height:1.25rem}.ax-table td{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:.75rem 1rem}.ax-table thead{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-surface))}.ax-table thead th{padding:.875rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}.ax-table.ax-table-alternate tbody tr:nth-child(2n){background-color:rgba(var(--ax-sys-color-lighter-surface))}.ax-table.ax-table-bordered thead th{border-top-width:0px!important}.ax-table.ax-table-bordered tbody tr:last-child td{border-bottom-width:0px!important}.ax-table.ax-table-bordered tbody tr td:last-child{border-bottom-width:0px!important}.ax-table.ax-table-bordered td,.ax-table.ax-table-bordered th{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-bordered td:first-child,.ax-table.ax-table-bordered th:first-child{border-inline-start-width:0px}.ax-table.ax-table-bordered td:last-child,.ax-table.ax-table-bordered th:last-child{border-inline-end-width:0px}@media screen and (max-width: 640px){.ax-table.ax-table-responsive{display:block;overflow-wrap:break-word;border-width:0px}.ax-table.ax-table-responsive thead{position:absolute;inset-inline-start:-100%;top:-100%}.ax-table.ax-table-responsive td{float:inline-start;clear:both;box-sizing:border-box;display:block;width:100%;padding:.375rem .625rem}.ax-table.ax-table-responsive td:last-child{border-width:0px}.ax-table.ax-table-responsive td:before{content:attr(data-label);display:block;font-weight:700}.ax-table.ax-table-responsive tr{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-responsive tr,.ax-table.ax-table-responsive tbody{float:inline-start;margin-bottom:.625rem;width:100%}}.ax-uploader-overlay-state{border-radius:inherit;pointer-events:none;position:absolute;inset-inline-start:0px;top:0;z-index:10;display:flex;height:100%;width:100%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background-color:rgba(var(--ax-sys-color-primary-200),.75);font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-sys-color-on-primary-tint));outline-style:dashed;outline-offset:-4px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ax-drop-zone>input{position:absolute;height:100%;width:100%;cursor:pointer;opacity:0}.ax-dark .ax-uploader-overlay-state{background-color:rgba(var(--ax-sys-color-primary-800),.75);color:rgba(var(--ax-sys-color-on-primary));outline-color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-input{width:100%;display:block}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-surface));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-surface),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface))}ax-conversation-input .ax-editor-reply-container{--ax-comp-editor-height: 100%;display:flex;flex-direction:column;align-items:flex-start;padding:.5rem}ax-conversation-input .ax-editor-reply-container .ax-reply-container{display:flex;justify-content:space-between;align-items:center;width:100%}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\\n\"], dependencies: [{ kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: AXDropdownPanelComponent, selector: \"ax-dropdown-panel\", inputs: [\"isOpen\", \"fitParent\", \"dropdownWidth\", \"position\", \"placement\", \"_target\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"component\", type: i2.AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationInputComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-input', inputs: ['look', 'placeholder'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [\n { provide: AXComponent, useExisting: AXConversationInputComponent },\n { provide: AXFocusableComponent, useExisting: AXConversationInputComponent },\n { provide: AXValuableComponent, useExisting: AXConversationInputComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXConversationInputComponent),\n multi: true,\n },\n ], imports: [\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXDropdownPanelComponent,\n FormsModule,\n AXLoadingSpinnerComponent,\n AsyncPipe,\n AXTranslatorPipe,\n AXDecoratorModule,\n ], template: \"@if (actionShowState()) {\\n <div class=\\\"ax-editor-reply-container ax-editor-container ax-{{ look }}\\\">\\n @if (actionUser()) {\\n <ax-text> {{ actionUser() }}</ax-text>\\n }\\n <div class=\\\"ax-reply-container\\\">\\n <div class=\\\"ax-reply-start\\\">\\n <i [class]=\\\"actionIcon()\\\"></i>\\n <p>{{ actionContent() }}</p>\\n </div>\\n <i (click)=\\\"closeReplyHandler()\\\" class=\\\"fa-solid fa-xmark ax-cursor-pointer\\\"></i>\\n </div>\\n </div>\\n}\\n\\n<div class=\\\"ax-conversation-input ax-editor-container ax-{{ look }}\\\" [class.ax-state-recording]=\\\"recording()\\\">\\n @if (recording()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <span class=\\\"ax-record-dot\\\"></span>\\n <span>{{ recordingService.timer() }}</span>\\n </div>\\n <div class=\\\"ax-conversation-input-main-side\\\">\\n <ax-button\\n class=\\\"ax-sm\\\"\\n look=\\\"blank\\\"\\n color=\\\"primary\\\"\\n [text]=\\\"'@acorex:common.actions.cancel' | translate | async\\\"\\n (onClick)=\\\"handleCancelRecordingClick()\\\"\\n ></ax-button>\\n </div>\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n <ax-button look=\\\"solid\\\" color=\\\"danger\\\" class=\\\"ax-blob ax-sm\\\" (onClick)=\\\"handleSendVoiceClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-send\\\"></i>\\n </ax-icon>\\n </ax-button>\\n </div>\\n } @else {\\n @if (hasEmoji()) {\\n <div class=\\\"ax-conversation-input-start-side\\\">\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-emoji\\\"></i>\\n </ax-icon>\\n <ax-dropdown-panel>\\n <ng-container>\\n <div class=\\\"ax-emoji-container\\\">\\n <div>\\u26A0\\uFE0F</div>\\n <div>\\u27A1\\uFE0F</div>\\n <div>\\uD83D\\uDD03</div>\\n <div>\\uD83D\\uDD37</div>\\n <div>\\uD83E\\uDD1A</div>\\n <div>\\uD83D\\uDE02</div>\\n <div>\\uD83D\\uDE0A</div>\\n </div>\\n </ng-container>\\n </ax-dropdown-panel>\\n </ax-button>\\n </div>\\n }\\n\\n <textarea\\n class=\\\"ax-conversation-input-main-side\\\"\\n oninput='this.style.height = \\\"\\\";this.style.height = this.scrollHeight + \\\"px\\\"'\\n type=\\\"text\\\"\\n rows=\\\"1\\\"\\n [id]=\\\"id\\\"\\n [name]=\\\"name\\\"\\n [attr.placeholder]=\\\"placeholder\\\"\\n [attr.maxlength]=\\\"maxLength()\\\"\\n [disabled]=\\\"disabled\\\"\\n [readonly]=\\\"readonly\\\"\\n [tabindex]=\\\"tabIndex\\\"\\n [ngModel]=\\\"value\\\"\\n (ngModelChange)=\\\"_handleModelChange($event)\\\"\\n [ngModelOptions]=\\\"{ updateOn: _updateOn }\\\"\\n (keydown)=\\\"keyDownHandler($event)\\\"\\n (keyup)=\\\"keyUpHandler($event)\\\"\\n (keypress)=\\\"keyPressHandler($event)\\\"\\n (focus)=\\\"emitOnFocusEvent($event)\\\"\\n (blur)=\\\"emitOnBlurEvent($event)\\\"\\n >\\n </textarea>\\n\\n <div class=\\\"ax-conversation-input-end-side\\\">\\n @if (!value) {\\n @if (hasAttachment()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleAttachClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-attach\\\"></i>\\n </ax-icon>\\n </ax-button>\\n <input\\n multiple\\n #inputFile\\n [accept]=\\\"acceptFileType()\\\"\\n type=\\\"file\\\"\\n class=\\\"ax-attach-input\\\"\\n (change)=\\\"handleChangeFile($event)\\\"\\n />\\n }\\n @if (hasVoice()) {\\n <ax-button look=\\\"blank\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleRecordClick()\\\">\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-mic\\\"></i>\\n </ax-icon>\\n </ax-button>\\n }\\n } @else {\\n <ax-button [disabled]=\\\"isLoading()\\\" look=\\\"solid\\\" color=\\\"primary\\\" class=\\\"ax-sm\\\" (onClick)=\\\"handleSendClick()\\\">\\n @if (isLoading()) {\\n <ax-loading-spinner color=\\\"primary\\\"></ax-loading-spinner>\\n } @else {\\n @if (sendIcon()) {\\n <ng-content select=\\\"ax-icon\\\"></ng-content>\\n } @else {\\n <ax-icon>\\n <i class=\\\"ax-icon ax-icon-arrow-long-up\\\"></i>\\n </ax-icon>\\n }\\n }\\n </ax-button>\\n }\\n </div>\\n }\\n</div>\\n\", styles: [\".ax-action-list{display:flex;gap:.25rem}.ax-action-list.ax-action-list-horizontal{flex-direction:row}.ax-action-list.ax-action-list-horizontal ax-divider{width:0px;height:auto;border-inline-end:1px solid rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list.ax-action-list-vertical{flex-direction:column}.ax-action-list.ax-action-list-vertical .ax-action-item>div.ax-action-item-prefix ax-prefix{min-width:1rem}.ax-action-list.ax-action-list-vertical ax-divider{height:1px;width:100%}.ax-action-list ax-title{opacity:.5;display:block;font-size:.75rem;line-height:1rem;font-weight:bolder;text-transform:uppercase;padding-block:var(--ax-comp-action-item-padding-block, .25rem);padding-inline:var(--ax-comp-action-item-padding-inline, calc(var(--ax-comp-action-item-padding-inline, .875rem) / 3 * 2))}.ax-action-list ax-divider{display:block;background-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-action-list ax-text{white-space:nowrap}.ax-action-list .ax-action-item{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;line-height:1.25rem;height:2.25rem;width:100%;cursor:pointer;padding-inline:var(--ax-comp-action-item-padding-inline, .875rem)}.ax-action-list .ax-action-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected){background-color:rgba(var(--ax-sys-color-surface))}.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-prefix,.ax-action-list .ax-action-item:hover:not(.ax-action-list .ax-action-item:hover.ax-state-disabled,.ax-action-list .ax-action-item:hover.ax-state-selected) ax-suffix{opacity:1}.ax-action-list .ax-action-item>div{display:flex;align-items:center;justify-content:center}.ax-action-list .ax-action-item>div.ax-action-item-prefix,.ax-action-list .ax-action-item>div.ax-action-item-suffix{gap:.5rem}.ax-action-list .ax-action-item ax-prefix{display:flex;gap:.5rem}.ax-action-list .ax-action-item ax-suffix ax-text{color:rgba(var(--ax-sys-body-text-color));opacity:.5;font-weight:lighter}.ax-action-sheet-panel{--ax-comp-action-sheet-border-radius-size: var(--ax-sys-border-radius);overflow:hidden;border-top-left-radius:var(--ax-comp-action-sheet-border-radius-size);border-top-right-radius:var(--ax-comp-action-sheet-border-radius-size);background-color:rgba(var(--ax-sys-color-surface-lowest));--ax-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--ax-shadow-colored: 0 10px 15px -3px var(--ax-shadow-color), 0 4px 6px -4px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);animation:1s both ax-fadeInUp;animation-duration:var(--ax-sys-transition-duration)}@keyframes ax-fadeInUp{0%{transform:translate3d(0,100%,0);opacity:0}}@-moz-document url-prefix(){*{scrollbar-color:var(--ax-sys-scroller-thumb-color) var(--ax-sys-scroller-track-color)}}.ax-checkbox{margin:0;height:1rem;min-width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:.25rem;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-checkbox:checked,.ax-checkbox:indeterminate{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-checkbox:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e\\\")}.ax-checkbox:indeterminate{background-image:url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDE2IDE2Ij48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHJlY3QgY2xhc3M9ImNscy0xIiB4PSIzIiB5PSI3IiB3aWR0aD0iMTAiIGhlaWdodD0iMiIvPjwvc3ZnPg==)}.ax-checkbox:focus-visible,.ax-checkbox:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-checkbox:disabled{cursor:not-allowed;opacity:.5}.ax-drop-down{display:contents}.ax-drop-down .ax-dropdown-content{display:flex;flex:1 1 0%;align-items:center;overflow-x:auto;overflow-y:hidden;font-size:.875rem;line-height:1.25rem;text-transform:capitalize}.ax-drop-down .ax-dropdown-content.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-overlay-pane{margin:.25rem 0;min-width:10rem;width:100%;height:fit-content;overflow:hidden;border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-lightest-surface));--ax-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--ax-shadow-colored: 0 4px 6px -1px var(--ax-shadow-color), 0 2px 4px -2px var(--ax-shadow-color);box-shadow:var(--ax-ring-offset-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-ring-shadow, 0 0 rgba(0, 0, 0, 0)),var(--ax-shadow);border-top-left-radius:var(--ax-comp-drop-down-border-top-left-radius, var(--ax-sys-border-radius));border-top-right-radius:var(--ax-comp-drop-down-border-top-right-radius, var(--ax-sys-border-radius));border-bottom-left-radius:var(--ax-comp-drop-down-border-bottom-left-radius, var(--ax-sys-border-radius));border-bottom-right-radius:var(--ax-comp-drop-down-border-bottom-right-radius, var(--ax-sys-border-radius))}@media (min-width: 320px) and (max-width: 640px){.ax-overlay-pane{margin:0}}.ax-overlay-pane ax-header,.ax-overlay-pane ax-footer{background-color:rgba(var(--ax-sys-color-lightest-surface));padding:.75rem}.ax-overlay-pane.ax-overlay-center{height:fit-content;width:80vw;max-width:90vh}.ax-overlay-pane.ax-overlay-actionsheet{height:auto;max-height:85vh;width:100%;background-color:rgba(var(--ax-sys-color-lightest-surface))}.ax-overlay-pane.ax-overlay-actionsheet.ax-full{height:95vh;max-height:95vh}.ax-overlay-pane.ax-overlay-full{width:100vw;height:100vh}.ax-dark .ax-overlay-pane{background-color:rgba(var(--ax-sys-color-darker-surface));border-color:rgba(var(--ax-sys-color-border-darker-surface))}:root,.ax-editor-container{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-space-block-size: .5rem;--ax-comp-editor-height: var(--ax-sys-size-base);--ax-comp-editor-placeholder-space-x: .75rem;--ax-comp-editor-error-bg-color: var(--ax-sys-color-danger-light-surface);--ax-comp-editor-error-text-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-error-border-color: var(--ax-sys-color-border-danger-surface);--ax-comp-editor-error-box-shadow-color: var(--ax-sys-color-danger-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-surface);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-box-outline-width: 1px;--ax-comp-editor-box-outline-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-placeholder-opacity: .5;--ax-comp-editor-focused-border-color: var(--ax-sys-color-border-primary-surface);--ax-comp-editor-focused-box-shadow-color: var(--ax-sys-color-primary-surface);--ax-comp-editor-border-width: 0px}.ax-editor-container{display:flex;align-items:center;overflow:hidden;width:100%;height:var(--ax-comp-editor-height);font-size:var(--ax-comp-editor-font-size);border-radius:var(--ax-comp-editor-border-radius);border-width:var(--ax-comp-editor-border-width);border-color:rgba(var(--ax-comp-editor-border-color));background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));position:relative;gap:var(--ax-comp-editor-gap);padding-inline-end:var(--ax-comp-editor-space-end-size);padding-inline-start:var(--ax-comp-editor-space-start-size);justify-content:space-between}.ax-editor-container .ax-icon{font-size:var(--ax-comp-editor-icon-font-size)}.ax-editor-container:has(>ax-prefix){padding-inline-start:0}.ax-editor-container:has(>ax-prefix)>ax-prefix{padding-inline-start:var(--ax-comp-editor-space-start-size)}.ax-editor-container:has(>ax-prefix)>ax-prefix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-start-size: 0px}.ax-editor-container:has(>ax-suffix){padding-inline-end:0}.ax-editor-container:has(>ax-suffix)>ax-suffix{padding-inline-end:var(--ax-comp-editor-space-end-size)}.ax-editor-container:has(>ax-suffix)>ax-suffix:has(ax-button,.ax-editor-container){--ax-comp-editor-space-end-size: 0px}.ax-editor-container:not(.ax-state-disabled):focus-within{border-color:rgba(var(--ax-comp-editor-focused-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-style:solid;outline-color:rgba(var(--ax-comp-editor-focused-border-color))}.ax-editor-container.ax-state-error{border-color:rgba(var(--ax-comp-editor-error-border-color));outline-width:var(--ax-comp-editor-box-outline-width);outline-color:rgba(var(--ax-comp-editor-error-border-color));outline-style:solid}.ax-editor-container.ax-state-error:focus-within{border-color:rgba(var(--ax-comp-editor-error-border-color))}.ax-editor-container.ax-state-error .ax-input .ax-placeholder,.ax-editor-container.ax-state-error .ax-input::placeholder{color:rgba(var(--ax-comp-editor-error-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-lightest-surface);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-flat{--ax-comp-editor-border-width: 2px;--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;border-width:0px!important;border-bottom-width:var(--ax-comp-editor-border-width)!important}.ax-editor-container.ax-fill{--ax-comp-editor-box-outline-width: 2px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface);--ax-comp-editor-border-color: var(--ax-sys-color-border-lighter-surface)}.ax-editor-container.ax-none{--ax-comp-editor-border-radius: 0px;--ax-comp-editor-box-outline-width: 0px;--ax-comp-editor-border-width: 0px;--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-border-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-on-lighter-surface)}.ax-editor-container .ax-editor-input{height:100%;flex:1 1 0%}.ax-editor-container .ax-editor-input .ax-input{height:100%}.ax-editor-container .ax-input{font-size:var(--ax-comp-editor-font-size);line-height:var(--ax-comp-editor-font-size);color:rgba(var(--ax-comp-editor-text-color));cursor:inherit}.ax-editor-container .ax-input .ax-placeholder,.ax-editor-container .ax-input::placeholder{font-size:inherit;font-weight:400;color:rgb(var(--ax-comp-editor-text-color),var(--ax-comp-editor-placeholder-opacity))}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container.ax-state-disabled{opacity:.5;cursor:not-allowed}.ax-editor-container .ax-editor-control{display:flex;height:100%;align-items:center;justify-content:center;padding-inline-start:.5rem;font-size:1.125rem;line-height:1.75rem;color:rgba(var(--ax-comp-editor-text-color))}.ax-editor-container.ax-button-icon{padding:0 .5rem}.ax-editor-container .ax-input,.ax-editor-container .ax-text-area{text-align:inherit;font-family:inherit;font-size:inherit;line-height:inherit;height:100%;width:100%;flex:1 1 0%;background-color:transparent;font-weight:inherit}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-text-area:focus{box-shadow:none}.ax-editor-container .ax-editor-button{font-size:var(--ax-comp-editor-button-font-size, var(--ax-comp-editor-font-size));height:var(--ax-comp-editor-button-height, 100%)}.ax-editor-container>ax-prefix,.ax-editor-container>ax-suffix{height:100%;max-width:fit-content}.ax-editor-container>ax-prefix ax-button,.ax-editor-container>ax-prefix ax-text,.ax-editor-container>ax-prefix ax-icon,.ax-editor-container>ax-prefix .ax-editor-container,.ax-editor-container>ax-suffix ax-button,.ax-editor-container>ax-suffix ax-text,.ax-editor-container>ax-suffix ax-icon,.ax-editor-container>ax-suffix .ax-editor-container{display:flex;height:100%;align-items:center;justify-content:center;border-radius:0}.ax-editor-container>ax-prefix ax-title,.ax-editor-container>ax-suffix ax-title{padding-left:1rem;padding-right:1rem}.ax-editor-container>ax-prefix>ax-text,.ax-editor-container>ax-suffix>ax-text{display:flex;align-items:center;justify-content:center}.ax-editor-container .ax-button{height:100%!important;border-radius:0!important}.ax-editor-container .ax-button.ax-button-icon{height:100%;width:var(--ax-comp-editor-height)}.ax-editor-container ax-popover{position:absolute}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-font-size: .75rem;--ax-comp-editor-space-start-size: .25rem;--ax-comp-editor-space-end-size: .25rem;--ax-comp-editor-button-font-size: .625rem;--ax-comp-editor-gap: .25rem;--ax-comp-editor-icon-font-size: .75rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-font-size: .875rem;--ax-comp-editor-space-start-size: .5rem;--ax-comp-editor-space-end-size: .5rem;--ax-comp-editor-button-font-size: .75rem;--ax-comp-editor-gap: .375rem;--ax-comp-editor-icon-font-size: .875rem}.ax-md .ax-editor-container,.ax-editor-container,.ax-editor-container.ax-md{--ax-comp-editor-space-start-size: .75rem;--ax-comp-editor-space-end-size: .75rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .5rem;--ax-comp-editor-icon-font-size: 1rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-font-size: 1.125rem;--ax-comp-editor-space-start-size: 1.125rem;--ax-comp-editor-space-end-size: 1.125rem;--ax-comp-editor-button-font-size: .875rem;--ax-comp-editor-gap: .625rem;--ax-comp-editor-icon-font-size: 1.25rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-space-start-size: 1.5rem;--ax-comp-editor-space-end-size: 1.5rem;--ax-comp-editor-button-font-size: 1rem;--ax-comp-editor-gap: .75rem;--ax-comp-editor-icon-font-size: 1.5rem}ax-validation-rule{position:absolute}.ax-general-button{display:inline-flex;height:var(--ax-sys-size-base);cursor:pointer;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius);padding-left:var(--ax-comp-general-button-padding-left, 1rem);padding-right:var(--ax-comp-general-button-padding-right, 1rem);font-size:.875rem;line-height:1.25rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-general-button:hover:not(.ax-general-button:hover:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-500),var(--tw-text-opacity))}.ax-general-button:focus:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled),.ax-general-button:focus-visible:not(.ax-general-button:focus:disabled,.ax-state-disabled,.ax-general-button:focus-visible:disabled){color:rgba(var(--ax-sys-color-primary-700),var(--tw-text-opacity))}.ax-general-button:active:not(.ax-general-button:active:disabled,.ax-state-disabled){color:rgba(var(--ax-sys-color-primary-300),var(--tw-text-opacity))}.ax-general-button.ax-button-icon{padding-left:var(--ax-comp-general-button-padding-left, .5rem);padding-right:var(--ax-comp-general-button-padding-right, .5rem);font-size:100%}.ax-general-button.ax-button-icon>button{display:flex}.ax-general-button.ax-button-rounded{border-radius:var(--ax-sys-border-radius)}.ax-general-button:disabled,.ax-general-button.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-clear-button{display:inline-flex;height:var(--ax-sys-size-base);align-items:center;justify-content:center;margin-left:.25rem;margin-right:.25rem;font-size:1rem;line-height:1.5rem;color:rgb(var(--ax-sys-color-on-surface),.75)}.ax-clear-button>button{display:flex}.ax-clear-button:hover:not(.ax-clear-button:hover:disabled,.ax-state-disabled){color:rgb(var(--ax-sys-color-on-surface),.5)}.ax-clear-button:focus:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled),.ax-clear-button:focus-visible:not(.ax-clear-button:focus:disabled,.ax-state-disabled,.ax-clear-button:focus-visible:disabled){color:rgb(var(--ax-sys-color-on-surface))}.ax-dark .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-800))!important;color:rgba(var(--ax-sys-color-on-primary))!important}.ax-list{display:flex;height:100%;flex-direction:column;overflow:hidden;background-color:rgba(var(--ax-sys-color-surface));font-size:.875rem;line-height:1.25rem}@media (min-width: 768px){.ax-list{max-height:20rem}}.ax-list ax-header,.ax-list ax-footer{display:flex;align-items:center;justify-content:space-between;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));background-color:rgba(var(--ax-color-surface),var(--tw-bg-opacity))}.ax-list ax-header{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface),var(--tw-border-opacity));padding:1rem;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){.ax-list ax-header{font-size:1.125rem;line-height:1.75rem}}.ax-list ax-header ax-prefix,.ax-list ax-header ax-suffix{display:flex;flex-direction:column;justify-items:start}.ax-list ax-header ax-prefix{align-items:flex-start}.ax-list ax-header ax-suffix{align-items:flex-end}.ax-list ax-footer{border-top-width:1px}.ax-list .ax-content{flex:1 1 0%;overflow-y:auto;overflow-x:hidden}.ax-list .ax-content.ax-list-items-container{height:100%;overflow-y:auto;padding-top:.5rem;padding-bottom:.5rem}.ax-list .ax-content.ax-list-items-container.ax-vertical{display:grid;grid-template-columns:repeat(1,minmax(0,1fr))}.ax-list .ax-content.ax-list-items-container.ax-vertical.ax-divide{border-top-width:1px;border-bottom-width:1px}.ax-list .ax-content.ax-list-items-container.ax-default{cursor:pointer}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>span{display:flex;align-items:center;padding:.75rem;font-weight:500}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group>ul{padding-left:.75rem;padding-right:.75rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item-group .ax-list-item{margin-bottom:.25rem;border-radius:var(--ax-sys-border-radius)}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item{position:relative;display:flex;height:var(--ax-sys-size-base);-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:1rem;padding-inline-start:.75rem;font-size:1rem;line-height:1.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible{outline-width:2px;outline-offset:2px}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-checkbox .ax-checkbox-label{margin-inline-start:.5rem}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-selected{background-color:rgba(var(--ax-sys-color-primary-500),var(--tw-bg-opacity))!important;color:rgba(var(--ax-sys-color-on-primary),var(--tw-text-opacity))!important}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-disabled{cursor:not-allowed;opacity:.5}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:focus-visible,.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item:hover{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container.ax-default .ax-list-item.ax-state-focus{background-color:rgba(var(--ax-sys-color-surface))}.ax-list .ax-content.ax-list-items-container .ax-list-loading-container{display:flex;justify-content:center;padding:.5rem}.ax-list .ax-search-box-container{padding:.5rem}.ax-list .ax-search-box-container.ax-state-hidden{display:none}.ax-radio{margin:0;height:1rem;min-height:1rem;min-width:1rem;width:1rem;cursor:pointer;-webkit-appearance:none;appearance:none;border-radius:9999px;border-width:1px;border-color:rgba(var(--ax-sys-color-border-surface));background-color:rgba(var(--ax-sys-color-input-surface));vertical-align:middle;outline:2px solid transparent;outline-offset:2px}.ax-radio:checked{border-color:rgba(var(--ax-sys-color-primary-500))!important;background-color:rgba(var(--ax-sys-color-primary-500))!important;background-size:contain;background-repeat:no-repeat}.ax-radio:checked{background-image:url(\\\"data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e\\\")}.ax-radio:focus-visible,.ax-radio:focus{box-shadow:0 0 0 2px rgba(var(--ax-sys-color-surface)),0 0 0 4px rgba(var(--ax-sys-color-primary-500))}.ax-radio:disabled{cursor:not-allowed;opacity:.5}.ax-ripple{transform:scale(0);animation:ripple .5s linear;position:absolute;border-radius:9999rem!important}@keyframes ripple{to{transform:scale(4);opacity:0}}.ax-dark .ax-table thead{background-color:rgba(var(--ax-sys-color-surface))}.ax-table{width:100%;border-collapse:collapse;border-spacing:0;overflow:hidden;border-radius:var(--ax-sys-border-radius);border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));font-size:.875rem;line-height:1.25rem}.ax-table td{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));padding:.75rem 1rem}.ax-table thead{border-bottom-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface));background-color:rgba(var(--ax-sys-color-surface))}.ax-table thead th{padding:.875rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}.ax-table.ax-table-alternate tbody tr:nth-child(2n){background-color:rgba(var(--ax-sys-color-lighter-surface))}.ax-table.ax-table-bordered thead th{border-top-width:0px!important}.ax-table.ax-table-bordered tbody tr:last-child td{border-bottom-width:0px!important}.ax-table.ax-table-bordered tbody tr td:last-child{border-bottom-width:0px!important}.ax-table.ax-table-bordered td,.ax-table.ax-table-bordered th{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-bordered td:first-child,.ax-table.ax-table-bordered th:first-child{border-inline-start-width:0px}.ax-table.ax-table-bordered td:last-child,.ax-table.ax-table-bordered th:last-child{border-inline-end-width:0px}@media screen and (max-width: 640px){.ax-table.ax-table-responsive{display:block;overflow-wrap:break-word;border-width:0px}.ax-table.ax-table-responsive thead{position:absolute;inset-inline-start:-100%;top:-100%}.ax-table.ax-table-responsive td{float:inline-start;clear:both;box-sizing:border-box;display:block;width:100%;padding:.375rem .625rem}.ax-table.ax-table-responsive td:last-child{border-width:0px}.ax-table.ax-table-responsive td:before{content:attr(data-label);display:block;font-weight:700}.ax-table.ax-table-responsive tr{border-width:1px;border-color:rgba(var(--ax-sys-color-border-lightest-surface))}.ax-table.ax-table-responsive tr,.ax-table.ax-table-responsive tbody{float:inline-start;margin-bottom:.625rem;width:100%}}.ax-uploader-overlay-state{border-radius:inherit;pointer-events:none;position:absolute;inset-inline-start:0px;top:0;z-index:10;display:flex;height:100%;width:100%;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background-color:rgba(var(--ax-sys-color-primary-200),.75);font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-sys-color-on-primary-tint));outline-style:dashed;outline-offset:-4px;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.ax-drop-zone>input{position:absolute;height:100%;width:100%;cursor:pointer;opacity:0}.ax-dark .ax-uploader-overlay-state{background-color:rgba(var(--ax-sys-color-primary-800),.75);color:rgba(var(--ax-sys-color-on-primary));outline-color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-input{width:100%;display:block}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-surface));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-surface),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-surface),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface))}ax-conversation-input .ax-editor-reply-container{--ax-comp-editor-height: 100%;display:flex;flex-direction:column;align-items:flex-start;padding:.5rem}ax-conversation-input .ax-editor-reply-container .ax-reply-container{display:flex;justify-content:space-between;align-items:center;width:100%}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\\n\"] }]\n }], propDecorators: { inputFile: [{\n type: ViewChild,\n args: ['inputFile']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1pbnB1dC9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFFVixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFFBQVEsRUFDUixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixF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cnQge1xuICBBWENsaWNrRXZlbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWEV2ZW50LFxuICBBWEZvY3VzYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudCxcbiAgTVhMb29rQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhCdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCwgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWERyb3Bkb3duUGFuZWxDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9sb2FkaW5nJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIFNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhSZWNvcmRpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcmVjb3JkaW5nLnNlcnZpY2UnO1xuXG4vKipcbiAqIEFuIGlucHV0IGNvbXBvbmVudCBmb3IgZW50ZXJpbmcgY29udmVyc2F0aW9uIG1lc3NhZ2VzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb252ZXJzYXRpb24taW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBbJ2xvb2snLCAncGxhY2Vob2xkZXInXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWENvbnZlcnNhdGlvbklucHV0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBBWEJ1dHRvbkNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckljb25Db21wb25lbnQsXG4gICAgQVhEcm9wZG93blBhbmVsQ29tcG9uZW50LFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIEFYTG9hZGluZ1NwaW5uZXJDb21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYVHJhbnNsYXRvclBpcGUsXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBjbGFzc2VzKE1YSW5wdXRCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIEBWaWV3Q2hpbGQoJ2lucHV0RmlsZScpIHByb3RlY3RlZCBpbnB1dEZpbGU6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgcHJvdGVjdGVkIHNlbmRJY29uID0gY29udGVudENoaWxkKCdheC1pY29uJyk7XG5cbiAgcHJvdGVjdGVkIG9uQWN0aW9uQ2xvc2UgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgY29udmVyc2F0aW9uU2VydmljZSA9IGluamVjdChBWENvbnZlcnNhdGlvblNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBjaGF0czogU2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZVtdPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzKCk7XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBhY3Rpb25JY29uID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHByb3RlY3RlZCBhY3Rpb25Db250ZW50ID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XG4gIHByb3RlY3RlZCBhY3Rpb25TaG93U3RhdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgYWN0aW9uVXNlciA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xuICBwcm90ZWN0ZWQgYWN0aW9uQ2xvc2VDYWxsYmFjayA9IHNpZ25hbDwoKSA9PiB2b2lkPigoKSA9PiB7XG4gICAgcmV0dXJuO1xuICB9KTtcblxuICBwcm90ZWN0ZWQgcmVwbHlDaGF0OiBTaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlPiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaW5kTWVzc2FnZSA9IHRoaXMuY2hhdHMoKS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UucmVwbHlJZCgpKTtcbiAgICByZXR1cm4gZmluZE1lc3NhZ2U7XG4gIH0pO1xuXG4gIHB1YmxpYyBzZXRBY3Rpb25Cb3hDb250YWluZXIoaWNvbjogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIHVzZXI/OiBzdHJpbmcsIGNsb3NlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hY3Rpb25JY29uLnNldChpY29uKTtcbiAgICB0aGlzLmFjdGlvbkNvbnRlbnQuc2V0KGNvbnRlbnQpO1xuICAgIHRoaXMuYWN0aW9uU2hvd1N0YXRlLnNldCh0cnVlKTtcbiAgICB0aGlzLmFjdGlvblVzZXIuc2V0KHVzZXIpO1xuICAgIHRoaXMuYWN0aW9uQ2xvc2VDYWxsYmFjay5zZXQoY2xvc2VDYWxsYmFjayk7XG4gIH1cblxuICAvKiogTWF4aW11bSBsZW5ndGggb2YgaW5wdXQgdGV4dCAqL1xuICBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXI+KCk7XG5cbiAgLyoqIEluZGljYXRlcyBpZiBhbiBhdHRhY2htZW50IGlzIHByZXNlbnQgKi9cbiAgaGFzQXR0YWNobWVudCA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdm9pY2UgcmVjb3JkaW5nIGlzIGVuYWJsZWQgKi9cbiAgaGFzVm9pY2UgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICBoYXNFbW9qaSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIGlzTG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogQWNjZXB0YWJsZSBmaWxlIHR5cGVzIGZvciBhdHRhY2htZW50ICovXG4gIGFjY2VwdEZpbGVUeXBlID0gaW5wdXQ8c3RyaW5nPignKicpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHNlbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqXG4gICAqIEBldmVudFxuICAgKi9cbiAgb25TZW5kQ2xpY2sgPSBvdXRwdXQ8QVhDbGlja0V2ZW50PigpO1xuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gcmVjb3JkaW5nIHN0YXJ0cy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBvblN0YXJ0UmVjb3JkaW5nID0gb3V0cHV0PEFYQ2xpY2tFdmVudD4oKTtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHJlY29yZGluZyBpcyBjYW5jZWxlZC5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBvbkNhbmNlbFJlY29yZGluZyA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgb25FbnRlclByZXNzZWQgPSBvdXRwdXQ8QVhFdmVudD4oKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZWNvcmRpbmc6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZWNvcmRpbmdTZXJ2aWNlOiBBWFJlY29yZGluZ1NlcnZpY2UgPSBpbmplY3QoQVhSZWNvcmRpbmdTZXJ2aWNlKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfdXBkYXRlT246ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ3N1Ym1pdCcgPSAnY2hhbmdlJztcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfaGFuZGxlTW9kZWxDaGFuZ2UodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY29tbWl0VmFsdWUodmFsdWUsIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYXRlcyByZWNvcmRpbmcgd2hlbiB0aGUgcmVjb3JkIGJ1dHRvbiBpcyBjbGlja2VkLlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHJlY29yZGluZyBzdGFydHMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVSZWNvcmRDbGljaygpIHtcbiAgICB0aGlzLnJlY29yZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5yZWNvcmRpbmdTZXJ2aWNlXG4gICAgICA/LnN0YXJ0UmVjb3JkaW5nKClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblN0YXJ0UmVjb3JkaW5nLmVtaXQoe1xuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgICBkYXRhOiB7IHJlY29yZGluZzogdHJ1ZSB9LFxuICAgICAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbmNlbHMgdGhlIHJlY29yZGluZyBhbmQgZW1pdHMgYW4gZXZlbnQgdG8gaW5kaWNhdGUgY2FuY2VsbGF0aW9uLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQ2FuY2VsUmVjb3JkaW5nQ2xpY2soKSB7XG4gICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcblxuICAgIHRoaXMub25DYW5jZWxSZWNvcmRpbmcuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiBudWxsIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hpZnRTdGF0ZSA9IGZhbHNlO1xuICBwcm90ZWN0ZWQga2V5RG93bkhhbmRsZXIoZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmtleSA9PT0gJ1NoaWZ0Jykge1xuICAgICAgdGhpcy5zaGlmdFN0YXRlID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5vbktleURvd24uZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQga2V5VXBIYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdTaGlmdCcpIHtcbiAgICAgIHRoaXMuc2hpZnRTdGF0ZSA9IGZhbHNlO1xuICAgIH1cbiAgICB0aGlzLm9uS2V5VXAuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICBwcm90ZWN0ZWQga2V5UHJlc3NIYW5kbGVyKGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIXRoaXMuc2hpZnRTdGF0ZSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5vbkVudGVyUHJlc3NlZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzIH0pO1xuICAgIH1cbiAgICB0aGlzLm9uS2V5UHJlc3MuZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogT3BlbnMgdGhlIGZpbGUgcGlja2VyIGZvciBhdHRhY2htZW50LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlQXR0YWNoQ2xpY2soKSB7XG4gICAgdGhpcy5pbnB1dEZpbGUubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBzZWxlY3RlZCBmaWxlcyB3aGVuIHRoZSBmaWxlIGlucHV0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVDaGFuZ2VGaWxlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMub25TZW5kQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBkYXRhOiB7IHZhbHVlOiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmZpbGVzLCB0eXBlOiAnZmlsZScgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdGV4dCB2YWx1ZSBhbmQgb3B0aW9uYWwgcmVwbHlDaGF0IHdoZW4gdGhlIHNlbmQgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZW5kQ2xpY2soKSB7XG4gICAgdGhpcy5vblNlbmRDbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGRhdGE6IHsgdmFsdWU6IHRoaXMudmFsdWUsIHJlcGx5Q2hhdDogdGhpcy5yZXBseUNoYXQoKSB8fCBudWxsLCB0eXBlOiAndGV4dCcgfSxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuYWN0aW9uU2hvd1N0YXRlLnNldChmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRW5kcyByZWNvcmRpbmcgYW5kIGVtaXRzIHRoZSByZWNvcmRlZCB2b2ljZSBkYXRhIHdoZW4gdGhlIHNlbmQgdm9pY2UgYnV0dG9uIGlzIGNsaWNrZWQuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVTZW5kVm9pY2VDbGljaygpIHtcbiAgICB0aGlzLnJlY29yZGluZ1NlcnZpY2UuZW5kUmVjb3JkaW5nKCkudGhlbigoYykgPT4ge1xuICAgICAgdGhpcy5yZWNvcmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMub25TZW5kQ2xpY2suZW1pdCh7XG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgICAgZGF0YTogeyB2YWx1ZTogYywgdHlwZTogJ3ZvaWNlJyB9LFxuICAgICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyB0aGUgcmVwbHkgSUQgd2hlbiBjbG9zaW5nIGEgcmVwbHkuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjbG9zZVJlcGx5SGFuZGxlcigpIHtcbiAgICB0aGlzLmFjdGlvblNob3dTdGF0ZS5zZXQoZmFsc2UpO1xuICAgIHRoaXMuYWN0aW9uQ2xvc2VDYWxsYmFjaygpO1xuICAgIHRoaXMub25BY3Rpb25DbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIkBpZiAoYWN0aW9uU2hvd1N0YXRlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImF4LWVkaXRvci1yZXBseS1jb250YWluZXIgYXgtZWRpdG9yLWNvbnRhaW5lciBheC17eyBsb29rIH19XCI+XG4gICAgQGlmIChhY3Rpb25Vc2VyKCkpIHtcbiAgICAgIDxheC10ZXh0PiB7eyBhY3Rpb25Vc2VyKCkgfX08L2F4LXRleHQ+XG4gICAgfVxuICAgIDxkaXYgY2xhc3M9XCJheC1yZXBseS1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1yZXBseS1zdGFydFwiPlxuICAgICAgICA8aSBbY2xhc3NdPVwiYWN0aW9uSWNvbigpXCI+PC9pPlxuICAgICAgICA8cD57eyBhY3Rpb25Db250ZW50KCkgfX08L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpIChjbGljayk9XCJjbG9zZVJlcGx5SGFuZGxlcigpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS14bWFyayBheC1jdXJzb3ItcG9pbnRlclwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG5cbjxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQgYXgtZWRpdG9yLWNvbnRhaW5lciBheC17eyBsb29rIH19XCIgW2NsYXNzLmF4LXN0YXRlLXJlY29yZGluZ109XCJyZWNvcmRpbmcoKVwiPlxuICBAaWYgKHJlY29yZGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1zdGFydC1zaWRlXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImF4LXJlY29yZC1kb3RcIj48L3NwYW4+XG4gICAgICA8c3Bhbj57eyByZWNvcmRpbmdTZXJ2aWNlLnRpbWVyKCkgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1tYWluLXNpZGVcIj5cbiAgICAgIDxheC1idXR0b25cbiAgICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAgIGxvb2s9XCJibGFua1wiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFt0ZXh0XT1cIidAYWNvcmV4OmNvbW1vbi5hY3Rpb25zLmNhbmNlbCcgfCB0cmFuc2xhdGUgfCBhc3luY1wiXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZUNhbmNlbFJlY29yZGluZ0NsaWNrKClcIlxuICAgICAgPjwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtZW5kLXNpZGVcIj5cbiAgICAgIDxheC1idXR0b24gbG9vaz1cInNvbGlkXCIgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImF4LWJsb2IgYXgtc21cIiAob25DbGljayk9XCJoYW5kbGVTZW5kVm9pY2VDbGljaygpXCI+XG4gICAgICAgIDxheC1pY29uPlxuICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNlbmRcIj48L2k+XG4gICAgICAgIDwvYXgtaWNvbj5cbiAgICAgIDwvYXgtYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICBAaWYgKGhhc0Vtb2ppKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtc3RhcnQtc2lkZVwiPlxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJibGFua1wiIGNsYXNzPVwiYXgtc21cIj5cbiAgICAgICAgICA8YXgtaWNvbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVtb2ppXCI+PC9pPlxuICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8YXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZW1vamktY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdj7imqDvuI88L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2PuKeoe+4jzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+UgzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+UtzwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+kmjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+YgjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXY+8J+YijwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYXgtZHJvcGRvd24tcGFuZWw+XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPHRleHRhcmVhXG4gICAgICBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1pbnB1dC1tYWluLXNpZGVcIlxuICAgICAgb25pbnB1dD0ndGhpcy5zdHlsZS5oZWlnaHQgPSBcIlwiO3RoaXMuc3R5bGUuaGVpZ2h0ID0gdGhpcy5zY3JvbGxIZWlnaHQgKyBcInB4XCInXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICByb3dzPVwiMVwiXG4gICAgICBbaWRdPVwiaWRcIlxuICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX2hhbmRsZU1vZGVsQ2hhbmdlKCRldmVudClcIlxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgdXBkYXRlT246IF91cGRhdGVPbiB9XCJcbiAgICAgIChrZXlkb3duKT1cImtleURvd25IYW5kbGVyKCRldmVudClcIlxuICAgICAgKGtleXVwKT1cImtleVVwSGFuZGxlcigkZXZlbnQpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJrZXlQcmVzc0hhbmRsZXIoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC90ZXh0YXJlYT5cblxuICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24taW5wdXQtZW5kLXNpZGVcIj5cbiAgICAgIEBpZiAoIXZhbHVlKSB7XG4gICAgICAgIEBpZiAoaGFzQXR0YWNobWVudCgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlQXR0YWNoQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWF0dGFjaFwiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAjaW5wdXRGaWxlXG4gICAgICAgICAgICBbYWNjZXB0XT1cImFjY2VwdEZpbGVUeXBlKClcIlxuICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJheC1hdHRhY2gtaW5wdXRcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVDaGFuZ2VGaWxlKCRldmVudClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChoYXNWb2ljZSgpKSB7XG4gICAgICAgICAgPGF4LWJ1dHRvbiBsb29rPVwiYmxhbmtcIiBjbGFzcz1cImF4LXNtXCIgKG9uQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGF4LWljb24+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLW1pY1wiPjwvaT5cbiAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICA8L2F4LWJ1dHRvbj5cbiAgICAgICAgfVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxheC1idXR0b24gW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCIgbG9vaz1cInNvbGlkXCIgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJheC1zbVwiIChvbkNsaWNrKT1cImhhbmRsZVNlbmRDbGljaygpXCI+XG4gICAgICAgICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgICAgICAgPGF4LWxvYWRpbmctc3Bpbm5lciBjb2xvcj1cInByaW1hcnlcIj48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoc2VuZEljb24oKSkge1xuICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1pY29uXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxheC1pY29uPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWFycm93LWxvbmctdXBcIj48L2k+XG4gICAgICAgICAgICAgIDwvYXgtaWNvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvYXgtYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationMessageTypeRegistryService {\n constructor() {\n this.plugins = new Map();\n }\n register(...plugins) {\n plugins.forEach((p) => this.plugins.set(p.name, p));\n }\n resolve(name) {\n return this.plugins.get(name);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageTypeRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageTypeRegistryService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageTypeRegistryService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9zZXJ2aWNlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHdDQUF3QztJQURyRDtRQUVVLFlBQU8sR0FBMkMsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FTeEc7SUFQQyxRQUFRLENBQUMsR0FBRyxPQUFvQztRQUM5QyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs4R0FUVSx3Q0FBd0M7a0hBQXhDLHdDQUF3QyxjQUQzQixNQUFNOzsyRkFDbkIsd0NBQXdDO2tCQURwRCxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2Uge1xuICBwcml2YXRlIHBsdWdpbnM6IE1hcDxzdHJpbmcsIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGU+ID0gbmV3IE1hcDxzdHJpbmcsIEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGU+KCk7XG5cbiAgcmVnaXN0ZXIoLi4ucGx1Z2luczogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVtdKSB7XG4gICAgcGx1Z2lucy5mb3JFYWNoKChwKSA9PiB0aGlzLnBsdWdpbnMuc2V0KHAubmFtZSwgcCkpO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmUobmFtZTogc3RyaW5nKTogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMucGx1Z2lucy5nZXQobmFtZSk7XG4gIH1cbn1cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXAvatarComponent } from '@acorex/components/avatar';\nimport { AXButtonComponent, AXButtonItemComponent, AXButtonItemListComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent, AXDecoratorIconComponent } from '@acorex/components/decorators';\nimport { AXMenuModule } from '@acorex/components/menu';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { isBrowser } from '@acorex/core/platform';\nimport { CdkPortalOutlet, ComponentPortal } from '@angular/cdk/portal';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, HostBinding, ViewEncapsulation, computed, inject, input, output, signal, viewChild, } from '@angular/core';\nimport { AXConversationMessageTypeRegistryService } from '../services/conversation-message-type-registry.service';\nimport { AXConversationService } from '../services/conversation.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/menu\";\nimport * as i2 from \"@angular/common\";\n/**\n * A component for displaying individual conversation messages.\n *\n * @category Components\n */\nexport class AXConversationMessageComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.popover = viewChild('popover', ...(ngDevMode ? [{ debugName: \"popover\" }] : []));\n this.isReplyArrowShown = input(true, ...(ngDevMode ? [{ debugName: \"isReplyArrowShown\" }] : []));\n this.chatMessage = input(...(ngDevMode ? [undefined, { debugName: \"chatMessage\" }] : []));\n this.avatar = input(null, ...(ngDevMode ? [{ debugName: \"avatar\" }] : []));\n this.conversationService = inject(AXConversationService);\n this.registryService = inject(AXConversationMessageTypeRegistryService);\n this.actionButtonItemsPrivate = signal([], ...(ngDevMode ? [{ debugName: \"actionButtonItemsPrivate\" }] : []));\n this.actionButtonItemsPublic = {\n items: [],\n canceled: false,\n data: this.chatMessage(),\n };\n this.onActionMenuOpening = output();\n this.onReplyClick = output();\n this.portal = computed(() => {\n return new ComponentPortal(this.registryService.resolve(this.chatMessage().type).component);\n }, ...(ngDevMode ? [{ debugName: \"portal\" }] : []));\n this.messageType = computed(() => {\n return this.chatMessage().type;\n }, ...(ngDevMode ? [{ debugName: \"messageType\" }] : []));\n }\n get isOwn() {\n return !this.chatMessage().fromId;\n }\n handleActionClick() {\n this.actionButtonItemsPublic = {\n items: [],\n canceled: false,\n data: this.chatMessage(),\n };\n this.onActionMenuOpening.emit(this.actionButtonItemsPublic);\n if (this.actionButtonItemsPublic.canceled)\n return;\n this.actionButtonItemsPrivate.set(this.actionButtonItemsPublic.items);\n }\n _handleAttached(ref) {\n ref = ref;\n if (ref.instance && isBrowser()) {\n Object.assign(ref.instance, { message: this.chatMessage() });\n const prefixContainer = this.getHostElement().querySelector('.ax-message-prefix');\n const suffixContainer = this.getHostElement().querySelector('.ax-message-suffix');\n prefixContainer.innerHTML = '';\n suffixContainer.innerHTML = '';\n const prefix = this.getHostElement().querySelector('ax-prefix');\n const suffix = this.getHostElement().querySelector('ax-suffix');\n if (prefix && prefixContainer) {\n prefix.style.display = 'flex';\n prefixContainer.append(prefix);\n }\n if (suffix && suffixContainer) {\n suffix.style.display = 'flex';\n suffixContainer.append(suffix);\n }\n }\n }\n handleResendClick() {\n this.popover()?.close();\n this.chatMessage().onResendClick();\n }\n handleDeleteClick() {\n this.popover()?.close();\n this.chatMessage().onDeleteClick();\n }\n replyHandler(e) {\n this.conversationService.replyId.set(e.id);\n this.onReplyClick.emit({ data: e, component: this });\n }\n get __hostClass() {\n return `${this.isOwn ? 'ax-state-own' : ''} ${!this.isOwn ? 'ax-state-other' : ''}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationMessageComponent, isStandalone: true, selector: \"ax-conversation-message\", inputs: { isReplyArrowShown: { classPropertyName: \"isReplyArrowShown\", publicName: \"isReplyArrowShown\", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: \"chatMessage\", publicName: \"chatMessage\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onActionMenuOpening: \"onActionMenuOpening\", onReplyClick: \"onReplyClick\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], viewQueries: [{ propertyName: \"popover\", first: true, predicate: [\"popover\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: \"@if (chatMessage().fromId) {\\n @if (avatar()) {\\n <ng-container [ngTemplateOutlet]=\\\"avatar()\\\"></ng-container>\\n } @else {\\n <ax-avatar color=\\\"primary\\\" [size]=\\\"36\\\"> </ax-avatar>\\n }\\n}\\n\\n@if (isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-cursor-pointer\\\"></i>\\n}\\n\\n<div\\n class=\\\"ax-message-content\\\"\\n [class]=\\\"'ax-type-' + messageType()\\\"\\n [class.ax-state-own]=\\\"!chatMessage().fromId\\\"\\n [class.ax-state-other]=\\\"chatMessage().fromId\\\"\\n>\\n <div class=\\\"ax-action-button\\\">\\n @if (chatMessage()?.userName) {\\n <div class=\\\"ax-message-user-name\\\">\\n <ax-text>{{ chatMessage().userName }}</ax-text>\\n </div>\\n }\\n\\n @if (chatMessage()?.showActionButton) {\\n <div class=\\\"ax-message-action-button\\\">\\n <ax-menu openOn=\\\"click\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item class=\\\"ax-parent-menu-item\\\">\\n <ax-text (click)=\\\"handleActionClick()\\\">...</ax-text>\\n\\n @for (item of actionButtonItemsPrivate(); track item.text) {\\n <ax-menu-item [color]=\\\"item.color\\\" (onClick)=\\\"item.onClick(chatMessage().id)\\\">\\n <ax-text>{{ item.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"></ax-icon>\\n </ax-prefix>\\n\\n @for (innerItem of item.items; track innerItem.text) {\\n <ax-menu-item [color]=\\\"innerItem.color\\\" (onClick)=\\\"innerItem.onClick(chatMessage().id)\\\">\\n <ax-text>{{ innerItem.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"innerItem.icon\\\"></ax-icon>\\n </ax-prefix>\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n </ax-menu>\\n </div>\\n }\\n </div>\\n\\n <ng-template [cdkPortalOutlet]=\\\"portal()\\\" (attached)=\\\"_handleAttached($event)\\\"></ng-template>\\n\\n <div class=\\\"ax-chat-message-status\\\">\\n <div class=\\\"ax-message-prefix\\\"></div>\\n <div>\\n <div class=\\\"ax-message-suffix\\\"></div>\\n <span>\\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\\n </span>\\n <span>\\n @if (isOwn) {\\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-check ax-message-status\\\"></i>\\n }\\n @if (chatMessage().readTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-dobble-check ax-message-status\\\"></i>\\n }\\n }\\n </span>\\n </div>\\n </div>\\n</div>\\n\\n@if (!chatMessage().sendTime) {\\n <ax-button class=\\\"ax-resend-button ax-xs\\\" color=\\\"danger\\\" #b>\\n <ax-icon class=\\\"ax-icon ax-icon-error\\\"></ax-icon>\\n\\n <ax-popover [target]=\\\"b\\\" placement=\\\"bottom-end\\\" #popover>\\n <div class=\\\"ax-overlay-pane\\\">\\n <ax-content> </ax-content>\\n <ax-button-item-list>\\n @if (chatMessage().onResendClick) {\\n <ax-button-item text=\\\"Resend\\\" (onClick)=\\\"handleResendClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-reload ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (chatMessage().onDeleteClick) {\\n <ax-button-item text=\\\"Delete\\\" color=\\\"danger\\\" (onClick)=\\\"handleDeleteClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-clear ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </div>\\n </ax-popover>\\n </ax-button>\\n}\\n\\n@if (!isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-rotate ax-cursor-pointer\\\"></i>\\n}\\n\", styles: [\"ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\\n\"], dependencies: [{ kind: \"component\", type: AXAvatarComponent, selector: \"ax-avatar\", inputs: [\"color\", \"size\", \"shape\", \"look\"], outputs: [\"sizeChange\"] }, { kind: \"directive\", type: CdkPortalOutlet, selector: \"[cdkPortalOutlet]\", inputs: [\"cdkPortalOutlet\"], outputs: [\"attached\"], exportAs: [\"cdkPortalOutlet\"] }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXDecoratorIconComponent, selector: \"ax-icon\", inputs: [\"icon\"] }, { kind: \"component\", type: AXPopoverComponent, selector: \"ax-popover\", inputs: [\"width\", \"disabled\", \"offsetX\", \"offsetY\", \"target\", \"placement\", \"content\", \"openOn\", \"closeOn\", \"hasBackdrop\", \"openAfter\", \"closeAfter\", \"backdropClass\", \"panelClass\", \"adaptivityEnabled\"], outputs: [\"onOpened\", \"onClosed\"] }, { kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXButtonItemListComponent, selector: \"ax-button-item-list\", inputs: [\"items\"], outputs: [\"onItemClick\"] }, { kind: \"component\", type: AXButtonItemComponent, selector: \"ax-button-item\", inputs: [\"color\", \"disabled\", \"text\", \"selected\", \"divided\", \"data\", \"name\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\", \"disabledChange\"] }, { kind: \"ngmodule\", type: AXMenuModule }, { kind: \"component\", type: i1.AXMenuItemComponent, selector: \"ax-menu-item\", inputs: [\"name\", \"data\", \"disabled\", \"color\"], outputs: [\"onClick\"] }, { kind: \"component\", type: i1.AXMenuComponent, selector: \"ax-menu\", inputs: [\"orientation\", \"openOn\", \"closeOn\", \"items\", \"hasArrow\"], outputs: [\"onItemClick\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message', encapsulation: ViewEncapsulation.None, imports: [\n AXAvatarComponent,\n CdkPortalOutlet,\n AXButtonComponent,\n AXDecoratorIconComponent,\n AXPopoverComponent,\n AXDecoratorGenericComponent,\n AXButtonItemListComponent,\n AXButtonItemComponent,\n AsyncPipe,\n AXFormatPipe,\n AXMenuModule,\n CommonModule,\n ], providers: [{ provide: AXComponent, useExisting: AXConversationMessageComponent }], template: \"@if (chatMessage().fromId) {\\n @if (avatar()) {\\n <ng-container [ngTemplateOutlet]=\\\"avatar()\\\"></ng-container>\\n } @else {\\n <ax-avatar color=\\\"primary\\\" [size]=\\\"36\\\"> </ax-avatar>\\n }\\n}\\n\\n@if (isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-cursor-pointer\\\"></i>\\n}\\n\\n<div\\n class=\\\"ax-message-content\\\"\\n [class]=\\\"'ax-type-' + messageType()\\\"\\n [class.ax-state-own]=\\\"!chatMessage().fromId\\\"\\n [class.ax-state-other]=\\\"chatMessage().fromId\\\"\\n>\\n <div class=\\\"ax-action-button\\\">\\n @if (chatMessage()?.userName) {\\n <div class=\\\"ax-message-user-name\\\">\\n <ax-text>{{ chatMessage().userName }}</ax-text>\\n </div>\\n }\\n\\n @if (chatMessage()?.showActionButton) {\\n <div class=\\\"ax-message-action-button\\\">\\n <ax-menu openOn=\\\"click\\\" [hasArrow]=\\\"false\\\">\\n <ax-menu-item class=\\\"ax-parent-menu-item\\\">\\n <ax-text (click)=\\\"handleActionClick()\\\">...</ax-text>\\n\\n @for (item of actionButtonItemsPrivate(); track item.text) {\\n <ax-menu-item [color]=\\\"item.color\\\" (onClick)=\\\"item.onClick(chatMessage().id)\\\">\\n <ax-text>{{ item.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"item.icon\\\"></ax-icon>\\n </ax-prefix>\\n\\n @for (innerItem of item.items; track innerItem.text) {\\n <ax-menu-item [color]=\\\"innerItem.color\\\" (onClick)=\\\"innerItem.onClick(chatMessage().id)\\\">\\n <ax-text>{{ innerItem.text }}</ax-text>\\n <ax-prefix>\\n <ax-icon [icon]=\\\"innerItem.icon\\\"></ax-icon>\\n </ax-prefix>\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n }\\n </ax-menu-item>\\n </ax-menu>\\n </div>\\n }\\n </div>\\n\\n <ng-template [cdkPortalOutlet]=\\\"portal()\\\" (attached)=\\\"_handleAttached($event)\\\"></ng-template>\\n\\n <div class=\\\"ax-chat-message-status\\\">\\n <div class=\\\"ax-message-prefix\\\"></div>\\n <div>\\n <div class=\\\"ax-message-suffix\\\"></div>\\n <span>\\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\\n </span>\\n <span>\\n @if (isOwn) {\\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-check ax-message-status\\\"></i>\\n }\\n @if (chatMessage().readTime && chatMessage().sendTime) {\\n <i class=\\\"ax-icon ax-icon-dobble-check ax-message-status\\\"></i>\\n }\\n }\\n </span>\\n </div>\\n </div>\\n</div>\\n\\n@if (!chatMessage().sendTime) {\\n <ax-button class=\\\"ax-resend-button ax-xs\\\" color=\\\"danger\\\" #b>\\n <ax-icon class=\\\"ax-icon ax-icon-error\\\"></ax-icon>\\n\\n <ax-popover [target]=\\\"b\\\" placement=\\\"bottom-end\\\" #popover>\\n <div class=\\\"ax-overlay-pane\\\">\\n <ax-content> </ax-content>\\n <ax-button-item-list>\\n @if (chatMessage().onResendClick) {\\n <ax-button-item text=\\\"Resend\\\" (onClick)=\\\"handleResendClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-reload ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n @if (chatMessage().onDeleteClick) {\\n <ax-button-item text=\\\"Delete\\\" color=\\\"danger\\\" (onClick)=\\\"handleDeleteClick()\\\">\\n <ax-icon class=\\\"ax-icon ax-icon-clear ax-bold\\\"></ax-icon>\\n </ax-button-item>\\n }\\n </ax-button-item-list>\\n </div>\\n </ax-popover>\\n </ax-button>\\n}\\n\\n@if (!isOwn && isReplyArrowShown()) {\\n <i (click)=\\\"replyHandler(chatMessage())\\\" class=\\\"fa-solid fa-reply ax-rotate ax-cursor-pointer\\\"></i>\\n}\\n\", styles: [\"ax-conversation-message{display:flex;align-items:flex-end;margin:.5rem}ax-conversation-message .ax-message-reply-container{padding:.75rem}ax-conversation-message .ax-message-reply-container,ax-conversation-message .ax-image-reply-container,ax-conversation-message .ax-video-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;margin-bottom:.25rem;overflow:hidden}ax-conversation-message .ax-message-reply-container .file,ax-conversation-message .ax-image-reply-container .file,ax-conversation-message .ax-video-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i,ax-conversation-message .ax-image-reply-container .file i,ax-conversation-message .ax-video-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video,ax-conversation-message .ax-image-reply-container img,ax-conversation-message .ax-image-reply-container video,ax-conversation-message .ax-video-reply-container img,ax-conversation-message .ax-video-reply-container video{max-width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-surface));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:var(--ax-sys-border-radius);overflow:hidden;width:fit-content;max-width:50%;margin-inline-start:.5rem}ax-conversation-message .ax-message-content .ax-action-button{display:grid;grid-template-columns:repeat(2,1fr)}ax-conversation-message .ax-message-content .ax-action-button .ax-message-user-name{justify-self:start;grid-column:1}ax-conversation-message .ax-message-content .ax-action-button .ax-message-action-button{justify-self:end;grid-column:2}ax-conversation-message .ax-message-content .ax-action-button ax-menu.ax-action-list-horizontal{min-width:0;gap:0}ax-conversation-message .ax-message-content .ax-action-button .ax-parent-menu-item{height:auto!important;padding:0!important}ax-conversation-message .ax-message-content.ax-type-video{padding:0}ax-conversation-message .ax-message-content.ax-type-image{padding:0}ax-conversation-message .ax-message-content .ax-chat-message-status{padding:.25rem .5rem}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-surface))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}ax-conversation-message .ax-rotate{transform:scaleX(-1);margin-inline-start:.5rem}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\\n\"] }]\n }], propDecorators: { __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQThCLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLFNBQVMsRUFFVCxXQUFXLEVBRVgsaUJBQWlCLEVBQ2pC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LENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUN0RixDQUFDOzhHQXpGVSw4QkFBOEI7a0dBQTlCLDhCQUE4Qixpb0JBRjlCLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSw4QkFBOEIsRUFBRSxDQUFDLHFLQ3ZEcEYsb3FIQXdHQSxtbkxEOURJLGlCQUFpQiwySEFDakIsZUFBZSxpSkFDZixpQkFBaUIsMlVBQ2pCLHdCQUF3QixzRUFDeEIsa0JBQWtCLG9TQUNsQiwyQkFBMkIseUxBQzNCLHlCQUF5Qiw2R0FDekIscUJBQXFCLHFNQUdyQixZQUFZLHFWQUNaLFlBQVksaU1BSFosU0FBUyx5Q0FDVCxZQUFZOzsyRkFNSCw4QkFBOEI7a0JBckIxQyxTQUFTOytCQUNFLHlCQUF5QixpQkFHcEIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsMkJBQTJCO3dCQUMzQix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsU0FBUzt3QkFDVCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osWUFBWTtxQkFDYixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsZ0NBQWdDLEVBQUUsQ0FBQzs4QkF5RjlFLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDbGlja0V2ZW50LCBBWENvbXBvbmVudCwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBBWEJ1dHRvbkNvbXBvbmVudCwgQVhCdXR0b25JdGVtQ29tcG9uZW50LCBBWEJ1dHRvbkl0ZW1MaXN0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsIEFYRGVjb3JhdG9ySWNvbkNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFYTWVudU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9tZW51JztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7IEFYRm9ybWF0UGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgaXNCcm93c2VyIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IENka1BvcnRhbE91dGxldCwgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYQ29udmVyc2F0aW9uTWVudU9wZW5pbmdFdmVudCxcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlLFxuICBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBY3Rpb24sXG59IGZyb20gJy4uL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdHlwZS1yZWdpc3RyeS5zZXJ2aWNlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBpbmRpdmlkdWFsIGNvbnZlcnNhdGlvbiBtZXNzYWdlcy5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtcbiAgICBBWEF2YXRhckNvbXBvbmVudCxcbiAgICBDZGtQb3J0YWxPdXRsZXQsXG4gICAgQVhCdXR0b25Db21wb25lbnQsXG4gICAgQVhEZWNvcmF0b3JJY29uQ29tcG9uZW50LFxuICAgIEFYUG9wb3ZlckNvbXBvbmVudCxcbiAgICBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQsXG4gICAgQVhCdXR0b25JdGVtTGlzdENvbXBvbmVudCxcbiAgICBBWEJ1dHRvbkl0ZW1Db21wb25lbnQsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgICBBWE1lbnVNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VDb21wb25lbnQgZXh0ZW5kcyBNWEJhc2VDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgcG9wb3ZlciA9IHZpZXdDaGlsZDxBWFBvcG92ZXJDb21wb25lbnQ+KCdwb3BvdmVyJyk7XG5cbiAgaXNSZXBseUFycm93U2hvd24gPSBpbnB1dCh0cnVlKTtcbiAgY2hhdE1lc3NhZ2UgPSBpbnB1dDxBWENvbnZlcnNhdGlvbk1lc3NhZ2U+KCk7XG4gIGF2YXRhciA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpO1xuXG4gIHByb3RlY3RlZCBjb252ZXJzYXRpb25TZXJ2aWNlID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uU2VydmljZSk7XG4gIHByb3RlY3RlZCByZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGFjdGlvbkJ1dHRvbkl0ZW1zUHJpdmF0ZSA9IHNpZ25hbDxBWENvbnZlcnNhdGlvbk1lc3NhZ2VBY3Rpb25bXT4oW10pO1xuICBwcml2YXRlIGFjdGlvbkJ1dHRvbkl0ZW1zUHVibGljOiBBWENvbnZlcnNhdGlvbk1lbnVPcGVuaW5nRXZlbnQgPSB7XG4gICAgaXRlbXM6IFtdLFxuICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICBkYXRhOiB0aGlzLmNoYXRNZXNzYWdlKCksXG4gIH07XG5cbiAgb25BY3Rpb25NZW51T3BlbmluZyA9IG91dHB1dDxBWENvbnZlcnNhdGlvbk1lbnVPcGVuaW5nRXZlbnQ+KCk7XG5cbiAgb25SZXBseUNsaWNrID0gb3V0cHV0PEFYQ2xpY2tFdmVudD4oKTtcblxuICBwcm90ZWN0ZWQgcG9ydGFsID0gY29tcHV0ZWQ8Q29tcG9uZW50UG9ydGFsPGFueT4gfCBudWxsPigoKSA9PiB7XG4gICAgcmV0dXJuIG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5yZWdpc3RyeVNlcnZpY2UucmVzb2x2ZSh0aGlzLmNoYXRNZXNzYWdlKCkudHlwZSkuY29tcG9uZW50KTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIG1lc3NhZ2VUeXBlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmNoYXRNZXNzYWdlKCkudHlwZTtcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIGdldCBpc093bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuY2hhdE1lc3NhZ2UoKS5mcm9tSWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQWN0aW9uQ2xpY2soKSB7XG4gICAgdGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYyA9IHtcbiAgICAgIGl0ZW1zOiBbXSxcbiAgICAgIGNhbmNlbGVkOiBmYWxzZSxcbiAgICAgIGRhdGE6IHRoaXMuY2hhdE1lc3NhZ2UoKSxcbiAgICB9O1xuXG4gICAgdGhpcy5vbkFjdGlvbk1lbnVPcGVuaW5nLmVtaXQodGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYyk7XG5cbiAgICBpZiAodGhpcy5hY3Rpb25CdXR0b25JdGVtc1B1YmxpYy5jYW5jZWxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5hY3Rpb25CdXR0b25JdGVtc1ByaXZhdGUuc2V0KHRoaXMuYWN0aW9uQnV0dG9uSXRlbXNQdWJsaWMuaXRlbXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVBdHRhY2hlZChyZWY6IENka1BvcnRhbE91dGxldEF0dGFjaGVkUmVmKSB7XG4gICAgcmVmID0gcmVmIGFzIENvbXBvbmVudFJlZjx1bmtub3duPjtcbiAgICBpZiAocmVmLmluc3RhbmNlICYmIGlzQnJvd3NlcigpKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlZi5pbnN0YW5jZSwgeyBtZXNzYWdlOiB0aGlzLmNoYXRNZXNzYWdlKCkgfSk7XG5cbiAgICAgIGNvbnN0IHByZWZpeENvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtbWVzc2FnZS1wcmVmaXgnKTtcbiAgICAgIGNvbnN0IHN1ZmZpeENvbnRhaW5lciA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCcuYXgtbWVzc2FnZS1zdWZmaXgnKTtcbiAgICAgIHByZWZpeENvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcbiAgICAgIHN1ZmZpeENvbnRhaW5lci5pbm5lckhUTUwgPSAnJztcblxuICAgICAgY29uc3QgcHJlZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXByZWZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ2F4LXN1ZmZpeCcpIGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgICBpZiAocHJlZml4ICYmIHByZWZpeENvbnRhaW5lcikge1xuICAgICAgICBwcmVmaXguc3R5bGUuZGlzcGxheSA9ICdmbGV4JztcbiAgICAgICAgcHJlZml4Q29udGFpbmVyLmFwcGVuZChwcmVmaXgpO1xuICAgICAgfVxuICAgICAgaWYgKHN1ZmZpeCAmJiBzdWZmaXhDb250YWluZXIpIHtcbiAgICAgICAgc3VmZml4LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgIHN1ZmZpeENvbnRhaW5lci5hcHBlbmQoc3VmZml4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUmVzZW5kQ2xpY2soKSB7XG4gICAgdGhpcy5wb3BvdmVyKCk/LmNsb3NlKCk7XG4gICAgdGhpcy5jaGF0TWVzc2FnZSgpLm9uUmVzZW5kQ2xpY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEZWxldGVDbGljaygpIHtcbiAgICB0aGlzLnBvcG92ZXIoKT8uY2xvc2UoKTtcbiAgICB0aGlzLmNoYXRNZXNzYWdlKCkub25EZWxldGVDbGljaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcGx5SGFuZGxlcihlOiBBWENvbnZlcnNhdGlvbk1lc3NhZ2UpIHtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UucmVwbHlJZC5zZXQoZS5pZCk7XG4gICAgdGhpcy5vblJlcGx5Q2xpY2suZW1pdCh7IGRhdGE6IGUsIGNvbXBvbmVudDogdGhpcyB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5pc093biA/ICdheC1zdGF0ZS1vd24nIDogJyd9ICR7IXRoaXMuaXNPd24gPyAnYXgtc3RhdGUtb3RoZXInIDogJyd9YDtcbiAgfVxufVxuIiwiQGlmIChjaGF0TWVzc2FnZSgpLmZyb21JZCkge1xuICBAaWYgKGF2YXRhcigpKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhdmF0YXIoKVwiPjwvbmctY29udGFpbmVyPlxuICB9IEBlbHNlIHtcbiAgICA8YXgtYXZhdGFyIGNvbG9yPVwicHJpbWFyeVwiIFtzaXplXT1cIjM2XCI+IDwvYXgtYXZhdGFyPlxuICB9XG59XG5cbkBpZiAoaXNPd24gJiYgaXNSZXBseUFycm93U2hvd24oKSkge1xuICA8aSAoY2xpY2spPVwicmVwbHlIYW5kbGVyKGNoYXRNZXNzYWdlKCkpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1yZXBseSBheC1jdXJzb3ItcG9pbnRlclwiPjwvaT5cbn1cblxuPGRpdlxuICBjbGFzcz1cImF4LW1lc3NhZ2UtY29udGVudFwiXG4gIFtjbGFzc109XCInYXgtdHlwZS0nICsgbWVzc2FnZVR5cGUoKVwiXG4gIFtjbGFzcy5heC1zdGF0ZS1vd25dPVwiIWNoYXRNZXNzYWdlKCkuZnJvbUlkXCJcbiAgW2NsYXNzLmF4LXN0YXRlLW90aGVyXT1cImNoYXRNZXNzYWdlKCkuZnJvbUlkXCJcbj5cbiAgPGRpdiBjbGFzcz1cImF4LWFjdGlvbi1idXR0b25cIj5cbiAgICBAaWYgKGNoYXRNZXNzYWdlKCk/LnVzZXJOYW1lKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS11c2VyLW5hbWVcIj5cbiAgICAgICAgPGF4LXRleHQ+e3sgY2hhdE1lc3NhZ2UoKS51c2VyTmFtZSB9fTwvYXgtdGV4dD5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoY2hhdE1lc3NhZ2UoKT8uc2hvd0FjdGlvbkJ1dHRvbikge1xuICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2UtYWN0aW9uLWJ1dHRvblwiPlxuICAgICAgICA8YXgtbWVudSBvcGVuT249XCJjbGlja1wiIFtoYXNBcnJvd109XCJmYWxzZVwiPlxuICAgICAgICAgIDxheC1tZW51LWl0ZW0gY2xhc3M9XCJheC1wYXJlbnQtbWVudS1pdGVtXCI+XG4gICAgICAgICAgICA8YXgtdGV4dCAoY2xpY2spPVwiaGFuZGxlQWN0aW9uQ2xpY2soKVwiPi4uLjwvYXgtdGV4dD5cblxuICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBhY3Rpb25CdXR0b25JdGVtc1ByaXZhdGUoKTsgdHJhY2sgaXRlbS50ZXh0KSB7XG4gICAgICAgICAgICAgIDxheC1tZW51LWl0ZW0gW2NvbG9yXT1cIml0ZW0uY29sb3JcIiAob25DbGljayk9XCJpdGVtLm9uQ2xpY2soY2hhdE1lc3NhZ2UoKS5pZClcIj5cbiAgICAgICAgICAgICAgICA8YXgtdGV4dD57eyBpdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cbiAgICAgICAgICAgICAgICAgIDxheC1pY29uIFtpY29uXT1cIml0ZW0uaWNvblwiPjwvYXgtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2F4LXByZWZpeD5cblxuICAgICAgICAgICAgICAgIEBmb3IgKGlubmVySXRlbSBvZiBpdGVtLml0ZW1zOyB0cmFjayBpbm5lckl0ZW0udGV4dCkge1xuICAgICAgICAgICAgICAgICAgPGF4LW1lbnUtaXRlbSBbY29sb3JdPVwiaW5uZXJJdGVtLmNvbG9yXCIgKG9uQ2xpY2spPVwiaW5uZXJJdGVtLm9uQ2xpY2soY2hhdE1lc3NhZ2UoKS5pZClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGF4LXRleHQ+e3sgaW5uZXJJdGVtLnRleHQgfX08L2F4LXRleHQ+XG4gICAgICAgICAgICAgICAgICAgIDxheC1wcmVmaXg+XG4gICAgICAgICAgICAgICAgICAgICAgPGF4LWljb24gW2ljb25dPVwiaW5uZXJJdGVtLmljb25cIj48L2F4LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvYXgtcHJlZml4PlxuICAgICAgICAgICAgICAgICAgPC9heC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2F4LW1lbnUtaXRlbT5cbiAgICAgICAgPC9heC1tZW51PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJwb3J0YWwoKVwiIChhdHRhY2hlZCk9XCJfaGFuZGxlQXR0YWNoZWQoJGV2ZW50KVwiPjwvbmctdGVtcGxhdGU+XG5cbiAgPGRpdiBjbGFzcz1cImF4LWNoYXQtbWVzc2FnZS1zdGF0dXNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1wcmVmaXhcIj48L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW1lc3NhZ2Utc3VmZml4XCI+PC9kaXY+XG4gICAgICA8c3Bhbj5cbiAgICAgICAge3sgY2hhdE1lc3NhZ2UoKS5zZW5kVGltZSB8IGZvcm1hdDogJ2RhdGV0aW1lJyA6ICdISDptbScgfCBhc3luYyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4+XG4gICAgICAgIEBpZiAoaXNPd24pIHtcbiAgICAgICAgICBAaWYgKGNoYXRNZXNzYWdlKCkuZGVsaXZlclRpbWUgJiYgY2hhdE1lc3NhZ2UoKS5zZW5kVGltZSkge1xuICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2hhdE1lc3NhZ2UoKS5yZWFkVGltZSAmJiBjaGF0TWVzc2FnZSgpLnNlbmRUaW1lKSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb2JibGUtY2hlY2sgYXgtbWVzc2FnZS1zdGF0dXNcIj48L2k+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAoIWNoYXRNZXNzYWdlKCkuc2VuZFRpbWUpIHtcbiAgPGF4LWJ1dHRvbiBjbGFzcz1cImF4LXJlc2VuZC1idXR0b24gYXgteHNcIiBjb2xvcj1cImRhbmdlclwiICNiPlxuICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWVycm9yXCI+PC9heC1pY29uPlxuXG4gICAgPGF4LXBvcG92ZXIgW3RhcmdldF09XCJiXCIgcGxhY2VtZW50PVwiYm90dG9tLWVuZFwiICNwb3BvdmVyPlxuICAgICAgPGRpdiBjbGFzcz1cImF4LW92ZXJsYXktcGFuZVwiPlxuICAgICAgICA8YXgtY29udGVudD4gPC9heC1jb250ZW50PlxuICAgICAgICA8YXgtYnV0dG9uLWl0ZW0tbGlzdD5cbiAgICAgICAgICBAaWYgKGNoYXRNZXNzYWdlKCkub25SZXNlbmRDbGljaykge1xuICAgICAgICAgICAgPGF4LWJ1dHRvbi1pdGVtIHRleHQ9XCJSZXNlbmRcIiAob25DbGljayk9XCJoYW5kbGVSZXNlbmRDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXJlbG9hZCBheC1ib2xkXCI+PC9heC1pY29uPlxuICAgICAgICAgICAgPC9heC1idXR0b24taXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjaGF0TWVzc2FnZSgpLm9uRGVsZXRlQ2xpY2spIHtcbiAgICAgICAgICAgIDxheC1idXR0b24taXRlbSB0ZXh0PVwiRGVsZXRlXCIgY29sb3I9XCJkYW5nZXJcIiAob25DbGljayk9XCJoYW5kbGVEZWxldGVDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxheC1pY29uIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsZWFyIGF4LWJvbGRcIj48L2F4LWljb24+XG4gICAgICAgICAgICA8L2F4LWJ1dHRvbi1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9heC1idXR0b24taXRlbS1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgPC9heC1wb3BvdmVyPlxuICA8L2F4LWJ1dHRvbj5cbn1cblxuQGlmICghaXNPd24gJiYgaXNSZXBseUFycm93U2hvd24oKSkge1xuICA8aSAoY2xpY2spPVwicmVwbHlIYW5kbGVyKGNoYXRNZXNzYWdlKCkpXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1yZXBseSBheC1yb3RhdGUgYXgtY3Vyc29yLXBvaW50ZXJcIj48L2k+XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationMessageAction {\n}\nexport class AXConversationMenuOpeningEvent {\n constructor() {\n this.canceled = false;\n }\n}\nexport class AXConversationMessageBaseComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageBaseComponent }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageBaseComponent, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQzs7QUEyQmpELE1BQU0sT0FBZ0IsMkJBQTJCO0NBTWhEO0FBRUQsTUFBTSxPQUFPLDhCQUE4QjtJQUEzQztRQUVFLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFFbkIsQ0FBQztDQUFBO0FBR0QsTUFBTSxPQUFPLGtDQUFrQzs4R0FBbEMsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFN0eWxlQ29sb3JUeXBlIH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb21wb25lbnQ6IFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWENvbnZlcnNhdGlvbk1lc3NhZ2Uge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNlbmRUaW1lOiBEYXRlIHwgbnVsbDtcbiAgZGVsaXZlclRpbWU/OiBEYXRlO1xuICByZWFkVGltZT86IERhdGU7XG4gIHJlcGx5VG8/OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfTtcbiAgY29udGVudDogYW55O1xuICBmcm9tSWQ/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgb25SZXNlbmRDbGljaz86ICgpID0+IHZvaWQ7XG4gIG9uRGVsZXRlQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkRvd25sb2FkQ2xpY2s/OiAoKSA9PiB2b2lkO1xuICBvbkNhbmNlbENsaWNrPzogKCkgPT4gdm9pZDtcbiAgc2hvd0FjdGlvbkJ1dHRvbj86IGJvb2xlYW47XG4gIHVzZXJOYW1lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhDb252ZXJzYXRpb25NZXNzYWdlQWN0aW9uIHtcbiAgY29sb3I/OiBBWFN0eWxlQ29sb3JUeXBlO1xuICB0ZXh0OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIG9uQ2xpY2s6IChpZDogc3RyaW5nKSA9PiB2b2lkO1xuICBpdGVtcz86IEFYQ29udmVyc2F0aW9uTWVzc2FnZUFjdGlvbltdO1xufVxuXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25NZW51T3BlbmluZ0V2ZW50IHtcbiAgaXRlbXM6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUFjdGlvbltdO1xuICBjYW5jZWxlZCA9IGZhbHNlO1xuICBkYXRhOiBBWENvbnZlcnNhdGlvbk1lc3NhZ2U7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IHtcbiAgbWVzc2FnZTogQVhDb252ZXJzYXRpb25NZXNzYWdlO1xufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXRangeSliderComponent } from '@acorex/components/range-slider';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe } from '@angular/common';\nimport { Component, Renderer2, ViewEncapsulation, afterNextRender, inject, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\n/**\n * Component for displaying audio messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationMessageAudioComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n this.rendrer = inject(Renderer2);\n /**\n * @ignore\n */\n this.audioState = signal('paused', ...(ngDevMode ? [{ debugName: \"audioState\" }] : []));\n /**\n * @ignore\n */\n // audioTag = viewChild<ElementRef<HTMLAudioElement>>('a');\n this.audioTag = signal(new Audio(), ...(ngDevMode ? [{ debugName: \"audioTag\" }] : []));\n /**\n * @ignore\n */\n this.audioRate = signal(1, ...(ngDevMode ? [{ debugName: \"audioRate\" }] : []));\n /**\n * @ignore\n */\n this.currentTime = signal(0, ...(ngDevMode ? [{ debugName: \"currentTime\" }] : []));\n /**\n * @ignore\n */\n this.duration = signal(0, ...(ngDevMode ? [{ debugName: \"duration\" }] : []));\n /**\n * @ignore\n */\n this.currentTimeFormat = signal(0, ...(ngDevMode ? [{ debugName: \"currentTimeFormat\" }] : []));\n /**\n * @ignore\n */\n this.durationFormat = signal(0, ...(ngDevMode ? [{ debugName: \"durationFormat\" }] : []));\n afterNextRender(() => {\n this.audioTag().autoplay = false;\n this.audioTag().src = this.message.content;\n this.rendrer.listen(this.audioTag(), 'ended', this.endedFunction.bind(this));\n this.rendrer.listen(this.audioTag(), 'durationchange', this.durationchangeFunction.bind(this));\n this.rendrer.listen(this.audioTag(), 'timeupdate', this.timeupdateFunction.bind(this));\n });\n }\n /**\n * @ignore\n */\n ngOnDestroy() {\n if (this.endedEvent) {\n this.endedEvent();\n }\n if (this.durationchangeEvent) {\n this.durationchangeEvent();\n }\n if (this.timeupdateEvent) {\n this.timeupdateEvent();\n }\n }\n /**\n * @ignore\n */\n endedFunction() {\n this.audioState.set('paused');\n this.audioTag().pause();\n this.audioTag().currentTime = 0;\n this.currentTime.set(0);\n }\n /**\n * @ignore\n */\n durationchangeFunction() {\n if (this.audioTag().duration === Infinity)\n return;\n this.duration.set(this.audioTag().duration);\n this.durationFormat.set(Math.ceil(this.audioTag().duration) * 1000);\n }\n /**\n * @ignore\n */\n timeupdateFunction() {\n this.currentTime.set(this.audioTag().currentTime);\n this.currentTimeFormat.set(Math.ceil(this.audioTag().currentTime * 1000));\n }\n /**\n * Seeks to the specified time and resumes audio playback.\n *\n * @param e - Time in seconds to seek to.\n * @ignore\n */\n clickHandler(e) {\n this.audioTag().currentTime = e;\n }\n /**\n * Pauses the audio and updates the state to 'paused'.\n * @ignore\n */\n handlePauseClick() {\n this.audioState.set('paused');\n this.audioTag().pause();\n }\n /**\n * Plays the audio and updates the state to 'playing'.\\\n * @ignore\n */\n handlePlayClick() {\n this.audioState.set('playing');\n this.audioTag().play();\n }\n /**\n * Toggles the playback rate of the audio between 1x, 1.5x, and 2x.\n * @ignore\n */\n handleRateClick() {\n if (this.audioRate() === 1) {\n this.audioRate.set(1.5);\n this.audioTag().playbackRate = 1.5;\n }\n else if (this.audioRate() === 1.5) {\n this.audioRate.set(2);\n this.audioTag().playbackRate = 2;\n }\n else if (this.audioRate() === 2) {\n this.audioRate.set(1);\n this.audioTag().playbackRate = 1;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationMessageAudioComponent, isStandalone: true, selector: \"ax-conversation-message-audio\", providers: [{ provide: AXComponent, useExisting: AXConversationMessageAudioComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n <div class=\\\"ax-time-rate\\\">\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ durationFormat() | format: 'time-duration' | async }}\\n }\\n }\\n <ax-button\\n color=\\\"primary\\\"\\n look=\\\"solid\\\"\\n text=\\\"{{ audioRate() }}X\\\"\\n class=\\\"ax-audio-speed\\\"\\n (click)=\\\"handleRateClick()\\\"\\n ></ax-button>\\n </div>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n }\\n</div>\\n<ax-range-slider\\n class=\\\"ax-modify-bgSlider\\\"\\n (ngModelChange)=\\\"clickHandler($event)\\\"\\n [max]=\\\"duration()\\\"\\n [min]=\\\"0\\\"\\n mode=\\\"single\\\"\\n [ngModel]=\\\"currentTime()\\\"\\n color=\\\"primary\\\"\\n>\\n</ax-range-slider>\\n\", styles: [\"ax-conversation-message-audio{display:flex}ax-conversation-message-audio .ax-time-rate .ax-audio-speed{margin-inline-start:.3rem;border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem;padding:0}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXButtonComponent, selector: \"ax-button\", inputs: [\"disabled\", \"size\", \"tabIndex\", \"color\", \"look\", \"text\", \"toggleable\", \"selected\", \"iconOnly\", \"type\", \"loadingText\"], outputs: [\"onBlur\", \"onFocus\", \"onClick\", \"selectedChange\", \"toggleableChange\", \"lookChange\", \"colorChange\", \"disabledChange\", \"loadingTextChange\"] }, { kind: \"component\", type: AXRangeSliderComponent, selector: \"ax-range-slider\", inputs: [\"disabled\", \"readonly\", \"orientation\", \"color\", \"values\", \"mode\", \"min\", \"max\", \"step\", \"snap\", \"tooltipMode\", \"snapMode\", \"hasStep\", \"hasSnap\", \"hasLable\", \"hasTooltip\"], outputs: [\"valuesChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageAudioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, imports: [\n AXDecoratorGenericComponent,\n AXButtonComponent,\n AXRangeSliderComponent,\n FormsModule,\n AsyncPipe,\n AXFormatPipe,\n ], providers: [{ provide: AXComponent, useExisting: AXConversationMessageAudioComponent }], template: \"<ax-prefix>\\n <div class=\\\"ax-time-rate\\\">\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTimeFormat() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ durationFormat() | format: 'time-duration' | async }}\\n }\\n }\\n <ax-button\\n color=\\\"primary\\\"\\n look=\\\"solid\\\"\\n text=\\\"{{ audioRate() }}X\\\"\\n class=\\\"ax-audio-speed\\\"\\n (click)=\\\"handleRateClick()\\\"\\n ></ax-button>\\n </div>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n }\\n</div>\\n<ax-range-slider\\n class=\\\"ax-modify-bgSlider\\\"\\n (ngModelChange)=\\\"clickHandler($event)\\\"\\n [max]=\\\"duration()\\\"\\n [min]=\\\"0\\\"\\n mode=\\\"single\\\"\\n [ngModel]=\\\"currentTime()\\\"\\n color=\\\"primary\\\"\\n>\\n</ax-range-slider>\\n\", styles: [\"ax-conversation-message-audio{display:flex}ax-conversation-message-audio .ax-time-rate .ax-audio-speed{margin-inline-start:.3rem;border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem;padding:0}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBYSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFOUU7Ozs7R0FJRztBQWdCSCxNQUFNLE9B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QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7OEdBdkpVLG1DQUFtQztrR0FBbkMsbUNBQW1DLDRFQUZuQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyxpREM1QnpGLDJxQ0E4Q0EseWpCRHpCSSwyQkFBMkIseUxBQzNCLGlCQUFpQiwyVUFDakIsc0JBQXNCLDJRQUN0QixXQUFXLDBWQUNYLFNBQVMseUNBQ1QsWUFBWTs7MkZBSUgsbUNBQW1DO2tCQWYvQyxTQUFTOytCQUNFLCtCQUErQixpQkFHMUIsaUJBQWlCLENBQUMsSUFBSSxXQUM1Qjt3QkFDUCwyQkFBMkI7d0JBQzNCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsWUFBWTtxQkFDYixhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWEZvcm1hdFBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZm9ybWF0JztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3RW5jYXBzdWxhdGlvbiwgYWZ0ZXJOZXh0UmVuZGVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcblxuLyoqXG4gKiBDb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYXVkaW8gbWVzc2FnZXMgaW4gYSBjb252ZXJzYXRpb24uXG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UtYXVkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbXG4gICAgQVhEZWNvcmF0b3JHZW5lcmljQ29tcG9uZW50LFxuICAgIEFYQnV0dG9uQ29tcG9uZW50LFxuICAgIEFYUmFuZ2VTbGlkZXJDb21wb25lbnQsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFYRm9ybWF0UGlwZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUF1ZGlvQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICByZW5kcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGF1ZGlvU3RhdGUgPSBzaWduYWw8J3BsYXlpbmcnIHwgJ3BhdXNlZCc+KCdwYXVzZWQnKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIC8vIGF1ZGlvVGFnID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEF1ZGlvRWxlbWVudD4+KCdhJyk7XG4gIHByb3RlY3RlZCBhdWRpb1RhZyA9IHNpZ25hbChuZXcgQXVkaW8oKSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgYXVkaW9SYXRlID0gc2lnbmFsKDEpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lRm9ybWF0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uRm9ybWF0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGVuZGVkRXZlbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgZHVyYXRpb25jaGFuZ2VFdmVudDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB0aW1ldXBkYXRlRXZlbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmF1ZGlvVGFnKCkuYXV0b3BsYXkgPSBmYWxzZTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5zcmMgPSB0aGlzLm1lc3NhZ2UuY29udGVudDtcbiAgICAgIHRoaXMucmVuZHJlci5saXN0ZW4odGhpcy5hdWRpb1RhZygpLCAnZW5kZWQnLCB0aGlzLmVuZGVkRnVuY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgICB0aGlzLnJlbmRyZXIubGlzdGVuKHRoaXMuYXVkaW9UYWcoKSwgJ2R1cmF0aW9uY2hhbmdlJywgdGhpcy5kdXJhdGlvbmNoYW5nZUZ1bmN0aW9uLmJpbmQodGhpcykpO1xuICAgICAgdGhpcy5yZW5kcmVyLmxpc3Rlbih0aGlzLmF1ZGlvVGFnKCksICd0aW1ldXBkYXRlJywgdGhpcy50aW1ldXBkYXRlRnVuY3Rpb24uYmluZCh0aGlzKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuZGVkRXZlbnQpIHtcbiAgICAgIHRoaXMuZW5kZWRFdmVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kdXJhdGlvbmNoYW5nZUV2ZW50KSB7XG4gICAgICB0aGlzLmR1cmF0aW9uY2hhbmdlRXZlbnQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudGltZXVwZGF0ZUV2ZW50KSB7XG4gICAgICB0aGlzLnRpbWV1cGRhdGVFdmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGVuZGVkRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGF1c2VkJyk7XG4gICAgdGhpcy5hdWRpb1RhZygpLnBhdXNlKCk7XG4gICAgdGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lID0gMDtcbiAgICB0aGlzLmN1cnJlbnRUaW1lLnNldCgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uY2hhbmdlRnVuY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuYXVkaW9UYWcoKS5kdXJhdGlvbiA9PT0gSW5maW5pdHkpIHJldHVybjtcbiAgICB0aGlzLmR1cmF0aW9uLnNldCh0aGlzLmF1ZGlvVGFnKCkuZHVyYXRpb24pO1xuICAgIHRoaXMuZHVyYXRpb25Gb3JtYXQuc2V0KE1hdGguY2VpbCh0aGlzLmF1ZGlvVGFnKCkuZHVyYXRpb24pICogMTAwMCk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB0aW1ldXBkYXRlRnVuY3Rpb24oKSB7XG4gICAgdGhpcy5jdXJyZW50VGltZS5zZXQodGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lKTtcbiAgICB0aGlzLmN1cnJlbnRUaW1lRm9ybWF0LnNldChNYXRoLmNlaWwodGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lICogMTAwMCkpO1xuICB9XG4gIC8qKlxuICAgKiBTZWVrcyB0byB0aGUgc3BlY2lmaWVkIHRpbWUgYW5kIHJlc3VtZXMgYXVkaW8gcGxheWJhY2suXG4gICAqXG4gICAqIEBwYXJhbSBlIC0gVGltZSBpbiBzZWNvbmRzIHRvIHNlZWsgdG8uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBjbGlja0hhbmRsZXIoZTogYW55KSB7XG4gICAgdGhpcy5hdWRpb1RhZygpLmN1cnJlbnRUaW1lID0gZSBhcyBudW1iZXI7XG4gIH1cblxuICAvKipcbiAgICogUGF1c2VzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgdG8gJ3BhdXNlZCcuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVQYXVzZUNsaWNrKCkge1xuICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5wYXVzZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYXlzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgc3RhdGUgdG8gJ3BsYXlpbmcnLlxcXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVQbGF5Q2xpY2soKSB7XG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncGxheWluZycpO1xuICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5KCk7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgcGxheWJhY2sgcmF0ZSBvZiB0aGUgYXVkaW8gYmV0d2VlbiAxeCwgMS41eCwgYW5kIDJ4LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmF0ZUNsaWNrKCkge1xuICAgIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAxKSB7XG4gICAgICB0aGlzLmF1ZGlvUmF0ZS5zZXQoMS41KTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5YmFja1JhdGUgPSAxLjU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmF1ZGlvUmF0ZSgpID09PSAxLjUpIHtcbiAgICAgIHRoaXMuYXVkaW9SYXRlLnNldCgyKTtcbiAgICAgIHRoaXMuYXVkaW9UYWcoKS5wbGF5YmFja1JhdGUgPSAyO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hdWRpb1JhdGUoKSA9PT0gMikge1xuICAgICAgdGhpcy5hdWRpb1JhdGUuc2V0KDEpO1xuICAgICAgdGhpcy5hdWRpb1RhZygpLnBsYXliYWNrUmF0ZSA9IDE7XG4gICAgfVxuICB9XG59XG4iLCI8YXgtcHJlZml4PlxuICA8ZGl2IGNsYXNzPVwiYXgtdGltZS1yYXRlXCI+XG4gICAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgICBAY2FzZSAoJ3BhdXNlZCcpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBjYXNlICgncGxheWluZycpIHtcbiAgICAgICAge3sgY3VycmVudFRpbWVGb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAge3sgZHVyYXRpb25Gb3JtYXQoKSB8IGZvcm1hdDogJ3RpbWUtZHVyYXRpb24nIHwgYXN5bmMgfX1cbiAgICAgIH1cbiAgICB9XG4gICAgPGF4LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIGxvb2s9XCJzb2xpZFwiXG4gICAgICB0ZXh0PVwie3sgYXVkaW9SYXRlKCkgfX1YXCJcbiAgICAgIGNsYXNzPVwiYXgtYXVkaW8tc3BlZWRcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZVJhdGVDbGljaygpXCJcbiAgICA+PC9heC1idXR0b24+XG4gIDwvZGl2PlxuPC9heC1wcmVmaXg+XG48ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRyb2xsZXJcIj5cbiAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgQGNhc2UgKCdwbGF5aW5nJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGF1c2VDbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXBhdXNlXCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICAgIEBjYXNlICgncGF1c2VkJykge1xuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlUGxheUNsaWNrKClcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tcGxheVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YXgtcmFuZ2Utc2xpZGVyXG4gIGNsYXNzPVwiYXgtbW9kaWZ5LWJnU2xpZGVyXCJcbiAgKG5nTW9kZWxDaGFuZ2UpPVwiY2xpY2tIYW5kbGVyKCRldmVudClcIlxuICBbbWF4XT1cImR1cmF0aW9uKClcIlxuICBbbWluXT1cIjBcIlxuICBtb2RlPVwic2luZ2xlXCJcbiAgW25nTW9kZWxdPVwiY3VycmVudFRpbWUoKVwiXG4gIGNvbG9yPVwicHJpbWFyeVwiXG4+XG48L2F4LXJhbmdlLXNsaWRlcj5cbiJdfQ==","import { AXComponent, MXBaseComponent } from '@acorex/cdk/common';\nimport { AXVirtualScrollingContainerDirective, AXVirtualScrollingItemDirective } from '@acorex/cdk/virtual-scroll';\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, inject, input, output, } from '@angular/core';\nimport { AXConversationMessageComponent } from '../conversation-message/conversation-message.component';\nimport { AXConversationService } from '../services/conversation.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Displays the conversation view with messages and interactions.\n *\n * @category Components\n */\nexport class AXConversationViewComponent extends MXBaseComponent {\n constructor() {\n super(...arguments);\n this.conversationService = inject(AXConversationService);\n this.onScrollEnd = output();\n this.chatBoxHeight = input('30vh', ...(ngDevMode ? [{ debugName: \"chatBoxHeight\" }] : []));\n this.isReplyArrowShown = input(true, ...(ngDevMode ? [{ debugName: \"isReplyArrowShown\" }] : []));\n this.onActionMenuOpening = output();\n this.onAction = output();\n this.onReplyClick = output();\n this.avatar = input(null, ...(ngDevMode ? [{ debugName: \"avatar\" }] : []));\n }\n updatePrevItems(item) {\n this.conversationService.chats.update((prev) => [...item, ...prev]);\n }\n callForUpdate() {\n this.onScrollEnd.emit({ component: this });\n }\n addNewItem(item) {\n this.conversationService.chats.update((prev) => [...prev, item]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationViewComponent, isStandalone: true, selector: \"ax-conversation-view\", inputs: { chatBoxHeight: { classPropertyName: \"chatBoxHeight\", publicName: \"chatBoxHeight\", isSignal: true, isRequired: false, transformFunction: null }, isReplyArrowShown: { classPropertyName: \"isReplyArrowShown\", publicName: \"isReplyArrowShown\", isSignal: true, isRequired: false, transformFunction: null }, avatar: { classPropertyName: \"avatar\", publicName: \"avatar\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onScrollEnd: \"onScrollEnd\", onActionMenuOpening: \"onActionMenuOpening\", onAction: \"onAction\", onReplyClick: \"onReplyClick\" }, providers: [{ provide: AXComponent, useExisting: AXConversationViewComponent }], usesInheritance: true, ngImport: i0, template: \"<div axVirtualScrollingContainer (ScrollEnd)=\\\"callForUpdate()\\\" [height]=\\\"chatBoxHeight()\\\">\\n @for (item of conversationService.chats(); track item.id) {\\n <ax-conversation-message\\n [@fadeIn]\\n (onReplyClick)=\\\"onReplyClick.emit($event)\\\"\\n [avatar]=\\\"avatar()\\\"\\n (onActionMenuOpening)=\\\"onActionMenuOpening.emit($event)\\\"\\n [isReplyArrowShown]=\\\"isReplyArrowShown()\\\"\\n axVirtualScrollingItem\\n [chatMessage]=\\\"item\\\"\\n ></ax-conversation-message>\\n }\\n</div>\\n\", styles: [\"ax-conversation-view{display:block}ax-conversation-view .ax-conversation-container{overflow-y:auto;height:100%}\\n\"], dependencies: [{ kind: \"directive\", type: AXVirtualScrollingContainerDirective, selector: \"[axVirtualScrollingContainer]\", inputs: [\"height\"], outputs: [\"ScrollEnd\"] }, { kind: \"component\", type: AXConversationMessageComponent, selector: \"ax-conversation-message\", inputs: [\"isReplyArrowShown\", \"chatMessage\", \"avatar\"], outputs: [\"onActionMenuOpening\", \"onReplyClick\"] }, { kind: \"directive\", type: AXVirtualScrollingItemDirective, selector: \"[axVirtualScrollingItem]\" }], animations: [\n trigger('fadeIn', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms ease-out', style({ opacity: 1 }))]),\n ]),\n ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXVirtualScrollingContainerDirective, AXConversationMessageComponent, AXVirtualScrollingItemDirective], providers: [{ provide: AXComponent, useExisting: AXConversationViewComponent }], animations: [\n trigger('fadeIn', [\n transition(':enter', [style({ opacity: 0 }), animate('300ms ease-out', style({ opacity: 1 }))]),\n ]),\n ], template: \"<div axVirtualScrollingContainer (ScrollEnd)=\\\"callForUpdate()\\\" [height]=\\\"chatBoxHeight()\\\">\\n @for (item of conversationService.chats(); track item.id) {\\n <ax-conversation-message\\n [@fadeIn]\\n (onReplyClick)=\\\"onReplyClick.emit($event)\\\"\\n [avatar]=\\\"avatar()\\\"\\n (onActionMenuOpening)=\\\"onActionMenuOpening.emit($event)\\\"\\n [isReplyArrowShown]=\\\"isReplyArrowShown()\\\"\\n axVirtualScrollingItem\\n [chatMessage]=\\\"item\\\"\\n ></ax-conversation-message>\\n }\\n</div>\\n\", styles: [\"ax-conversation-view{display:block}ax-conversation-view .ax-conversation-container{overflow-y:auto;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi12aWV3L2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsV0FBVyxFQUFXLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ILE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFeEcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRXpFOzs7O0dBSUc7QUFlSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQWRoRTs7UUFlWSx3QkFBbUIsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUU5RCxnQkFBVyxHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRWhDLGtCQUFhLEdBQUcsS0FBSyxDQUFTLE1BQU0seURBQUMsQ0FBQztRQUV0QyxzQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSw2REFBQyxDQUFDO1FBRWhDLHdCQUFtQixHQUFHLE1BQU0sRUFBa0MsQ0FBQztRQUUvRCxhQUFRLEdBQUcsTUFBTSxFQUE2QixDQUFDO1FBRS9DLGlCQUFZLEdBQUcsTUFBTSxFQUFnQixDQUFDO1FBRXRDLFdBQU0sR0FBRyxLQUFLLENBQW1CLElBQUksa0RBQUMsQ0FBQztLQWF4QztJQVhDLGVBQWUsQ0FBQyxJQUFXO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFTO1FBQ2xCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs4R0EzQlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK25CQVAzQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxpREM3QmpGLGdnQkFhQSwyS0RlWSxvQ0FBb0Msc0hBQUUsOEJBQThCLDhLQUFFLCtCQUErQix1REFFbkc7WUFDVixPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUNoQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDO1NBQ0g7OzJGQUVVLDJCQUEyQjtrQkFkdkMsU0FBUzsrQkFDRSxzQkFBc0IsbUJBR2YsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLG9DQUFvQyxFQUFFLDhCQUE4QixFQUFFLCtCQUErQixDQUFDLGFBQ3JHLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsNkJBQTZCLEVBQUUsQ0FBQyxjQUNuRTt3QkFDVixPQUFPLENBQUMsUUFBUSxFQUFFOzRCQUNoQixVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDaEcsQ0FBQztxQkFDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhDb21wb25lbnQsIEFYRXZlbnQsIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFZpcnR1YWxTY3JvbGxpbmdDb250YWluZXJEaXJlY3RpdmUsIEFYVmlydHVhbFNjcm9sbGluZ0l0ZW1EaXJlY3RpdmUgfSBmcm9tICdAYWNvcmV4L2Nkay92aXJ0dWFsLXNjcm9sbCc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25BY3Rpb25FdmVudCB9IGZyb20gJy4uL2NsYXNzZXMvZXZlbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZW51T3BlbmluZ0V2ZW50IH0gZnJvbSAnLi4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBEaXNwbGF5cyB0aGUgY29udmVyc2F0aW9uIHZpZXcgd2l0aCBtZXNzYWdlcyBhbmQgaW50ZXJhY3Rpb25zLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtBWFZpcnR1YWxTY3JvbGxpbmdDb250YWluZXJEaXJlY3RpdmUsIEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCwgQVhWaXJ0dWFsU2Nyb2xsaW5nSXRlbURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQgfV0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdmYWRlSW4nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbc3R5bGUoeyBvcGFjaXR5OiAwIH0pLCBhbmltYXRlKCczMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMSB9KSldKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGNvbnZlcnNhdGlvblNlcnZpY2UgPSBpbmplY3QoQVhDb252ZXJzYXRpb25TZXJ2aWNlKTtcblxuICBvblNjcm9sbEVuZCA9IG91dHB1dDxBWEV2ZW50PigpO1xuXG4gIGNoYXRCb3hIZWlnaHQgPSBpbnB1dDxzdHJpbmc+KCczMHZoJyk7XG5cbiAgaXNSZXBseUFycm93U2hvd24gPSBpbnB1dCh0cnVlKTtcblxuICBvbkFjdGlvbk1lbnVPcGVuaW5nID0gb3V0cHV0PEFYQ29udmVyc2F0aW9uTWVudU9wZW5pbmdFdmVudD4oKTtcblxuICBvbkFjdGlvbiA9IG91dHB1dDxBWENvbnZlcnNhdGlvbkFjdGlvbkV2ZW50PigpO1xuXG4gIG9uUmVwbHlDbGljayA9IG91dHB1dDxBWENsaWNrRXZlbnQ+KCk7XG5cbiAgYXZhdGFyID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgdXBkYXRlUHJldkl0ZW1zKGl0ZW06IGFueVtdKSB7XG4gICAgdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzLnVwZGF0ZSgocHJldikgPT4gWy4uLml0ZW0sIC4uLnByZXZdKTtcbiAgfVxuXG4gIGNhbGxGb3JVcGRhdGUoKSB7XG4gICAgdGhpcy5vblNjcm9sbEVuZC5lbWl0KHsgY29tcG9uZW50OiB0aGlzIH0pO1xuICB9XG5cbiAgYWRkTmV3SXRlbShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2UuY2hhdHMudXBkYXRlKChwcmV2KSA9PiBbLi4ucHJldiwgaXRlbV0pO1xuICB9XG59XG4iLCI8ZGl2IGF4VmlydHVhbFNjcm9sbGluZ0NvbnRhaW5lciAoU2Nyb2xsRW5kKT1cImNhbGxGb3JVcGRhdGUoKVwiIFtoZWlnaHRdPVwiY2hhdEJveEhlaWdodCgpXCI+XG4gIEBmb3IgKGl0ZW0gb2YgY29udmVyc2F0aW9uU2VydmljZS5jaGF0cygpOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgPGF4LWNvbnZlcnNhdGlvbi1tZXNzYWdlXG4gICAgICBbQGZhZGVJbl1cbiAgICAgIChvblJlcGx5Q2xpY2spPVwib25SZXBseUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbYXZhdGFyXT1cImF2YXRhcigpXCJcbiAgICAgIChvbkFjdGlvbk1lbnVPcGVuaW5nKT1cIm9uQWN0aW9uTWVudU9wZW5pbmcuZW1pdCgkZXZlbnQpXCJcbiAgICAgIFtpc1JlcGx5QXJyb3dTaG93bl09XCJpc1JlcGx5QXJyb3dTaG93bigpXCJcbiAgICAgIGF4VmlydHVhbFNjcm9sbGluZ0l0ZW1cbiAgICAgIFtjaGF0TWVzc2FnZV09XCJpdGVtXCJcbiAgICA+PC9heC1jb252ZXJzYXRpb24tbWVzc2FnZT5cbiAgfVxuPC9kaXY+XG4iXX0=","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { AXComponent } from '@acorex/cdk/common';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, ViewEncapsulation, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * Component for displaying file messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationFileMessageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this.fileState = signal('ready', ...(ngDevMode ? [{ debugName: \"fileState\" }] : []));\n /**\n * @ignore\n */\n this.fileSize = signal(null, ...(ngDevMode ? [{ debugName: \"fileSize\" }] : []));\n /**\n * @ignore\n */\n this.fileName = signal('', ...(ngDevMode ? [{ debugName: \"fileName\" }] : []));\n /**\n * @ignore\n */\n this.fileService = inject(AXFileService);\n /**\n * @ignore\n */\n this.http = inject(HttpClient);\n /**\n * @ignore\n */\n this.parent = inject(AXConversationViewComponent);\n afterNextRender(() => {\n if (this.message.name) {\n this.fileName.set(this.message.name);\n this.fileSize.set(this.fileService.getSize(this.message.content));\n }\n else {\n this.fileName.set(this.message.content[0].name);\n this.fileSize.set(this.message.content[0].size);\n }\n });\n }\n /**\n * Emits a download action event for the file.\n * @ignore\n */\n handleDownloadFile() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n /**\n * Emits a cancel action event for the file loading.\n * @ignore\n */\n handleCancelLoading() {\n this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationFileMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationFileMessageComponent, isStandalone: true, selector: \"ax-conversation-message-file\", providers: [{ provide: AXComponent, useExisting: AXConversationFileMessageComponent }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n {{ fileSize() | format: 'filesize' | async }}\\n</ax-prefix>\\n<div class=\\\"ax-file-container\\\">\\n <div class=\\\"ax-conversation-controller\\\">\\n @switch (fileState()) {\\n @case ('ready') {\\n <button (click)=\\\"handleDownloadFile()\\\">\\n <i class=\\\"ax-icon ax-icon-download\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n </div>\\n\\n <div class=\\\"ax-file-name\\\">{{ fileName() }}</div>\\n</div>\\n\", styles: [\"ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationFileMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-file', encapsulation: ViewEncapsulation.None, imports: [AXDecoratorGenericComponent, AXLoadingSpinnerComponent, AsyncPipe, AXFormatPipe], providers: [{ provide: AXComponent, useExisting: AXConversationFileMessageComponent }], template: \"<ax-prefix>\\n {{ fileSize() | format: 'filesize' | async }}\\n</ax-prefix>\\n<div class=\\\"ax-file-container\\\">\\n <div class=\\\"ax-conversation-controller\\\">\\n @switch (fileState()) {\\n @case ('ready') {\\n <button (click)=\\\"handleDownloadFile()\\\">\\n <i class=\\\"ax-icon ax-icon-download\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n </div>\\n\\n <div class=\\\"ax-file-name\\\">{{ fileName() }}</div>\\n</div>\\n\", styles: [\"ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNEQUFzRDtBQUN0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQWtCLGVBQWUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUU5RTs7OztHQUlHO0FBU0gsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLGtDQUFrQztJQTJCeEY7O09BRUc7SUFDSDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBOUJWOztXQUVHO1FBQ0gsY0FBUyxHQUFrRCxNQUFNLENBQUMsT0FBTyxxREFBQyxDQUFDO1FBQzNFOztXQUVHO1FBQ0gsYUFBUSxHQUEyQixNQUFNLENBQUMsSUFBSSxvREFBQyxDQUFDO1FBQ2hEOztXQUVHO1FBQ0gsYUFBUSxHQUEyQixNQUFNLENBQUMsRUFBRSxvREFBQyxDQUFDO1FBRTlDOztXQUVHO1FBQ0gsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEM7O1dBRUc7UUFDSCxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCOztXQUVHO1FBQ0gsV0FBTSxHQUFHLE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBTzNDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBVyxDQUFDLENBQUM7WUFDOUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDOzhHQXpEVSxrQ0FBa0M7a0dBQWxDLGtDQUFrQywyRUFGbEMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGtDQUFrQyxFQUFFLENBQUMsaURDdkJ4Rixxc0JBMEJBLHFTREpZLDJCQUEyQix5TEFBRSx5QkFBeUIsdUdBQUUsU0FBUyx5Q0FBRSxZQUFZOzsyRkFHOUUsa0NBQWtDO2tCQVI5QyxTQUFTOytCQUNFLDhCQUE4QixpQkFHekIsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLDJCQUEyQixFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsYUFDL0UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxvQ0FBb0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXG5pbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGaWxlU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYRm9ybWF0UGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBXcml0YWJsZVNpZ25hbCwgYWZ0ZXJOZXh0UmVuZGVyLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLXZpZXcvY29udmVyc2F0aW9uLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBmaWxlIG1lc3NhZ2VzIGluIGEgY29udmVyc2F0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1maWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0FYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCwgQXN5bmNQaXBlLCBBWEZvcm1hdFBpcGVdLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTdGF0ZTogV3JpdGFibGVTaWduYWw8J2xvYWRpbmcnIHwgJ3JlYWR5JyB8ICdlcnJvcic+ID0gc2lnbmFsKCdyZWFkeScpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTaXplOiBXcml0YWJsZVNpZ25hbDxudW1iZXI+ID0gc2lnbmFsKG51bGwpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVOYW1lOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+ID0gc2lnbmFsKCcnKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcGFyZW50ID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICBpZiAodGhpcy5tZXNzYWdlLm5hbWUpIHtcbiAgICAgICAgdGhpcy5maWxlTmFtZS5zZXQodGhpcy5tZXNzYWdlLm5hbWUpO1xuICAgICAgICB0aGlzLmZpbGVTaXplLnNldCh0aGlzLmZpbGVTZXJ2aWNlLmdldFNpemUodGhpcy5tZXNzYWdlLmNvbnRlbnQpIGFzIG51bWJlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGVOYW1lLnNldCh0aGlzLm1lc3NhZ2UuY29udGVudFswXS5uYW1lKTtcbiAgICAgICAgdGhpcy5maWxlU2l6ZS5zZXQodGhpcy5tZXNzYWdlLmNvbnRlbnRbMF0uc2l6ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYSBkb3dubG9hZCBhY3Rpb24gZXZlbnQgZm9yIHRoZSBmaWxlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoYW5kbGVEb3dubG9hZEZpbGUoKSB7XG4gICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5tZXNzYWdlLCBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIGNhbmNlbCBhY3Rpb24gZXZlbnQgZm9yIHRoZSBmaWxlIGxvYWRpbmcuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZUNhbmNlbExvYWRpbmcoKSB7XG4gICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdCh7IGNvbXBvbmVudDogdGhpcywgZGF0YTogdGhpcy5tZXNzYWdlLCBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSB9KTtcbiAgfVxufVxuIiwiPGF4LXByZWZpeD5cbiAge3sgZmlsZVNpemUoKSB8IGZvcm1hdDogJ2ZpbGVzaXplJyB8IGFzeW5jIH19XG48L2F4LXByZWZpeD5cbjxkaXYgY2xhc3M9XCJheC1maWxlLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLWNvbnRyb2xsZXJcIj5cbiAgICBAc3dpdGNoIChmaWxlU3RhdGUoKSkge1xuICAgICAgQGNhc2UgKCdyZWFkeScpIHtcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlRG93bmxvYWRGaWxlKClcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1kb3dubG9hZFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiaGFuZGxlQ2FuY2VsTG9hZGluZygpXCI+XG4gICAgICAgICAgPGF4LWxvYWRpbmctc3Bpbm5lclxuICAgICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgICAgW3N0cm9rZV09XCIyXCJcbiAgICAgICAgICAgIFtjb2xvcl09XCJtZXNzYWdlLmZyb21JZCA/ICd3aGl0ZScgOiAnd2FybmluZydcIlxuICAgICAgICAgID48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYXgtZmlsZS1uYW1lXCI+e3sgZmlsZU5hbWUoKSB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport * as i0 from \"@angular/core\";\n/**\n * A popup component for displaying an image in full view.\n *\n * @category Components\n */\nexport class ConversationMessageImagePopupComponent {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: ConversationMessageImagePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.3\", type: ConversationMessageImagePopupComponent, isStandalone: true, selector: \"ax-conversation-message-image-popup\", providers: [{ provide: AXComponent, useExisting: ConversationMessageImagePopupComponent }], ngImport: i0, template: ` <img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" />`, isInline: true, styles: [\"ax-conversation-message-image-popup{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{object-fit:fill;width:30vw}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: ConversationMessageImagePopupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-image-popup', template: ` <img class=\"ax-image-popup\" [src]=\"url\" alt=\"\" />`, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXComponent, useExisting: ConversationMessageImagePopupComponent }], styles: [\"ax-conversation-message-image-popup{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{object-fit:fill;width:30vw}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UtcG9wdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUU3RDs7OztHQUlHO0FBUUgsTUFBTSxPQUFPLHNDQUFzQzs4R0FBdEMsc0NBQXNDO2tHQUF0QyxzQ0FBc0Msa0ZBRnRDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxzQ0FBc0MsRUFBRSxDQUFDLDBCQUhoRixvREFBb0Q7OzJGQUtuRCxzQ0FBc0M7a0JBUGxELFNBQVM7K0JBQ0UscUNBQXFDLFlBQ3JDLG9EQUFvRCxpQkFFL0MsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHdDQUF3QyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQSBwb3B1cCBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYW4gaW1hZ2UgaW4gZnVsbCB2aWV3LlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWltYWdlLXBvcHVwJyxcbiAgdGVtcGxhdGU6IGAgPGltZyBjbGFzcz1cImF4LWltYWdlLXBvcHVwXCIgW3NyY109XCJ1cmxcIiBhbHQ9XCJcIiAvPmAsXG4gIHN0eWxlVXJsOiAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VQb3B1cENvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCB1cmw6IHN0cmluZztcbn1cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { Component, afterNextRender, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { ConversationMessageImagePopupComponent } from '../conversation-message-image-popup/conversation-message-image-popup.component';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying an image within a conversation message.\n *\n * @category Components\n */\nexport class AXConversationMessageImageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this._imageUrl = signal('', ...(ngDevMode ? [{ debugName: \"_imageUrl\" }] : []));\n /**\n * @ignore\n */\n this.popup = inject(AXPopupService);\n /**\n * @ignore\n */\n this._options = {\n header: true,\n footer: false,\n size: 'md',\n draggable: true,\n hasBackdrop: true,\n closeButton: true,\n closeOnBackdropClick: false,\n };\n afterNextRender(() => {\n this._imageUrl.set(this.message?.content);\n });\n }\n /**\n * Opens a popup displaying the image with options for draggable, size, and backdrop.\n * @ignore\n */\n openPopup() {\n this.popup\n .open(ConversationMessageImagePopupComponent, {\n draggable: this._options.draggable,\n header: this._options.header,\n size: this._options.size,\n hasBackdrop: this._options.hasBackdrop,\n closeButton: this._options.closeButton,\n closeOnBackdropClick: this._options.closeOnBackdropClick,\n data: {\n url: this._imageUrl(),\n },\n })\n .then((c) => {\n console.log(c);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.3\", type: AXConversationMessageImageComponent, isStandalone: true, selector: \"ax-conversation-message-image\", inputs: { message: \"message\" }, providers: [{ provide: AXComponent, useExisting: AXConversationMessageImageComponent }], usesInheritance: true, ngImport: i0, template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `, isInline: true, styles: [\"img{cursor:pointer;width:100%;height:100%}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageImageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-image', template: `<img (click)=\"openPopup()\" [src]=\"_imageUrl()\" alt=\"\" /> `, inputs: ['message'], providers: [{ provide: AXComponent, useExisting: AXConversationMessageImageComponent }], styles: [\"img{cursor:pointer;width:100%;height:100%}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UvY29udmVyc2F0aW9uLW1lc3NhZ2UtaW1hZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFtQixNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sZ0ZBQWdGLENBQUM7O0FBRXhJOzs7O0dBSUc7QUFjSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0NBQWtDO0lBd0J6Rjs7T0FFRztJQUNIO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUEzQlY7O1dBRUc7UUFDTyxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUscURBQUMsQ0FBQztRQUVqQzs7V0FFRztRQUNLLFVBQUssR0FBbUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZEOztXQUVHO1FBQ08sYUFBUSxHQUFHO1lBQ25CLE1BQU0sRUFBRSxJQUFJO1lBQ1osTUFBTSxFQUFFLEtBQUs7WUFDYixJQUFJLEVBQUUsSUFBSTtZQUNWLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUk7WUFDakIsV0FBVyxFQUFFLElBQUk7WUFDakIsb0JBQW9CLEVBQUUsS0FBSztTQUM1QixDQUFDO1FBT0EsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVM7UUFDUCxJQUFJLENBQUMsS0FBSzthQUNQLElBQUksQ0FBQyxzQ0FBc0MsRUFBRTtZQUM1QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO1lBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBdUI7WUFDM0MsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN0QyxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3RDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CO1lBQ3hELElBQUksRUFBRTtnQkFDSixHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTthQUN0QjtTQUNGLENBQUM7YUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXREVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw0R0FGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsaURBVDdFLDJEQUEyRDs7MkZBVzFELG1DQUFtQztrQkFiL0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsMkRBQTJELFVBUTdELENBQUMsU0FBUyxDQUFDLGFBQ1IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQ0FBcUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3B1cFNlcnZpY2UsIEFYUG9wdXBTaXplVHlwZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGFmdGVyTmV4dFJlbmRlciwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuaW1wb3J0IHsgQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS1wb3B1cC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGFuIGltYWdlIHdpdGhpbiBhIGNvbnZlcnNhdGlvbiBtZXNzYWdlLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWltYWdlJyxcbiAgdGVtcGxhdGU6IGA8aW1nIChjbGljayk9XCJvcGVuUG9wdXAoKVwiIFtzcmNdPVwiX2ltYWdlVXJsKClcIiBhbHQ9XCJcIiAvPiBgLFxuICBzdHlsZXM6IGBcbiAgICBpbWcge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICBgLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9pbWFnZVVybCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHBvcHVwOiBBWFBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX29wdGlvbnMgPSB7XG4gICAgaGVhZGVyOiB0cnVlLFxuICAgIGZvb3RlcjogZmFsc2UsXG4gICAgc2l6ZTogJ21kJyxcbiAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgY2xvc2VCdXR0b246IHRydWUsXG4gICAgY2xvc2VPbkJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxuICB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5faW1hZ2VVcmwuc2V0KHRoaXMubWVzc2FnZT8uY29udGVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogT3BlbnMgYSBwb3B1cCBkaXNwbGF5aW5nIHRoZSBpbWFnZSB3aXRoIG9wdGlvbnMgZm9yIGRyYWdnYWJsZSwgc2l6ZSwgYW5kIGJhY2tkcm9wLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBvcGVuUG9wdXAoKSB7XG4gICAgdGhpcy5wb3B1cFxuICAgICAgLm9wZW4oQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlUG9wdXBDb21wb25lbnQsIHtcbiAgICAgICAgZHJhZ2dhYmxlOiB0aGlzLl9vcHRpb25zLmRyYWdnYWJsZSxcbiAgICAgICAgaGVhZGVyOiB0aGlzLl9vcHRpb25zLmhlYWRlcixcbiAgICAgICAgc2l6ZTogdGhpcy5fb3B0aW9ucy5zaXplIGFzIEFYUG9wdXBTaXplVHlwZSxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuX29wdGlvbnMuaGFzQmFja2Ryb3AsXG4gICAgICAgIGNsb3NlQnV0dG9uOiB0aGlzLl9vcHRpb25zLmNsb3NlQnV0dG9uLFxuICAgICAgICBjbG9zZU9uQmFja2Ryb3BDbGljazogdGhpcy5fb3B0aW9ucy5jbG9zZU9uQmFja2Ryb3BDbGljayxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHVybDogdGhpcy5faW1hZ2VVcmwoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAudGhlbigoYykgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhjKTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, ViewEncapsulation, inject, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport { AXConversationService } from '../../services/conversation.service';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying a text message with optional reply content, including text, images, videos, files, and audio.\n *\n * @category Components\n */\nexport class AXConversationTextMessageComponent extends AXConversationMessageBaseComponent {\n constructor() {\n super(...arguments);\n /**\n * @ignore\n */\n this._text = signal('', ...(ngDevMode ? [{ debugName: \"_text\" }] : []));\n /**\n * @ignore\n */\n this.replyText = signal(null, ...(ngDevMode ? [{ debugName: \"replyText\" }] : []));\n /**\n * @ignore\n */\n this.replyImage = signal(null, ...(ngDevMode ? [{ debugName: \"replyImage\" }] : []));\n /**\n * @ignore\n */\n this.replyVideo = signal(null, ...(ngDevMode ? [{ debugName: \"replyVideo\" }] : []));\n /**\n * @ignore\n */\n this.replyAudio = signal(null, ...(ngDevMode ? [{ debugName: \"replyAudio\" }] : []));\n /**\n * @ignore\n */\n this.replyVoice = signal(null, ...(ngDevMode ? [{ debugName: \"replyVoice\" }] : []));\n /**\n * @ignore\n */\n this.replyFile = signal(null, ...(ngDevMode ? [{ debugName: \"replyFile\" }] : []));\n /**\n * @ignore\n */\n this.conversationService = inject(AXConversationService);\n }\n ngOnInit() {\n this._text.set(this.message?.content);\n if (!this.message?.replyTo)\n return;\n const replyMessage = this.conversationService.chats().find((chat) => chat.id === this.message?.replyTo?.id);\n switch (replyMessage.type) {\n case 'text':\n this.replyText.set(replyMessage);\n break;\n case 'image':\n this.replyImage.set(replyMessage);\n break;\n case 'video':\n this.replyVideo.set(replyMessage);\n break;\n case 'audio':\n this.replyAudio.set(replyMessage);\n break;\n case 'voice':\n this.replyVoice.set(replyMessage);\n break;\n case 'file':\n this.replyFile.set(replyMessage);\n break;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationTextMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationTextMessageComponent, isStandalone: true, selector: \"ng-component\", inputs: { message: \"message\" }, providers: [{ provide: AXComponent, useExisting: AXConversationTextMessageComponent }], usesInheritance: true, ngImport: i0, template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-image-reply-container\"><img [src]=\"replyImage().content\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-video-reply-container\"><video [src]=\"replyVideo().content\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `, isInline: true, styles: [\".ax-text-message{word-break:normal;white-space:break-spaces}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationTextMessageComponent, decorators: [{\n type: Component,\n args: [{ template: `\n @if (replyText()) {\n <div class=\"ax-message-reply-container\">{{ replyText().content }}</div>\n }\n\n @if (replyImage()) {\n <div class=\"ax-image-reply-container\"><img [src]=\"replyImage().content\" alt=\"\" /></div>\n }\n\n @if (replyVideo()) {\n <div class=\"ax-video-reply-container\"><video [src]=\"replyVideo().content\"></video></div>\n }\n\n @if (replyFile()) {\n <div class=\"ax-message-reply-container\">\n <div class=\"file\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyFile().name }}\n </div>\n </div>\n }\n\n @if (replyAudio() || replyVoice()) {\n <div class=\"ax-message-reply-container\">{{ replyAudio().type }}</div>\n }\n\n <div class=\"ax-text-message\" [innerHtml]=\"_text()\"></div>\n `, encapsulation: ViewEncapsulation.None, inputs: ['message'], providers: [{ provide: AXComponent, useExisting: AXConversationTextMessageComponent }], styles: [\".ax-text-message{word-break:normal;white-space:break-spaces}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS10ZXh0L2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUF5QixrQ0FBa0MsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQUU1RTs7OztHQUlHO0FBbUNILE1BQU0sT0FBTyxrQ0FBbUMsU0FBUSxrQ0FBa0M7SUFsQzFGOztRQW1DRTs7V0FFRztRQUNPLFVBQUssR0FBRyxNQUFNLENBQUMsRUFBRSxpREFBQyxDQUFDO1FBRTdCOztXQUVHO1FBQ08sY0FBUyxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxxREFBQyxDQUFDO1FBRWpFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sZUFBVSxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxzREFBQyxDQUFDO1FBRWxFOztXQUVHO1FBQ08sY0FBUyxHQUFHLE1BQU0sQ0FBK0IsSUFBSSxxREFBQyxDQUFDO1FBRWpFOztXQUVHO1FBQ0gsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7S0E4QnJEO0lBNUJDLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU87WUFBRSxPQUFPO1FBRW5DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUcsUUFBUSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDMUIsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNO1lBQ1IsS0FBSyxNQUFNO2dCQUNULElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUNqQyxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7OEdBcEVVLGtDQUFrQztrR0FBbEMsa0NBQWtDLDJGQUZsQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsa0NBQWtDLEVBQUUsQ0FBQyxpREEvQjVFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7OzJGQU1VLGtDQUFrQztrQkFsQzlDLFNBQVM7K0JBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxpQkFFYyxpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCLENBQUMsU0FBUyxDQUFDLGFBQ1IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxvQ0FBb0MsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlLCBBWENvbnZlcnNhdGlvbk1lc3NhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi5zZXJ2aWNlJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhIHRleHQgbWVzc2FnZSB3aXRoIG9wdGlvbmFsIHJlcGx5IGNvbnRlbnQsIGluY2x1ZGluZyB0ZXh0LCBpbWFnZXMsIHZpZGVvcywgZmlsZXMsIGFuZCBhdWRpby5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKHJlcGx5VGV4dCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1yZXBseS1jb250YWluZXJcIj57eyByZXBseVRleHQoKS5jb250ZW50IH19PC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChyZXBseUltYWdlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1pbWFnZS1yZXBseS1jb250YWluZXJcIj48aW1nIFtzcmNdPVwicmVwbHlJbWFnZSgpLmNvbnRlbnRcIiBhbHQ9XCJcIiAvPjwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAocmVwbHlWaWRlbygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtdmlkZW8tcmVwbHktY29udGFpbmVyXCI+PHZpZGVvIFtzcmNdPVwicmVwbHlWaWRlbygpLmNvbnRlbnRcIj48L3ZpZGVvPjwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAocmVwbHlGaWxlKCkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJheC1tZXNzYWdlLXJlcGx5LWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZVwiPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmEtcmVndWxhciBmYS1mb2xkZXItb3BlblwiPjwvaT5cbiAgICAgICAgICB7eyByZXBseUZpbGUoKS5uYW1lIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChyZXBseUF1ZGlvKCkgfHwgcmVwbHlWb2ljZSgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVzc2FnZS1yZXBseS1jb250YWluZXJcIj57eyByZXBseUF1ZGlvKCkudHlwZSB9fTwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJheC10ZXh0LW1lc3NhZ2VcIiBbaW5uZXJIdG1sXT1cIl90ZXh0KClcIj48L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFsnbWVzc2FnZSddLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBfdGV4dCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlUZXh0ID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcGx5SW1hZ2UgPSBzaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlWaWRlbyA9IHNpZ25hbDxBWENvbnZlcnNhdGlvbk1lc3NhZ2UgfCBudWxsPihudWxsKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCByZXBseUF1ZGlvID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlcGx5Vm9pY2UgPSBzaWduYWw8QVhDb252ZXJzYXRpb25NZXNzYWdlIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVwbHlGaWxlID0gc2lnbmFsPEFYQ29udmVyc2F0aW9uTWVzc2FnZSB8IG51bGw+KG51bGwpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29udmVyc2F0aW9uU2VydmljZSA9IGluamVjdChBWENvbnZlcnNhdGlvblNlcnZpY2UpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3RleHQuc2V0KHRoaXMubWVzc2FnZT8uY29udGVudCk7XG5cbiAgICBpZiAoIXRoaXMubWVzc2FnZT8ucmVwbHlUbykgcmV0dXJuO1xuXG4gICAgY29uc3QgcmVwbHlNZXNzYWdlID0gdGhpcy5jb252ZXJzYXRpb25TZXJ2aWNlLmNoYXRzKCkuZmluZCgoY2hhdCkgPT4gY2hhdC5pZCA9PT0gdGhpcy5tZXNzYWdlPy5yZXBseVRvPy5pZCk7XG5cbiAgICBzd2l0Y2ggKHJlcGx5TWVzc2FnZS50eXBlKSB7XG4gICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgdGhpcy5yZXBseVRleHQuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICB0aGlzLnJlcGx5SW1hZ2Uuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndmlkZW8nOlxuICAgICAgICB0aGlzLnJlcGx5VmlkZW8uc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXVkaW8nOlxuICAgICAgICB0aGlzLnJlcGx5QXVkaW8uc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndm9pY2UnOlxuICAgICAgICB0aGlzLnJlcGx5Vm9pY2Uuc2V0KHJlcGx5TWVzc2FnZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZmlsZSc6XG4gICAgICAgIHRoaXMucmVwbHlGaWxlLnNldChyZXBseU1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { AXComponent } from '@acorex/cdk/common';\nimport { Component, signal } from '@angular/core';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying a video message with playback controls.\n *\n * @category Components\n */\nexport class AXConversationMessageVideoComponent extends AXConversationMessageBaseComponent {\n constructor() {\n super(...arguments);\n /**\n * @ignore\n */\n this._videoUrl = signal('', ...(ngDevMode ? [{ debugName: \"_videoUrl\" }] : []));\n }\n /**\n * @ignore\n */\n ngOnInit() {\n this._videoUrl.set(this.message?.content);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageVideoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.3\", type: AXConversationMessageVideoComponent, isStandalone: true, selector: \"ax-conversation-message-video\", providers: [{ provide: AXComponent, useExisting: AXConversationMessageVideoComponent }], usesInheritance: true, ngImport: i0, template: `<video controls [src]=\"_videoUrl()\"></video>`, isInline: true, styles: [\"video{width:100%;height:100%}\\n\"] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationMessageVideoComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-video', template: `<video controls [src]=\"_videoUrl()\"></video>`, providers: [{ provide: AXComponent, useExisting: AXConversationMessageVideoComponent }], styles: [\"video{width:100%;height:100%}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8vY29udmVyc2F0aW9uLW1lc3NhZ2UtdmlkZW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFOUU7Ozs7R0FJRztBQVlILE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxrQ0FBa0M7SUFYM0Y7O1FBWUU7O1dBRUc7UUFDTyxjQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUscURBQUMsQ0FBQztLQVFsQztJQU5DOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs4R0FYVSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyw0RUFGbkMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsaURBUDdFLDhDQUE4Qzs7MkZBUzdDLG1DQUFtQztrQkFYL0MsU0FBUzsrQkFDRSwrQkFBK0IsWUFDL0IsOENBQThDLGFBTzdDLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24udHlwZXMnO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgdmlkZW8gbWVzc2FnZSB3aXRoIHBsYXliYWNrIGNvbnRyb2xzLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLXZpZGVvJyxcbiAgdGVtcGxhdGU6IGA8dmlkZW8gY29udHJvbHMgW3NyY109XCJfdmlkZW9VcmwoKVwiPjwvdmlkZW8+YCxcbiAgc3R5bGVzOiBgXG4gICAgdmlkZW8ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICBgLFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uTWVzc2FnZVZpZGVvQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF92aWRlb1VybCA9IHNpZ25hbCgnJyk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl92aWRlb1VybC5zZXQodGhpcy5tZXNzYWdlPy5jb250ZW50KTtcbiAgfVxufVxuIl19","import { AXComponent } from '@acorex/cdk/common';\nimport { AXAudioWaveComponent } from '@acorex/components/audio-wave';\nimport { AXDecoratorGenericComponent } from '@acorex/components/decorators';\nimport { AXLoadingSpinnerComponent } from '@acorex/components/loading';\nimport { AXFormatPipe } from '@acorex/core/format';\nimport { AsyncPipe, isPlatformBrowser } from '@angular/common';\nimport { Component, HostBinding, PLATFORM_ID, ViewChild, ViewEncapsulation, afterNextRender, inject, signal, } from '@angular/core';\nimport { AXConversationViewComponent } from '../../conversation-view/conversation-view.component';\nimport { AXConversationMessageBaseComponent } from '../../conversation.types';\nimport * as i0 from \"@angular/core\";\n/**\n * A component for displaying and handling audio messages in a conversation.\n *\n * @category Components\n */\nexport class AXConversationVoiceMessageComponent extends AXConversationMessageBaseComponent {\n /**\n * @ignore\n */\n constructor() {\n super();\n /**\n * @ignore\n */\n this.config = { url: '' };\n /**\n * @ignore\n */\n this.audioState = signal('paused', ...(ngDevMode ? [{ debugName: \"audioState\" }] : []));\n /**\n * @ignore\n */\n this.parent = inject(AXConversationViewComponent);\n this.platformID = inject(PLATFORM_ID);\n /**\n * @ignore\n */\n this.selectedRate = signal(1, ...(ngDevMode ? [{ debugName: \"selectedRate\" }] : []));\n /**\n * @ignore\n */\n this.selectedRateIndex = signal(1, ...(ngDevMode ? [{ debugName: \"selectedRateIndex\" }] : []));\n /**\n * @ignore\n */\n this.audioProgress = signal(0, ...(ngDevMode ? [{ debugName: \"audioProgress\" }] : []));\n /**\n * @ignore\n */\n this.timeLeft = signal(0, ...(ngDevMode ? [{ debugName: \"timeLeft\" }] : []));\n /**\n * @ignore\n */\n this.currentTime = signal(0, ...(ngDevMode ? [{ debugName: \"currentTime\" }] : []));\n /**\n * @ignore\n */\n this.duration = signal(0, ...(ngDevMode ? [{ debugName: \"duration\" }] : []));\n afterNextRender(() => {\n this.config.url = this.message?.content;\n this.config.audioRate = 0.25;\n this.setWaveColor();\n this.audio.onStatusChanged.subscribe((c) => {\n this.parent.onAction.emit(c);\n });\n this.handleLoadingProgress();\n });\n }\n /**\n * @ignore\n */\n setWaveColor() {\n let waveColor = '';\n let progressColor = '';\n if (isPlatformBrowser(this.platformID)) {\n if (this.message.fromId) {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-other-progress-color');\n }\n else {\n waveColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-bar-color');\n progressColor = getComputedStyle(document.body).getPropertyValue('--ax-message-own-progress-color');\n }\n }\n this.config.waveColor = waveColor;\n this.config.progressColor = progressColor;\n }\n /**\n * Pauses the audio playback and updates the audio state to 'paused'.\n * @ignore\n */\n handlePauseClick() {\n this.audio?.pause();\n this.audioState.set('paused');\n }\n /**\n * Plays the audio and updates the audio state to 'playing'.\n * @ignore\n */\n handlePlayClick() {\n this.audio?.play()?.then(() => {\n this.audioState.set('playing');\n });\n }\n /**\n * Updates audio state and progress based on status changes from the audio wave.\n * @param e - The event containing status and data related to the audio.\n * @ignore\n */\n handleOnStatusChanged(e) {\n if (e.status === 'load' || e.status === 'loading') {\n this.audioState.set('loading');\n }\n if (e.status === 'loading') {\n this.audioProgress.set(e.data.percent);\n this.duration.set(Math.ceil(e.data.duration * 1000));\n }\n if (e.status === 'ready') {\n this.audioState.set('ready');\n this.duration.set(Math.ceil(e.data.duration * 1000));\n }\n if (e.status === 'finish') {\n this.audioState.set('paused');\n }\n if (e.status === 'timeupdate') {\n this.timeLeft.set(this.duration() - e.data.currentTime * 1000);\n this.currentTime.set(e.data.currentTime * 1000);\n }\n if (e.status === 'error') {\n this.audioState.set('error');\n }\n }\n /**\n * @ignore\n */\n handleLoadingProgress() {\n // this.audioLoaderProgress?.nativeElement.style.cssText = `--ax-audio-progress: ${this.audioProgress()}`;\n }\n /**\n * Handles the cancellation of a loading operation.\n * @ignore\n */\n handleCancelLoading() {\n //\n }\n /**\n * Reloads the audio and updates the state to 'loading'.\n * @ignore\n */\n handleReloadClick() {\n //\n this.audioState.set('loading');\n this.audio.load();\n }\n /**\n * Cycles through predefined audio playback rates and updates the rate.\n * @ignore\n */\n handleRateClick() {\n const rates = [0.5, 1, 2, 4];\n if (this.selectedRateIndex() == rates.length - 1) {\n this.selectedRateIndex.set(0);\n }\n else {\n this.selectedRateIndex.set(this.selectedRateIndex() + 1);\n }\n this.selectedRate.set(rates[this.selectedRateIndex()]);\n this.audio.setRate(this.selectedRate());\n }\n /**\n * @ignore\n */\n get __hostClass() {\n return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationVoiceMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.3\", type: AXConversationVoiceMessageComponent, isStandalone: true, selector: \"ax-conversation-message-audio\", inputs: { message: \"message\" }, host: { properties: { \"class\": \"this.__hostClass\" } }, providers: [{ provide: AXComponent, useExisting: AXConversationVoiceMessageComponent }], viewQueries: [{ propertyName: \"audio\", first: true, predicate: [\"a\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<ax-prefix>\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ duration() | format: 'time-duration' | async }}\\n }\\n }\\n <button class=\\\"ax-audio-speed\\\" (click)=\\\"handleRateClick()\\\"></button>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n\\n @case ('ready') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('error') {\\n <button class=\\\"ax-state-error\\\" (click)=\\\"handleReloadClick()\\\">\\n <i class=\\\"ax-icon ax-icon-reload\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n</div>\\n<ax-audio-wave #a [config]=\\\"config\\\" (onStatusChanged)=\\\"handleOnStatusChanged($event)\\\"></ax-audio-wave>\\n<ax-suffix>\\n <div class=\\\"ax-audio-rate-button\\\" [class.ax-state-own]=\\\"!message?.fromId\\\" (click)=\\\"handleRateClick()\\\">\\n {{ selectedRate() }}X\\n </div>\\n</ax-suffix>\\n\", styles: [\"ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-comp-conversation-other-color-fore);color:var(--ax-comp-conversation-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-comp-conversation-own-color-fore);color:var(--ax-comp-conversation-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\\n\"], dependencies: [{ kind: \"component\", type: AXDecoratorGenericComponent, selector: \"ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay\" }, { kind: \"component\", type: AXLoadingSpinnerComponent, selector: \"ax-loading-spinner\", inputs: [\"text\", \"color\", \"size\", \"stroke\"] }, { kind: \"component\", type: AXAudioWaveComponent, selector: \"ax-audio-wave\", inputs: [\"config\"], outputs: [\"onStatusChanged\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXFormatPipe, name: \"format\" }], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationVoiceMessageComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, inputs: ['message'], imports: [AXDecoratorGenericComponent, AXLoadingSpinnerComponent, AXAudioWaveComponent, AsyncPipe, AXFormatPipe], providers: [{ provide: AXComponent, useExisting: AXConversationVoiceMessageComponent }], template: \"<ax-prefix>\\n @switch (audioState()) {\\n @case ('paused') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @case ('playing') {\\n {{ currentTime() | format: 'time-duration' | async }}\\n }\\n @default {\\n {{ duration() | format: 'time-duration' | async }}\\n }\\n }\\n <button class=\\\"ax-audio-speed\\\" (click)=\\\"handleRateClick()\\\"></button>\\n</ax-prefix>\\n<div class=\\\"ax-conversation-controller\\\">\\n @switch (audioState()) {\\n @case ('playing') {\\n <button (click)=\\\"handlePauseClick()\\\">\\n <i class=\\\"ax-icon ax-icon-pause\\\"></i>\\n </button>\\n }\\n\\n @case ('ready') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('paused') {\\n <button (click)=\\\"handlePlayClick()\\\">\\n <i class=\\\"ax-icon ax-icon-play\\\"></i>\\n </button>\\n }\\n\\n @case ('error') {\\n <button class=\\\"ax-state-error\\\" (click)=\\\"handleReloadClick()\\\">\\n <i class=\\\"ax-icon ax-icon-reload\\\"></i>\\n </button>\\n }\\n\\n @default {\\n <button (click)=\\\"handleCancelLoading()\\\">\\n <ax-loading-spinner\\n [size]=\\\"24\\\"\\n [stroke]=\\\"2\\\"\\n [color]=\\\"message.fromId ? 'white' : 'warning'\\\"\\n ></ax-loading-spinner>\\n </button>\\n }\\n }\\n</div>\\n<ax-audio-wave #a [config]=\\\"config\\\" (onStatusChanged)=\\\"handleOnStatusChanged($event)\\\"></ax-audio-wave>\\n<ax-suffix>\\n <div class=\\\"ax-audio-rate-button\\\" [class.ax-state-own]=\\\"!message?.fromId\\\" (click)=\\\"handleRateClick()\\\">\\n {{ selectedRate() }}X\\n </div>\\n</ax-suffix>\\n\", styles: [\"ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-comp-conversation-other-color-fore);color:var(--ax-comp-conversation-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-comp-conversation-own-color-fore);color:var(--ax-comp-conversation-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { audio: [{\n type: ViewChild,\n args: ['a']\n }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb252ZXJzYXRpb24tbWVzc2FnZXMvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UvY29udmVyc2F0aW9uLW1lc3NhZ2Utdm9pY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sRUFBMEIsb0JBQW9CLEVBQWdCLE1BQU0sK0JBQStCLENBQUM7QUFDM0csT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUVqQixlQUFlLEVBQ2YsTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQkFB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RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILElBQ0ksV0FBVztRQUNiLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3RFLENBQUM7OEdBcExVLG1DQUFtQztrR0FBbkMsbUNBQW1DLG1LQUZuQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUNBQW1DLEVBQUUsQ0FBQyw2SUNoQ3pGLHltREF5REEsd3lCRDFCWSwyQkFBMkIseUxBQUUseUJBQXlCLDRHQUFFLG9CQUFvQix1R0FBRSxTQUFTLHlDQUFFLFlBQVk7OzJGQUdwRyxtQ0FBbUM7a0JBVC9DLFNBQVM7K0JBQ0UsK0JBQStCLGlCQUcxQixpQkFBaUIsQ0FBQyxJQUFJLFVBQzdCLENBQUMsU0FBUyxDQUFDLFdBQ1YsQ0FBQywyQkFBMkIsRUFBRSx5QkFBeUIsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxDQUFDLGFBQ3JHLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcscUNBQXFDLEVBQUUsQ0FBQzt3REFNdkUsS0FBSztzQkFBcEIsU0FBUzt1QkFBQyxHQUFHO2dCQThLVixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQsIEFYQXVkaW9XYXZlQ29tcG9uZW50LCBBWFdhdmVDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYXVkaW8td2F2ZSc7XG5pbXBvcnQgeyBBWERlY29yYXRvckdlbmVyaWNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWExvYWRpbmdTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhGb3JtYXRQaXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIFBMQVRGT1JNX0lELFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBpbmplY3QsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbnZlcnNhdGlvbi50eXBlcyc7XG5cbi8qKlxuICogQSBjb21wb25lbnQgZm9yIGRpc3BsYXlpbmcgYW5kIGhhbmRsaW5nIGF1ZGlvIG1lc3NhZ2VzIGluIGEgY29udmVyc2F0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLWF1ZGlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6IGAuL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXZvaWNlLmNvbXBvbmVudC5zY3NzYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW5wdXRzOiBbJ21lc3NhZ2UnXSxcbiAgaW1wb3J0czogW0FYRGVjb3JhdG9yR2VuZXJpY0NvbXBvbmVudCwgQVhMb2FkaW5nU3Bpbm5lckNvbXBvbmVudCwgQVhBdWRpb1dhdmVDb21wb25lbnQsIEFzeW5jUGlwZSwgQVhGb3JtYXRQaXBlXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYQ29udmVyc2F0aW9uVm9pY2VNZXNzYWdlQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvblZvaWNlTWVzc2FnZUNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZUJhc2VDb21wb25lbnQge1xuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBWaWV3Q2hpbGQoJ2EnKSBhdWRpbzogQVhBdWRpb1dhdmVDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBjb25maWc6IEFYV2F2ZUNvbmZpZyA9IHsgdXJsOiAnJyB9O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgYXVkaW9TdGF0ZTogV3JpdGFibGVTaWduYWw8J3BsYXlpbmcnIHwgJ3BhdXNlZCcgfCAnbG9hZGluZycgfCAncmVhZHknIHwgJ2Vycm9yJz4gPSBzaWduYWwoJ3BhdXNlZCcpO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcGFyZW50ID0gaW5qZWN0KEFYQ29udmVyc2F0aW9uVmlld0NvbXBvbmVudCk7XG4gIHByaXZhdGUgcGxhdGZvcm1JRCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBzZWxlY3RlZFJhdGUgPSBzaWduYWwoMSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBzZWxlY3RlZFJhdGVJbmRleCA9IHNpZ25hbCgxKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBhdWRpb1Byb2dyZXNzID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIHRpbWVMZWZ0ID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGN1cnJlbnRUaW1lID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGR1cmF0aW9uID0gc2lnbmFsKDApO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5jb25maWcudXJsID0gdGhpcy5tZXNzYWdlPy5jb250ZW50O1xuICAgICAgdGhpcy5jb25maWcuYXVkaW9SYXRlID0gMC4yNTtcbiAgICAgIHRoaXMuc2V0V2F2ZUNvbG9yKCk7XG4gICAgICB0aGlzLmF1ZGlvLm9uU3RhdHVzQ2hhbmdlZC5zdWJzY3JpYmUoKGMpID0+IHtcbiAgICAgICAgdGhpcy5wYXJlbnQub25BY3Rpb24uZW1pdChjKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5oYW5kbGVMb2FkaW5nUHJvZ3Jlc3MoKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHNldFdhdmVDb2xvcigpIHtcbiAgICBsZXQgd2F2ZUNvbG9yID0gJyc7XG4gICAgbGV0IHByb2dyZXNzQ29sb3IgPSAnJztcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgaWYgKHRoaXMubWVzc2FnZS5mcm9tSWQpIHtcbiAgICAgICAgd2F2ZUNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3RoZXItYmFyLWNvbG9yJyk7XG4gICAgICAgIHByb2dyZXNzQ29sb3IgPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmdldFByb3BlcnR5VmFsdWUoJy0tYXgtbWVzc2FnZS1vdGhlci1wcm9ncmVzcy1jb2xvcicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgd2F2ZUNvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3duLWJhci1jb2xvcicpO1xuICAgICAgICBwcm9ncmVzc0NvbG9yID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5nZXRQcm9wZXJ0eVZhbHVlKCctLWF4LW1lc3NhZ2Utb3duLXByb2dyZXNzLWNvbG9yJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29uZmlnLndhdmVDb2xvciA9IHdhdmVDb2xvcjtcbiAgICB0aGlzLmNvbmZpZy5wcm9ncmVzc0NvbG9yID0gcHJvZ3Jlc3NDb2xvcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXVzZXMgdGhlIGF1ZGlvIHBsYXliYWNrIGFuZCB1cGRhdGVzIHRoZSBhdWRpbyBzdGF0ZSB0byAncGF1c2VkJy5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlUGF1c2VDbGljaygpIHtcbiAgICB0aGlzLmF1ZGlvPy5wYXVzZSgpO1xuICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYXlzIHRoZSBhdWRpbyBhbmQgdXBkYXRlcyB0aGUgYXVkaW8gc3RhdGUgdG8gJ3BsYXlpbmcnLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBoYW5kbGVQbGF5Q2xpY2soKSB7XG4gICAgdGhpcy5hdWRpbz8ucGxheSgpPy50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BsYXlpbmcnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIGF1ZGlvIHN0YXRlIGFuZCBwcm9ncmVzcyBiYXNlZCBvbiBzdGF0dXMgY2hhbmdlcyBmcm9tIHRoZSBhdWRpbyB3YXZlLlxuICAgKiBAcGFyYW0gZSAtIFRoZSBldmVudCBjb250YWluaW5nIHN0YXR1cyBhbmQgZGF0YSByZWxhdGVkIHRvIHRoZSBhdWRpby5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlT25TdGF0dXNDaGFuZ2VkKGU6IEFYQXVkaW9XYXZlQ2hhbmdlRXZlbnQpIHtcbiAgICBpZiAoZS5zdGF0dXMgPT09ICdsb2FkJyB8fCBlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdsb2FkaW5nJyk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2xvYWRpbmcnKSB7XG4gICAgICB0aGlzLmF1ZGlvUHJvZ3Jlc3Muc2V0KGUuZGF0YS5wZXJjZW50KTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ3JlYWR5Jykge1xuICAgICAgdGhpcy5hdWRpb1N0YXRlLnNldCgncmVhZHknKTtcbiAgICAgIHRoaXMuZHVyYXRpb24uc2V0KE1hdGguY2VpbChlLmRhdGEuZHVyYXRpb24gKiAxMDAwKSk7XG4gICAgfVxuICAgIGlmIChlLnN0YXR1cyA9PT0gJ2ZpbmlzaCcpIHtcbiAgICAgIHRoaXMuYXVkaW9TdGF0ZS5zZXQoJ3BhdXNlZCcpO1xuICAgIH1cbiAgICBpZiAoZS5zdGF0dXMgPT09ICd0aW1ldXBkYXRlJykge1xuICAgICAgdGhpcy50aW1lTGVmdC5zZXQodGhpcy5kdXJhdGlvbigpIC0gZS5kYXRhLmN1cnJlbnRUaW1lICogMTAwMCk7XG4gICAgICB0aGlzLmN1cnJlbnRUaW1lLnNldChlLmRhdGEuY3VycmVudFRpbWUgKiAxMDAwKTtcbiAgICB9XG4gICAgaWYgKGUuc3RhdHVzID09PSAnZXJyb3InKSB7XG4gICAgICB0aGlzLmF1ZGlvU3RhdGUuc2V0KCdlcnJvcicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlTG9hZGluZ1Byb2dyZXNzKCkge1xuICAgIC8vIHRoaXMuYXVkaW9Mb2FkZXJQcm9ncmVzcz8ubmF0aXZlRWxlbWVudC5zdHlsZS5jc3NUZXh0ID0gYC0tYXgtYXVkaW8tcHJvZ3Jlc3M6ICR7dGhpcy5hdWRpb1Byb2dyZXNzKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBjYW5jZWxsYXRpb24gb2YgYSBsb2FkaW5nIG9wZXJhdGlvbi5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgaGFuZGxlQ2FuY2VsTG9hZGluZygpIHtcbiAgICAvL1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9hZHMgdGhlIGF1ZGlvIGFuZCB1cGRhdGVzIHRoZSBzdGF0ZSB0byAnbG9hZGluZycuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZVJlbG9hZENsaWNrKCkge1xuICAgIC8vXG4gICAgdGhpcy5hdWRpb1N0YXRlLnNldCgnbG9hZGluZycpO1xuICAgIHRoaXMuYXVkaW8ubG9hZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEN5Y2xlcyB0aHJvdWdoIHByZWRlZmluZWQgYXVkaW8gcGxheWJhY2sgcmF0ZXMgYW5kIHVwZGF0ZXMgdGhlIHJhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGhhbmRsZVJhdGVDbGljaygpIHtcbiAgICBjb25zdCByYXRlcyA9IFswLjUsIDEsIDIsIDRdO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkUmF0ZUluZGV4KCkgPT0gcmF0ZXMubGVuZ3RoIC0gMSkge1xuICAgICAgdGhpcy5zZWxlY3RlZFJhdGVJbmRleC5zZXQoMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXguc2V0KHRoaXMuc2VsZWN0ZWRSYXRlSW5kZXgoKSArIDEpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUmF0ZS5zZXQocmF0ZXNbdGhpcy5zZWxlY3RlZFJhdGVJbmRleCgpXSk7XG4gICAgdGhpcy5hdWRpby5zZXRSYXRlKHRoaXMuc2VsZWN0ZWRSYXRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMubWVzc2FnZS5mcm9tSWQgPyAnYXgtc3RhdGUtb3RoZXInIDogJ2F4LXN0YXRlLW93bid9YDtcbiAgfVxufVxuIiwiPGF4LXByZWZpeD5cbiAgQHN3aXRjaCAoYXVkaW9TdGF0ZSgpKSB7XG4gICAgQGNhc2UgKCdwYXVzZWQnKSB7XG4gICAgICB7eyBjdXJyZW50VGltZSgpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgICBAY2FzZSAoJ3BsYXlpbmcnKSB7XG4gICAgICB7eyBjdXJyZW50VGltZSgpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgICBAZGVmYXVsdCB7XG4gICAgICB7eyBkdXJhdGlvbigpIHwgZm9ybWF0OiAndGltZS1kdXJhdGlvbicgfCBhc3luYyB9fVxuICAgIH1cbiAgfVxuICA8YnV0dG9uIGNsYXNzPVwiYXgtYXVkaW8tc3BlZWRcIiAoY2xpY2spPVwiaGFuZGxlUmF0ZUNsaWNrKClcIj48L2J1dHRvbj5cbjwvYXgtcHJlZml4PlxuPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1jb250cm9sbGVyXCI+XG4gIEBzd2l0Y2ggKGF1ZGlvU3RhdGUoKSkge1xuICAgIEBjYXNlICgncGxheWluZycpIHtcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImhhbmRsZVBhdXNlQ2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wYXVzZVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBjYXNlICgncmVhZHknKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQbGF5Q2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wbGF5XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdwYXVzZWQnKSB7XG4gICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVQbGF5Q2xpY2soKVwiPlxuICAgICAgICA8aSBjbGFzcz1cImF4LWljb24gYXgtaWNvbi1wbGF5XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuXG4gICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgIDxidXR0b24gY2xhc3M9XCJheC1zdGF0ZS1lcnJvclwiIChjbGljayk9XCJoYW5kbGVSZWxvYWRDbGljaygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXJlbG9hZFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cblxuICAgIEBkZWZhdWx0IHtcbiAgICAgIDxidXR0b24gKGNsaWNrKT1cImhhbmRsZUNhbmNlbExvYWRpbmcoKVwiPlxuICAgICAgICA8YXgtbG9hZGluZy1zcGlubmVyXG4gICAgICAgICAgW3NpemVdPVwiMjRcIlxuICAgICAgICAgIFtzdHJva2VdPVwiMlwiXG4gICAgICAgICAgW2NvbG9yXT1cIm1lc3NhZ2UuZnJvbUlkID8gJ3doaXRlJyA6ICd3YXJuaW5nJ1wiXG4gICAgICAgID48L2F4LWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgfVxuPC9kaXY+XG48YXgtYXVkaW8td2F2ZSAjYSBbY29uZmlnXT1cImNvbmZpZ1wiIChvblN0YXR1c0NoYW5nZWQpPVwiaGFuZGxlT25TdGF0dXNDaGFuZ2VkKCRldmVudClcIj48L2F4LWF1ZGlvLXdhdmU+XG48YXgtc3VmZml4PlxuICA8ZGl2IGNsYXNzPVwiYXgtYXVkaW8tcmF0ZS1idXR0b25cIiBbY2xhc3MuYXgtc3RhdGUtb3duXT1cIiFtZXNzYWdlPy5mcm9tSWRcIiAoY2xpY2spPVwiaGFuZGxlUmF0ZUNsaWNrKClcIj5cbiAgICB7eyBzZWxlY3RlZFJhdGUoKSB9fVhcbiAgPC9kaXY+XG48L2F4LXN1ZmZpeD5cbiJdfQ==","import { AXRippleDirective } from '@acorex/cdk/common';\nimport { AXVirtualScrollModule } from '@acorex/cdk/virtual-scroll';\nimport { AXAudioWaveModule } from '@acorex/components/audio-wave';\nimport { AXAvatarModule } from '@acorex/components/avatar';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXDropdownModule } from '@acorex/components/dropdown';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXPopupService } from '@acorex/components/popup';\nimport { AXRangeSliderModule } from '@acorex/components/range-slider';\nimport { AXDateTimeModule } from '@acorex/core/date-time';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CdkPortalOutlet } from '@angular/cdk/portal';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { NgModule, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { AXConversationContainerComponent } from './conversation-container/conversation-container.component';\nimport { AXConversationInputComponent } from './conversation-input/conversation-input.component';\nimport { AXConversationMessageComponent } from './conversation-message/conversation-message.component';\nimport { AXConversationMessageAudioComponent } from './conversation-messages/conversation-message-audio/conversation-message-audio.component';\nimport { AXConversationFileMessageComponent } from './conversation-messages/conversation-message-file/conversation-message-file.component';\nimport { AXConversationMessageImageComponent } from './conversation-messages/conversation-message-image/conversation-message-image.component';\nimport { AXConversationTextMessageComponent } from './conversation-messages/conversation-message-text/conversation-message-text.component';\nimport { AXConversationMessageVideoComponent } from './conversation-messages/conversation-message-video/conversation-message-video.component';\nimport { AXConversationVoiceMessageComponent } from './conversation-messages/conversation-message-voice/conversation-message-voice.component';\nimport { AXConversationViewComponent } from './conversation-view/conversation-view.component';\nimport { AXConversationMessageTypeRegistryService } from './services/conversation-message-type-registry.service';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [\n AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent,\n];\nconst MODULES = [\n CommonModule,\n FormsModule,\n AsyncPipe,\n AXRippleDirective,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n CdkPortalOutlet,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule,\n];\nexport class AXConversationModule {\n static forRoot(config) {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n registry.register({\n name: 'text',\n component: AXConversationTextMessageComponent,\n });\n registry.register({\n name: 'voice',\n component: AXConversationVoiceMessageComponent,\n });\n registry.register({\n name: 'file',\n component: AXConversationFileMessageComponent,\n });\n registry.register({\n name: 'audio',\n component: AXConversationMessageAudioComponent,\n });\n registry.register({\n name: 'image',\n component: AXConversationMessageImageComponent,\n });\n registry.register({\n name: 'video',\n component: AXConversationMessageVideoComponent,\n });\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n static forChild(config) {\n return {\n ngModule: AXConversationModule,\n providers: [\n {\n provide: 'AXChatModuleFactory',\n useFactory: (registry) => () => {\n if (config?.types?.length) {\n registry.register(...config.types);\n }\n },\n deps: [AXConversationMessageTypeRegistryService],\n multi: true,\n },\n ],\n };\n }\n /**\n * @ignore\n */\n constructor() {\n const instances = inject('AXChatModuleFactory', { optional: true });\n instances?.forEach((f) => {\n f();\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationModule, imports: [CommonModule,\n FormsModule,\n AsyncPipe,\n AXRippleDirective,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n CdkPortalOutlet,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule, AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent], exports: [AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationTextMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationContainerComponent,\n AXConversationMessageAudioComponent,\n AXConversationMessageImageComponent,\n AXConversationMessageVideoComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationModule, providers: [AXPopupService], imports: [CommonModule,\n FormsModule,\n AXButtonModule,\n AXDecoratorModule,\n AXTranslationModule,\n AXDropdownModule,\n AXFormatModule,\n AXAudioWaveModule,\n AXCircularProgressModule,\n AXDateTimeModule,\n AXLoadingModule,\n AXAvatarModule,\n AXPopoverModule,\n AXFileModule,\n AXRangeSliderModule,\n AXVirtualScrollModule, AXConversationViewComponent,\n AXConversationInputComponent,\n AXConversationMessageComponent,\n AXConversationVoiceMessageComponent,\n AXConversationFileMessageComponent,\n AXConversationMessageAudioComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.3\", ngImport: i0, type: AXConversationModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [AXPopupService],\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvY29udmVyc2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUM5SSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMzSSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUM5SSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RkFBdUYsQ0FBQztBQUMzSSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUM5SSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx5RkFBeUYsQ0FBQztBQUM5SSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUU5RixPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7QUFNakgsTUFBTSxTQUFTLEdBQUc7SUFDaEIsMkJBQTJCO0lBQzNCLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG1DQUFtQztJQUNuQyxrQ0FBa0M7SUFDbEMsZ0NBQWdDO0lBQ2hDLG1DQUFtQztJQUNuQyxtQ0FBbUM7SUFDbkMsbUNBQW1DO0NBQ3BDLENBQUM7QUFDRixNQUFNLE9BQU8sR0FBRztJQUNkLFlBQVk7SUFDWixXQUFXO0lBQ1gsU0FBUztJQUNULGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsY0FBYztJQUNkLGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixlQUFlO0lBQ2YsY0FBYztJQUNkLGVBQWU7SUFDZixZQUFZO0lBQ1osbUJBQW1CO0lBQ25CLHFCQUFxQjtDQUN0QixDQUFDO0FBT0YsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQTJCO1FBQ3hDLE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixVQUFVLEVBQUUsQ0FBQyxRQUFrRCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7d0JBQ3ZFLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDMUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckMsQ0FBQzt3QkFDRCxRQUFRLENBQUMsUUFBUSxDQUFDOzRCQUNoQixJQUFJLEVBQUUsTUFBTTs0QkFDWixTQUFTLEVBQUUsa0NBQWtDO3lCQUM5QyxDQUFDLENBQUM7d0JBQ0gsUUFBUSxDQUFDLFFBQVEsQ0FBQzs0QkFDaEIsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLG1DQUFtQzt5QkFDL0MsQ0FBQyxDQUFDO3dCQUNILFFBQVEsQ0FBQyxRQUFRLENBQUM7NEJBQ2hCLElBQUksRUFBRSxNQUFNOzRCQUNaLFNBQVMsRUFBRSxrQ0FBa0M7eUJBQzlDLENBQUMsQ0FBQzt3QkFDSCxRQUFRLENBQUMsUUFBUSxDQUFDOzRCQUNoQixJQUFJLEVBQUUsT0FBTzs0QkFDYixTQUFTLEVBQUUsbUNBQW1DO3lCQUMvQyxDQUFDLENBQUM7d0JBQ0gsUUFBUSxDQUFDLFFBQVEsQ0FBQzs0QkFDaEIsSUFBSSxFQUFFLE9BQU87NEJBQ2IsU0FBUyxFQUFFLG1DQUFtQzt5QkFDL0MsQ0FBQyxDQUFDO3dCQUNILFFBQVEsQ0FBQyxRQUFRLENBQUM7NEJBQ2hCLElBQUksRUFBRSxPQUFPOzRCQUNiLFNBQVMsRUFBRSxtQ0FBbUM7eUJBQy9DLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNoRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQTJCO1FBQ3pDLE9BQU87WUFDTCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixVQUFVLEVBQUUsQ0FBQyxRQUFrRCxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7d0JBQ3ZFLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQzs0QkFDMUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDckMsQ0FBQztvQkFDSCxDQUFDO29CQUNELElBQUksRUFBRSxDQUFDLHdDQUF3QyxDQUFDO29CQUNoRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNIO1FBQ0UsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFRLHFCQUE0QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFbEYsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLENBQUMsRUFBRSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXRFVSxvQkFBb0I7K0dBQXBCLG9CQUFvQixZQTFCL0IsWUFBWTtZQUNaLFdBQVc7WUFDWCxTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFDaEIsZUFBZTtZQUNmLGVBQWU7WUFDZixjQUFjO1lBQ2QsZUFBZTtZQUNmLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIscUJBQXFCLEVBOUJyQiwyQkFBMkI7WUFDM0IsNEJBQTRCO1lBQzVCLDhCQUE4QjtZQUM5QixrQ0FBa0M7WUFDbEMsbUNBQW1DO1lBQ25DLGtDQUFrQztZQUNsQyxnQ0FBZ0M7WUFDaEMsbUNBQW1DO1lBQ25DLG1DQUFtQztZQUNuQyxtQ0FBbUMsYUFUbkMsMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1Qiw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLG1DQUFtQztZQUNuQyxrQ0FBa0M7WUFDbEMsZ0NBQWdDO1lBQ2hDLG1DQUFtQztZQUNuQyxtQ0FBbUM7WUFDbkMsbUNBQW1DOytHQTZCeEIsb0JBQW9CLGFBRnBCLENBQUMsY0FBYyxDQUFDLFlBeEIzQixZQUFZO1lBQ1osV0FBVztZQUdYLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLHdCQUF3QjtZQUN4QixnQkFBZ0I7WUFFaEIsZUFBZTtZQUNmLGNBQWM7WUFDZCxlQUFlO1lBQ2YsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixxQkFBcUIsRUE5QnJCLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIsOEJBQThCO1lBRTlCLG1DQUFtQztZQUNuQyxrQ0FBa0M7WUFFbEMsbUNBQW1DOzsyRkErQnhCLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQztvQkFDbkMsT0FBTyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFJpcHBsZURpcmVjdGl2ZSB9IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFZpcnR1YWxTY3JvbGxNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2Nkay92aXJ0dWFsLXNjcm9sbCc7XG5pbXBvcnQgeyBBWEF1ZGlvV2F2ZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9hdWRpby13YXZlJztcbmltcG9ydCB7IEFYQXZhdGFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2F2YXRhcic7XG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgQVhDaXJjdWxhclByb2dyZXNzTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NpcmN1bGFyLXByb2dyZXNzJztcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhEcm9wZG93bk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBBWExvYWRpbmdNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZyc7XG5pbXBvcnQgeyBBWFBvcG92ZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFJhbmdlU2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3JhbmdlLXNsaWRlcic7XG5pbXBvcnQgeyBBWERhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGUtdGltZSc7XG5pbXBvcnQgeyBBWEZpbGVNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBBWEZvcm1hdE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDZGtQb3J0YWxPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25Db250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1jb250YWluZXIvY29udmVyc2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25JbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLWlucHV0L2NvbnZlcnNhdGlvbi1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tbWVzc2FnZS9jb252ZXJzYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlQXVkaW9Db21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby9jb252ZXJzYXRpb24tbWVzc2FnZS1hdWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25GaWxlTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLWZpbGUvY29udmVyc2F0aW9uLW1lc3NhZ2UtZmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS9jb252ZXJzYXRpb24tbWVzc2FnZS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29udmVyc2F0aW9uLW1lc3NhZ2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXRleHQvY29udmVyc2F0aW9uLW1lc3NhZ2UtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby9jb252ZXJzYXRpb24tbWVzc2FnZS12aWRlby5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbnZlcnNhdGlvbi1tZXNzYWdlcy9jb252ZXJzYXRpb24tbWVzc2FnZS12b2ljZS9jb252ZXJzYXRpb24tbWVzc2FnZS12b2ljZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb252ZXJzYXRpb24tdmlldy9jb252ZXJzYXRpb24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJy4vY29udmVyc2F0aW9uLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbnZlcnNhdGlvbi1tZXNzYWdlLXR5cGUtcmVnaXN0cnkuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhDaGF0TW9kdWxlQ29uZmlnIHtcbiAgdHlwZXM6IEFYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVbXTtcbn1cblxuY29uc3QgQ09NUE9ORU5UID0gW1xuICBBWENvbnZlcnNhdGlvblZpZXdDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uSW5wdXRDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uTWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25UZXh0TWVzc2FnZUNvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxuICBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlSW1hZ2VDb21wb25lbnQsXG4gIEFYQ29udmVyc2F0aW9uTWVzc2FnZVZpZGVvQ29tcG9uZW50LFxuXTtcbmNvbnN0IE1PRFVMRVMgPSBbXG4gIENvbW1vbk1vZHVsZSxcbiAgRm9ybXNNb2R1bGUsXG4gIEFzeW5jUGlwZSxcbiAgQVhSaXBwbGVEaXJlY3RpdmUsXG4gIEFYQnV0dG9uTW9kdWxlLFxuICBBWERlY29yYXRvck1vZHVsZSxcbiAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgQVhEcm9wZG93bk1vZHVsZSxcbiAgQVhGb3JtYXRNb2R1bGUsXG4gIEFYQXVkaW9XYXZlTW9kdWxlLFxuICBBWENpcmN1bGFyUHJvZ3Jlc3NNb2R1bGUsXG4gIEFYRGF0ZVRpbWVNb2R1bGUsXG4gIENka1BvcnRhbE91dGxldCxcbiAgQVhMb2FkaW5nTW9kdWxlLFxuICBBWEF2YXRhck1vZHVsZSxcbiAgQVhQb3BvdmVyTW9kdWxlLFxuICBBWEZpbGVNb2R1bGUsXG4gIEFYUmFuZ2VTbGlkZXJNb2R1bGUsXG4gIEFYVmlydHVhbFNjcm9sbE1vZHVsZSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbQVhQb3B1cFNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbk1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IEFYQ2hhdE1vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhDb252ZXJzYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEFYQ29udmVyc2F0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiAnQVhDaGF0TW9kdWxlRmFjdG9yeScsXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHJlZ2lzdHJ5OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnPy50eXBlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy50eXBlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvblRleHRNZXNzYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd2b2ljZScsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25Wb2ljZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2ZpbGUnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uRmlsZU1lc3NhZ2VDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJlZ2lzdHJ5LnJlZ2lzdGVyKHtcbiAgICAgICAgICAgICAgbmFtZTogJ2F1ZGlvJyxcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBBWENvbnZlcnNhdGlvbk1lc3NhZ2VBdWRpb0NvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmVnaXN0cnkucmVnaXN0ZXIoe1xuICAgICAgICAgICAgICBuYW1lOiAnaW1hZ2UnLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEFYQ29udmVyc2F0aW9uTWVzc2FnZUltYWdlQ29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZWdpc3RyeS5yZWdpc3Rlcih7XG4gICAgICAgICAgICAgIG5hbWU6ICd2aWRlbycsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogQVhDb252ZXJzYXRpb25NZXNzYWdlVmlkZW9Db21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlcHM6IFtBWENvbnZlcnNhdGlvbk1lc3NhZ2VUeXBlUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc/OiBBWENoYXRNb2R1bGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYQ29udmVyc2F0aW9uTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBBWENvbnZlcnNhdGlvbk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogJ0FYQ2hhdE1vZHVsZUZhY3RvcnknLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChyZWdpc3RyeTogQVhDb252ZXJzYXRpb25NZXNzYWdlVHlwZVJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbmZpZz8udHlwZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICByZWdpc3RyeS5yZWdpc3RlciguLi5jb25maWcudHlwZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVwczogW0FYQ29udmVyc2F0aW9uTWVzc2FnZVR5cGVSZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IGluc3RhbmNlcyA9IGluamVjdDxhbnlbXT4oJ0FYQ2hhdE1vZHVsZUZhY3RvcnknIGFzIGFueSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAgIGluc3RhbmNlcz8uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgZigpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtY29udmVyc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2Fjb3JleC1jb21wb25lbnRzLWNvbnZlcnNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1","i2"],"mappings":"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"}
|