@acorex/components 20.8.32 → 20.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/conversation/README.md +462 -2
- package/conversation/index.d.ts +5400 -485
- package/fesm2022/acorex-components-calendar.mjs +3 -2
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs +13711 -0
- package/fesm2022/acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-attachment.component-Ri-Jx210.mjs +119 -0
- package/fesm2022/acorex-components-conversation-audio-attachment.component-Ri-Jx210.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-composer.payload-DiMDlVl9.mjs +59 -0
- package/fesm2022/acorex-components-conversation-audio-composer.payload-DiMDlVl9.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-picker.component-CqrKBDIF.mjs +432 -0
- package/fesm2022/acorex-components-conversation-audio-picker.component-CqrKBDIF.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio-renderer.component-CO8owVrA.mjs +177 -0
- package/fesm2022/acorex-components-conversation-audio-renderer.component-CO8owVrA.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-audio.payload-CLnYjmYY.mjs +54 -0
- package/fesm2022/acorex-components-conversation-audio.payload-CLnYjmYY.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-D-hIBwQ2.mjs +100 -0
- package/fesm2022/acorex-components-conversation-conversation-audio.file-type-D-hIBwQ2.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-file.file-type-DQUy3C64.mjs +121 -0
- package/fesm2022/acorex-components-conversation-conversation-file.file-type-DQUy3C64.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-image.file-type-Bd_SkwR0.mjs +84 -0
- package/fesm2022/acorex-components-conversation-conversation-image.file-type-Bd_SkwR0.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BalIIAFB.mjs +238 -0
- package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BalIIAFB.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BJMo9bDd.mjs +1080 -0
- package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BJMo9bDd.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-video.file-type-DyK0bLE5.mjs +102 -0
- package/fesm2022/acorex-components-conversation-conversation-video.file-type-DyK0bLE5.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-conversation-voice.file-type-v3rFWDv6.mjs +90 -0
- package/fesm2022/acorex-components-conversation-conversation-voice.file-type-v3rFWDv6.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-DOQkZWwP.mjs +44 -0
- package/fesm2022/acorex-components-conversation-fallback-renderer.component-DOQkZWwP.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-composer.payload-azPSH99m.mjs +64 -0
- package/fesm2022/acorex-components-conversation-file-composer.payload-azPSH99m.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-picker.component-cmUkgSF3.mjs +468 -0
- package/fesm2022/acorex-components-conversation-file-picker.component-cmUkgSF3.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs +125 -0
- package/fesm2022/acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-file.payload-DXwzNWxT.mjs +50 -0
- package/fesm2022/acorex-components-conversation-file.payload-DXwzNWxT.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-BZto5LFo.mjs +77 -0
- package/fesm2022/acorex-components-conversation-image-attachment.component-BZto5LFo.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-picker.component-G9EEOyDg.mjs +407 -0
- package/fesm2022/acorex-components-conversation-image-picker.component-G9EEOyDg.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-image-renderer.component-Bwa6rG6C.mjs +83 -0
- package/fesm2022/acorex-components-conversation-image-renderer.component-Bwa6rG6C.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-DtGEWeKN.mjs +266 -0
- package/fesm2022/acorex-components-conversation-index-DtGEWeKN.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-location-picker.component-Cx993j_c.mjs +149 -0
- package/fesm2022/acorex-components-conversation-location-picker.component-Cx993j_c.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-location-renderer.component-BiynmAJw.mjs +118 -0
- package/fesm2022/acorex-components-conversation-location-renderer.component-BiynmAJw.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-a7OSpfB1.mjs +140 -0
- package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-a7OSpfB1.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-D_eAnM6v.mjs +33 -0
- package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-D_eAnM6v.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-message-renderer-state.component-DSnNoz1N.mjs +172 -0
- package/fesm2022/acorex-components-conversation-message-renderer-state.component-DSnNoz1N.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-CbNyy2Ws.mjs +224 -0
- package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-CbNyy2Ws.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-pagination-demo-data-DRr9PXjJ.mjs +81 -0
- package/fesm2022/acorex-components-conversation-pagination-demo-data-DRr9PXjJ.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-CpyS0j6P.mjs +537 -0
- package/fesm2022/acorex-components-conversation-picker-toolbar.component-CpyS0j6P.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-BMsx6Fuy.mjs +68 -0
- package/fesm2022/acorex-components-conversation-playback-banner-sync-BMsx6Fuy.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-renderer-shared.styles-Digah3Zn.mjs +95 -0
- package/fesm2022/acorex-components-conversation-renderer-shared.styles-Digah3Zn.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-search.component-96NI2ERG.mjs +187 -0
- package/fesm2022/acorex-components-conversation-search.component-96NI2ERG.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-send-message-media--Rbrne7k.mjs +170 -0
- package/fesm2022/acorex-components-conversation-send-message-media--Rbrne7k.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-shared-storage.seed-zFjNXfKF.mjs +750 -0
- package/fesm2022/acorex-components-conversation-shared-storage.seed-zFjNXfKF.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-sticker-renderer.component-BZgx_Ylk.mjs +103 -0
- package/fesm2022/acorex-components-conversation-sticker-renderer.component-BZgx_Ylk.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-system-renderer.component-D1Aj-LuF.mjs +55 -0
- package/fesm2022/acorex-components-conversation-system-renderer.component-D1Aj-LuF.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-text-renderer.component-Cxvwjr2p.mjs +109 -0
- package/fesm2022/acorex-components-conversation-text-renderer.component-Cxvwjr2p.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-attachment.component-DBY_4Ri2.mjs +105 -0
- package/fesm2022/acorex-components-conversation-video-attachment.component-DBY_4Ri2.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-composer.payload-CWGxsPg5.mjs +62 -0
- package/fesm2022/acorex-components-conversation-video-composer.payload-CWGxsPg5.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-picker.component-D1JYwEm_.mjs +446 -0
- package/fesm2022/acorex-components-conversation-video-picker.component-D1JYwEm_.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video-renderer.component-iwf2bU29.mjs +181 -0
- package/fesm2022/acorex-components-conversation-video-renderer.component-iwf2bU29.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-video.payload-DfBEjqQ4.mjs +54 -0
- package/fesm2022/acorex-components-conversation-video.payload-DfBEjqQ4.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-P8J_5OH0.mjs +328 -0
- package/fesm2022/acorex-components-conversation-voice-recorder.component-P8J_5OH0.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation-voice-renderer.component-CZpEqbXL.mjs +270 -0
- package/fesm2022/acorex-components-conversation-voice-renderer.component-CZpEqbXL.mjs.map +1 -0
- package/fesm2022/acorex-components-conversation.mjs +1 -1402
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +2 -2
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +2 -2
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +22 -14
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +2 -2
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view-legacy.mjs +2 -2
- package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
- package/package.json +35 -39
- package/scheduler-picker/index.d.ts +2 -0
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-file-picker.component-cmUkgSF3.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/file-picker/file-picker.component.js"],"sourcesContent":["/**\n * File Picker Component\n * General-purpose file attachment interface for the composer\n */\nimport { AXUploaderService } from '@acorex/cdk/uploader';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXToastService } from '@acorex/components/toast';\nimport { AXFileService, AXFileTypeRegistryService, runFileTypeUtility, runFileTypeUtilityForFile } from '@acorex/core/file';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { Component, PLATFORM_ID, computed, inject, input, signal } from '@angular/core';\nimport { AXConversationComposerService } from '../../../../components/composer/composer.service';\nimport { AXConversationPickerFooterComponent } from '../picker-footer/picker-footer.component';\nimport { AXConversationPickerHeaderComponent } from '../picker-header/picker-header.component';\nimport { AXConversationPickerCaptionComponent } from '../shared/picker-caption.component';\nimport { AXConversationPickerEmptyComponent } from '../shared/picker-empty.component';\nimport { AX_CONVERSATION_PICKER_SHARED_STYLES } from '../shared/picker-shared.styles';\nimport { AXConversationPickerShellComponent } from '../shared/picker-shell.component';\nimport { AXConversationPickerToolbarComponent } from '../shared/picker-toolbar.component';\nimport { cleanupPickerUploads, dismissComposerPickerHost, getPickerCancelUploadLabel, isUploadAborted, seedPickerInitialFiles, limitFilesToCapacity, notifyMaxFilesCapacityExceeded, notifyPickerValidationErrors, pickerItemToUploadResult, uploadPickerFile, } from '../shared/picker-upload';\nimport { fileItemFromUpload } from './file-composer.payload';\nimport { AX_CONVERSATION_FILE_CATALOG, AX_CONVERSATION_FILE_PRESENTATION, createConversationFileFileType } from './index';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/progress-bar\";\nexport class AXConversationFilePickerComponent {\n get composerService() {\n const svc = this.service() ?? this.composerServiceFromInjector;\n if (!svc) {\n throw new Error('AXConversationComposerService is required for the file picker');\n }\n return svc;\n }\n constructor() {\n this.uploadsDismissed = false;\n this.retainUploadedOnDismiss = false;\n this.uploader = inject(AXUploaderService);\n this.fileService = inject(AXFileService);\n this.fileTypeRegistry = inject(AXFileTypeRegistryService);\n this.platformId = inject(PLATFORM_ID);\n this.service = input(...(ngDevMode ? [undefined, { debugName: \"service\" }] : []));\n this.composerServiceFromInjector = inject(AXConversationComposerService, { optional: true });\n this.toast = inject(AXToastService);\n this.translation = inject(AXTranslationService);\n this.conversation = input.required(...(ngDevMode ? [{ debugName: \"conversation\" }] : []));\n this.maxFiles = input(10, ...(ngDevMode ? [{ debugName: \"maxFiles\" }] : []));\n this.initialFiles = input([], ...(ngDevMode ? [{ debugName: \"initialFiles\" }] : []));\n this.__popup__ = input(...(ngDevMode ? [undefined, { debugName: \"__popup__\" }] : []));\n this.catalogFileType = AX_CONVERSATION_FILE_CATALOG;\n this.allowMultiple = computed(() => this.maxFiles() > 1, ...(ngDevMode ? [{ debugName: \"allowMultiple\" }] : []));\n this.files = signal([], ...(ngDevMode ? [{ debugName: \"files\" }] : []));\n this.isDragging = signal(false, ...(ngDevMode ? [{ debugName: \"isDragging\" }] : []));\n this.isUploading = signal(false, ...(ngDevMode ? [{ debugName: \"isUploading\" }] : []));\n this.emptyIconClass = computed(() => this.isDragging() ? 'fa-light fa-cloud-arrow-up' : AX_CONVERSATION_FILE_PRESENTATION.icon, ...(ngDevMode ? [{ debugName: \"emptyIconClass\" }] : []));\n this.caption = '';\n this.fileTypeRegistry.registerTypes([createConversationFileFileType()]);\n seedPickerInitialFiles(this.initialFiles, (files) => this.handleFiles(files));\n }\n createUtilityContext() {\n return {\n readAsDataUrl: (file) => this.fileService.blobToBase64(file),\n platformId: this.platformId,\n };\n }\n async getCatalogFileTypeDef() {\n this.catalogFileTypeDef ??= await this.fileService.getFileType(this.catalogFileType);\n return this.catalogFileTypeDef;\n }\n pickerKind(catalogName) {\n if (catalogName === 'conversation-image')\n return 'image';\n if (catalogName === 'conversation-video')\n return 'video';\n if (catalogName === 'conversation-audio')\n return 'audio';\n return 'file';\n }\n async handleFiles(fileList) {\n const max = this.maxFiles();\n const capacity = limitFilesToCapacity(fileList, this.files().length, max);\n if (capacity.length < fileList.length) {\n notifyMaxFilesCapacityExceeded(this.toast, this.translation, max);\n }\n if (capacity.length === 0) {\n return;\n }\n const { accepted, rejected } = await this.uploader.validateFiles(capacity, this.catalogFileType);\n notifyPickerValidationErrors(this.toast, this.translation, rejected);\n const fileType = await this.getCatalogFileTypeDef();\n const ctx = this.createUtilityContext();\n for (const file of accepted) {\n try {\n const previewResult = fileType\n ? await runFileTypeUtilityForFile(fileType, ctx, file, 'preview')\n : undefined;\n const rowCatalogResult = fileType\n ? await runFileTypeUtilityForFile(fileType, ctx, file, 'pickerCatalog')\n : undefined;\n const preview = typeof previewResult === 'string' ? previewResult : undefined;\n const rowCatalog = typeof rowCatalogResult === 'string' ? rowCatalogResult : this.catalogFileType;\n const rowType = await this.fileService.getFileType(rowCatalog);\n const icon = rowType?.icon ?? fileType?.icon ?? 'fa-light fa-file';\n const pickerKind = this.pickerKind(rowCatalog);\n let fileIndex = -1;\n this.files.update((files) => {\n fileIndex = files.length;\n return [...files, { file, preview, icon, type: pickerKind, uploadProgress: 0, uploading: true }];\n });\n if (fileIndex >= 0) {\n void this.uploadFile(fileIndex, file);\n }\n }\n catch (error) {\n console.error('Failed to process file:', error);\n }\n }\n }\n async uploadFile(index, file) {\n const abortController = new AbortController();\n this.files.update((files) => {\n const updated = [...files];\n updated[index] = { ...updated[index], abortController };\n return updated;\n });\n try {\n const result = await this.uploadFileWithProgress(file, (progress) => {\n this.updateFileProgress(index, progress, true);\n }, abortController.signal);\n this.updateFileProgress(index, 100, false, true, result.url, result.mediaId);\n }\n catch (error) {\n if (this.uploadsDismissed || isUploadAborted(error, abortController.signal)) {\n return;\n }\n console.error('Failed to upload file:', error);\n this.updateFileProgress(index, 0, false, false, undefined, undefined, this.translation.translateSync('@acorex:chat.errors.upload-failed'));\n }\n }\n removeFile(index) {\n const item = this.files()[index];\n if (item) {\n cleanupPickerUploads(this.uploader, [item]);\n }\n this.files.update((files) => files.filter((_, i) => i !== index));\n }\n async sendFiles() {\n const fileList = this.files();\n if (fileList.length === 0)\n return;\n // Check if all files are uploaded\n const allUploaded = fileList.every((f) => f.uploaded && !f.error);\n if (!allUploaded) {\n console.warn('Some files are still uploading or failed');\n return;\n }\n const files = fileList.flatMap((f) => {\n const result = pickerItemToUploadResult(f);\n return result ? [fileItemFromUpload(f.file, result)] : [];\n });\n if (files.length === 0) {\n return;\n }\n const command = {\n conversationId: this.conversation().id,\n type: 'file',\n payload: {\n type: 'file',\n files,\n caption: this.caption.trim() || undefined,\n },\n };\n this.retainUploadedOnDismiss = true;\n const popup = this.__popup__();\n this.dismissPicker();\n dismissComposerPickerHost(this.composerService, popup);\n void this.composerService.sendMessage(command).catch(() => {\n this.retainUploadedOnDismiss = false;\n });\n }\n updateFileProgress(index, progress, uploading, uploaded = false, uploadedUrl, mediaId, error) {\n if (this.uploadsDismissed) {\n return;\n }\n this.files.update((files) => {\n const updated = [...files];\n updated[index] = {\n ...updated[index],\n uploadProgress: progress,\n uploading,\n uploaded,\n uploadedUrl,\n mediaId,\n error,\n };\n return updated;\n });\n }\n async uploadFileWithProgress(file, onProgress, signal) {\n return uploadPickerFile(this.uploader, this.conversation().id, file, onProgress, signal);\n }\n cancel() {\n this.dismissPicker();\n dismissComposerPickerHost(this.composerService, this.__popup__());\n }\n ngOnDestroy() {\n this.dismissPicker();\n }\n dismissPicker() {\n if (this.uploadsDismissed) {\n return;\n }\n this.uploadsDismissed = true;\n const snapshot = [...this.files()];\n cleanupPickerUploads(this.uploader, snapshot, {\n retainUploaded: this.retainUploadedOnDismiss,\n });\n this.retainUploadedOnDismiss = false;\n this.files.set([]);\n this.caption = '';\n }\n getCancelUploadLabel() {\n return getPickerCancelUploadLabel(this.translation);\n }\n formatFileSize(bytes) {\n const fileType = this.catalogFileTypeDef;\n const result = fileType\n ? runFileTypeUtility(fileType, this.createUtilityContext(), undefined, 'formatSize', bytes)\n : undefined;\n return typeof result === 'string' ? result : `${bytes} B`;\n }\n canSend() {\n const fileList = this.files();\n if (fileList.length === 0)\n return false;\n // Can send if all files are uploaded and no errors\n return fileList.every((f) => f.uploaded && !f.error && !f.uploading);\n }\n getSendButtonText() {\n const fileList = this.files();\n const uploadingCount = fileList.filter((f) => f.uploading).length;\n const uploadedCount = fileList.filter((f) => f.uploaded).length;\n if (uploadingCount > 0) {\n return this.translation.translateSync('@acorex:chat.pickers.files.uploading-count', {\n params: { count: uploadingCount },\n });\n }\n if (uploadedCount === fileList.length) {\n return this.translation.translateSync('@acorex:chat.pickers.files.send-count', {\n params: { count: fileList.length },\n });\n }\n return this.translation.translateSync('@acorex:chat.pickers.files.ready-count', {\n params: { ready: uploadedCount, total: fileList.length },\n });\n }\n getEmptyTitle() {\n return this.isDragging()\n ? this.translation.translateSync('@acorex:chat.pickers.files.drop-here')\n : this.translation.translateSync('@acorex:chat.pickers.files.select');\n }\n getEmptySubtitle() {\n return this.isDragging()\n ? this.translation.translateSync('@acorex:chat.pickers.common.release-to-upload')\n : this.translation.translateSync('@acorex:chat.pickers.common.click-to-browse');\n }\n getSelectedCountText() {\n return this.translation.translateSync('@acorex:chat.pickers.files.selected-count', {\n params: { count: this.files().length },\n });\n }\n getUploadingLabel(progress) {\n return this.translation.translateSync('@acorex:chat.pickers.files.uploading-progress', {\n params: { progress },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFilePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationFilePickerComponent, isStandalone: true, selector: \"ax-conversation-file-picker\", inputs: { service: { classPropertyName: \"service\", publicName: \"service\", isSignal: true, isRequired: false, transformFunction: null }, conversation: { classPropertyName: \"conversation\", publicName: \"conversation\", isSignal: true, isRequired: true, transformFunction: null }, maxFiles: { classPropertyName: \"maxFiles\", publicName: \"maxFiles\", isSignal: true, isRequired: false, transformFunction: null }, initialFiles: { classPropertyName: \"initialFiles\", publicName: \"initialFiles\", isSignal: true, isRequired: false, transformFunction: null }, __popup__: { classPropertyName: \"__popup__\", publicName: \"__popup__\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n <ax-conversation-picker-shell\n [fileType]=\"catalogFileType\"\n [multiple]=\"allowMultiple()\"\n (filesSelected)=\"handleFiles($event)\"\n (dragEnter)=\"isDragging.set(true)\"\n (dragLeave)=\"isDragging.set(false)\"\n >\n <ax-conversation-picker-header [title]=\"translation.translateSync('@acorex:chat.pickers.files.title')\" (onClose)=\"cancel()\" />\n\n <div class=\"ax-conversation-picker__scroll\">\n @if (files().length === 0) {\n <ax-conversation-picker-empty\n [title]=\"getEmptyTitle()\"\n [hint]=\"getEmptySubtitle()\"\n [iconClass]=\"emptyIconClass()\"\n [dragOver]=\"isDragging()\"\n />\n } @else {\n <div class=\"ax-conversation-picker__body\">\n <ax-conversation-picker-toolbar\n [countLabel]=\"getSelectedCountText()\"\n [addMoreLabel]=\"translation.translateSync('@acorex:chat.pickers.common.add-more')\"\n />\n\n <div class=\"ax-conversation-picker__list\">\n @for (file of files(); track $index) {\n <div class=\"ax-conversation-picker__row\">\n <div class=\"ax-conversation-picker__thumb\">\n @if (file.type === 'image' && file.preview) {\n <img [src]=\"file.preview\" [alt]=\"file.file.name\" />\n } @else {\n <i [class]=\"file.icon\"></i>\n }\n </div>\n <div class=\"ax-conversation-picker__details\">\n <div class=\"ax-conversation-picker__name\">{{ file.file.name }}</div>\n <div class=\"ax-conversation-picker__status\">\n @if (file.uploading) {\n <span>{{ getUploadingLabel(file.uploadProgress ?? 0) }}</span>\n } @else if (file.uploaded) {\n <span class=\"ax-conversation-picker__status--ok\"\n ><i class=\"fa-light fa-check\"></i>\n {{ translation.translateSync('@acorex:chat.pickers.files.uploaded') }}</span\n >\n } @else if (file.error) {\n <span class=\"ax-conversation-picker__status--err\"\n ><i class=\"fa-light fa-xmark\"></i> {{ file.error }}</span\n >\n } @else {\n <span>{{ formatFileSize(file.file.size) }}</span>\n }\n </div>\n @if (file.uploading || file.uploaded) {\n <div class=\"ax-conversation-picker__progress\">\n <ax-progress-bar [progress]=\"file.uploadProgress || 0\" [mode]=\"'determinate'\" [height]=\"3\" />\n </div>\n }\n </div>\n <button\n type=\"button\"\n class=\"ax-conversation-picker__remove\"\n (click)=\"removeFile($index)\"\n [attr.aria-label]=\"\n file.uploading\n ? getCancelUploadLabel()\n : translation.translateSync('@acorex:chat.pickers.common.remove')\n \"\n >\n <i class=\"fa-light fa-xmark\"></i>\n </button>\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <ax-conversation-picker-caption [(caption)]=\"caption\" />\n\n @if (files().length > 0) {\n <ax-conversation-picker-footer\n [sendText]=\"getSendButtonText()\"\n [sendDisabled]=\"!canSend()\"\n (onCancel)=\"cancel()\"\n (onSend)=\"sendFiles()\"\n />\n }\n </ax-conversation-picker-shell>\n `, isInline: true, styles: [\":host{display:block;width:100%;max-width:100%;min-height:0}.ax-conversation-picker__scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ax-conversation-picker__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;min-height:8.5rem;margin:.75rem;padding:1rem .75rem;border:1px dashed rgb(var(--ax-sys-color-border-surface));border-radius:var(--ax-sys-border-radius, .5rem);cursor:pointer;transition:border-color .15s ease,background-color .15s ease;text-align:center;touch-action:manipulation}.ax-conversation-picker__empty:hover,.ax-conversation-picker__empty--drag{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06)}.ax-conversation-picker__empty-icon{font-size:1.75rem;line-height:1;color:rgba(var(--ax-sys-color-on-surface),.55)}.ax-conversation-picker__empty-title{margin:0;font-size:.8125rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.ax-conversation-picker__empty-hint{margin:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6)}.ax-conversation-picker__body{padding:0 .75rem .75rem}.ax-conversation-picker__list{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-conversation-picker__row{display:flex;align-items:center;gap:.625rem;padding:.5rem .625rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .375rem);background:rgb(var(--ax-sys-color-surface));transition:background-color .15s ease}@media (hover: hover){.ax-conversation-picker__row:hover{background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-picker__thumb{position:relative;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),.08);color:rgb(var(--ax-sys-color-primary-500));font-size:1.125rem;overflow:hidden}.ax-conversation-picker__thumb img,.ax-conversation-picker__thumb video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.ax-conversation-picker__thumb-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000052;color:rgb(var(--ax-sys-color-light));font-size:.625rem;pointer-events:none}.ax-conversation-picker__details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-picker__name{font-size:.8125rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-picker__status{display:flex;flex-wrap:wrap;gap:.375rem;font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-picker__status--ok{color:rgb(var(--ax-sys-color-success-600));font-weight:500}.ax-conversation-picker__status--err{color:rgb(var(--ax-sys-color-danger-600));font-weight:500}.ax-conversation-picker__progress{width:100%;margin-top:.125rem}.ax-conversation-picker__remove{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;flex-shrink:0;border:none;border-radius:var(--ax-sys-border-radius, .25rem);background:transparent;color:rgba(var(--ax-sys-color-on-surface),.55);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}.ax-conversation-picker__remove:hover,.ax-conversation-picker__remove:focus-visible{background:rgba(var(--ax-sys-color-danger-500),.1);color:rgb(var(--ax-sys-color-danger-500));outline:none}.ax-conversation-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:.5rem}.ax-conversation-picker__tile{position:relative;aspect-ratio:1;border-radius:var(--ax-sys-border-radius, .375rem);overflow:hidden;border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-light-surface))}.ax-conversation-picker__tile img{width:100%;height:100%;object-fit:cover;display:block}.ax-conversation-picker__tile-remove{position:absolute;top:.25rem;inset-inline-end:.25rem;z-index:2;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:50%;background:rgb(var(--ax-sys-color-danger-500));color:rgb(var(--ax-sys-color-light));font-size:.6875rem;cursor:pointer;touch-action:manipulation;box-shadow:0 1px 3px #0003}.ax-conversation-picker__tile-overlay{position:absolute;inset-inline:0;bottom:0;padding:.25rem;background:linear-gradient(transparent,#0000008c)}.ax-conversation-picker__tile-status{font-size:.625rem;color:rgb(var(--ax-sys-color-light));line-height:1.2}.ax-conversation-picker__caption-slot{flex-shrink:0;padding:.5rem .75rem;border-top:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-lightest-surface))}.ax-conversation-picker__input-hidden{display:none}@container picker (max-width: 480px){.ax-conversation-picker__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem}.ax-conversation-picker__row{padding:.4375rem .5rem;gap:.5rem}.ax-conversation-picker__thumb{width:2.25rem;height:2.25rem}.ax-conversation-picker__empty{min-height:7.5rem;margin:.5rem}.ax-conversation-picker__body{padding-inline:.5rem;padding-bottom:.5rem}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: AXProgressBarModule }, { kind: \"component\", type: i1.AXProgressBarComponent, selector: \"ax-progress-bar\", inputs: [\"color\", \"mode\", \"progress\", \"height\"], outputs: [\"ValueChange\", \"sizeChange\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"component\", type: AXConversationPickerHeaderComponent, selector: \"ax-conversation-picker-header\", inputs: [\"title\"], outputs: [\"onClose\"] }, { kind: \"component\", type: AXConversationPickerFooterComponent, selector: \"ax-conversation-picker-footer\", inputs: [\"sendText\", \"sendDisabled\"], outputs: [\"onCancel\", \"onSend\"] }, { kind: \"component\", type: AXConversationPickerEmptyComponent, selector: \"ax-conversation-picker-empty\", inputs: [\"title\", \"hint\", \"iconClass\", \"dragOver\"] }, { kind: \"component\", type: AXConversationPickerToolbarComponent, selector: \"ax-conversation-picker-toolbar\", inputs: [\"countLabel\", \"addMoreLabel\"] }, { kind: \"component\", type: AXConversationPickerCaptionComponent, selector: \"ax-conversation-picker-caption\", inputs: [\"caption\"], outputs: [\"captionChange\"] }, { kind: \"component\", type: AXConversationPickerShellComponent, selector: \"ax-conversation-picker-shell\", inputs: [\"fileType\", \"multiple\"], outputs: [\"filesSelected\", \"dragEnter\", \"dragLeave\", \"dragOver\"] }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFilePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-file-picker', imports: [\n CommonModule,\n AXProgressBarModule,\n AXTranslationModule,\n AXConversationPickerHeaderComponent,\n AXConversationPickerFooterComponent,\n AXConversationPickerEmptyComponent,\n AXConversationPickerToolbarComponent,\n AXConversationPickerCaptionComponent,\n AXConversationPickerShellComponent,\n ], template: `\n <ax-conversation-picker-shell\n [fileType]=\"catalogFileType\"\n [multiple]=\"allowMultiple()\"\n (filesSelected)=\"handleFiles($event)\"\n (dragEnter)=\"isDragging.set(true)\"\n (dragLeave)=\"isDragging.set(false)\"\n >\n <ax-conversation-picker-header [title]=\"translation.translateSync('@acorex:chat.pickers.files.title')\" (onClose)=\"cancel()\" />\n\n <div class=\"ax-conversation-picker__scroll\">\n @if (files().length === 0) {\n <ax-conversation-picker-empty\n [title]=\"getEmptyTitle()\"\n [hint]=\"getEmptySubtitle()\"\n [iconClass]=\"emptyIconClass()\"\n [dragOver]=\"isDragging()\"\n />\n } @else {\n <div class=\"ax-conversation-picker__body\">\n <ax-conversation-picker-toolbar\n [countLabel]=\"getSelectedCountText()\"\n [addMoreLabel]=\"translation.translateSync('@acorex:chat.pickers.common.add-more')\"\n />\n\n <div class=\"ax-conversation-picker__list\">\n @for (file of files(); track $index) {\n <div class=\"ax-conversation-picker__row\">\n <div class=\"ax-conversation-picker__thumb\">\n @if (file.type === 'image' && file.preview) {\n <img [src]=\"file.preview\" [alt]=\"file.file.name\" />\n } @else {\n <i [class]=\"file.icon\"></i>\n }\n </div>\n <div class=\"ax-conversation-picker__details\">\n <div class=\"ax-conversation-picker__name\">{{ file.file.name }}</div>\n <div class=\"ax-conversation-picker__status\">\n @if (file.uploading) {\n <span>{{ getUploadingLabel(file.uploadProgress ?? 0) }}</span>\n } @else if (file.uploaded) {\n <span class=\"ax-conversation-picker__status--ok\"\n ><i class=\"fa-light fa-check\"></i>\n {{ translation.translateSync('@acorex:chat.pickers.files.uploaded') }}</span\n >\n } @else if (file.error) {\n <span class=\"ax-conversation-picker__status--err\"\n ><i class=\"fa-light fa-xmark\"></i> {{ file.error }}</span\n >\n } @else {\n <span>{{ formatFileSize(file.file.size) }}</span>\n }\n </div>\n @if (file.uploading || file.uploaded) {\n <div class=\"ax-conversation-picker__progress\">\n <ax-progress-bar [progress]=\"file.uploadProgress || 0\" [mode]=\"'determinate'\" [height]=\"3\" />\n </div>\n }\n </div>\n <button\n type=\"button\"\n class=\"ax-conversation-picker__remove\"\n (click)=\"removeFile($index)\"\n [attr.aria-label]=\"\n file.uploading\n ? getCancelUploadLabel()\n : translation.translateSync('@acorex:chat.pickers.common.remove')\n \"\n >\n <i class=\"fa-light fa-xmark\"></i>\n </button>\n </div>\n }\n </div>\n </div>\n }\n </div>\n\n <ax-conversation-picker-caption [(caption)]=\"caption\" />\n\n @if (files().length > 0) {\n <ax-conversation-picker-footer\n [sendText]=\"getSendButtonText()\"\n [sendDisabled]=\"!canSend()\"\n (onCancel)=\"cancel()\"\n (onSend)=\"sendFiles()\"\n />\n }\n </ax-conversation-picker-shell>\n `, styles: [\":host{display:block;width:100%;max-width:100%;min-height:0}.ax-conversation-picker__scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ax-conversation-picker__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;min-height:8.5rem;margin:.75rem;padding:1rem .75rem;border:1px dashed rgb(var(--ax-sys-color-border-surface));border-radius:var(--ax-sys-border-radius, .5rem);cursor:pointer;transition:border-color .15s ease,background-color .15s ease;text-align:center;touch-action:manipulation}.ax-conversation-picker__empty:hover,.ax-conversation-picker__empty--drag{border-color:rgb(var(--ax-sys-color-primary-500));background:rgba(var(--ax-sys-color-primary-500),.06)}.ax-conversation-picker__empty-icon{font-size:1.75rem;line-height:1;color:rgba(var(--ax-sys-color-on-surface),.55)}.ax-conversation-picker__empty-title{margin:0;font-size:.8125rem;font-weight:600;color:rgb(var(--ax-sys-color-on-surface))}.ax-conversation-picker__empty-hint{margin:0;font-size:.75rem;color:rgba(var(--ax-sys-color-on-surface),.6)}.ax-conversation-picker__body{padding:0 .75rem .75rem}.ax-conversation-picker__list{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.ax-conversation-picker__row{display:flex;align-items:center;gap:.625rem;padding:.5rem .625rem;border:1px solid rgb(var(--ax-sys-color-border-light-surface));border-radius:var(--ax-sys-border-radius, .375rem);background:rgb(var(--ax-sys-color-surface));transition:background-color .15s ease}@media (hover: hover){.ax-conversation-picker__row:hover{background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-picker__thumb{position:relative;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),.08);color:rgb(var(--ax-sys-color-primary-500));font-size:1.125rem;overflow:hidden}.ax-conversation-picker__thumb img,.ax-conversation-picker__thumb video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.ax-conversation-picker__thumb-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000052;color:rgb(var(--ax-sys-color-light));font-size:.625rem;pointer-events:none}.ax-conversation-picker__details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-picker__name{font-size:.8125rem;font-weight:500;color:rgb(var(--ax-sys-color-on-surface));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-picker__status{display:flex;flex-wrap:wrap;gap:.375rem;font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-picker__status--ok{color:rgb(var(--ax-sys-color-success-600));font-weight:500}.ax-conversation-picker__status--err{color:rgb(var(--ax-sys-color-danger-600));font-weight:500}.ax-conversation-picker__progress{width:100%;margin-top:.125rem}.ax-conversation-picker__remove{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;flex-shrink:0;border:none;border-radius:var(--ax-sys-border-radius, .25rem);background:transparent;color:rgba(var(--ax-sys-color-on-surface),.55);font-size:1rem;cursor:pointer;touch-action:manipulation;transition:background-color .15s ease,color .15s ease}.ax-conversation-picker__remove:hover,.ax-conversation-picker__remove:focus-visible{background:rgba(var(--ax-sys-color-danger-500),.1);color:rgb(var(--ax-sys-color-danger-500));outline:none}.ax-conversation-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.25rem,1fr));gap:.5rem}.ax-conversation-picker__tile{position:relative;aspect-ratio:1;border-radius:var(--ax-sys-border-radius, .375rem);overflow:hidden;border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-light-surface))}.ax-conversation-picker__tile img{width:100%;height:100%;object-fit:cover;display:block}.ax-conversation-picker__tile-remove{position:absolute;top:.25rem;inset-inline-end:.25rem;z-index:2;display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border:none;border-radius:50%;background:rgb(var(--ax-sys-color-danger-500));color:rgb(var(--ax-sys-color-light));font-size:.6875rem;cursor:pointer;touch-action:manipulation;box-shadow:0 1px 3px #0003}.ax-conversation-picker__tile-overlay{position:absolute;inset-inline:0;bottom:0;padding:.25rem;background:linear-gradient(transparent,#0000008c)}.ax-conversation-picker__tile-status{font-size:.625rem;color:rgb(var(--ax-sys-color-light));line-height:1.2}.ax-conversation-picker__caption-slot{flex-shrink:0;padding:.5rem .75rem;border-top:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-lightest-surface))}.ax-conversation-picker__input-hidden{display:none}@container picker (max-width: 480px){.ax-conversation-picker__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.375rem}.ax-conversation-picker__row{padding:.4375rem .5rem;gap:.5rem}.ax-conversation-picker__thumb{width:2.25rem;height:2.25rem}.ax-conversation-picker__empty{min-height:7.5rem;margin:.5rem}.ax-conversation-picker__body{padding-inline:.5rem;padding-bottom:.5rem}}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9wbHVnaW5zL2NvbXBvc2VyL2NvbXBvbmVudHMvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFtQixNQUFNLG1CQUFtQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFhLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFakcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9DQUFvQyxF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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQsc3ZLQW5HQyxZQUFZLDhCQUNaLG1CQUFtQiw0TUFDbkIsbUJBQW1CLCtCQUNuQixtQ0FBbUMsbUhBQ25DLG1DQUFtQyxpSkFDbkMsa0NBQWtDLDZIQUNsQyxvQ0FBb0MsbUhBQ3BDLG9DQUFvQyw0SEFDcEMsa0NBQWtDOzsyRkE4RnpCLGlDQUFpQztrQkF6RzdDLFNBQVM7K0JBQ0UsNkJBQTZCLFdBQzlCO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1DQUFtQzt3QkFDbkMsbUNBQW1DO3dCQUNuQyxrQ0FBa0M7d0JBQ2xDLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxrQ0FBa0M7cUJBQ25DLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUZUIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGaWxlIFBpY2tlciBDb21wb25lbnRcbiAqIEdlbmVyYWwtcHVycG9zZSBmaWxlIGF0dGFjaG1lbnQgaW50ZXJmYWNlIGZvciB0aGUgY29tcG9zZXJcbiAqL1xuXG5pbXBvcnQgeyBBWFVwbG9hZGVyU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY2RrL3VwbG9hZGVyJztcbmltcG9ydCB7IEFYUHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcHJvZ3Jlc3MtYmFyJztcbmltcG9ydCB0eXBlIHsgQVhQb3B1cFJlZiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XG5pbXBvcnQgeyBBWFRvYXN0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b2FzdCc7XG5pbXBvcnQgeyBBWEZpbGVTZXJ2aWNlLCBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlLCBydW5GaWxlVHlwZVV0aWxpdHksIHJ1bkZpbGVUeXBlVXRpbGl0eUZvckZpbGUsIHR5cGUgQVhGaWxlVHlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS9maWxlJztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUsIEFYVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgUExBVEZPUk1fSUQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uQ29tcG9zZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cy9jb21wb3Nlci9jb21wb3Nlci5zZXJ2aWNlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uLCBBWENvbnZlcnNhdGlvblNlbmRNZXNzYWdlQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblBpY2tlckZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL3BpY2tlci1mb290ZXIvcGlja2VyLWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25QaWNrZXJIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuLi9waWNrZXItaGVhZGVyL3BpY2tlci1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uUGlja2VyQ2FwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9waWNrZXItY2FwdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25QaWNrZXJFbXB0eUNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9waWNrZXItZW1wdHkuY29tcG9uZW50JztcbmltcG9ydCB7IEFYX0NPTlZFUlNBVElPTl9QSUNLRVJfU0hBUkVEX1NUWUxFUyB9IGZyb20gJy4uL3NoYXJlZC9waWNrZXItc2hhcmVkLnN0eWxlcyc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblBpY2tlclNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL3BpY2tlci1zaGVsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25QaWNrZXJUb29sYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL3BpY2tlci10b29sYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBjbGVhbnVwUGlja2VyVXBsb2FkcyxcbiAgZGlzbWlzc0NvbXBvc2VyUGlja2VySG9zdCxcbiAgZ2V0UGlja2VyQ2FuY2VsVXBsb2FkTGFiZWwsXG4gIGlzVXBsb2FkQWJvcnRlZCxcbiAgc2VlZFBpY2tlckluaXRpYWxGaWxlcyxcbiAgbGltaXRGaWxlc1RvQ2FwYWNpdHksXG4gIG5vdGlmeU1heEZpbGVzQ2FwYWNpdHlFeGNlZWRlZCxcbiAgbm90aWZ5UGlja2VyVmFsaWRhdGlvbkVycm9ycyxcbiAgcGlja2VySXRlbVRvVXBsb2FkUmVzdWx0LFxuICB1cGxvYWRQaWNrZXJGaWxlLFxufSBmcm9tICcuLi9zaGFyZWQvcGlja2VyLXVwbG9hZCc7XG5pbXBvcnQgeyBmaWxlSXRlbUZyb21VcGxvYWQgfSBmcm9tICcuL2ZpbGUtY29tcG9zZXIucGF5bG9hZCc7XG5pbXBvcnQgeyBBWF9DT05WRVJTQVRJT05fRklMRV9DQVRBTE9HLCBBWF9DT05WRVJTQVRJT05fRklMRV9QUkVTRU5UQVRJT04sIGNyZWF0ZUNvbnZlcnNhdGlvbkZpbGVGaWxlVHlwZSB9IGZyb20gJy4vaW5kZXgnO1xuXG5pbnRlcmZhY2UgQVhDb252ZXJzYXRpb25BdHRhY2hlZEZpbGUge1xuICBmaWxlOiBGaWxlO1xuICBwcmV2aWV3Pzogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIHR5cGU6ICdpbWFnZScgfCAndmlkZW8nIHwgJ2F1ZGlvJyB8ICdmaWxlJztcbiAgdXBsb2FkUHJvZ3Jlc3M/OiBudW1iZXI7XG4gIHVwbG9hZGluZz86IGJvb2xlYW47XG4gIHVwbG9hZGVkPzogYm9vbGVhbjtcbiAgdXBsb2FkZWRVcmw/OiBzdHJpbmc7XG4gIG1lZGlhSWQ/OiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xuICBhYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1maWxlLXBpY2tlcicsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQVhQcm9ncmVzc0Jhck1vZHVsZSxcbiAgICBBWFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEFYQ29udmVyc2F0aW9uUGlja2VySGVhZGVyQ29tcG9uZW50LFxuICAgIEFYQ29udmVyc2F0aW9uUGlja2VyRm9vdGVyQ29tcG9uZW50LFxuICAgIEFYQ29udmVyc2F0aW9uUGlja2VyRW1wdHlDb21wb25lbnQsXG4gICAgQVhDb252ZXJzYXRpb25QaWNrZXJUb29sYmFyQ29tcG9uZW50LFxuICAgIEFYQ29udmVyc2F0aW9uUGlja2VyQ2FwdGlvbkNvbXBvbmVudCxcbiAgICBBWENvbnZlcnNhdGlvblBpY2tlclNoZWxsQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLXNoZWxsXG4gICAgICBbZmlsZVR5cGVdPVwiY2F0YWxvZ0ZpbGVUeXBlXCJcbiAgICAgIFttdWx0aXBsZV09XCJhbGxvd011bHRpcGxlKClcIlxuICAgICAgKGZpbGVzU2VsZWN0ZWQpPVwiaGFuZGxlRmlsZXMoJGV2ZW50KVwiXG4gICAgICAoZHJhZ0VudGVyKT1cImlzRHJhZ2dpbmcuc2V0KHRydWUpXCJcbiAgICAgIChkcmFnTGVhdmUpPVwiaXNEcmFnZ2luZy5zZXQoZmFsc2UpXCJcbiAgICA+XG4gICAgICA8YXgtY29udmVyc2F0aW9uLXBpY2tlci1oZWFkZXIgW3RpdGxlXT1cInRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnRpdGxlJylcIiAob25DbG9zZSk9XCJjYW5jZWwoKVwiIC8+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX19zY3JvbGxcIj5cbiAgICAgICAgQGlmIChmaWxlcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLWVtcHR5XG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0RW1wdHlUaXRsZSgpXCJcbiAgICAgICAgICAgIFtoaW50XT1cImdldEVtcHR5U3VidGl0bGUoKVwiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cImVtcHR5SWNvbkNsYXNzKClcIlxuICAgICAgICAgICAgW2RyYWdPdmVyXT1cImlzRHJhZ2dpbmcoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX2JvZHlcIj5cbiAgICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLXRvb2xiYXJcbiAgICAgICAgICAgICAgW2NvdW50TGFiZWxdPVwiZ2V0U2VsZWN0ZWRDb3VudFRleHQoKVwiXG4gICAgICAgICAgICAgIFthZGRNb3JlTGFiZWxdPVwidHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuY29tbW9uLmFkZC1tb3JlJylcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX2xpc3RcIj5cbiAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlcygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLXBpY2tlcl9fcm93XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLXBpY2tlcl9fdGh1bWJcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChmaWxlLnR5cGUgPT09ICdpbWFnZScgJiYgZmlsZS5wcmV2aWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImZpbGUucHJldmlld1wiIFthbHRdPVwiZmlsZS5maWxlLm5hbWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiZmlsZS5pY29uXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX19kZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX19uYW1lXCI+e3sgZmlsZS5maWxlLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX3N0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS51cGxvYWRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGdldFVwbG9hZGluZ0xhYmVsKGZpbGUudXBsb2FkUHJvZ3Jlc3MgPz8gMCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZmlsZS51cGxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX19zdGF0dXMtLW9rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtY2hlY2tcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnVwbG9hZGVkJykgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChmaWxlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX3N0YXR1cy0tZXJyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPjxpIGNsYXNzPVwiZmEtbGlnaHQgZmEteG1hcmtcIj48L2k+IHt7IGZpbGUuZXJyb3IgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGZvcm1hdEZpbGVTaXplKGZpbGUuZmlsZS5zaXplKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGZpbGUudXBsb2FkaW5nIHx8IGZpbGUudXBsb2FkZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLXBpY2tlcl9fcHJvZ3Jlc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcm9ncmVzcy1iYXIgW3Byb2dyZXNzXT1cImZpbGUudXBsb2FkUHJvZ3Jlc3MgfHwgMFwiIFttb2RlXT1cIidkZXRlcm1pbmF0ZSdcIiBbaGVpZ2h0XT1cIjNcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLXBpY2tlcl9fcmVtb3ZlXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUZpbGUoJGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgZmlsZS51cGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0Q2FuY2VsVXBsb2FkTGFiZWwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5jb21tb24ucmVtb3ZlJylcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bWFya1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLWNhcHRpb24gWyhjYXB0aW9uKV09XCJjYXB0aW9uXCIgLz5cblxuICAgICAgQGlmIChmaWxlcygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPGF4LWNvbnZlcnNhdGlvbi1waWNrZXItZm9vdGVyXG4gICAgICAgICAgW3NlbmRUZXh0XT1cImdldFNlbmRCdXR0b25UZXh0KClcIlxuICAgICAgICAgIFtzZW5kRGlzYWJsZWRdPVwiIWNhblNlbmQoKVwiXG4gICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAob25TZW5kKT1cInNlbmRGaWxlcygpXCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICA8L2F4LWNvbnZlcnNhdGlvbi1waWNrZXItc2hlbGw+XG4gIGAsXG4gIHN0eWxlczogW0FYX0NPTlZFUlNBVElPTl9QSUNLRVJfU0hBUkVEX1NUWUxFU10sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uRmlsZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgdXBsb2Fkc0Rpc21pc3NlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJldGFpblVwbG9hZGVkT25EaXNtaXNzID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXBsb2FkZXIgPSBpbmplY3QoQVhVcGxvYWRlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVTZXJ2aWNlID0gaW5qZWN0KEFYRmlsZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVUeXBlUmVnaXN0cnkgPSBpbmplY3QoQVhGaWxlVHlwZVJlZ2lzdHJ5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIHJlYWRvbmx5IHNlcnZpY2UgPSBpbnB1dDxBWENvbnZlcnNhdGlvbkNvbXBvc2VyU2VydmljZSB8IHVuZGVmaW5lZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21wb3NlclNlcnZpY2VGcm9tSW5qZWN0b3IgPSBpbmplY3QoQVhDb252ZXJzYXRpb25Db21wb3NlclNlcnZpY2UsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSBnZXQgY29tcG9zZXJTZXJ2aWNlKCk6IEFYQ29udmVyc2F0aW9uQ29tcG9zZXJTZXJ2aWNlIHtcbiAgICBjb25zdCBzdmMgPSB0aGlzLnNlcnZpY2UoKSA/PyB0aGlzLmNvbXBvc2VyU2VydmljZUZyb21JbmplY3RvcjtcbiAgICBpZiAoIXN2Yykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBWENvbnZlcnNhdGlvbkNvbXBvc2VyU2VydmljZSBpcyByZXF1aXJlZCBmb3IgdGhlIGZpbGUgcGlja2VyJyk7XG4gICAgfVxuICAgIHJldHVybiBzdmM7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdCA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYW5zbGF0aW9uID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICByZWFkb25seSBjb252ZXJzYXRpb24gPSBpbnB1dC5yZXF1aXJlZDxBWENvbnZlcnNhdGlvbj4oKTtcbiAgcmVhZG9ubHkgbWF4RmlsZXMgPSBpbnB1dDxudW1iZXI+KDEwKTtcbiAgcmVhZG9ubHkgaW5pdGlhbEZpbGVzID0gaW5wdXQ8RmlsZVtdPihbXSk7XG4gIHJlYWRvbmx5IF9fcG9wdXBfXyA9IGlucHV0PEFYUG9wdXBSZWYgfCB1bmRlZmluZWQ+KCk7XG5cbiAgcmVhZG9ubHkgY2F0YWxvZ0ZpbGVUeXBlID0gQVhfQ09OVkVSU0FUSU9OX0ZJTEVfQ0FUQUxPRztcblxuICByZWFkb25seSBhbGxvd011bHRpcGxlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXhGaWxlcygpID4gMSk7XG5cbiAgcmVhZG9ubHkgZmlsZXMgPSBzaWduYWw8QVhDb252ZXJzYXRpb25BdHRhY2hlZEZpbGVbXT4oW10pO1xuICByZWFkb25seSBpc0RyYWdnaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgaXNVcGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBlbXB0eUljb25DbGFzcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pc0RyYWdnaW5nKCkgPyAnZmEtbGlnaHQgZmEtY2xvdWQtYXJyb3ctdXAnIDogQVhfQ09OVkVSU0FUSU9OX0ZJTEVfUFJFU0VOVEFUSU9OLmljb24sXG4gICk7XG5cbiAgcHJpdmF0ZSBjYXRhbG9nRmlsZVR5cGVEZWY/OiBBWEZpbGVUeXBlO1xuICBjYXB0aW9uID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5maWxlVHlwZVJlZ2lzdHJ5LnJlZ2lzdGVyVHlwZXMoW2NyZWF0ZUNvbnZlcnNhdGlvbkZpbGVGaWxlVHlwZSgpXSk7XG4gICAgc2VlZFBpY2tlckluaXRpYWxGaWxlcyh0aGlzLmluaXRpYWxGaWxlcywgKGZpbGVzKSA9PiB0aGlzLmhhbmRsZUZpbGVzKGZpbGVzKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVV0aWxpdHlDb250ZXh0KCkge1xuICAgIHJldHVybiB7XG4gICAgICByZWFkQXNEYXRhVXJsOiAoZmlsZTogRmlsZSB8IEJsb2IpID0+IHRoaXMuZmlsZVNlcnZpY2UuYmxvYlRvQmFzZTY0KGZpbGUpLFxuICAgICAgcGxhdGZvcm1JZDogdGhpcy5wbGF0Zm9ybUlkLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldENhdGFsb2dGaWxlVHlwZURlZigpOiBQcm9taXNlPEFYRmlsZVR5cGUgfCB1bmRlZmluZWQ+IHtcbiAgICB0aGlzLmNhdGFsb2dGaWxlVHlwZURlZiA/Pz0gYXdhaXQgdGhpcy5maWxlU2VydmljZS5nZXRGaWxlVHlwZSh0aGlzLmNhdGFsb2dGaWxlVHlwZSk7XG4gICAgcmV0dXJuIHRoaXMuY2F0YWxvZ0ZpbGVUeXBlRGVmO1xuICB9XG5cbiAgcHJpdmF0ZSBwaWNrZXJLaW5kKGNhdGFsb2dOYW1lOiBzdHJpbmcpOiBBWENvbnZlcnNhdGlvbkF0dGFjaGVkRmlsZVsndHlwZSddIHtcbiAgICBpZiAoY2F0YWxvZ05hbWUgPT09ICdjb252ZXJzYXRpb24taW1hZ2UnKSByZXR1cm4gJ2ltYWdlJztcbiAgICBpZiAoY2F0YWxvZ05hbWUgPT09ICdjb252ZXJzYXRpb24tdmlkZW8nKSByZXR1cm4gJ3ZpZGVvJztcbiAgICBpZiAoY2F0YWxvZ05hbWUgPT09ICdjb252ZXJzYXRpb24tYXVkaW8nKSByZXR1cm4gJ2F1ZGlvJztcbiAgICByZXR1cm4gJ2ZpbGUnO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlRmlsZXMoZmlsZUxpc3Q6IEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4RmlsZXMoKTtcbiAgICBjb25zdCBjYXBhY2l0eSA9IGxpbWl0RmlsZXNUb0NhcGFjaXR5KGZpbGVMaXN0LCB0aGlzLmZpbGVzKCkubGVuZ3RoLCBtYXgpO1xuICAgIGlmIChjYXBhY2l0eS5sZW5ndGggPCBmaWxlTGlzdC5sZW5ndGgpIHtcbiAgICAgIG5vdGlmeU1heEZpbGVzQ2FwYWNpdHlFeGNlZWRlZCh0aGlzLnRvYXN0LCB0aGlzLnRyYW5zbGF0aW9uLCBtYXgpO1xuICAgIH1cbiAgICBpZiAoY2FwYWNpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBhY2NlcHRlZCwgcmVqZWN0ZWQgfSA9IGF3YWl0IHRoaXMudXBsb2FkZXIudmFsaWRhdGVGaWxlcyhjYXBhY2l0eSwgdGhpcy5jYXRhbG9nRmlsZVR5cGUpO1xuXG4gICAgbm90aWZ5UGlja2VyVmFsaWRhdGlvbkVycm9ycyh0aGlzLnRvYXN0LCB0aGlzLnRyYW5zbGF0aW9uLCByZWplY3RlZCk7XG5cbiAgICBjb25zdCBmaWxlVHlwZSA9IGF3YWl0IHRoaXMuZ2V0Q2F0YWxvZ0ZpbGVUeXBlRGVmKCk7XG4gICAgY29uc3QgY3R4ID0gdGhpcy5jcmVhdGVVdGlsaXR5Q29udGV4dCgpO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGFjY2VwdGVkKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcmV2aWV3UmVzdWx0ID0gZmlsZVR5cGVcbiAgICAgICAgICA/IGF3YWl0IHJ1bkZpbGVUeXBlVXRpbGl0eUZvckZpbGUoZmlsZVR5cGUsIGN0eCwgZmlsZSwgJ3ByZXZpZXcnKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCByb3dDYXRhbG9nUmVzdWx0ID0gZmlsZVR5cGVcbiAgICAgICAgICA/IGF3YWl0IHJ1bkZpbGVUeXBlVXRpbGl0eUZvckZpbGUoZmlsZVR5cGUsIGN0eCwgZmlsZSwgJ3BpY2tlckNhdGFsb2cnKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBwcmV2aWV3ID0gdHlwZW9mIHByZXZpZXdSZXN1bHQgPT09ICdzdHJpbmcnID8gcHJldmlld1Jlc3VsdCA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3Qgcm93Q2F0YWxvZyA9IHR5cGVvZiByb3dDYXRhbG9nUmVzdWx0ID09PSAnc3RyaW5nJyA/IHJvd0NhdGFsb2dSZXN1bHQgOiB0aGlzLmNhdGFsb2dGaWxlVHlwZTtcbiAgICAgICAgY29uc3Qgcm93VHlwZSA9IGF3YWl0IHRoaXMuZmlsZVNlcnZpY2UuZ2V0RmlsZVR5cGUocm93Q2F0YWxvZyk7XG4gICAgICAgIGNvbnN0IGljb24gPSByb3dUeXBlPy5pY29uID8/IGZpbGVUeXBlPy5pY29uID8/ICdmYS1saWdodCBmYS1maWxlJztcbiAgICAgICAgY29uc3QgcGlja2VyS2luZCA9IHRoaXMucGlja2VyS2luZChyb3dDYXRhbG9nKTtcblxuICAgICAgICBsZXQgZmlsZUluZGV4ID0gLTE7XG4gICAgICAgIHRoaXMuZmlsZXMudXBkYXRlKChmaWxlcykgPT4ge1xuICAgICAgICAgIGZpbGVJbmRleCA9IGZpbGVzLmxlbmd0aDtcbiAgICAgICAgICByZXR1cm4gWy4uLmZpbGVzLCB7IGZpbGUsIHByZXZpZXcsIGljb24sIHR5cGU6IHBpY2tlcktpbmQsIHVwbG9hZFByb2dyZXNzOiAwLCB1cGxvYWRpbmc6IHRydWUgfV07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChmaWxlSW5kZXggPj0gMCkge1xuICAgICAgICAgIHZvaWQgdGhpcy51cGxvYWRGaWxlKGZpbGVJbmRleCwgZmlsZSk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBwcm9jZXNzIGZpbGU6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBsb2FkRmlsZShpbmRleDogbnVtYmVyLCBmaWxlOiBGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMuZmlsZXMudXBkYXRlKChmaWxlcykgPT4ge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IFsuLi5maWxlc107XG4gICAgICB1cGRhdGVkW2luZGV4XSA9IHsgLi4udXBkYXRlZFtpbmRleF0sIGFib3J0Q29udHJvbGxlciB9O1xuICAgICAgcmV0dXJuIHVwZGF0ZWQ7XG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy51cGxvYWRGaWxlV2l0aFByb2dyZXNzKFxuICAgICAgICBmaWxlLFxuICAgICAgICAocHJvZ3Jlc3MpID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUZpbGVQcm9ncmVzcyhpbmRleCwgcHJvZ3Jlc3MsIHRydWUpO1xuICAgICAgICB9LFxuICAgICAgICBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgKTtcblxuICAgICAgdGhpcy51cGRhdGVGaWxlUHJvZ3Jlc3MoaW5kZXgsIDEwMCwgZmFsc2UsIHRydWUsIHJlc3VsdC51cmwsIHJlc3VsdC5tZWRpYUlkKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKHRoaXMudXBsb2Fkc0Rpc21pc3NlZCB8fCBpc1VwbG9hZEFib3J0ZWQoZXJyb3IsIGFib3J0Q29udHJvbGxlci5zaWduYWwpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byB1cGxvYWQgZmlsZTonLCBlcnJvcik7XG4gICAgICB0aGlzLnVwZGF0ZUZpbGVQcm9ncmVzcyhcbiAgICAgICAgaW5kZXgsXG4gICAgICAgIDAsXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBmYWxzZSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgIHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LmVycm9ycy51cGxvYWQtZmFpbGVkJyksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUZpbGUoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbGVzKClbaW5kZXhdO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBjbGVhbnVwUGlja2VyVXBsb2Fkcyh0aGlzLnVwbG9hZGVyLCBbaXRlbV0pO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzLnVwZGF0ZSgoZmlsZXMpID0+IGZpbGVzLmZpbHRlcigoXywgaSkgPT4gaSAhPT0gaW5kZXgpKTtcbiAgfVxuXG4gIGFzeW5jIHNlbmRGaWxlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlTGlzdCA9IHRoaXMuZmlsZXMoKTtcbiAgICBpZiAoZmlsZUxpc3QubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAvLyBDaGVjayBpZiBhbGwgZmlsZXMgYXJlIHVwbG9hZGVkXG4gICAgY29uc3QgYWxsVXBsb2FkZWQgPSBmaWxlTGlzdC5ldmVyeSgoZikgPT4gZi51cGxvYWRlZCAmJiAhZi5lcnJvcik7XG4gICAgaWYgKCFhbGxVcGxvYWRlZCkge1xuICAgICAgY29uc29sZS53YXJuKCdTb21lIGZpbGVzIGFyZSBzdGlsbCB1cGxvYWRpbmcgb3IgZmFpbGVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZXMgPSBmaWxlTGlzdC5mbGF0TWFwKChmKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBwaWNrZXJJdGVtVG9VcGxvYWRSZXN1bHQoZik7XG4gICAgICByZXR1cm4gcmVzdWx0ID8gW2ZpbGVJdGVtRnJvbVVwbG9hZChmLmZpbGUsIHJlc3VsdCldIDogW107XG4gICAgfSk7XG5cbiAgICBpZiAoZmlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29tbWFuZDogQVhDb252ZXJzYXRpb25TZW5kTWVzc2FnZUNvbW1hbmQgPSB7XG4gICAgICBjb252ZXJzYXRpb25JZDogdGhpcy5jb252ZXJzYXRpb24oKS5pZCxcbiAgICAgIHR5cGU6ICdmaWxlJyxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgICBmaWxlcyxcbiAgICAgICAgY2FwdGlvbjogdGhpcy5jYXB0aW9uLnRyaW0oKSB8fCB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICB0aGlzLnJldGFpblVwbG9hZGVkT25EaXNtaXNzID0gdHJ1ZTtcbiAgICBjb25zdCBwb3B1cCA9IHRoaXMuX19wb3B1cF9fKCk7XG4gICAgdGhpcy5kaXNtaXNzUGlja2VyKCk7XG4gICAgZGlzbWlzc0NvbXBvc2VyUGlja2VySG9zdCh0aGlzLmNvbXBvc2VyU2VydmljZSwgcG9wdXApO1xuXG4gICAgdm9pZCB0aGlzLmNvbXBvc2VyU2VydmljZS5zZW5kTWVzc2FnZShjb21tYW5kKS5jYXRjaCgoKSA9PiB7XG4gICAgICB0aGlzLnJldGFpblVwbG9hZGVkT25EaXNtaXNzID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUZpbGVQcm9ncmVzcyhcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIHByb2dyZXNzOiBudW1iZXIsXG4gICAgdXBsb2FkaW5nOiBib29sZWFuLFxuICAgIHVwbG9hZGVkID0gZmFsc2UsXG4gICAgdXBsb2FkZWRVcmw/OiBzdHJpbmcsXG4gICAgbWVkaWFJZD86IHN0cmluZyxcbiAgICBlcnJvcj86IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXBsb2Fkc0Rpc21pc3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzLnVwZGF0ZSgoZmlsZXMpID0+IHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbLi4uZmlsZXNdO1xuICAgICAgdXBkYXRlZFtpbmRleF0gPSB7XG4gICAgICAgIC4uLnVwZGF0ZWRbaW5kZXhdLFxuICAgICAgICB1cGxvYWRQcm9ncmVzczogcHJvZ3Jlc3MsXG4gICAgICAgIHVwbG9hZGluZyxcbiAgICAgICAgdXBsb2FkZWQsXG4gICAgICAgIHVwbG9hZGVkVXJsLFxuICAgICAgICBtZWRpYUlkLFxuICAgICAgICBlcnJvcixcbiAgICAgIH07XG4gICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBsb2FkRmlsZVdpdGhQcm9ncmVzcyhcbiAgICBmaWxlOiBGaWxlLFxuICAgIG9uUHJvZ3Jlc3M6IChwcm9ncmVzczogbnVtYmVyKSA9PiB2b2lkLFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPHsgdXJsOiBzdHJpbmc7IG1lZGlhSWQ/OiBzdHJpbmc7IHRodW1ibmFpbFVybD86IHN0cmluZzsgc2l6ZTogbnVtYmVyOyBtaW1lVHlwZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdXBsb2FkUGlja2VyRmlsZSh0aGlzLnVwbG9hZGVyLCB0aGlzLmNvbnZlcnNhdGlvbigpLmlkLCBmaWxlLCBvblByb2dyZXNzLCBzaWduYWwpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzbWlzc1BpY2tlcigpO1xuICAgIGRpc21pc3NDb21wb3NlclBpY2tlckhvc3QodGhpcy5jb21wb3NlclNlcnZpY2UsIHRoaXMuX19wb3B1cF9fKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzUGlja2VyKCk7XG4gIH1cblxuICBwcml2YXRlIGRpc21pc3NQaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudXBsb2Fkc0Rpc21pc3NlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwbG9hZHNEaXNtaXNzZWQgPSB0cnVlO1xuICAgIGNvbnN0IHNuYXBzaG90ID0gWy4uLnRoaXMuZmlsZXMoKV07XG4gICAgY2xlYW51cFBpY2tlclVwbG9hZHModGhpcy51cGxvYWRlciwgc25hcHNob3QsIHtcbiAgICAgIHJldGFpblVwbG9hZGVkOiB0aGlzLnJldGFpblVwbG9hZGVkT25EaXNtaXNzLFxuICAgIH0pO1xuICAgIHRoaXMucmV0YWluVXBsb2FkZWRPbkRpc21pc3MgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVzLnNldChbXSk7XG4gICAgdGhpcy5jYXB0aW9uID0gJyc7XG4gIH1cblxuICBnZXRDYW5jZWxVcGxvYWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRQaWNrZXJDYW5jZWxVcGxvYWRMYWJlbCh0aGlzLnRyYW5zbGF0aW9uKTtcbiAgfVxuXG4gIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbGVUeXBlID0gdGhpcy5jYXRhbG9nRmlsZVR5cGVEZWY7XG4gICAgY29uc3QgcmVzdWx0ID0gZmlsZVR5cGVcbiAgICAgID8gcnVuRmlsZVR5cGVVdGlsaXR5KGZpbGVUeXBlLCB0aGlzLmNyZWF0ZVV0aWxpdHlDb250ZXh0KCksIHVuZGVmaW5lZCwgJ2Zvcm1hdFNpemUnLCBieXRlcylcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyA/IHJlc3VsdCA6IGAke2J5dGVzfSBCYDtcbiAgfVxuXG4gIGNhblNlbmQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZmlsZUxpc3QgPSB0aGlzLmZpbGVzKCk7XG4gICAgaWYgKGZpbGVMaXN0Lmxlbmd0aCA9PT0gMCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2FuIHNlbmQgaWYgYWxsIGZpbGVzIGFyZSB1cGxvYWRlZCBhbmQgbm8gZXJyb3JzXG4gICAgcmV0dXJuIGZpbGVMaXN0LmV2ZXJ5KChmKSA9PiBmLnVwbG9hZGVkICYmICFmLmVycm9yICYmICFmLnVwbG9hZGluZyk7XG4gIH1cblxuICBnZXRTZW5kQnV0dG9uVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZpbGVMaXN0ID0gdGhpcy5maWxlcygpO1xuICAgIGNvbnN0IHVwbG9hZGluZ0NvdW50ID0gZmlsZUxpc3QuZmlsdGVyKChmKSA9PiBmLnVwbG9hZGluZykubGVuZ3RoO1xuICAgIGNvbnN0IHVwbG9hZGVkQ291bnQgPSBmaWxlTGlzdC5maWx0ZXIoKGYpID0+IGYudXBsb2FkZWQpLmxlbmd0aDtcblxuICAgIGlmICh1cGxvYWRpbmdDb3VudCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnVwbG9hZGluZy1jb3VudCcsIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvdW50OiB1cGxvYWRpbmdDb3VudCB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHVwbG9hZGVkQ291bnQgPT09IGZpbGVMaXN0Lmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuZmlsZXMuc2VuZC1jb3VudCcsIHtcbiAgICAgICAgcGFyYW1zOiB7IGNvdW50OiBmaWxlTGlzdC5sZW5ndGggfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnJlYWR5LWNvdW50Jywge1xuICAgICAgcGFyYW1zOiB7IHJlYWR5OiB1cGxvYWRlZENvdW50LCB0b3RhbDogZmlsZUxpc3QubGVuZ3RoIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRFbXB0eVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNEcmFnZ2luZygpXG4gICAgICA/IHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuZmlsZXMuZHJvcC1oZXJlJylcbiAgICAgIDogdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5maWxlcy5zZWxlY3QnKTtcbiAgfVxuXG4gIGdldEVtcHR5U3VidGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc0RyYWdnaW5nKClcbiAgICAgID8gdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5jb21tb24ucmVsZWFzZS10by11cGxvYWQnKVxuICAgICAgOiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmNvbW1vbi5jbGljay10by1icm93c2UnKTtcbiAgfVxuXG4gIGdldFNlbGVjdGVkQ291bnRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuZmlsZXMuc2VsZWN0ZWQtY291bnQnLCB7XG4gICAgICBwYXJhbXM6IHsgY291bnQ6IHRoaXMuZmlsZXMoKS5sZW5ndGggfSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFVwbG9hZGluZ0xhYmVsKHByb2dyZXNzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnVwbG9hZGluZy1wcm9ncmVzcycsIHtcbiAgICAgIHBhcmFtczogeyBwcm9ncmVzcyB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { AXFileTypeRegistryService } from '@acorex/core/file';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { input, computed, ChangeDetectionStrategy, Component, inject } from '@angular/core';
|
|
5
|
+
import { normalizeFilePayload } from './acorex-components-conversation-file.payload-DXwzNWxT.mjs';
|
|
6
|
+
import { A as AXConversationMessageRendererCopyHostComponent, m as mediaCopyText } from './acorex-components-conversation-message-renderer-copy-host.component-D_eAnM6v.mjs';
|
|
7
|
+
import { w as toUploaderReference, x as createResolvedMediaUrlSignal, y as pickDisplayMediaUrl, l as copyWithFileTypeFallback } from './acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs';
|
|
8
|
+
import { a as formatFileByteSize } from './acorex-components-conversation-format-media-DUD4vA6F.mjs';
|
|
9
|
+
import { A as AXConversationMessageRendererStateComponent } from './acorex-components-conversation-message-renderer-state.component-DSnNoz1N.mjs';
|
|
10
|
+
import './acorex-components-conversation-renderer-shared.styles-Digah3Zn.mjs';
|
|
11
|
+
|
|
12
|
+
const AX_CONVERSATION_EXT_COLORS = {
|
|
13
|
+
pdf: 'rgb(var(--ax-sys-color-danger-500))',
|
|
14
|
+
doc: 'rgb(var(--ax-sys-color-primary-500))',
|
|
15
|
+
docx: 'rgb(var(--ax-sys-color-primary-500))',
|
|
16
|
+
xls: 'rgb(var(--ax-sys-color-success-500))',
|
|
17
|
+
xlsx: 'rgb(var(--ax-sys-color-success-500))',
|
|
18
|
+
ppt: 'rgb(var(--ax-sys-color-warning-500))',
|
|
19
|
+
pptx: 'rgb(var(--ax-sys-color-warning-500))',
|
|
20
|
+
zip: 'rgb(var(--ax-sys-color-secondary-600))',
|
|
21
|
+
};
|
|
22
|
+
class AXConversationFileAttachmentComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.item = input.required(...(ngDevMode ? [{ debugName: "item" }] : []));
|
|
25
|
+
this.mediaReference = computed(() => toUploaderReference(this.item()), ...(ngDevMode ? [{ debugName: "mediaReference" }] : []));
|
|
26
|
+
this.resolvedUrl = createResolvedMediaUrlSignal(this.mediaReference);
|
|
27
|
+
this.fileUrl = computed(() => pickDisplayMediaUrl(this.resolvedUrl(), this.item().url), ...(ngDevMode ? [{ debugName: "fileUrl" }] : []));
|
|
28
|
+
this.fileName = computed(() => this.item().name || 'file', ...(ngDevMode ? [{ debugName: "fileName" }] : []));
|
|
29
|
+
this.fileSize = computed(() => this.item().size ?? 0, ...(ngDevMode ? [{ debugName: "fileSize" }] : []));
|
|
30
|
+
this.fileExtension = computed(() => {
|
|
31
|
+
const name = this.fileName();
|
|
32
|
+
const parts = name.split('.');
|
|
33
|
+
return parts.length > 1 ? parts[parts.length - 1] : 'FILE';
|
|
34
|
+
}, ...(ngDevMode ? [{ debugName: "fileExtension" }] : []));
|
|
35
|
+
this.swatchColor = computed(() => {
|
|
36
|
+
const ext = this.fileExtension().toLowerCase();
|
|
37
|
+
return AX_CONVERSATION_EXT_COLORS[ext] ?? 'rgb(var(--ax-sys-color-secondary-500))';
|
|
38
|
+
}, ...(ngDevMode ? [{ debugName: "swatchColor" }] : []));
|
|
39
|
+
this.formattedSize = computed(() => formatFileByteSize(this.fileSize()), ...(ngDevMode ? [{ debugName: "formattedSize" }] : []));
|
|
40
|
+
}
|
|
41
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileAttachmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.3", type: AXConversationFileAttachmentComponent, isStandalone: true, selector: "ax-conversation-file-attachment", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
43
|
+
<a class="ax-conversation-file" [href]="fileUrl()" [download]="fileName()" target="_blank" rel="noopener noreferrer">
|
|
44
|
+
<span class="ax-conversation-file__badge" [style.background]="swatchColor()">{{ fileExtension() }}</span>
|
|
45
|
+
<span class="ax-conversation-file__body">
|
|
46
|
+
<span class="ax-conversation-file__name">{{ fileName() }}</span>
|
|
47
|
+
<span class="ax-conversation-file__meta">{{ formattedSize() }}</span>
|
|
48
|
+
</span>
|
|
49
|
+
<i class="fa-light fa-arrow-down-to-line ax-conversation-file__icon" aria-hidden="true"></i>
|
|
50
|
+
</a>
|
|
51
|
+
`, isInline: true, styles: [":host{display:block}.ax-conversation-file{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));text-decoration:none;touch-action:manipulation;transition:border-color .15s ease,background-color .15s ease}@media (hover: hover){.ax-conversation-file:hover{border-color:rgb(var(--ax-sys-color-primary-500));background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-file__badge{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius, .375rem);font-weight:600;font-size:.5625rem;text-transform:uppercase;color:rgb(var(--ax-sys-color-light))}.ax-conversation-file__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-file__name{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-file__meta{font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-file__icon{flex-shrink:0;font-size:.875rem;color:rgba(var(--ax-sys-color-on-surface),.55)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileAttachmentComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'ax-conversation-file-attachment', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
56
|
+
<a class="ax-conversation-file" [href]="fileUrl()" [download]="fileName()" target="_blank" rel="noopener noreferrer">
|
|
57
|
+
<span class="ax-conversation-file__badge" [style.background]="swatchColor()">{{ fileExtension() }}</span>
|
|
58
|
+
<span class="ax-conversation-file__body">
|
|
59
|
+
<span class="ax-conversation-file__name">{{ fileName() }}</span>
|
|
60
|
+
<span class="ax-conversation-file__meta">{{ formattedSize() }}</span>
|
|
61
|
+
</span>
|
|
62
|
+
<i class="fa-light fa-arrow-down-to-line ax-conversation-file__icon" aria-hidden="true"></i>
|
|
63
|
+
</a>
|
|
64
|
+
`, styles: [":host{display:block}.ax-conversation-file{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));text-decoration:none;touch-action:manipulation;transition:border-color .15s ease,background-color .15s ease}@media (hover: hover){.ax-conversation-file:hover{border-color:rgb(var(--ax-sys-color-primary-500));background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-file__badge{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius, .375rem);font-weight:600;font-size:.5625rem;text-transform:uppercase;color:rgb(var(--ax-sys-color-light))}.ax-conversation-file__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-file__name{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-file__meta{font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-file__icon{flex-shrink:0;font-size:.875rem;color:rgba(var(--ax-sys-color-on-surface),.55)}\n"] }]
|
|
65
|
+
}] });
|
|
66
|
+
|
|
67
|
+
class AXConversationFileRendererComponent extends AXConversationMessageRendererCopyHostComponent {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(...arguments);
|
|
70
|
+
this.fileTypes = inject(AXFileTypeRegistryService);
|
|
71
|
+
this.message = input.required(...(ngDevMode ? [{ debugName: "message" }] : []));
|
|
72
|
+
this.rendererState = computed(() => ({
|
|
73
|
+
deliveryStatus: this.message().status,
|
|
74
|
+
contentState: 'ready',
|
|
75
|
+
}), ...(ngDevMode ? [{ debugName: "rendererState" }] : []));
|
|
76
|
+
this.payload = computed(() => normalizeFilePayload(this.message().payload), ...(ngDevMode ? [{ debugName: "payload" }] : []));
|
|
77
|
+
this.files = computed(() => this.payload().files, ...(ngDevMode ? [{ debugName: "files" }] : []));
|
|
78
|
+
this.caption = computed(() => this.payload().caption?.trim() || '', ...(ngDevMode ? [{ debugName: "caption" }] : []));
|
|
79
|
+
}
|
|
80
|
+
copy() {
|
|
81
|
+
return copyWithFileTypeFallback(this.message(), this.fileTypes, () => {
|
|
82
|
+
const p = this.payload();
|
|
83
|
+
if (p.files.length === 1) {
|
|
84
|
+
const file = p.files[0];
|
|
85
|
+
const name = file.name?.trim() || 'File';
|
|
86
|
+
const url = file.url?.trim();
|
|
87
|
+
return url ? `${name}\n${url}` : name;
|
|
88
|
+
}
|
|
89
|
+
return mediaCopyText(p.caption, 'File', 'files', p.files.length, p.files.map((file) => file.name?.trim() || file.url?.trim()));
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationFileRendererComponent, isStandalone: true, selector: "ax-conversation-file-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
94
|
+
<div class="ax-conversation-msg ax-conversation-msg--wide">
|
|
95
|
+
<ax-conversation-message-renderer-state [rendererState]="rendererState()" [message]="message()" />
|
|
96
|
+
<div class="ax-conversation-msg__stack">
|
|
97
|
+
@for (file of files(); track file.mediaId ?? file.url) {
|
|
98
|
+
<ax-conversation-file-attachment [item]="file" />
|
|
99
|
+
}
|
|
100
|
+
</div>
|
|
101
|
+
@if (caption()) {
|
|
102
|
+
<p class="ax-conversation-msg__caption">{{ caption() }}</p>
|
|
103
|
+
}
|
|
104
|
+
</div>
|
|
105
|
+
`, isInline: true, styles: [":host{display:block;max-width:100%}.ax-conversation-msg,.ax-conversation-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-conversation-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-conversation-msg__grid--single{grid-template-columns:1fr}.ax-conversation-msg__grid--single ::ng-deep .ax-conversation-image-attachment{max-height:min(50dvh,20rem)}.ax-conversation-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-conversation-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@container (max-width: 380px){.ax-conversation-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-conversation-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-conversation-msg--flush{width:100%;max-width:100%;gap:0}.ax-conversation-msg--flush .ax-conversation-msg__caption{padding:.375rem .625rem 0}.ax-conversation-msg--flush .ax-conversation-msg__grid{border-radius:0;background:transparent}.ax-conversation-msg--flush .ax-conversation-msg__stack{gap:2px}.ax-conversation-msg--flush ::ng-deep .ax-conversation-video{border-radius:0}.ax-conversation-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: AXConversationFileAttachmentComponent, selector: "ax-conversation-file-attachment", inputs: ["item"] }, { kind: "component", type: AXConversationMessageRendererStateComponent, selector: "ax-conversation-message-renderer-state", inputs: ["rendererState", "message", "contentErrorLabel", "deliveryFailedLabel", "showContentErrorChrome", "contentErrorStyle", "contentErrorIconClass", "placement", "contentRetryEnabled"], outputs: ["contentRetry"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
106
|
+
}
|
|
107
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationFileRendererComponent, decorators: [{
|
|
108
|
+
type: Component,
|
|
109
|
+
args: [{ selector: 'ax-conversation-file-renderer', imports: [CommonModule, AXConversationFileAttachmentComponent, AXConversationMessageRendererStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
|
|
110
|
+
<div class="ax-conversation-msg ax-conversation-msg--wide">
|
|
111
|
+
<ax-conversation-message-renderer-state [rendererState]="rendererState()" [message]="message()" />
|
|
112
|
+
<div class="ax-conversation-msg__stack">
|
|
113
|
+
@for (file of files(); track file.mediaId ?? file.url) {
|
|
114
|
+
<ax-conversation-file-attachment [item]="file" />
|
|
115
|
+
}
|
|
116
|
+
</div>
|
|
117
|
+
@if (caption()) {
|
|
118
|
+
<p class="ax-conversation-msg__caption">{{ caption() }}</p>
|
|
119
|
+
}
|
|
120
|
+
</div>
|
|
121
|
+
`, styles: [":host{display:block;max-width:100%}.ax-conversation-msg,.ax-conversation-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-conversation-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-conversation-msg__grid--single{grid-template-columns:1fr}.ax-conversation-msg__grid--single ::ng-deep .ax-conversation-image-attachment{max-height:min(50dvh,20rem)}.ax-conversation-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-conversation-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@container (max-width: 380px){.ax-conversation-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-conversation-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-conversation-msg--flush{width:100%;max-width:100%;gap:0}.ax-conversation-msg--flush .ax-conversation-msg__caption{padding:.375rem .625rem 0}.ax-conversation-msg--flush .ax-conversation-msg__grid{border-radius:0;background:transparent}.ax-conversation-msg--flush .ax-conversation-msg__stack{gap:2px}.ax-conversation-msg--flush ::ng-deep .ax-conversation-video{border-radius:0}.ax-conversation-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\n"] }]
|
|
122
|
+
}] });
|
|
123
|
+
|
|
124
|
+
export { AXConversationFileRendererComponent };
|
|
125
|
+
//# sourceMappingURL=acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-file-renderer.component-CpUgRTR4.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/message-list/components/shared/file-attachment.component.js","../tmp-esm2022/conversation/lib/plugins/message-list/components/file-renderer/file-renderer.component.js"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { pickDisplayMediaUrl } from '../../../composer/components/shared/persisted-media-url';\nimport { toUploaderReference } from './attachment-uploader-reference';\nimport { formatFileByteSize } from './format-media';\nimport { createResolvedMediaUrlSignal } from './media-url-resolve';\nimport * as i0 from \"@angular/core\";\nconst AX_CONVERSATION_EXT_COLORS = {\n pdf: 'rgb(var(--ax-sys-color-danger-500))',\n doc: 'rgb(var(--ax-sys-color-primary-500))',\n docx: 'rgb(var(--ax-sys-color-primary-500))',\n xls: 'rgb(var(--ax-sys-color-success-500))',\n xlsx: 'rgb(var(--ax-sys-color-success-500))',\n ppt: 'rgb(var(--ax-sys-color-warning-500))',\n pptx: 'rgb(var(--ax-sys-color-warning-500))',\n zip: 'rgb(var(--ax-sys-color-secondary-600))',\n};\nexport class AXConversationFileAttachmentComponent {\n constructor() {\n this.item = input.required(...(ngDevMode ? [{ debugName: \"item\" }] : []));\n this.mediaReference = computed(() => toUploaderReference(this.item()), ...(ngDevMode ? [{ debugName: \"mediaReference\" }] : []));\n this.resolvedUrl = createResolvedMediaUrlSignal(this.mediaReference);\n this.fileUrl = computed(() => pickDisplayMediaUrl(this.resolvedUrl(), this.item().url), ...(ngDevMode ? [{ debugName: \"fileUrl\" }] : []));\n this.fileName = computed(() => this.item().name || 'file', ...(ngDevMode ? [{ debugName: \"fileName\" }] : []));\n this.fileSize = computed(() => this.item().size ?? 0, ...(ngDevMode ? [{ debugName: \"fileSize\" }] : []));\n this.fileExtension = computed(() => {\n const name = this.fileName();\n const parts = name.split('.');\n return parts.length > 1 ? parts[parts.length - 1] : 'FILE';\n }, ...(ngDevMode ? [{ debugName: \"fileExtension\" }] : []));\n this.swatchColor = computed(() => {\n const ext = this.fileExtension().toLowerCase();\n return AX_CONVERSATION_EXT_COLORS[ext] ?? 'rgb(var(--ax-sys-color-secondary-500))';\n }, ...(ngDevMode ? [{ debugName: \"swatchColor\" }] : []));\n this.formattedSize = computed(() => formatFileByteSize(this.fileSize()), ...(ngDevMode ? [{ debugName: \"formattedSize\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileAttachmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.3.3\", type: AXConversationFileAttachmentComponent, isStandalone: true, selector: \"ax-conversation-file-attachment\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `\n <a class=\"ax-conversation-file\" [href]=\"fileUrl()\" [download]=\"fileName()\" target=\"_blank\" rel=\"noopener noreferrer\">\n <span class=\"ax-conversation-file__badge\" [style.background]=\"swatchColor()\">{{ fileExtension() }}</span>\n <span class=\"ax-conversation-file__body\">\n <span class=\"ax-conversation-file__name\">{{ fileName() }}</span>\n <span class=\"ax-conversation-file__meta\">{{ formattedSize() }}</span>\n </span>\n <i class=\"fa-light fa-arrow-down-to-line ax-conversation-file__icon\" aria-hidden=\"true\"></i>\n </a>\n `, isInline: true, styles: [\":host{display:block}.ax-conversation-file{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));text-decoration:none;touch-action:manipulation;transition:border-color .15s ease,background-color .15s ease}@media (hover: hover){.ax-conversation-file:hover{border-color:rgb(var(--ax-sys-color-primary-500));background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-file__badge{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius, .375rem);font-weight:600;font-size:.5625rem;text-transform:uppercase;color:rgb(var(--ax-sys-color-light))}.ax-conversation-file__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-file__name{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-file__meta{font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-file__icon{flex-shrink:0;font-size:.875rem;color:rgba(var(--ax-sys-color-on-surface),.55)}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileAttachmentComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-file-attachment', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: `\n <a class=\"ax-conversation-file\" [href]=\"fileUrl()\" [download]=\"fileName()\" target=\"_blank\" rel=\"noopener noreferrer\">\n <span class=\"ax-conversation-file__badge\" [style.background]=\"swatchColor()\">{{ fileExtension() }}</span>\n <span class=\"ax-conversation-file__body\">\n <span class=\"ax-conversation-file__name\">{{ fileName() }}</span>\n <span class=\"ax-conversation-file__meta\">{{ formattedSize() }}</span>\n </span>\n <i class=\"fa-light fa-arrow-down-to-line ax-conversation-file__icon\" aria-hidden=\"true\"></i>\n </a>\n `, styles: [\":host{display:block}.ax-conversation-file{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.75rem;padding:.5rem .625rem;border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));color:rgb(var(--ax-sys-color-on-surface));text-decoration:none;touch-action:manipulation;transition:border-color .15s ease,background-color .15s ease}@media (hover: hover){.ax-conversation-file:hover{border-color:rgb(var(--ax-sys-color-primary-500));background:rgb(var(--ax-sys-color-light-surface))}}.ax-conversation-file__badge{flex-shrink:0;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--ax-sys-border-radius, .375rem);font-weight:600;font-size:.5625rem;text-transform:uppercase;color:rgb(var(--ax-sys-color-light))}.ax-conversation-file__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.ax-conversation-file__name{font-size:.8125rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-conversation-file__meta{font-size:.6875rem;color:rgba(var(--ax-sys-color-on-surface),.65)}.ax-conversation-file__icon{flex-shrink:0;font-size:.875rem;color:rgba(var(--ax-sys-color-on-surface),.55)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvcGx1Z2lucy9tZXNzYWdlLWxpc3QvY29tcG9uZW50cy9zaGFyZWQvZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQUVuRSxNQUFNLDBCQUEwQixHQUEyQjtJQUN6RCxHQUFHLEVBQUUscUNBQXFDO0lBQzFDLEdBQUcsRUFBRSxzQ0FBc0M7SUFDM0MsSUFBSSxFQUFFLHNDQUFzQztJQUM1QyxHQUFHLEVBQUUsc0NBQXNDO0lBQzNDLElBQUksRUFBRSxzQ0FBc0M7SUFDNUMsR0FBRyxFQUFFLHNDQUFzQztJQUMzQyxJQUFJLEVBQUUsc0NBQXNDO0lBQzVDLEdBQUcsRUFBRSx3Q0FBd0M7Q0FDOUMsQ0FBQztBQTBGRixNQUFNLE9BQU8scUNBQXFDO0lBeEZsRDtRQXlGVyxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsK0NBQStCLENBQUM7UUFFN0MsbUJBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLDBEQUFDLENBQUM7UUFDbEUsZ0JBQVcsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFeEUsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxtREFBQyxDQUFDO1FBQ25GLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxNQUFNLG9EQUFDLENBQUM7UUFDdEQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsb0RBQUMsQ0FBQztRQUVqRCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM5RCxDQUFDLHlEQUFDLENBQUM7UUFFTSxnQkFBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLE9BQU8sMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksd0NBQXdDLENBQUM7UUFDckYsQ0FBQyx1REFBQyxDQUFDO1FBRU0sa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLHlEQUFDLENBQUM7S0FDOUU7OEdBdEJZLHFDQUFxQztrR0FBckMscUNBQXFDLDJOQXBGdEM7Ozs7Ozs7OztHQVNULCswQ0FYUyxZQUFZOzsyRkFzRlgscUNBQXFDO2tCQXhGakQsU0FBUzsrQkFDRSxpQ0FBaUMsV0FDbEMsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxZQUNyQzs7Ozs7Ozs7O0dBU1QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFYQ29udmVyc2F0aW9uRmlsZU1lZGlhSXRlbSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBwaWNrRGlzcGxheU1lZGlhVXJsIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9zZXIvY29tcG9uZW50cy9zaGFyZWQvcGVyc2lzdGVkLW1lZGlhLXVybCc7XG5pbXBvcnQgeyB0b1VwbG9hZGVyUmVmZXJlbmNlIH0gZnJvbSAnLi9hdHRhY2htZW50LXVwbG9hZGVyLXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBmb3JtYXRGaWxlQnl0ZVNpemUgfSBmcm9tICcuL2Zvcm1hdC1tZWRpYSc7XG5pbXBvcnQgeyBjcmVhdGVSZXNvbHZlZE1lZGlhVXJsU2lnbmFsIH0gZnJvbSAnLi9tZWRpYS11cmwtcmVzb2x2ZSc7XG5cbmNvbnN0IEFYX0NPTlZFUlNBVElPTl9FWFRfQ09MT1JTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBwZGY6ICdyZ2IodmFyKC0tYXgtc3lzLWNvbG9yLWRhbmdlci01MDApKScsXG4gIGRvYzogJ3JnYih2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS01MDApKScsXG4gIGRvY3g6ICdyZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSknLFxuICB4bHM6ICdyZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXN1Y2Nlc3MtNTAwKSknLFxuICB4bHN4OiAncmdiKHZhcigtLWF4LXN5cy1jb2xvci1zdWNjZXNzLTUwMCkpJyxcbiAgcHB0OiAncmdiKHZhcigtLWF4LXN5cy1jb2xvci13YXJuaW5nLTUwMCkpJyxcbiAgcHB0eDogJ3JnYih2YXIoLS1heC1zeXMtY29sb3Itd2FybmluZy01MDApKScsXG4gIHppcDogJ3JnYih2YXIoLS1heC1zeXMtY29sb3Itc2Vjb25kYXJ5LTYwMCkpJyxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1maWxlLWF0dGFjaG1lbnQnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGEgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tZmlsZVwiIFtocmVmXT1cImZpbGVVcmwoKVwiIFtkb3dubG9hZF09XCJmaWxlTmFtZSgpXCIgdGFyZ2V0PVwiX2JsYW5rXCIgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tZmlsZV9fYmFkZ2VcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJzd2F0Y2hDb2xvcigpXCI+e3sgZmlsZUV4dGVuc2lvbigpIH19PC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tZmlsZV9fYm9keVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1maWxlX19uYW1lXCI+e3sgZmlsZU5hbWUoKSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tZmlsZV9fbWV0YVwiPnt7IGZvcm1hdHRlZFNpemUoKSB9fTwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxpIGNsYXNzPVwiZmEtbGlnaHQgZmEtYXJyb3ctZG93bi10by1saW5lIGF4LWNvbnZlcnNhdGlvbi1maWxlX19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDwvYT5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cblxuICAgICAgLmF4LWNvbnZlcnNhdGlvbi1maWxlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAwLjYyNXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDIuNzVyZW07XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwLjYyNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYXgtc3lzLWJvcmRlci1yYWRpdXMsIDAuNXJlbSk7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYih2YXIoLS1heC1zeXMtY29sb3ItYm9yZGVyLWxpZ2h0LXN1cmZhY2UpKTtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWF4LXN5cy1jb2xvci1zdXJmYWNlKSk7XG4gICAgICAgIGNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLW9uLXN1cmZhY2UpKTtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xNXMgZWFzZSxcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSB7XG4gICAgICAgIC5heC1jb252ZXJzYXRpb24tZmlsZTpob3ZlciB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXByaW1hcnktNTAwKSk7XG4gICAgICAgICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWF4LXN5cy1jb2xvci1saWdodC1zdXJmYWNlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmF4LWNvbnZlcnNhdGlvbi1maWxlX19iYWRnZSB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICB3aWR0aDogMi41cmVtO1xuICAgICAgICBoZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWF4LXN5cy1ib3JkZXItcmFkaXVzLCAwLjM3NXJlbSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC41NjI1cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogcmdiKHZhcigtLWF4LXN5cy1jb2xvci1saWdodCkpO1xuICAgICAgfVxuXG4gICAgICAuYXgtY29udmVyc2F0aW9uLWZpbGVfX2JvZHkge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMC4xMjVyZW07XG4gICAgICB9XG5cbiAgICAgIC5heC1jb252ZXJzYXRpb24tZmlsZV9fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIH1cblxuICAgICAgLmF4LWNvbnZlcnNhdGlvbi1maWxlX19tZXRhIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjY4NzVyZW07XG4gICAgICAgIGNvbG9yOiByZ2JhKHZhcigtLWF4LXN5cy1jb2xvci1vbi1zdXJmYWNlKSwgMC42NSk7XG4gICAgICB9XG5cbiAgICAgIC5heC1jb252ZXJzYXRpb24tZmlsZV9faWNvbiB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBjb2xvcjogcmdiYSh2YXIoLS1heC1zeXMtY29sb3Itb24tc3VyZmFjZSksIDAuNTUpO1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYQ29udmVyc2F0aW9uRmlsZUF0dGFjaG1lbnRDb21wb25lbnQge1xuICByZWFkb25seSBpdGVtID0gaW5wdXQucmVxdWlyZWQ8QVhDb252ZXJzYXRpb25GaWxlTWVkaWFJdGVtPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWVkaWFSZWZlcmVuY2UgPSBjb21wdXRlZCgoKSA9PiB0b1VwbG9hZGVyUmVmZXJlbmNlKHRoaXMuaXRlbSgpKSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZWRVcmwgPSBjcmVhdGVSZXNvbHZlZE1lZGlhVXJsU2lnbmFsKHRoaXMubWVkaWFSZWZlcmVuY2UpO1xuXG4gIHJlYWRvbmx5IGZpbGVVcmwgPSBjb21wdXRlZCgoKSA9PiBwaWNrRGlzcGxheU1lZGlhVXJsKHRoaXMucmVzb2x2ZWRVcmwoKSwgdGhpcy5pdGVtKCkudXJsKSk7XG4gIHJlYWRvbmx5IGZpbGVOYW1lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pdGVtKCkubmFtZSB8fCAnZmlsZScpO1xuICByZWFkb25seSBmaWxlU2l6ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXRlbSgpLnNpemUgPz8gMCk7XG5cbiAgcmVhZG9ubHkgZmlsZUV4dGVuc2lvbiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5maWxlTmFtZSgpO1xuICAgIGNvbnN0IHBhcnRzID0gbmFtZS5zcGxpdCgnLicpO1xuICAgIHJldHVybiBwYXJ0cy5sZW5ndGggPiAxID8gcGFydHNbcGFydHMubGVuZ3RoIC0gMV0hIDogJ0ZJTEUnO1xuICB9KTtcblxuICByZWFkb25seSBzd2F0Y2hDb2xvciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBleHQgPSB0aGlzLmZpbGVFeHRlbnNpb24oKS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBBWF9DT05WRVJTQVRJT05fRVhUX0NPTE9SU1tleHRdID8/ICdyZ2IodmFyKC0tYXgtc3lzLWNvbG9yLXNlY29uZGFyeS01MDApKSc7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGZvcm1hdHRlZFNpemUgPSBjb21wdXRlZCgoKSA9PiBmb3JtYXRGaWxlQnl0ZVNpemUodGhpcy5maWxlU2l6ZSgpKSk7XG59XG4iXX0=","import { AXFileTypeRegistryService } from '@acorex/core/file';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { normalizeFilePayload } from './file.payload';\nimport { AXConversationMessageRendererCopyHostComponent, mediaCopyText, } from '../shared/message-renderer-copy-host.component';\nimport { copyWithFileTypeFallback } from '../../../../utils/file-type-message.resolve';\nimport { AXConversationFileAttachmentComponent } from '../shared/file-attachment.component';\nimport { AXConversationMessageRendererStateComponent } from '../shared/message-renderer-state.component';\nimport { AX_CONVERSATION_RENDERER_SHARED_STYLES } from '../shared/renderer-shared.styles';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationFileRendererComponent extends AXConversationMessageRendererCopyHostComponent {\n constructor() {\n super(...arguments);\n this.fileTypes = inject(AXFileTypeRegistryService);\n this.message = input.required(...(ngDevMode ? [{ debugName: \"message\" }] : []));\n this.rendererState = computed(() => ({\n deliveryStatus: this.message().status,\n contentState: 'ready',\n }), ...(ngDevMode ? [{ debugName: \"rendererState\" }] : []));\n this.payload = computed(() => normalizeFilePayload(this.message().payload), ...(ngDevMode ? [{ debugName: \"payload\" }] : []));\n this.files = computed(() => this.payload().files, ...(ngDevMode ? [{ debugName: \"files\" }] : []));\n this.caption = computed(() => this.payload().caption?.trim() || '', ...(ngDevMode ? [{ debugName: \"caption\" }] : []));\n }\n copy() {\n return copyWithFileTypeFallback(this.message(), this.fileTypes, () => {\n const p = this.payload();\n if (p.files.length === 1) {\n const file = p.files[0];\n const name = file.name?.trim() || 'File';\n const url = file.url?.trim();\n return url ? `${name}\\n${url}` : name;\n }\n return mediaCopyText(p.caption, 'File', 'files', p.files.length, p.files.map((file) => file.name?.trim() || file.url?.trim()));\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationFileRendererComponent, isStandalone: true, selector: \"ax-conversation-file-renderer\", inputs: { message: { classPropertyName: \"message\", publicName: \"message\", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-conversation-msg ax-conversation-msg--wide\">\n <ax-conversation-message-renderer-state [rendererState]=\"rendererState()\" [message]=\"message()\" />\n <div class=\"ax-conversation-msg__stack\">\n @for (file of files(); track file.mediaId ?? file.url) {\n <ax-conversation-file-attachment [item]=\"file\" />\n }\n </div>\n @if (caption()) {\n <p class=\"ax-conversation-msg__caption\">{{ caption() }}</p>\n }\n </div>\n `, isInline: true, styles: [\":host{display:block;max-width:100%}.ax-conversation-msg,.ax-conversation-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-conversation-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-conversation-msg__grid--single{grid-template-columns:1fr}.ax-conversation-msg__grid--single ::ng-deep .ax-conversation-image-attachment{max-height:min(50dvh,20rem)}.ax-conversation-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-conversation-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@container (max-width: 380px){.ax-conversation-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-conversation-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-conversation-msg--flush{width:100%;max-width:100%;gap:0}.ax-conversation-msg--flush .ax-conversation-msg__caption{padding:.375rem .625rem 0}.ax-conversation-msg--flush .ax-conversation-msg__grid{border-radius:0;background:transparent}.ax-conversation-msg--flush .ax-conversation-msg__stack{gap:2px}.ax-conversation-msg--flush ::ng-deep .ax-conversation-video{border-radius:0}.ax-conversation-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"component\", type: AXConversationFileAttachmentComponent, selector: \"ax-conversation-file-attachment\", inputs: [\"item\"] }, { kind: \"component\", type: AXConversationMessageRendererStateComponent, selector: \"ax-conversation-message-renderer-state\", inputs: [\"rendererState\", \"message\", \"contentErrorLabel\", \"deliveryFailedLabel\", \"showContentErrorChrome\", \"contentErrorStyle\", \"contentErrorIconClass\", \"placement\", \"contentRetryEnabled\"], outputs: [\"contentRetry\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationFileRendererComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-file-renderer', imports: [CommonModule, AXConversationFileAttachmentComponent, AXConversationMessageRendererStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `\n <div class=\"ax-conversation-msg ax-conversation-msg--wide\">\n <ax-conversation-message-renderer-state [rendererState]=\"rendererState()\" [message]=\"message()\" />\n <div class=\"ax-conversation-msg__stack\">\n @for (file of files(); track file.mediaId ?? file.url) {\n <ax-conversation-file-attachment [item]=\"file\" />\n }\n </div>\n @if (caption()) {\n <p class=\"ax-conversation-msg__caption\">{{ caption() }}</p>\n }\n </div>\n `, styles: [\":host{display:block;max-width:100%}.ax-conversation-msg,.ax-conversation-msg__stack{display:flex;flex-direction:column;gap:.375rem}.ax-conversation-msg__grid{display:grid;gap:2px;width:100%;border-radius:var(--ax-sys-border-radius, .5rem);overflow:hidden;background:rgb(var(--ax-sys-color-border-light-surface))}.ax-conversation-msg__grid--single{grid-template-columns:1fr}.ax-conversation-msg__grid--single ::ng-deep .ax-conversation-image-attachment{max-height:min(50dvh,20rem)}.ax-conversation-msg__grid--dual{grid-template-columns:repeat(2,1fr)}.ax-conversation-msg__grid--multi{grid-template-columns:repeat(3,1fr);grid-auto-rows:10rem}@container (max-width: 380px){.ax-conversation-msg__grid--multi{grid-template-columns:repeat(2,1fr);grid-auto-rows:10rem}}.ax-conversation-msg__caption{margin:0;padding:0 .125rem;font-size:.8125rem;line-height:1.4;word-break:break-word;opacity:.88}.ax-conversation-msg--flush{width:100%;max-width:100%;gap:0}.ax-conversation-msg--flush .ax-conversation-msg__caption{padding:.375rem .625rem 0}.ax-conversation-msg--flush .ax-conversation-msg__grid{border-radius:0;background:transparent}.ax-conversation-msg--flush .ax-conversation-msg__stack{gap:2px}.ax-conversation-msg--flush ::ng-deep .ax-conversation-video{border-radius:0}.ax-conversation-msg__card{border-radius:var(--ax-sys-border-radius, .5rem);border:1px solid rgb(var(--ax-sys-color-border-light-surface));background:rgb(var(--ax-sys-color-surface));overflow:hidden}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3BsdWdpbnMvbWVzc2FnZS1saXN0L2NvbXBvbmVudHMvZmlsZS1yZW5kZXJlci9maWxlLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsOENBQThDLEVBQzlDLGFBQWEsR0FDZCxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQXFCMUYsTUFBTSxPQUFPLG1DQUFvQyxTQUFRLDhDQUE4QztJQW5Cdkc7O1FBb0JtQixjQUFTLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUF5QixDQUFDO1FBQ2xELGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNO1lBQ3JDLFlBQVksRUFBRSxPQUFnQjtTQUMvQixDQUFDLHlEQUFDLENBQUM7UUFFSyxZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFvQyxDQUFDLG1EQUFDLENBQUM7UUFDcEcsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxpREFBQyxDQUFDO1FBQzdDLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLG1EQUFDLENBQUM7S0FvQnpFO0lBbEJDLElBQUk7UUFDRixPQUFPLHdCQUF3QixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNuRSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzdCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3hDLENBQUM7WUFDRCxPQUFPLGFBQWEsQ0FDbEIsQ0FBQyxDQUFDLE9BQU8sRUFDVCxNQUFNLEVBQ04sT0FBTyxFQUNQLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUNkLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDN0QsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5QlUsbUNBQW1DO2tHQUFuQyxtQ0FBbUMseVBBZnBDOzs7Ozs7Ozs7Ozs7R0FZVCxxZ0RBZFMsWUFBWSwrQkFBRSxxQ0FBcUMsOEZBQUUsMkNBQTJDOzsyRkFpQi9GLG1DQUFtQztrQkFuQi9DLFNBQVM7K0JBQ0UsK0JBQStCLFdBQ2hDLENBQUMsWUFBWSxFQUFFLHFDQUFxQyxFQUFFLDJDQUEyQyxDQUFDLG1CQUMxRix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7Ozs7Ozs7Ozs7R0FZVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRmlsZVR5cGVSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvZmlsZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgQVhDb252ZXJzYXRpb25GaWxlUGF5bG9hZCwgQVhDb252ZXJzYXRpb25NZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUZpbGVQYXlsb2FkIH0gZnJvbSAnLi9maWxlLnBheWxvYWQnO1xuaW1wb3J0IHtcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlUmVuZGVyZXJDb3B5SG9zdENvbXBvbmVudCxcbiAgbWVkaWFDb3B5VGV4dCxcbn0gZnJvbSAnLi4vc2hhcmVkL21lc3NhZ2UtcmVuZGVyZXItY29weS1ob3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb3B5V2l0aEZpbGVUeXBlRmFsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9maWxlLXR5cGUtbWVzc2FnZS5yZXNvbHZlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uRmlsZUF0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvZmlsZS1hdHRhY2htZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvbk1lc3NhZ2VSZW5kZXJlclN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL21lc3NhZ2UtcmVuZGVyZXItc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYX0NPTlZFUlNBVElPTl9SRU5ERVJFUl9TSEFSRURfU1RZTEVTIH0gZnJvbSAnLi4vc2hhcmVkL3JlbmRlcmVyLXNoYXJlZC5zdHlsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1jb252ZXJzYXRpb24tZmlsZS1yZW5kZXJlcicsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ29udmVyc2F0aW9uRmlsZUF0dGFjaG1lbnRDb21wb25lbnQsIEFYQ29udmVyc2F0aW9uTWVzc2FnZVJlbmRlcmVyU3RhdGVDb21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLW1zZyBheC1jb252ZXJzYXRpb24tbXNnLS13aWRlXCI+XG4gICAgICA8YXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtcmVuZGVyZXItc3RhdGUgW3JlbmRlcmVyU3RhdGVdPVwicmVuZGVyZXJTdGF0ZSgpXCIgW21lc3NhZ2VdPVwibWVzc2FnZSgpXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tbXNnX19zdGFja1wiPlxuICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVzKCk7IHRyYWNrIGZpbGUubWVkaWFJZCA/PyBmaWxlLnVybCkge1xuICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tZmlsZS1hdHRhY2htZW50IFtpdGVtXT1cImZpbGVcIiAvPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBpZiAoY2FwdGlvbigpKSB7XG4gICAgICAgIDxwIGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLW1zZ19fY2FwdGlvblwiPnt7IGNhcHRpb24oKSB9fTwvcD5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbQVhfQ09OVkVSU0FUSU9OX1JFTkRFUkVSX1NIQVJFRF9TVFlMRVNdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkZpbGVSZW5kZXJlckNvbXBvbmVudCBleHRlbmRzIEFYQ29udmVyc2F0aW9uTWVzc2FnZVJlbmRlcmVyQ29weUhvc3RDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IGZpbGVUeXBlcyA9IGluamVjdChBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlKTtcblxuICByZWFkb25seSBtZXNzYWdlID0gaW5wdXQucmVxdWlyZWQ8QVhDb252ZXJzYXRpb25NZXNzYWdlPigpO1xuICByZWFkb25seSByZW5kZXJlclN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBkZWxpdmVyeVN0YXR1czogdGhpcy5tZXNzYWdlKCkuc3RhdHVzLFxuICAgIGNvbnRlbnRTdGF0ZTogJ3JlYWR5JyBhcyBjb25zdCxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHBheWxvYWQgPSBjb21wdXRlZCgoKSA9PiBub3JtYWxpemVGaWxlUGF5bG9hZCh0aGlzLm1lc3NhZ2UoKS5wYXlsb2FkIGFzIEFYQ29udmVyc2F0aW9uRmlsZVBheWxvYWQpKTtcbiAgcmVhZG9ubHkgZmlsZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBheWxvYWQoKS5maWxlcyk7XG4gIHJlYWRvbmx5IGNhcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBheWxvYWQoKS5jYXB0aW9uPy50cmltKCkgfHwgJycpO1xuXG4gIGNvcHkoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gY29weVdpdGhGaWxlVHlwZUZhbGxiYWNrKHRoaXMubWVzc2FnZSgpLCB0aGlzLmZpbGVUeXBlcywgKCkgPT4ge1xuICAgICAgY29uc3QgcCA9IHRoaXMucGF5bG9hZCgpO1xuICAgICAgaWYgKHAuZmlsZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBwLmZpbGVzWzBdO1xuICAgICAgICBjb25zdCBuYW1lID0gZmlsZS5uYW1lPy50cmltKCkgfHwgJ0ZpbGUnO1xuICAgICAgICBjb25zdCB1cmwgPSBmaWxlLnVybD8udHJpbSgpO1xuICAgICAgICByZXR1cm4gdXJsID8gYCR7bmFtZX1cXG4ke3VybH1gIDogbmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBtZWRpYUNvcHlUZXh0KFxuICAgICAgICBwLmNhcHRpb24sXG4gICAgICAgICdGaWxlJyxcbiAgICAgICAgJ2ZpbGVzJyxcbiAgICAgICAgcC5maWxlcy5sZW5ndGgsXG4gICAgICAgIHAuZmlsZXMubWFwKChmaWxlKSA9PiBmaWxlLm5hbWU/LnRyaW0oKSB8fCBmaWxlLnVybD8udHJpbSgpKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ=="],"names":[],"mappings":";;;;;;;;;;;AAOA,MAAM,0BAA0B,GAAG;AACnC,IAAI,GAAG,EAAE,qCAAqC;AAC9C,IAAI,GAAG,EAAE,sCAAsC;AAC/C,IAAI,IAAI,EAAE,sCAAsC;AAChD,IAAI,GAAG,EAAE,sCAAsC;AAC/C,IAAI,IAAI,EAAE,sCAAsC;AAChD,IAAI,GAAG,EAAE,sCAAsC;AAC/C,IAAI,IAAI,EAAE,sCAAsC;AAChD,IAAI,GAAG,EAAE,wCAAwC;AACjD,CAAC;AACM,MAAM,qCAAqC,CAAC;AACnD,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjF,QAAQ,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvI,QAAQ,IAAI,CAAC,WAAW,GAAG,4BAA4B,CAAC,IAAI,CAAC,cAAc,CAAC;AAC5E,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACjJ,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrH,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChH,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE;AACxC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACzC,YAAY,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM;AACtE,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAC1C,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,WAAW,EAAE;AAC1D,YAAY,OAAO,0BAA0B,CAAC,GAAG,CAAC,IAAI,wCAAwC;AAC9F,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAChE,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACxI,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iCAAiC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAClW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,wwCAAwwC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACz5C;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qCAAqC,EAAE,UAAU,EAAE,CAAC;AAC/I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,wwCAAwwC,CAAC,EAAE;AACzxC,SAAS,CAAC,EAAE,CAAC;;AClDN,MAAM,mCAAmC,SAAS,8CAA8C,CAAC;AACxG,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;AAC3B,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAC1D,QAAQ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACvF,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,OAAO;AAC7C,YAAY,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM;AACjD,YAAY,YAAY,EAAE,OAAO;AACjC,SAAS,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACrI,QAAQ,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACzG,QAAQ,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC7H,IAAI;AACJ,IAAI,IAAI,GAAG;AACX,QAAQ,OAAO,wBAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM;AAC9E,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE;AACpC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtC,gBAAgB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,gBAAgB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM;AACxD,gBAAgB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE;AAC5C,gBAAgB,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI;AACrD,YAAY;AACZ,YAAY,OAAO,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1I,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mCAAmC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,+BAA+B,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAC9X;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,87CAA87C,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qCAAqC,EAAE,QAAQ,EAAE,iCAAiC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,2CAA2C,EAAE,QAAQ,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,WAAW,EAAE,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,CAAC,CAAC;AACziE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC;AAC7I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,qCAAqC,EAAE,2CAA2C,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE;AACxO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,87CAA87C,CAAC,EAAE;AAC/8C,SAAS,CAAC,EAAE,CAAC;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { s as resolvePersistableMediaUrl, c as resolvePersistedThumbnailUrl } from './acorex-components-conversation-acorex-components-conversation-CjVDCoJw.mjs';
|
|
2
|
+
|
|
3
|
+
function loose(payload) {
|
|
4
|
+
return payload;
|
|
5
|
+
}
|
|
6
|
+
function str(value) {
|
|
7
|
+
return typeof value === 'string' && value.length > 0 ? value : undefined;
|
|
8
|
+
}
|
|
9
|
+
function sanitizeFileItem(item) {
|
|
10
|
+
const url = resolvePersistableMediaUrl(item.url);
|
|
11
|
+
const thumbnailUrl = resolvePersistedThumbnailUrl(item.thumbnailUrl, url);
|
|
12
|
+
if (url === item.url && thumbnailUrl === item.thumbnailUrl) {
|
|
13
|
+
return item;
|
|
14
|
+
}
|
|
15
|
+
return { ...item, url, thumbnailUrl };
|
|
16
|
+
}
|
|
17
|
+
function normalizeFilePayload(payload) {
|
|
18
|
+
const raw = loose(payload);
|
|
19
|
+
const existing = raw['files'];
|
|
20
|
+
if (Array.isArray(existing) && existing.length > 0) {
|
|
21
|
+
return {
|
|
22
|
+
type: 'file',
|
|
23
|
+
files: existing.map(sanitizeFileItem),
|
|
24
|
+
caption: payload.caption,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const url = resolvePersistableMediaUrl(str(raw['url']));
|
|
28
|
+
const mediaId = str(raw['mediaId']);
|
|
29
|
+
if (url || mediaId) {
|
|
30
|
+
return {
|
|
31
|
+
type: 'file',
|
|
32
|
+
caption: payload.caption,
|
|
33
|
+
files: [
|
|
34
|
+
{
|
|
35
|
+
...(url ? { url } : {}),
|
|
36
|
+
name: str(raw['name']) ?? 'file',
|
|
37
|
+
mimeType: str(raw['mimeType']) ?? 'application/octet-stream',
|
|
38
|
+
size: typeof raw['size'] === 'number' ? raw['size'] : undefined,
|
|
39
|
+
mediaId,
|
|
40
|
+
thumbnailUrl: resolvePersistedThumbnailUrl(str(raw['thumbnailUrl']), url),
|
|
41
|
+
extension: str(raw['extension']),
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { type: 'file', files: [], caption: payload.caption };
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { normalizeFilePayload };
|
|
50
|
+
//# sourceMappingURL=acorex-components-conversation-file.payload-DXwzNWxT.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-file.payload-DXwzNWxT.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/message-list/components/file-renderer/file.payload.js"],"sourcesContent":["import { resolvePersistableMediaUrl, resolvePersistedThumbnailUrl, } from '../../../composer/components/shared/persisted-media-url';\nfunction loose(payload) {\n return payload;\n}\nfunction str(value) {\n return typeof value === 'string' && value.length > 0 ? value : undefined;\n}\nfunction sanitizeFileItem(item) {\n const url = resolvePersistableMediaUrl(item.url);\n const thumbnailUrl = resolvePersistedThumbnailUrl(item.thumbnailUrl, url);\n if (url === item.url && thumbnailUrl === item.thumbnailUrl) {\n return item;\n }\n return { ...item, url, thumbnailUrl };\n}\nexport function normalizeFilePayload(payload) {\n const raw = loose(payload);\n const existing = raw['files'];\n if (Array.isArray(existing) && existing.length > 0) {\n return {\n type: 'file',\n files: existing.map(sanitizeFileItem),\n caption: payload.caption,\n };\n }\n const url = resolvePersistableMediaUrl(str(raw['url']));\n const mediaId = str(raw['mediaId']);\n if (url || mediaId) {\n return {\n type: 'file',\n caption: payload.caption,\n files: [\n {\n ...(url ? { url } : {}),\n name: str(raw['name']) ?? 'file',\n mimeType: str(raw['mimeType']) ?? 'application/octet-stream',\n size: typeof raw['size'] === 'number' ? raw['size'] : undefined,\n mediaId,\n thumbnailUrl: resolvePersistedThumbnailUrl(str(raw['thumbnailUrl']), url),\n extension: str(raw['extension']),\n },\n ],\n };\n }\n return { type: 'file', files: [], caption: payload.caption };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5wYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9wbHVnaW5zL21lc3NhZ2UtbGlzdC9jb21wb25lbnRzL2ZpbGUtcmVuZGVyZXIvZmlsZS5wYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsNEJBQTRCLEdBQzdCLE1BQU0seURBQXlELENBQUM7QUFJakUsU0FBUyxLQUFLLENBQUMsT0FBa0M7SUFDL0MsT0FBTyxPQUErQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxTQUFTLEdBQUcsQ0FBQyxLQUFjO0lBQ3pCLE9BQU8sT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMzRSxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFpQztJQUN6RCxNQUFNLEdBQUcsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxZQUFZLEdBQUcsNEJBQTRCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxRSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDM0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE9BQWtDO0lBQ3JFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDbkQsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFHLFFBQTBDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQ3hFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUNwQyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNuQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxNQUFNO29CQUNoQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLDBCQUEwQjtvQkFDNUQsSUFBSSxFQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO29CQUMvRCxPQUFPO29CQUNQLFlBQVksRUFBRSw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO29CQUN6RSxTQUFTLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDakM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQy9ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFYQ29udmVyc2F0aW9uRmlsZU1lZGlhSXRlbSwgQVhDb252ZXJzYXRpb25GaWxlUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICByZXNvbHZlUGVyc2lzdGFibGVNZWRpYVVybCxcbiAgcmVzb2x2ZVBlcnNpc3RlZFRodW1ibmFpbFVybCxcbn0gZnJvbSAnLi4vLi4vLi4vY29tcG9zZXIvY29tcG9uZW50cy9zaGFyZWQvcGVyc2lzdGVkLW1lZGlhLXVybCc7XG5cbnR5cGUgQVhDb252ZXJzYXRpb25Mb29zZVJlY29yZCA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5mdW5jdGlvbiBsb29zZShwYXlsb2FkOiBBWENvbnZlcnNhdGlvbkZpbGVQYXlsb2FkKTogQVhDb252ZXJzYXRpb25Mb29zZVJlY29yZCB7XG4gIHJldHVybiBwYXlsb2FkIGFzIHVua25vd24gYXMgQVhDb252ZXJzYXRpb25Mb29zZVJlY29yZDtcbn1cblxuZnVuY3Rpb24gc3RyKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gMCA/IHZhbHVlIDogdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZUZpbGVJdGVtKGl0ZW06IEFYQ29udmVyc2F0aW9uRmlsZU1lZGlhSXRlbSk6IEFYQ29udmVyc2F0aW9uRmlsZU1lZGlhSXRlbSB7XG4gIGNvbnN0IHVybCA9IHJlc29sdmVQZXJzaXN0YWJsZU1lZGlhVXJsKGl0ZW0udXJsKTtcbiAgY29uc3QgdGh1bWJuYWlsVXJsID0gcmVzb2x2ZVBlcnNpc3RlZFRodW1ibmFpbFVybChpdGVtLnRodW1ibmFpbFVybCwgdXJsKTtcbiAgaWYgKHVybCA9PT0gaXRlbS51cmwgJiYgdGh1bWJuYWlsVXJsID09PSBpdGVtLnRodW1ibmFpbFVybCkge1xuICAgIHJldHVybiBpdGVtO1xuICB9XG4gIHJldHVybiB7IC4uLml0ZW0sIHVybCwgdGh1bWJuYWlsVXJsIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVGaWxlUGF5bG9hZChwYXlsb2FkOiBBWENvbnZlcnNhdGlvbkZpbGVQYXlsb2FkKTogQVhDb252ZXJzYXRpb25GaWxlUGF5bG9hZCB7XG4gIGNvbnN0IHJhdyA9IGxvb3NlKHBheWxvYWQpO1xuICBjb25zdCBleGlzdGluZyA9IHJhd1snZmlsZXMnXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZXhpc3RpbmcpICYmIGV4aXN0aW5nLmxlbmd0aCA+IDApIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2ZpbGUnLFxuICAgICAgZmlsZXM6IChleGlzdGluZyBhcyBBWENvbnZlcnNhdGlvbkZpbGVNZWRpYUl0ZW1bXSkubWFwKHNhbml0aXplRmlsZUl0ZW0pLFxuICAgICAgY2FwdGlvbjogcGF5bG9hZC5jYXB0aW9uLFxuICAgIH07XG4gIH1cblxuICBjb25zdCB1cmwgPSByZXNvbHZlUGVyc2lzdGFibGVNZWRpYVVybChzdHIocmF3Wyd1cmwnXSkpO1xuICBjb25zdCBtZWRpYUlkID0gc3RyKHJhd1snbWVkaWFJZCddKTtcbiAgaWYgKHVybCB8fCBtZWRpYUlkKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdmaWxlJyxcbiAgICAgIGNhcHRpb246IHBheWxvYWQuY2FwdGlvbixcbiAgICAgIGZpbGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAuLi4odXJsID8geyB1cmwgfSA6IHt9KSxcbiAgICAgICAgICBuYW1lOiBzdHIocmF3WyduYW1lJ10pID8/ICdmaWxlJyxcbiAgICAgICAgICBtaW1lVHlwZTogc3RyKHJhd1snbWltZVR5cGUnXSkgPz8gJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScsXG4gICAgICAgICAgc2l6ZTogdHlwZW9mIHJhd1snc2l6ZSddID09PSAnbnVtYmVyJyA/IHJhd1snc2l6ZSddIDogdW5kZWZpbmVkLFxuICAgICAgICAgIG1lZGlhSWQsXG4gICAgICAgICAgdGh1bWJuYWlsVXJsOiByZXNvbHZlUGVyc2lzdGVkVGh1bWJuYWlsVXJsKHN0cihyYXdbJ3RodW1ibmFpbFVybCddKSwgdXJsKSxcbiAgICAgICAgICBleHRlbnNpb246IHN0cihyYXdbJ2V4dGVuc2lvbiddKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IHR5cGU6ICdmaWxlJywgZmlsZXM6IFtdLCBjYXB0aW9uOiBwYXlsb2FkLmNhcHRpb24gfTtcbn1cbiJdfQ=="],"names":[],"mappings":";;AACA,SAAS,KAAK,CAAC,OAAO,EAAE;AACxB,IAAI,OAAO,OAAO;AAClB;AACA,SAAS,GAAG,CAAC,KAAK,EAAE;AACpB,IAAI,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,SAAS;AAC5E;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC,IAAI,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;AACpD,IAAI,MAAM,YAAY,GAAG,4BAA4B,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC;AAC7E,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE;AAChE,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE;AACzC;AACO,SAAS,oBAAoB,CAAC,OAAO,EAAE;AAC9C,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;AAC9B,IAAI,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACjC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACxD,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACjD,YAAY,OAAO,EAAE,OAAO,CAAC,OAAO;AACpC,SAAS;AACT,IAAI;AACJ,IAAI,MAAM,GAAG,GAAG,0BAA0B,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3D,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACvC,IAAI,IAAI,GAAG,IAAI,OAAO,EAAE;AACxB,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,MAAM;AACxB,YAAY,OAAO,EAAE,OAAO,CAAC,OAAO;AACpC,YAAY,KAAK,EAAE;AACnB,gBAAgB;AAChB,oBAAoB,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAC3C,oBAAoB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM;AACpD,oBAAoB,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,0BAA0B;AAChF,oBAAoB,IAAI,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS;AACnF,oBAAoB,OAAO;AAC3B,oBAAoB,YAAY,EAAE,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC;AAC7F,oBAAoB,SAAS,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACpD,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;AAChE;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Shared formatting for message renderer UIs. */
|
|
2
|
+
function formatMediaDuration(seconds) {
|
|
3
|
+
if (!Number.isFinite(seconds)) {
|
|
4
|
+
return '0:00';
|
|
5
|
+
}
|
|
6
|
+
const m = Math.floor(seconds / 60);
|
|
7
|
+
const s = Math.floor(seconds % 60);
|
|
8
|
+
return `${m}:${s.toString().padStart(2, '0')}`;
|
|
9
|
+
}
|
|
10
|
+
function formatFileByteSize(bytes) {
|
|
11
|
+
if (bytes === 0) {
|
|
12
|
+
return '0 B';
|
|
13
|
+
}
|
|
14
|
+
const k = 1024;
|
|
15
|
+
const sizes = ['B', 'KB', 'MB', 'GB'];
|
|
16
|
+
const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);
|
|
17
|
+
return `${Math.round((bytes / k ** i) * 100) / 100} ${sizes[i]}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { formatFileByteSize as a, formatMediaDuration as f };
|
|
21
|
+
//# sourceMappingURL=acorex-components-conversation-format-media-DUD4vA6F.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-components-conversation-format-media-DUD4vA6F.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/message-list/components/shared/format-media.js"],"sourcesContent":["/** Shared formatting for message renderer UIs. */\nexport function formatMediaDuration(seconds) {\n if (!Number.isFinite(seconds)) {\n return '0:00';\n }\n const m = Math.floor(seconds / 60);\n const s = Math.floor(seconds % 60);\n return `${m}:${s.toString().padStart(2, '0')}`;\n}\nexport function formatFileByteSize(bytes) {\n if (bytes === 0) {\n return '0 B';\n }\n const k = 1024;\n const sizes = ['B', 'KB', 'MB', 'GB'];\n const i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);\n return `${Math.round((bytes / k ** i) * 100) / 100} ${sizes[i]}`;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW1lZGlhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9wbHVnaW5zL21lc3NhZ2UtbGlzdC9jb21wb25lbnRzL3NoYXJlZC9mb3JtYXQtbWVkaWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0RBQWtEO0FBRWxELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxPQUFlO0lBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDOUIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDaEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBQ2YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQVUsQ0FBQztJQUMvQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRixPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogU2hhcmVkIGZvcm1hdHRpbmcgZm9yIG1lc3NhZ2UgcmVuZGVyZXIgVUlzLiAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0TWVkaWFEdXJhdGlvbihzZWNvbmRzOiBudW1iZXIpOiBzdHJpbmcge1xuICBpZiAoIU51bWJlci5pc0Zpbml0ZShzZWNvbmRzKSkge1xuICAgIHJldHVybiAnMDowMCc7XG4gIH1cbiAgY29uc3QgbSA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgY29uc3QgcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAlIDYwKTtcbiAgcmV0dXJuIGAke219OiR7cy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZpbGVCeXRlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGJ5dGVzID09PSAwKSB7XG4gICAgcmV0dXJuICcwIEInO1xuICB9XG4gIGNvbnN0IGsgPSAxMDI0O1xuICBjb25zdCBzaXplcyA9IFsnQicsICdLQicsICdNQicsICdHQiddIGFzIGNvbnN0O1xuICBjb25zdCBpID0gTWF0aC5taW4oTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSksIHNpemVzLmxlbmd0aCAtIDEpO1xuICByZXR1cm4gYCR7TWF0aC5yb3VuZCgoYnl0ZXMgLyBrICoqIGkpICogMTAwKSAvIDEwMH0gJHtzaXplc1tpXX1gO1xufVxuIl19"],"names":[],"mappings":"AAAA;AACO,SAAS,mBAAmB,CAAC,OAAO,EAAE;AAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;AACnC,QAAQ,OAAO,MAAM;AACrB,IAAI;AACJ,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AACtC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;AACtC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAClD;AACO,SAAS,kBAAkB,CAAC,KAAK,EAAE;AAC1C,IAAI,IAAI,KAAK,KAAK,CAAC,EAAE;AACrB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,MAAM,CAAC,GAAG,IAAI;AAClB,IAAI,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACzC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACnF,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE;;;;"}
|