@acorex/components 21.0.3-next.26 → 21.0.3-next.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/conversation/README.md +462 -2
  2. package/conversation/index.d.ts +5386 -471
  3. package/fesm2022/acorex-components-button.mjs +2 -2
  4. package/fesm2022/acorex-components-button.mjs.map +1 -1
  5. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs +13711 -0
  6. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs.map +1 -0
  7. package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs +119 -0
  8. package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs.map +1 -0
  9. package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs +59 -0
  10. package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs.map +1 -0
  11. package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs +432 -0
  12. package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs.map +1 -0
  13. package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs +177 -0
  14. package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs.map +1 -0
  15. package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs +54 -0
  16. package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs.map +1 -0
  17. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs +101 -0
  18. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs.map +1 -0
  19. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs +100 -0
  20. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs.map +1 -0
  21. package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs +121 -0
  22. package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs.map +1 -0
  23. package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs +84 -0
  24. package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs.map +1 -0
  25. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs +238 -0
  26. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs.map +1 -0
  27. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs +1080 -0
  28. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs.map +1 -0
  29. package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs +102 -0
  30. package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs.map +1 -0
  31. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs +90 -0
  32. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs.map +1 -0
  33. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs +1840 -0
  34. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -0
  35. package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs +44 -0
  36. package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs.map +1 -0
  37. package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs +64 -0
  38. package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs.map +1 -0
  39. package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs +468 -0
  40. package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs.map +1 -0
  41. package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs +125 -0
  42. package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs.map +1 -0
  43. package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs +50 -0
  44. package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs.map +1 -0
  45. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs +21 -0
  46. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs.map +1 -0
  47. package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs +77 -0
  48. package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs.map +1 -0
  49. package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs +407 -0
  50. package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs.map +1 -0
  51. package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs +83 -0
  52. package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs.map +1 -0
  53. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs +180 -0
  54. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs.map +1 -0
  55. package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs +266 -0
  56. package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs.map +1 -0
  57. package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs +149 -0
  58. package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs.map +1 -0
  59. package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs +118 -0
  60. package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs.map +1 -0
  61. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs +17 -0
  62. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs.map +1 -0
  63. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs +140 -0
  64. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs.map +1 -0
  65. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs +33 -0
  66. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs.map +1 -0
  67. package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs +172 -0
  68. package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs.map +1 -0
  69. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs +224 -0
  70. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs.map +1 -0
  71. package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs +81 -0
  72. package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs.map +1 -0
  73. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs +91 -0
  74. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs.map +1 -0
  75. package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs +537 -0
  76. package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs.map +1 -0
  77. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs +163 -0
  78. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs.map +1 -0
  79. package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs +68 -0
  80. package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs.map +1 -0
  81. package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs +95 -0
  82. package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs.map +1 -0
  83. package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs +187 -0
  84. package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs.map +1 -0
  85. package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs +170 -0
  86. package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs.map +1 -0
  87. package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs +750 -0
  88. package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs.map +1 -0
  89. package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs +103 -0
  90. package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs.map +1 -0
  91. package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs +55 -0
  92. package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs.map +1 -0
  93. package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs +109 -0
  94. package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs.map +1 -0
  95. package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs +105 -0
  96. package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs.map +1 -0
  97. package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs +62 -0
  98. package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs.map +1 -0
  99. package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs +446 -0
  100. package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs.map +1 -0
  101. package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs +181 -0
  102. package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs.map +1 -0
  103. package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs +54 -0
  104. package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs.map +1 -0
  105. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs +17 -0
  106. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs.map +1 -0
  107. package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs +328 -0
  108. package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs.map +1 -0
  109. package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs +270 -0
  110. package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs.map +1 -0
  111. package/fesm2022/acorex-components-conversation.mjs +1 -1402
  112. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  113. package/package.json +7 -11
  114. package/conversation2/README.md +0 -463
  115. package/conversation2/index.d.ts +0 -6410
  116. package/fesm2022/acorex-components-conversation2.mjs +0 -22331
  117. package/fesm2022/acorex-components-conversation2.mjs.map +0 -1
@@ -0,0 +1,238 @@
1
+ import { AXDecoratorModule } from '@acorex/components/decorators';
2
+ import * as i3 from '@acorex/core/translation';
3
+ import { AXTranslationService, AXTranslationModule } from '@acorex/core/translation';
4
+ import * as i2 from '@angular/common';
5
+ import { CommonModule } from '@angular/common';
6
+ import * as i0 from '@angular/core';
7
+ import { inject, Injector, input, output, computed, ChangeDetectionStrategy, Component } from '@angular/core';
8
+ import { A as AXConversationService, h as AXConversationRegistryComponentOutletComponent } from './acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs';
9
+ import { A as AXConversationAudioAttachmentComponent } from './acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs';
10
+ import { A as AXConversationImageAttachmentComponent } from './acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs';
11
+ import { A as AXConversationVideoAttachmentComponent } from './acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs';
12
+ import { f as filterMessagesByMediaCategory, i as isGridMediaCategory, a as isAttachmentListCategory, b as buildMediaGalleryTiles, g as getMessageVideoItems, c as getMessageAudioItems } from './acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs';
13
+
14
+ /**
15
+ * Shared media browser inside the conversation info panel.
16
+ */
17
+ class AXConversationInfoMediaViewComponent {
18
+ constructor() {
19
+ this.translation = inject(AXTranslationService);
20
+ this.parentInjector = inject(Injector);
21
+ this.category = input.required(...(ngDevMode ? [{ debugName: "category" }] : []));
22
+ this.messages = input.required(...(ngDevMode ? [{ debugName: "messages" }] : []));
23
+ this.conversation = input.required(...(ngDevMode ? [{ debugName: "conversation" }] : []));
24
+ this.conversationServiceInput = input.required(...(ngDevMode ? [{ debugName: "conversationServiceInput", alias: 'conversationService' }] : [{ alias: 'conversationService' }]));
25
+ /** Callback for lazy outlet wiring (alternative to the `back` output). */
26
+ this.onBack = input(undefined, ...(ngDevMode ? [{ debugName: "onBack" }] : []));
27
+ this.back = output();
28
+ this.items = computed(() => filterMessagesByMediaCategory(this.messages(), this.category().id), ...(ngDevMode ? [{ debugName: "items" }] : []));
29
+ this.isGrid = computed(() => isGridMediaCategory(this.category().id), ...(ngDevMode ? [{ debugName: "isGrid" }] : []));
30
+ this.isAttachmentList = computed(() => isAttachmentListCategory(this.category().id), ...(ngDevMode ? [{ debugName: "isAttachmentList" }] : []));
31
+ this.galleryTiles = computed(() => buildMediaGalleryTiles(this.messages(), this.category().id), ...(ngDevMode ? [{ debugName: "galleryTiles" }] : []));
32
+ this.rendererInjector = computed(() => Injector.create({
33
+ providers: [{ provide: AXConversationService, useValue: this.conversationServiceInput() }],
34
+ parent: this.parentInjector,
35
+ }), ...(ngDevMode ? [{ debugName: "rendererInjector" }] : []));
36
+ this.titleLabel = computed(() => this.translation.translateSync(this.category().countLabelKey, {
37
+ params: { count: this.category().count },
38
+ }), ...(ngDevMode ? [{ debugName: "titleLabel" }] : []));
39
+ this.getMessageVideoItems = getMessageVideoItems;
40
+ this.getMessageAudioItems = getMessageAudioItems;
41
+ }
42
+ getRendererComponent(message) {
43
+ const renderer = this.conversationServiceInput().registry.messageRenderers.getRenderer(message);
44
+ return renderer?.component;
45
+ }
46
+ getRendererComponentLoader(message) {
47
+ const renderer = this.conversationServiceInput().registry.messageRenderers.getRenderer(message);
48
+ if (renderer?.componentLoader) {
49
+ return renderer.componentLoader;
50
+ }
51
+ if (!renderer?.component) {
52
+ return () => import('./acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs').then((m) => m.AXConversationFallbackRendererComponent);
53
+ }
54
+ return undefined;
55
+ }
56
+ getRendererInputs(message) {
57
+ return { message };
58
+ }
59
+ formatTimestamp(message) {
60
+ return new Intl.DateTimeFormat(undefined, {
61
+ dateStyle: 'medium',
62
+ timeStyle: 'short',
63
+ }).format(message.timestamp);
64
+ }
65
+ handleBack() {
66
+ this.onBack()?.();
67
+ this.back.emit();
68
+ }
69
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationInfoMediaViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationInfoMediaViewComponent, isStandalone: true, selector: "ax-conversation-info-media-view", inputs: { category: { classPropertyName: "category", publicName: "category", isSignal: true, isRequired: true, transformFunction: null }, messages: { classPropertyName: "messages", publicName: "messages", isSignal: true, isRequired: true, transformFunction: null }, conversation: { classPropertyName: "conversation", publicName: "conversation", isSignal: true, isRequired: true, transformFunction: null }, conversationServiceInput: { classPropertyName: "conversationServiceInput", publicName: "conversationService", isSignal: true, isRequired: true, transformFunction: null }, onBack: { classPropertyName: "onBack", publicName: "onBack", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, ngImport: i0, template: `
71
+ <div class="tg-media-view">
72
+ <header class="tg-media-view__header">
73
+ <button type="button" class="tg-media-view__back" (click)="handleBack()" [attr.aria-label]="'Back'">
74
+ <i class="fa-light fa-arrow-left"></i>
75
+ </button>
76
+ <h3 class="tg-media-view__title">{{ titleLabel() }}</h3>
77
+ </header>
78
+
79
+ @if (items().length === 0) {
80
+ <div class="tg-media-view__empty">
81
+ {{ '@acorex:chat.info-panel.media.empty' | translate | async }}
82
+ </div>
83
+ } @else if (isGrid()) {
84
+ <div class="tg-media-view__grid">
85
+ @for (tile of galleryTiles(); track tile.key) {
86
+ <article
87
+ class="tg-media-view__grid-cell"
88
+ [class.tg-media-view__grid-cell--sticker]="tile.kind === 'sticker'"
89
+ >
90
+ @switch (tile.kind) {
91
+ @case ('image') {
92
+ @if (tile.image; as image) {
93
+ <ax-conversation-image-attachment [item]="image" [alt]="'Photo'" />
94
+ }
95
+ }
96
+ @case ('sticker') {
97
+ @if (tile.stickerUrl) {
98
+ <img
99
+ class="tg-media-view__sticker"
100
+ [src]="tile.stickerUrl"
101
+ [alt]="tile.stickerAlt ?? 'Sticker'"
102
+ loading="lazy"
103
+ />
104
+ }
105
+ }
106
+ }
107
+ </article>
108
+ }
109
+ </div>
110
+ } @else if (isAttachmentList()) {
111
+ <div class="tg-media-view__list">
112
+ @for (message of items(); track message.id) {
113
+ <article class="tg-media-view__list-item">
114
+ <div class="tg-media-view__list-body">
115
+ @if (category().id === 'video') {
116
+ @for (video of getMessageVideoItems(message); track video.mediaId ?? video.url) {
117
+ <ax-conversation-video-attachment [item]="video" />
118
+ }
119
+ } @else {
120
+ @for (audio of getMessageAudioItems(message); track audio.mediaId ?? audio.url) {
121
+ <ax-conversation-audio-attachment [item]="audio" />
122
+ }
123
+ }
124
+ </div>
125
+ <time class="tg-media-view__list-meta">{{ formatTimestamp(message) }}</time>
126
+ </article>
127
+ }
128
+ </div>
129
+ } @else {
130
+ <div class="tg-media-view__list">
131
+ @for (message of items(); track message.id) {
132
+ <article class="tg-media-view__list-item">
133
+ <div class="tg-media-view__list-body">
134
+ <ax-conversation-registry-component-outlet
135
+ [component]="getRendererComponent(message)"
136
+ [componentLoader]="getRendererComponentLoader(message)"
137
+ [inputs]="getRendererInputs(message)"
138
+ />
139
+ </div>
140
+ <time class="tg-media-view__list-meta">{{ formatTimestamp(message) }}</time>
141
+ </article>
142
+ }
143
+ </div>
144
+ }
145
+ </div>
146
+ `, isInline: true, styles: [":host{display:block;width:100%}.tg-media-view{display:flex;flex-direction:column;min-height:12rem;max-height:min(85vh,40rem)}.tg-media-view__header{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));flex-shrink:0}.tg-media-view__back{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;color:rgb(var(--ax-sys-color-primary-500));cursor:pointer}.tg-media-view__back:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__title{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.tg-media-view__empty{padding:2rem 1rem;text-align:center;font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.65}.tg-media-view__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;overflow-y:auto;overscroll-behavior:contain;background:rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__grid-cell{position:relative;aspect-ratio:1;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__grid-cell--sticker{display:flex;align-items:center;justify-content:center;padding:.35rem}.tg-media-view__grid-cell ::ng-deep ax-conversation-image-attachment,.tg-media-view__grid-cell ::ng-deep .ax-conversation-image-attachment{width:100%;height:100%;min-height:0;border-radius:0}.tg-media-view__grid-cell ::ng-deep img{width:100%;height:100%;object-fit:cover}.tg-media-view__sticker{max-width:100%;max-height:100%;object-fit:contain}.tg-media-view__list{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.tg-media-view__list-item{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__list-item:last-child{border-bottom:none}.tg-media-view__list-body{min-width:0;display:flex;flex-direction:column;gap:.5rem}.tg-media-view__list-body ::ng-deep .ax-conversation-msg{max-width:100%}.tg-media-view__list-body ::ng-deep ax-conversation-message-renderer-state{display:none}.tg-media-view__list-body ::ng-deep .ax-conversation-video__player{max-height:min(50vh,16rem)}.tg-media-view__list-meta{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.55}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXConversationRegistryComponentOutletComponent, selector: "ax-conversation-registry-component-outlet", inputs: ["component", "componentLoader", "inputs"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "component", type: AXConversationImageAttachmentComponent, selector: "ax-conversation-image-attachment", inputs: ["item", "alt"] }, { kind: "component", type: AXConversationVideoAttachmentComponent, selector: "ax-conversation-video-attachment", inputs: ["item"], outputs: ["playingChange", "timeUpdate", "durationChange", "playbackEnded", "playbackError"] }, { kind: "component", type: AXConversationAudioAttachmentComponent, selector: "ax-conversation-audio-attachment", inputs: ["item"], outputs: ["playingChange", "timeUpdate", "durationChange", "playbackEnded", "playbackError"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationInfoMediaViewComponent, decorators: [{
149
+ type: Component,
150
+ args: [{ selector: 'ax-conversation-info-media-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
151
+ CommonModule,
152
+ AXConversationRegistryComponentOutletComponent,
153
+ AXDecoratorModule,
154
+ AXTranslationModule,
155
+ AXConversationImageAttachmentComponent,
156
+ AXConversationVideoAttachmentComponent,
157
+ AXConversationAudioAttachmentComponent,
158
+ ], template: `
159
+ <div class="tg-media-view">
160
+ <header class="tg-media-view__header">
161
+ <button type="button" class="tg-media-view__back" (click)="handleBack()" [attr.aria-label]="'Back'">
162
+ <i class="fa-light fa-arrow-left"></i>
163
+ </button>
164
+ <h3 class="tg-media-view__title">{{ titleLabel() }}</h3>
165
+ </header>
166
+
167
+ @if (items().length === 0) {
168
+ <div class="tg-media-view__empty">
169
+ {{ '@acorex:chat.info-panel.media.empty' | translate | async }}
170
+ </div>
171
+ } @else if (isGrid()) {
172
+ <div class="tg-media-view__grid">
173
+ @for (tile of galleryTiles(); track tile.key) {
174
+ <article
175
+ class="tg-media-view__grid-cell"
176
+ [class.tg-media-view__grid-cell--sticker]="tile.kind === 'sticker'"
177
+ >
178
+ @switch (tile.kind) {
179
+ @case ('image') {
180
+ @if (tile.image; as image) {
181
+ <ax-conversation-image-attachment [item]="image" [alt]="'Photo'" />
182
+ }
183
+ }
184
+ @case ('sticker') {
185
+ @if (tile.stickerUrl) {
186
+ <img
187
+ class="tg-media-view__sticker"
188
+ [src]="tile.stickerUrl"
189
+ [alt]="tile.stickerAlt ?? 'Sticker'"
190
+ loading="lazy"
191
+ />
192
+ }
193
+ }
194
+ }
195
+ </article>
196
+ }
197
+ </div>
198
+ } @else if (isAttachmentList()) {
199
+ <div class="tg-media-view__list">
200
+ @for (message of items(); track message.id) {
201
+ <article class="tg-media-view__list-item">
202
+ <div class="tg-media-view__list-body">
203
+ @if (category().id === 'video') {
204
+ @for (video of getMessageVideoItems(message); track video.mediaId ?? video.url) {
205
+ <ax-conversation-video-attachment [item]="video" />
206
+ }
207
+ } @else {
208
+ @for (audio of getMessageAudioItems(message); track audio.mediaId ?? audio.url) {
209
+ <ax-conversation-audio-attachment [item]="audio" />
210
+ }
211
+ }
212
+ </div>
213
+ <time class="tg-media-view__list-meta">{{ formatTimestamp(message) }}</time>
214
+ </article>
215
+ }
216
+ </div>
217
+ } @else {
218
+ <div class="tg-media-view__list">
219
+ @for (message of items(); track message.id) {
220
+ <article class="tg-media-view__list-item">
221
+ <div class="tg-media-view__list-body">
222
+ <ax-conversation-registry-component-outlet
223
+ [component]="getRendererComponent(message)"
224
+ [componentLoader]="getRendererComponentLoader(message)"
225
+ [inputs]="getRendererInputs(message)"
226
+ />
227
+ </div>
228
+ <time class="tg-media-view__list-meta">{{ formatTimestamp(message) }}</time>
229
+ </article>
230
+ }
231
+ </div>
232
+ }
233
+ </div>
234
+ `, styles: [":host{display:block;width:100%}.tg-media-view{display:flex;flex-direction:column;min-height:12rem;max-height:min(85vh,40rem)}.tg-media-view__header{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));flex-shrink:0}.tg-media-view__back{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;color:rgb(var(--ax-sys-color-primary-500));cursor:pointer}.tg-media-view__back:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__title{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.tg-media-view__empty{padding:2rem 1rem;text-align:center;font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.65}.tg-media-view__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;overflow-y:auto;overscroll-behavior:contain;background:rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__grid-cell{position:relative;aspect-ratio:1;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__grid-cell--sticker{display:flex;align-items:center;justify-content:center;padding:.35rem}.tg-media-view__grid-cell ::ng-deep ax-conversation-image-attachment,.tg-media-view__grid-cell ::ng-deep .ax-conversation-image-attachment{width:100%;height:100%;min-height:0;border-radius:0}.tg-media-view__grid-cell ::ng-deep img{width:100%;height:100%;object-fit:cover}.tg-media-view__sticker{max-width:100%;max-height:100%;object-fit:contain}.tg-media-view__list{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.tg-media-view__list-item{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__list-item:last-child{border-bottom:none}.tg-media-view__list-body{min-width:0;display:flex;flex-direction:column;gap:.5rem}.tg-media-view__list-body ::ng-deep .ax-conversation-msg{max-width:100%}.tg-media-view__list-body ::ng-deep ax-conversation-message-renderer-state{display:none}.tg-media-view__list-body ::ng-deep .ax-conversation-video__player{max-height:min(50vh,16rem)}.tg-media-view__list-meta{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.55}\n"] }]
235
+ }] });
236
+
237
+ export { AXConversationInfoMediaViewComponent };
238
+ //# sourceMappingURL=acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/info-bar/components/conversation-info-media-view.component.js"],"sourcesContent":["/**\n * Shared media browser inside the conversation info panel.\n */\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, Injector, input, output } from '@angular/core';\nimport { AXConversationRegistryComponentOutletComponent } from '../../../components/shared/registry-component-outlet.component';\nimport { AXConversationService } from '../../../services';\nimport { AXConversationAudioAttachmentComponent } from '../../message-list/components/shared/audio-attachment.component';\nimport { AXConversationImageAttachmentComponent } from '../../message-list/components/shared/image-attachment.component';\nimport { AXConversationVideoAttachmentComponent } from '../../message-list/components/shared/video-attachment.component';\nimport { buildMediaGalleryTiles, filterMessagesByMediaCategory, getMessageAudioItems, getMessageVideoItems, isAttachmentListCategory, isGridMediaCategory, } from './conversation-info-panel.utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@acorex/core/translation\";\nexport class AXConversationInfoMediaViewComponent {\n constructor() {\n this.translation = inject(AXTranslationService);\n this.parentInjector = inject(Injector);\n this.category = input.required(...(ngDevMode ? [{ debugName: \"category\" }] : []));\n this.messages = input.required(...(ngDevMode ? [{ debugName: \"messages\" }] : []));\n this.conversation = input.required(...(ngDevMode ? [{ debugName: \"conversation\" }] : []));\n this.conversationServiceInput = input.required(...(ngDevMode ? [{ debugName: \"conversationServiceInput\", alias: 'conversationService' }] : [{ alias: 'conversationService' }]));\n /** Callback for lazy outlet wiring (alternative to the `back` output). */\n this.onBack = input(undefined, ...(ngDevMode ? [{ debugName: \"onBack\" }] : []));\n this.back = output();\n this.items = computed(() => filterMessagesByMediaCategory(this.messages(), this.category().id), ...(ngDevMode ? [{ debugName: \"items\" }] : []));\n this.isGrid = computed(() => isGridMediaCategory(this.category().id), ...(ngDevMode ? [{ debugName: \"isGrid\" }] : []));\n this.isAttachmentList = computed(() => isAttachmentListCategory(this.category().id), ...(ngDevMode ? [{ debugName: \"isAttachmentList\" }] : []));\n this.galleryTiles = computed(() => buildMediaGalleryTiles(this.messages(), this.category().id), ...(ngDevMode ? [{ debugName: \"galleryTiles\" }] : []));\n this.rendererInjector = computed(() => Injector.create({\n providers: [{ provide: AXConversationService, useValue: this.conversationServiceInput() }],\n parent: this.parentInjector,\n }), ...(ngDevMode ? [{ debugName: \"rendererInjector\" }] : []));\n this.titleLabel = computed(() => this.translation.translateSync(this.category().countLabelKey, {\n params: { count: this.category().count },\n }), ...(ngDevMode ? [{ debugName: \"titleLabel\" }] : []));\n this.getMessageVideoItems = getMessageVideoItems;\n this.getMessageAudioItems = getMessageAudioItems;\n }\n getRendererComponent(message) {\n const renderer = this.conversationServiceInput().registry.messageRenderers.getRenderer(message);\n return renderer?.component;\n }\n getRendererComponentLoader(message) {\n const renderer = this.conversationServiceInput().registry.messageRenderers.getRenderer(message);\n if (renderer?.componentLoader) {\n return renderer.componentLoader;\n }\n if (!renderer?.component) {\n return () => import('../../message-list/components/fallback-renderer/fallback-renderer.component').then((m) => m.AXConversationFallbackRendererComponent);\n }\n return undefined;\n }\n getRendererInputs(message) {\n return { message };\n }\n formatTimestamp(message) {\n return new Intl.DateTimeFormat(undefined, {\n dateStyle: 'medium',\n timeStyle: 'short',\n }).format(message.timestamp);\n }\n handleBack() {\n this.onBack()?.();\n this.back.emit();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationInfoMediaViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationInfoMediaViewComponent, isStandalone: true, selector: \"ax-conversation-info-media-view\", inputs: { category: { classPropertyName: \"category\", publicName: \"category\", isSignal: true, isRequired: true, transformFunction: null }, messages: { classPropertyName: \"messages\", publicName: \"messages\", isSignal: true, isRequired: true, transformFunction: null }, conversation: { classPropertyName: \"conversation\", publicName: \"conversation\", isSignal: true, isRequired: true, transformFunction: null }, conversationServiceInput: { classPropertyName: \"conversationServiceInput\", publicName: \"conversationService\", isSignal: true, isRequired: true, transformFunction: null }, onBack: { classPropertyName: \"onBack\", publicName: \"onBack\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: \"back\" }, ngImport: i0, template: `\n <div class=\"tg-media-view\">\n <header class=\"tg-media-view__header\">\n <button type=\"button\" class=\"tg-media-view__back\" (click)=\"handleBack()\" [attr.aria-label]=\"'Back'\">\n <i class=\"fa-light fa-arrow-left\"></i>\n </button>\n <h3 class=\"tg-media-view__title\">{{ titleLabel() }}</h3>\n </header>\n\n @if (items().length === 0) {\n <div class=\"tg-media-view__empty\">\n {{ '@acorex:chat.info-panel.media.empty' | translate | async }}\n </div>\n } @else if (isGrid()) {\n <div class=\"tg-media-view__grid\">\n @for (tile of galleryTiles(); track tile.key) {\n <article\n class=\"tg-media-view__grid-cell\"\n [class.tg-media-view__grid-cell--sticker]=\"tile.kind === 'sticker'\"\n >\n @switch (tile.kind) {\n @case ('image') {\n @if (tile.image; as image) {\n <ax-conversation-image-attachment [item]=\"image\" [alt]=\"'Photo'\" />\n }\n }\n @case ('sticker') {\n @if (tile.stickerUrl) {\n <img\n class=\"tg-media-view__sticker\"\n [src]=\"tile.stickerUrl\"\n [alt]=\"tile.stickerAlt ?? 'Sticker'\"\n loading=\"lazy\"\n />\n }\n }\n }\n </article>\n }\n </div>\n } @else if (isAttachmentList()) {\n <div class=\"tg-media-view__list\">\n @for (message of items(); track message.id) {\n <article class=\"tg-media-view__list-item\">\n <div class=\"tg-media-view__list-body\">\n @if (category().id === 'video') {\n @for (video of getMessageVideoItems(message); track video.mediaId ?? video.url) {\n <ax-conversation-video-attachment [item]=\"video\" />\n }\n } @else {\n @for (audio of getMessageAudioItems(message); track audio.mediaId ?? audio.url) {\n <ax-conversation-audio-attachment [item]=\"audio\" />\n }\n }\n </div>\n <time class=\"tg-media-view__list-meta\">{{ formatTimestamp(message) }}</time>\n </article>\n }\n </div>\n } @else {\n <div class=\"tg-media-view__list\">\n @for (message of items(); track message.id) {\n <article class=\"tg-media-view__list-item\">\n <div class=\"tg-media-view__list-body\">\n <ax-conversation-registry-component-outlet\n [component]=\"getRendererComponent(message)\"\n [componentLoader]=\"getRendererComponentLoader(message)\"\n [inputs]=\"getRendererInputs(message)\"\n />\n </div>\n <time class=\"tg-media-view__list-meta\">{{ formatTimestamp(message) }}</time>\n </article>\n }\n </div>\n }\n </div>\n `, isInline: true, styles: [\":host{display:block;width:100%}.tg-media-view{display:flex;flex-direction:column;min-height:12rem;max-height:min(85vh,40rem)}.tg-media-view__header{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));flex-shrink:0}.tg-media-view__back{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;color:rgb(var(--ax-sys-color-primary-500));cursor:pointer}.tg-media-view__back:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__title{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.tg-media-view__empty{padding:2rem 1rem;text-align:center;font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.65}.tg-media-view__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;overflow-y:auto;overscroll-behavior:contain;background:rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__grid-cell{position:relative;aspect-ratio:1;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__grid-cell--sticker{display:flex;align-items:center;justify-content:center;padding:.35rem}.tg-media-view__grid-cell ::ng-deep ax-conversation-image-attachment,.tg-media-view__grid-cell ::ng-deep .ax-conversation-image-attachment{width:100%;height:100%;min-height:0;border-radius:0}.tg-media-view__grid-cell ::ng-deep img{width:100%;height:100%;object-fit:cover}.tg-media-view__sticker{max-width:100%;max-height:100%;object-fit:contain}.tg-media-view__list{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.tg-media-view__list-item{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__list-item:last-child{border-bottom:none}.tg-media-view__list-body{min-width:0;display:flex;flex-direction:column;gap:.5rem}.tg-media-view__list-body ::ng-deep .ax-conversation-msg{max-width:100%}.tg-media-view__list-body ::ng-deep ax-conversation-message-renderer-state{display:none}.tg-media-view__list-body ::ng-deep .ax-conversation-video__player{max-height:min(50vh,16rem)}.tg-media-view__list-meta{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.55}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXConversationRegistryComponentOutletComponent, selector: \"ax-conversation-registry-component-outlet\", inputs: [\"component\", \"componentLoader\", \"inputs\"] }, { kind: \"ngmodule\", type: AXDecoratorModule }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXConversationImageAttachmentComponent, selector: \"ax-conversation-image-attachment\", inputs: [\"item\", \"alt\"] }, { kind: \"component\", type: AXConversationVideoAttachmentComponent, selector: \"ax-conversation-video-attachment\", inputs: [\"item\"], outputs: [\"playingChange\", \"timeUpdate\", \"durationChange\", \"playbackEnded\", \"playbackError\"] }, { kind: \"component\", type: AXConversationAudioAttachmentComponent, selector: \"ax-conversation-audio-attachment\", inputs: [\"item\"], outputs: [\"playingChange\", \"timeUpdate\", \"durationChange\", \"playbackEnded\", \"playbackError\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i2.AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationInfoMediaViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-info-media-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n CommonModule,\n AXConversationRegistryComponentOutletComponent,\n AXDecoratorModule,\n AXTranslationModule,\n AXConversationImageAttachmentComponent,\n AXConversationVideoAttachmentComponent,\n AXConversationAudioAttachmentComponent,\n ], template: `\n <div class=\"tg-media-view\">\n <header class=\"tg-media-view__header\">\n <button type=\"button\" class=\"tg-media-view__back\" (click)=\"handleBack()\" [attr.aria-label]=\"'Back'\">\n <i class=\"fa-light fa-arrow-left\"></i>\n </button>\n <h3 class=\"tg-media-view__title\">{{ titleLabel() }}</h3>\n </header>\n\n @if (items().length === 0) {\n <div class=\"tg-media-view__empty\">\n {{ '@acorex:chat.info-panel.media.empty' | translate | async }}\n </div>\n } @else if (isGrid()) {\n <div class=\"tg-media-view__grid\">\n @for (tile of galleryTiles(); track tile.key) {\n <article\n class=\"tg-media-view__grid-cell\"\n [class.tg-media-view__grid-cell--sticker]=\"tile.kind === 'sticker'\"\n >\n @switch (tile.kind) {\n @case ('image') {\n @if (tile.image; as image) {\n <ax-conversation-image-attachment [item]=\"image\" [alt]=\"'Photo'\" />\n }\n }\n @case ('sticker') {\n @if (tile.stickerUrl) {\n <img\n class=\"tg-media-view__sticker\"\n [src]=\"tile.stickerUrl\"\n [alt]=\"tile.stickerAlt ?? 'Sticker'\"\n loading=\"lazy\"\n />\n }\n }\n }\n </article>\n }\n </div>\n } @else if (isAttachmentList()) {\n <div class=\"tg-media-view__list\">\n @for (message of items(); track message.id) {\n <article class=\"tg-media-view__list-item\">\n <div class=\"tg-media-view__list-body\">\n @if (category().id === 'video') {\n @for (video of getMessageVideoItems(message); track video.mediaId ?? video.url) {\n <ax-conversation-video-attachment [item]=\"video\" />\n }\n } @else {\n @for (audio of getMessageAudioItems(message); track audio.mediaId ?? audio.url) {\n <ax-conversation-audio-attachment [item]=\"audio\" />\n }\n }\n </div>\n <time class=\"tg-media-view__list-meta\">{{ formatTimestamp(message) }}</time>\n </article>\n }\n </div>\n } @else {\n <div class=\"tg-media-view__list\">\n @for (message of items(); track message.id) {\n <article class=\"tg-media-view__list-item\">\n <div class=\"tg-media-view__list-body\">\n <ax-conversation-registry-component-outlet\n [component]=\"getRendererComponent(message)\"\n [componentLoader]=\"getRendererComponentLoader(message)\"\n [inputs]=\"getRendererInputs(message)\"\n />\n </div>\n <time class=\"tg-media-view__list-meta\">{{ formatTimestamp(message) }}</time>\n </article>\n }\n </div>\n }\n </div>\n `, styles: [\":host{display:block;width:100%}.tg-media-view{display:flex;flex-direction:column;min-height:12rem;max-height:min(85vh,40rem)}.tg-media-view__header{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface));flex-shrink:0}.tg-media-view__back{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;border-radius:999px;background:transparent;color:rgb(var(--ax-sys-color-primary-500));cursor:pointer}.tg-media-view__back:hover{background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__title{margin:0;font-size:1rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.tg-media-view__empty{padding:2rem 1rem;text-align:center;font-size:.875rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.65}.tg-media-view__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;overflow-y:auto;overscroll-behavior:contain;background:rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__grid-cell{position:relative;aspect-ratio:1;overflow:hidden;background:rgb(var(--ax-sys-color-lighter-surface))}.tg-media-view__grid-cell--sticker{display:flex;align-items:center;justify-content:center;padding:.35rem}.tg-media-view__grid-cell ::ng-deep ax-conversation-image-attachment,.tg-media-view__grid-cell ::ng-deep .ax-conversation-image-attachment{width:100%;height:100%;min-height:0;border-radius:0}.tg-media-view__grid-cell ::ng-deep img{width:100%;height:100%;object-fit:cover}.tg-media-view__sticker{max-width:100%;max-height:100%;object-fit:contain}.tg-media-view__list{display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain}.tg-media-view__list-item{display:flex;flex-direction:column;gap:.35rem;padding:.75rem 1rem;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.tg-media-view__list-item:last-child{border-bottom:none}.tg-media-view__list-body{min-width:0;display:flex;flex-direction:column;gap:.5rem}.tg-media-view__list-body ::ng-deep .ax-conversation-msg{max-width:100%}.tg-media-view__list-body ::ng-deep ax-conversation-message-renderer-state{display:none}.tg-media-view__list-body ::ng-deep .ax-conversation-video__player{max-height:min(50vh,16rem)}.tg-media-view__list-meta{font-size:.75rem;color:rgb(var(--ax-sys-color-on-surface));opacity:.55}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWluZm8tbWVkaWEtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3BsdWdpbnMvaW5mby1iYXIvY29tcG9uZW50cy9jb252ZXJzYXRpb24taW5mby1tZWRpYS12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFFaEksT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekgsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDekgsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLG9CQUFvQixFQUNwQix3QkFBd0IsRUFDeEIsbUJBQW1CLEdBRXBCLE1BQU0saUNBQWlDLENBQUM7Ozs7QUE0T3pDLE1BQU0sT0FBTyxvQ0FBb0M7SUExT2pEO1FBMk9tQixnQkFBVyxHQUFH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ZCBtZWRpYSBicm93c2VyIGluc2lkZSB0aGUgY29udmVyc2F0aW9uIGluZm8gcGFuZWwuXG4gKi9cblxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0aW9uTW9kdWxlLCBBWFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0b3IsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uUmVnaXN0cnlDb21wb25lbnRPdXRsZXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL3NoYXJlZC9yZWdpc3RyeS1jb21wb25lbnQtb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7IEFYQ29udmVyc2F0aW9uLCBBWE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25BdWRpb0F0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9zaGFyZWQvYXVkaW8tYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25JbWFnZUF0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9zaGFyZWQvaW1hZ2UtYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25WaWRlb0F0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9zaGFyZWQvdmlkZW8tYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgYnVpbGRNZWRpYUdhbGxlcnlUaWxlcyxcbiAgZmlsdGVyTWVzc2FnZXNCeU1lZGlhQ2F0ZWdvcnksXG4gIGdldE1lc3NhZ2VBdWRpb0l0ZW1zLFxuICBnZXRNZXNzYWdlVmlkZW9JdGVtcyxcbiAgaXNBdHRhY2htZW50TGlzdENhdGVnb3J5LFxuICBpc0dyaWRNZWRpYUNhdGVnb3J5LFxuICB0eXBlIEFYQ29udmVyc2F0aW9uTWVkaWFDYXRlZ29yeSxcbn0gZnJvbSAnLi9jb252ZXJzYXRpb24taW5mby1wYW5lbC51dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1pbmZvLW1lZGlhLXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBBWENvbnZlcnNhdGlvblJlZ2lzdHJ5Q29tcG9uZW50T3V0bGV0Q29tcG9uZW50LFxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxuICAgIEFYVHJhbnNsYXRpb25Nb2R1bGUsXG4gICAgQVhDb252ZXJzYXRpb25JbWFnZUF0dGFjaG1lbnRDb21wb25lbnQsXG4gICAgQVhDb252ZXJzYXRpb25WaWRlb0F0dGFjaG1lbnRDb21wb25lbnQsXG4gICAgQVhDb252ZXJzYXRpb25BdWRpb0F0dGFjaG1lbnRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInRnLW1lZGlhLXZpZXdcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19oZWFkZXJcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19iYWNrXCIgKGNsaWNrKT1cImhhbmRsZUJhY2soKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0JhY2snXCI+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS1hcnJvdy1sZWZ0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGgzIGNsYXNzPVwidGctbWVkaWEtdmlld19fdGl0bGVcIj57eyB0aXRsZUxhYmVsKCkgfX08L2gzPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAoaXRlbXMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRnLW1lZGlhLXZpZXdfX2VtcHR5XCI+XG4gICAgICAgICAge3sgJ0BhY29yZXg6Y2hhdC5pbmZvLXBhbmVsLm1lZGlhLmVtcHR5JyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfSBAZWxzZSBpZiAoaXNHcmlkKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRnLW1lZGlhLXZpZXdfX2dyaWRcIj5cbiAgICAgICAgICBAZm9yICh0aWxlIG9mIGdhbGxlcnlUaWxlcygpOyB0cmFjayB0aWxlLmtleSkge1xuICAgICAgICAgICAgPGFydGljbGVcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19ncmlkLWNlbGxcIlxuICAgICAgICAgICAgICBbY2xhc3MudGctbWVkaWEtdmlld19fZ3JpZC1jZWxsLS1zdGlja2VyXT1cInRpbGUua2luZCA9PT0gJ3N0aWNrZXInXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQHN3aXRjaCAodGlsZS5raW5kKSB7XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdpbWFnZScpIHtcbiAgICAgICAgICAgICAgICAgIEBpZiAodGlsZS5pbWFnZTsgYXMgaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgPGF4LWNvbnZlcnNhdGlvbi1pbWFnZS1hdHRhY2htZW50IFtpdGVtXT1cImltYWdlXCIgW2FsdF09XCInUGhvdG8nXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGNhc2UgKCdzdGlja2VyJykge1xuICAgICAgICAgICAgICAgICAgQGlmICh0aWxlLnN0aWNrZXJVcmwpIHtcbiAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGctbWVkaWEtdmlld19fc3RpY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJ0aWxlLnN0aWNrZXJVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwidGlsZS5zdGlja2VyQWx0ID8/ICdTdGlja2VyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9hcnRpY2xlPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIGlmIChpc0F0dGFjaG1lbnRMaXN0KCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInRnLW1lZGlhLXZpZXdfX2xpc3RcIj5cbiAgICAgICAgICBAZm9yIChtZXNzYWdlIG9mIGl0ZW1zKCk7IHRyYWNrIG1lc3NhZ2UuaWQpIHtcbiAgICAgICAgICAgIDxhcnRpY2xlIGNsYXNzPVwidGctbWVkaWEtdmlld19fbGlzdC1pdGVtXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19saXN0LWJvZHlcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGNhdGVnb3J5KCkuaWQgPT09ICd2aWRlbycpIHtcbiAgICAgICAgICAgICAgICAgIEBmb3IgKHZpZGVvIG9mIGdldE1lc3NhZ2VWaWRlb0l0ZW1zKG1lc3NhZ2UpOyB0cmFjayB2aWRlby5tZWRpYUlkID8/IHZpZGVvLnVybCkge1xuICAgICAgICAgICAgICAgICAgICA8YXgtY29udmVyc2F0aW9uLXZpZGVvLWF0dGFjaG1lbnQgW2l0ZW1dPVwidmlkZW9cIiAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgQGZvciAoYXVkaW8gb2YgZ2V0TWVzc2FnZUF1ZGlvSXRlbXMobWVzc2FnZSk7IHRyYWNrIGF1ZGlvLm1lZGlhSWQgPz8gYXVkaW8udXJsKSB7XG4gICAgICAgICAgICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tYXVkaW8tYXR0YWNobWVudCBbaXRlbV09XCJhdWRpb1wiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPHRpbWUgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19saXN0LW1ldGFcIj57eyBmb3JtYXRUaW1lc3RhbXAobWVzc2FnZSkgfX08L3RpbWU+XG4gICAgICAgICAgICA8L2FydGljbGU+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwidGctbWVkaWEtdmlld19fbGlzdFwiPlxuICAgICAgICAgIEBmb3IgKG1lc3NhZ2Ugb2YgaXRlbXMoKTsgdHJhY2sgbWVzc2FnZS5pZCkge1xuICAgICAgICAgICAgPGFydGljbGUgY2xhc3M9XCJ0Zy1tZWRpYS12aWV3X19saXN0LWl0ZW1cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRnLW1lZGlhLXZpZXdfX2xpc3QtYm9keVwiPlxuICAgICAgICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tcmVnaXN0cnktY29tcG9uZW50LW91dGxldFxuICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJnZXRSZW5kZXJlckNvbXBvbmVudChtZXNzYWdlKVwiXG4gICAgICAgICAgICAgICAgICBbY29tcG9uZW50TG9hZGVyXT1cImdldFJlbmRlcmVyQ29tcG9uZW50TG9hZGVyKG1lc3NhZ2UpXCJcbiAgICAgICAgICAgICAgICAgIFtpbnB1dHNdPVwiZ2V0UmVuZGVyZXJJbnB1dHMobWVzc2FnZSlcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8dGltZSBjbGFzcz1cInRnLW1lZGlhLXZpZXdfX2xpc3QtbWV0YVwiPnt7IGZvcm1hdFRpbWVzdGFtcChtZXNzYWdlKSB9fTwvdGltZT5cbiAgICAgICAgICAgIDwvYXJ0aWNsZT5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBtaW4taGVpZ2h0OiAxMnJlbTtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDg1dmgsIDQwcmVtKTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMC41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjY1cmVtIDAuNzVyZW07XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLWJvcmRlci1saWdodC1zdXJmYWNlKSk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fYmFjayB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2JhY2s6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLWxpZ2h0ZXItc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6IHJnYih2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgY29sb3I6IHJnYih2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSkpO1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDMsIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIHBhZGRpbmc6IDJweDtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWF4LXN5cy1jb2xvci1ib3JkZXItbGlnaHQtc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fZ3JpZC1jZWxsIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBhc3BlY3QtcmF0aW86IDE7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYih2YXIoLS1heC1zeXMtY29sb3ItbGlnaHRlci1zdXJmYWNlKSk7XG4gICAgICB9XG5cbiAgICAgIC50Zy1tZWRpYS12aWV3X19ncmlkLWNlbGwtLXN0aWNrZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC4zNXJlbTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2dyaWQtY2VsbCA6Om5nLWRlZXAgYXgtY29udmVyc2F0aW9uLWltYWdlLWF0dGFjaG1lbnQsXG4gICAgICAudGctbWVkaWEtdmlld19fZ3JpZC1jZWxsIDo6bmctZGVlcCAuYXgtY29udmVyc2F0aW9uLWltYWdlLWF0dGFjaG1lbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fZ3JpZC1jZWxsIDo6bmctZGVlcCBpbWcge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX3N0aWNrZXIge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC50Zy1tZWRpYS12aWV3X19saXN0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpbjtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2xpc3QtaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4zNXJlbTtcbiAgICAgICAgcGFkZGluZzogMC43NXJlbSAxcmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiKHZhcigtLWF4LXN5cy1jb2xvci1ib3JkZXItbGlnaHQtc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fbGlzdC1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgfVxuXG4gICAgICAudGctbWVkaWEtdmlld19fbGlzdC1ib2R5IHtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNXJlbTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2xpc3QtYm9keSA6Om5nLWRlZXAgLmF4LWNvbnZlcnNhdGlvbi1tc2cge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIC50Zy1tZWRpYS12aWV3X19saXN0LWJvZHkgOjpuZy1kZWVwIGF4LWNvbnZlcnNhdGlvbi1tZXNzYWdlLXJlbmRlcmVyLXN0YXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2xpc3QtYm9keSA6Om5nLWRlZXAgLmF4LWNvbnZlcnNhdGlvbi12aWRlb19fcGxheWVyIHtcbiAgICAgICAgbWF4LWhlaWdodDogbWluKDUwdmgsIDE2cmVtKTtcbiAgICAgIH1cblxuICAgICAgLnRnLW1lZGlhLXZpZXdfX2xpc3QtbWV0YSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICAgICAgY29sb3I6IHJnYih2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSkpO1xuICAgICAgICBvcGFjaXR5OiAwLjU1O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uSW5mb01lZGlhVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb24gPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICByZWFkb25seSBjYXRlZ29yeSA9IGlucHV0LnJlcXVpcmVkPEFYQ29udmVyc2F0aW9uTWVkaWFDYXRlZ29yeT4oKTtcbiAgcmVhZG9ubHkgbWVzc2FnZXMgPSBpbnB1dC5yZXF1aXJlZDxBWE1lc3NhZ2VbXT4oKTtcbiAgcmVhZG9ubHkgY29udmVyc2F0aW9uID0gaW5wdXQucmVxdWlyZWQ8QVhDb252ZXJzYXRpb24+KCk7XG4gIHJlYWRvbmx5IGNvbnZlcnNhdGlvblNlcnZpY2VJbnB1dCA9IGlucHV0LnJlcXVpcmVkPEFYQ29udmVyc2F0aW9uU2VydmljZT4oeyBhbGlhczogJ2NvbnZlcnNhdGlvblNlcnZpY2UnIH0pO1xuICAvKiogQ2FsbGJhY2sgZm9yIGxhenkgb3V0bGV0IHdpcmluZyAoYWx0ZXJuYXRpdmUgdG8gdGhlIGBiYWNrYCBvdXRwdXQpLiAqL1xuICByZWFkb25seSBvbkJhY2sgPSBpbnB1dDwoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYmFjayA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGl0ZW1zID0gY29tcHV0ZWQoKCkgPT4gZmlsdGVyTWVzc2FnZXNCeU1lZGlhQ2F0ZWdvcnkodGhpcy5tZXNzYWdlcygpLCB0aGlzLmNhdGVnb3J5KCkuaWQpKTtcbiAgcmVhZG9ubHkgaXNHcmlkID0gY29tcHV0ZWQoKCkgPT4gaXNHcmlkTWVkaWFDYXRlZ29yeSh0aGlzLmNhdGVnb3J5KCkuaWQpKTtcbiAgcmVhZG9ubHkgaXNBdHRhY2htZW50TGlzdCA9IGNvbXB1dGVkKCgpID0+IGlzQXR0YWNobWVudExpc3RDYXRlZ29yeSh0aGlzLmNhdGVnb3J5KCkuaWQpKTtcbiAgcmVhZG9ubHkgZ2FsbGVyeVRpbGVzID0gY29tcHV0ZWQoKCkgPT4gYnVpbGRNZWRpYUdhbGxlcnlUaWxlcyh0aGlzLm1lc3NhZ2VzKCksIHRoaXMuY2F0ZWdvcnkoKS5pZCkpO1xuXG4gIHJlYWRvbmx5IHJlbmRlcmVySW5qZWN0b3IgPSBjb21wdXRlZCgoKSA9PlxuICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYQ29udmVyc2F0aW9uU2VydmljZSwgdXNlVmFsdWU6IHRoaXMuY29udmVyc2F0aW9uU2VydmljZUlucHV0KCkgfV0sXG4gICAgICBwYXJlbnQ6IHRoaXMucGFyZW50SW5qZWN0b3IsXG4gICAgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgdGl0bGVMYWJlbCA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKHRoaXMuY2F0ZWdvcnkoKS5jb3VudExhYmVsS2V5LCB7XG4gICAgICBwYXJhbXM6IHsgY291bnQ6IHRoaXMuY2F0ZWdvcnkoKS5jb3VudCB9LFxuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IGdldE1lc3NhZ2VWaWRlb0l0ZW1zID0gZ2V0TWVzc2FnZVZpZGVvSXRlbXM7XG4gIHJlYWRvbmx5IGdldE1lc3NhZ2VBdWRpb0l0ZW1zID0gZ2V0TWVzc2FnZUF1ZGlvSXRlbXM7XG5cbiAgZ2V0UmVuZGVyZXJDb21wb25lbnQobWVzc2FnZTogQVhNZXNzYWdlKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLmNvbnZlcnNhdGlvblNlcnZpY2VJbnB1dCgpLnJlZ2lzdHJ5Lm1lc3NhZ2VSZW5kZXJlcnMuZ2V0UmVuZGVyZXIobWVzc2FnZSk7XG4gICAgcmV0dXJuIHJlbmRlcmVyPy5jb21wb25lbnQ7XG4gIH1cblxuICBnZXRSZW5kZXJlckNvbXBvbmVudExvYWRlcihtZXNzYWdlOiBBWE1lc3NhZ2UpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IHRoaXMuY29udmVyc2F0aW9uU2VydmljZUlucHV0KCkucmVnaXN0cnkubWVzc2FnZVJlbmRlcmVycy5nZXRSZW5kZXJlcihtZXNzYWdlKTtcbiAgICBpZiAocmVuZGVyZXI/LmNvbXBvbmVudExvYWRlcikge1xuICAgICAgcmV0dXJuIHJlbmRlcmVyLmNvbXBvbmVudExvYWRlcjtcbiAgICB9XG4gICAgaWYgKCFyZW5kZXJlcj8uY29tcG9uZW50KSB7XG4gICAgICByZXR1cm4gKCkgPT5cbiAgICAgICAgaW1wb3J0KCcuLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9mYWxsYmFjay1yZW5kZXJlci9mYWxsYmFjay1yZW5kZXJlci5jb21wb25lbnQnKS50aGVuKFxuICAgICAgICAgIChtKSA9PiBtLkFYQ29udmVyc2F0aW9uRmFsbGJhY2tSZW5kZXJlckNvbXBvbmVudCxcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFJlbmRlcmVySW5wdXRzKG1lc3NhZ2U6IEFYTWVzc2FnZSkge1xuICAgIHJldHVybiB7IG1lc3NhZ2UgfTtcbiAgfVxuXG4gIGZvcm1hdFRpbWVzdGFtcChtZXNzYWdlOiBBWE1lc3NhZ2UpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCh1bmRlZmluZWQsIHtcbiAgICAgIGRhdGVTdHlsZTogJ21lZGl1bScsXG4gICAgICB0aW1lU3R5bGU6ICdzaG9ydCcsXG4gICAgfSkuZm9ybWF0KG1lc3NhZ2UudGltZXN0YW1wKTtcbiAgfVxuXG4gIGhhbmRsZUJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5vbkJhY2soKT8uKCk7XG4gICAgdGhpcy5iYWNrLmVtaXQoKTtcbiAgfVxufVxuIl19"],"names":["i1","i2"],"mappings":"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"}