@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.
- package/conversation/README.md +462 -2
- package/conversation/index.d.ts +5386 -471
- package/fesm2022/acorex-components-button.mjs +2 -2
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs +13711 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs +119 -0
- package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs +59 -0
- package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs +432 -0
- package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs +177 -0
- package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs +54 -0
- package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs +101 -0
- package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs +100 -0
- package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs +121 -0
- package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs +84 -0
- package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs +238 -0
- package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs +1080 -0
- package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs +102 -0
- package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs +90 -0
- package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs +1840 -0
- package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs +44 -0
- package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs +64 -0
- package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs +468 -0
- package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs +125 -0
- package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs +50 -0
- package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs +21 -0
- package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs +77 -0
- package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs +407 -0
- package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs +83 -0
- package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs +180 -0
- package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs +266 -0
- package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs +149 -0
- package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs +118 -0
- package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs +17 -0
- package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs +140 -0
- package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs +33 -0
- package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs +172 -0
- package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs +224 -0
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs +81 -0
- package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs +91 -0
- package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs +537 -0
- package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs +163 -0
- package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs +68 -0
- package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs +95 -0
- package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs +187 -0
- package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs +170 -0
- package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs +750 -0
- package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs +103 -0
- package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs +55 -0
- package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs +109 -0
- package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs +105 -0
- package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs +62 -0
- package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs +446 -0
- package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs +181 -0
- package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs +54 -0
- package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs +17 -0
- package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs +328 -0
- package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs +270 -0
- package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation.mjs +1 -1402
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/package.json +7 -11
- package/conversation2/README.md +0 -463
- package/conversation2/index.d.ts +0 -6410
- package/fesm2022/acorex-components-conversation2.mjs +0 -22331
- package/fesm2022/acorex-components-conversation2.mjs.map +0 -1
package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs
ADDED
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { AXComponentCloseEvent, AXClosableComponent } from '@acorex/cdk/common';
|
|
2
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { inject, input, computed, EventEmitter, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
|
+
|
|
6
|
+
class AXConversationComposerActionChoiceDialogComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.translation = inject(AXTranslationService);
|
|
9
|
+
this.actions = input.required(...(ngDevMode ? [{ debugName: "actions" }] : []));
|
|
10
|
+
this.fileCount = input(1, ...(ngDevMode ? [{ debugName: "fileCount" }] : []));
|
|
11
|
+
this.composerActionRegistry = input.required(...(ngDevMode ? [{ debugName: "composerActionRegistry" }] : []));
|
|
12
|
+
this.__popup__ = input(...(ngDevMode ? [undefined, { debugName: "__popup__" }] : []));
|
|
13
|
+
this.hintText = computed(() => {
|
|
14
|
+
const count = this.fileCount();
|
|
15
|
+
if (count === 1) {
|
|
16
|
+
return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-single');
|
|
17
|
+
}
|
|
18
|
+
return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-multiple', {
|
|
19
|
+
params: { count },
|
|
20
|
+
});
|
|
21
|
+
}, ...(ngDevMode ? [{ debugName: "hintText" }] : []));
|
|
22
|
+
this.onClosed = new EventEmitter();
|
|
23
|
+
}
|
|
24
|
+
getActionLabel(action) {
|
|
25
|
+
return this.composerActionRegistry().getActionLabel(action);
|
|
26
|
+
}
|
|
27
|
+
getActionTooltip(action) {
|
|
28
|
+
return this.composerActionRegistry().getActionTooltip(action);
|
|
29
|
+
}
|
|
30
|
+
choose(action) {
|
|
31
|
+
const event = new AXComponentCloseEvent();
|
|
32
|
+
event.component = this;
|
|
33
|
+
event.data = action;
|
|
34
|
+
this.onClosed.emit(event);
|
|
35
|
+
}
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
37
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationComposerActionChoiceDialogComponent, isStandalone: true, selector: "ax-conversation-composer-action-choice-dialog", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null }, fileCount: { classPropertyName: "fileCount", publicName: "fileCount", isSignal: true, isRequired: false, transformFunction: null }, composerActionRegistry: { classPropertyName: "composerActionRegistry", publicName: "composerActionRegistry", isSignal: true, isRequired: true, transformFunction: null }, __popup__: { classPropertyName: "__popup__", publicName: "__popup__", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], ngImport: i0, template: `
|
|
38
|
+
<div class="composer-action-choice" role="dialog" aria-modal="true">
|
|
39
|
+
<p class="composer-action-choice__hint">{{ hintText() }}</p>
|
|
40
|
+
<ul class="composer-action-choice__list" role="listbox">
|
|
41
|
+
@for (action of actions(); track action.id) {
|
|
42
|
+
<li role="presentation">
|
|
43
|
+
<button
|
|
44
|
+
type="button"
|
|
45
|
+
class="composer-action-choice__option"
|
|
46
|
+
role="option"
|
|
47
|
+
(click)="choose(action)"
|
|
48
|
+
[attr.aria-label]="getActionLabel(action)"
|
|
49
|
+
>
|
|
50
|
+
<span class="composer-action-choice__icon" aria-hidden="true">
|
|
51
|
+
<i [class]="action.icon"></i>
|
|
52
|
+
</span>
|
|
53
|
+
<span class="composer-action-choice__text">
|
|
54
|
+
<span class="composer-action-choice__title">{{ getActionLabel(action) }}</span>
|
|
55
|
+
@if (getActionTooltip(action); as tip) {
|
|
56
|
+
<span class="composer-action-choice__subtitle">{{ tip }}</span>
|
|
57
|
+
}
|
|
58
|
+
</span>
|
|
59
|
+
<i class="fa-light fa-chevron-right composer-action-choice__chevron" aria-hidden="true"></i>
|
|
60
|
+
</button>
|
|
61
|
+
</li>
|
|
62
|
+
}
|
|
63
|
+
</ul>
|
|
64
|
+
</div>
|
|
65
|
+
`, isInline: true, styles: [":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'ax-conversation-composer-action-choice-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
70
|
+
<div class="composer-action-choice" role="dialog" aria-modal="true">
|
|
71
|
+
<p class="composer-action-choice__hint">{{ hintText() }}</p>
|
|
72
|
+
<ul class="composer-action-choice__list" role="listbox">
|
|
73
|
+
@for (action of actions(); track action.id) {
|
|
74
|
+
<li role="presentation">
|
|
75
|
+
<button
|
|
76
|
+
type="button"
|
|
77
|
+
class="composer-action-choice__option"
|
|
78
|
+
role="option"
|
|
79
|
+
(click)="choose(action)"
|
|
80
|
+
[attr.aria-label]="getActionLabel(action)"
|
|
81
|
+
>
|
|
82
|
+
<span class="composer-action-choice__icon" aria-hidden="true">
|
|
83
|
+
<i [class]="action.icon"></i>
|
|
84
|
+
</span>
|
|
85
|
+
<span class="composer-action-choice__text">
|
|
86
|
+
<span class="composer-action-choice__title">{{ getActionLabel(action) }}</span>
|
|
87
|
+
@if (getActionTooltip(action); as tip) {
|
|
88
|
+
<span class="composer-action-choice__subtitle">{{ tip }}</span>
|
|
89
|
+
}
|
|
90
|
+
</span>
|
|
91
|
+
<i class="fa-light fa-chevron-right composer-action-choice__chevron" aria-hidden="true"></i>
|
|
92
|
+
</button>
|
|
93
|
+
</li>
|
|
94
|
+
}
|
|
95
|
+
</ul>
|
|
96
|
+
</div>
|
|
97
|
+
`, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], styles: [":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\n"] }]
|
|
98
|
+
}] });
|
|
99
|
+
|
|
100
|
+
export { AXConversationComposerActionChoiceDialogComponent };
|
|
101
|
+
//# sourceMappingURL=acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs","sources":["../tmp-esm2022/conversation/lib/components/message-list/composer-action-choice-dialog.component.js"],"sourcesContent":["import { AXClosableComponent, AXComponentCloseEvent } from '@acorex/cdk/common';\nimport { AXTranslationService } from '@acorex/core/translation';\nimport { ChangeDetectionStrategy, Component, EventEmitter, computed, inject, input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationComposerActionChoiceDialogComponent {\n constructor() {\n this.translation = inject(AXTranslationService);\n this.actions = input.required(...(ngDevMode ? [{ debugName: \"actions\" }] : []));\n this.fileCount = input(1, ...(ngDevMode ? [{ debugName: \"fileCount\" }] : []));\n this.composerActionRegistry = input.required(...(ngDevMode ? [{ debugName: \"composerActionRegistry\" }] : []));\n this.__popup__ = input(...(ngDevMode ? [undefined, { debugName: \"__popup__\" }] : []));\n this.hintText = computed(() => {\n const count = this.fileCount();\n if (count === 1) {\n return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-single');\n }\n return this.translation.translateSync('@acorex:chat.dialog.choose-send-option.hint-multiple', {\n params: { count },\n });\n }, ...(ngDevMode ? [{ debugName: \"hintText\" }] : []));\n this.onClosed = new EventEmitter();\n }\n getActionLabel(action) {\n return this.composerActionRegistry().getActionLabel(action);\n }\n getActionTooltip(action) {\n return this.composerActionRegistry().getActionTooltip(action);\n }\n choose(action) {\n const event = new AXComponentCloseEvent();\n event.component = this;\n event.data = action;\n this.onClosed.emit(event);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationComposerActionChoiceDialogComponent, isStandalone: true, selector: \"ax-conversation-composer-action-choice-dialog\", inputs: { actions: { classPropertyName: \"actions\", publicName: \"actions\", isSignal: true, isRequired: true, transformFunction: null }, fileCount: { classPropertyName: \"fileCount\", publicName: \"fileCount\", isSignal: true, isRequired: false, transformFunction: null }, composerActionRegistry: { classPropertyName: \"composerActionRegistry\", publicName: \"composerActionRegistry\", isSignal: true, isRequired: true, transformFunction: null }, __popup__: { classPropertyName: \"__popup__\", publicName: \"__popup__\", isSignal: true, isRequired: false, transformFunction: null } }, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], ngImport: i0, template: `\n <div class=\"composer-action-choice\" role=\"dialog\" aria-modal=\"true\">\n <p class=\"composer-action-choice__hint\">{{ hintText() }}</p>\n <ul class=\"composer-action-choice__list\" role=\"listbox\">\n @for (action of actions(); track action.id) {\n <li role=\"presentation\">\n <button\n type=\"button\"\n class=\"composer-action-choice__option\"\n role=\"option\"\n (click)=\"choose(action)\"\n [attr.aria-label]=\"getActionLabel(action)\"\n >\n <span class=\"composer-action-choice__icon\" aria-hidden=\"true\">\n <i [class]=\"action.icon\"></i>\n </span>\n <span class=\"composer-action-choice__text\">\n <span class=\"composer-action-choice__title\">{{ getActionLabel(action) }}</span>\n @if (getActionTooltip(action); as tip) {\n <span class=\"composer-action-choice__subtitle\">{{ tip }}</span>\n }\n </span>\n <i class=\"fa-light fa-chevron-right composer-action-choice__chevron\" aria-hidden=\"true\"></i>\n </button>\n </li>\n }\n </ul>\n </div>\n `, isInline: true, styles: [\":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationComposerActionChoiceDialogComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-composer-action-choice-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: `\n <div class=\"composer-action-choice\" role=\"dialog\" aria-modal=\"true\">\n <p class=\"composer-action-choice__hint\">{{ hintText() }}</p>\n <ul class=\"composer-action-choice__list\" role=\"listbox\">\n @for (action of actions(); track action.id) {\n <li role=\"presentation\">\n <button\n type=\"button\"\n class=\"composer-action-choice__option\"\n role=\"option\"\n (click)=\"choose(action)\"\n [attr.aria-label]=\"getActionLabel(action)\"\n >\n <span class=\"composer-action-choice__icon\" aria-hidden=\"true\">\n <i [class]=\"action.icon\"></i>\n </span>\n <span class=\"composer-action-choice__text\">\n <span class=\"composer-action-choice__title\">{{ getActionLabel(action) }}</span>\n @if (getActionTooltip(action); as tip) {\n <span class=\"composer-action-choice__subtitle\">{{ tip }}</span>\n }\n </span>\n <i class=\"fa-light fa-chevron-right composer-action-choice__chevron\" aria-hidden=\"true\"></i>\n </button>\n </li>\n }\n </ul>\n </div>\n `, providers: [{ provide: AXClosableComponent, useExisting: AXConversationComposerActionChoiceDialogComponent }], styles: [\":host{display:block}.composer-action-choice{display:flex;flex-direction:column;gap:.75rem;padding:.5rem;min-width:16rem}.composer-action-choice__hint{margin:0;font-size:.8125rem;line-height:1.45;color:rgba(var(--ax-sys-color-on-surface),.7)}.composer-action-choice__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.composer-action-choice__option{display:flex;align-items:center;gap:.75rem;width:100%;padding:.625rem .75rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .5rem);background:rgb(var(--ax-sys-color-surface));cursor:pointer;text-align:start;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.composer-action-choice__option:hover,.composer-action-choice__option:focus-visible{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06);outline:none;box-shadow:0 0 0 1px rgba(var(--ax-sys-color-primary-500),.25)}.composer-action-choice__icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border-radius:var(--ax-sys-border-radius, .375rem);background:rgba(var(--ax-sys-color-primary-500),.1);color:rgb(var(--ax-sys-color-primary-600));font-size:1.125rem}.composer-action-choice__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.composer-action-choice__title{font-size:.875rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.composer-action-choice__subtitle{font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composer-action-choice__chevron{flex-shrink:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.45)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZXItYWN0aW9uLWNob2ljZS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9jb21wb25lbnRzL21lc3NhZ2UtbGlzdC9jb21wb3Nlci1hY3Rpb24tY2hvaWNlLWRpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFaEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBc0kxRyxNQUFNLE9BQU8saURBQWlEO0lBbkk5RDtRQW9JbUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVuRCxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsa0RBQWtDLENBQUM7UUFDM0QsY0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLHFEQUFDLENBQUM7UUFDckIsMkJBQXNCLEdBQUcsS0FBSyxDQUFDLFFBQVEsaUVBQXdDLENBQUM7UUFDaEYsY0FBUyxHQUFHLEtBQUssK0RBQTBCLENBQUM7UUFFNUMsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLG9EQUFvRCxDQUFDLENBQUM7WUFDOUYsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsc0RBQXNELEVBQUU7Z0JBQzVGLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDLG9EQUFDLENBQUM7UUFFTSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7S0FnQi9EO0lBZEMsY0FBYyxDQUFDLE1BQW9DO1FBQ2pELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFvQztRQUNuRCxPQUFPLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBb0M7UUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQzFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBakNVLGlEQUFpRDtrR0FBakQsaURBQWlELHVwQkFGakQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsaURBQWlELEVBQUUsQ0FBQywwQkE5SG5HOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJUOzsyRkFvR1UsaURBQWlEO2tCQW5JN0QsU0FBUzsrQkFDRSwrQ0FBK0MsbUJBQ3hDLHVCQUF1QixDQUFDLE1BQU0sWUFDckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0QlQsYUFrR1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLG1EQUFtRCxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsb3NhYmxlQ29tcG9uZW50LCBBWENvbXBvbmVudENsb3NlRXZlbnQgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHR5cGUgeyBBWFBvcHVwUmVmIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcHVwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQVhDb252ZXJzYXRpb25Db21wb3NlckFjdGlvbiwgQVhDb252ZXJzYXRpb25Db21wb3NlckFjdGlvblJlZ2lzdHJ5IH0gZnJvbSAnLi4vLi4vcmVnaXN0cmllcy9jb21wb3Nlci1hY3Rpb24ucmVnaXN0cnknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tY29tcG9zZXItYWN0aW9uLWNob2ljZS1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiY29tcG9zZXItYWN0aW9uLWNob2ljZVwiIHJvbGU9XCJkaWFsb2dcIiBhcmlhLW1vZGFsPVwidHJ1ZVwiPlxuICAgICAgPHAgY2xhc3M9XCJjb21wb3Nlci1hY3Rpb24tY2hvaWNlX19oaW50XCI+e3sgaGludFRleHQoKSB9fTwvcD5cbiAgICAgIDx1bCBjbGFzcz1cImNvbXBvc2VyLWFjdGlvbi1jaG9pY2VfX2xpc3RcIiByb2xlPVwibGlzdGJveFwiPlxuICAgICAgICBAZm9yIChhY3Rpb24gb2YgYWN0aW9ucygpOyB0cmFjayBhY3Rpb24uaWQpIHtcbiAgICAgICAgICA8bGkgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb21wb3Nlci1hY3Rpb24tY2hvaWNlX19vcHRpb25cIlxuICAgICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNob29zZShhY3Rpb24pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXRBY3Rpb25MYWJlbChhY3Rpb24pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21wb3Nlci1hY3Rpb24tY2hvaWNlX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImFjdGlvbi5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcG9zZXItYWN0aW9uLWNob2ljZV9fdGV4dFwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcG9zZXItYWN0aW9uLWNob2ljZV9fdGl0bGVcIj57eyBnZXRBY3Rpb25MYWJlbChhY3Rpb24pIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIEBpZiAoZ2V0QWN0aW9uVG9vbHRpcChhY3Rpb24pOyBhcyB0aXApIHtcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29tcG9zZXItYWN0aW9uLWNob2ljZV9fc3VidGl0bGVcIj57eyB0aXAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtY2hldnJvbi1yaWdodCBjb21wb3Nlci1hY3Rpb24tY2hvaWNlX19jaGV2cm9uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfVxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmNvbXBvc2VyLWFjdGlvbi1jaG9pY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgbWluLXdpZHRoOiAxNnJlbTtcbiAgICAgIH1cblxuICAgICAgLmNvbXBvc2VyLWFjdGlvbi1jaG9pY2VfX2hpbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICAgICAgY29sb3I6IHJnYmEodmFyKC0tYXgtc3lzLWNvbG9yLW9uLXN1cmZhY2UpLCAwLjcpO1xuICAgICAgfVxuXG4gICAgICAuY29tcG9zZXItYWN0aW9uLWNob2ljZV9fbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAwLjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jb21wb3Nlci1hY3Rpb24tY2hvaWNlX19vcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjYyNXJlbSAwLjc1cmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLWJvcmRlci1saWdodC1zdXJmYWNlKSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF4LXN5cy1ib3JkZXItcmFkaXVzLCAwLjVyZW0pO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXN1cmZhY2UpKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2UsXG4gICAgICAgICAgYm94LXNoYWRvdyAwLjE1cyBlYXNlO1xuICAgICAgfVxuXG4gICAgICAuY29tcG9zZXItYWN0aW9uLWNob2ljZV9fb3B0aW9uOmhvdmVyLFxuICAgICAgLmNvbXBvc2VyLWFjdGlvbi1jaG9pY2VfX29wdGlvbjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSwgMC4wNik7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCByZ2JhKHZhcigtLWF4LXN5cy1jb2xvci1wcmltYXJ5LTUwMCksIDAuMjUpO1xuICAgICAgfVxuXG4gICAgICAuY29tcG9zZXItYWN0aW9uLWNob2ljZV9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF4LXN5cy1ib3JkZXItcmFkaXVzLCAwLjM3NXJlbSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSwgMC4xKTtcbiAgICAgICAgY29sb3I6IHJnYih2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS02MDApKTtcbiAgICAgICAgZm9udC1zaXplOiAxLjEyNXJlbTtcbiAgICAgIH1cblxuICAgICAgLmNvbXBvc2VyLWFjdGlvbi1jaG9pY2VfX3RleHQge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4xMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5jb21wb3Nlci1hY3Rpb24tY2hvaWNlX190aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLW9uLXN1cmZhY2UpKTtcbiAgICAgIH1cblxuICAgICAgLmNvbXBvc2VyLWFjdGlvbi1jaG9pY2VfX3N1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSksIDAuNik7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgfVxuXG4gICAgICAuY29tcG9zZXItYWN0aW9uLWNob2ljZV9fY2hldnJvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWF4LXN5cy1jb2xvci1vbi1zdXJmYWNlKSwgMC40NSk7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBBWENsb3NhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhDb252ZXJzYXRpb25Db21wb3NlckFjdGlvbkNob2ljZURpYWxvZ0NvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25Db21wb3NlckFjdGlvbkNob2ljZURpYWxvZ0NvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRpb24gPSBpbmplY3QoQVhUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBpbnB1dC5yZXF1aXJlZDxBWENvbnZlcnNhdGlvbkNvbXBvc2VyQWN0aW9uW10+KCk7XG4gIHJlYWRvbmx5IGZpbGVDb3VudCA9IGlucHV0KDEpO1xuICByZWFkb25seSBjb21wb3NlckFjdGlvblJlZ2lzdHJ5ID0gaW5wdXQucmVxdWlyZWQ8QVhDb252ZXJzYXRpb25Db21wb3NlckFjdGlvblJlZ2lzdHJ5PigpO1xuICByZWFkb25seSBfX3BvcHVwX18gPSBpbnB1dDxBWFBvcHVwUmVmIHwgdW5kZWZpbmVkPigpO1xuXG4gIHJlYWRvbmx5IGhpbnRUZXh0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5maWxlQ291bnQoKTtcbiAgICBpZiAoY291bnQgPT09IDEpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5kaWFsb2cuY2hvb3NlLXNlbmQtb3B0aW9uLmhpbnQtc2luZ2xlJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5kaWFsb2cuY2hvb3NlLXNlbmQtb3B0aW9uLmhpbnQtbXVsdGlwbGUnLCB7XG4gICAgICBwYXJhbXM6IHsgY291bnQgfSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgb25DbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEFYQ29tcG9uZW50Q2xvc2VFdmVudD4oKTtcblxuICBnZXRBY3Rpb25MYWJlbChhY3Rpb246IEFYQ29udmVyc2F0aW9uQ29tcG9zZXJBY3Rpb24pOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2VyQWN0aW9uUmVnaXN0cnkoKS5nZXRBY3Rpb25MYWJlbChhY3Rpb24pO1xuICB9XG5cbiAgZ2V0QWN0aW9uVG9vbHRpcChhY3Rpb246IEFYQ29udmVyc2F0aW9uQ29tcG9zZXJBY3Rpb24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2VyQWN0aW9uUmVnaXN0cnkoKS5nZXRBY3Rpb25Ub29sdGlwKGFjdGlvbik7XG4gIH1cblxuICBjaG9vc2UoYWN0aW9uOiBBWENvbnZlcnNhdGlvbkNvbXBvc2VyQWN0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgQVhDb21wb25lbnRDbG9zZUV2ZW50KCk7XG4gICAgZXZlbnQuY29tcG9uZW50ID0gdGhpcztcbiAgICBldmVudC5kYXRhID0gYWN0aW9uO1xuICAgIHRoaXMub25DbG9zZWQuZW1pdChldmVudCk7XG4gIH1cbn1cbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { createFileTypeMetadata, AXFileTypeInfoProvider } from '@acorex/core/file';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable } from '@angular/core';
|
|
5
|
+
import { p as AX_CONVERSATION_AUDIO_CATALOG } from './acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs';
|
|
6
|
+
import { normalizeAudioPayload } from './acorex-components-conversation-audio.payload-DgepxpPu.mjs';
|
|
7
|
+
import { f as formatDuration, a as formatFileSize } from './acorex-components-conversation-media-formatters-DV3wEEno.mjs';
|
|
8
|
+
|
|
9
|
+
const MB = 1024 * 1024;
|
|
10
|
+
const AX_CONVERSATION_AUDIO_PRESENTATION = {
|
|
11
|
+
icon: 'fa-light fa-music ax-text-amber-500',
|
|
12
|
+
title: 'Audio',
|
|
13
|
+
};
|
|
14
|
+
const AUDIO_UTILITY = {
|
|
15
|
+
preview: 'preview',
|
|
16
|
+
duration: 'duration',
|
|
17
|
+
formatSize: 'formatSize',
|
|
18
|
+
formatDuration: 'formatDuration',
|
|
19
|
+
createLocalPreviewUrl: 'createLocalPreviewUrl',
|
|
20
|
+
};
|
|
21
|
+
function blobUrl(ctx, blob) {
|
|
22
|
+
if (!isPlatformBrowser(ctx.platformId)) {
|
|
23
|
+
return '';
|
|
24
|
+
}
|
|
25
|
+
return URL.createObjectURL(blob);
|
|
26
|
+
}
|
|
27
|
+
function mediaDuration(ctx, file) {
|
|
28
|
+
if (!isPlatformBrowser(ctx.platformId)) {
|
|
29
|
+
return Promise.resolve(0);
|
|
30
|
+
}
|
|
31
|
+
return new Promise((resolve, reject) => {
|
|
32
|
+
const el = document.createElement('audio');
|
|
33
|
+
el.preload = 'metadata';
|
|
34
|
+
el.onloadedmetadata = () => {
|
|
35
|
+
URL.revokeObjectURL(el.src);
|
|
36
|
+
resolve(el.duration);
|
|
37
|
+
};
|
|
38
|
+
el.onerror = () => {
|
|
39
|
+
URL.revokeObjectURL(el.src);
|
|
40
|
+
reject(new Error('Failed to load audio metadata'));
|
|
41
|
+
};
|
|
42
|
+
el.src = URL.createObjectURL(file);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function conversationAudioUtilities() {
|
|
46
|
+
return {
|
|
47
|
+
[AUDIO_UTILITY.preview]: (ctx, file) => ctx.readAsDataUrl(file),
|
|
48
|
+
[AUDIO_UTILITY.duration]: (ctx, file) => mediaDuration(ctx, file),
|
|
49
|
+
[AUDIO_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),
|
|
50
|
+
[AUDIO_UTILITY.formatDuration]: (_ctx, seconds) => formatDuration(seconds),
|
|
51
|
+
[AUDIO_UTILITY.createLocalPreviewUrl]: (ctx, source) => blobUrl(ctx, source),
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function createConversationAudioFileType() {
|
|
55
|
+
const presentation = AX_CONVERSATION_AUDIO_PRESENTATION;
|
|
56
|
+
return {
|
|
57
|
+
name: AX_CONVERSATION_AUDIO_CATALOG,
|
|
58
|
+
metadata: createFileTypeMetadata('conversation'),
|
|
59
|
+
title: presentation.title,
|
|
60
|
+
icon: presentation.icon,
|
|
61
|
+
validations: {
|
|
62
|
+
mimeTypes: ['audio/*'],
|
|
63
|
+
minSize: 1,
|
|
64
|
+
maxSize: 50 * MB,
|
|
65
|
+
},
|
|
66
|
+
extensions: [
|
|
67
|
+
{ name: 'mp3', title: 'MP3' },
|
|
68
|
+
{ name: 'wav', title: 'WAV', validations: { maxSize: 30 * MB } },
|
|
69
|
+
{ name: 'ogg', title: 'OGG' },
|
|
70
|
+
{ name: 'm4a', title: 'M4A' },
|
|
71
|
+
],
|
|
72
|
+
utilities: conversationAudioUtilities(),
|
|
73
|
+
copy: (payload) => {
|
|
74
|
+
const audio = normalizeAudioPayload(payload);
|
|
75
|
+
const caption = audio.caption?.trim();
|
|
76
|
+
const items = audio.audios.map((item) => ({
|
|
77
|
+
url: item.url?.trim(),
|
|
78
|
+
title: item.title?.trim(),
|
|
79
|
+
}));
|
|
80
|
+
return {
|
|
81
|
+
text: caption ?? '',
|
|
82
|
+
meta: { kind: 'audio', caption, items, count: audio.audios.length },
|
|
83
|
+
};
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
class AXConversationAudioFileTypeProvider extends AXFileTypeInfoProvider {
|
|
88
|
+
items() {
|
|
89
|
+
return Promise.resolve([createConversationAudioFileType()]);
|
|
90
|
+
}
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationAudioFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
92
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationAudioFileTypeProvider, providedIn: 'root' }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationAudioFileTypeProvider, decorators: [{
|
|
95
|
+
type: Injectable,
|
|
96
|
+
args: [{ providedIn: 'root' }]
|
|
97
|
+
}] });
|
|
98
|
+
|
|
99
|
+
export { AXConversationAudioFileTypeProvider, AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_AUDIO_PRESENTATION, conversationAudioUtilities, createConversationAudioFileType };
|
|
100
|
+
//# sourceMappingURL=acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/audio-picker/conversation-audio.file-type.js"],"sourcesContent":["import { AXFileTypeInfoProvider, createFileTypeMetadata } from '@acorex/core/file';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { AX_CONVERSATION_AUDIO_CATALOG } from '../../../../models/message-file-type-catalog';\nimport { normalizeAudioPayload } from '../../../message-list/components/audio-renderer/audio.payload';\nimport { formatDuration, formatFileSize } from '../shared/media-formatters';\nimport * as i0 from \"@angular/core\";\nexport { AX_CONVERSATION_AUDIO_CATALOG };\nconst MB = 1024 * 1024;\nexport const AX_CONVERSATION_AUDIO_PRESENTATION = {\n icon: 'fa-light fa-music ax-text-amber-500',\n title: 'Audio',\n};\nconst AUDIO_UTILITY = {\n preview: 'preview',\n duration: 'duration',\n formatSize: 'formatSize',\n formatDuration: 'formatDuration',\n createLocalPreviewUrl: 'createLocalPreviewUrl',\n};\nfunction blobUrl(ctx, blob) {\n if (!isPlatformBrowser(ctx.platformId)) {\n return '';\n }\n return URL.createObjectURL(blob);\n}\nfunction mediaDuration(ctx, file) {\n if (!isPlatformBrowser(ctx.platformId)) {\n return Promise.resolve(0);\n }\n return new Promise((resolve, reject) => {\n const el = document.createElement('audio');\n el.preload = 'metadata';\n el.onloadedmetadata = () => {\n URL.revokeObjectURL(el.src);\n resolve(el.duration);\n };\n el.onerror = () => {\n URL.revokeObjectURL(el.src);\n reject(new Error('Failed to load audio metadata'));\n };\n el.src = URL.createObjectURL(file);\n });\n}\nexport function conversationAudioUtilities() {\n return {\n [AUDIO_UTILITY.preview]: (ctx, file) => ctx.readAsDataUrl(file),\n [AUDIO_UTILITY.duration]: (ctx, file) => mediaDuration(ctx, file),\n [AUDIO_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),\n [AUDIO_UTILITY.formatDuration]: (_ctx, seconds) => formatDuration(seconds),\n [AUDIO_UTILITY.createLocalPreviewUrl]: (ctx, source) => blobUrl(ctx, source),\n };\n}\nexport function createConversationAudioFileType() {\n const presentation = AX_CONVERSATION_AUDIO_PRESENTATION;\n return {\n name: AX_CONVERSATION_AUDIO_CATALOG,\n metadata: createFileTypeMetadata('conversation'),\n title: presentation.title,\n icon: presentation.icon,\n validations: {\n mimeTypes: ['audio/*'],\n minSize: 1,\n maxSize: 50 * MB,\n },\n extensions: [\n { name: 'mp3', title: 'MP3' },\n { name: 'wav', title: 'WAV', validations: { maxSize: 30 * MB } },\n { name: 'ogg', title: 'OGG' },\n { name: 'm4a', title: 'M4A' },\n ],\n utilities: conversationAudioUtilities(),\n copy: (payload) => {\n const audio = normalizeAudioPayload(payload);\n const caption = audio.caption?.trim();\n const items = audio.audios.map((item) => ({\n url: item.url?.trim(),\n title: item.title?.trim(),\n }));\n return {\n text: caption ?? '',\n meta: { kind: 'audio', caption, items, count: audio.audios.length },\n };\n },\n };\n}\nexport class AXConversationAudioFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([createConversationAudioFileType()]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationAudioFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationAudioFileTypeProvider, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationAudioFileTypeProvider, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWF1ZGlvLmZpbGUtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvcGx1Z2lucy9jb21wb3Nlci9jb21wb25lbnRzL2F1ZGlvLXBpY2tlci9jb252ZXJzYXRpb24tYXVkaW8uZmlsZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFNUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLENBQUM7QUFFekMsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FBRztJQUNoRCxJQUFJLEVBQUUscUNBQXFDO0lBQzNDLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQztBQU9YLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFFBQVEsRUFBRSxVQUFVO0lBQ3BCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMscUJBQXFCLEVBQUUsdUJBQXVCO0NBQ3RDLENBQUM7QUFFWCxTQUFTLE9BQU8sQ0FBQyxHQUEyQixFQUFFLElBQVU7SUFDdEQsSUFBSSxDQUFDLGlCQUFpQixD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dCI6WyJpbXBvcnQgdHlwZSB7IEFYRmlsZUNvcHlEYXRhLCBBWEZpbGVUeXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQVhGaWxlVHlwZUluZm9Qcm92aWRlciwgY3JlYXRlRmlsZVR5cGVNZXRhZGF0YSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQVhBdWRpb1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQVhfQ09OVkVSU0FUSU9OX0FVRElPX0NBVEFMT0cgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvbWVzc2FnZS1maWxlLXR5cGUtY2F0YWxvZyc7XG5pbXBvcnQgeyBub3JtYWxpemVBdWRpb1BheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9hdWRpby1yZW5kZXJlci9hdWRpby5wYXlsb2FkJztcbmltcG9ydCB7IGZvcm1hdER1cmF0aW9uLCBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL3NoYXJlZC9tZWRpYS1mb3JtYXR0ZXJzJztcblxuZXhwb3J0IHsgQVhfQ09OVkVSU0FUSU9OX0FVRElPX0NBVEFMT0cgfTtcblxuY29uc3QgTUIgPSAxMDI0ICogMTAyNDtcblxuZXhwb3J0IGNvbnN0IEFYX0NPTlZFUlNBVElPTl9BVURJT19QUkVTRU5UQVRJT04gPSB7XG4gIGljb246ICdmYS1saWdodCBmYS1tdXNpYyBheC10ZXh0LWFtYmVyLTUwMCcsXG4gIHRpdGxlOiAnQXVkaW8nLFxufSBhcyBjb25zdDtcblxudHlwZSBGaWxlVHlwZVV0aWxpdHlDb250ZXh0ID0ge1xuICByZWFkQXNEYXRhVXJsOiAoZmlsZTogRmlsZSB8IEJsb2IpID0+IFByb21pc2U8c3RyaW5nPjtcbiAgcGxhdGZvcm1JZDogb2JqZWN0O1xufTtcblxuY29uc3QgQVVESU9fVVRJTElUWSA9IHtcbiAgcHJldmlldzogJ3ByZXZpZXcnLFxuICBkdXJhdGlvbjogJ2R1cmF0aW9uJyxcbiAgZm9ybWF0U2l6ZTogJ2Zvcm1hdFNpemUnLFxuICBmb3JtYXREdXJhdGlvbjogJ2Zvcm1hdER1cmF0aW9uJyxcbiAgY3JlYXRlTG9jYWxQcmV2aWV3VXJsOiAnY3JlYXRlTG9jYWxQcmV2aWV3VXJsJyxcbn0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGJsb2JVcmwoY3R4OiBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBibG9iOiBCbG9iKTogc3RyaW5nIHtcbiAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihjdHgucGxhdGZvcm1JZCkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG59XG5cbmZ1bmN0aW9uIG1lZGlhRHVyYXRpb24oY3R4OiBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBmaWxlOiBGaWxlIHwgQmxvYik6IFByb21pc2U8bnVtYmVyPiB7XG4gIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIoY3R4LnBsYXRmb3JtSWQpKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgwKTtcbiAgfVxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYXVkaW8nKTtcbiAgICBlbC5wcmVsb2FkID0gJ21ldGFkYXRhJztcbiAgICBlbC5vbmxvYWRlZG1ldGFkYXRhID0gKCkgPT4ge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChlbC5zcmMpO1xuICAgICAgcmVzb2x2ZShlbC5kdXJhdGlvbik7XG4gICAgfTtcbiAgICBlbC5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChlbC5zcmMpO1xuICAgICAgcmVqZWN0KG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgYXVkaW8gbWV0YWRhdGEnKSk7XG4gICAgfTtcbiAgICBlbC5zcmMgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnNhdGlvbkF1ZGlvVXRpbGl0aWVzKCk6IE5vbk51bGxhYmxlPEFYRmlsZVR5cGVbJ3V0aWxpdGllcyddPiB7XG4gIHJldHVybiB7XG4gICAgW0FVRElPX1VUSUxJVFkucHJldmlld106IChjdHgsIGZpbGUpID0+IChjdHggYXMgRmlsZVR5cGVVdGlsaXR5Q29udGV4dCkucmVhZEFzRGF0YVVybChmaWxlIGFzIEZpbGUpLFxuICAgIFtBVURJT19VVElMSVRZLmR1cmF0aW9uXTogKGN0eCwgZmlsZSkgPT4gbWVkaWFEdXJhdGlvbihjdHggYXMgRmlsZVR5cGVVdGlsaXR5Q29udGV4dCwgZmlsZSBhcyBGaWxlIHwgQmxvYiksXG4gICAgW0FVRElPX1VUSUxJVFkuZm9ybWF0U2l6ZV06IChfY3R4LCBieXRlcykgPT4gZm9ybWF0RmlsZVNpemUoYnl0ZXMgYXMgbnVtYmVyKSxcbiAgICBbQVVESU9fVVRJTElUWS5mb3JtYXREdXJhdGlvbl06IChfY3R4LCBzZWNvbmRzKSA9PiBmb3JtYXREdXJhdGlvbihzZWNvbmRzIGFzIG51bWJlciksXG4gICAgW0FVRElPX1VUSUxJVFkuY3JlYXRlTG9jYWxQcmV2aWV3VXJsXTogKGN0eCwgc291cmNlKSA9PiBibG9iVXJsKGN0eCBhcyBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBzb3VyY2UgYXMgQmxvYiksXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb252ZXJzYXRpb25BdWRpb0ZpbGVUeXBlKCk6IEFYRmlsZVR5cGUge1xuICBjb25zdCBwcmVzZW50YXRpb24gPSBBWF9DT05WRVJTQVRJT05fQVVESU9fUFJFU0VOVEFUSU9OO1xuICByZXR1cm4ge1xuICAgIG5hbWU6IEFYX0NPTlZFUlNBVElPTl9BVURJT19DQVRBTE9HLFxuICAgIG1ldGFkYXRhOiBjcmVhdGVGaWxlVHlwZU1ldGFkYXRhKCdjb252ZXJzYXRpb24nKSxcbiAgICB0aXRsZTogcHJlc2VudGF0aW9uLnRpdGxlLFxuICAgIGljb246IHByZXNlbnRhdGlvbi5pY29uLFxuICAgIHZhbGlkYXRpb25zOiB7XG4gICAgICBtaW1lVHlwZXM6IFsnYXVkaW8vKiddLFxuICAgICAgbWluU2l6ZTogMSxcbiAgICAgIG1heFNpemU6IDUwICogTUIsXG4gICAgfSxcbiAgICBleHRlbnNpb25zOiBbXG4gICAgICB7IG5hbWU6ICdtcDMnLCB0aXRsZTogJ01QMycgfSxcbiAgICAgIHsgbmFtZTogJ3dhdicsIHRpdGxlOiAnV0FWJywgdmFsaWRhdGlvbnM6IHsgbWF4U2l6ZTogMzAgKiBNQiB9IH0sXG4gICAgICB7IG5hbWU6ICdvZ2cnLCB0aXRsZTogJ09HRycgfSxcbiAgICAgIHsgbmFtZTogJ200YScsIHRpdGxlOiAnTTRBJyB9LFxuICAgIF0sXG4gICAgdXRpbGl0aWVzOiBjb252ZXJzYXRpb25BdWRpb1V0aWxpdGllcygpLFxuICAgIGNvcHk6IChwYXlsb2FkKTogQVhGaWxlQ29weURhdGEgPT4ge1xuICAgICAgY29uc3QgYXVkaW8gPSBub3JtYWxpemVBdWRpb1BheWxvYWQocGF5bG9hZCBhcyBBWEF1ZGlvUGF5bG9hZCk7XG4gICAgICBjb25zdCBjYXB0aW9uID0gYXVkaW8uY2FwdGlvbj8udHJpbSgpO1xuICAgICAgY29uc3QgaXRlbXMgPSBhdWRpby5hdWRpb3MubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICB1cmw6IGl0ZW0udXJsPy50cmltKCksXG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlPy50cmltKCksXG4gICAgICB9KSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiBjYXB0aW9uID8/ICcnLFxuICAgICAgICBtZXRhOiB7IGtpbmQ6ICdhdWRpbycsIGNhcHRpb24sIGl0ZW1zLCBjb3VudDogYXVkaW8uYXVkaW9zLmxlbmd0aCB9LFxuICAgICAgfTtcbiAgICB9LFxuICB9O1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uQXVkaW9GaWxlVHlwZVByb3ZpZGVyIGV4dGVuZHMgQVhGaWxlVHlwZUluZm9Qcm92aWRlciB7XG4gIGl0ZW1zKCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW2NyZWF0ZUNvbnZlcnNhdGlvbkF1ZGlvRmlsZVR5cGUoKV0pO1xuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { createFileTypeMetadata, AXFileTypeInfoProvider } from '@acorex/core/file';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable } from '@angular/core';
|
|
5
|
+
import { t as AX_CONVERSATION_IMAGE_CATALOG, u as AX_CONVERSATION_VIDEO_CATALOG, p as AX_CONVERSATION_AUDIO_CATALOG, q as AX_CONVERSATION_FILE_CATALOG } from './acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs';
|
|
6
|
+
import { normalizeFilePayload } from './acorex-components-conversation-file.payload-BDURM80G.mjs';
|
|
7
|
+
import { a as formatFileSize } from './acorex-components-conversation-media-formatters-DV3wEEno.mjs';
|
|
8
|
+
|
|
9
|
+
const MB = 1024 * 1024;
|
|
10
|
+
const AX_CONVERSATION_FILE_PRESENTATION = {
|
|
11
|
+
icon: 'fa-light fa-file ax-text-neutral-500',
|
|
12
|
+
title: 'File',
|
|
13
|
+
};
|
|
14
|
+
const AX_CONVERSATION_FILE_ALLOWED_MIME_TYPES = [
|
|
15
|
+
'image/*',
|
|
16
|
+
'video/*',
|
|
17
|
+
'audio/*',
|
|
18
|
+
'application/pdf',
|
|
19
|
+
'application/msword',
|
|
20
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
21
|
+
'application/vnd.ms-excel',
|
|
22
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
23
|
+
'application/zip',
|
|
24
|
+
'application/x-zip-compressed',
|
|
25
|
+
'application/x-7z-compressed',
|
|
26
|
+
'application/vnd.rar',
|
|
27
|
+
'application/octet-stream',
|
|
28
|
+
'text/plain',
|
|
29
|
+
];
|
|
30
|
+
const FILE_UTILITY = {
|
|
31
|
+
preview: 'preview',
|
|
32
|
+
formatSize: 'formatSize',
|
|
33
|
+
createLocalPreviewUrl: 'createLocalPreviewUrl',
|
|
34
|
+
pickerCatalog: 'pickerCatalog',
|
|
35
|
+
};
|
|
36
|
+
function blobUrl(ctx, blob) {
|
|
37
|
+
if (!isPlatformBrowser(ctx.platformId)) {
|
|
38
|
+
return '';
|
|
39
|
+
}
|
|
40
|
+
return URL.createObjectURL(blob);
|
|
41
|
+
}
|
|
42
|
+
function conversationFileUtilities() {
|
|
43
|
+
return {
|
|
44
|
+
[FILE_UTILITY.preview]: async (ctx, file) => {
|
|
45
|
+
const f = file;
|
|
46
|
+
if (f.type.startsWith('image/')) {
|
|
47
|
+
return ctx.readAsDataUrl(f);
|
|
48
|
+
}
|
|
49
|
+
return undefined;
|
|
50
|
+
},
|
|
51
|
+
[FILE_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),
|
|
52
|
+
[FILE_UTILITY.createLocalPreviewUrl]: (ctx, source) => blobUrl(ctx, source),
|
|
53
|
+
[FILE_UTILITY.pickerCatalog]: (_ctx, file) => {
|
|
54
|
+
const f = file;
|
|
55
|
+
if (f.type.startsWith('image/'))
|
|
56
|
+
return AX_CONVERSATION_IMAGE_CATALOG;
|
|
57
|
+
if (f.type.startsWith('video/'))
|
|
58
|
+
return AX_CONVERSATION_VIDEO_CATALOG;
|
|
59
|
+
if (f.type.startsWith('audio/'))
|
|
60
|
+
return AX_CONVERSATION_AUDIO_CATALOG;
|
|
61
|
+
return AX_CONVERSATION_FILE_CATALOG;
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
function createConversationFileFileType() {
|
|
66
|
+
const presentation = AX_CONVERSATION_FILE_PRESENTATION;
|
|
67
|
+
return {
|
|
68
|
+
name: AX_CONVERSATION_FILE_CATALOG,
|
|
69
|
+
metadata: createFileTypeMetadata('conversation'),
|
|
70
|
+
title: presentation.title,
|
|
71
|
+
icon: presentation.icon,
|
|
72
|
+
validations: {
|
|
73
|
+
mimeTypes: [...AX_CONVERSATION_FILE_ALLOWED_MIME_TYPES],
|
|
74
|
+
minSize: 1,
|
|
75
|
+
maxSize: 100 * MB,
|
|
76
|
+
},
|
|
77
|
+
extensions: [
|
|
78
|
+
{ name: 'pdf', title: 'PDF', validations: { mimeTypes: ['application/pdf'], maxSize: 25 * MB } },
|
|
79
|
+
{ name: 'doc', title: 'Word' },
|
|
80
|
+
{ name: 'docx', title: 'Word' },
|
|
81
|
+
{ name: 'txt', title: 'Text', validations: { mimeTypes: ['text/plain'], maxSize: 5 * MB } },
|
|
82
|
+
{
|
|
83
|
+
name: 'zip',
|
|
84
|
+
title: 'ZIP',
|
|
85
|
+
validations: {
|
|
86
|
+
mimeTypes: ['application/zip', 'application/x-zip-compressed', 'application/octet-stream'],
|
|
87
|
+
maxSize: 50 * MB,
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
utilities: conversationFileUtilities(),
|
|
92
|
+
copy: (payload) => {
|
|
93
|
+
const file = normalizeFilePayload(payload);
|
|
94
|
+
const caption = file.caption?.trim();
|
|
95
|
+
const items = file.files.map((item) => {
|
|
96
|
+
const name = item.name?.trim();
|
|
97
|
+
const url = item.url?.trim();
|
|
98
|
+
const line = name && url ? `${name} — ${url}` : url || name;
|
|
99
|
+
return { name, url, line };
|
|
100
|
+
});
|
|
101
|
+
return {
|
|
102
|
+
text: caption ?? '',
|
|
103
|
+
meta: { kind: 'file', caption, items, count: file.files.length },
|
|
104
|
+
};
|
|
105
|
+
},
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
class AXConversationFileFileTypeProvider extends AXFileTypeInfoProvider {
|
|
109
|
+
items() {
|
|
110
|
+
return Promise.resolve([createConversationFileFileType()]);
|
|
111
|
+
}
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
113
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileFileTypeProvider, providedIn: 'root' }); }
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileFileTypeProvider, decorators: [{
|
|
116
|
+
type: Injectable,
|
|
117
|
+
args: [{ providedIn: 'root' }]
|
|
118
|
+
}] });
|
|
119
|
+
|
|
120
|
+
export { AXConversationFileFileTypeProvider, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_PRESENTATION, conversationFileUtilities, createConversationFileFileType };
|
|
121
|
+
//# sourceMappingURL=acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/file-picker/conversation-file.file-type.js"],"sourcesContent":["import { AXFileTypeInfoProvider, createFileTypeMetadata } from '@acorex/core/file';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { AX_CONVERSATION_AUDIO_CATALOG, AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_VIDEO_CATALOG, } from '../../../../models/message-file-type-catalog';\nimport { normalizeFilePayload } from '../../../message-list/components/file-renderer/file.payload';\nimport { formatFileSize } from '../shared/media-formatters';\nimport * as i0 from \"@angular/core\";\nexport { AX_CONVERSATION_FILE_CATALOG };\nconst MB = 1024 * 1024;\nexport const AX_CONVERSATION_FILE_PRESENTATION = {\n icon: 'fa-light fa-file ax-text-neutral-500',\n title: 'File',\n};\nconst AX_CONVERSATION_FILE_ALLOWED_MIME_TYPES = [\n 'image/*',\n 'video/*',\n 'audio/*',\n 'application/pdf',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/zip',\n 'application/x-zip-compressed',\n 'application/x-7z-compressed',\n 'application/vnd.rar',\n 'application/octet-stream',\n 'text/plain',\n];\nconst FILE_UTILITY = {\n preview: 'preview',\n formatSize: 'formatSize',\n createLocalPreviewUrl: 'createLocalPreviewUrl',\n pickerCatalog: 'pickerCatalog',\n};\nfunction blobUrl(ctx, blob) {\n if (!isPlatformBrowser(ctx.platformId)) {\n return '';\n }\n return URL.createObjectURL(blob);\n}\nexport function conversationFileUtilities() {\n return {\n [FILE_UTILITY.preview]: async (ctx, file) => {\n const f = file;\n if (f.type.startsWith('image/')) {\n return ctx.readAsDataUrl(f);\n }\n return undefined;\n },\n [FILE_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),\n [FILE_UTILITY.createLocalPreviewUrl]: (ctx, source) => blobUrl(ctx, source),\n [FILE_UTILITY.pickerCatalog]: (_ctx, file) => {\n const f = file;\n if (f.type.startsWith('image/'))\n return AX_CONVERSATION_IMAGE_CATALOG;\n if (f.type.startsWith('video/'))\n return AX_CONVERSATION_VIDEO_CATALOG;\n if (f.type.startsWith('audio/'))\n return AX_CONVERSATION_AUDIO_CATALOG;\n return AX_CONVERSATION_FILE_CATALOG;\n },\n };\n}\nexport function createConversationFileFileType() {\n const presentation = AX_CONVERSATION_FILE_PRESENTATION;\n return {\n name: AX_CONVERSATION_FILE_CATALOG,\n metadata: createFileTypeMetadata('conversation'),\n title: presentation.title,\n icon: presentation.icon,\n validations: {\n mimeTypes: [...AX_CONVERSATION_FILE_ALLOWED_MIME_TYPES],\n minSize: 1,\n maxSize: 100 * MB,\n },\n extensions: [\n { name: 'pdf', title: 'PDF', validations: { mimeTypes: ['application/pdf'], maxSize: 25 * MB } },\n { name: 'doc', title: 'Word' },\n { name: 'docx', title: 'Word' },\n { name: 'txt', title: 'Text', validations: { mimeTypes: ['text/plain'], maxSize: 5 * MB } },\n {\n name: 'zip',\n title: 'ZIP',\n validations: {\n mimeTypes: ['application/zip', 'application/x-zip-compressed', 'application/octet-stream'],\n maxSize: 50 * MB,\n },\n },\n ],\n utilities: conversationFileUtilities(),\n copy: (payload) => {\n const file = normalizeFilePayload(payload);\n const caption = file.caption?.trim();\n const items = file.files.map((item) => {\n const name = item.name?.trim();\n const url = item.url?.trim();\n const line = name && url ? `${name} — ${url}` : url || name;\n return { name, url, line };\n });\n return {\n text: caption ?? '',\n meta: { kind: 'file', caption, items, count: file.files.length },\n };\n },\n };\n}\nexport class AXConversationFileFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([createConversationFileFileType()]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileFileTypeProvider, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileFileTypeProvider, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWZpbGUuZmlsZS10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9wbHVnaW5zL2NvbXBvc2VyL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvY29udmVyc2F0aW9uLWZpbGUuZmlsZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDZCQUE2QixHQUM5QixNQUFNLDhDQUE4QyxDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFNUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLENBQUM7QUFFeEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUV2QixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRztJQUMvQyxJQUFJLEVBQUUsc0NBQXNDO0lBQzVDLEtBQUssRUFBRSxNQUFNO0NBQ0wsQ0FBQztBQUVYLE1BQU0sdUNBQXVDLEdBQUc7SUFDOUMsU0FBUztJQUNULFNBQVM7SUFDVCxTQUFTO0lBQ1QsaUJBQWlCO0lBQ2pCLG9CQUFvQjtJQUNwQix5RUFBeUU7SUFDekUsMEJBQTBCO0lBQzFCLG1FQUFtRTtJQUNuRSxpQkFBaUI7SUFDakIsOEJBQThCO0lBQzlCLDZCQUE2QjtJQUM3QixxQkFBcUI7SUFDckIs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TUFBTSxFQUFFO2FBQ2pFLENBQUM7UUFDSixDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFHRCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsc0JBQXNCO0lBQzVFLEtBQUs7UUFDSCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDOzhHQUhVLGtDQUFrQztrSEFBbEMsa0NBQWtDLGNBRHJCLE1BQU07OzJGQUNuQixrQ0FBa0M7a0JBRDlDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBWEZpbGVDb3B5RGF0YSwgQVhGaWxlVHlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYRmlsZVR5cGVJbmZvUHJvdmlkZXIsIGNyZWF0ZUZpbGVUeXBlTWV0YWRhdGEgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFYRmlsZVBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQVhfQ09OVkVSU0FUSU9OX0FVRElPX0NBVEFMT0csXG4gIEFYX0NPTlZFUlNBVElPTl9GSUxFX0NBVEFMT0csXG4gIEFYX0NPTlZFUlNBVElPTl9JTUFHRV9DQVRBTE9HLFxuICBBWF9DT05WRVJTQVRJT05fVklERU9fQ0FUQUxPRyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL21lc3NhZ2UtZmlsZS10eXBlLWNhdGFsb2cnO1xuaW1wb3J0IHsgbm9ybWFsaXplRmlsZVBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9maWxlLXJlbmRlcmVyL2ZpbGUucGF5bG9hZCc7XG5pbXBvcnQgeyBmb3JtYXRGaWxlU2l6ZSB9IGZyb20gJy4uL3NoYXJlZC9tZWRpYS1mb3JtYXR0ZXJzJztcblxuZXhwb3J0IHsgQVhfQ09OVkVSU0FUSU9OX0ZJTEVfQ0FUQUxPRyB9O1xuXG5jb25zdCBNQiA9IDEwMjQgKiAxMDI0O1xuXG5leHBvcnQgY29uc3QgQVhfQ09OVkVSU0FUSU9OX0ZJTEVfUFJFU0VOVEFUSU9OID0ge1xuICBpY29uOiAnZmEtbGlnaHQgZmEtZmlsZSBheC10ZXh0LW5ldXRyYWwtNTAwJyxcbiAgdGl0bGU6ICdGaWxlJyxcbn0gYXMgY29uc3Q7XG5cbmNvbnN0IEFYX0NPTlZFUlNBVElPTl9GSUxFX0FMTE9XRURfTUlNRV9UWVBFUyA9IFtcbiAgJ2ltYWdlLyonLFxuICAndmlkZW8vKicsXG4gICdhdWRpby8qJyxcbiAgJ2FwcGxpY2F0aW9uL3BkZicsXG4gICdhcHBsaWNhdGlvbi9tc3dvcmQnLFxuICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwuZG9jdW1lbnQnLFxuICAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJyxcbiAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICdhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkJyxcbiAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCcsXG4gICdhcHBsaWNhdGlvbi92bmQucmFyJyxcbiAgJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICd0ZXh0L3BsYWluJyxcbl0gYXMgY29uc3Q7XG5cbnR5cGUgRmlsZVR5cGVVdGlsaXR5Q29udGV4dCA9IHtcbiAgcmVhZEFzRGF0YVVybDogKGZpbGU6IEZpbGUgfCBCbG9iKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIHBsYXRmb3JtSWQ6IG9iamVjdDtcbn07XG5cbmNvbnN0IEZJTEVfVVRJTElUWSA9IHtcbiAgcHJldmlldzogJ3ByZXZpZXcnLFxuICBmb3JtYXRTaXplOiAnZm9ybWF0U2l6ZScsXG4gIGNyZWF0ZUxvY2FsUHJldmlld1VybDogJ2NyZWF0ZUxvY2FsUHJldmlld1VybCcsXG4gIHBpY2tlckNhdGFsb2c6ICdwaWNrZXJDYXRhbG9nJyxcbn0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGJsb2JVcmwoY3R4OiBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBibG9iOiBCbG9iKTogc3RyaW5nIHtcbiAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihjdHgucGxhdGZvcm1JZCkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJzYXRpb25GaWxlVXRpbGl0aWVzKCk6IE5vbk51bGxhYmxlPEFYRmlsZVR5cGVbJ3V0aWxpdGllcyddPiB7XG4gIHJldHVybiB7XG4gICAgW0ZJTEVfVVRJTElUWS5wcmV2aWV3XTogYXN5bmMgKGN0eCwgZmlsZSkgPT4ge1xuICAgICAgY29uc3QgZiA9IGZpbGUgYXMgRmlsZTtcbiAgICAgIGlmIChmLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcbiAgICAgICAgcmV0dXJuIChjdHggYXMgRmlsZVR5cGVVdGlsaXR5Q29udGV4dCkucmVhZEFzRGF0YVVybChmKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSxcbiAgICBbRklMRV9VVElMSVRZLmZvcm1hdFNpemVdOiAoX2N0eCwgYnl0ZXMpID0+IGZvcm1hdEZpbGVTaXplKGJ5dGVzIGFzIG51bWJlciksXG4gICAgW0ZJTEVfVVRJTElUWS5jcmVhdGVMb2NhbFByZXZpZXdVcmxdOiAoY3R4LCBzb3VyY2UpID0+IGJsb2JVcmwoY3R4IGFzIEZpbGVUeXBlVXRpbGl0eUNvbnRleHQsIHNvdXJjZSBhcyBCbG9iKSxcbiAgICBbRklMRV9VVElMSVRZLnBpY2tlckNhdGFsb2ddOiAoX2N0eCwgZmlsZSkgPT4ge1xuICAgICAgY29uc3QgZiA9IGZpbGUgYXMgRmlsZTtcbiAgICAgIGlmIChmLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHJldHVybiBBWF9DT05WRVJTQVRJT05fSU1BR0VfQ0FUQUxPRztcbiAgICAgIGlmIChmLnR5cGUuc3RhcnRzV2l0aCgndmlkZW8vJykpIHJldHVybiBBWF9DT05WRVJTQVRJT05fVklERU9fQ0FUQUxPRztcbiAgICAgIGlmIChmLnR5cGUuc3RhcnRzV2l0aCgnYXVkaW8vJykpIHJldHVybiBBWF9DT05WRVJTQVRJT05fQVVESU9fQ0FUQUxPRztcbiAgICAgIHJldHVybiBBWF9DT05WRVJTQVRJT05fRklMRV9DQVRBTE9HO1xuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb252ZXJzYXRpb25GaWxlRmlsZVR5cGUoKTogaW1wb3J0KCdAYWNvcmV4L2NvcmUvZmlsZScpLkFYRmlsZVR5cGUge1xuICBjb25zdCBwcmVzZW50YXRpb24gPSBBWF9DT05WRVJTQVRJT05fRklMRV9QUkVTRU5UQVRJT047XG4gIHJldHVybiB7XG4gICAgbmFtZTogQVhfQ09OVkVSU0FUSU9OX0ZJTEVfQ0FUQUxPRyxcbiAgICBtZXRhZGF0YTogY3JlYXRlRmlsZVR5cGVNZXRhZGF0YSgnY29udmVyc2F0aW9uJyksXG4gICAgdGl0bGU6IHByZXNlbnRhdGlvbi50aXRsZSxcbiAgICBpY29uOiBwcmVzZW50YXRpb24uaWNvbixcbiAgICB2YWxpZGF0aW9uczoge1xuICAgICAgbWltZVR5cGVzOiBbLi4uQVhfQ09OVkVSU0FUSU9OX0ZJTEVfQUxMT1dFRF9NSU1FX1RZUEVTXSxcbiAgICAgIG1pblNpemU6IDEsXG4gICAgICBtYXhTaXplOiAxMDAgKiBNQixcbiAgICB9LFxuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgIHsgbmFtZTogJ3BkZicsIHRpdGxlOiAnUERGJywgdmFsaWRhdGlvbnM6IHsgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3BkZiddLCBtYXhTaXplOiAyNSAqIE1CIH0gfSxcbiAgICAgIHsgbmFtZTogJ2RvYycsIHRpdGxlOiAnV29yZCcgfSxcbiAgICAgIHsgbmFtZTogJ2RvY3gnLCB0aXRsZTogJ1dvcmQnIH0sXG4gICAgICB7IG5hbWU6ICd0eHQnLCB0aXRsZTogJ1RleHQnLCB2YWxpZGF0aW9uczogeyBtaW1lVHlwZXM6IFsndGV4dC9wbGFpbiddLCBtYXhTaXplOiA1ICogTUIgfSB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnemlwJyxcbiAgICAgICAgdGl0bGU6ICdaSVAnLFxuICAgICAgICB2YWxpZGF0aW9uczoge1xuICAgICAgICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi96aXAnLCAnYXBwbGljYXRpb24veC16aXAtY29tcHJlc3NlZCcsICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nXSxcbiAgICAgICAgICBtYXhTaXplOiA1MCAqIE1CLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIHV0aWxpdGllczogY29udmVyc2F0aW9uRmlsZVV0aWxpdGllcygpLFxuICAgIGNvcHk6IChwYXlsb2FkKTogQVhGaWxlQ29weURhdGEgPT4ge1xuICAgICAgY29uc3QgZmlsZSA9IG5vcm1hbGl6ZUZpbGVQYXlsb2FkKHBheWxvYWQgYXMgQVhGaWxlUGF5bG9hZCk7XG4gICAgICBjb25zdCBjYXB0aW9uID0gZmlsZS5jYXB0aW9uPy50cmltKCk7XG4gICAgICBjb25zdCBpdGVtcyA9IGZpbGUuZmlsZXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBpdGVtLm5hbWU/LnRyaW0oKTtcbiAgICAgICAgY29uc3QgdXJsID0gaXRlbS51cmw/LnRyaW0oKTtcbiAgICAgICAgY29uc3QgbGluZSA9IG5hbWUgJiYgdXJsID8gYCR7bmFtZX0g4oCUICR7dXJsfWAgOiB1cmwgfHwgbmFtZTtcbiAgICAgICAgcmV0dXJuIHsgbmFtZSwgdXJsLCBsaW5lIH07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IGNhcHRpb24gPz8gJycsXG4gICAgICAgIG1ldGE6IHsga2luZDogJ2ZpbGUnLCBjYXB0aW9uLCBpdGVtcywgY291bnQ6IGZpbGUuZmlsZXMubGVuZ3RoIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25GaWxlRmlsZVR5cGVQcm92aWRlciBleHRlbmRzIEFYRmlsZVR5cGVJbmZvUHJvdmlkZXIge1xuICBpdGVtcygpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtjcmVhdGVDb252ZXJzYXRpb25GaWxlRmlsZVR5cGUoKV0pO1xuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { createFileTypeMetadata, AXFileTypeInfoProvider } from '@acorex/core/file';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Injectable } from '@angular/core';
|
|
5
|
+
import { t as AX_CONVERSATION_IMAGE_CATALOG, n as normalizeImagePayload } from './acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs';
|
|
6
|
+
import { a as formatFileSize } from './acorex-components-conversation-media-formatters-DV3wEEno.mjs';
|
|
7
|
+
|
|
8
|
+
const MB = 1024 * 1024;
|
|
9
|
+
const AX_CONVERSATION_IMAGE_PRESENTATION = {
|
|
10
|
+
icon: 'fa-light fa-image ax-text-purple-500',
|
|
11
|
+
title: 'Image',
|
|
12
|
+
};
|
|
13
|
+
const IMAGE_UTILITY = {
|
|
14
|
+
preview: 'preview',
|
|
15
|
+
formatSize: 'formatSize',
|
|
16
|
+
createLocalPreviewUrl: 'createLocalPreviewUrl',
|
|
17
|
+
};
|
|
18
|
+
function blobUrl(ctx, blob) {
|
|
19
|
+
if (!isPlatformBrowser(ctx.platformId)) {
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
return URL.createObjectURL(blob);
|
|
23
|
+
}
|
|
24
|
+
function conversationImageUtilities() {
|
|
25
|
+
return {
|
|
26
|
+
[IMAGE_UTILITY.preview]: (ctx, file) => ctx.readAsDataUrl(file),
|
|
27
|
+
[IMAGE_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),
|
|
28
|
+
[IMAGE_UTILITY.createLocalPreviewUrl]: (ctx, source) => {
|
|
29
|
+
const blob = source;
|
|
30
|
+
if (blob.type.startsWith('image/')) {
|
|
31
|
+
return ctx.readAsDataUrl(blob);
|
|
32
|
+
}
|
|
33
|
+
return blobUrl(ctx, blob);
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function createConversationImageFileType() {
|
|
38
|
+
const presentation = AX_CONVERSATION_IMAGE_PRESENTATION;
|
|
39
|
+
return {
|
|
40
|
+
name: AX_CONVERSATION_IMAGE_CATALOG,
|
|
41
|
+
metadata: createFileTypeMetadata('conversation'),
|
|
42
|
+
title: presentation.title,
|
|
43
|
+
icon: presentation.icon,
|
|
44
|
+
validations: {
|
|
45
|
+
mimeTypes: ['image/*'],
|
|
46
|
+
minSize: 1,
|
|
47
|
+
maxSize: 100 * MB,
|
|
48
|
+
},
|
|
49
|
+
extensions: [
|
|
50
|
+
{ name: 'jpg', title: 'JPEG' },
|
|
51
|
+
{ name: 'jpeg', title: 'JPEG', validations: { maxSize: 5 * MB } },
|
|
52
|
+
{ name: 'png', title: 'PNG' },
|
|
53
|
+
{ name: 'gif', title: 'GIF' },
|
|
54
|
+
{ name: 'webp', title: 'WebP' },
|
|
55
|
+
{ name: 'svg', title: 'SVG', validations: { maxSize: 2 * MB } },
|
|
56
|
+
],
|
|
57
|
+
utilities: conversationImageUtilities(),
|
|
58
|
+
copy: (payload) => {
|
|
59
|
+
const image = normalizeImagePayload(payload);
|
|
60
|
+
const caption = image.caption?.trim();
|
|
61
|
+
const urls = image.images
|
|
62
|
+
.map((item) => item.url?.trim() || item.thumbnailUrl?.trim())
|
|
63
|
+
.filter((url) => !!url);
|
|
64
|
+
return {
|
|
65
|
+
text: caption ?? '',
|
|
66
|
+
meta: { kind: 'image', caption, urls, count: image.images.length },
|
|
67
|
+
};
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
class AXConversationImageFileTypeProvider extends AXFileTypeInfoProvider {
|
|
72
|
+
items() {
|
|
73
|
+
return Promise.resolve([createConversationImageFileType()]);
|
|
74
|
+
}
|
|
75
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationImageFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
76
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationImageFileTypeProvider, providedIn: 'root' }); }
|
|
77
|
+
}
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationImageFileTypeProvider, decorators: [{
|
|
79
|
+
type: Injectable,
|
|
80
|
+
args: [{ providedIn: 'root' }]
|
|
81
|
+
}] });
|
|
82
|
+
|
|
83
|
+
export { AXConversationImageFileTypeProvider, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, conversationImageUtilities, createConversationImageFileType };
|
|
84
|
+
//# sourceMappingURL=acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/image-picker/conversation-image.file-type.js"],"sourcesContent":["import { AXFileTypeInfoProvider, createFileTypeMetadata } from '@acorex/core/file';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { AX_CONVERSATION_IMAGE_CATALOG } from '../../../../models/message-file-type-catalog';\nimport { normalizeImagePayload } from '../../../message-list/components/image-renderer/image.payload';\nimport { formatFileSize } from '../shared/media-formatters';\nimport * as i0 from \"@angular/core\";\nexport { AX_CONVERSATION_IMAGE_CATALOG };\nconst MB = 1024 * 1024;\nexport const AX_CONVERSATION_IMAGE_PRESENTATION = {\n icon: 'fa-light fa-image ax-text-purple-500',\n title: 'Image',\n};\nconst IMAGE_UTILITY = {\n preview: 'preview',\n formatSize: 'formatSize',\n createLocalPreviewUrl: 'createLocalPreviewUrl',\n};\nfunction blobUrl(ctx, blob) {\n if (!isPlatformBrowser(ctx.platformId)) {\n return '';\n }\n return URL.createObjectURL(blob);\n}\nexport function conversationImageUtilities() {\n return {\n [IMAGE_UTILITY.preview]: (ctx, file) => ctx.readAsDataUrl(file),\n [IMAGE_UTILITY.formatSize]: (_ctx, bytes) => formatFileSize(bytes),\n [IMAGE_UTILITY.createLocalPreviewUrl]: (ctx, source) => {\n const blob = source;\n if (blob.type.startsWith('image/')) {\n return ctx.readAsDataUrl(blob);\n }\n return blobUrl(ctx, blob);\n },\n };\n}\nexport function createConversationImageFileType() {\n const presentation = AX_CONVERSATION_IMAGE_PRESENTATION;\n return {\n name: AX_CONVERSATION_IMAGE_CATALOG,\n metadata: createFileTypeMetadata('conversation'),\n title: presentation.title,\n icon: presentation.icon,\n validations: {\n mimeTypes: ['image/*'],\n minSize: 1,\n maxSize: 100 * MB,\n },\n extensions: [\n { name: 'jpg', title: 'JPEG' },\n { name: 'jpeg', title: 'JPEG', validations: { maxSize: 5 * MB } },\n { name: 'png', title: 'PNG' },\n { name: 'gif', title: 'GIF' },\n { name: 'webp', title: 'WebP' },\n { name: 'svg', title: 'SVG', validations: { maxSize: 2 * MB } },\n ],\n utilities: conversationImageUtilities(),\n copy: (payload) => {\n const image = normalizeImagePayload(payload);\n const caption = image.caption?.trim();\n const urls = image.images\n .map((item) => item.url?.trim() || item.thumbnailUrl?.trim())\n .filter((url) => !!url);\n return {\n text: caption ?? '',\n meta: { kind: 'image', caption, urls, count: image.images.length },\n };\n },\n };\n}\nexport class AXConversationImageFileTypeProvider extends AXFileTypeInfoProvider {\n items() {\n return Promise.resolve([createConversationImageFileType()]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationImageFileTypeProvider, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationImageFileTypeProvider, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationImageFileTypeProvider, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVyc2F0aW9uLWltYWdlLmZpbGUtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvcGx1Z2lucy9jb21wb3Nlci9jb21wb25lbnRzL2ltYWdlLXBpY2tlci9jb252ZXJzYXRpb24taW1hZ2UuZmlsZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUU1RCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsQ0FBQztBQUV6QyxNQUFNLEVBQUUsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHO0lBQ2hELElBQUksRUFBRSxzQ0FBc0M7SUFDNUMsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBT1gsTUFBTSxhQUFhLEdBQUc7SUFDcEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIscUJBQXFCLEVBQUUsdUJBQXVCO0NBQ3RDLENBQUM7QUFFWCxTQUFTLE9BQU8sQ0FBQyxHQUEyQixFQUFFLElBQVU7SUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFD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RUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTthQUNuRSxDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBR0QsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLHNCQUFzQjtJQUM3RSxLQUFLO1FBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsK0JBQStCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQzs4R0FIVSxtQ0FBbUM7a0hBQW5DLG1DQUFtQyxjQUR0QixNQUFNOzsyRkFDbkIsbUNBQW1DO2tCQUQvQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVhGaWxlQ29weURhdGEsIEFYRmlsZVR5cGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyLCBjcmVhdGVGaWxlVHlwZU1ldGFkYXRhIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBBWEltYWdlUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBWF9DT05WRVJTQVRJT05fSU1BR0VfQ0FUQUxPRyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9tZXNzYWdlLWZpbGUtdHlwZS1jYXRhbG9nJztcbmltcG9ydCB7IG5vcm1hbGl6ZUltYWdlUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL21lc3NhZ2UtbGlzdC9jb21wb25lbnRzL2ltYWdlLXJlbmRlcmVyL2ltYWdlLnBheWxvYWQnO1xuaW1wb3J0IHsgZm9ybWF0RmlsZVNpemUgfSBmcm9tICcuLi9zaGFyZWQvbWVkaWEtZm9ybWF0dGVycyc7XG5cbmV4cG9ydCB7IEFYX0NPTlZFUlNBVElPTl9JTUFHRV9DQVRBTE9HIH07XG5cbmNvbnN0IE1CID0gMTAyNCAqIDEwMjQ7XG5cbmV4cG9ydCBjb25zdCBBWF9DT05WRVJTQVRJT05fSU1BR0VfUFJFU0VOVEFUSU9OID0ge1xuICBpY29uOiAnZmEtbGlnaHQgZmEtaW1hZ2UgYXgtdGV4dC1wdXJwbGUtNTAwJyxcbiAgdGl0bGU6ICdJbWFnZScsXG59IGFzIGNvbnN0O1xuXG50eXBlIEZpbGVUeXBlVXRpbGl0eUNvbnRleHQgPSB7XG4gIHJlYWRBc0RhdGFVcmw6IChmaWxlOiBGaWxlIHwgQmxvYikgPT4gUHJvbWlzZTxzdHJpbmc+O1xuICBwbGF0Zm9ybUlkOiBvYmplY3Q7XG59O1xuXG5jb25zdCBJTUFHRV9VVElMSVRZID0ge1xuICBwcmV2aWV3OiAncHJldmlldycsXG4gIGZvcm1hdFNpemU6ICdmb3JtYXRTaXplJyxcbiAgY3JlYXRlTG9jYWxQcmV2aWV3VXJsOiAnY3JlYXRlTG9jYWxQcmV2aWV3VXJsJyxcbn0gYXMgY29uc3Q7XG5cbmZ1bmN0aW9uIGJsb2JVcmwoY3R4OiBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBibG9iOiBCbG9iKTogc3RyaW5nIHtcbiAgaWYgKCFpc1BsYXRmb3JtQnJvd3NlcihjdHgucGxhdGZvcm1JZCkpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cbiAgcmV0dXJuIFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJzYXRpb25JbWFnZVV0aWxpdGllcygpOiBOb25OdWxsYWJsZTxBWEZpbGVUeXBlWyd1dGlsaXRpZXMnXT4ge1xuICByZXR1cm4ge1xuICAgIFtJTUFHRV9VVElMSVRZLnByZXZpZXddOiAoY3R4LCBmaWxlKSA9PiAoY3R4IGFzIEZpbGVUeXBlVXRpbGl0eUNvbnRleHQpLnJlYWRBc0RhdGFVcmwoZmlsZSBhcyBGaWxlKSxcbiAgICBbSU1BR0VfVVRJTElUWS5mb3JtYXRTaXplXTogKF9jdHgsIGJ5dGVzKSA9PiBmb3JtYXRGaWxlU2l6ZShieXRlcyBhcyBudW1iZXIpLFxuICAgIFtJTUFHRV9VVElMSVRZLmNyZWF0ZUxvY2FsUHJldmlld1VybF06IChjdHgsIHNvdXJjZSkgPT4ge1xuICAgICAgY29uc3QgYmxvYiA9IHNvdXJjZSBhcyBGaWxlIHwgQmxvYjtcbiAgICAgIGlmIChibG9iLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcbiAgICAgICAgcmV0dXJuIChjdHggYXMgRmlsZVR5cGVVdGlsaXR5Q29udGV4dCkucmVhZEFzRGF0YVVybChibG9iKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBibG9iVXJsKGN0eCBhcyBGaWxlVHlwZVV0aWxpdHlDb250ZXh0LCBibG9iKTtcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ29udmVyc2F0aW9uSW1hZ2VGaWxlVHlwZSgpOiBBWEZpbGVUeXBlIHtcbiAgY29uc3QgcHJlc2VudGF0aW9uID0gQVhfQ09OVkVSU0FUSU9OX0lNQUdFX1BSRVNFTlRBVElPTjtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBBWF9DT05WRVJTQVRJT05fSU1BR0VfQ0FUQUxPRyxcbiAgICBtZXRhZGF0YTogY3JlYXRlRmlsZVR5cGVNZXRhZGF0YSgnY29udmVyc2F0aW9uJyksXG4gICAgdGl0bGU6IHByZXNlbnRhdGlvbi50aXRsZSxcbiAgICBpY29uOiBwcmVzZW50YXRpb24uaWNvbixcbiAgICB2YWxpZGF0aW9uczoge1xuICAgICAgbWltZVR5cGVzOiBbJ2ltYWdlLyonXSxcbiAgICAgIG1pblNpemU6IDEsXG4gICAgICBtYXhTaXplOiAxMDAgKiBNQixcbiAgICB9LFxuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgIHsgbmFtZTogJ2pwZycsIHRpdGxlOiAnSlBFRycgfSxcbiAgICAgIHsgbmFtZTogJ2pwZWcnLCB0aXRsZTogJ0pQRUcnLCB2YWxpZGF0aW9uczogeyBtYXhTaXplOiA1ICogTUIgfSB9LFxuICAgICAgeyBuYW1lOiAncG5nJywgdGl0bGU6ICdQTkcnIH0sXG4gICAgICB7IG5hbWU6ICdnaWYnLCB0aXRsZTogJ0dJRicgfSxcbiAgICAgIHsgbmFtZTogJ3dlYnAnLCB0aXRsZTogJ1dlYlAnIH0sXG4gICAgICB7IG5hbWU6ICdzdmcnLCB0aXRsZTogJ1NWRycsIHZhbGlkYXRpb25zOiB7IG1heFNpemU6IDIgKiBNQiB9IH0sXG4gICAgXSxcbiAgICB1dGlsaXRpZXM6IGNvbnZlcnNhdGlvbkltYWdlVXRpbGl0aWVzKCksXG4gICAgY29weTogKHBheWxvYWQpOiBBWEZpbGVDb3B5RGF0YSA9PiB7XG4gICAgICBjb25zdCBpbWFnZSA9IG5vcm1hbGl6ZUltYWdlUGF5bG9hZChwYXlsb2FkIGFzIEFYSW1hZ2VQYXlsb2FkKTtcbiAgICAgIGNvbnN0IGNhcHRpb24gPSBpbWFnZS5jYXB0aW9uPy50cmltKCk7XG4gICAgICBjb25zdCB1cmxzID0gaW1hZ2UuaW1hZ2VzXG4gICAgICAgIC5tYXAoKGl0ZW0pID0+IGl0ZW0udXJsPy50cmltKCkgfHwgaXRlbS50aHVtYm5haWxVcmw/LnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcigodXJsKTogdXJsIGlzIHN0cmluZyA9PiAhIXVybCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiBjYXB0aW9uID8/ICcnLFxuICAgICAgICBtZXRhOiB7IGtpbmQ6ICdpbWFnZScsIGNhcHRpb24sIHVybHMsIGNvdW50OiBpbWFnZS5pbWFnZXMubGVuZ3RoIH0sXG4gICAgICB9O1xuICAgIH0sXG4gIH07XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25JbWFnZUZpbGVUeXBlUHJvdmlkZXIgZXh0ZW5kcyBBWEZpbGVUeXBlSW5mb1Byb3ZpZGVyIHtcbiAgaXRlbXMoKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbY3JlYXRlQ29udmVyc2F0aW9uSW1hZ2VGaWxlVHlwZSgpXSk7XG4gIH1cbn1cbiJdfQ=="],"names":[],"mappings":"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"}
|