@acorex/components 22.1.7 → 22.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/emoji/README.md +3 -0
- package/emojipicker/README.md +3 -0
- package/fesm2022/acorex-components-accordion.mjs +12 -12
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +15 -14
- 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-aspect-ratio.mjs +3 -3
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +32 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +9 -8
- 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-bubble.mjs +71 -0
- package/fesm2022/acorex-components-bubble.mjs.map +1 -0
- package/fesm2022/acorex-components-button-group.mjs +22 -15
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +366 -56
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +40 -37
- 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-code-editor.mjs +44 -19
- package/fesm2022/acorex-components-code-editor.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-combo-box.mjs +188 -31
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +11 -7
- package/fesm2022/acorex-components-command.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-acorex-components-conversation-C1Lf9tAe.mjs +19538 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-C1Lf9tAe.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs +50 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs +87 -0
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -0
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs} +5 -5
- package/fesm2022/{acorex-components-conversation-picker-rename-file-dialog.component-DuRLMEa3.mjs.map → acorex-components-conversation-picker-rename-file-dialog.component-DyOC1WEb.mjs.map} +1 -1
- package/fesm2022/acorex-components-conversation.mjs +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +47 -47
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +3 -3
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +182 -184
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +809 -168
- 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 +8 -8
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +59 -117
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +11 -11
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +11 -11
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +10 -9
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +19 -14
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +15 -14
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-emoji.mjs +74 -0
- package/fesm2022/acorex-components-emoji.mjs.map +1 -0
- package/fesm2022/acorex-components-emojipicker.mjs +425 -0
- package/fesm2022/acorex-components-emojipicker.mjs.map +1 -0
- package/fesm2022/acorex-components-fab.mjs +6 -6
- package/fesm2022/acorex-components-fab.mjs.map +1 -1
- package/fesm2022/acorex-components-file-viewer.mjs +250 -133
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +17 -17
- 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-highlight.mjs +80 -0
- package/fesm2022/acorex-components-highlight.mjs.map +1 -0
- package/fesm2022/acorex-components-image-editor.mjs +217 -79
- 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-inline-reaction.mjs +111 -0
- package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -0
- 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 +6 -6
- 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 +28 -9
- 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-lookup.mjs +919 -169
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +20 -13
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +215 -218
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +146 -45
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-message-status.mjs +71 -0
- package/fesm2022/acorex-components-message-status.mjs.map +1 -0
- package/fesm2022/acorex-components-message-time.mjs +36 -0
- package/fesm2022/acorex-components-message-time.mjs.map +1 -0
- package/fesm2022/acorex-components-message.mjs +120 -0
- package/fesm2022/acorex-components-message.mjs.map +1 -0
- package/fesm2022/acorex-components-navbar.mjs +7 -7
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +13 -14
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +17 -10
- 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 +61 -13
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +631 -167
- 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-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-reaction.mjs +144 -0
- package/fesm2022/acorex-components-reaction.mjs.map +1 -0
- package/fesm2022/acorex-components-rest-api-generator.mjs +23 -23
- 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-rrule.mjs +9 -9
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +35 -35
- package/fesm2022/acorex-components-scheduler.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 +9 -8
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +7 -8
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +55 -42
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-sidebar.mjs +28 -28
- package/fesm2022/acorex-components-sidebar.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 +16 -18
- 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 +393 -76
- 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 +7 -7
- 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 +14 -14
- 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 +54 -14
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +13 -13
- 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 +691 -295
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/highlight/README.md +13 -0
- package/inline-reaction/README.md +3 -0
- package/lookup/README.md +1 -1
- package/message/README.md +3 -0
- package/message-status/README.md +3 -0
- package/message-time/README.md +3 -0
- package/package.json +48 -13
- package/reaction/README.md +3 -0
- package/types/acorex-components-action-sheet.d.ts +1 -1
- package/types/acorex-components-audio-wave.d.ts +8 -0
- package/types/acorex-components-bubble.d.ts +31 -0
- package/types/acorex-components-button-group.d.ts +4 -0
- package/types/acorex-components-button.d.ts +75 -10
- package/types/acorex-components-calendar.d.ts +13 -4
- package/types/acorex-components-check-box.d.ts +1 -1
- package/types/acorex-components-code-editor.d.ts +4 -1
- package/types/acorex-components-color-box.d.ts +1 -1
- package/types/acorex-components-color-palette.d.ts +2 -2
- package/types/acorex-components-combo-box.d.ts +21 -2
- package/types/acorex-components-command.d.ts +3 -1
- package/types/acorex-components-conversation.d.ts +550 -242
- package/types/acorex-components-cron-job.d.ts +6 -6
- package/types/acorex-components-data-pager.d.ts +27 -9
- package/types/acorex-components-data-table.d.ts +226 -21
- package/types/acorex-components-datetime-box.d.ts +1 -1
- package/types/acorex-components-datetime-picker.d.ts +1 -1
- package/types/acorex-components-decorators.d.ts +15 -33
- package/types/acorex-components-dialog.d.ts +1 -1
- package/types/acorex-components-dropdown-button.d.ts +2 -1
- package/types/acorex-components-dropdown.d.ts +6 -1
- package/types/acorex-components-editor.d.ts +1 -1
- package/types/acorex-components-emoji.d.ts +42 -0
- package/types/acorex-components-emojipicker.d.ts +146 -0
- package/types/acorex-components-file-viewer.d.ts +14 -2
- package/types/acorex-components-highlight.d.ts +31 -0
- package/types/acorex-components-image-editor.d.ts +19 -2
- package/types/acorex-components-inline-reaction.d.ts +52 -0
- package/types/acorex-components-list.d.ts +12 -0
- package/types/acorex-components-loading-dialog.d.ts +1 -1
- package/types/acorex-components-loading.d.ts +1 -1
- package/types/acorex-components-lookup.d.ts +227 -79
- package/types/acorex-components-map.d.ts +7 -2
- package/types/acorex-components-media-viewer.d.ts +4 -3
- package/types/acorex-components-menu.d.ts +17 -5
- package/types/acorex-components-message-status.d.ts +23 -0
- package/types/acorex-components-message-time.d.ts +19 -0
- package/types/acorex-components-message.d.ts +59 -0
- package/types/acorex-components-notification.d.ts +1 -1
- package/types/acorex-components-number-box.d.ts +2 -1
- package/types/acorex-components-otp.d.ts +1 -1
- package/types/acorex-components-page.d.ts +2 -2
- package/types/acorex-components-paint.d.ts +2 -2
- package/types/acorex-components-password-box.d.ts +1 -1
- package/types/acorex-components-phone-box.d.ts +1 -1
- package/types/acorex-components-popover.d.ts +13 -1
- package/types/acorex-components-popup.d.ts +183 -50
- package/types/acorex-components-rail-navigation.d.ts +1 -1
- package/types/acorex-components-range-slider.d.ts +1 -1
- package/types/acorex-components-reaction.d.ts +85 -0
- package/types/acorex-components-rest-api-generator.d.ts +1 -1
- package/types/acorex-components-rrule.d.ts +1 -1
- package/types/acorex-components-scheduler-picker.d.ts +1 -1
- package/types/acorex-components-scheduler.d.ts +1 -1
- package/types/acorex-components-search-box.d.ts +1 -1
- package/types/acorex-components-selection-list.d.ts +1 -1
- package/types/acorex-components-side-menu.d.ts +6 -8
- package/types/acorex-components-slider.d.ts +1 -1
- package/types/acorex-components-step-wizard.d.ts +4 -4
- package/types/acorex-components-switch.d.ts +1 -1
- package/types/acorex-components-tabs.d.ts +109 -19
- package/types/acorex-components-tag-box.d.ts +2 -2
- package/types/acorex-components-text-area.d.ts +1 -1
- package/types/acorex-components-text-box.d.ts +1 -1
- package/types/acorex-components-time-duration.d.ts +1 -1
- package/types/acorex-components-toast.d.ts +1 -1
- package/types/acorex-components-tree-view.d.ts +23 -1
- package/types/acorex-components-wysiwyg.d.ts +426 -77
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs +0 -16862
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-EiqMwr9v.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs +0 -51
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-D4ca9Mvt.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs +0 -85
- package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-QVs1XWYf.mjs.map +0 -1
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs +0 -210
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-C7BnTUw2.mjs.map +0 -1
- package/fesm2022/acorex-components-flow-chart.mjs +0 -735
- package/fesm2022/acorex-components-flow-chart.mjs.map +0 -1
- package/fesm2022/acorex-components-query-builder.mjs +0 -267
- package/fesm2022/acorex-components-query-builder.mjs.map +0 -1
- package/flow-chart/README.md +0 -3
- package/query-builder/README.md +0 -3
- package/types/acorex-components-flow-chart.d.ts +0 -187
- package/types/acorex-components-query-builder.d.ts +0 -52
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import * as _acorex_components_conversation from '@acorex/components/conversation';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { OnDestroy, ViewContainerRef, Type, InputSignal, WritableSignal, Signal, Provider,
|
|
3
|
+
import { OnDestroy, ViewContainerRef, Type, InputSignal, WritableSignal, Signal, Provider, EventEmitter, TemplateRef, InjectionToken, ElementRef, ModuleWithProviders } from '@angular/core';
|
|
4
4
|
import { AXComponentCloseEvent, AXHtmlEvent, AXClickEvent, AXDataSource, AXPlacement } from '@acorex/cdk/common';
|
|
5
5
|
import { AXTranslationService } from '@acorex/core/translation';
|
|
6
6
|
import * as _acorex_components_action_sheet from '@acorex/components/action-sheet';
|
|
7
7
|
import { AXActionSheetRef } from '@acorex/components/action-sheet';
|
|
8
8
|
import * as _acorex_components_popup from '@acorex/components/popup';
|
|
9
|
-
import {
|
|
9
|
+
import { AXPopupRef, AXPopupService } from '@acorex/components/popup';
|
|
10
10
|
import { AXFileUploadOptions, AXUploadResult, AXUploadReference, AXUploaderService, AXUploaderFileChangeEvent } from '@acorex/cdk/uploader';
|
|
11
|
+
import { AXToastService } from '@acorex/components/toast';
|
|
12
|
+
import { AXValidationRuleResult } from '@acorex/core/validation';
|
|
11
13
|
import { AXListComponent } from '@acorex/components/list';
|
|
12
14
|
import * as rxjs from 'rxjs';
|
|
13
15
|
import { Observable } from 'rxjs';
|
|
@@ -17,12 +19,10 @@ import { AXTabLocation } from '@acorex/components/tabs';
|
|
|
17
19
|
import { AXBasePageComponent } from '@acorex/components/page';
|
|
18
20
|
import * as _acorex_core_file from '@acorex/core/file';
|
|
19
21
|
import { AXFileTypeRegistryService, AXFileTypeExtensionHint, AXFileTypeOpenContext, AXFileTypeInfoProvider, AXFileType, AXFileService } from '@acorex/core/file';
|
|
20
|
-
import { AXToastService } from '@acorex/components/toast';
|
|
21
|
-
import { AXValidationRuleResult } from '@acorex/core/validation';
|
|
22
22
|
import { AXMapMarker } from '@acorex/components/map';
|
|
23
|
+
import { AXWaveConfig, AXAudioWaveChangeEvent } from '@acorex/components/audio-wave';
|
|
23
24
|
import { AXRangeSliderValue } from '@acorex/components/range-slider';
|
|
24
25
|
import { SafeHtml } from '@angular/platform-browser';
|
|
25
|
-
import { AXWaveConfig, AXAudioWaveChangeEvent } from '@acorex/components/audio-wave';
|
|
26
26
|
import * as i1 from '@angular/common';
|
|
27
27
|
import * as i2 from '@angular/forms';
|
|
28
28
|
|
|
@@ -185,6 +185,7 @@ interface AXConversationFileMediaItem extends AXConversationMediaItemFields {
|
|
|
185
185
|
mimeType: string;
|
|
186
186
|
thumbnailUrl?: string;
|
|
187
187
|
extension?: string;
|
|
188
|
+
duration?: number;
|
|
188
189
|
}
|
|
189
190
|
interface AXConversationFilePayload {
|
|
190
191
|
type: 'file';
|
|
@@ -471,6 +472,8 @@ interface AXConversationMessageListThemeBackground {
|
|
|
471
472
|
}
|
|
472
473
|
/** Single CSS value (both themes) or per-theme `{ light, dark }` backgrounds. */
|
|
473
474
|
type AXConversationMessageListBackground = string | AXConversationMessageListThemeBackground;
|
|
475
|
+
/** Composer file-attachment UI: picker popup vs inline strip above the input. */
|
|
476
|
+
type AXConversationComposerAttachmentPresentation = 'overlay' | 'banner';
|
|
474
477
|
/**
|
|
475
478
|
* Conversation metadata
|
|
476
479
|
* Extensible map for app-specific conversation data.
|
|
@@ -481,10 +484,16 @@ interface AXConversationMetadata extends Record<string, unknown> {
|
|
|
481
484
|
/** Optional custom empty-state component for the message list. */
|
|
482
485
|
messageListEmptyComponent?: Type<AXConversationMessageListEmptyComponent>;
|
|
483
486
|
/**
|
|
484
|
-
*
|
|
485
|
-
*
|
|
487
|
+
* Explicit reaction UI override for this conversation.
|
|
488
|
+
* When omitted, reactions are enabled for `private` / `group` / `channel` and disabled for `bot`.
|
|
486
489
|
*/
|
|
487
490
|
reactionsEnabled?: boolean;
|
|
491
|
+
/**
|
|
492
|
+
* How composer file attachments are presented.
|
|
493
|
+
* `overlay` opens the picker popup; `banner` keeps files above the composer (ChatGPT-style).
|
|
494
|
+
* When omitted, `bot` chats default to `banner` and other types to `overlay`.
|
|
495
|
+
*/
|
|
496
|
+
composerAttachmentPresentation?: AXConversationComposerAttachmentPresentation;
|
|
488
497
|
}
|
|
489
498
|
/** Contract for custom empty-state components rendered by message list. */
|
|
490
499
|
interface AXConversationMessageListEmptyComponent {
|
|
@@ -693,6 +702,72 @@ declare abstract class AXConversationBaseRegistry<T extends AXConversationRegist
|
|
|
693
702
|
protected abstract getRegistryName(): string;
|
|
694
703
|
}
|
|
695
704
|
|
|
705
|
+
/**
|
|
706
|
+
* Shared upload state and helpers for composer media pickers.
|
|
707
|
+
*/
|
|
708
|
+
|
|
709
|
+
/** Stable id for `@for` tracking while upload state is patched immutably. */
|
|
710
|
+
declare function createPickerUploadItemId(): string;
|
|
711
|
+
interface AXConversationComposerPickerUploadItem {
|
|
712
|
+
id: string;
|
|
713
|
+
file: File;
|
|
714
|
+
preview?: string;
|
|
715
|
+
duration?: number;
|
|
716
|
+
uploadProgress?: number;
|
|
717
|
+
uploading?: boolean;
|
|
718
|
+
uploaded?: boolean;
|
|
719
|
+
uploadedUrl?: string;
|
|
720
|
+
mediaId?: string;
|
|
721
|
+
error?: string;
|
|
722
|
+
abortController?: AbortController;
|
|
723
|
+
}
|
|
724
|
+
declare function getPickerCancelUploadLabel(translation: AXTranslationService): string;
|
|
725
|
+
declare function abortPickerUploads(items: Iterable<{
|
|
726
|
+
abortController?: AbortController;
|
|
727
|
+
} | null | undefined>): void;
|
|
728
|
+
interface AXConversationCleanupPickerUploadsOptions {
|
|
729
|
+
retainUploaded?: boolean;
|
|
730
|
+
}
|
|
731
|
+
/** Upload finished; reference is {@link mediaId} and/or a non-empty session url. */
|
|
732
|
+
declare function isPickerItemReadyToSend(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId'>): boolean;
|
|
733
|
+
/** Build uploader result shape for {@link *ItemFromUpload} after picker upload. */
|
|
734
|
+
declare function pickerItemToUploadResult(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): {
|
|
735
|
+
url: string;
|
|
736
|
+
mediaId?: string;
|
|
737
|
+
mimeType: string;
|
|
738
|
+
size: number;
|
|
739
|
+
} | null;
|
|
740
|
+
declare function pickerItemToMediaReference(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): AXConversationUploaderReference | null;
|
|
741
|
+
declare function deleteUploadedPickerMedia(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>): Promise<void>;
|
|
742
|
+
declare function cleanupPickerUploads(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>, options?: AXConversationCleanupPickerUploadsOptions): void;
|
|
743
|
+
declare function revokePickerBlobPreviews(items: Iterable<{
|
|
744
|
+
preview?: string;
|
|
745
|
+
} | null | undefined>): void;
|
|
746
|
+
declare function isUploadAborted(error: unknown, signal?: AbortSignal): boolean;
|
|
747
|
+
declare function limitFilesToCapacity(files: File[], currentCount: number, maxFiles: number): File[];
|
|
748
|
+
declare function uploadPickerFile(uploader: AXUploaderService, conversationId: string, file: File, onProgress: (percent: number) => void, signal?: AbortSignal): Promise<{
|
|
749
|
+
url: string;
|
|
750
|
+
mediaId?: string;
|
|
751
|
+
mimeType: string;
|
|
752
|
+
size: number;
|
|
753
|
+
}>;
|
|
754
|
+
declare function notifyMaxFilesCapacityExceeded(toast: AXToastService, translation: AXTranslationService, maxFiles: number): void;
|
|
755
|
+
/** User-facing message for a file validation failure. */
|
|
756
|
+
declare function formatPickerValidationMessage(translation: AXTranslationService, file: File, error: AXValidationRuleResult | undefined): string;
|
|
757
|
+
/** Show a warning toast for each failed validation rule result. */
|
|
758
|
+
declare function notifyPickerValidationErrors(toast: AXToastService, translation: AXTranslationService, rejected: {
|
|
759
|
+
file: File;
|
|
760
|
+
errors: AXValidationRuleResult[];
|
|
761
|
+
}[]): void;
|
|
762
|
+
/** Close popup/action-sheet host or inline composer shell after send/cancel. */
|
|
763
|
+
declare function dismissComposerPickerHost(composerService: AXConversationComposerService, popupRef?: AXPopupRef | null, actionSheetRef?: AXActionSheetRef | null): void;
|
|
764
|
+
|
|
765
|
+
type AXConversationComposerDraftAttachmentKind = 'image' | 'video' | 'audio' | 'file';
|
|
766
|
+
interface AXConversationComposerDraftAttachment extends AXConversationComposerPickerUploadItem {
|
|
767
|
+
kind: AXConversationComposerDraftAttachmentKind;
|
|
768
|
+
icon: string;
|
|
769
|
+
}
|
|
770
|
+
|
|
696
771
|
/** Primary composer button mode (send / cancel / stopping / default action / locked). */
|
|
697
772
|
type AXConversationComposerPrimaryButtonMode = 'send' | 'cancel' | 'stopping' | 'default-action' | 'locked';
|
|
698
773
|
declare class AXConversationComposerService {
|
|
@@ -700,8 +775,13 @@ declare class AXConversationComposerService {
|
|
|
700
775
|
private readonly generationState;
|
|
701
776
|
private readonly translation;
|
|
702
777
|
private readonly popupService;
|
|
778
|
+
private readonly uploader;
|
|
779
|
+
private readonly fileService;
|
|
780
|
+
private readonly toast;
|
|
703
781
|
private readonly config;
|
|
782
|
+
private readonly destroyRef;
|
|
704
783
|
private readonly _activeActionOverlay;
|
|
784
|
+
constructor();
|
|
705
785
|
private get registry();
|
|
706
786
|
private readonly _replyMessage;
|
|
707
787
|
private readonly _editMessage;
|
|
@@ -711,8 +791,10 @@ declare class AXConversationComposerService {
|
|
|
711
791
|
readonly activeMessages: _angular_core.Signal<AXConversationMessage[]>;
|
|
712
792
|
/** Draft text */
|
|
713
793
|
readonly draftText: _angular_core.WritableSignal<string>;
|
|
714
|
-
/**
|
|
715
|
-
readonly
|
|
794
|
+
/** Inline composer attachments shown above the input in banner mode. */
|
|
795
|
+
readonly draftAttachments: _angular_core.WritableSignal<AXConversationComposerDraftAttachment[]>;
|
|
796
|
+
readonly draftAttachmentsReady: _angular_core.Signal<boolean>;
|
|
797
|
+
readonly usesAttachmentBanner: _angular_core.Signal<boolean>;
|
|
716
798
|
/** Incremented to request focus on the composer text area (handled by AXConversationComposerComponent). */
|
|
717
799
|
private readonly _focusRequest;
|
|
718
800
|
readonly focusRequest: _angular_core.Signal<number>;
|
|
@@ -749,6 +831,7 @@ declare class AXConversationComposerService {
|
|
|
749
831
|
startEdit(message: AXConversationMessage): void;
|
|
750
832
|
/** Focus the composer text area when the composer component is mounted. */
|
|
751
833
|
focusComposer(): void;
|
|
834
|
+
clearReplyEdit(): void;
|
|
752
835
|
clear(): void;
|
|
753
836
|
/**
|
|
754
837
|
* Persist draft for the previous conversation and reset composer UI state when switching conversations.
|
|
@@ -767,6 +850,15 @@ declare class AXConversationComposerService {
|
|
|
767
850
|
toggleable?: boolean;
|
|
768
851
|
initialFiles?: File[];
|
|
769
852
|
}): Promise<void>;
|
|
853
|
+
browseDraftAttachments(fileType?: string): Promise<number>;
|
|
854
|
+
addDraftAttachments(files: File[]): Promise<number>;
|
|
855
|
+
removeDraftAttachment(id: string): void;
|
|
856
|
+
clearDraftAttachments(options?: {
|
|
857
|
+
retainUploaded?: boolean;
|
|
858
|
+
}): void;
|
|
859
|
+
buildDraftAttachmentCommand(caption?: string): Promise<AXConversationSendMessageCommand | null>;
|
|
860
|
+
private uploadDraftAttachment;
|
|
861
|
+
private patchDraftAttachment;
|
|
770
862
|
/**
|
|
771
863
|
* Hide the active action overlay.
|
|
772
864
|
*/
|
|
@@ -792,7 +884,7 @@ declare class AXConversationComposerService {
|
|
|
792
884
|
*/
|
|
793
885
|
clearDraft(conversationId: string): void;
|
|
794
886
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerService, never>;
|
|
795
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
887
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
796
888
|
}
|
|
797
889
|
|
|
798
890
|
/**
|
|
@@ -969,7 +1061,7 @@ declare class AXConversationComposerActionRegistry {
|
|
|
969
1061
|
*/
|
|
970
1062
|
clear(): void;
|
|
971
1063
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerActionRegistry, never>;
|
|
972
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1064
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
973
1065
|
}
|
|
974
1066
|
|
|
975
1067
|
/**
|
|
@@ -1030,7 +1122,7 @@ declare class AXConversationComposerTabRegistry {
|
|
|
1030
1122
|
*/
|
|
1031
1123
|
clear(): void;
|
|
1032
1124
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerTabRegistry, never>;
|
|
1033
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1125
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1034
1126
|
}
|
|
1035
1127
|
|
|
1036
1128
|
/**
|
|
@@ -1104,7 +1196,7 @@ declare class AXConversationItemActionRegistry extends AXConversationBaseRegistr
|
|
|
1104
1196
|
getActionTooltip(action: AXConversationItemAction, conversation: AXConversation): string | undefined;
|
|
1105
1197
|
executeAction(actionId: string, context: AXConversationItemActionContext): Promise<void>;
|
|
1106
1198
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationItemActionRegistry, never>;
|
|
1107
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1199
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1108
1200
|
}
|
|
1109
1201
|
|
|
1110
1202
|
/**
|
|
@@ -1171,9 +1263,27 @@ declare class AXConversationTabRegistry {
|
|
|
1171
1263
|
*/
|
|
1172
1264
|
clear(): void;
|
|
1173
1265
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationTabRegistry, never>;
|
|
1174
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1266
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1175
1267
|
}
|
|
1176
1268
|
|
|
1269
|
+
/** Visual chrome around a message body in the list. */
|
|
1270
|
+
type AXConversationMessageChrome = 'bubble' | 'plain';
|
|
1271
|
+
/** Max consecutive emoji graphemes that render as a jumbo (sticker-sized) text message. */
|
|
1272
|
+
declare const AX_CONVERSATION_JUMBO_EMOJI_MAX = 3;
|
|
1273
|
+
/**
|
|
1274
|
+
* Resolve registry chrome config to a concrete value.
|
|
1275
|
+
* Default is {@link AXConversationMessageChrome bubble}.
|
|
1276
|
+
*/
|
|
1277
|
+
declare function resolveMessageChrome(chrome: AXConversationMessageChrome | ((message: AXConversationMessage) => AXConversationMessageChrome) | undefined, message: AXConversationMessage): AXConversationMessageChrome;
|
|
1278
|
+
/** Visible graphemes in trimmed text (whitespace between emojis is dropped). */
|
|
1279
|
+
declare function listTextGraphemes(text: string | null | undefined): string[];
|
|
1280
|
+
/** Count emoji graphemes in trimmed text; `0` when mixed with other characters. */
|
|
1281
|
+
declare function countLoneEmojis(text: string | null | undefined): number;
|
|
1282
|
+
declare function isJumboEmojiText(text: string | null | undefined): boolean;
|
|
1283
|
+
declare function isJumboEmojiTextMessage(message: AXConversationMessage): boolean;
|
|
1284
|
+
/** Types that never sit inside a bubble cluster with neighboring messages. */
|
|
1285
|
+
declare function isPlainChromeMessage(message: AXConversationMessage): boolean;
|
|
1286
|
+
|
|
1177
1287
|
/**
|
|
1178
1288
|
* Message Renderer Registry
|
|
1179
1289
|
* Register custom message renderers for different message types
|
|
@@ -1248,6 +1358,12 @@ interface AXConversationMessageRenderer {
|
|
|
1248
1358
|
canHandle: (message: AXConversationMessage) => boolean;
|
|
1249
1359
|
/** Renderer capabilities */
|
|
1250
1360
|
capabilities: AXConversationMessageRendererCapabilities;
|
|
1361
|
+
/**
|
|
1362
|
+
* List chrome for this message type.
|
|
1363
|
+
* `plain` removes bubble fill, padding, shadow, and tail. Default is `bubble`.
|
|
1364
|
+
* Pass a function when chrome depends on payload (e.g. jumbo emoji text).
|
|
1365
|
+
*/
|
|
1366
|
+
chrome?: AXConversationMessageChrome | ((message: AXConversationMessage) => AXConversationMessageChrome);
|
|
1251
1367
|
/** Display name */
|
|
1252
1368
|
displayName?: string;
|
|
1253
1369
|
/** Icon name/class */
|
|
@@ -1308,7 +1424,7 @@ declare class AXConversationMessageRendererRegistry {
|
|
|
1308
1424
|
*/
|
|
1309
1425
|
clear(): void;
|
|
1310
1426
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageRendererRegistry, never>;
|
|
1311
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1427
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1312
1428
|
}
|
|
1313
1429
|
|
|
1314
1430
|
/**
|
|
@@ -1427,7 +1543,7 @@ declare class AXConversationInfoBarService {
|
|
|
1427
1543
|
clearSearch(): void;
|
|
1428
1544
|
private _extractOnClose;
|
|
1429
1545
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoBarService, never>;
|
|
1430
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1546
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1431
1547
|
}
|
|
1432
1548
|
|
|
1433
1549
|
/**
|
|
@@ -1543,7 +1659,7 @@ declare class AXConversationInfoBarActionRegistry extends AXConversationBaseRegi
|
|
|
1543
1659
|
*/
|
|
1544
1660
|
getActionTooltip(action: AXConversationInfoBarAction, conversation: AXConversation): string | undefined;
|
|
1545
1661
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationInfoBarActionRegistry, never>;
|
|
1546
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1662
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1547
1663
|
}
|
|
1548
1664
|
|
|
1549
1665
|
/**
|
|
@@ -1634,7 +1750,7 @@ declare class AXConversationMessageActionRegistry {
|
|
|
1634
1750
|
*/
|
|
1635
1751
|
clear(): void;
|
|
1636
1752
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageActionRegistry, never>;
|
|
1637
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
1753
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1638
1754
|
}
|
|
1639
1755
|
|
|
1640
1756
|
declare class AXConversationComposerComponent implements OnDestroy {
|
|
@@ -1643,14 +1759,21 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1643
1759
|
private readonly messageListService;
|
|
1644
1760
|
private readonly config;
|
|
1645
1761
|
protected readonly translation: AXTranslationService;
|
|
1762
|
+
private readonly uploader;
|
|
1763
|
+
private readonly platform;
|
|
1764
|
+
private readonly fileService;
|
|
1765
|
+
private readonly toast;
|
|
1766
|
+
private readonly actionSheetService;
|
|
1767
|
+
private readonly hostRef;
|
|
1646
1768
|
/** Access registry through conversation service */
|
|
1647
1769
|
protected get composerActionRegistry(): _acorex_components_conversation.AXConversationComposerActionRegistry;
|
|
1648
1770
|
/** Composer text area reference */
|
|
1649
1771
|
private readonly textAreaRef;
|
|
1650
1772
|
/** Draft text - use service */
|
|
1651
1773
|
readonly draftText: _angular_core.WritableSignal<string>;
|
|
1652
|
-
/**
|
|
1653
|
-
readonly
|
|
1774
|
+
/** Draft attachments shown above the composer in banner mode. */
|
|
1775
|
+
readonly draftAttachments: _angular_core.WritableSignal<_acorex_components_conversation.AXConversationComposerDraftAttachment[]>;
|
|
1776
|
+
readonly usesAttachmentBanner: _angular_core.Signal<boolean>;
|
|
1654
1777
|
/** Editing message */
|
|
1655
1778
|
readonly editingMessage: _angular_core.WritableSignal<any>;
|
|
1656
1779
|
/** Replying to message */
|
|
@@ -1681,6 +1804,7 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1681
1804
|
readonly placeholder: _angular_core.Signal<string>;
|
|
1682
1805
|
constructor();
|
|
1683
1806
|
private draftSaveTimeout?;
|
|
1807
|
+
private seededEditMessageId;
|
|
1684
1808
|
/** Number of input rows - use service */
|
|
1685
1809
|
readonly inputRows: _angular_core.Signal<number>;
|
|
1686
1810
|
/** Can send message - use service */
|
|
@@ -1707,6 +1831,10 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1707
1831
|
readonly defaultAction: _angular_core.Signal<AXConversationComposerAction>;
|
|
1708
1832
|
/** Handle key down (send on Enter; typing is driven by draft changes only). */
|
|
1709
1833
|
onKeyDown(event: AXHtmlEvent<KeyboardEvent>): void;
|
|
1834
|
+
/** Keep the draft signal in sync with ngModel (signal two-way bind is unreliable on ax-text-area). */
|
|
1835
|
+
onDraftModelChange(value: string): void;
|
|
1836
|
+
/** Keep the draft signal in sync with ax-text-area CVA output. */
|
|
1837
|
+
onDraftValueChanged(event: unknown): void;
|
|
1710
1838
|
/** Handle draft text changes — throttled typing indicator via conversation service. */
|
|
1711
1839
|
onDraftChanged(): void;
|
|
1712
1840
|
/** Cleanup on destroy */
|
|
@@ -1730,8 +1858,13 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1730
1858
|
onAttachMenuPanelMouseLeave(): void;
|
|
1731
1859
|
private scheduleAttachMenuClose;
|
|
1732
1860
|
private clearAttachMenuCloseTimer;
|
|
1733
|
-
/**
|
|
1861
|
+
/** Desktop: open an all-files chooser. Mobile: toggle the attachment dropdown. */
|
|
1734
1862
|
onAttachMenuClick(event: AXClickEvent): void;
|
|
1863
|
+
/** Open the OS file picker for any file, then route to the matching composer picker. */
|
|
1864
|
+
private openSmartAttachChooser;
|
|
1865
|
+
/** OS file paste (Ctrl+V) while the composer is focused. */
|
|
1866
|
+
onComposerPaste(event: ClipboardEvent): void;
|
|
1867
|
+
private composerPickerDeps;
|
|
1735
1868
|
/** Handle attachment menu action selection */
|
|
1736
1869
|
onAttachMenuAction(actionId: string): Promise<void>;
|
|
1737
1870
|
/** Handle primary button click (send / cancel / stopping / voice / locked). */
|
|
@@ -1745,9 +1878,13 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1745
1878
|
getDefaultActionIcon(): string;
|
|
1746
1879
|
/** Handle voice click */
|
|
1747
1880
|
onVoiceClick(): void;
|
|
1748
|
-
/** Remove attachment */
|
|
1749
|
-
|
|
1750
|
-
|
|
1881
|
+
/** Remove a draft attachment from the composer banner. */
|
|
1882
|
+
removeDraftAttachment(id: string): void;
|
|
1883
|
+
addDraftAttachments(): void;
|
|
1884
|
+
dismissDraftAttachments(): void;
|
|
1885
|
+
draftAttachmentLabel(name: string): string;
|
|
1886
|
+
canAddDraftAttachments(): boolean;
|
|
1887
|
+
/** Cancel edit/reply mode without dropping draft attachments. */
|
|
1751
1888
|
cancelEditReply(): void;
|
|
1752
1889
|
/** Start editing a message */
|
|
1753
1890
|
startEdit(message: any): void;
|
|
@@ -1755,6 +1892,11 @@ declare class AXConversationComposerComponent implements OnDestroy {
|
|
|
1755
1892
|
startReply(message: AXConversationMessage): void;
|
|
1756
1893
|
/** Focus the native textarea inside ax-text-area */
|
|
1757
1894
|
private focusTextArea;
|
|
1895
|
+
/** Prefer the visible textarea when it differs from the original edit; else the draft signal. */
|
|
1896
|
+
private resolveComposerText;
|
|
1897
|
+
private readOriginalEditText;
|
|
1898
|
+
private readNativeComposerText;
|
|
1899
|
+
private readChangedText;
|
|
1758
1900
|
private getClickTarget;
|
|
1759
1901
|
/** Handle action click */
|
|
1760
1902
|
onActionClick(actionId: string, event?: AXClickEvent | MouseEvent, initialFiles?: File[]): Promise<void>;
|
|
@@ -1804,6 +1946,8 @@ declare class AXConversationContainerComponent {
|
|
|
1804
1946
|
private readonly actionSheetService;
|
|
1805
1947
|
private readonly hostRef;
|
|
1806
1948
|
private readonly platformId;
|
|
1949
|
+
private readonly document;
|
|
1950
|
+
private readonly destroyRef;
|
|
1807
1951
|
protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
|
|
1808
1952
|
constructor();
|
|
1809
1953
|
private get registry();
|
|
@@ -1818,11 +1962,7 @@ declare class AXConversationContainerComponent {
|
|
|
1818
1962
|
/** Container CSS classes */
|
|
1819
1963
|
readonly containerClasses: _angular_core.Signal<string>;
|
|
1820
1964
|
closeActiveConversation(): void;
|
|
1821
|
-
|
|
1822
|
-
* When the user pastes files copied from the OS (e.g. Ctrl+V after copying in Explorer),
|
|
1823
|
-
* open the same composer picker popup used for message-list drag-and-drop.
|
|
1824
|
-
*/
|
|
1825
|
-
onDocumentPaste(event: ClipboardEvent): Promise<void>;
|
|
1965
|
+
private openPastedFiles;
|
|
1826
1966
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerComponent, never>;
|
|
1827
1967
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationContainerComponent, "ax-conversation-container", never, { "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; }, {}, never, ["ax-conversation-sidebar, [ax-conversation-sidebar]", "ax-conversation-info-bar, [ax-conversation-info-bar]", "ax-conversation-message-list, [ax-conversation-message-list]", "ax-conversation-composer, [ax-conversation-composer]", "ax-conversation-empty"], true, never>;
|
|
1828
1968
|
}
|
|
@@ -1833,6 +1973,8 @@ declare class AXConversationContainerDirective {
|
|
|
1833
1973
|
private readonly fileService;
|
|
1834
1974
|
private readonly hostRef;
|
|
1835
1975
|
private readonly platformId;
|
|
1976
|
+
private readonly document;
|
|
1977
|
+
private readonly destroyRef;
|
|
1836
1978
|
private readonly translation;
|
|
1837
1979
|
private readonly toast;
|
|
1838
1980
|
private readonly platform;
|
|
@@ -1847,7 +1989,7 @@ declare class AXConversationContainerDirective {
|
|
|
1847
1989
|
/** Error state */
|
|
1848
1990
|
readonly error: _angular_core.Signal<Error>;
|
|
1849
1991
|
closeActiveConversation(): void;
|
|
1850
|
-
|
|
1992
|
+
private openPastedFiles;
|
|
1851
1993
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationContainerDirective, never>;
|
|
1852
1994
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AXConversationContainerDirective, "[axConversationContainer]", never, {}, {}, never, never, true, never>;
|
|
1853
1995
|
}
|
|
@@ -1993,7 +2135,7 @@ declare class AXConversationApiLoggerService {
|
|
|
1993
2135
|
private readonly config;
|
|
1994
2136
|
log(entry: AXConversationApiLogEntry): void;
|
|
1995
2137
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationApiLoggerService, never>;
|
|
1996
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
2138
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
1997
2139
|
}
|
|
1998
2140
|
|
|
1999
2141
|
/**
|
|
@@ -2049,6 +2191,7 @@ interface AXConversationUpdateData {
|
|
|
2049
2191
|
interface AXConversationDeleteOptions {
|
|
2050
2192
|
/**
|
|
2051
2193
|
* Private: destroy the chat for every participant (Telegram "delete for both").
|
|
2194
|
+
* Bot: always delete for both sides.
|
|
2052
2195
|
* Group/channel: only valid for the creator — destroys the room for everyone.
|
|
2053
2196
|
* Defaults to `false` (hide / clear history for the current user only).
|
|
2054
2197
|
*/
|
|
@@ -3014,7 +3157,7 @@ declare class AXConversationComposerGenerationStateService {
|
|
|
3014
3157
|
/** User requested cancel — enters `stopping` until {@link setGenerating}(false) is called. */
|
|
3015
3158
|
cancel(): void;
|
|
3016
3159
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerGenerationStateService, never>;
|
|
3017
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
3160
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
3018
3161
|
}
|
|
3019
3162
|
|
|
3020
3163
|
/**
|
|
@@ -3044,7 +3187,7 @@ declare class AXConversationRegistryService {
|
|
|
3044
3187
|
*/
|
|
3045
3188
|
clearAll(): void;
|
|
3046
3189
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationRegistryService, never>;
|
|
3047
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
3190
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
3048
3191
|
}
|
|
3049
3192
|
|
|
3050
3193
|
/** Result of loading a message page (newest-first APIs, merged ascending in the store). */
|
|
@@ -3064,7 +3207,10 @@ interface AXConversationLoadMessagesResult {
|
|
|
3064
3207
|
* - Automatic rollback on failures
|
|
3065
3208
|
*/
|
|
3066
3209
|
declare class AXConversationService {
|
|
3210
|
+
private static readonly createDisplayMetadataKeys;
|
|
3067
3211
|
private static normalizeOptionalString;
|
|
3212
|
+
/** Keep flags like `reactionsEnabled`; drop display fields already mapped onto the conversation. */
|
|
3213
|
+
private static toPersistedConversationMetadata;
|
|
3068
3214
|
private readonly config;
|
|
3069
3215
|
private readonly state;
|
|
3070
3216
|
readonly userApi: AXConversationUserApi;
|
|
@@ -3304,6 +3450,12 @@ declare class AXConversationService {
|
|
|
3304
3450
|
* Handle message update
|
|
3305
3451
|
*/
|
|
3306
3452
|
private handleMessageUpdate;
|
|
3453
|
+
/**
|
|
3454
|
+
* After a local text edit, entity cache / status persist can echo the pre-edit payload.
|
|
3455
|
+
* Keep the newer local bubble until a strictly newer edit arrives.
|
|
3456
|
+
*/
|
|
3457
|
+
private preferLocalEditedPayload;
|
|
3458
|
+
private readTextPayload;
|
|
3307
3459
|
/**
|
|
3308
3460
|
* Bump reply/forward counts locally when realtime events arrive outside the active message list.
|
|
3309
3461
|
*/
|
|
@@ -3401,8 +3553,10 @@ declare class AXConversationService {
|
|
|
3401
3553
|
/**
|
|
3402
3554
|
* Delete, hide, or leave a conversation.
|
|
3403
3555
|
* Opens a confirmation popup (checkbox for private/creator destroy), then updates the store.
|
|
3556
|
+
* Bot chats skip the prompt and always delete for both sides.
|
|
3404
3557
|
*/
|
|
3405
3558
|
deleteConversation(conversationId: string): Promise<boolean>;
|
|
3559
|
+
private performDeleteConversation;
|
|
3406
3560
|
/**
|
|
3407
3561
|
* Get reply count for a message
|
|
3408
3562
|
* @param messageId - Message ID
|
|
@@ -3560,7 +3714,7 @@ declare class AXConversationService {
|
|
|
3560
3714
|
*/
|
|
3561
3715
|
private validateMessageContent;
|
|
3562
3716
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationService, never>;
|
|
3563
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
3717
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
3564
3718
|
}
|
|
3565
3719
|
|
|
3566
3720
|
/**
|
|
@@ -3675,12 +3829,16 @@ declare class AXConversationErrorHandlerService {
|
|
|
3675
3829
|
*/
|
|
3676
3830
|
private delay;
|
|
3677
3831
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationErrorHandlerService, never>;
|
|
3678
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
3832
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
3679
3833
|
}
|
|
3680
3834
|
|
|
3681
|
-
declare class AXConversationForwardMessageDialogComponent
|
|
3835
|
+
declare class AXConversationForwardMessageDialogComponent {
|
|
3682
3836
|
private readonly toastService;
|
|
3683
3837
|
private readonly translation;
|
|
3838
|
+
private readonly config;
|
|
3839
|
+
private readonly destroyRef;
|
|
3840
|
+
private searchDebounceTimer?;
|
|
3841
|
+
constructor();
|
|
3684
3842
|
/**
|
|
3685
3843
|
* Set by {@link AXPopupComponent} when opened via {@link AXPopupService} so the shell title can update.
|
|
3686
3844
|
*/
|
|
@@ -3693,67 +3851,32 @@ declare class AXConversationForwardMessageDialogComponent implements OnInit {
|
|
|
3693
3851
|
/** Assigned from `open(..., { data: { message } })`. */
|
|
3694
3852
|
message: AXConversationMessage;
|
|
3695
3853
|
readonly onClosed: EventEmitter<AXComponentCloseEvent>;
|
|
3696
|
-
readonly
|
|
3854
|
+
readonly availableUsers: _angular_core.WritableSignal<AXConversationParticipant[]>;
|
|
3697
3855
|
readonly forwardSearchQuery: _angular_core.WritableSignal<string>;
|
|
3698
|
-
readonly
|
|
3856
|
+
readonly selectedUserIds: _angular_core.WritableSignal<string[]>;
|
|
3699
3857
|
readonly forwardListEmptyTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
3858
|
+
readonly forwardListLoadingTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
3700
3859
|
readonly forwardList: _angular_core.Signal<AXListComponent>;
|
|
3701
3860
|
readonly forwardListDataSource: AXDataSource<unknown>;
|
|
3702
3861
|
readonly isForwarding: _angular_core.Signal<boolean>;
|
|
3703
3862
|
readonly canForward: _angular_core.Signal<boolean>;
|
|
3704
3863
|
private readonly _syncPopupTitleEffect;
|
|
3705
|
-
ngOnInit(): void;
|
|
3706
3864
|
onForwardSearchChange(value: string): void;
|
|
3707
|
-
|
|
3708
|
-
isSelected(
|
|
3709
|
-
private
|
|
3865
|
+
userFromItem(item: unknown): AXConversationParticipant | null;
|
|
3866
|
+
isSelected(userId: string): boolean;
|
|
3867
|
+
private mergeUsersCache;
|
|
3868
|
+
private seedUsersFromConversations;
|
|
3869
|
+
private loadUsersForForward;
|
|
3870
|
+
private getSortedUsersForForward;
|
|
3871
|
+
private isExcludedUser;
|
|
3872
|
+
private getExcludedUserIds;
|
|
3873
|
+
private resolveConversationIdForUser;
|
|
3710
3874
|
onCancel(): void;
|
|
3711
3875
|
onForward(): Promise<void>;
|
|
3712
3876
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationForwardMessageDialogComponent, never>;
|
|
3713
3877
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationForwardMessageDialogComponent, "ax-conversation-forward-message-dialog", never, { "__popup__": { "alias": "__popup__"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
3714
3878
|
}
|
|
3715
3879
|
|
|
3716
|
-
/**
|
|
3717
|
-
* Message Utilities Service
|
|
3718
|
-
* Helper functions for message formatting and display
|
|
3719
|
-
*/
|
|
3720
|
-
|
|
3721
|
-
/** Position of a message inside a consecutive same-sender cluster (Telegram grouping). */
|
|
3722
|
-
type AXConversationMessageClusterRole = 'single' | 'start' | 'middle' | 'end';
|
|
3723
|
-
declare class AXConversationMessageUtilsService {
|
|
3724
|
-
static getInitials(name: string): string;
|
|
3725
|
-
static getMessageText(message: AXConversationMessage): string;
|
|
3726
|
-
static getPreviewText(message: AXConversationMessage, maxLength?: number): {
|
|
3727
|
-
value: string;
|
|
3728
|
-
type: string;
|
|
3729
|
-
icon: string;
|
|
3730
|
-
};
|
|
3731
|
-
static isOwnMessage(message: AXConversationMessage, currentUserId: string): boolean;
|
|
3732
|
-
static getSenderName(message: AXConversationMessage, conversation: AXConversation): string;
|
|
3733
|
-
static getSenderAvatar(message: AXConversationMessage, conversation: AXConversation): string | undefined;
|
|
3734
|
-
static getSenderAvatarIcon(message: AXConversationMessage, conversation: AXConversation): string | undefined;
|
|
3735
|
-
static getConversationAvatar(conversation: AXConversation): string | undefined;
|
|
3736
|
-
static getConversationAvatarIcon(conversation: AXConversation): string | undefined;
|
|
3737
|
-
static getConversationStatus(conversation: AXConversation, presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
3738
|
-
/** Consecutive same-sender messages within this window share one Telegram-style cluster. */
|
|
3739
|
-
static readonly MESSAGE_CLUSTER_MAX_GAP_MS: number;
|
|
3740
|
-
/** Palette of existing theme tokens used to color group sender names (not bubble chrome). */
|
|
3741
|
-
private static readonly SENDER_NAME_COLORS;
|
|
3742
|
-
static toTimestampMs(value: Date | string | number): number;
|
|
3743
|
-
static shouldGroupMessages(message: AXConversationMessage, previousMessage?: AXConversationMessage): boolean;
|
|
3744
|
-
static getMessageClusterRole(message: AXConversationMessage, previousMessage?: AXConversationMessage, nextMessage?: AXConversationMessage): AXConversationMessageClusterRole;
|
|
3745
|
-
static getSenderNameColor(senderId: string): string;
|
|
3746
|
-
static getUserPresenceStatus(presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
3747
|
-
static getTypingText(conversation: AXConversation, typingUserIds: string[]): string;
|
|
3748
|
-
static formatLastSeen(date: Date): string;
|
|
3749
|
-
static getPrivateChatSubtitle(conversation: AXConversation, presence?: AXConversationUserPresence, currentUserId?: string): string;
|
|
3750
|
-
static getConversationSubtitle(conversation: AXConversation, options?: {
|
|
3751
|
-
typingUserIds?: string[];
|
|
3752
|
-
peerPresence?: AXConversationUserPresence;
|
|
3753
|
-
currentUserId?: string;
|
|
3754
|
-
}): string;
|
|
3755
|
-
}
|
|
3756
|
-
|
|
3757
3880
|
/** Default message list surface when no conversation is selected and no `ax-conversation-message-list-no-active` content is projected. */
|
|
3758
3881
|
declare class AXConversationMessageListNoActiveDefaultComponent {
|
|
3759
3882
|
private readonly translation;
|
|
@@ -3810,6 +3933,10 @@ declare function resolveMessageListBackgroundStyle(value: AXConversationMessageL
|
|
|
3810
3933
|
/** Whether two stored backgrounds represent the same preset (supports legacy string values). */
|
|
3811
3934
|
declare function isSameMessageListBackground(a: AXConversationMessageListBackground | undefined, b: AXConversationMessageListThemeBackground, isDark: boolean): boolean;
|
|
3812
3935
|
|
|
3936
|
+
interface AXConversationForwardUserSortEntry {
|
|
3937
|
+
user: AXConversationParticipant;
|
|
3938
|
+
conversation?: AXConversation;
|
|
3939
|
+
}
|
|
3813
3940
|
/** Default Font Awesome icon for group conversations without a custom avatar image. */
|
|
3814
3941
|
declare const AX_CONVERSATION_DEFAULT_GROUP_ICON = "fa-light fa-users";
|
|
3815
3942
|
/** Default Font Awesome icon for private/bot conversations without a custom avatar image. */
|
|
@@ -3821,6 +3948,10 @@ declare function isGenericPrivateConversationTitle(title: string | undefined): b
|
|
|
3821
3948
|
* Matches conversations with exactly those two participants.
|
|
3822
3949
|
*/
|
|
3823
3950
|
declare function findExistingPrivateConversation(conversations: AXConversation[], currentUserId: string, peerUserId: string): AXConversation | undefined;
|
|
3951
|
+
/**
|
|
3952
|
+
* Sort users for forward picker: existing private chats first (most recent on top), then others by name.
|
|
3953
|
+
*/
|
|
3954
|
+
declare function sortUsersForForward(users: AXConversationParticipant[], conversations: AXConversation[], currentUserId: string): AXConversationParticipant[];
|
|
3824
3955
|
/** Other participant in a private 1v1 chat (excludes the current viewer). */
|
|
3825
3956
|
declare function resolvePrivatePeerParticipant(conversation: AXConversation, currentUserId?: string): AXConversationParticipant | undefined;
|
|
3826
3957
|
/**
|
|
@@ -3833,8 +3964,17 @@ declare function resolveConversationTitleForViewer(conversation: AXConversation,
|
|
|
3833
3964
|
* Does not mutate the source object.
|
|
3834
3965
|
*/
|
|
3835
3966
|
declare function resolveConversationForViewer(conversation: AXConversation, currentUserId?: string): AXConversation;
|
|
3836
|
-
/**
|
|
3967
|
+
/**
|
|
3968
|
+
* Whether message reactions are enabled for a conversation.
|
|
3969
|
+
* `metadata.reactionsEnabled` wins when set; otherwise `bot` chats default to off.
|
|
3970
|
+
*/
|
|
3837
3971
|
declare function isConversationReactionsEnabled(conversation?: AXConversation | null): boolean;
|
|
3972
|
+
/**
|
|
3973
|
+
* How file attachments are shown in the composer.
|
|
3974
|
+
* `metadata.composerAttachmentPresentation` wins when set; otherwise `bot` chats use `banner`.
|
|
3975
|
+
*/
|
|
3976
|
+
declare function resolveComposerAttachmentPresentation(conversation?: AXConversation | null): AXConversationComposerAttachmentPresentation;
|
|
3977
|
+
declare function isComposerAttachmentBannerEnabled(conversation?: AXConversation | null): boolean;
|
|
3838
3978
|
|
|
3839
3979
|
/** Group and channel rooms share join/leave and creator-destroy rules. */
|
|
3840
3980
|
declare function isGroupLikeConversation(conversationOrType: AXConversation | AXConversationType | undefined): boolean;
|
|
@@ -3877,6 +4017,47 @@ declare class AXConversationDateUtilsService {
|
|
|
3877
4017
|
static formatTime(date: Date): string;
|
|
3878
4018
|
}
|
|
3879
4019
|
|
|
4020
|
+
/**
|
|
4021
|
+
* Message Utilities Service
|
|
4022
|
+
* Helper functions for message formatting and display
|
|
4023
|
+
*/
|
|
4024
|
+
|
|
4025
|
+
/** Position of a message inside a consecutive same-sender cluster (Telegram grouping). */
|
|
4026
|
+
type AXConversationMessageClusterRole = 'single' | 'start' | 'middle' | 'end';
|
|
4027
|
+
declare class AXConversationMessageUtilsService {
|
|
4028
|
+
static getInitials(name: string): string;
|
|
4029
|
+
static getMessageText(message: AXConversationMessage): string;
|
|
4030
|
+
static getPreviewText(message: AXConversationMessage, maxLength?: number): {
|
|
4031
|
+
value: string;
|
|
4032
|
+
type: string;
|
|
4033
|
+
icon: string;
|
|
4034
|
+
};
|
|
4035
|
+
static isOwnMessage(message: AXConversationMessage, currentUserId: string): boolean;
|
|
4036
|
+
static getSenderName(message: AXConversationMessage, conversation: AXConversation): string;
|
|
4037
|
+
static getSenderAvatar(message: AXConversationMessage, conversation: AXConversation): string | undefined;
|
|
4038
|
+
static getSenderAvatarIcon(message: AXConversationMessage, conversation: AXConversation): string | undefined;
|
|
4039
|
+
static getConversationAvatar(conversation: AXConversation): string | undefined;
|
|
4040
|
+
static getConversationAvatarIcon(conversation: AXConversation): string | undefined;
|
|
4041
|
+
static getConversationStatus(conversation: AXConversation, presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
4042
|
+
/** Consecutive same-sender messages within this window share one Telegram-style cluster. */
|
|
4043
|
+
static readonly MESSAGE_CLUSTER_MAX_GAP_MS: number;
|
|
4044
|
+
/** Palette of existing theme tokens used to color group sender names (not bubble chrome). */
|
|
4045
|
+
private static readonly SENDER_NAME_COLORS;
|
|
4046
|
+
static toTimestampMs(value: Date | string | number): number;
|
|
4047
|
+
static shouldGroupMessages(message: AXConversationMessage, previousMessage?: AXConversationMessage): boolean;
|
|
4048
|
+
static getMessageClusterRole(message: AXConversationMessage, previousMessage?: AXConversationMessage, nextMessage?: AXConversationMessage): AXConversationMessageClusterRole;
|
|
4049
|
+
static getSenderNameColor(senderId: string): string;
|
|
4050
|
+
static getUserPresenceStatus(presence?: AXConversationUserPresence): AXConversationPresenceStatus | undefined;
|
|
4051
|
+
static getTypingText(conversation: AXConversation, typingUserIds: string[]): string;
|
|
4052
|
+
static formatLastSeen(date: Date): string;
|
|
4053
|
+
static getPrivateChatSubtitle(conversation: AXConversation, presence?: AXConversationUserPresence, currentUserId?: string): string;
|
|
4054
|
+
static getConversationSubtitle(conversation: AXConversation, options?: {
|
|
4055
|
+
typingUserIds?: string[];
|
|
4056
|
+
peerPresence?: AXConversationUserPresence;
|
|
4057
|
+
currentUserId?: string;
|
|
4058
|
+
}): string;
|
|
4059
|
+
}
|
|
4060
|
+
|
|
3880
4061
|
/**
|
|
3881
4062
|
* Conversation feature flags for configurable bundle size.
|
|
3882
4063
|
*/
|
|
@@ -4302,7 +4483,7 @@ declare class AXConversationMessageListService {
|
|
|
4302
4483
|
requestScrollToBottom(): void;
|
|
4303
4484
|
private buildCountMap;
|
|
4304
4485
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageListService, never>;
|
|
4305
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
4486
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
4306
4487
|
}
|
|
4307
4488
|
|
|
4308
4489
|
declare class AXConversationMessageListComponent implements OnDestroy {
|
|
@@ -4312,11 +4493,12 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
4312
4493
|
private readonly fileService;
|
|
4313
4494
|
private readonly toast;
|
|
4314
4495
|
private readonly infoBarService;
|
|
4315
|
-
|
|
4496
|
+
protected readonly translation: AXTranslationService;
|
|
4316
4497
|
private readonly document;
|
|
4317
4498
|
private readonly platform;
|
|
4318
4499
|
private readonly actionSheetService;
|
|
4319
4500
|
private readonly ngZone;
|
|
4501
|
+
private readonly cdr;
|
|
4320
4502
|
protected readonly config: Required<_acorex_components_conversation.AXConversationConfig>;
|
|
4321
4503
|
/**
|
|
4322
4504
|
* Background for the message list scroll area from config, or the built-in soft wash when unset/empty.
|
|
@@ -4330,22 +4512,35 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
4330
4512
|
/** Fallback when no conversation is active and no `ax-conversation-message-list-no-active` content is projected. */
|
|
4331
4513
|
protected readonly noActiveFallbackComponent: typeof AXConversationMessageListNoActiveDefaultComponent;
|
|
4332
4514
|
private readonly timeouts;
|
|
4515
|
+
private dateSeparatorFadeTimer;
|
|
4333
4516
|
readonly reactionPickerTarget: _angular_core.WritableSignal<string>;
|
|
4334
4517
|
readonly reactionPickerElement: _angular_core.WritableSignal<HTMLElement>;
|
|
4335
4518
|
readonly reactionPickerPlacement: _angular_core.WritableSignal<AXPlacement>;
|
|
4336
4519
|
readonly reactionPopover: _angular_core.Signal<any>;
|
|
4337
4520
|
/** Message id whose context menu is open (for active row styling). */
|
|
4338
4521
|
readonly contextMenuMessageId: _angular_core.WritableSignal<string>;
|
|
4522
|
+
private readonly contextMenuMessage;
|
|
4523
|
+
private readonly messageActionsMenu;
|
|
4339
4524
|
/** True while files are dragged over the message list drop zone. */
|
|
4340
4525
|
readonly messageListDragging: _angular_core.WritableSignal<boolean>;
|
|
4341
4526
|
/** True when the message list uses single-column adaptive layout (matches CSS container query). */
|
|
4342
4527
|
readonly isAdaptiveWideLayout: _angular_core.WritableSignal<boolean>;
|
|
4343
4528
|
/** While true, older history is being prepended — do not auto-scroll to the latest message. */
|
|
4344
4529
|
private restoringScrollAfterPrepend;
|
|
4530
|
+
/**
|
|
4531
|
+
* Stick to the latest message across layout shifts (media decode, lazy outlets).
|
|
4532
|
+
* Cleared as soon as the user scrolls up — even within `scrollThreshold` —
|
|
4533
|
+
* otherwise ResizeObserver keeps yanking the feed back to the bottom.
|
|
4534
|
+
*/
|
|
4535
|
+
private pinnedToBottom;
|
|
4536
|
+
/**
|
|
4537
|
+
* True while we assign `scrollTop`. Kept until the following animation frame
|
|
4538
|
+
* because some browsers dispatch `scroll` asynchronously after `scrollTop` writes.
|
|
4539
|
+
*/
|
|
4540
|
+
private programmaticScroll;
|
|
4541
|
+
private programmaticScrollGen;
|
|
4345
4542
|
private adaptiveLayoutResizeObserver?;
|
|
4346
4543
|
private documentClickListener?;
|
|
4347
|
-
private readonly rendererInputsCache;
|
|
4348
|
-
private readonly rendererViewByType;
|
|
4349
4544
|
readonly availableReactions: _angular_core.WritableSignal<string[]>;
|
|
4350
4545
|
private reactionsLoading;
|
|
4351
4546
|
private get registry();
|
|
@@ -4366,6 +4561,21 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
4366
4561
|
readonly isGroupConversation: _angular_core.Signal<boolean>;
|
|
4367
4562
|
/** Placeholder rows for the initial message list skeleton. */
|
|
4368
4563
|
protected readonly loadingSkeletonItems: readonly [0, 1, 2, 3, 4, 5, 6, 7];
|
|
4564
|
+
/**
|
|
4565
|
+
* Conversation whose feed has already been pinned to the latest message.
|
|
4566
|
+
* Compared with the active id in `feedReady` so a chat switch hides the list
|
|
4567
|
+
* in the same render — before the effect that pins the new history.
|
|
4568
|
+
*/
|
|
4569
|
+
private readonly pinnedConversationId;
|
|
4570
|
+
private feedRevealGeneration;
|
|
4571
|
+
private feedRevealRaf;
|
|
4572
|
+
/** False until this conversation is pinned to the bottom (never shows history from the top). */
|
|
4573
|
+
readonly feedReady: _angular_core.Signal<boolean>;
|
|
4574
|
+
/**
|
|
4575
|
+
* Keep the skeleton up until the feed is pinned. The real list stays
|
|
4576
|
+
* `visibility: hidden` underneath so bubbles never show through the cover.
|
|
4577
|
+
*/
|
|
4578
|
+
readonly showOpenCover: _angular_core.Signal<boolean>;
|
|
4369
4579
|
/** Whether the active conversation allows message reactions. */
|
|
4370
4580
|
readonly reactionsEnabled: _angular_core.Signal<boolean>;
|
|
4371
4581
|
/** Messages */
|
|
@@ -4389,58 +4599,23 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
4389
4599
|
* Setup intersection observer to mark messages as read when visible
|
|
4390
4600
|
*/
|
|
4391
4601
|
private setupIntersectionObserver;
|
|
4602
|
+
/**
|
|
4603
|
+
* Keep the viewport stable when layout changes.
|
|
4604
|
+
* ResizeObserver runs after layout and before paint — apply scrollTop in the
|
|
4605
|
+
* callback (not rAF) so the browser never paints a jump.
|
|
4606
|
+
*
|
|
4607
|
+
* Near the bottom, pin to the latest message (media decode, lazy outlets).
|
|
4608
|
+
* Further up, only compensate rows that grew fully above the viewport.
|
|
4609
|
+
*/
|
|
4610
|
+
private setupMediaScrollCompensation;
|
|
4392
4611
|
/**
|
|
4393
4612
|
* Mark message as read
|
|
4394
4613
|
*/
|
|
4395
4614
|
private markMessageAsRead;
|
|
4396
|
-
getMessageClusterRole(message: AXConversationMessage, previous?: AXConversationMessage, next?: AXConversationMessage): AXConversationMessageClusterRole;
|
|
4397
|
-
getSenderNameColor(senderId: string): string;
|
|
4398
|
-
/** Get message CSS classes */
|
|
4399
|
-
getMessageClasses(message: AXConversationMessage, cluster: AXConversationMessageClusterRole): string;
|
|
4400
|
-
/** Get bubble CSS classes */
|
|
4401
|
-
getBubbleClasses(message: AXConversationMessage): string;
|
|
4402
4615
|
/** Check if message is from current user */
|
|
4403
4616
|
isOwnMessage(message: AXConversationMessage): boolean;
|
|
4404
|
-
/** Whether the avatar slot is rendered (visibility is CSS-controlled per layout mode). */
|
|
4405
|
-
shouldRenderAvatar(message: AXConversationMessage): boolean;
|
|
4406
|
-
/** Should show sender name */
|
|
4407
|
-
shouldShowSenderName(message: AXConversationMessage, cluster: AXConversationMessageClusterRole): boolean;
|
|
4408
|
-
/** Get sender name */
|
|
4409
|
-
getSenderName(message: AXConversationMessage): string;
|
|
4410
|
-
/** Get original sender name for forwarded messages */
|
|
4411
|
-
getOriginalSenderName(message: AXConversationMessage): string;
|
|
4412
|
-
/** Get forwarded text with sender and conversation info */
|
|
4413
|
-
getForwardedText(message: AXConversationMessage): string;
|
|
4414
|
-
/** Resolve renderer component for message */
|
|
4415
|
-
getRendererComponent(message: AXConversationMessage): Type<unknown>;
|
|
4416
|
-
/** Resolve lazy renderer loader for message */
|
|
4417
|
-
private static readonly fallbackRendererLoader;
|
|
4418
|
-
getRendererComponentLoader(message: AXConversationMessage): () => Promise<Type<unknown>>;
|
|
4419
|
-
private resolveRendererView;
|
|
4420
|
-
/** Provide inputs for the dynamic renderer (stable object so outlets are not rebuilt on CD). */
|
|
4421
|
-
getRendererInputs(message: AXConversationMessage): {
|
|
4422
|
-
message: AXConversationMessage;
|
|
4423
|
-
};
|
|
4424
|
-
/** Get status icon CSS classes */
|
|
4425
|
-
getStatusIconClasses(message: AXConversationMessage): string;
|
|
4426
|
-
/** Get status tooltip text */
|
|
4427
|
-
getStatusTooltip(message: AXConversationMessage): string;
|
|
4428
4617
|
/** Get first unread message ID */
|
|
4429
4618
|
readonly firstUnreadMessageId: _angular_core.Signal<string>;
|
|
4430
|
-
/** Get grouped reactions */
|
|
4431
|
-
getGroupedReactions(message: AXConversationMessage): Array<{
|
|
4432
|
-
emoji: string;
|
|
4433
|
-
count: number;
|
|
4434
|
-
userIds: string[];
|
|
4435
|
-
hasReacted: boolean;
|
|
4436
|
-
}>;
|
|
4437
|
-
/** Get reaction tooltip text */
|
|
4438
|
-
getReactionTooltip(reaction: {
|
|
4439
|
-
emoji: string;
|
|
4440
|
-
count: number;
|
|
4441
|
-
userIds: string[];
|
|
4442
|
-
hasReacted: boolean;
|
|
4443
|
-
}): string;
|
|
4444
4619
|
/** Whether reactions can be shown or added for a message in the active conversation. */
|
|
4445
4620
|
messageSupportsReactions(message: AXConversationMessage): boolean;
|
|
4446
4621
|
/** Toggle reaction picker */
|
|
@@ -4470,41 +4645,57 @@ declare class AXConversationMessageListComponent implements OnDestroy {
|
|
|
4470
4645
|
/**
|
|
4471
4646
|
* Keep the user's viewport on the same messages after older rows are inserted above.
|
|
4472
4647
|
*/
|
|
4473
|
-
private
|
|
4474
|
-
|
|
4475
|
-
private
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4648
|
+
private applyPrependScrollRestore;
|
|
4649
|
+
private revealStuckDateSeparators;
|
|
4650
|
+
private syncDateSeparatorStuckState;
|
|
4651
|
+
private scheduleDateSeparatorFade;
|
|
4652
|
+
private clearDateSeparatorFadeTimer;
|
|
4653
|
+
/** Distance from the last pixel of the feed. */
|
|
4654
|
+
private distanceFromBottom;
|
|
4655
|
+
/** True when the viewport is at the latest message (not merely within `scrollThreshold`). */
|
|
4656
|
+
private isStuckToBottom;
|
|
4657
|
+
/**
|
|
4658
|
+
* Assign scrollTop without the listener treating it as a user scroll.
|
|
4659
|
+
* The flag stays set until the next frame so async `scroll` events are ignored.
|
|
4660
|
+
*/
|
|
4661
|
+
private writeScrollTop;
|
|
4662
|
+
/** Pin the feed to the latest message before the next paint. */
|
|
4663
|
+
private pinFeedToBottom;
|
|
4664
|
+
/** Hide the feed and pin to the latest message before the first visible paint. */
|
|
4665
|
+
private beginFeedReveal;
|
|
4666
|
+
private cancelFeedReveal;
|
|
4667
|
+
/**
|
|
4668
|
+
* Pin to the latest message, then reveal. Two frames is enough — stick-to-bottom
|
|
4669
|
+
* holds later media growth. Waiting for loaders here left a blank gap after the skeleton.
|
|
4670
|
+
*/
|
|
4671
|
+
private scheduleFeedPin;
|
|
4672
|
+
/** Start nearby lazy images so they decode while stick-to-bottom holds the viewport. */
|
|
4673
|
+
private primeOpenViewportMedia;
|
|
4481
4674
|
/** Scroll to bottom */
|
|
4482
4675
|
scrollToBottom(smooth?: boolean): void;
|
|
4483
4676
|
/** Scroll to specific message */
|
|
4484
4677
|
scrollToMessage(messageId: string): void;
|
|
4485
4678
|
/** Cleanup timeouts and observers on destroy */
|
|
4486
4679
|
ngOnDestroy(): void;
|
|
4487
|
-
/** Get
|
|
4488
|
-
getMessagePreviewText(message: AXConversationMessage): {
|
|
4489
|
-
value: string;
|
|
4490
|
-
type: string;
|
|
4491
|
-
icon: string;
|
|
4492
|
-
};
|
|
4493
|
-
/** Get ARIA label for message */
|
|
4494
|
-
getMessageAriaLabel(message: AXConversationMessage): string;
|
|
4680
|
+
/** Get ARIA label for a date separator. */
|
|
4495
4681
|
getDateSeparatorAriaLabel(group: AXConversationMessageDateGroup): string;
|
|
4496
4682
|
resolveDateSeparatorLabel(group: AXConversationMessageDateGroup): string;
|
|
4497
|
-
getReplyCount(message: AXConversationMessage): number;
|
|
4498
|
-
getForwardCount(message: AXConversationMessage): number;
|
|
4499
4683
|
onMessageListDragEnter(): void;
|
|
4500
4684
|
onMessageListDragLeave(): void;
|
|
4501
4685
|
/** Open the matching composer picker popup when files are dropped on the message list. */
|
|
4502
4686
|
onMessageListFilesDropped(event: AXUploaderFileChangeEvent): Promise<void>;
|
|
4503
4687
|
private composerPickerDeps;
|
|
4688
|
+
/**
|
|
4689
|
+
* Open the shared message-actions menu from a single delegated listener.
|
|
4690
|
+
* Per-row `ax-context-menu` instances each register capture-phase scroll listeners
|
|
4691
|
+
* and were the main source of scroll jank.
|
|
4692
|
+
*/
|
|
4693
|
+
onMessagesFeedContextMenu(event: MouseEvent): void;
|
|
4694
|
+
onMessageContextMenuClose(): void;
|
|
4504
4695
|
/** Handle context menu opening for messages */
|
|
4505
|
-
handleMessageContextMenuOpening(event: AXContextMenuOpeningEvent
|
|
4696
|
+
handleMessageContextMenuOpening(event: AXContextMenuOpeningEvent): void;
|
|
4506
4697
|
/** Handle context menu item click for messages */
|
|
4507
|
-
handleMessageContextMenuItemClick(event: AXContextMenuItemsClickEvent
|
|
4698
|
+
handleMessageContextMenuItemClick(event: AXContextMenuItemsClickEvent): void;
|
|
4508
4699
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationMessageListComponent, never>;
|
|
4509
4700
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationMessageListComponent, "ax-conversation-message-list", never, {}, { "messageAction": "messageAction"; }, never, ["ax-conversation-message-list-empty, [ax-conversation-message-list-empty]", "ax-conversation-message-list-no-active, [ax-conversation-message-list-no-active]"], true, never>;
|
|
4510
4701
|
}
|
|
@@ -4613,7 +4804,7 @@ declare class AXConversationSidebarService {
|
|
|
4613
4804
|
*/
|
|
4614
4805
|
reloadConversations(): Promise<void>;
|
|
4615
4806
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationSidebarService, never>;
|
|
4616
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
4807
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
4617
4808
|
}
|
|
4618
4809
|
|
|
4619
4810
|
declare class AXConversationSidebarComponent implements OnDestroy {
|
|
@@ -4671,6 +4862,7 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
|
|
|
4671
4862
|
private readonly translation;
|
|
4672
4863
|
private readonly config;
|
|
4673
4864
|
private readonly destroyRef;
|
|
4865
|
+
private readonly popupService;
|
|
4674
4866
|
private searchDebounceTimer?;
|
|
4675
4867
|
constructor();
|
|
4676
4868
|
/**
|
|
@@ -4682,6 +4874,7 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
|
|
|
4682
4874
|
readonly selectedUserIds: _angular_core.WritableSignal<string[]>;
|
|
4683
4875
|
readonly groupTitle: _angular_core.WritableSignal<string>;
|
|
4684
4876
|
readonly groupAvatar: _angular_core.WritableSignal<string>;
|
|
4877
|
+
readonly groupAvatarFileName: _angular_core.WritableSignal<string>;
|
|
4685
4878
|
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
4686
4879
|
readonly creating: _angular_core.WritableSignal<boolean>;
|
|
4687
4880
|
/** For 2+ users: step 1 = pick users, step 2 = title + avatar. */
|
|
@@ -4698,11 +4891,19 @@ declare class AXConversationNewDialogComponent extends AXBasePageComponent {
|
|
|
4698
4891
|
readonly usersListEmptyTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
4699
4892
|
readonly usersListLoadingTpl: _angular_core.Signal<TemplateRef<unknown>>;
|
|
4700
4893
|
readonly usersList: _angular_core.Signal<AXListComponent>;
|
|
4894
|
+
private readonly groupNameInput;
|
|
4895
|
+
private readonly groupPhotoInput;
|
|
4896
|
+
readonly groupPhotoAriaLabel: _angular_core.Signal<string>;
|
|
4701
4897
|
readonly usersListDataSource: AXDataSource<unknown>;
|
|
4702
4898
|
onCancel(): void;
|
|
4703
4899
|
onSelectedUsersChange(ids: string[]): void;
|
|
4704
4900
|
onNextToGroupDetails(): void;
|
|
4705
4901
|
onBackFromGroupDetails(): void;
|
|
4902
|
+
onPickGroupPhoto(): void;
|
|
4903
|
+
onClearGroupPhoto(): void;
|
|
4904
|
+
onEditGroupPhoto(): Promise<void>;
|
|
4905
|
+
onGroupPhotoSelected(event: Event): Promise<void>;
|
|
4906
|
+
private openGroupPhotoEditor;
|
|
4706
4907
|
onSearchChange(value: string): void;
|
|
4707
4908
|
isUserSelected(id: string): boolean;
|
|
4708
4909
|
userFromItem(item: unknown): AXConversationParticipant | null;
|
|
@@ -4777,73 +4978,13 @@ declare class AXConversationAudioFileTypeProvider extends AXFileTypeInfoProvider
|
|
|
4777
4978
|
[x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
|
|
4778
4979
|
}>[]>;
|
|
4779
4980
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationAudioFileTypeProvider, never>;
|
|
4780
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
4981
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
4781
4982
|
}
|
|
4782
4983
|
|
|
4783
4984
|
declare function audioItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number): AXConversationAudioMediaItem;
|
|
4784
4985
|
declare function mergeAudioUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
|
|
4785
4986
|
declare function applyAudioLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
|
|
4786
4987
|
|
|
4787
|
-
/**
|
|
4788
|
-
* Shared upload state and helpers for composer media pickers.
|
|
4789
|
-
*/
|
|
4790
|
-
|
|
4791
|
-
/** Stable id for `@for` tracking while upload state is patched immutably. */
|
|
4792
|
-
declare function createPickerUploadItemId(): string;
|
|
4793
|
-
interface AXConversationComposerPickerUploadItem {
|
|
4794
|
-
id: string;
|
|
4795
|
-
file: File;
|
|
4796
|
-
preview?: string;
|
|
4797
|
-
duration?: number;
|
|
4798
|
-
uploadProgress?: number;
|
|
4799
|
-
uploading?: boolean;
|
|
4800
|
-
uploaded?: boolean;
|
|
4801
|
-
uploadedUrl?: string;
|
|
4802
|
-
mediaId?: string;
|
|
4803
|
-
error?: string;
|
|
4804
|
-
abortController?: AbortController;
|
|
4805
|
-
}
|
|
4806
|
-
declare function getPickerCancelUploadLabel(translation: AXTranslationService): string;
|
|
4807
|
-
declare function abortPickerUploads(items: Iterable<{
|
|
4808
|
-
abortController?: AbortController;
|
|
4809
|
-
} | null | undefined>): void;
|
|
4810
|
-
interface AXConversationCleanupPickerUploadsOptions {
|
|
4811
|
-
retainUploaded?: boolean;
|
|
4812
|
-
}
|
|
4813
|
-
/** Upload finished; reference is {@link mediaId} and/or a non-empty session url. */
|
|
4814
|
-
declare function isPickerItemReadyToSend(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId'>): boolean;
|
|
4815
|
-
/** Build uploader result shape for {@link *ItemFromUpload} after picker upload. */
|
|
4816
|
-
declare function pickerItemToUploadResult(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): {
|
|
4817
|
-
url: string;
|
|
4818
|
-
mediaId?: string;
|
|
4819
|
-
mimeType: string;
|
|
4820
|
-
size: number;
|
|
4821
|
-
} | null;
|
|
4822
|
-
declare function pickerItemToMediaReference(item: Pick<AXConversationComposerPickerUploadItem, 'uploaded' | 'uploadedUrl' | 'mediaId' | 'file'>): AXConversationUploaderReference | null;
|
|
4823
|
-
declare function deleteUploadedPickerMedia(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>): Promise<void>;
|
|
4824
|
-
declare function cleanupPickerUploads(uploader: AXUploaderService, items: Iterable<AXConversationComposerPickerUploadItem | null | undefined>, options?: AXConversationCleanupPickerUploadsOptions): void;
|
|
4825
|
-
declare function revokePickerBlobPreviews(items: Iterable<{
|
|
4826
|
-
preview?: string;
|
|
4827
|
-
} | null | undefined>): void;
|
|
4828
|
-
declare function isUploadAborted(error: unknown, signal?: AbortSignal): boolean;
|
|
4829
|
-
declare function limitFilesToCapacity(files: File[], currentCount: number, maxFiles: number): File[];
|
|
4830
|
-
declare function uploadPickerFile(uploader: AXUploaderService, conversationId: string, file: File, onProgress: (percent: number) => void, signal?: AbortSignal): Promise<{
|
|
4831
|
-
url: string;
|
|
4832
|
-
mediaId?: string;
|
|
4833
|
-
mimeType: string;
|
|
4834
|
-
size: number;
|
|
4835
|
-
}>;
|
|
4836
|
-
declare function notifyMaxFilesCapacityExceeded(toast: AXToastService, translation: AXTranslationService, maxFiles: number): void;
|
|
4837
|
-
/** User-facing message for a file validation failure. */
|
|
4838
|
-
declare function formatPickerValidationMessage(translation: AXTranslationService, file: File, error: AXValidationRuleResult | undefined): string;
|
|
4839
|
-
/** Show a warning toast for each failed validation rule result. */
|
|
4840
|
-
declare function notifyPickerValidationErrors(toast: AXToastService, translation: AXTranslationService, rejected: {
|
|
4841
|
-
file: File;
|
|
4842
|
-
errors: AXValidationRuleResult[];
|
|
4843
|
-
}[]): void;
|
|
4844
|
-
/** Close popup/action-sheet host or inline composer shell after send/cancel. */
|
|
4845
|
-
declare function dismissComposerPickerHost(composerService: AXConversationComposerService, popupRef?: AXPopupRef | null, actionSheetRef?: AXActionSheetRef | null): void;
|
|
4846
|
-
|
|
4847
4988
|
interface AXConversationAudioFile extends AXConversationComposerPickerUploadItem {
|
|
4848
4989
|
duration?: number;
|
|
4849
4990
|
dataUrl?: string;
|
|
@@ -4875,6 +5016,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
|
|
|
4875
5016
|
private catalogFileTypeDef?;
|
|
4876
5017
|
caption: string;
|
|
4877
5018
|
groupItems: boolean;
|
|
5019
|
+
sendAsDocuments: boolean;
|
|
4878
5020
|
readonly allowMultiple: _angular_core.Signal<boolean>;
|
|
4879
5021
|
constructor();
|
|
4880
5022
|
activate(): Promise<void>;
|
|
@@ -4888,6 +5030,7 @@ declare class AXConversationAudioPickerComponent implements OnDestroy, AXConvers
|
|
|
4888
5030
|
renameAudio(index: number): Promise<void>;
|
|
4889
5031
|
replaceAttachment(index: number): Promise<void>;
|
|
4890
5032
|
sendAudio(): Promise<void>;
|
|
5033
|
+
private sendAudioAsDocuments;
|
|
4891
5034
|
canSend(): boolean;
|
|
4892
5035
|
getUploadingLabel(progress: number): string;
|
|
4893
5036
|
getCancelUploadLabel(): string;
|
|
@@ -4959,10 +5102,12 @@ declare class AXConversationFileFileTypeProvider extends AXFileTypeInfoProvider
|
|
|
4959
5102
|
[x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
|
|
4960
5103
|
}>[]>;
|
|
4961
5104
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileFileTypeProvider, never>;
|
|
4962
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
5105
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
4963
5106
|
}
|
|
4964
5107
|
|
|
4965
|
-
declare function fileItemFromUpload(file: File, result: AXConversationUploaderResult
|
|
5108
|
+
declare function fileItemFromUpload(file: File, result: AXConversationUploaderResult, extras?: {
|
|
5109
|
+
duration?: number;
|
|
5110
|
+
}): AXConversationFileMediaItem;
|
|
4966
5111
|
declare function mergeFileUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
|
|
4967
5112
|
declare function applyFileLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
|
|
4968
5113
|
|
|
@@ -5016,6 +5161,7 @@ declare class AXConversationFilePickerComponent implements OnDestroy, AXConversa
|
|
|
5016
5161
|
cancel(): void;
|
|
5017
5162
|
ngOnDestroy(): void;
|
|
5018
5163
|
private dismissPicker;
|
|
5164
|
+
private revokePreview;
|
|
5019
5165
|
getHeaderTitle(): string;
|
|
5020
5166
|
truncateFileName(fileName: string): string;
|
|
5021
5167
|
onAddMoreFiles(): void;
|
|
@@ -5042,7 +5188,13 @@ declare class AXConversationImageFileTypeProvider extends AXFileTypeInfoProvider
|
|
|
5042
5188
|
[x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
|
|
5043
5189
|
}>[]>;
|
|
5044
5190
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationImageFileTypeProvider, never>;
|
|
5045
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
5191
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
5192
|
+
}
|
|
5193
|
+
|
|
5194
|
+
type AXConversationMediaGalleryLayoutMode = 'single' | 'dual' | 'triple' | 'masonry';
|
|
5195
|
+
interface AXConversationMediaGalleryRow<T> {
|
|
5196
|
+
items: T[];
|
|
5197
|
+
startIndex: number;
|
|
5046
5198
|
}
|
|
5047
5199
|
|
|
5048
5200
|
interface AXConversationImageFile extends AXConversationComposerPickerUploadItem {
|
|
@@ -5077,6 +5229,8 @@ declare class AXConversationImagePickerComponent implements OnDestroy, AXConvers
|
|
|
5077
5229
|
groupItems: boolean;
|
|
5078
5230
|
sendAsDocuments: boolean;
|
|
5079
5231
|
readonly allowMultiple: _angular_core.Signal<boolean>;
|
|
5232
|
+
readonly layoutMode: _angular_core.Signal<AXConversationMediaGalleryLayoutMode>;
|
|
5233
|
+
readonly mediaRows: _angular_core.Signal<AXConversationMediaGalleryRow<AXConversationImageFile>[]>;
|
|
5080
5234
|
private imageFileType?;
|
|
5081
5235
|
constructor();
|
|
5082
5236
|
activate(): Promise<void>;
|
|
@@ -5091,7 +5245,6 @@ declare class AXConversationImagePickerComponent implements OnDestroy, AXConvers
|
|
|
5091
5245
|
private applyReplacementFile;
|
|
5092
5246
|
sendImages(): Promise<void>;
|
|
5093
5247
|
private sendImagesAsDocuments;
|
|
5094
|
-
getMediaGridClass(): string;
|
|
5095
5248
|
canSend(): boolean;
|
|
5096
5249
|
getUploadingLabel(progress: number): string;
|
|
5097
5250
|
getCancelUploadLabel(): string;
|
|
@@ -5138,14 +5291,30 @@ declare class AXConversationPickerFooterComponent {
|
|
|
5138
5291
|
}
|
|
5139
5292
|
|
|
5140
5293
|
declare class AXConversationPickerHeaderComponent {
|
|
5294
|
+
private readonly translation;
|
|
5141
5295
|
readonly title: _angular_core.InputSignal<string>;
|
|
5142
5296
|
readonly showMenu: _angular_core.InputSignal<boolean>;
|
|
5143
5297
|
readonly addMoreLabel: _angular_core.InputSignal<string>;
|
|
5298
|
+
readonly closeLabel: _angular_core.InputSignal<string>;
|
|
5144
5299
|
readonly onClose: _angular_core.OutputEmitterRef<void>;
|
|
5145
5300
|
readonly onAddMore: _angular_core.OutputEmitterRef<void>;
|
|
5146
5301
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationPickerHeaderComponent, never>;
|
|
5147
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerHeaderComponent, "ax-conversation-picker-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "showMenu": { "alias": "showMenu"; "required": false; "isSignal": true; }; "addMoreLabel": { "alias": "addMoreLabel"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; "onAddMore": "onAddMore"; }, never, never, true, never>;
|
|
5302
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerHeaderComponent, "ax-conversation-picker-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "showMenu": { "alias": "showMenu"; "required": false; "isSignal": true; }; "addMoreLabel": { "alias": "addMoreLabel"; "required": false; "isSignal": true; }; "closeLabel": { "alias": "closeLabel"; "required": false; "isSignal": true; }; }, { "onClose": "onClose"; "onAddMore": "onAddMore"; }, never, never, true, never>;
|
|
5303
|
+
}
|
|
5304
|
+
|
|
5305
|
+
/** Explorer/OS paste often has an empty MIME type; catalogs reject that. */
|
|
5306
|
+
declare function normalizeConversationInboundFile(file: File): File;
|
|
5307
|
+
/** Extract OS-copied files from a paste event (e.g. Ctrl+V after copying a file in Explorer). */
|
|
5308
|
+
declare function filesFromClipboardEvent(event: ClipboardEvent): File[];
|
|
5309
|
+
|
|
5310
|
+
interface AXConversationMediaDimensions {
|
|
5311
|
+
width: number;
|
|
5312
|
+
height: number;
|
|
5313
|
+
duration: number;
|
|
5148
5314
|
}
|
|
5315
|
+
declare function probeImageDimensions(source: Blob | string): Promise<Pick<AXConversationMediaDimensions, 'width' | 'height'>>;
|
|
5316
|
+
declare function probeAudioDuration(source: Blob): Promise<number>;
|
|
5317
|
+
declare function probeVideoMedia(source: Blob): Promise<AXConversationMediaDimensions>;
|
|
5149
5318
|
|
|
5150
5319
|
declare function formatFileSize(bytes: number): string;
|
|
5151
5320
|
declare function formatDuration(seconds: number): string;
|
|
@@ -5203,12 +5372,19 @@ declare class AXConversationPickerEmptyComponent {
|
|
|
5203
5372
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerEmptyComponent, "ax-conversation-picker-empty", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "hint": { "alias": "hint"; "required": true; "isSignal": true; }; "iconClass": { "alias": "iconClass"; "required": true; "isSignal": true; }; "dragOver": { "alias": "dragOver"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5204
5373
|
}
|
|
5205
5374
|
|
|
5375
|
+
/** Active composer picker paste handlers (top-most popup wins). */
|
|
5376
|
+
type AXConversationPickerPasteHandler = (files: File[]) => void;
|
|
5377
|
+
declare function registerComposerPickerPasteHandler(handler: AXConversationPickerPasteHandler): () => void;
|
|
5378
|
+
declare function getActiveComposerPickerPasteHandler(): AXConversationPickerPasteHandler | undefined;
|
|
5379
|
+
|
|
5206
5380
|
/**
|
|
5207
5381
|
* Wraps composer pickers with {@link AXUploaderZoneDirective} for browse, drop, and validation.
|
|
5208
5382
|
*/
|
|
5209
5383
|
declare class AXConversationPickerShellComponent {
|
|
5210
5384
|
private readonly toast;
|
|
5211
5385
|
private readonly translation;
|
|
5386
|
+
private readonly uploader;
|
|
5387
|
+
private readonly destroyRef;
|
|
5212
5388
|
private readonly zone;
|
|
5213
5389
|
readonly fileType: _angular_core.InputSignal<string>;
|
|
5214
5390
|
readonly multiple: _angular_core.InputSignal<boolean>;
|
|
@@ -5216,9 +5392,13 @@ declare class AXConversationPickerShellComponent {
|
|
|
5216
5392
|
readonly dragEnter: _angular_core.OutputEmitterRef<DragEvent>;
|
|
5217
5393
|
readonly dragLeave: _angular_core.OutputEmitterRef<DragEvent>;
|
|
5218
5394
|
readonly dragOver: _angular_core.OutputEmitterRef<DragEvent>;
|
|
5395
|
+
constructor();
|
|
5219
5396
|
/** Open the OS file picker for this shell's catalog. */
|
|
5220
5397
|
browse(): Promise<void>;
|
|
5398
|
+
protected onHostPaste(event: ClipboardEvent): void;
|
|
5221
5399
|
protected onZoneFileChange(event: AXUploaderFileChangeEvent): void;
|
|
5400
|
+
private ingestPastedFiles;
|
|
5401
|
+
private emitValidatedFiles;
|
|
5222
5402
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationPickerShellComponent, never>;
|
|
5223
5403
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationPickerShellComponent, "ax-conversation-picker-shell", never, { "fileType": { "alias": "fileType"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, { "filesSelected": "filesSelected"; "dragEnter": "dragEnter"; "dragLeave": "dragLeave"; "dragOver": "dragOver"; }, never, ["*"], true, never>;
|
|
5224
5404
|
}
|
|
@@ -5241,6 +5421,7 @@ declare class AXConversationStickerTabComponent {
|
|
|
5241
5421
|
private readonly http;
|
|
5242
5422
|
private readonly destroyRef;
|
|
5243
5423
|
private readonly apiKey;
|
|
5424
|
+
protected readonly translation: AXTranslationService;
|
|
5244
5425
|
readonly itemSelected: _angular_core.OutputEmitterRef<AXConversationStickerPayload>;
|
|
5245
5426
|
readonly searchQuery: _angular_core.WritableSignal<string>;
|
|
5246
5427
|
readonly activeStickers: _angular_core.WritableSignal<AXConversationStickerPayload[]>;
|
|
@@ -5276,16 +5457,21 @@ declare class AXConversationVideoFileTypeProvider extends AXFileTypeInfoProvider
|
|
|
5276
5457
|
[x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
|
|
5277
5458
|
}>[]>;
|
|
5278
5459
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVideoFileTypeProvider, never>;
|
|
5279
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
5460
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
5280
5461
|
}
|
|
5281
5462
|
|
|
5282
|
-
declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number
|
|
5463
|
+
declare function videoItemFromUpload(file: File, result: AXConversationUploaderResult, duration: number, size?: {
|
|
5464
|
+
width?: number;
|
|
5465
|
+
height?: number;
|
|
5466
|
+
}): Promise<AXConversationVideoMediaItem>;
|
|
5283
5467
|
declare function mergeVideoUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
|
|
5284
5468
|
declare function applyVideoLocalPreview(payload: AXConversationMessagePayload, localUrl: string, mimeType?: string): AXConversationMessagePayload;
|
|
5285
5469
|
|
|
5286
5470
|
interface AXConversationVideoFile extends AXConversationComposerPickerUploadItem {
|
|
5287
5471
|
preview?: string;
|
|
5288
5472
|
duration?: number;
|
|
5473
|
+
width?: number;
|
|
5474
|
+
height?: number;
|
|
5289
5475
|
}
|
|
5290
5476
|
declare class AXConversationVideoPickerComponent implements OnDestroy, AXConversationComposerActionComponent {
|
|
5291
5477
|
private uploadsDismissed;
|
|
@@ -5313,6 +5499,8 @@ declare class AXConversationVideoPickerComponent implements OnDestroy, AXConvers
|
|
|
5313
5499
|
groupItems: boolean;
|
|
5314
5500
|
sendAsDocuments: boolean;
|
|
5315
5501
|
readonly allowMultiple: _angular_core.Signal<boolean>;
|
|
5502
|
+
readonly layoutMode: _angular_core.Signal<AXConversationMediaGalleryLayoutMode>;
|
|
5503
|
+
readonly mediaRows: _angular_core.Signal<AXConversationMediaGalleryRow<AXConversationVideoFile>[]>;
|
|
5316
5504
|
readonly typeIconClass: "fa-light fa-video ax-text-blue-500";
|
|
5317
5505
|
readonly emptyIconClass: _angular_core.Signal<"fa-light fa-video ax-text-blue-500" | "fa-light fa-cloud-arrow-up">;
|
|
5318
5506
|
private catalogFileTypeDef?;
|
|
@@ -5328,7 +5516,6 @@ declare class AXConversationVideoPickerComponent implements OnDestroy, AXConvers
|
|
|
5328
5516
|
replaceAttachment(index: number): Promise<void>;
|
|
5329
5517
|
sendVideos(): Promise<void>;
|
|
5330
5518
|
private sendVideosAsDocuments;
|
|
5331
|
-
getMediaGridClass(): string;
|
|
5332
5519
|
canSend(): boolean;
|
|
5333
5520
|
getUploadingLabel(progress: number): string;
|
|
5334
5521
|
getCancelUploadLabel(): string;
|
|
@@ -5358,7 +5545,7 @@ declare class AXConversationVoiceFileTypeProvider extends AXFileTypeInfoProvider
|
|
|
5358
5545
|
[x: string]: (ctx: _acorex_core_file.AXFileTypeContext, ...args: unknown[]) => Promise<unknown> | unknown;
|
|
5359
5546
|
}>[]>;
|
|
5360
5547
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVoiceFileTypeProvider, never>;
|
|
5361
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
5548
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
5362
5549
|
}
|
|
5363
5550
|
|
|
5364
5551
|
declare function mergeVoiceUploadResult(payload: AXConversationMessagePayload, result: AXUploadResult): AXConversationMessagePayload;
|
|
@@ -5382,31 +5569,71 @@ declare class AXConversationVoiceRecorderComponent implements AXConversationComp
|
|
|
5382
5569
|
readonly recordingComplete: _angular_core.OutputEmitterRef<Blob>;
|
|
5383
5570
|
readonly recordingCancelled: _angular_core.OutputEmitterRef<void>;
|
|
5384
5571
|
readonly isRecording: _angular_core.WritableSignal<boolean>;
|
|
5572
|
+
readonly isPreview: _angular_core.WritableSignal<boolean>;
|
|
5573
|
+
readonly isPlayingPreview: _angular_core.WritableSignal<boolean>;
|
|
5385
5574
|
readonly isUploading: _angular_core.WritableSignal<boolean>;
|
|
5386
5575
|
readonly uploadProgress: _angular_core.WritableSignal<number>;
|
|
5387
5576
|
readonly recordingDuration: _angular_core.WritableSignal<number>;
|
|
5577
|
+
readonly previewUrl: _angular_core.WritableSignal<string>;
|
|
5578
|
+
readonly livePeaks: _angular_core.WritableSignal<number[]>;
|
|
5579
|
+
readonly liveBarCount: _angular_core.WritableSignal<number>;
|
|
5388
5580
|
private recordingStartTime;
|
|
5389
5581
|
private timerInterval?;
|
|
5390
5582
|
private mediaRecorder?;
|
|
5391
5583
|
private audioChunks;
|
|
5392
5584
|
private activeStream?;
|
|
5393
5585
|
private cancelled;
|
|
5586
|
+
private sendAfterStop;
|
|
5587
|
+
private sendInFlight;
|
|
5588
|
+
private awaitingPreviewData;
|
|
5589
|
+
private previewBlob;
|
|
5394
5590
|
private uploadAbortController?;
|
|
5591
|
+
private audioContext?;
|
|
5592
|
+
private analyser?;
|
|
5593
|
+
private timeDomain;
|
|
5594
|
+
private rafId;
|
|
5595
|
+
private lastLivePeakAt;
|
|
5596
|
+
private waveResizeObserver?;
|
|
5597
|
+
private readonly waveWrapRef;
|
|
5598
|
+
private readonly waveRef;
|
|
5395
5599
|
readonly formattedTime: _angular_core.Signal<string>;
|
|
5600
|
+
readonly canSend: _angular_core.Signal<boolean>;
|
|
5601
|
+
readonly liveDisplayBars: _angular_core.Signal<{
|
|
5602
|
+
index: number;
|
|
5603
|
+
recorded: boolean;
|
|
5604
|
+
height: number;
|
|
5605
|
+
}[]>;
|
|
5606
|
+
readonly waveConfig: _angular_core.Signal<AXWaveConfig>;
|
|
5396
5607
|
constructor();
|
|
5397
5608
|
activate(): Promise<void>;
|
|
5398
5609
|
startRecording(): Promise<void>;
|
|
5399
5610
|
private dismissHost;
|
|
5400
|
-
|
|
5611
|
+
toggleStopOrContinue(): void;
|
|
5401
5612
|
stopRecording(): void;
|
|
5613
|
+
sendRecording(): void;
|
|
5614
|
+
deleteRecording(): void;
|
|
5402
5615
|
cancelRecording(): void;
|
|
5403
|
-
/** Close the voice recorder */
|
|
5404
5616
|
cancel(): void;
|
|
5617
|
+
togglePreview(): void;
|
|
5618
|
+
onWaveStatusChanged(event: AXAudioWaveChangeEvent): void;
|
|
5405
5619
|
abortInProgressUploads(): void;
|
|
5406
|
-
|
|
5620
|
+
private pauseRecording;
|
|
5621
|
+
private continueRecording;
|
|
5622
|
+
private flushPreviewIfWaiting;
|
|
5623
|
+
private buildRecordingBlob;
|
|
5624
|
+
private discardActiveRecorder;
|
|
5625
|
+
private releaseStream;
|
|
5626
|
+
private startLiveWave;
|
|
5627
|
+
private observeWaveWidth;
|
|
5628
|
+
private updateBarCount;
|
|
5629
|
+
private tickLiveWave;
|
|
5630
|
+
private stopLiveWave;
|
|
5631
|
+
private enterPreview;
|
|
5632
|
+
private pausePreview;
|
|
5633
|
+
private clearPreview;
|
|
5634
|
+
private clearPreviewUrl;
|
|
5407
5635
|
private clearTimer;
|
|
5408
5636
|
getUploadingLabel(): string;
|
|
5409
|
-
/** Send voice message */
|
|
5410
5637
|
private sendVoiceMessage;
|
|
5411
5638
|
private stopAndCleanup;
|
|
5412
5639
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVoiceRecorderComponent, never>;
|
|
@@ -5442,7 +5669,7 @@ declare function ensureConversationFileCatalogRegistered(registry: AXFileTypeReg
|
|
|
5442
5669
|
declare class AXConversationComposerFileTypesProvider extends AXFileTypeInfoProvider {
|
|
5443
5670
|
items(): Promise<AXFileType[]>;
|
|
5444
5671
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationComposerFileTypesProvider, never>;
|
|
5445
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<
|
|
5672
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<any>;
|
|
5446
5673
|
}
|
|
5447
5674
|
|
|
5448
5675
|
declare function mergeUploadResult(type: AXConversationMessageType, payload: AXConversationMessagePayload, result: AXUploadResult): Promise<AXConversationMessagePayload>;
|
|
@@ -5514,6 +5741,7 @@ declare const AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION: AXConversationInfoBarActi
|
|
|
5514
5741
|
/**
|
|
5515
5742
|
* Delete/Leave conversation action (smart action that adapts based on conversation type)
|
|
5516
5743
|
* - Private: "Delete" - Deletes the conversation
|
|
5744
|
+
* - Bot: "Delete" - Deletes for both sides without a confirmation prompt
|
|
5517
5745
|
* - Group/Channel: "Leave & Delete" - Leaves the group and removes it from list
|
|
5518
5746
|
*/
|
|
5519
5747
|
declare const AX_CONVERSATION_INFO_BAR_DELETE_ACTION: AXConversationInfoBarAction;
|
|
@@ -5526,7 +5754,9 @@ declare function toUploaderReference(item: AXConversationMediaItemFields): AXCon
|
|
|
5526
5754
|
|
|
5527
5755
|
declare class AXConversationAudioAttachmentComponent {
|
|
5528
5756
|
private readonly platformId;
|
|
5757
|
+
protected readonly translation: AXTranslationService;
|
|
5529
5758
|
readonly item: _angular_core.InputSignal<AXConversationAudioMediaItem>;
|
|
5759
|
+
readonly look: _angular_core.InputSignal<"file" | "player">;
|
|
5530
5760
|
readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
|
|
5531
5761
|
readonly timeUpdate: _angular_core.OutputEmitterRef<number>;
|
|
5532
5762
|
readonly durationChange: _angular_core.OutputEmitterRef<number>;
|
|
@@ -5546,9 +5776,12 @@ declare class AXConversationAudioAttachmentComponent {
|
|
|
5546
5776
|
readonly effectiveDuration: _angular_core.Signal<number>;
|
|
5547
5777
|
readonly sliderMax: _angular_core.Signal<number>;
|
|
5548
5778
|
readonly currentTimeLabel: _angular_core.Signal<string>;
|
|
5779
|
+
readonly durationLabel: _angular_core.Signal<string>;
|
|
5549
5780
|
readonly downloadName: _angular_core.Signal<string>;
|
|
5550
5781
|
constructor();
|
|
5551
5782
|
togglePlay(): void;
|
|
5783
|
+
onPlayClick(event: AXClickEvent): void;
|
|
5784
|
+
onNativePlayClick(event: Event): void;
|
|
5552
5785
|
pause(): void;
|
|
5553
5786
|
setPlaybackRate(rate: number): void;
|
|
5554
5787
|
setMuted(muted: boolean): void;
|
|
@@ -5561,10 +5794,16 @@ declare class AXConversationAudioAttachmentComponent {
|
|
|
5561
5794
|
onError(): void;
|
|
5562
5795
|
onCoverError(): void;
|
|
5563
5796
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationAudioAttachmentComponent, never>;
|
|
5564
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationAudioAttachmentComponent, "ax-conversation-audio-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
|
|
5797
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationAudioAttachmentComponent, "ax-conversation-audio-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
|
|
5565
5798
|
}
|
|
5566
5799
|
|
|
5800
|
+
type AXConversationFileVisualKind = 'image' | 'video' | 'audio' | 'file';
|
|
5801
|
+
|
|
5567
5802
|
declare class AXConversationFileAttachmentComponent {
|
|
5803
|
+
private readonly platformId;
|
|
5804
|
+
private readonly document;
|
|
5805
|
+
protected readonly translation: AXTranslationService;
|
|
5806
|
+
private readonly thumbImage;
|
|
5568
5807
|
readonly item: _angular_core.InputSignal<AXConversationFileMediaItem>;
|
|
5569
5808
|
private readonly mediaReference;
|
|
5570
5809
|
private readonly resolvedUrl;
|
|
@@ -5573,6 +5812,11 @@ declare class AXConversationFileAttachmentComponent {
|
|
|
5573
5812
|
readonly fileSize: _angular_core.Signal<number>;
|
|
5574
5813
|
readonly fileExtension: _angular_core.Signal<string>;
|
|
5575
5814
|
readonly formattedSize: _angular_core.Signal<string>;
|
|
5815
|
+
readonly kind: _angular_core.Signal<AXConversationFileVisualKind>;
|
|
5816
|
+
readonly isMedia: _angular_core.Signal<boolean>;
|
|
5817
|
+
readonly thumbUrl: _angular_core.Signal<string>;
|
|
5818
|
+
readonly previewSrc: _angular_core.Signal<string>;
|
|
5819
|
+
openImage(event: Event): void;
|
|
5576
5820
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileAttachmentComponent, never>;
|
|
5577
5821
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationFileAttachmentComponent, "ax-conversation-file-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5578
5822
|
}
|
|
@@ -5586,7 +5830,10 @@ declare class AXConversationImageAttachmentComponent {
|
|
|
5586
5830
|
private readonly document;
|
|
5587
5831
|
readonly item: _angular_core.InputSignal<AXConversationImageMediaItem>;
|
|
5588
5832
|
readonly alt: _angular_core.InputSignal<string>;
|
|
5833
|
+
/** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
|
|
5834
|
+
readonly reserveAspect: _angular_core.InputSignal<boolean>;
|
|
5589
5835
|
readonly ready: _angular_core.WritableSignal<boolean>;
|
|
5836
|
+
readonly aspectRatio: _angular_core.Signal<string>;
|
|
5590
5837
|
private readonly mediaReference;
|
|
5591
5838
|
private readonly resolvedUrl;
|
|
5592
5839
|
readonly displayUrl: _angular_core.Signal<string>;
|
|
@@ -5595,7 +5842,7 @@ declare class AXConversationImageAttachmentComponent {
|
|
|
5595
5842
|
onImageError(): void;
|
|
5596
5843
|
toggleFullscreen(event: AXClickEvent): void;
|
|
5597
5844
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationImageAttachmentComponent, never>;
|
|
5598
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5845
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationImageAttachmentComponent, "ax-conversation-image-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "alt": { "alias": "alt"; "required": false; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5599
5846
|
}
|
|
5600
5847
|
|
|
5601
5848
|
interface AXConversationPlaybackBannerInputs {
|
|
@@ -5613,6 +5860,7 @@ interface AXConversationPlaybackBannerInputs {
|
|
|
5613
5860
|
showMuteControl?: boolean;
|
|
5614
5861
|
}
|
|
5615
5862
|
declare class AXConversationMediaPlaybackInfoBarBannerComponent implements AXConversationMessageInfoBarBannerComponent {
|
|
5863
|
+
protected readonly translation: AXTranslationService;
|
|
5616
5864
|
readonly message: _angular_core.InputSignal<AXConversationMessage>;
|
|
5617
5865
|
readonly title: _angular_core.InputSignal<string>;
|
|
5618
5866
|
readonly currentTime: _angular_core.InputSignal<number>;
|
|
@@ -5705,6 +5953,8 @@ declare function syncPlaybackInfoBarBanner(infoBar: AXConversationInfoBarService
|
|
|
5705
5953
|
|
|
5706
5954
|
declare class AXConversationVideoAttachmentComponent {
|
|
5707
5955
|
readonly item: _angular_core.InputSignal<AXConversationVideoMediaItem>;
|
|
5956
|
+
/** When false, skip aspect-ratio reservation (gallery cells already have a fixed size). */
|
|
5957
|
+
readonly reserveAspect: _angular_core.InputSignal<boolean>;
|
|
5708
5958
|
readonly playingChange: _angular_core.OutputEmitterRef<boolean>;
|
|
5709
5959
|
readonly timeUpdate: _angular_core.OutputEmitterRef<number>;
|
|
5710
5960
|
readonly durationChange: _angular_core.OutputEmitterRef<number>;
|
|
@@ -5716,6 +5966,7 @@ declare class AXConversationVideoAttachmentComponent {
|
|
|
5716
5966
|
readonly playbackUrl: _angular_core.Signal<string>;
|
|
5717
5967
|
readonly duration: _angular_core.Signal<number>;
|
|
5718
5968
|
readonly durationLabel: _angular_core.Signal<string>;
|
|
5969
|
+
readonly aspectRatio: _angular_core.Signal<string>;
|
|
5719
5970
|
togglePlay(): void;
|
|
5720
5971
|
pause(): void;
|
|
5721
5972
|
onLoadedMetadata(): void;
|
|
@@ -5725,7 +5976,7 @@ declare class AXConversationVideoAttachmentComponent {
|
|
|
5725
5976
|
onEnded(): void;
|
|
5726
5977
|
onError(): void;
|
|
5727
5978
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationVideoAttachmentComponent, never>;
|
|
5728
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
|
|
5979
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationVideoAttachmentComponent, "ax-conversation-video-attachment", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "reserveAspect": { "alias": "reserveAspect"; "required": false; "isSignal": true; }; }, { "playingChange": "playingChange"; "timeUpdate": "timeUpdate"; "durationChange": "durationChange"; "playbackEnded": "playbackEnded"; "playbackError": "playbackError"; }, never, never, true, never>;
|
|
5729
5980
|
}
|
|
5730
5981
|
|
|
5731
5982
|
declare class AXConversationAudioRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
@@ -5792,29 +6043,62 @@ declare class AXConversationFallbackRendererComponent implements AXConversationM
|
|
|
5792
6043
|
|
|
5793
6044
|
declare class AXConversationFileRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
5794
6045
|
private readonly fileTypes;
|
|
6046
|
+
private readonly translation;
|
|
6047
|
+
private readonly destroyRef;
|
|
6048
|
+
private readonly infoBarService;
|
|
6049
|
+
private readonly audioAttachments;
|
|
6050
|
+
private readonly _contentState;
|
|
6051
|
+
private readonly activeTrackIndex;
|
|
6052
|
+
private readonly isPlaying;
|
|
6053
|
+
private readonly currentTime;
|
|
6054
|
+
private readonly duration;
|
|
6055
|
+
readonly playbackSpeed: _angular_core.WritableSignal<number>;
|
|
6056
|
+
readonly isMuted: _angular_core.WritableSignal<boolean>;
|
|
6057
|
+
private lastBannerSyncAt;
|
|
6058
|
+
private readonly speeds;
|
|
6059
|
+
private readonly bannerTogglePlay;
|
|
6060
|
+
private readonly bannerClose;
|
|
6061
|
+
private readonly bannerCycleSpeed;
|
|
6062
|
+
private readonly bannerToggleMute;
|
|
5795
6063
|
readonly message: _angular_core.InputSignal<AXConversationMessage>;
|
|
5796
6064
|
readonly rendererState: _angular_core.Signal<{
|
|
5797
6065
|
deliveryStatus: _acorex_components_conversation.AXConversationMessageStatus;
|
|
5798
|
-
contentState:
|
|
6066
|
+
contentState: AXConversationMessageRendererContentState;
|
|
5799
6067
|
}>;
|
|
5800
6068
|
readonly payload: _angular_core.Signal<AXConversationFilePayload>;
|
|
5801
|
-
readonly files: _angular_core.Signal<
|
|
6069
|
+
readonly files: _angular_core.Signal<AXConversationFileMediaItem[]>;
|
|
5802
6070
|
readonly caption: _angular_core.Signal<string>;
|
|
6071
|
+
readonly fileRows: _angular_core.Signal<{
|
|
6072
|
+
file: AXConversationFileMediaItem;
|
|
6073
|
+
isAudio: boolean;
|
|
6074
|
+
audio: _acorex_components_conversation.AXConversationAudioMediaItem;
|
|
6075
|
+
trackIndex: number;
|
|
6076
|
+
}[]>;
|
|
5803
6077
|
copy(): Promise<string>;
|
|
6078
|
+
constructor();
|
|
6079
|
+
isAudioFile(file: AXConversationFileMediaItem): boolean;
|
|
6080
|
+
onPlayingChange(trackIndex: number, playing: boolean): void;
|
|
6081
|
+
onTimeUpdate(trackIndex: number, time: number): void;
|
|
6082
|
+
onDurationChange(trackIndex: number, duration: number): void;
|
|
6083
|
+
onPlaybackEnded(trackIndex: number): void;
|
|
6084
|
+
onPlaybackError(): void;
|
|
6085
|
+
togglePlay(): void;
|
|
6086
|
+
cyclePlaybackSpeed(): void;
|
|
6087
|
+
toggleMute(): void;
|
|
6088
|
+
private pauseOtherTracks;
|
|
6089
|
+
private pausePlayback;
|
|
6090
|
+
private applyPlaybackSettings;
|
|
6091
|
+
private syncInfoBarBanner;
|
|
5804
6092
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationFileRendererComponent, never>;
|
|
5805
6093
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationFileRendererComponent, "ax-conversation-file-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5806
6094
|
}
|
|
5807
6095
|
|
|
6096
|
+
declare function fileItemAsAudioMedia(item: AXConversationFileMediaItem): AXConversationAudioMediaItem;
|
|
5808
6097
|
declare function normalizeFilePayload(payload: AXConversationFilePayload): AXConversationFilePayload;
|
|
5809
6098
|
|
|
5810
|
-
type AXConversationMediaGalleryLayoutMode = 'single' | 'dual' | 'triple' | 'masonry';
|
|
5811
|
-
interface AXConversationMediaGalleryRow<T> {
|
|
5812
|
-
items: T[];
|
|
5813
|
-
startIndex: number;
|
|
5814
|
-
}
|
|
5815
|
-
|
|
5816
6099
|
declare class AXConversationImageRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
5817
6100
|
private readonly fileTypes;
|
|
6101
|
+
protected readonly translation: AXTranslationService;
|
|
5818
6102
|
readonly message: _angular_core.InputSignal<AXConversationMessage>;
|
|
5819
6103
|
readonly rendererState: _angular_core.Signal<{
|
|
5820
6104
|
deliveryStatus: _acorex_components_conversation.AXConversationMessageStatus;
|
|
@@ -5823,6 +6107,8 @@ declare class AXConversationImageRendererComponent extends AXConversationMessage
|
|
|
5823
6107
|
readonly payload: _angular_core.Signal<AXConversationImagePayload>;
|
|
5824
6108
|
readonly images: _angular_core.Signal<_acorex_components_conversation.AXConversationImageMediaItem[]>;
|
|
5825
6109
|
readonly caption: _angular_core.Signal<string>;
|
|
6110
|
+
readonly imageAlt: _angular_core.Signal<string>;
|
|
6111
|
+
readonly imageLoadErrorLabel: _angular_core.Signal<string>;
|
|
5826
6112
|
copy(): Promise<string>;
|
|
5827
6113
|
readonly layoutMode: _angular_core.Signal<AXConversationMediaGalleryLayoutMode>;
|
|
5828
6114
|
readonly imageRows: _angular_core.Signal<AXConversationMediaGalleryRow<_acorex_components_conversation.AXConversationImageMediaItem>[]>;
|
|
@@ -5837,6 +6123,13 @@ declare function resolveImageDisplayUrl(image: AXConversationImageMediaItem): st
|
|
|
5837
6123
|
|
|
5838
6124
|
declare class AXConversationLocationRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
5839
6125
|
private readonly _contentState;
|
|
6126
|
+
private readonly platformId;
|
|
6127
|
+
private readonly document;
|
|
6128
|
+
private readonly fullScreen;
|
|
6129
|
+
private readonly destroyRef;
|
|
6130
|
+
private readonly mapHost;
|
|
6131
|
+
private readonly map;
|
|
6132
|
+
protected readonly translation: AXTranslationService;
|
|
5840
6133
|
readonly message: _angular_core.InputSignal<AXConversationMessage>;
|
|
5841
6134
|
readonly rendererState: _angular_core.Signal<{
|
|
5842
6135
|
deliveryStatus: _acorex_components_conversation.AXConversationMessageStatus;
|
|
@@ -5857,12 +6150,21 @@ declare class AXConversationLocationRendererComponent extends AXConversationMess
|
|
|
5857
6150
|
popupOpen: boolean;
|
|
5858
6151
|
popupCloseButton: boolean;
|
|
5859
6152
|
}[]>;
|
|
6153
|
+
readonly mapIsFullscreen: _angular_core.Signal<boolean>;
|
|
6154
|
+
readonly mapFullscreenLabel: _angular_core.Signal<string>;
|
|
6155
|
+
readonly mapFullscreenIconClass: _angular_core.Signal<"fa-light fa-compress" | "fa-light fa-expand">;
|
|
6156
|
+
constructor();
|
|
6157
|
+
openInMaps(event: AXClickEvent): void;
|
|
6158
|
+
toggleMapFullscreen(event: AXClickEvent): void;
|
|
6159
|
+
private exitMapFullscreen;
|
|
6160
|
+
protected scheduleMapResize(): void;
|
|
5860
6161
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXConversationLocationRendererComponent, never>;
|
|
5861
6162
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXConversationLocationRendererComponent, "ax-conversation-location-renderer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
5862
6163
|
}
|
|
5863
6164
|
|
|
5864
6165
|
declare class AXConversationStickerRendererComponent implements AXConversationMessageRendererComponent {
|
|
5865
6166
|
private readonly _contentState;
|
|
6167
|
+
protected readonly translation: AXTranslationService;
|
|
5866
6168
|
readonly message: _angular_core.InputSignal<AXConversationMessage>;
|
|
5867
6169
|
readonly rendererState: _angular_core.Signal<{
|
|
5868
6170
|
deliveryStatus: _acorex_components_conversation.AXConversationMessageStatus;
|
|
@@ -5873,6 +6175,7 @@ declare class AXConversationStickerRendererComponent implements AXConversationMe
|
|
|
5873
6175
|
private readonly resolvedUrl;
|
|
5874
6176
|
readonly stickerUrl: _angular_core.Signal<string>;
|
|
5875
6177
|
readonly alt: _angular_core.Signal<string>;
|
|
6178
|
+
readonly aspectRatio: _angular_core.Signal<string>;
|
|
5876
6179
|
constructor();
|
|
5877
6180
|
onLoad(): void;
|
|
5878
6181
|
onError(): void;
|
|
@@ -5904,6 +6207,10 @@ declare class AXConversationTextRendererComponent extends AXConversationMessageR
|
|
|
5904
6207
|
}>;
|
|
5905
6208
|
readonly searchQuery: _angular_core.Signal<string>;
|
|
5906
6209
|
copy(): string;
|
|
6210
|
+
readonly jumboCount: _angular_core.Signal<number>;
|
|
6211
|
+
readonly isJumbo: _angular_core.Signal<boolean>;
|
|
6212
|
+
readonly jumboText: _angular_core.Signal<string>;
|
|
6213
|
+
readonly jumboGraphemes: _angular_core.Signal<string[]>;
|
|
5907
6214
|
readonly formattedText: _angular_core.Signal<SafeHtml>;
|
|
5908
6215
|
private linkify;
|
|
5909
6216
|
private highlightSearch;
|
|
@@ -5953,7 +6260,7 @@ declare function normalizeVideoPayload(payload: AXConversationVideoPayload): AXC
|
|
|
5953
6260
|
|
|
5954
6261
|
declare class AXConversationVoiceRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
5955
6262
|
private readonly fileTypes;
|
|
5956
|
-
|
|
6263
|
+
protected readonly translation: AXTranslationService;
|
|
5957
6264
|
private readonly platformId;
|
|
5958
6265
|
private readonly destroyRef;
|
|
5959
6266
|
private readonly infoBarService;
|
|
@@ -6068,6 +6375,7 @@ declare const AX_CONVERSATION_ITEM_DIVIDER: AXConversationItemAction;
|
|
|
6068
6375
|
/**
|
|
6069
6376
|
* Delete/Leave conversation action (smart action that adapts based on conversation type)
|
|
6070
6377
|
* - Private: "Delete" - Deletes the conversation
|
|
6378
|
+
* - Bot: "Delete" - Deletes for both sides without a confirmation prompt
|
|
6071
6379
|
* - Group/Channel: "Leave & Delete" - Leaves the group and removes it from list
|
|
6072
6380
|
*/
|
|
6073
6381
|
declare const AX_CONVERSATION_ITEM_DELETE_ACTION: AXConversationItemAction;
|
|
@@ -6567,5 +6875,5 @@ declare function getErrorMessage(code: string, params?: Record<string, string |
|
|
|
6567
6875
|
*/
|
|
6568
6876
|
type AXConversationErrorCode = typeof AX_CONVERSATION_MESSAGE_ERRORS[keyof typeof AX_CONVERSATION_MESSAGE_ERRORS]['code'] | typeof AX_CONVERSATION_FILE_ERRORS[keyof typeof AX_CONVERSATION_FILE_ERRORS]['code'] | typeof AX_CONVERSATION_USER_ERRORS[keyof typeof AX_CONVERSATION_USER_ERRORS]['code'] | typeof AX_CONVERSATION_ERRORS[keyof typeof AX_CONVERSATION_ERRORS]['code'] | typeof AX_CONVERSATION_CONNECTION_ERRORS[keyof typeof AX_CONVERSATION_CONNECTION_ERRORS]['code'] | typeof AX_CONVERSATION_LOCATION_ERRORS[keyof typeof AX_CONVERSATION_LOCATION_ERRORS]['code'] | typeof AX_CONVERSATION_URL_ERRORS[keyof typeof AX_CONVERSATION_URL_ERRORS]['code'];
|
|
6569
6877
|
|
|
6570
|
-
export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemFromUpload, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, reportMediaLoadError, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
|
|
6571
|
-
export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
|
|
6878
|
+
export { AXConversationApi, AXConversationApiLoggerService, AXConversationAudioAttachmentComponent, AXConversationAudioFileTypeProvider, AXConversationAudioPickerComponent, AXConversationAudioRendererComponent, AXConversationAvatarComponent, AXConversationAvatarPickerComponent, AXConversationBaseRegistry, AXConversationComposerActionRegistry, AXConversationComposerComponent, AXConversationComposerFileTypesProvider, AXConversationComposerGenerationStateService, AXConversationComposerPopupComponent, AXConversationComposerService, AXConversationComposerTabRegistry, AXConversationContainerComponent, AXConversationContainerDirective, AXConversationDateUtilsService, AXConversationDeleteDialogComponent, AXConversationEmojiTabComponent, AXConversationErrorHandlerService, AXConversationFallbackRendererComponent, AXConversationFileAttachmentComponent, AXConversationFileFileTypeProvider, AXConversationFilePickerComponent, AXConversationFileRendererComponent, AXConversationForwardMessageDialogComponent, AXConversationImageAttachmentComponent, AXConversationImageFileTypeProvider, AXConversationImagePickerComponent, AXConversationImageRendererComponent, AXConversationInfiniteScrollDirective, AXConversationInfoBarActionRegistry, AXConversationInfoBarComponent, AXConversationInfoBarSearchComponent, AXConversationInfoBarService, AXConversationItemActionRegistry, AXConversationLocationPickerComponent, AXConversationLocationRendererComponent, AXConversationMediaPlaybackInfoBarBannerComponent, AXConversationMessageActionRegistry, AXConversationMessageApi, AXConversationMessageListComponent, AXConversationMessageListNoActiveDefaultComponent, AXConversationMessageListService, AXConversationMessageRendererCopyHostComponent, AXConversationMessageRendererRegistry, AXConversationMessageRendererStateComponent, AXConversationMessageUtilsService, AXConversationModule, AXConversationNewDialogComponent, AXConversationPickerCaptionComponent, AXConversationPickerEmptyComponent, AXConversationPickerFooterComponent, AXConversationPickerHeaderComponent, AXConversationPickerOptionsComponent, AXConversationPickerShellComponent, AXConversationPickerToolbarComponent, AXConversationRealtimeApi, AXConversationRegistryComponentOutletComponent, AXConversationRegistryService, AXConversationService, AXConversationSidebarComponent, AXConversationSidebarService, AXConversationStickerRendererComponent, AXConversationStickerTabComponent, AXConversationSystemRendererComponent, AXConversationTabRegistry, AXConversationTextRendererComponent, AXConversationUserApi, AXConversationVideoAttachmentComponent, AXConversationVideoFileTypeProvider, AXConversationVideoPickerComponent, AXConversationVideoRendererComponent, AXConversationVoiceFileTypeProvider, AXConversationVoiceRecorderComponent, AXConversationVoiceRendererComponent, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, AX_CONVERSATION_AUDIO_RENDERER, AX_CONVERSATION_BUILTIN_COMPOSER_TABS, AX_CONVERSATION_COMPOSER_AUDIO_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_ACTION, AX_CONVERSATION_COMPOSER_EMOJI_TAB, AX_CONVERSATION_COMPOSER_FILE_ACTION, AX_CONVERSATION_COMPOSER_IMAGE_ACTION, AX_CONVERSATION_COMPOSER_LOCATION_ACTION, AX_CONVERSATION_COMPOSER_STICKER_TAB, AX_CONVERSATION_COMPOSER_VIDEO_ACTION, AX_CONVERSATION_COMPOSER_VOICE_RECORDING_ACTION, AX_CONVERSATION_CONFIG, AX_CONVERSATION_CONNECTION_ERRORS, AX_CONVERSATION_CONVERSATION_AVATAR_COMPONENT, AX_CONVERSATION_DEFAULT_COMPOSER_ACTIONS, AX_CONVERSATION_DEFAULT_COMPOSER_TABS, AX_CONVERSATION_DEFAULT_CONVERSATION_ITEM_ACTIONS, AX_CONVERSATION_DEFAULT_CONVERSATION_TABS, AX_CONVERSATION_DEFAULT_GROUP_ICON, AX_CONVERSATION_DEFAULT_INFO_BAR_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_ACTIONS, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID, AX_CONVERSATION_DEFAULT_MESSAGE_LIST_THEME_BACKGROUND, AX_CONVERSATION_DEFAULT_MESSAGE_RENDERERS, AX_CONVERSATION_DEFAULT_ROOM_PREFERENCES, AX_CONVERSATION_DEFAULT_USER_ICON, AX_CONVERSATION_ERRORS, AX_CONVERSATION_ERROR_HANDLER_CONFIG, AX_CONVERSATION_ERROR_MESSAGES, AX_CONVERSATION_FALLBACK_RENDERER, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_ERRORS, AX_CONVERSATION_FILE_PRESENTATION, AX_CONVERSATION_FILE_RENDERER, AX_CONVERSATION_FILE_TYPES_READY, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, AX_CONVERSATION_IMAGE_RENDERER, AX_CONVERSATION_INFO_BAR_ARCHIVE_ACTION, AX_CONVERSATION_INFO_BAR_BLOCK_ACTION, AX_CONVERSATION_INFO_BAR_DELETE_ACTION, AX_CONVERSATION_INFO_BAR_DIVIDER, AX_CONVERSATION_INFO_BAR_MUTE_ACTION, AX_CONVERSATION_INFO_BAR_SEARCH_ACTION, AX_CONVERSATION_ITEM_BLOCK_ACTION, AX_CONVERSATION_ITEM_DELETE_ACTION, AX_CONVERSATION_ITEM_DIVIDER, AX_CONVERSATION_ITEM_MARK_READ_ACTION, AX_CONVERSATION_ITEM_MUTE_ACTION, AX_CONVERSATION_ITEM_PIN_ACTION, AX_CONVERSATION_JUMBO_EMOJI_MAX, AX_CONVERSATION_LOCATION_ERRORS, AX_CONVERSATION_LOCATION_RENDERER, AX_CONVERSATION_MESSAGE_DELETE_ACTION, AX_CONVERSATION_MESSAGE_EDIT_ACTION, AX_CONVERSATION_MESSAGE_ERRORS, AX_CONVERSATION_MESSAGE_FORWARD_ACTION, AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS, AX_CONVERSATION_MESSAGE_REPLY_ACTION, AX_CONVERSATION_MESSAGE_TYPE_FILE_TYPE, AX_CONVERSATION_PEER_AVATAR_TYPES, AX_CONVERSATION_REGISTRY_CONFIG, AX_CONVERSATION_STICKER_API_KEY, AX_CONVERSATION_STICKER_RENDERER, AX_CONVERSATION_SYSTEM_RENDERER, AX_CONVERSATION_TAB_ALL, AX_CONVERSATION_TAB_ARCHIVED, AX_CONVERSATION_TAB_BOT, AX_CONVERSATION_TAB_CHANNELS, AX_CONVERSATION_TAB_GROUPS, AX_CONVERSATION_TAB_PRIVATE, AX_CONVERSATION_TAB_UNREAD, AX_CONVERSATION_TEXT_RENDERER, AX_CONVERSATION_URL_ERRORS, AX_CONVERSATION_USER_AVATAR_COMPONENT, AX_CONVERSATION_USER_ERRORS, AX_CONVERSATION_VIDEO_CATALOG, AX_CONVERSATION_VIDEO_PRESENTATION, AX_CONVERSATION_VIDEO_RENDERER, AX_CONVERSATION_VOICE_CATALOG, AX_CONVERSATION_VOICE_PRESENTATION, AX_CONVERSATION_VOICE_RENDERER, AX_DEFAULT_CONVERSATION_CONFIG, abortPickerUploads, applyAudioLocalPreview, applyFileLocalPreview, applyLocalPreview, applyVideoLocalPreview, applyVoiceLocalPreview, audioItemFromUpload, bindMediaRendererContentState, buildMediaGalleryTiles, canShowRendererContentError, cleanupPickerUploads, conversationAudioUtilities, conversationFileUtilities, conversationImageUtilities, conversationVideoUtilities, conversationVoiceUtilities, copyWithFileTypeFallback, countLoneEmojis, createConversationAudioFileType, createConversationFileFileType, createConversationImageFileType, createConversationVideoFileType, createConversationVoiceFileType, createLocalPreviewUrl, createObjectUrl, createPickerDragHandlers, createPickerUploadItemId, createResolvedMediaUrlSignal, deleteUploadedPickerMedia, dismissComposerPickerHost, ensureConversationFileCatalogRegistered, fetchConversationMediaPage, fileItemAsAudioMedia, fileItemFromUpload, filesFromClipboardEvent, filterMessagesByMediaCategory, filterSupplementalInfoPanelMessages, findExistingPrivateConversation, formatDuration, formatErrorMessage, formatFileByteSize, formatFileSize, formatMediaDuration, formatPickerValidationMessage, getActiveComposerPickerPasteHandler, getConversationMediaCategories, getConversationProfileFields, getErrorMessage, getMessageAudioItems, getMessageVideoItems, getPickerCancelUploadLabel, getPrivatePeerParticipant, hasRegistryComponent, inferFileExtensionHintFromMessage, isAttachmentListCategory, isComposerAttachmentBannerEnabled, isComposerTabEnabled, isConversationReactionsEnabled, isConversationRoomCreator, isGenericPrivateConversationTitle, isGridMediaCategory, isGroupLikeConversation, isJumboEmojiText, isJumboEmojiTextMessage, isMessageDeliveryPending, isMessageListThemeBackground, isMessageVisibleAfterHistoryCutoff, isNonPersistableMediaUrl, isPickerItemReadyToSend, isPlainChromeMessage, isSameMessageListBackground, isUploadAborted, limitFilesToCapacity, listTextGraphemes, mediaCopyText, mergeAudioUploadResult, mergeFileUploadResult, mergeInfoPanelMessages, mergeUploadResult, mergeVideoUploadResult, mergeVoiceUploadResult, mergeWithDefaults, messageContainsLink, normalizeAudioPayload, normalizeConversationInboundFile, normalizeFilePayload, normalizeImagePayload, normalizeMessageListBackgroundValue, normalizeVideoPayload, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, openWithFileType, pickDisplayMediaUrl, pickEarliestJoinedParticipant, pickerItemToMediaReference, pickerItemToUploadResult, probeAudioDuration, probeImageDimensions, probeVideoMedia, provideConversation, provideConversationComposerFileTypes, provideConversationFileCatalog, registerComposerPickerPasteHandler, reportMediaLoadError, resolveComposerAttachmentPresentation, resolveComposerMaxFiles, resolveConversationAvatarDisplay, resolveConversationComposerTabs, resolveConversationForViewer, resolveConversationMessageFileType, resolveConversationPeerParticipant, resolveConversationPeerUserId, resolveConversationTitleForViewer, resolveGalleryImageUrl, resolveImageDisplayUrl, resolveMessageChrome, resolveMessageListBackgroundRaw, resolveMessageListBackgroundStyle, resolveParticipantProfile, resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, resolvePrivatePeerParticipant, resolvePrivatePeerUserId, resolveUserAvatarDisplay, resolveVideoThumbnailUrl, revokeObjectUrl, revokePickerBlobPreviews, sanitizeInput, shouldUseUserAvatarForConversation, sortUsersForForward, syncPlaybackInfoBarBanner, toUploaderReference as toMediaItemUploaderReference, toUploaderReference$1 as toUploaderReference, uploadPickerFile, usesDefaultMessageListWallpaper, validateConversationId, validateEmail, validateLatitude, validateLongitude, validateMessagePayload, validateMessageText, validateMessageType, validateUrl, validateUserId, validateUserIds, videoItemFromUpload };
|
|
6879
|
+
export type { AXConversation, AXConversationApiError, AXConversationApiLogEntry, AXConversationApiName, AXConversationAudioMediaItem, AXConversationAudioPayload, AXConversationAvatarComponents, AXConversationAvatarDisplay, AXConversationAvatarKind, AXConversationBlockReportReason, AXConversationCleanupPickerUploadsOptions, AXConversationComposerAction, AXConversationComposerActionComponent, AXConversationComposerActionContext, AXConversationComposerAttachmentPresentation, AXConversationComposerDraftAttachment, AXConversationComposerDraftAttachmentKind, AXConversationComposerGenerationPhase, AXConversationComposerPickerUploadItem, AXConversationComposerPrimaryButtonMode, AXConversationComposerTab, AXConversationComposerTabFeature, AXConversationConfig, AXConversationConnectionStatus, AXConversationConversationAvatarComponent, AXConversationCreateData, AXConversationDateSeparatorKind, AXConversationDeleteDialogMode, AXConversationDeleteDialogResult, AXConversationDeleteMessageCommand, AXConversationDeleteOptions, AXConversationDropdownMenuItem, AXConversationEditMessageCommand, AXConversationError, AXConversationErrorCode, AXConversationErrorHandlerConfig, AXConversationErrorMessage, AXConversationErrorSeverity, AXConversationFeatures, AXConversationFileMediaItem, AXConversationFilePayload, AXConversationFilter, AXConversationFilters, AXConversationForwardUserSortEntry, AXConversationGroupedReaction, AXConversationImageMediaItem, AXConversationImagePayload, AXConversationInfoBarAction, AXConversationInfoBarActionComponent, AXConversationInfoBarActionContext, AXConversationInfoBarActiveBanner, AXConversationInfoBarActiveComponent, AXConversationInfoProfileField, AXConversationItemAction, AXConversationItemActionContext, AXConversationLink, AXConversationLinkPreview, AXConversationLoadMessagesResult, AXConversationLocationPayload, AXConversationMediaCategory, AXConversationMediaCategoryId, AXConversationMediaDimensions, AXConversationMediaGalleryTile, AXConversationMediaItemFields, AXConversationMediaPageResult, AXConversationMention, AXConversationMessage, AXConversationMessageAction, AXConversationMessageActionContext, AXConversationMessageChrome, AXConversationMessageClusterRole, AXConversationMessageDateGroup, AXConversationMessageForwardData, AXConversationMessageInfoBarBannerComponent, AXConversationMessageListBackground, AXConversationMessageListBackgroundPreset, AXConversationMessageListEmptyComponent, AXConversationMessageListThemeBackground, AXConversationMessagePayload, AXConversationMessageRenderer, AXConversationMessageRendererCapabilities, AXConversationMessageRendererComponent, AXConversationMessageRendererContentState, AXConversationMessageRendererState, AXConversationMessageSearchFilters, AXConversationMessageStatus, AXConversationMessageType, AXConversationMetadata, AXConversationOptions, AXConversationOutletSkeleton, AXConversationPaginatedResult, AXConversationPagination, AXConversationPaginationState, AXConversationParticipant, AXConversationParticipantRole, AXConversationParticipantUpdate, AXConversationPickerPasteHandler, AXConversationPinnedMessage, AXConversationPlaybackBannerInputs, AXConversationPollOption, AXConversationPollPayload, AXConversationPresenceStatus, AXConversationPresenceUpdate, AXConversationReaction, AXConversationReadReceipt, AXConversationRegistryComponentRef, AXConversationRegistryConfiguration, AXConversationRegistryItem, AXConversationRoomPreferences, AXConversationRoomPreferencesMap, AXConversationSendMessageCommand, AXConversationSendMessageOptions, AXConversationSendMessageUploadSource, AXConversationSettingsUpdate, AXConversationSidebarTabsOrientation, AXConversationSort, AXConversationStickerPayload, AXConversationSystemPayload, AXConversationTab, AXConversationTextFormat, AXConversationTextPayload, AXConversationType, AXConversationTypingIndicator, AXConversationUpdateData, AXConversationUploadOptions, AXConversationUploaderFilePreview, AXConversationUploaderReference, AXConversationUploaderResult, AXConversationUser, AXConversationUserAvatarComponent, AXConversationUserPresence, AXConversationUserProfile, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationValidationResult, AXConversationVideoMediaItem, AXConversationVideoPayload, AXConversationVoicePayload };
|