@acorex/components 19.9.0 → 19.10.0-next.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (224) hide show
  1. package/action-sheet/lib/action-sheet.class.d.ts +1 -2
  2. package/avatar/lib/avatar.component.d.ts +3 -2
  3. package/badge/lib/badge.component.d.ts +2 -2
  4. package/button/lib/button.component.d.ts +1 -6
  5. package/button-group/lib/button-group-item.component.d.ts +3 -1
  6. package/button-group/lib/button-group.component.d.ts +1 -0
  7. package/button-group/lib/button-group.module.d.ts +2 -1
  8. package/chips/lib/chips.component.d.ts +11 -7
  9. package/color-box/lib/color-box.component.d.ts +5 -1
  10. package/color-palette/lib/color-palette-picker.component.d.ts +19 -14
  11. package/color-palette/lib/color-palette.module.d.ts +2 -1
  12. package/common/lib/classes/styles.class.d.ts +6 -4
  13. package/common/lib/components/button-base-component.class.d.ts +0 -1
  14. package/datetime-picker/lib/datetime-picker.component.d.ts +0 -10
  15. package/datetime-picker/lib/datetime-picker.module.d.ts +2 -1
  16. package/decorators/index.d.ts +6 -4
  17. package/decorators/lib/components/color-indicator/color-indicator.component.d.ts +6 -0
  18. package/decorators/lib/components/generic-content.component.d.ts +1 -1
  19. package/decorators/lib/components/heading/heading.component.d.ts +11 -0
  20. package/decorators/lib/decorators.module.d.ts +8 -6
  21. package/dialog/lib/dialog.component.d.ts +2 -0
  22. package/dropdown-button/lib/dropdown-button.component.d.ts +1 -1
  23. package/fesm2022/acorex-components-action-sheet.mjs +3 -3
  24. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  25. package/fesm2022/acorex-components-alert.mjs +3 -3
  26. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  27. package/fesm2022/acorex-components-audio-wave.mjs +4 -4
  28. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  29. package/fesm2022/acorex-components-avatar.mjs +5 -4
  30. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  31. package/fesm2022/acorex-components-badge.mjs +5 -5
  32. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  33. package/fesm2022/acorex-components-bottom-navigation.mjs +2 -2
  34. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  35. package/fesm2022/acorex-components-breadcrumbs.mjs +2 -2
  36. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  37. package/fesm2022/acorex-components-button-group.mjs +169 -156
  38. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  39. package/fesm2022/acorex-components-button.mjs +19 -22
  40. package/fesm2022/acorex-components-button.mjs.map +1 -1
  41. package/fesm2022/acorex-components-calendar.mjs +4 -4
  42. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  43. package/fesm2022/acorex-components-check-box.mjs +2 -2
  44. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  45. package/fesm2022/acorex-components-chips.mjs +11 -9
  46. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  47. package/fesm2022/acorex-components-circular-progress.mjs +6 -6
  48. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  49. package/fesm2022/acorex-components-collapse.mjs +2 -2
  50. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  51. package/fesm2022/acorex-components-color-box.mjs +11 -4
  52. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  53. package/fesm2022/acorex-components-color-palette.mjs +344 -326
  54. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  55. package/fesm2022/acorex-components-comment.mjs +10 -10
  56. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  57. package/fesm2022/acorex-components-common.mjs +21 -6
  58. package/fesm2022/acorex-components-common.mjs.map +1 -1
  59. package/fesm2022/acorex-components-conversation.mjs +14 -14
  60. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  61. package/fesm2022/acorex-components-cron-job.mjs +2 -2
  62. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  63. package/fesm2022/acorex-components-data-pager.mjs +26 -28
  64. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  65. package/fesm2022/acorex-components-data-table.mjs +4 -4
  66. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  67. package/fesm2022/acorex-components-datetime-box.mjs +2 -3
  68. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  69. package/fesm2022/acorex-components-datetime-input.mjs +2 -2
  70. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  71. package/fesm2022/acorex-components-datetime-picker.mjs +17 -23
  72. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  73. package/fesm2022/acorex-components-decorators.mjs +50 -21
  74. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  75. package/fesm2022/acorex-components-dialog.mjs +10 -3
  76. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  77. package/fesm2022/acorex-components-drawer.mjs +5 -5
  78. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  79. package/fesm2022/acorex-components-dropdown-button.mjs +6 -12
  80. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  81. package/fesm2022/acorex-components-dropdown.mjs +3 -3
  82. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  83. package/fesm2022/acorex-components-file-explorer.mjs +4 -4
  84. package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
  85. package/fesm2022/acorex-components-form.mjs +10 -3
  86. package/fesm2022/acorex-components-form.mjs.map +1 -1
  87. package/fesm2022/acorex-components-grid-layout-builder.mjs +2 -2
  88. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  89. package/fesm2022/acorex-components-image-editor.mjs +42 -57
  90. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  91. package/fesm2022/acorex-components-image.mjs +2 -2
  92. package/fesm2022/acorex-components-image.mjs.map +1 -1
  93. package/fesm2022/acorex-components-json-viewer.mjs +2 -2
  94. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  95. package/fesm2022/acorex-components-kbd.mjs +56 -0
  96. package/fesm2022/acorex-components-kbd.mjs.map +1 -0
  97. package/fesm2022/acorex-components-label.mjs +2 -2
  98. package/fesm2022/acorex-components-label.mjs.map +1 -1
  99. package/fesm2022/acorex-components-list.mjs +2 -2
  100. package/fesm2022/acorex-components-list.mjs.map +1 -1
  101. package/fesm2022/acorex-components-loading-dialog.mjs +2 -2
  102. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  103. package/fesm2022/acorex-components-loading.mjs +4 -4
  104. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  105. package/fesm2022/acorex-components-media-viewer.mjs +5 -5
  106. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  107. package/fesm2022/acorex-components-menu.mjs +6 -6
  108. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  109. package/fesm2022/acorex-components-navbar.mjs +3 -3
  110. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  111. package/fesm2022/acorex-components-notification.mjs +4 -4
  112. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  113. package/fesm2022/acorex-components-number-box.mjs +2 -6
  114. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  115. package/fesm2022/acorex-components-otp.mjs +2 -2
  116. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  117. package/fesm2022/acorex-components-paint.mjs +10 -10
  118. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  119. package/fesm2022/acorex-components-password-box.mjs +4 -4
  120. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  121. package/fesm2022/acorex-components-phone-box.mjs +2 -2
  122. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  123. package/fesm2022/acorex-components-picker.mjs +128 -233
  124. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  125. package/fesm2022/acorex-components-popup.mjs +2 -2
  126. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  127. package/fesm2022/acorex-components-progress-bar.mjs +22 -22
  128. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  129. package/fesm2022/acorex-components-rail-navigation.mjs +3 -3
  130. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  131. package/fesm2022/acorex-components-range-slider.mjs +3 -3
  132. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  133. package/fesm2022/acorex-components-rate-picker.mjs +6 -6
  134. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  135. package/fesm2022/acorex-components-result.mjs +2 -2
  136. package/fesm2022/acorex-components-result.mjs.map +1 -1
  137. package/fesm2022/acorex-components-routing-progress.mjs +2 -2
  138. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  139. package/fesm2022/acorex-components-scheduler.mjs +11 -11
  140. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  141. package/fesm2022/acorex-components-search-box.mjs +19 -10
  142. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  143. package/fesm2022/acorex-components-select-box.mjs +3 -2
  144. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  145. package/fesm2022/acorex-components-selection-list.mjs +2 -2
  146. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  147. package/fesm2022/acorex-components-side-menu.mjs +8 -17
  148. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  149. package/fesm2022/acorex-components-skeleton.mjs +2 -2
  150. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  151. package/fesm2022/acorex-components-slider.mjs +2 -2
  152. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  153. package/fesm2022/acorex-components-sliding-item.mjs +153 -0
  154. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -0
  155. package/fesm2022/acorex-components-step-wizard.mjs +2 -2
  156. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  157. package/fesm2022/acorex-components-switch.mjs +8 -3
  158. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  159. package/fesm2022/acorex-components-tabs.mjs +5 -5
  160. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  161. package/fesm2022/acorex-components-tag.mjs +3 -3
  162. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  163. package/fesm2022/acorex-components-text-area.mjs +6 -3
  164. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  165. package/fesm2022/acorex-components-text-box.mjs +2 -2
  166. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  167. package/fesm2022/acorex-components-time-line.mjs +7 -7
  168. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  169. package/fesm2022/acorex-components-toast.mjs +4 -4
  170. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  171. package/fesm2022/acorex-components-toolbar.mjs +3 -12
  172. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  173. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  174. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  175. package/fesm2022/acorex-components-tree-view.mjs +2 -2
  176. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  177. package/fesm2022/acorex-components-uploader.mjs +6 -6
  178. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  179. package/fesm2022/acorex-components-wysiwyg.mjs +25 -25
  180. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  181. package/form/lib/form.component.d.ts +3 -2
  182. package/image-editor/index.d.ts +0 -1
  183. package/image-editor/lib/image-editor-container/image-editor-container.component.d.ts +22 -3
  184. package/image-editor/lib/image-editor.module.d.ts +16 -17
  185. package/kbd/README.md +3 -0
  186. package/kbd/index.d.ts +3 -0
  187. package/kbd/lib/kbd-item/kbd-item.component.d.ts +7 -0
  188. package/kbd/lib/kbd.component.d.ts +7 -0
  189. package/kbd/lib/kbd.module.d.ts +9 -0
  190. package/loading/lib/loading-spinner.component.d.ts +1 -1
  191. package/menu/lib/menu-item.component.d.ts +2 -1
  192. package/notification/lib/notification.service.d.ts +1 -1
  193. package/package.json +9 -1
  194. package/paint/lib/paint/paint-view/paint-view.component.d.ts +1 -1
  195. package/picker/index.d.ts +3 -2
  196. package/picker/lib/picker-container/picker-container.component.d.ts +7 -0
  197. package/picker/lib/picker-items/picker-items.component.d.ts +20 -0
  198. package/picker/lib/picker-title/picker-title.component.d.ts +5 -0
  199. package/picker/lib/picker.module.d.ts +6 -4
  200. package/progress-bar/lib/progress-bar.component.d.ts +19 -19
  201. package/range-slider/lib/range-slider.component.d.ts +1 -1
  202. package/scheduler/lib/scheduler-month-view.component.d.ts +6 -6
  203. package/search-box/lib/search-box.component.d.ts +5 -1
  204. package/side-menu/lib/side-menu-item/side-menu-item.component.d.ts +3 -6
  205. package/side-menu/lib/side-menu.component.d.ts +1 -2
  206. package/sliding-item/README.md +3 -0
  207. package/sliding-item/index.d.ts +4 -0
  208. package/sliding-item/lib/sliding-item/sliding-item.component.d.ts +13 -0
  209. package/sliding-item/lib/sliding-item-prefix/sliding-item-prefix.component.d.ts +11 -0
  210. package/sliding-item/lib/sliding-item-suffix/sliding-item-suffix.component.d.ts +11 -0
  211. package/sliding-item/lib/sliding-item.module.d.ts +11 -0
  212. package/tabs/lib/tabs.class.d.ts +1 -1
  213. package/text-area/lib/text-area.component.d.ts +5 -1
  214. package/time-line/lib/time-line.component.d.ts +1 -1
  215. package/toast/lib/toast.service.d.ts +1 -1
  216. package/toolbar/lib/toolbar.component.d.ts +1 -3
  217. package/wysiwyg/lib/wysiwyg/wysiwyg-container/wysiwyg-container.component.d.ts +2 -2
  218. package/image-editor/lib/image-editor-toolbar/image-editor-toolbar.component.d.ts +0 -27
  219. package/picker/lib/picker-column.directive.d.ts +0 -16
  220. package/picker/lib/picker.component.d.ts +0 -61
  221. /package/decorators/lib/components/{clear-button.component.d.ts → clear-button/clear-button.component.d.ts} +0 -0
  222. /package/decorators/lib/components/{close-button.component.d.ts → close-button/close-button.component.d.ts} +0 -0
  223. /package/decorators/lib/components/{full-screen-button.component.d.ts → full-screen/full-screen-button.component.d.ts} +0 -0
  224. /package/decorators/lib/components/{icon.component.d.ts → icon/icon.component.d.ts} +0 -0
@@ -23,9 +23,9 @@ import * as i4$1 from '@acorex/components/avatar';
23
23
  import { AXAvatarModule } from '@acorex/components/avatar';
24
24
  import * as i5$1 from '@acorex/components/popover';
25
25
  import { AXPopoverModule } from '@acorex/components/popover';
26
- import * as i5$2 from '@acorex/core/format';
26
+ import * as i7$1 from '@acorex/core/format';
27
27
  import { AXFormatModule } from '@acorex/core/format';
28
- import * as i3$1 from '@acorex/components/range-slider';
28
+ import * as i4$2 from '@acorex/components/range-slider';
29
29
  import { AXRangeSliderModule } from '@acorex/components/range-slider';
30
30
  import { AXFileService, AXFileModule } from '@acorex/core/file';
31
31
  import { HttpClient } from '@angular/common/http';
@@ -322,7 +322,7 @@ class AXConversationInputComponent extends classes((MXInputBaseValueComponent),
322
322
  useExisting: forwardRef(() => AXConversationInputComponent),
323
323
  multi: true,
324
324
  },
325
- ], viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div\n class=\"ax-conversation-input ax-editor-container ax-look-{{ look }}\"\n [class.ax-state-recording]=\"recording()\"\n>\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n @if (hasEmoji()) {\n <div class=\"ax-conversation-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-input-end-side\">\n @if (!value) {\n @if (hasAttachment()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <input\n multiple\n #inputFile\n [accept]=\"acceptFileType()\"\n type=\"file\"\n class=\"ax-attach-input\"\n (change)=\"handleChangeFile($event)\"\n />\n }\n @if (hasVoice()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n }\n } @else {\n <ax-button\n [disabled]=\"isLoading()\"\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n (onClick)=\"handleSendClick()\"\n >\n @if (isLoading()) {\n <ax-loading-spinner color=\"primary\"></ax-loading-spinner>\n } @else {\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n", styles: [".ax-dark .ax-conversation-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-200));border-color:rgba(var(--ax-color-primary-200))}ax-conversation-input{width:100%}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-rounded-border-default)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-color-on-surface))}ax-conversation-input .ax-editor-reply-container{display:flex;padding:.75rem;justify-content:space-between}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
325
+ ], viewQueries: [{ propertyName: "inputFile", first: true, predicate: ["inputFile"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div class=\"ax-conversation-input ax-editor-container ax-{{ look }}\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n @if (hasEmoji()) {\n <div class=\"ax-conversation-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-input-end-side\">\n @if (!value) {\n @if (hasAttachment()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <input\n multiple\n #inputFile\n [accept]=\"acceptFileType()\"\n type=\"file\"\n class=\"ax-attach-input\"\n (change)=\"handleChangeFile($event)\"\n />\n }\n @if (hasVoice()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n }\n } @else {\n <ax-button\n [disabled]=\"isLoading()\"\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n (onClick)=\"handleSendClick()\"\n >\n @if (isLoading()) {\n <ax-loading-spinner color=\"primary\"></ax-loading-spinner>\n } @else {\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n", styles: [".ax-editor-container{--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-height: calc(var(--ax-sys-size-base) * var(--ax-comp-editor-size-ratio));--ax-comp-editor-font-family: inherit;--ax-comp-editor-font-weight: normal;--ax-comp-editor-focus-color: var(--ax-sys-color-primary-500);--ax-comp-editor-padding-y: 0;--ax-comp-editor-button-text-color: var(--ax-sys-color-input-surface-text)}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-size-ratio: .75;--ax-comp-editor-font-size: .675rem;--ax-comp-editor-padding-x: .188rem;--ax-comp-editor-decorator-padding-x: .125rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-size-ratio: .875;--ax-comp-editor-font-size: .75rem;--ax-comp-editor-padding-x: .375rem;--ax-comp-editor-decorator-padding-x: .25rem}.ax-md .ax-editor-container,.ax-editor-container{--ax-comp-editor-size-ratio: 1;--ax-comp-editor-font-size: .875rem;--ax-comp-editor-padding-x: .75rem;--ax-comp-editor-decorator-padding-x: .5rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-size-ratio: 1.125;--ax-comp-editor-font-size: 1rem;--ax-comp-editor-padding-x: .875rem;--ax-comp-editor-decorator-padding-x: .75rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-size-ratio: 1.5;--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-padding-x: 1rem;--ax-comp-editor-decorator-padding-x: .875rem}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-input-surface);--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-button-bg-hover-color: var(--ax-sys-color-surface-high);--ax-comp-editor-border-width: 1px;--ax-comp-editor-box-shadow: inset 0px -1px rgba(var(--ax-comp-editor-border-color))}.ax-editor-container.ax-solid:focus,.ax-editor-container.ax-solid:focus-within,.ax-editor-container.ax-solid:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 1px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-fill{--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: transparent;--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-border-width: 0px}.ax-editor-container.ax-fill:focus,.ax-editor-container.ax-fill:focus-within,.ax-editor-container.ax-fill:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 2px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline:focus,.ax-editor-container.ax-outline:focus-within,.ax-editor-container.ax-outline:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 1px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-flat{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: 0px;--ax-comp-editor-border-width: 0 0 1px 0}.ax-editor-container.ax-flat:focus,.ax-editor-container.ax-flat:focus-within,.ax-editor-container.ax-flat:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 1px 0 0px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container{background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));border-width:var(--ax-comp-editor-border-width, 0);border-color:rgba(var(--ax-comp-editor-border-color));border-radius:var(--ax-comp-editor-border-radius);border-style:solid;display:inline-flex;align-items:center;height:var(--ax-comp-editor-height);width:100%;overflow:hidden;position:relative}.ax-editor-container:focus,.ax-editor-container:focus-within,.ax-editor-container:focus-visible{box-shadow:var(--ax-comp-editor-box-shadow)}.ax-editor-container ax-prefix{max-width:fit-content;font-size:var(--ax-comp-editor-font-size);padding-inline-start:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container ax-clear-button{margin-inline-end:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container ax-suffix{margin-inline-start:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container .ax-input{width:100%;height:100%;font-size:var(--ax-comp-editor-font-size);padding:0;outline-width:0px;padding:0 var(--ax-comp-editor-padding-x);background-color:transparent}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container .ax-input::placeholder{color:rgba(var(--ax-comp-editor-placeholder-color));font-size:calc(var(--ax-comp-editor-font-size))}.ax-editor-container .ax-editor-button{height:var(--ax-comp-editor-button-height, 100%);padding:var(--ax-comp-editor-decorator-button-y, 0) var(--ax-comp-editor-decorator-button-x, .75rem);font-size:var(--ax-comp-editor-button-font-size, 100%);color:rgba(var(--ax-comp-editor-button-text-color),var(--ax-comp-editor-button-text-color-opacity, .6));display:flex;align-items:center;justify-content:center}ax-conversation-input{width:100%}ax-conversation-input .ax-conversation-input{display:flex;align-items:flex-end;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem;background-color:rgb(var(--ax-sys-color-surface))}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-500),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface-high))}ax-conversation-input .ax-editor-reply-container{display:flex;padding:.75rem;justify-content:space-between}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
326
326
  }
327
327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationInputComponent, decorators: [{
328
328
  type: Component,
@@ -335,7 +335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
335
335
  useExisting: forwardRef(() => AXConversationInputComponent),
336
336
  multi: true,
337
337
  },
338
- ], standalone: false, template: "@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div\n class=\"ax-conversation-input ax-editor-container ax-look-{{ look }}\"\n [class.ax-state-recording]=\"recording()\"\n>\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n @if (hasEmoji()) {\n <div class=\"ax-conversation-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-input-end-side\">\n @if (!value) {\n @if (hasAttachment()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <input\n multiple\n #inputFile\n [accept]=\"acceptFileType()\"\n type=\"file\"\n class=\"ax-attach-input\"\n (change)=\"handleChangeFile($event)\"\n />\n }\n @if (hasVoice()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n }\n } @else {\n <ax-button\n [disabled]=\"isLoading()\"\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n (onClick)=\"handleSendClick()\"\n >\n @if (isLoading()) {\n <ax-loading-spinner color=\"primary\"></ax-loading-spinner>\n } @else {\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n", styles: [".ax-dark .ax-conversation-input:focus-within{box-shadow:0 0 0 1px rgba(var(--ax-color-primary-200));border-color:rgba(var(--ax-color-primary-200))}ax-conversation-input{width:100%}ax-conversation-input .ax-conversation-input{display:flex;align-items:center;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-color-danger-500),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-rounded-border-default)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-color-on-surface))}ax-conversation-input .ax-editor-reply-container{display:flex;padding:.75rem;justify-content:space-between}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\n"] }]
338
+ ], standalone: false, template: "@if (replyChat()) {\n <div class=\"ax-editor-reply-container ax-editor-container ax-look-{{ look }}\">\n <div class=\"ax-reply-start\">\n <i class=\"fa-solid fa-reply\"></i>\n @switch (replyChat().type) {\n @case ('text') {\n <p>\n {{ replyChat().content }}\n </p>\n }\n @case ('image') {\n <div class=\"ax-reply-types\">\n <img src=\"{{ replyChat().content }}\" alt=\"\" />\n {{ replyChat().type }}\n </div>\n }\n @case ('video') {\n <div class=\"ax-reply-types\">\n <video src=\"{{ replyChat().content }}\" alt=\"\"></video>\n {{ replyChat().type }}\n </div>\n }\n @case ('file') {\n <div class=\"ax-reply-types\">\n <i class=\"fa-regular fa-folder-open\"></i>\n {{ replyChat().name }}\n </div>\n }\n @default {\n <p>\n {{ replyChat().type }}\n </p>\n }\n }\n </div>\n <i (click)=\"closeReplyHandler()\" class=\"fa-solid fa-xmark ax-cursor-pointer\"></i>\n </div>\n}\n\n<div class=\"ax-conversation-input ax-editor-container ax-{{ look }}\" [class.ax-state-recording]=\"recording()\">\n @if (recording()) {\n <div class=\"ax-conversation-input-start-side\">\n <span class=\"ax-record-dot\"></span>\n <span>{{ recordingService.timer() }}</span>\n </div>\n <div class=\"ax-conversation-input-main-side\">\n <ax-button\n class=\"ax-sm\"\n look=\"blank\"\n color=\"primary\"\n [text]=\"'cancel' | translate | async\"\n (onClick)=\"handleCancelRecordingClick()\"\n ></ax-button>\n </div>\n <div class=\"ax-conversation-input-end-side\">\n <ax-button look=\"solid\" color=\"danger\" class=\"ax-blob ax-sm\" (onClick)=\"handleSendVoiceClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n </ax-button>\n </div>\n } @else {\n @if (hasEmoji()) {\n <div class=\"ax-conversation-input-start-side\">\n <ax-button look=\"blank\" class=\"ax-sm\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-emoji\"></i>\n </ax-icon>\n <ax-dropdown-panel>\n <ng-container>\n <div class=\"ax-emoji-container\">\n <div>\u26A0\uFE0F</div>\n <div>\u27A1\uFE0F</div>\n <div>\uD83D\uDD03</div>\n <div>\uD83D\uDD37</div>\n <div>\uD83E\uDD1A</div>\n <div>\uD83D\uDE02</div>\n <div>\uD83D\uDE0A</div>\n </div>\n </ng-container>\n </ax-dropdown-panel>\n </ax-button>\n </div>\n }\n\n <textarea\n class=\"ax-conversation-input-main-side\"\n oninput='this.style.height = \"\";this.style.height = this.scrollHeight + \"px\"'\n type=\"text\"\n rows=\"1\"\n [id]=\"id\"\n [name]=\"name\"\n [attr.placeholder]=\"placeholder\"\n [attr.maxlength]=\"maxLength()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\"\n [ngModel]=\"value\"\n (ngModelChange)=\"_handleModelChange($event)\"\n [ngModelOptions]=\"{ updateOn: _updateOn }\"\n (keydown)=\"emitOnKeydownEvent($event)\"\n (keyup)=\"emitOnKeyupEvent($event)\"\n (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n >\n </textarea>\n\n <div class=\"ax-conversation-input-end-side\">\n @if (!value) {\n @if (hasAttachment()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleAttachClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-attach\"></i>\n </ax-icon>\n </ax-button>\n <input\n multiple\n #inputFile\n [accept]=\"acceptFileType()\"\n type=\"file\"\n class=\"ax-attach-input\"\n (change)=\"handleChangeFile($event)\"\n />\n }\n @if (hasVoice()) {\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"handleRecordClick()\">\n <ax-icon>\n <i class=\"ax-icon ax-icon-mic\"></i>\n </ax-icon>\n </ax-button>\n }\n } @else {\n <ax-button\n [disabled]=\"isLoading()\"\n look=\"solid\"\n color=\"primary\"\n class=\"ax-sm\"\n (onClick)=\"handleSendClick()\"\n >\n @if (isLoading()) {\n <ax-loading-spinner color=\"primary\"></ax-loading-spinner>\n } @else {\n <ax-icon>\n <i class=\"ax-icon ax-icon-send\"></i>\n </ax-icon>\n }\n </ax-button>\n }\n </div>\n }\n</div>\n", styles: [".ax-editor-container{--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-height: calc(var(--ax-sys-size-base) * var(--ax-comp-editor-size-ratio));--ax-comp-editor-font-family: inherit;--ax-comp-editor-font-weight: normal;--ax-comp-editor-focus-color: var(--ax-sys-color-primary-500);--ax-comp-editor-padding-y: 0;--ax-comp-editor-button-text-color: var(--ax-sys-color-input-surface-text)}.ax-xs .ax-editor-container,.ax-editor-container.ax-xs{--ax-comp-editor-size-ratio: .75;--ax-comp-editor-font-size: .675rem;--ax-comp-editor-padding-x: .188rem;--ax-comp-editor-decorator-padding-x: .125rem}.ax-sm .ax-editor-container,.ax-editor-container.ax-sm{--ax-comp-editor-size-ratio: .875;--ax-comp-editor-font-size: .75rem;--ax-comp-editor-padding-x: .375rem;--ax-comp-editor-decorator-padding-x: .25rem}.ax-md .ax-editor-container,.ax-editor-container{--ax-comp-editor-size-ratio: 1;--ax-comp-editor-font-size: .875rem;--ax-comp-editor-padding-x: .75rem;--ax-comp-editor-decorator-padding-x: .5rem}.ax-lg .ax-editor-container,.ax-editor-container.ax-lg{--ax-comp-editor-size-ratio: 1.125;--ax-comp-editor-font-size: 1rem;--ax-comp-editor-padding-x: .875rem;--ax-comp-editor-decorator-padding-x: .75rem}.ax-xl .ax-editor-container,.ax-editor-container.ax-xl{--ax-comp-editor-size-ratio: 1.5;--ax-comp-editor-font-size: 1.5rem;--ax-comp-editor-padding-x: 1rem;--ax-comp-editor-decorator-padding-x: .875rem}.ax-editor-container.ax-solid{--ax-comp-editor-bg-color: var(--ax-sys-color-input-surface);--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-button-bg-hover-color: var(--ax-sys-color-surface-high);--ax-comp-editor-border-width: 1px;--ax-comp-editor-box-shadow: inset 0px -1px rgba(var(--ax-comp-editor-border-color))}.ax-editor-container.ax-solid:focus,.ax-editor-container.ax-solid:focus-within,.ax-editor-container.ax-solid:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 1px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-fill{--ax-comp-editor-bg-color: var(--ax-sys-color-surface);--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: transparent;--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-border-width: 0px}.ax-editor-container.ax-fill:focus,.ax-editor-container.ax-fill:focus-within,.ax-editor-container.ax-fill:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 2px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-outline{--ax-comp-editor-bg-color: transparent;--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: var(--ax-sys-border-radius);--ax-comp-editor-border-width: 1px}.ax-editor-container.ax-outline:focus,.ax-editor-container.ax-outline:focus-within,.ax-editor-container.ax-outline:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 0px 0 1px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container.ax-flat{--ax-comp-editor-bg-color: 0, 0, 0, 0;--ax-comp-editor-text-color: var(--ax-sys-color-input-surface-text);--ax-comp-editor-placeholder-color: var(--ax-sys-color-input-surface-placeholder);--ax-comp-editor-border-color: var(--ax-sys-color-input-surface-border);--ax-comp-editor-border-radius: 0px;--ax-comp-editor-border-width: 0 0 1px 0}.ax-editor-container.ax-flat:focus,.ax-editor-container.ax-flat:focus-within,.ax-editor-container.ax-flat:focus-visible{--ax-comp-editor-border-color: var(--ax-sys-color-primary-500);--ax-comp-editor-box-shadow: 0px 1px 0 0px rgba(var(--ax-sys-color-primary-500))}.ax-editor-container{background-color:rgba(var(--ax-comp-editor-bg-color));color:rgba(var(--ax-comp-editor-text-color));border-width:var(--ax-comp-editor-border-width, 0);border-color:rgba(var(--ax-comp-editor-border-color));border-radius:var(--ax-comp-editor-border-radius);border-style:solid;display:inline-flex;align-items:center;height:var(--ax-comp-editor-height);width:100%;overflow:hidden;position:relative}.ax-editor-container:focus,.ax-editor-container:focus-within,.ax-editor-container:focus-visible{box-shadow:var(--ax-comp-editor-box-shadow)}.ax-editor-container ax-prefix{max-width:fit-content;font-size:var(--ax-comp-editor-font-size);padding-inline-start:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container ax-clear-button{margin-inline-end:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container ax-suffix{margin-inline-start:var(--ax-comp-editor-decorator-padding-x)}.ax-editor-container .ax-input{width:100%;height:100%;font-size:var(--ax-comp-editor-font-size);padding:0;outline-width:0px;padding:0 var(--ax-comp-editor-padding-x);background-color:transparent}.ax-editor-container .ax-input:focus,.ax-editor-container .ax-input:focus-visible,.ax-editor-container .ax-input:focus-within{outline:none}.ax-editor-container .ax-input::placeholder{color:rgba(var(--ax-comp-editor-placeholder-color));font-size:calc(var(--ax-comp-editor-font-size))}.ax-editor-container .ax-editor-button{height:var(--ax-comp-editor-button-height, 100%);padding:var(--ax-comp-editor-decorator-button-y, 0) var(--ax-comp-editor-decorator-button-x, .75rem);font-size:var(--ax-comp-editor-button-font-size, 100%);color:rgba(var(--ax-comp-editor-button-text-color),var(--ax-comp-editor-button-text-color-opacity, .6));display:flex;align-items:center;justify-content:center}ax-conversation-input{width:100%}ax-conversation-input .ax-conversation-input{display:flex;align-items:flex-end;position:relative;resize:vertical;height:auto;padding:.5rem;font-size:.875rem;background-color:rgb(var(--ax-sys-color-surface))}ax-conversation-input .ax-conversation-input.ax-state-recording{align-items:center;display:grid;grid-template-columns:repeat(3,1fr)}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-start-side{justify-content:flex-start}ax-conversation-input .ax-conversation-input.ax-state-recording .ax-conversation-input-end-side{justify-content:flex-end}ax-conversation-input .ax-conversation-input>textarea{font-size:.875rem;background-color:transparent;max-height:10rem;min-height:1.5rem;line-height:2rem;flex:1 1 auto;height:auto;resize:none}ax-conversation-input .ax-conversation-input>textarea:focus,ax-conversation-input .ax-conversation-input>textarea:focus-visible{outline:unset}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side,ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{display:flex;align-items:center;justify-content:center}ax-conversation-input .ax-conversation-input .ax-conversation-input-start-side{padding-inline-end:.75rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side{flex:1 1 auto;display:flex;align-items:center;justify-content:center;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-main-side::placeholder{font-size:1rem;line-height:2.5rem}ax-conversation-input .ax-conversation-input .ax-conversation-input-end-side{padding-inline-start:.75rem;gap:.5rem}ax-conversation-input .ax-conversation-input .ax-record-dot{display:inline-flex;width:.5rem;height:.5rem;background-color:rgba(var(--ax-sys-color-danger-500));border-radius:999rem;margin-inline-end:.5rem}ax-conversation-input .ax-conversation-input .ax-blob{animation:pulse .75s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-500),.7)}70%{transform:scale(1);box-shadow:0 0 0 10px rgba(var(--ax-sys-color-danger-500),0)}to{transform:scale(1);box-shadow:0 0 rgba(var(--ax-sys-color-danger-500),0)}}ax-conversation-input .ax-conversation-input .ax-attach-input{opacity:0;width:0;height:0;position:absolute}ax-conversation-input .ax-emoji-container{padding:.75rem;gap:.5rem;display:grid;grid-template-columns:repeat(7,1fr)}ax-conversation-input .ax-emoji-container>div{padding:.25rem;cursor:pointer;border-radius:var(--ax-sys-border-radius)}ax-conversation-input .ax-emoji-container>div:hover{background-color:rgba(var(--ax-sys-color-surface-high))}ax-conversation-input .ax-editor-reply-container{display:flex;padding:.75rem;justify-content:space-between}ax-conversation-input .ax-reply-start{display:flex;align-items:center}ax-conversation-input .ax-cursor-pointer{cursor:pointer}ax-conversation-input .ax-reply-types{display:flex;align-items:center}ax-conversation-input .ax-reply-start i{margin-inline-end:1rem}ax-conversation-input .ax-reply-start img,ax-conversation-input .ax-reply-start video{margin-inline-end:.5rem;height:1.75rem;width:1.75rem}\n"] }]
339
339
  }], propDecorators: { inputFile: [{
340
340
  type: ViewChild,
341
341
  args: ['inputFile']
@@ -447,11 +447,11 @@ class AXConversationMessageComponent extends MXBaseComponent {
447
447
  this.conversationService.replyId.set(e);
448
448
  }
449
449
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationMessageComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
450
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationMessageComponent, isStandalone: false, selector: "ax-conversation-message", inputs: { isReply: { classPropertyName: "isReply", publicName: "isReply", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: "chatMessage", publicName: "chatMessage", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (chatMessage().fromId) {\n <ax-avatar [size]=\"36\"></ax-avatar>\n}\n\n@if (isOwn && isReply()) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n", styles: [":root{--ax-message-other-color: rgba(var(--ax-color-primary-500));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-700));--ax-message-other-bar-color: rgba(var(--ax-color-primary-400));--ax-message-other-progress-color: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-100));--ax-message-own-color-fore: rgba(var(--ax-color-primary-700));--ax-message-own-reply-color: rgba(var(--ax-color-primary-200));--ax-message-own-reply-color-fore: rgba(var(--ax-color-primary-800));--ax-message-other-reply-color: rgba(var(--ax-color-primary-700));--ax-message-other-reply-color-fore: white;--ax-message-border-color: rgba(var(--ax-color-primary-800));--ax-message-own-bar-color: rgba(var(--ax-color-primary-200));--ax-message-own-progress-color: rgba(var(--ax-color-primary-700))}ax-conversation-message{display:flex;align-items:flex-end;margin-bottom:.5rem}ax-conversation-message .ax-message-reply-container{border-left:.3rem solid var(--ax-message-border-color);border-radius:.75rem;padding:.75rem;margin-bottom:.25rem}ax-conversation-message .ax-message-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video{width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:var(--ax-message-own-reply-color);color:var(--ax-message-own-reply-color-fore)}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color)}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:var(--ax-message-other-reply-color);color:var(--ax-message-other-reply-color-fore)}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:block;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content;max-width:50%}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:var(--ax-message-own-color);color:var(--ax-message-own-color-fore);justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:var(--ax-message-own-color-fore)}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:var(--ax-message-other-color);color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:var(--ax-message-status-color)}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgba(var(--ax-color-danger-500))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-color-primary-fore))}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"], dependencies: [{ kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "responsiveOn", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "responsiveOnChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4$1.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i5$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$2.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
450
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationMessageComponent, isStandalone: false, selector: "ax-conversation-message", inputs: { isReply: { classPropertyName: "isReply", publicName: "isReply", isSignal: true, isRequired: false, transformFunction: null }, chatMessage: { classPropertyName: "chatMessage", publicName: "chatMessage", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@if (chatMessage().fromId) {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n}\n\n@if (isOwn && isReply()) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n", styles: ["ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-primary-500);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-primary);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-400);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-100);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-700);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-200);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-primary-800);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-700);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-surface-light);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-800);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-200);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-primary-700)}ax-conversation-message{display:flex;align-items:flex-end;margin-bottom:.5rem}ax-conversation-message .ax-message-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;padding:.75rem;margin-bottom:.25rem}ax-conversation-message .ax-message-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video{width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-500));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:block;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content;max-width:50%}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-500))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"], dependencies: [{ kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i1$1.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i1$1.AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4$1.AXAvatarComponent, selector: "ax-avatar", inputs: ["color", "size", "shape", "look"], outputs: ["sizeChange"] }, { kind: "component", type: i5$1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7$1.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
451
451
  }
452
452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationMessageComponent, decorators: [{
453
453
  type: Component,
454
- args: [{ selector: 'ax-conversation-message', encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (chatMessage().fromId) {\n <ax-avatar [size]=\"36\"></ax-avatar>\n}\n\n@if (isOwn && isReply()) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n", styles: [":root{--ax-message-other-color: rgba(var(--ax-color-primary-500));--ax-message-other-color-fore: rgba(var(--ax-color-primary-fore));--ax-message-status-color: rgba(var(--ax-color-primary-700));--ax-message-other-bar-color: rgba(var(--ax-color-primary-400));--ax-message-other-progress-color: rgba(var(--ax-color-primary-fore));--ax-message-own-color: rgba(var(--ax-color-primary-100));--ax-message-own-color-fore: rgba(var(--ax-color-primary-700));--ax-message-own-reply-color: rgba(var(--ax-color-primary-200));--ax-message-own-reply-color-fore: rgba(var(--ax-color-primary-800));--ax-message-other-reply-color: rgba(var(--ax-color-primary-700));--ax-message-other-reply-color-fore: white;--ax-message-border-color: rgba(var(--ax-color-primary-800));--ax-message-own-bar-color: rgba(var(--ax-color-primary-200));--ax-message-own-progress-color: rgba(var(--ax-color-primary-700))}ax-conversation-message{display:flex;align-items:flex-end;margin-bottom:.5rem}ax-conversation-message .ax-message-reply-container{border-left:.3rem solid var(--ax-message-border-color);border-radius:.75rem;padding:.75rem;margin-bottom:.25rem}ax-conversation-message .ax-message-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video{width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:var(--ax-message-own-reply-color);color:var(--ax-message-own-reply-color-fore)}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color)}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:var(--ax-message-other-reply-color);color:var(--ax-message-other-reply-color-fore)}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgba(var(--ax-color-danger-500));color:rgba(var(--ax-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:block;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content;max-width:50%}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:var(--ax-message-own-color);color:var(--ax-message-own-color-fore);justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:var(--ax-message-own-color-fore)}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:var(--ax-message-other-color);color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:var(--ax-message-other-color-fore)}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:var(--ax-message-status-color)}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgba(var(--ax-color-danger-500))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-color-primary-fore))}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"] }]
454
+ args: [{ selector: 'ax-conversation-message', encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (chatMessage().fromId) {\n <ax-avatar color=\"primary\" [size]=\"36\"> </ax-avatar>\n}\n\n@if (isOwn && isReply()) {\n <i (click)=\"replyHandler(chatMessage().id)\" class=\"fa-solid fa-reply ax-cursor-pointer\"></i>\n}\n\n<div\n class=\"ax-message-content\"\n [class.ax-state-own]=\"!chatMessage().fromId\"\n [class.ax-state-other]=\"chatMessage().fromId\"\n>\n <ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n\n <div class=\"ax-chat-message-status\">\n <div class=\"ax-message-prefix\"></div>\n <div>\n <div class=\"ax-message-suffix\"></div>\n <span>\n {{ chatMessage().sendTime | format: 'datetime' : 'HH:mm' | async }}\n </span>\n <span>\n @if (isOwn) {\n @if (chatMessage().deliverTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-check ax-message-status\"></i>\n }\n @if (chatMessage().readTime && chatMessage().sendTime) {\n <i class=\"ax-icon ax-icon-dobble-check ax-message-status\"></i>\n }\n }\n </span>\n </div>\n </div>\n</div>\n\n@if (!chatMessage().sendTime) {\n <ax-button class=\"ax-resend-button ax-xs\" color=\"danger\" #b>\n <ax-icon class=\"ax-icon ax-icon-error\"></ax-icon>\n\n <ax-popover [target]=\"b\" placement=\"bottom-end\" #popover>\n <div class=\"ax-overlay-pane\">\n <ax-content> </ax-content>\n <ax-button-item-list>\n @if (chatMessage().onResendClick) {\n <ax-button-item text=\"Resend\" (onClick)=\"handleResendClick()\">\n <ax-icon class=\"ax-icon ax-icon-reload ax-bold\"></ax-icon>\n </ax-button-item>\n }\n @if (chatMessage().onDeleteClick) {\n <ax-button-item text=\"Delete\" color=\"danger\" (onClick)=\"handleDeleteClick()\">\n <ax-icon class=\"ax-icon ax-icon-clear ax-bold\"></ax-icon>\n </ax-button-item>\n }\n </ax-button-item-list>\n </div>\n </ax-popover>\n </ax-button>\n}\n", styles: ["ax-conversation-container{--ax-comp-conversation-other-color: var(--ax-sys-color-primary-500);--ax-comp-conversation-other-color-fore: var(--ax-sys-color-on-primary);--ax-comp-conversation-status-color: var(--ax-sys-color-on-primary);--ax-comp-conversation-other-bar-color: var(--ax-sys-color-primary-400);--ax-comp-conversation-other-progress-color: var(--ax-sys-color-on-primary);--ax-comp-conversation-own-color: var(--ax-sys-color-primary-100);--ax-comp-conversation-own-color-fore: var(--ax-sys-color-primary-700);--ax-comp-conversation-own-reply-color: var(--ax-sys-color-primary-200);--ax-comp-conversation-own-reply-color-fore: var(--ax-sys-color-primary-800);--ax-comp-conversation-other-reply-color: var(--ax-sys-color-primary-700);--ax-comp-conversation-other-reply-color-fore: var(--ax-sys-color-surface-light);--ax-comp-conversation-border-color: var(--ax-sys-color-primary-800);--ax-comp-conversation-own-bar-color: var(--ax-sys-color-primary-200);--ax-comp-conversation-own-progress-color: var(--ax-sys-color-primary-700)}ax-conversation-message{display:flex;align-items:flex-end;margin-bottom:.5rem}ax-conversation-message .ax-message-reply-container{border-left:.3rem solid rgb(var(--ax-comp-conversation-border-color));border-radius:.75rem;padding:.75rem;margin-bottom:.25rem}ax-conversation-message .ax-message-reply-container .file{display:flex;align-items:center}ax-conversation-message .ax-message-reply-container .file i{margin-inline-end:.5rem}ax-conversation-message .ax-message-reply-container img,ax-conversation-message .ax-message-reply-container video{width:6rem}ax-conversation-message.ax-state-own{justify-content:flex-end}ax-conversation-message.ax-state-own .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-own-color-fore));color:rgb(var(--ax-comp-conversation-own-color))}ax-conversation-message.ax-state-own .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-own-reply-color));color:rgb(var(--ax-comp-conversation-own-reply-color-fore))}ax-conversation-message.ax-state-other .ax-conversation-controller button{background-color:rgb(var(--ax-comp-conversation-other-color-fore));color:rgb(var(--ax-comp-conversation-other-color))}ax-conversation-message.ax-state-other .ax-message-reply-container{background-color:rgb(var(--ax-comp-conversation-other-reply-color));color:rgb(var(--ax-comp-conversation-other-reply-color-fore))}ax-conversation-message .ax-conversation-controller button{width:2.5rem;height:2.5rem;border-radius:999rem;display:flex;align-items:center;justify-content:center}ax-conversation-message .ax-conversation-controller button ax-loading-spinner{display:flex}ax-conversation-message .ax-conversation-controller button.ax-state-error{background-color:rgb(var(--ax-sys-color-danger-500));color:rgb(var(--ax-sys-color-danger-fore))}ax-conversation-message .ax-conversation-controller button>i{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700}ax-conversation-message .ax-message-content{display:block;padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;border-radius:1rem;width:fit-content;max-width:50%}ax-conversation-message .ax-message-content.ax-state-own{border-end-end-radius:0!important;background-color:rgb(var(--ax-comp-conversation-own-color));color:rgb(var(--ax-comp-conversation-own-color-fore));justify-content:flex-end}ax-conversation-message .ax-message-content.ax-state-own .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-own-color-fore))}ax-conversation-message .ax-message-content.ax-state-other{border-end-start-radius:0!important;background-color:rgb(var(--ax-comp-conversation-other-color));color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content.ax-state-other .ax-chat-message-status{color:rgb(var(--ax-comp-conversation-other-color-fore))}ax-conversation-message .ax-message-content .ax-chat-message-status{display:flex;justify-content:space-between;align-items:center;font-size:.75rem}ax-conversation-message .ax-message-content .ax-chat-message-status>div{display:flex;gap:.125rem;align-items:center}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-message-status{color:rgb(var(--ax-comp-conversation-status-color))}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon{font-weight:700;font-size:.875rem}ax-conversation-message .ax-message-content .ax-chat-message-status .ax-icon-error{color:rgb(var(--ax-sys-color-danger-500))}ax-conversation-message .ax-message-content ax-prefix,ax-conversation-message .ax-message-content ax-suffix{display:none}ax-conversation-message .ax-resend-button{border-radius:999rem}ax-conversation-message .ax-cursor-pointer{cursor:pointer}ax-conversation-message .ax-rounded{border-radius:.75rem}ax-conversation-message .ax-message-content p{padding:.75rem;color:rgba(var(--ax-sys-color-on-primary))}@media (min-width: 320px) and (max-width: 640px){ax-conversation-message ax-avatar{display:none!important}ax-conversation-message .ax-message-content{max-width:100%}}\n"] }]
455
455
  }], propDecorators: { __hostClass: [{
456
456
  type: HostBinding,
457
457
  args: ['class']
@@ -597,11 +597,11 @@ class AXConversationMessageAudioComponent extends AXConversationMessageBaseCompo
597
597
  }
598
598
  }
599
599
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationMessageAudioComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
600
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationMessageAudioComponent, isStandalone: false, selector: "ax-conversation-message-audio", usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-range-slider\n class=\"ax-modify-bgSlider\"\n (ngModelChange)=\"clickHandler($event)\"\n [max]=\"duration()\"\n [min]=\"0\"\n mode=\"single\"\n [ngModel]=\"currentTime()\"\n color=\"neutral\"\n>\n</ax-range-slider>\n", styles: [".ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-color-primary-fore));color:rgba(var(--ax-color-neutral-950));border-radius:.2rem;min-width:2rem}.ax-modify-bgSlider{width:14rem;margin:0 1rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i3$1.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$2.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
600
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationMessageAudioComponent, isStandalone: false, selector: "ax-conversation-message-audio", usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <ax-button text=\"{{ audioRate() }}X\" class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></ax-button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-range-slider\n class=\"ax-modify-bgSlider\"\n (ngModelChange)=\"clickHandler($event)\"\n [max]=\"duration()\"\n [min]=\"0\"\n mode=\"single\"\n [ngModel]=\"currentTime()\"\n color=\"secondary\"\n>\n</ax-range-slider>\n", styles: ["ax-conversation-message-audio .ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-sys-color-on-primary));color:rgba(var(--ax-sys-color-secondary-950));border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1$1.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i4$2.AXRangeSliderComponent, selector: "ax-range-slider", inputs: ["disabled", "readonly", "orientation", "color", "values", "mode", "min", "max", "step", "snap", "tooltipMode", "snapMode", "hasStep", "hasSnap", "hasLable", "hasTooltip"], outputs: ["valuesChange"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7$1.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
601
601
  }
602
602
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationMessageAudioComponent, decorators: [{
603
603
  type: Component,
604
- args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\">{{ audioRate() }}X</button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-range-slider\n class=\"ax-modify-bgSlider\"\n (ngModelChange)=\"clickHandler($event)\"\n [max]=\"duration()\"\n [min]=\"0\"\n mode=\"single\"\n [ngModel]=\"currentTime()\"\n color=\"neutral\"\n>\n</ax-range-slider>\n", styles: [".ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-color-primary-fore));color:rgba(var(--ax-color-neutral-950));border-radius:.2rem;min-width:2rem}.ax-modify-bgSlider{width:14rem;margin:0 1rem}\n"] }]
604
+ args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-prefix>\n <div class=\"ax-time-rate\">\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTimeFormat() | format: 'time-duration' | async }}\n }\n @default {\n {{ durationFormat() | format: 'time-duration' | async }}\n }\n }\n <ax-button text=\"{{ audioRate() }}X\" class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></ax-button>\n </div>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n }\n</div>\n<ax-range-slider\n class=\"ax-modify-bgSlider\"\n (ngModelChange)=\"clickHandler($event)\"\n [max]=\"duration()\"\n [min]=\"0\"\n mode=\"single\"\n [ngModel]=\"currentTime()\"\n color=\"secondary\"\n>\n</ax-range-slider>\n", styles: ["ax-conversation-message-audio .ax-time-rate button{margin-inline-start:.3rem;background-color:rgba(var(--ax-sys-color-on-primary));color:rgba(var(--ax-sys-color-secondary-950));border-radius:.2rem;min-width:2rem}ax-conversation-message-audio .ax-modify-bgSlider{width:14rem;margin:0 1rem}.ax-time-rate{display:flex;align-items:center}.ax-audio-speed{--ax-comp-button-font-size: .6rem;--ax-comp-button-padding-x: .1rem;--ax-comp-button-padding-y: .1rem;--ax-comp-button-height: auto;--ax-comp-button-text-padding-x: .5rem;margin-inline-start:.5rem}\n"] }]
605
605
  }], ctorParameters: () => [] });
606
606
 
607
607
  /**
@@ -703,11 +703,11 @@ class AXConversationFileMessageComponent extends AXConversationMessageBaseCompon
703
703
  this.parent.onAction.emit({ component: this, data: this.message, isUserInteraction: true });
704
704
  }
705
705
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationFileMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
706
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationFileMessageComponent, isStandalone: false, selector: "ax-conversation-message-file", usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n", styles: ["ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$2.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
706
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationFileMessageComponent, isStandalone: false, selector: "ax-conversation-message-file", usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'white' : 'warning'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n", styles: ["ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7$1.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
707
707
  }
708
708
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationFileMessageComponent, decorators: [{
709
709
  type: Component,
710
- args: [{ selector: 'ax-conversation-message-file', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n", styles: ["ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
710
+ args: [{ selector: 'ax-conversation-message-file', encapsulation: ViewEncapsulation.None, standalone: false, template: "<ax-prefix>\n {{ fileSize() | format: 'filesize' | async }}\n</ax-prefix>\n<div class=\"ax-file-container\">\n <div class=\"ax-conversation-controller\">\n @switch (fileState()) {\n @case ('ready') {\n <button (click)=\"handleDownloadFile()\">\n <i class=\"ax-icon ax-icon-download\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'white' : 'warning'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n </div>\n\n <div class=\"ax-file-name\">{{ fileName() }}</div>\n</div>\n", styles: ["ax-conversation-message-file .ax-file-container{display:flex;align-items:center;justify-content:center;gap:.5rem}ax-conversation-message-file .ax-file-container .ax-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
711
711
  }], ctorParameters: () => [] });
712
712
 
713
713
  /**
@@ -725,11 +725,11 @@ class ConversationMessageImagePopupComponent {
725
725
  });
726
726
  }
727
727
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ConversationMessageImagePopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
728
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ConversationMessageImagePopupComponent, isStandalone: false, selector: "ax-conversation-message-image-popup", ngImport: i0, template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, isInline: true, styles: [".ax-image-popup-container{display:flex;justify-content:center;align-items:center}.ax-image-popup{width:100%;height:auto;object-fit:cover}\n"] }); }
728
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.3", type: ConversationMessageImagePopupComponent, isStandalone: false, selector: "ax-conversation-message-image-popup", ngImport: i0, template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, isInline: true, styles: ["ax-conversation-message-image-popup .ax-image-popup-container{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{width:100%;height:auto;object-fit:cover}\n"], encapsulation: i0.ViewEncapsulation.None }); }
729
729
  }
730
730
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: ConversationMessageImagePopupComponent, decorators: [{
731
731
  type: Component,
732
- args: [{ selector: 'ax-conversation-message-image-popup', template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, standalone: false, styles: [".ax-image-popup-container{display:flex;justify-content:center;align-items:center}.ax-image-popup{width:100%;height:auto;object-fit:cover}\n"] }]
732
+ args: [{ selector: 'ax-conversation-message-image-popup', template: ` <div class="ax-image-popup-container"><img class="ax-image-popup" [src]="url" alt="" /></div>`, standalone: false, encapsulation: ViewEncapsulation.None, styles: ["ax-conversation-message-image-popup .ax-image-popup-container{display:flex;justify-content:center;align-items:center}ax-conversation-message-image-popup .ax-image-popup{width:100%;height:auto;object-fit:cover}\n"] }]
733
733
  }], ctorParameters: () => [] });
734
734
 
735
735
  /**
@@ -1117,11 +1117,11 @@ class AXConversationVoiceMessageComponent extends AXConversationMessageBaseCompo
1117
1117
  return `${this.message.fromId ? 'ax-state-other' : 'ax-state-own'}`;
1118
1118
  }
1119
1119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationVoiceMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationVoiceMessageComponent, isStandalone: false, selector: "ax-conversation-message-audio", inputs: { message: "message" }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "audio", first: true, predicate: ["a"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">{{ selectedRate() }}X</div>\n</ax-suffix>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}.ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"], dependencies: [{ kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$1.AXAudioWaveComponent, selector: "ax-audio-wave", inputs: ["config"], outputs: ["onStatusChanged"] }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5$2.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
1120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: AXConversationVoiceMessageComponent, isStandalone: false, selector: "ax-conversation-message-audio", inputs: { message: "message" }, host: { properties: { "class": "this.__hostClass" } }, viewQueries: [{ propertyName: "audio", first: true, predicate: ["a"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'white' : 'warning'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">\n {{ selectedRate() }}X\n </div>\n</ax-suffix>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"], dependencies: [{ kind: "component", type: i2.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: i2$1.AXAudioWaveComponent, selector: "ax-audio-wave", inputs: ["config"], outputs: ["onStatusChanged"] }, { kind: "component", type: i5.AXLoadingSpinnerComponent, selector: "ax-loading-spinner", inputs: ["text", "color", "size", "stroke"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7$1.AXFormatPipe, name: "format" }], encapsulation: i0.ViewEncapsulation.None }); }
1121
1121
  }
1122
1122
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXConversationVoiceMessageComponent, decorators: [{
1123
1123
  type: Component,
1124
- args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, inputs: ['message'], standalone: false, template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'var(--ax-other-color)' : 'var(--ax-own-color)'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">{{ selectedRate() }}X</div>\n</ax-suffix>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}.ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"] }]
1124
+ args: [{ selector: 'ax-conversation-message-audio', encapsulation: ViewEncapsulation.None, inputs: ['message'], standalone: false, template: "<ax-prefix>\n @switch (audioState()) {\n @case ('paused') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @case ('playing') {\n {{ currentTime() | format: 'time-duration' | async }}\n }\n @default {\n {{ duration() | format: 'time-duration' | async }}\n }\n }\n <button class=\"ax-audio-speed\" (click)=\"handleRateClick()\"></button>\n</ax-prefix>\n<div class=\"ax-conversation-controller\">\n @switch (audioState()) {\n @case ('playing') {\n <button (click)=\"handlePauseClick()\">\n <i class=\"ax-icon ax-icon-pause\"></i>\n </button>\n }\n\n @case ('ready') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('paused') {\n <button (click)=\"handlePlayClick()\">\n <i class=\"ax-icon ax-icon-play\"></i>\n </button>\n }\n\n @case ('error') {\n <button class=\"ax-state-error\" (click)=\"handleReloadClick()\">\n <i class=\"ax-icon ax-icon-reload\"></i>\n </button>\n }\n\n @default {\n <button (click)=\"handleCancelLoading()\">\n <ax-loading-spinner\n [size]=\"24\"\n [stroke]=\"2\"\n [color]=\"message.fromId ? 'white' : 'warning'\"\n ></ax-loading-spinner>\n </button>\n }\n }\n</div>\n<ax-audio-wave #a [config]=\"config\" (onStatusChanged)=\"handleOnStatusChanged($event)\"></ax-audio-wave>\n<ax-suffix>\n <div class=\"ax-audio-rate-button\" [class.ax-state-own]=\"!message?.fromId\" (click)=\"handleRateClick()\">\n {{ selectedRate() }}X\n </div>\n</ax-suffix>\n", styles: ["ax-conversation-message-audio{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:18rem;max-width:100%}ax-conversation-message-audio .ax-audio-wave{flex:1}ax-conversation-message-audio .ax-audio-rate-button{background-color:var(--ax-message-other-color-fore);color:var(--ax-message-other-color);border-radius:.5rem;padding:0 .5rem;font-weight:700;margin-inline-end:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}ax-conversation-message-audio .ax-audio-rate-button.ax-state-own{background-color:var(--ax-message-own-color-fore);color:var(--ax-message-own-color)}ax-conversation-message-audio html[dir=rtl] ax-conversation-message-audio{flex-direction:row-reverse}\n"] }]
1125
1125
  }], ctorParameters: () => [], propDecorators: { audio: [{
1126
1126
  type: ViewChild,
1127
1127
  args: ['a']