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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/conversation/README.md +462 -2
  2. package/conversation/index.d.ts +5386 -471
  3. package/fesm2022/acorex-components-button.mjs +2 -2
  4. package/fesm2022/acorex-components-button.mjs.map +1 -1
  5. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs +13711 -0
  6. package/fesm2022/acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs.map +1 -0
  7. package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs +119 -0
  8. package/fesm2022/acorex-components-conversation-audio-attachment.component-BetJSSUw.mjs.map +1 -0
  9. package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs +59 -0
  10. package/fesm2022/acorex-components-conversation-audio-composer.payload-Df5vP2nM.mjs.map +1 -0
  11. package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs +432 -0
  12. package/fesm2022/acorex-components-conversation-audio-picker.component-Bu_gHDt8.mjs.map +1 -0
  13. package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs +177 -0
  14. package/fesm2022/acorex-components-conversation-audio-renderer.component-DbSFJLI3.mjs.map +1 -0
  15. package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs +54 -0
  16. package/fesm2022/acorex-components-conversation-audio.payload-DgepxpPu.mjs.map +1 -0
  17. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs +101 -0
  18. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-CYutyq7i.mjs.map +1 -0
  19. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs +100 -0
  20. package/fesm2022/acorex-components-conversation-conversation-audio.file-type-Bb5KhRuV.mjs.map +1 -0
  21. package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs +121 -0
  22. package/fesm2022/acorex-components-conversation-conversation-file.file-type-BhDs60mK.mjs.map +1 -0
  23. package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs +84 -0
  24. package/fesm2022/acorex-components-conversation-conversation-image.file-type-CSHQEhf7.mjs.map +1 -0
  25. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs +238 -0
  26. package/fesm2022/acorex-components-conversation-conversation-info-media-view.component-BEM7-bMT.mjs.map +1 -0
  27. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs +1080 -0
  28. package/fesm2022/acorex-components-conversation-conversation-info-panel.component-BCkqJ44O.mjs.map +1 -0
  29. package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs +102 -0
  30. package/fesm2022/acorex-components-conversation-conversation-video.file-type-gkAIyZr1.mjs.map +1 -0
  31. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs +90 -0
  32. package/fesm2022/acorex-components-conversation-conversation-voice.file-type-Blu6Q1jU.mjs.map +1 -0
  33. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs +1840 -0
  34. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -0
  35. package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs +44 -0
  36. package/fesm2022/acorex-components-conversation-fallback-renderer.component-BXGAL-OM.mjs.map +1 -0
  37. package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs +64 -0
  38. package/fesm2022/acorex-components-conversation-file-composer.payload-EKWI9aI0.mjs.map +1 -0
  39. package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs +468 -0
  40. package/fesm2022/acorex-components-conversation-file-picker.component-BxadB4pm.mjs.map +1 -0
  41. package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs +125 -0
  42. package/fesm2022/acorex-components-conversation-file-renderer.component-D1OaDxCO.mjs.map +1 -0
  43. package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs +50 -0
  44. package/fesm2022/acorex-components-conversation-file.payload-BDURM80G.mjs.map +1 -0
  45. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs +21 -0
  46. package/fesm2022/acorex-components-conversation-format-media-DUD4vA6F.mjs.map +1 -0
  47. package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs +77 -0
  48. package/fesm2022/acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs.map +1 -0
  49. package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs +407 -0
  50. package/fesm2022/acorex-components-conversation-image-picker.component-DFxi6Pca.mjs.map +1 -0
  51. package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs +83 -0
  52. package/fesm2022/acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs.map +1 -0
  53. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs +180 -0
  54. package/fesm2022/acorex-components-conversation-index-BbrYsQ84.mjs.map +1 -0
  55. package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs +266 -0
  56. package/fesm2022/acorex-components-conversation-index-Ci13MEJt.mjs.map +1 -0
  57. package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs +149 -0
  58. package/fesm2022/acorex-components-conversation-location-picker.component-D9im1sJf.mjs.map +1 -0
  59. package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs +118 -0
  60. package/fesm2022/acorex-components-conversation-location-renderer.component-C3S23ZNs.mjs.map +1 -0
  61. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs +17 -0
  62. package/fesm2022/acorex-components-conversation-media-formatters-DV3wEEno.mjs.map +1 -0
  63. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs +140 -0
  64. package/fesm2022/acorex-components-conversation-media-playback-info-bar-banner.component-C935AOnQ.mjs.map +1 -0
  65. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs +33 -0
  66. package/fesm2022/acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs.map +1 -0
  67. package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs +172 -0
  68. package/fesm2022/acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs.map +1 -0
  69. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs +224 -0
  70. package/fesm2022/acorex-components-conversation-open-composer-picker-for-files-B-V_YJ-b.mjs.map +1 -0
  71. package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs +81 -0
  72. package/fesm2022/acorex-components-conversation-pagination-demo-data-5NXkBiVx.mjs.map +1 -0
  73. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs +91 -0
  74. package/fesm2022/acorex-components-conversation-picker-header.component-BhTzlufI.mjs.map +1 -0
  75. package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs +537 -0
  76. package/fesm2022/acorex-components-conversation-picker-toolbar.component-Co_0gFoo.mjs.map +1 -0
  77. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs +163 -0
  78. package/fesm2022/acorex-components-conversation-picker-upload-C-PlKPaU.mjs.map +1 -0
  79. package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs +68 -0
  80. package/fesm2022/acorex-components-conversation-playback-banner-sync-KIB8QkNB.mjs.map +1 -0
  81. package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs +95 -0
  82. package/fesm2022/acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs.map +1 -0
  83. package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs +187 -0
  84. package/fesm2022/acorex-components-conversation-search.component-kEt1wdJg.mjs.map +1 -0
  85. package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs +170 -0
  86. package/fesm2022/acorex-components-conversation-send-message-media-DxscxSdF.mjs.map +1 -0
  87. package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs +750 -0
  88. package/fesm2022/acorex-components-conversation-shared-storage.seed-BFjUsIZR.mjs.map +1 -0
  89. package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs +103 -0
  90. package/fesm2022/acorex-components-conversation-sticker-renderer.component-DM69QYiU.mjs.map +1 -0
  91. package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs +55 -0
  92. package/fesm2022/acorex-components-conversation-system-renderer.component-DQjXQB3C.mjs.map +1 -0
  93. package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs +109 -0
  94. package/fesm2022/acorex-components-conversation-text-renderer.component-BKo40hvy.mjs.map +1 -0
  95. package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs +105 -0
  96. package/fesm2022/acorex-components-conversation-video-attachment.component-I2tGGqTw.mjs.map +1 -0
  97. package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs +62 -0
  98. package/fesm2022/acorex-components-conversation-video-composer.payload-hfh8MMMF.mjs.map +1 -0
  99. package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs +446 -0
  100. package/fesm2022/acorex-components-conversation-video-picker.component-BIjsVQuQ.mjs.map +1 -0
  101. package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs +181 -0
  102. package/fesm2022/acorex-components-conversation-video-renderer.component-DBRMg_xE.mjs.map +1 -0
  103. package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs +54 -0
  104. package/fesm2022/acorex-components-conversation-video.payload-gfWFG79w.mjs.map +1 -0
  105. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs +17 -0
  106. package/fesm2022/acorex-components-conversation-voice-composer.payload-DLVow7ex.mjs.map +1 -0
  107. package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs +328 -0
  108. package/fesm2022/acorex-components-conversation-voice-recorder.component-r2jF_LEt.mjs.map +1 -0
  109. package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs +270 -0
  110. package/fesm2022/acorex-components-conversation-voice-renderer.component-1tgo8WfV.mjs.map +1 -0
  111. package/fesm2022/acorex-components-conversation.mjs +1 -1402
  112. package/fesm2022/acorex-components-conversation.mjs.map +1 -1
  113. package/package.json +7 -11
  114. package/conversation2/README.md +0 -463
  115. package/conversation2/index.d.ts +0 -6410
  116. package/fesm2022/acorex-components-conversation2.mjs +0 -22331
  117. package/fesm2022/acorex-components-conversation2.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-conversation-image-picker.component-DFxi6Pca.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/image-picker/image-picker.component.js"],"sourcesContent":["/**\n * Image Picker Component\n * Full-width image selection and preview 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, 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 { 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 { resolvePersistableMediaUrl, resolvePersistedThumbnailUrl } from '../shared/persisted-media-url';\nimport { createConversationImageFileType, AX_CONVERSATION_IMAGE_CATALOG, AX_CONVERSATION_IMAGE_PRESENTATION, } from './conversation-image.file-type';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/progress-bar\";\nfunction imageItemFromUpload(file, result) {\n const url = resolvePersistableMediaUrl(result.url);\n const item = {\n mediaId: result.mediaId,\n mimeType: result.mimeType,\n size: result.size,\n thumbnailUrl: resolvePersistedThumbnailUrl(result.thumbnailUrl, url),\n width: 0,\n height: 0,\n metadata: result.metadata,\n };\n if (url) {\n item.url = url;\n }\n return item;\n}\nexport class AXConversationImagePickerComponent {\n get composerService() {\n const svc = this.service() ?? this.composerServiceFromInjector;\n if (!svc) {\n throw new Error('AXConversationComposerService is required for the image picker');\n }\n return svc;\n }\n constructor() {\n this.uploadsDismissed = false;\n /** Uploaded blobs are referenced by the sent message — do not delete on dismiss. */\n this.retainUploadedOnDismiss = false;\n this.service = input(...(ngDevMode ? [undefined, { debugName: \"service\" }] : []));\n this.composerServiceFromInjector = inject(AXConversationComposerService, { optional: true });\n this.uploader = inject(AXUploaderService);\n this.fileService = inject(AXFileService);\n this.fileTypeRegistry = inject(AXFileTypeRegistryService);\n this.platformId = inject(PLATFORM_ID);\n this.toast = inject(AXToastService);\n this.translation = inject(AXTranslationService);\n this.catalogFileType = AX_CONVERSATION_IMAGE_CATALOG;\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.images = signal([], ...(ngDevMode ? [{ debugName: \"images\" }] : []));\n this.isDragging = signal(false, ...(ngDevMode ? [{ debugName: \"isDragging\" }] : []));\n this.emptyIconClass = computed(() => this.isDragging() ? 'fa-light fa-cloud-arrow-up' : AX_CONVERSATION_IMAGE_PRESENTATION.icon, ...(ngDevMode ? [{ debugName: \"emptyIconClass\" }] : []));\n this.caption = '';\n this.allowMultiple = computed(() => this.maxFiles() > 1, ...(ngDevMode ? [{ debugName: \"allowMultiple\" }] : []));\n this.fileTypeRegistry.registerTypes([createConversationImageFileType()]);\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 loadImageFileType() {\n this.imageFileType ??= await this.fileService.getFileType(this.catalogFileType);\n return this.imageFileType;\n }\n async handleFiles(files) {\n const max = this.maxFiles();\n const capacity = limitFilesToCapacity(files, this.images().length, max);\n if (capacity.length < files.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.loadImageFileType();\n const ctx = this.createUtilityContext();\n for (const file of accepted) {\n try {\n const previewValue = fileType\n ? await runFileTypeUtilityForFile(fileType, ctx, file, 'preview')\n : undefined;\n const preview = typeof previewValue === 'string' ? previewValue : '';\n let index = -1;\n this.images.update((images) => {\n index = images.length;\n return [...images, { file, preview, uploadProgress: 0, uploading: true }];\n });\n if (index >= 0) {\n void this.uploadImageAt(index, file);\n }\n }\n catch (error) {\n console.error('Failed to process image:', error);\n }\n }\n }\n async uploadImageAt(index, file) {\n const abortController = new AbortController();\n this.patchImage(index, { abortController });\n try {\n const result = await uploadPickerFile(this.uploader, this.conversation().id, file, (progress) => this.patchImage(index, { uploadProgress: progress, uploading: true }), abortController.signal);\n this.patchImage(index, {\n uploadProgress: 100,\n uploading: false,\n uploaded: true,\n uploadedUrl: result.url,\n mediaId: result.mediaId,\n });\n }\n catch (err) {\n if (this.uploadsDismissed || isUploadAborted(err, abortController.signal)) {\n return;\n }\n this.patchImage(index, {\n uploadProgress: 0,\n uploading: false,\n uploaded: false,\n error: this.translation.translateSync('@acorex:chat.errors.upload-failed'),\n });\n }\n }\n patchImage(index, patch) {\n if (this.uploadsDismissed) {\n return;\n }\n this.images.update((items) => {\n const next = [...items];\n if (next[index]) {\n next[index] = { ...next[index], ...patch };\n }\n return next;\n });\n }\n removeImage(index) {\n const item = this.images()[index];\n if (item) {\n cleanupPickerUploads(this.uploader, [item]);\n }\n this.images.update((images) => images.filter((_, i) => i !== index));\n }\n async sendImages() {\n const imageList = this.images();\n if (!this.canSend())\n return;\n const images = imageList.flatMap((image) => {\n const result = pickerItemToUploadResult(image);\n return result ? [imageItemFromUpload(image.file, result)] : [];\n });\n if (images.length === 0) {\n return;\n }\n const command = {\n conversationId: this.conversation().id,\n type: 'image',\n payload: {\n type: 'image',\n images,\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 canSend() {\n const list = this.images();\n return list.length > 0 && list.every((i) => i.uploaded && !i.error && !i.uploading);\n }\n getUploadingLabel(progress) {\n return this.translation.translateSync('@acorex:chat.pickers.files.uploading-progress', {\n params: { progress },\n });\n }\n getCancelUploadLabel() {\n return getPickerCancelUploadLabel(this.translation);\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.images()];\n cleanupPickerUploads(this.uploader, snapshot, {\n retainUploaded: this.retainUploadedOnDismiss,\n });\n this.retainUploadedOnDismiss = false;\n this.images.set([]);\n this.caption = '';\n }\n getEmptyTitle() {\n return this.isDragging()\n ? this.translation.translateSync('@acorex:chat.pickers.images.drop-to-attach')\n : this.translation.translateSync('@acorex:chat.pickers.images.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.images.selected-count', {\n params: { count: this.images().length },\n });\n }\n getSendText() {\n return this.translation.translateSync('@acorex:chat.pickers.images.send-count', {\n params: { count: this.images().length },\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationImagePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationImagePickerComponent, isStandalone: true, selector: \"ax-conversation-image-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.images.title')\" (onClose)=\"cancel()\" />\n\n <div class=\"ax-conversation-picker__scroll\">\n @if (images().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__grid\">\n @for (image of images(); track $index) {\n <div class=\"ax-conversation-picker__tile\">\n <img [src]=\"image.preview\" [alt]=\"image.file.name\" />\n @if (image.uploading || image.uploaded || image.error) {\n <div class=\"ax-conversation-picker__tile-overlay\">\n @if (image.uploading) {\n <span class=\"ax-conversation-picker__tile-status\">{{\n getUploadingLabel(image.uploadProgress ?? 0)\n }}</span>\n <ax-progress-bar [progress]=\"image.uploadProgress || 0\" [mode]=\"'determinate'\" [height]=\"3\" />\n } @else if (image.uploaded) {\n <span class=\"ax-conversation-picker__tile-status\"\n ><i class=\"fa-light fa-check\"></i>\n {{ translation.translateSync('@acorex:chat.pickers.files.uploaded') }}</span\n >\n } @else if (image.error) {\n <span class=\"ax-conversation-picker__tile-status\">{{ image.error }}</span>\n }\n </div>\n }\n <button\n type=\"button\"\n class=\"ax-conversation-picker__tile-remove\"\n (click)=\"removeImage($index)\"\n [attr.aria-label]=\"\n image.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 (images().length > 0) {\n <ax-conversation-picker-footer\n [sendText]=\"getSendText()\"\n [sendDisabled]=\"!canSend()\"\n (onCancel)=\"cancel()\"\n (onSend)=\"sendImages()\"\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: AXConversationImagePickerComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-image-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.images.title')\" (onClose)=\"cancel()\" />\n\n <div class=\"ax-conversation-picker__scroll\">\n @if (images().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__grid\">\n @for (image of images(); track $index) {\n <div class=\"ax-conversation-picker__tile\">\n <img [src]=\"image.preview\" [alt]=\"image.file.name\" />\n @if (image.uploading || image.uploaded || image.error) {\n <div class=\"ax-conversation-picker__tile-overlay\">\n @if (image.uploading) {\n <span class=\"ax-conversation-picker__tile-status\">{{\n getUploadingLabel(image.uploadProgress ?? 0)\n }}</span>\n <ax-progress-bar [progress]=\"image.uploadProgress || 0\" [mode]=\"'determinate'\" [height]=\"3\" />\n } @else if (image.uploaded) {\n <span class=\"ax-conversation-picker__tile-status\"\n ><i class=\"fa-light fa-check\"></i>\n {{ translation.translateSync('@acorex:chat.pickers.files.uploaded') }}</span\n >\n } @else if (image.error) {\n <span class=\"ax-conversation-picker__tile-status\">{{ image.error }}</span>\n }\n </div>\n }\n <button\n type=\"button\"\n class=\"ax-conversation-picker__tile-remove\"\n (click)=\"removeImage($index)\"\n [attr.aria-label]=\"\n image.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 (images().length > 0) {\n <ax-conversation-picker-footer\n [sendText]=\"getSendText()\"\n [sendDisabled]=\"!canSend()\"\n (onCancel)=\"cancel()\"\n (onSend)=\"sendImages()\"\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvcGx1Z2lucy9jb21wb3Nlci9jb21wb25lbnRzL2ltYWdlLXBpY2tlci9pbWFnZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUFFLHlCQUF5QixFQUFtQixNQUFNLG1CQUFtQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFhLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHakcsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0YsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEYsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUVMLG9CQUFvQixFQUNwQix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsb0JBQW9CLEVBQ3BCLDhCQUE4QixFQUM5Qiw0QkFBNEIsRUFDNUIsd0JBQXdCLEVBQ3hCLGdCQUFnQixHQUNqQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pHLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsNkJBQTZCLEVBQzdCLGtDQUFrQyxHQUNuQyxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNeEMsU0FBUyxtQkFBbUIsQ0FBQyxJQUFVLEVBQUUsTUFBd0I7SUFDL0QsTUFBTSxHQUFHLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sSUFBSSxHQUFxQjtRQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1FBQ3pCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtRQUNqQixZQUFZLEVBQUUsNEJBQTRCLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7UUFDcEUsS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsQ0FBQztRQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtLQUMxQixDQUFDO0lBQ0YsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUE4RkQsTUFBTSxPQUFPLGtDQUFrQztJQU83QyxJQUFZLGVBQWU7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQywyQkFBMkIsQ0FBQztRQUMvRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7UUFDcEYsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQXlCRDtRQXJDUSxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDakMsb0ZBQW9GO1FBQzVFLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQUMvQixZQUFPLEdBQUcsS0FBSyw2REFBNkMsQ0FBQztRQUNyRCxnQ0FBMkIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQVN4RixhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqQyxVQUFLLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFM0Msb0JBQWUsR0FBRyw2QkFBNkIsQ0FBQztRQUVoRCxpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLHVEQUFrQixDQUFDO1FBQ2hELGFBQVEsR0FBRyxLQUFLLENBQVMsRUFBRSxvREFBQyxDQUFDO1FBQzdCLGlCQUFZLEdBQUcsS0FBSyxDQUFTLEVBQUUsd0RBQUMsQ0FBQztRQUNqQyxjQUFTLEdBQUcsS0FBSywrREFBMEIsQ0FBQztRQUU1QyxXQUFNLEdBQUcsTUFBTSxDQUFjLEVBQUUsa0RBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssc0RBQUMsQ0FBQztRQUMzQixtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsa0NBQWtDLENBQUMsSUFBSSwwREFDM0YsQ0FBQztRQUNGLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFFSixrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyx5REFBQyxDQUFDO1FBSTNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQywrQkFBK0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RSxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixPQUFPO1lBQ0wsYUFBYSxFQUFFLENBQUMsSUFBaUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3pFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxpQkFBaUI7UUFDN0IsSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEUsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVyRSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRXhDLEtBQUssTUFBTSxJQUFJLElBQUksUUFBUSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDO2dCQUNILE1BQU0sWUFBWSxHQUFHLFFBQVE7b0JBQzNCLENBQUMsQ0FBQyxNQUFNLHlCQUF5QixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztvQkFDakUsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDZCxNQUFNLE9BQU8sR0FBRyxPQUFPLFlBQVksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDdEIsT0FBTyxDQUFDLEdBQUcsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RSxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDZixLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUN2QyxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQWEsRUFBRSxJQUFVO1FBQ25ELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sZ0JBQWdCLENBQ25DLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFDdEIsSUFBSSxFQUNKLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQ25GLGVBQWUsQ0FBQyxNQUFNLENBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRTtnQkFDckIsY0FBYyxFQUFFLEdBQUc7Z0JBQ25CLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxXQUFXLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQ3ZCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzthQUN4QixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLGVBQWUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQzFFLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JCLGNBQWMsRUFBRSxDQUFDO2dCQUNqQixTQUFTLEVBQUUsS0FBSztnQkFDaEIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLG1DQUFtQyxDQUFDO2FBQzNFLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLEtBQWEsRUFBRSxLQUF5QjtRQUN6RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUMzQixNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDeEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVTtRQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUFFLE9BQU87UUFFNUIsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3pDLE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQXlCO1lBQ3BDLGNBQWMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRTtZQUN0QyxJQUFJLEVBQUUsT0FBTztZQUNiLE9BQU8sRUFBRTtnQkFDUCxJQUFJLEVBQUUsT0FBTztnQkFDYixNQUFNO2dCQUNOLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLFNBQVM7YUFDMUM7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQztRQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLHlCQUF5QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFdkQsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ3hELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxRQUFnQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLCtDQUErQyxFQUFFO1lBQ3JGLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRTtTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLHlCQUF5QixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFO1lBQzVDLGNBQWMsRUFBRSxJQUFJLENBQUMsdUJBQXVCO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLDRDQUE0QyxDQUFDO1lBQzlFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLCtDQUErQyxDQUFDO1lBQ2pGLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyw0Q0FBNEMsRUFBRTtZQUNsRixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRTtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsd0NBQXdDLEVBQUU7WUFDOUUsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUU7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E3T1Usa0NBQWtDO2tHQUFsQyxrQ0FBa0MsZ3dCQS9FbkM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RVQsc3ZLQXRGQyxZQUFZLDhCQUNaLG1CQUFtQiw0TUFDbkIsbUJBQW1CLCtCQUNuQixtQ0FBbUMsbUhBQ25DLG1DQUFtQyxpSkFDbkMsa0NBQWtDLDZIQUNsQyxvQ0FBb0MsbUhBQ3BDLG9DQUFvQyw0SEFDcEMsa0NBQWtDOzsyRkFpRnpCLGtDQUFrQztrQkE1RjlDLFNBQVM7K0JBQ0UsOEJBQThCLFdBQy9CO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG1DQUFtQzt3QkFDbkMsbUNBQW1DO3dCQUNuQyxrQ0FBa0M7d0JBQ2xDLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxrQ0FBa0M7cUJBQ25DLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E0RVQiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEltYWdlIFBpY2tlciBDb21wb25lbnRcbiAqIEZ1bGwtd2lkdGggaW1hZ2Ugc2VsZWN0aW9uIGFuZCBwcmV2aWV3IGludGVyZmFjZSBmb3IgdGhlIGNvbXBvc2VyXG4gKi9cblxuaW1wb3J0IHsgQVhVcGxvYWRlclNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2Nkay91cGxvYWRlcic7XG5pbXBvcnQgeyBBWFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5pbXBvcnQgdHlwZSB7IEFYUG9wdXBSZWYgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wdXAnO1xuaW1wb3J0IHsgQVhUb2FzdFNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdG9hc3QnO1xuaW1wb3J0IHsgQVhGaWxlU2VydmljZSwgQVhGaWxlVHlwZVJlZ2lzdHJ5U2VydmljZSwgcnVuRmlsZVR5cGVVdGlsaXR5Rm9yRmlsZSwgdHlwZSBBWEZpbGVUeXBlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSwgQVhUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBQTEFURk9STV9JRCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25Db21wb3NlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2NvbXBvc2VyL2NvbXBvc2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb24sIEFYSW1hZ2VNZWRpYUl0ZW0sIEFYU2VuZE1lc3NhZ2VDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB0eXBlIHsgQVhVcGxvYWRlclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9jb252ZXJzYXRpb24tdXBsb2FkLnR5cGVzJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uUGlja2VyRm9vdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vcGlja2VyLWZvb3Rlci9waWNrZXItZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblBpY2tlckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3BpY2tlci1oZWFkZXIvcGlja2VyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25QaWNrZXJDYXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL3BpY2tlci1jYXB0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWENvbnZlcnNhdGlvblBpY2tlckVtcHR5Q29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL3BpY2tlci1lbXB0eS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUElDS0VSX1NIQVJFRF9TVFlMRVMgfSBmcm9tICcuLi9zaGFyZWQvcGlja2VyLXNoYXJlZC5zdHlsZXMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25QaWNrZXJTaGVsbENvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9waWNrZXItc2hlbGwuY29tcG9uZW50JztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uUGlja2VyVG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9waWNrZXItdG9vbGJhci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgdHlwZSBBWENvbXBvc2VyUGlja2VyVXBsb2FkSXRlbSxcbiAgY2xlYW51cFBpY2tlclVwbG9hZHMsXG4gIGRpc21pc3NDb21wb3NlclBpY2tlckhvc3QsXG4gIGdldFBpY2tlckNhbmNlbFVwbG9hZExhYmVsLFxuICBpc1VwbG9hZEFib3J0ZWQsXG4gIHNlZWRQaWNrZXJJbml0aWFsRmlsZXMsXG4gIGxpbWl0RmlsZXNUb0NhcGFjaXR5LFxuICBub3RpZnlNYXhGaWxlc0NhcGFjaXR5RXhjZWVkZWQsXG4gIG5vdGlmeVBpY2tlclZhbGlkYXRpb25FcnJvcnMsXG4gIHBpY2tlckl0ZW1Ub1VwbG9hZFJlc3VsdCxcbiAgdXBsb2FkUGlja2VyRmlsZSxcbn0gZnJvbSAnLi4vc2hhcmVkL3BpY2tlci11cGxvYWQnO1xuaW1wb3J0IHsgcmVzb2x2ZVBlcnNpc3RhYmxlTWVkaWFVcmwsIHJlc29sdmVQZXJzaXN0ZWRUaHVtYm5haWxVcmwgfSBmcm9tICcuLi9zaGFyZWQvcGVyc2lzdGVkLW1lZGlhLXVybCc7XG5pbXBvcnQge1xuICBjcmVhdGVDb252ZXJzYXRpb25JbWFnZUZpbGVUeXBlLFxuICBBWF9DT05WRVJTQVRJT05fSU1BR0VfQ0FUQUxPRyxcbiAgQVhfQ09OVkVSU0FUSU9OX0lNQUdFX1BSRVNFTlRBVElPTixcbn0gZnJvbSAnLi9jb252ZXJzYXRpb24taW1hZ2UuZmlsZS10eXBlJztcblxuaW50ZXJmYWNlIEltYWdlRmlsZSBleHRlbmRzIEFYQ29tcG9zZXJQaWNrZXJVcGxvYWRJdGVtIHtcbiAgcHJldmlldzogc3RyaW5nO1xufVxuXG5mdW5jdGlvbiBpbWFnZUl0ZW1Gcm9tVXBsb2FkKGZpbGU6IEZpbGUsIHJlc3VsdDogQVhVcGxvYWRlclJlc3VsdCk6IEFYSW1hZ2VNZWRpYUl0ZW0ge1xuICBjb25zdCB1cmwgPSByZXNvbHZlUGVyc2lzdGFibGVNZWRpYVVybChyZXN1bHQudXJsKTtcbiAgY29uc3QgaXRlbTogQVhJbWFnZU1lZGlhSXRlbSA9IHtcbiAgICBtZWRpYUlkOiByZXN1bHQubWVkaWFJZCxcbiAgICBtaW1lVHlwZTogcmVzdWx0Lm1pbWVUeXBlLFxuICAgIHNpemU6IHJlc3VsdC5zaXplLFxuICAgIHRodW1ibmFpbFVybDogcmVzb2x2ZVBlcnNpc3RlZFRodW1ibmFpbFVybChyZXN1bHQudGh1bWJuYWlsVXJsLCB1cmwpLFxuICAgIHdpZHRoOiAwLFxuICAgIGhlaWdodDogMCxcbiAgICBtZXRhZGF0YTogcmVzdWx0Lm1ldGFkYXRhLFxuICB9O1xuICBpZiAodXJsKSB7XG4gICAgaXRlbS51cmwgPSB1cmw7XG4gIH1cbiAgcmV0dXJuIGl0ZW07XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1pbWFnZS1waWNrZXInLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEFYUHJvZ3Jlc3NCYXJNb2R1bGUsXG4gICAgQVhUcmFuc2xhdGlvbk1vZHVsZSxcbiAgICBBWENvbnZlcnNhdGlvblBpY2tlckhlYWRlckNvbXBvbmVudCxcbiAgICBBWENvbnZlcnNhdGlvblBpY2tlckZvb3RlckNvbXBvbmVudCxcbiAgICBBWENvbnZlcnNhdGlvblBpY2tlckVtcHR5Q29tcG9uZW50LFxuICAgIEFYQ29udmVyc2F0aW9uUGlja2VyVG9vbGJhckNvbXBvbmVudCxcbiAgICBBWENvbnZlcnNhdGlvblBpY2tlckNhcHRpb25Db21wb25lbnQsXG4gICAgQVhDb252ZXJzYXRpb25QaWNrZXJTaGVsbENvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXgtY29udmVyc2F0aW9uLXBpY2tlci1zaGVsbFxuICAgICAgW2ZpbGVUeXBlXT1cImNhdGFsb2dGaWxlVHlwZVwiXG4gICAgICBbbXVsdGlwbGVdPVwiYWxsb3dNdWx0aXBsZSgpXCJcbiAgICAgIChmaWxlc1NlbGVjdGVkKT1cImhhbmRsZUZpbGVzKCRldmVudClcIlxuICAgICAgKGRyYWdFbnRlcik9XCJpc0RyYWdnaW5nLnNldCh0cnVlKVwiXG4gICAgICAoZHJhZ0xlYXZlKT1cImlzRHJhZ2dpbmcuc2V0KGZhbHNlKVwiXG4gICAgPlxuICAgICAgPGF4LWNvbnZlcnNhdGlvbi1waWNrZXItaGVhZGVyIFt0aXRsZV09XCJ0cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5pbWFnZXMudGl0bGUnKVwiIChvbkNsb3NlKT1cImNhbmNlbCgpXCIgLz5cblxuICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX3Njcm9sbFwiPlxuICAgICAgICBAaWYgKGltYWdlcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLWVtcHR5XG4gICAgICAgICAgICBbdGl0bGVdPVwiZ2V0RW1wdHlUaXRsZSgpXCJcbiAgICAgICAgICAgIFtoaW50XT1cImdldEVtcHR5U3VidGl0bGUoKVwiXG4gICAgICAgICAgICBbaWNvbkNsYXNzXT1cImVtcHR5SWNvbkNsYXNzKClcIlxuICAgICAgICAgICAgW2RyYWdPdmVyXT1cImlzRHJhZ2dpbmcoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX2JvZHlcIj5cbiAgICAgICAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLXRvb2xiYXJcbiAgICAgICAgICAgICAgW2NvdW50TGFiZWxdPVwiZ2V0U2VsZWN0ZWRDb3VudFRleHQoKVwiXG4gICAgICAgICAgICAgIFthZGRNb3JlTGFiZWxdPVwidHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuY29tbW9uLmFkZC1tb3JlJylcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1waWNrZXJfX2dyaWRcIj5cbiAgICAgICAgICAgICAgQGZvciAoaW1hZ2Ugb2YgaW1hZ2VzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX190aWxlXCI+XG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiaW1hZ2UucHJldmlld1wiIFthbHRdPVwiaW1hZ2UuZmlsZS5uYW1lXCIgLz5cbiAgICAgICAgICAgICAgICAgIEBpZiAoaW1hZ2UudXBsb2FkaW5nIHx8IGltYWdlLnVwbG9hZGVkIHx8IGltYWdlLmVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX190aWxlLW92ZXJsYXlcIj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGltYWdlLnVwbG9hZGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX190aWxlLXN0YXR1c1wiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGdldFVwbG9hZGluZ0xhYmVsKGltYWdlLnVwbG9hZFByb2dyZXNzID8/IDApXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxheC1wcm9ncmVzcy1iYXIgW3Byb2dyZXNzXT1cImltYWdlLnVwbG9hZFByb2dyZXNzIHx8IDBcIiBbbW9kZV09XCInZGV0ZXJtaW5hdGUnXCIgW2hlaWdodF09XCIzXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChpbWFnZS51cGxvYWRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX190aWxlLXN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgID48aSBjbGFzcz1cImZhLWxpZ2h0IGZhLWNoZWNrXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5maWxlcy51cGxvYWRlZCcpIH19PC9zcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoaW1hZ2UuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtY29udmVyc2F0aW9uLXBpY2tlcl9fdGlsZS1zdGF0dXNcIj57eyBpbWFnZS5lcnJvciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tcGlja2VyX190aWxlLXJlbW92ZVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJbWFnZSgkaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBpbWFnZS51cGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0Q2FuY2VsVXBsb2FkTGFiZWwoKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5jb21tb24ucmVtb3ZlJylcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYS1saWdodCBmYS14bWFya1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLWNhcHRpb24gWyhjYXB0aW9uKV09XCJjYXB0aW9uXCIgLz5cblxuICAgICAgQGlmIChpbWFnZXMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxheC1jb252ZXJzYXRpb24tcGlja2VyLWZvb3RlclxuICAgICAgICAgIFtzZW5kVGV4dF09XCJnZXRTZW5kVGV4dCgpXCJcbiAgICAgICAgICBbc2VuZERpc2FibGVkXT1cIiFjYW5TZW5kKClcIlxuICAgICAgICAgIChvbkNhbmNlbCk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgKG9uU2VuZCk9XCJzZW5kSW1hZ2VzKClcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgIDwvYXgtY29udmVyc2F0aW9uLXBpY2tlci1zaGVsbD5cbiAgYCxcbiAgc3R5bGVzOiBbUElDS0VSX1NIQVJFRF9TVFlMRVNdLFxufSlcbmV4cG9ydCBjbGFzcyBBWENvbnZlcnNhdGlvbkltYWdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB1cGxvYWRzRGlzbWlzc2VkID0gZmFsc2U7XG4gIC8qKiBVcGxvYWRlZCBibG9icyBhcmUgcmVmZXJlbmNlZCBieSB0aGUgc2VudCBtZXNzYWdlIOKAlCBkbyBub3QgZGVsZXRlIG9uIGRpc21pc3MuICovXG4gIHByaXZhdGUgcmV0YWluVXBsb2FkZWRPbkRpc21pc3MgPSBmYWxzZTtcbiAgcmVhZG9ubHkgc2VydmljZSA9IGlucHV0PEFYQ29udmVyc2F0aW9uQ29tcG9zZXJTZXJ2aWNlIHwgdW5kZWZpbmVkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvc2VyU2VydmljZUZyb21JbmplY3RvciA9IGluamVjdChBWENvbnZlcnNhdGlvbkNvbXBvc2VyU2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIGdldCBjb21wb3NlclNlcnZpY2UoKTogQVhDb252ZXJzYXRpb25Db21wb3NlclNlcnZpY2Uge1xuICAgIGNvbnN0IHN2YyA9IHRoaXMuc2VydmljZSgpID8/IHRoaXMuY29tcG9zZXJTZXJ2aWNlRnJvbUluamVjdG9yO1xuICAgIGlmICghc3ZjKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FYQ29udmVyc2F0aW9uQ29tcG9zZXJTZXJ2aWNlIGlzIHJlcXVpcmVkIGZvciB0aGUgaW1hZ2UgcGlja2VyJyk7XG4gICAgfVxuICAgIHJldHVybiBzdmM7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSB1cGxvYWRlciA9IGluamVjdChBWFVwbG9hZGVyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVNlcnZpY2UgPSBpbmplY3QoQVhGaWxlU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVR5cGVSZWdpc3RyeSA9IGluamVjdChBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0b2FzdCA9IGluamVjdChBWFRvYXN0U2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYW5zbGF0aW9uID0gaW5qZWN0KEFYVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICByZWFkb25seSBjYXRhbG9nRmlsZVR5cGUgPSBBWF9DT05WRVJTQVRJT05fSU1BR0VfQ0FUQUxPRztcblxuICByZWFkb25seSBjb252ZXJzYXRpb24gPSBpbnB1dC5yZXF1aXJlZDxBWENvbnZlcnNhdGlvbj4oKTtcbiAgcmVhZG9ubHkgbWF4RmlsZXMgPSBpbnB1dDxudW1iZXI+KDEwKTtcbiAgcmVhZG9ubHkgaW5pdGlhbEZpbGVzID0gaW5wdXQ8RmlsZVtdPihbXSk7XG4gIHJlYWRvbmx5IF9fcG9wdXBfXyA9IGlucHV0PEFYUG9wdXBSZWYgfCB1bmRlZmluZWQ+KCk7XG5cbiAgcmVhZG9ubHkgaW1hZ2VzID0gc2lnbmFsPEltYWdlRmlsZVtdPihbXSk7XG4gIHJlYWRvbmx5IGlzRHJhZ2dpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBlbXB0eUljb25DbGFzcyA9IGNvbXB1dGVkKCgpID0+XG4gICAgdGhpcy5pc0RyYWdnaW5nKCkgPyAnZmEtbGlnaHQgZmEtY2xvdWQtYXJyb3ctdXAnIDogQVhfQ09OVkVSU0FUSU9OX0lNQUdFX1BSRVNFTlRBVElPTi5pY29uLFxuICApO1xuICBjYXB0aW9uID0gJyc7XG5cbiAgcmVhZG9ubHkgYWxsb3dNdWx0aXBsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWF4RmlsZXMoKSA+IDEpO1xuICBwcml2YXRlIGltYWdlRmlsZVR5cGU/OiBBWEZpbGVUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuZmlsZVR5cGVSZWdpc3RyeS5yZWdpc3RlclR5cGVzKFtjcmVhdGVDb252ZXJzYXRpb25JbWFnZUZpbGVUeXBlKCldKTtcbiAgICBzZWVkUGlja2VySW5pdGlhbEZpbGVzKHRoaXMuaW5pdGlhbEZpbGVzLCAoZmlsZXMpID0+IHRoaXMuaGFuZGxlRmlsZXMoZmlsZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVXRpbGl0eUNvbnRleHQoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlYWRBc0RhdGFVcmw6IChmaWxlOiBGaWxlIHwgQmxvYikgPT4gdGhpcy5maWxlU2VydmljZS5ibG9iVG9CYXNlNjQoZmlsZSksXG4gICAgICBwbGF0Zm9ybUlkOiB0aGlzLnBsYXRmb3JtSWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgbG9hZEltYWdlRmlsZVR5cGUoKTogUHJvbWlzZTxBWEZpbGVUeXBlIHwgdW5kZWZpbmVkPiB7XG4gICAgdGhpcy5pbWFnZUZpbGVUeXBlID8/PSBhd2FpdCB0aGlzLmZpbGVTZXJ2aWNlLmdldEZpbGVUeXBlKHRoaXMuY2F0YWxvZ0ZpbGVUeXBlKTtcbiAgICByZXR1cm4gdGhpcy5pbWFnZUZpbGVUeXBlO1xuICB9XG5cbiAgYXN5bmMgaGFuZGxlRmlsZXMoZmlsZXM6IEZpbGVbXSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4RmlsZXMoKTtcbiAgICBjb25zdCBjYXBhY2l0eSA9IGxpbWl0RmlsZXNUb0NhcGFjaXR5KGZpbGVzLCB0aGlzLmltYWdlcygpLmxlbmd0aCwgbWF4KTtcbiAgICBpZiAoY2FwYWNpdHkubGVuZ3RoIDwgZmlsZXMubGVuZ3RoKSB7XG4gICAgICBub3RpZnlNYXhGaWxlc0NhcGFjaXR5RXhjZWVkZWQodGhpcy50b2FzdCwgdGhpcy50cmFuc2xhdGlvbiwgbWF4KTtcbiAgICB9XG4gICAgaWYgKGNhcGFjaXR5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHsgYWNjZXB0ZWQsIHJlamVjdGVkIH0gPSBhd2FpdCB0aGlzLnVwbG9hZGVyLnZhbGlkYXRlRmlsZXMoY2FwYWNpdHksIHRoaXMuY2F0YWxvZ0ZpbGVUeXBlKTtcbiAgICBub3RpZnlQaWNrZXJWYWxpZGF0aW9uRXJyb3JzKHRoaXMudG9hc3QsIHRoaXMudHJhbnNsYXRpb24sIHJlamVjdGVkKTtcblxuICAgIGNvbnN0IGZpbGVUeXBlID0gYXdhaXQgdGhpcy5sb2FkSW1hZ2VGaWxlVHlwZSgpO1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuY3JlYXRlVXRpbGl0eUNvbnRleHQoKTtcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBhY2NlcHRlZCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcHJldmlld1ZhbHVlID0gZmlsZVR5cGVcbiAgICAgICAgICA/IGF3YWl0IHJ1bkZpbGVUeXBlVXRpbGl0eUZvckZpbGUoZmlsZVR5cGUsIGN0eCwgZmlsZSwgJ3ByZXZpZXcnKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBwcmV2aWV3ID0gdHlwZW9mIHByZXZpZXdWYWx1ZSA9PT0gJ3N0cmluZycgPyBwcmV2aWV3VmFsdWUgOiAnJztcbiAgICAgICAgbGV0IGluZGV4ID0gLTE7XG4gICAgICAgIHRoaXMuaW1hZ2VzLnVwZGF0ZSgoaW1hZ2VzKSA9PiB7XG4gICAgICAgICAgaW5kZXggPSBpbWFnZXMubGVuZ3RoO1xuICAgICAgICAgIHJldHVybiBbLi4uaW1hZ2VzLCB7IGZpbGUsIHByZXZpZXcsIHVwbG9hZFByb2dyZXNzOiAwLCB1cGxvYWRpbmc6IHRydWUgfV07XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgIHZvaWQgdGhpcy51cGxvYWRJbWFnZUF0KGluZGV4LCBmaWxlKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIHByb2Nlc3MgaW1hZ2U6JywgZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBsb2FkSW1hZ2VBdChpbmRleDogbnVtYmVyLCBmaWxlOiBGaWxlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHRoaXMucGF0Y2hJbWFnZShpbmRleCwgeyBhYm9ydENvbnRyb2xsZXIgfSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdXBsb2FkUGlja2VyRmlsZShcbiAgICAgICAgdGhpcy51cGxvYWRlcixcbiAgICAgICAgdGhpcy5jb252ZXJzYXRpb24oKS5pZCxcbiAgICAgICAgZmlsZSxcbiAgICAgICAgKHByb2dyZXNzKSA9PiB0aGlzLnBhdGNoSW1hZ2UoaW5kZXgsIHsgdXBsb2FkUHJvZ3Jlc3M6IHByb2dyZXNzLCB1cGxvYWRpbmc6IHRydWUgfSksXG4gICAgICAgIGFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICApO1xuICAgICAgdGhpcy5wYXRjaEltYWdlKGluZGV4LCB7XG4gICAgICAgIHVwbG9hZFByb2dyZXNzOiAxMDAsXG4gICAgICAgIHVwbG9hZGluZzogZmFsc2UsXG4gICAgICAgIHVwbG9hZGVkOiB0cnVlLFxuICAgICAgICB1cGxvYWRlZFVybDogcmVzdWx0LnVybCxcbiAgICAgICAgbWVkaWFJZDogcmVzdWx0Lm1lZGlhSWQsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICh0aGlzLnVwbG9hZHNEaXNtaXNzZWQgfHwgaXNVcGxvYWRBYm9ydGVkKGVyciwgYWJvcnRDb250cm9sbGVyLnNpZ25hbCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5wYXRjaEltYWdlKGluZGV4LCB7XG4gICAgICAgIHVwbG9hZFByb2dyZXNzOiAwLFxuICAgICAgICB1cGxvYWRpbmc6IGZhbHNlLFxuICAgICAgICB1cGxvYWRlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5lcnJvcnMudXBsb2FkLWZhaWxlZCcpLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXRjaEltYWdlKGluZGV4OiBudW1iZXIsIHBhdGNoOiBQYXJ0aWFsPEltYWdlRmlsZT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy51cGxvYWRzRGlzbWlzc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW1hZ2VzLnVwZGF0ZSgoaXRlbXMpID0+IHtcbiAgICAgIGNvbnN0IG5leHQgPSBbLi4uaXRlbXNdO1xuICAgICAgaWYgKG5leHRbaW5kZXhdKSB7XG4gICAgICAgIG5leHRbaW5kZXhdID0geyAuLi5uZXh0W2luZGV4XSwgLi4ucGF0Y2ggfTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlSW1hZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmltYWdlcygpW2luZGV4XTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgY2xlYW51cFBpY2tlclVwbG9hZHModGhpcy51cGxvYWRlciwgW2l0ZW1dKTtcbiAgICB9XG4gICAgdGhpcy5pbWFnZXMudXBkYXRlKChpbWFnZXMpID0+IGltYWdlcy5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KSk7XG4gIH1cblxuICBhc3luYyBzZW5kSW1hZ2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGltYWdlTGlzdCA9IHRoaXMuaW1hZ2VzKCk7XG4gICAgaWYgKCF0aGlzLmNhblNlbmQoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgaW1hZ2VzID0gaW1hZ2VMaXN0LmZsYXRNYXAoKGltYWdlKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSBwaWNrZXJJdGVtVG9VcGxvYWRSZXN1bHQoaW1hZ2UpO1xuICAgICAgcmV0dXJuIHJlc3VsdCA/IFtpbWFnZUl0ZW1Gcm9tVXBsb2FkKGltYWdlLmZpbGUsIHJlc3VsdCldIDogW107XG4gICAgfSk7XG5cbiAgICBpZiAoaW1hZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmQ6IEFYU2VuZE1lc3NhZ2VDb21tYW5kID0ge1xuICAgICAgY29udmVyc2F0aW9uSWQ6IHRoaXMuY29udmVyc2F0aW9uKCkuaWQsXG4gICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgcGF5bG9hZDoge1xuICAgICAgICB0eXBlOiAnaW1hZ2UnLFxuICAgICAgICBpbWFnZXMsXG4gICAgICAgIGNhcHRpb246IHRoaXMuY2FwdGlvbi50cmltKCkgfHwgdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgdGhpcy5yZXRhaW5VcGxvYWRlZE9uRGlzbWlzcyA9IHRydWU7XG4gICAgY29uc3QgcG9wdXAgPSB0aGlzLl9fcG9wdXBfXygpO1xuICAgIHRoaXMuZGlzbWlzc1BpY2tlcigpO1xuICAgIGRpc21pc3NDb21wb3NlclBpY2tlckhvc3QodGhpcy5jb21wb3NlclNlcnZpY2UsIHBvcHVwKTtcblxuICAgIHZvaWQgdGhpcy5jb21wb3NlclNlcnZpY2Uuc2VuZE1lc3NhZ2UoY29tbWFuZCkuY2F0Y2goKCkgPT4ge1xuICAgICAgdGhpcy5yZXRhaW5VcGxvYWRlZE9uRGlzbWlzcyA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgY2FuU2VuZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5pbWFnZXMoKTtcbiAgICByZXR1cm4gbGlzdC5sZW5ndGggPiAwICYmIGxpc3QuZXZlcnkoKGkpID0+IGkudXBsb2FkZWQgJiYgIWkuZXJyb3IgJiYgIWkudXBsb2FkaW5nKTtcbiAgfVxuXG4gIGdldFVwbG9hZGluZ0xhYmVsKHByb2dyZXNzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmZpbGVzLnVwbG9hZGluZy1wcm9ncmVzcycsIHtcbiAgICAgIHBhcmFtczogeyBwcm9ncmVzcyB9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2FuY2VsVXBsb2FkTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0UGlja2VyQ2FuY2VsVXBsb2FkTGFiZWwodGhpcy50cmFuc2xhdGlvbik7XG4gIH1cblxuICBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNtaXNzUGlja2VyKCk7XG4gICAgZGlzbWlzc0NvbXBvc2VyUGlja2VySG9zdCh0aGlzLmNvbXBvc2VyU2VydmljZSwgdGhpcy5fX3BvcHVwX18oKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc21pc3NQaWNrZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzbWlzc1BpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51cGxvYWRzRGlzbWlzc2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudXBsb2Fkc0Rpc21pc3NlZCA9IHRydWU7XG4gICAgY29uc3Qgc25hcHNob3QgPSBbLi4udGhpcy5pbWFnZXMoKV07XG4gICAgY2xlYW51cFBpY2tlclVwbG9hZHModGhpcy51cGxvYWRlciwgc25hcHNob3QsIHtcbiAgICAgIHJldGFpblVwbG9hZGVkOiB0aGlzLnJldGFpblVwbG9hZGVkT25EaXNtaXNzLFxuICAgIH0pO1xuICAgIHRoaXMucmV0YWluVXBsb2FkZWRPbkRpc21pc3MgPSBmYWxzZTtcbiAgICB0aGlzLmltYWdlcy5zZXQoW10pO1xuICAgIHRoaXMuY2FwdGlvbiA9ICcnO1xuICB9XG5cbiAgZ2V0RW1wdHlUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzRHJhZ2dpbmcoKVxuICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmltYWdlcy5kcm9wLXRvLWF0dGFjaCcpXG4gICAgICA6IHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuaW1hZ2VzLnNlbGVjdCcpO1xuICB9XG5cbiAgZ2V0RW1wdHlTdWJ0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzRHJhZ2dpbmcoKVxuICAgICAgPyB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmNvbW1vbi5yZWxlYXNlLXRvLXVwbG9hZCcpXG4gICAgICA6IHRoaXMudHJhbnNsYXRpb24udHJhbnNsYXRlU3luYygnQGFjb3JleDpjaGF0LnBpY2tlcnMuY29tbW9uLmNsaWNrLXRvLWJyb3dzZScpO1xuICB9XG5cbiAgZ2V0U2VsZWN0ZWRDb3VudFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbi50cmFuc2xhdGVTeW5jKCdAYWNvcmV4OmNoYXQucGlja2Vycy5pbWFnZXMuc2VsZWN0ZWQtY291bnQnLCB7XG4gICAgICBwYXJhbXM6IHsgY291bnQ6IHRoaXMuaW1hZ2VzKCkubGVuZ3RoIH0sXG4gICAgfSk7XG4gIH1cblxuICBnZXRTZW5kVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uLnRyYW5zbGF0ZVN5bmMoJ0BhY29yZXg6Y2hhdC5waWNrZXJzLmltYWdlcy5zZW5kLWNvdW50Jywge1xuICAgICAgcGFyYW1zOiB7IGNvdW50OiB0aGlzLmltYWdlcygpLmxlbmd0aCB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0="],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { AXFileTypeRegistryService } from '@acorex/core/file';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
5
+ import { A as AXConversationImageAttachmentComponent } from './acorex-components-conversation-image-attachment.component-Cyog5lmA.mjs';
6
+ import { A as AXConversationMessageRendererCopyHostComponent, m as mediaCopyText } from './acorex-components-conversation-message-renderer-copy-host.component-Dqh1bctR.mjs';
7
+ import { n as normalizeImagePayload, l as copyWithFileTypeFallback } from './acorex-components-conversation-acorex-components-conversation-DwQUs1nf.mjs';
8
+ import { A as AXConversationMessageRendererStateComponent } from './acorex-components-conversation-message-renderer-state.component-BNNAiHG3.mjs';
9
+ import './acorex-components-conversation-renderer-shared.styles-DRkq3IOC.mjs';
10
+
11
+ class AXConversationImageRendererComponent extends AXConversationMessageRendererCopyHostComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.fileTypes = inject(AXFileTypeRegistryService);
15
+ this.message = input.required(...(ngDevMode ? [{ debugName: "message" }] : []));
16
+ this.rendererState = computed(() => ({
17
+ deliveryStatus: this.message().status,
18
+ contentState: 'ready',
19
+ }), ...(ngDevMode ? [{ debugName: "rendererState" }] : []));
20
+ this.payload = computed(() => normalizeImagePayload(this.message().payload), ...(ngDevMode ? [{ debugName: "payload" }] : []));
21
+ this.images = computed(() => this.payload().images, ...(ngDevMode ? [{ debugName: "images" }] : []));
22
+ this.caption = computed(() => this.payload().caption?.trim() || '', ...(ngDevMode ? [{ debugName: "caption" }] : []));
23
+ this.gridModeClass = computed(() => {
24
+ const n = this.images().length;
25
+ if (n <= 1)
26
+ return 'ax-conversation-msg__grid--single';
27
+ if (n === 2)
28
+ return 'ax-conversation-msg__grid--dual';
29
+ return 'ax-conversation-msg__grid--multi';
30
+ }, ...(ngDevMode ? [{ debugName: "gridModeClass" }] : []));
31
+ }
32
+ copy() {
33
+ return copyWithFileTypeFallback(this.message(), this.fileTypes, () => {
34
+ const p = this.payload();
35
+ return mediaCopyText(p.caption, 'Image', 'images', p.images.length, p.images.map((item) => item.url?.trim() || item.thumbnailUrl?.trim()));
36
+ });
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationImageRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationImageRendererComponent, isStandalone: true, selector: "ax-conversation-image-renderer", inputs: { message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
40
+ <div class="ax-conversation-msg ax-conversation-msg--flush">
41
+ <div class="ax-conversation-msg__grid" [class]="gridModeClass()">
42
+ @for (image of images(); track image.mediaId ?? image.url) {
43
+ <ax-conversation-image-attachment [item]="image" [alt]="caption() || 'Image'" />
44
+ }
45
+ </div>
46
+ @if (caption()) {
47
+ <p class="ax-conversation-msg__caption">{{ caption() }}</p>
48
+ }
49
+ <ax-conversation-message-renderer-state
50
+ [rendererState]="rendererState()"
51
+ [message]="message()"
52
+ contentErrorLabel="Couldn't load image"
53
+ contentErrorStyle="inline"
54
+ placement="below"
55
+ />
56
+ </div>
57
+ `, 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: AXConversationImageAttachmentComponent, selector: "ax-conversation-image-attachment", inputs: ["item", "alt"] }, { 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 }); }
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationImageRendererComponent, decorators: [{
60
+ type: Component,
61
+ args: [{ selector: 'ax-conversation-image-renderer', imports: [CommonModule, AXConversationImageAttachmentComponent, AXConversationMessageRendererStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
62
+ <div class="ax-conversation-msg ax-conversation-msg--flush">
63
+ <div class="ax-conversation-msg__grid" [class]="gridModeClass()">
64
+ @for (image of images(); track image.mediaId ?? image.url) {
65
+ <ax-conversation-image-attachment [item]="image" [alt]="caption() || 'Image'" />
66
+ }
67
+ </div>
68
+ @if (caption()) {
69
+ <p class="ax-conversation-msg__caption">{{ caption() }}</p>
70
+ }
71
+ <ax-conversation-message-renderer-state
72
+ [rendererState]="rendererState()"
73
+ [message]="message()"
74
+ contentErrorLabel="Couldn't load image"
75
+ contentErrorStyle="inline"
76
+ placement="below"
77
+ />
78
+ </div>
79
+ `, 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"] }]
80
+ }] });
81
+
82
+ export { AXConversationImageRendererComponent };
83
+ //# sourceMappingURL=acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-conversation-image-renderer.component-Cjuqy3aa.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/message-list/components/image-renderer/image-renderer.component.js"],"sourcesContent":["import { AXFileTypeRegistryService } from '@acorex/core/file';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { AXConversationImageAttachmentComponent } from '../shared/image-attachment.component';\nimport { AXConversationMessageRendererCopyHostComponent, mediaCopyText, } from '../shared/message-renderer-copy-host.component';\nimport { copyWithFileTypeFallback } from '../../../../utils/file-type-message.resolve';\nimport { AXConversationMessageRendererStateComponent } from '../shared/message-renderer-state.component';\nimport { RENDERER_SHARED_STYLES } from '../shared/renderer-shared.styles';\nimport { normalizeImagePayload } from './image.payload';\nimport * as i0 from \"@angular/core\";\nexport class AXConversationImageRendererComponent 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(() => normalizeImagePayload(this.message().payload), ...(ngDevMode ? [{ debugName: \"payload\" }] : []));\n this.images = computed(() => this.payload().images, ...(ngDevMode ? [{ debugName: \"images\" }] : []));\n this.caption = computed(() => this.payload().caption?.trim() || '', ...(ngDevMode ? [{ debugName: \"caption\" }] : []));\n this.gridModeClass = computed(() => {\n const n = this.images().length;\n if (n <= 1)\n return 'ax-conversation-msg__grid--single';\n if (n === 2)\n return 'ax-conversation-msg__grid--dual';\n return 'ax-conversation-msg__grid--multi';\n }, ...(ngDevMode ? [{ debugName: \"gridModeClass\" }] : []));\n }\n copy() {\n return copyWithFileTypeFallback(this.message(), this.fileTypes, () => {\n const p = this.payload();\n return mediaCopyText(p.caption, 'Image', 'images', p.images.length, p.images.map((item) => item.url?.trim() || item.thumbnailUrl?.trim()));\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationImageRendererComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationImageRendererComponent, isStandalone: true, selector: \"ax-conversation-image-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--flush\">\n <div class=\"ax-conversation-msg__grid\" [class]=\"gridModeClass()\">\n @for (image of images(); track image.mediaId ?? image.url) {\n <ax-conversation-image-attachment [item]=\"image\" [alt]=\"caption() || 'Image'\" />\n }\n </div>\n @if (caption()) {\n <p class=\"ax-conversation-msg__caption\">{{ caption() }}</p>\n }\n <ax-conversation-message-renderer-state\n [rendererState]=\"rendererState()\"\n [message]=\"message()\"\n contentErrorLabel=\"Couldn't load image\"\n contentErrorStyle=\"inline\"\n placement=\"below\"\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: AXConversationImageAttachmentComponent, selector: \"ax-conversation-image-attachment\", inputs: [\"item\", \"alt\"] }, { 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: AXConversationImageRendererComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-image-renderer', imports: [CommonModule, AXConversationImageAttachmentComponent, AXConversationMessageRendererStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `\n <div class=\"ax-conversation-msg ax-conversation-msg--flush\">\n <div class=\"ax-conversation-msg__grid\" [class]=\"gridModeClass()\">\n @for (image of images(); track image.mediaId ?? image.url) {\n <ax-conversation-image-attachment [item]=\"image\" [alt]=\"caption() || 'Image'\" />\n }\n </div>\n @if (caption()) {\n <p class=\"ax-conversation-msg__caption\">{{ caption() }}</p>\n }\n <ax-conversation-message-renderer-state\n [rendererState]=\"rendererState()\"\n [message]=\"message()\"\n contentErrorLabel=\"Couldn't load image\"\n contentErrorStyle=\"inline\"\n placement=\"below\"\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtcmVuZGVyZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9jb252ZXJzYXRpb24vc3JjL2xpYi9wbHVnaW5zL21lc3NhZ2UtbGlzdC9jb21wb25lbnRzL2ltYWdlLXJlbmRlcmVyL2ltYWdlLXJlbmRlcmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM5RixPQUFPLEVBQ0wsOENBQThDLEVBQzlDLGFBQWEsR0FDZCxNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwyQ0FBMkMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQTJCeEQsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLDhDQUE4QztJQXpCeEc7O1FBMEJtQixjQUFTLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFdEQsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUFhLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN2QyxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU07WUFDckMsWUFBWSxFQUFFLE9BQWdCO1NBQy9CLENBQUMseURBQUMsQ0FBQztRQUVLLFlBQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQXlCLENBQUMsbURBQUMsQ0FBQztRQUMxRixXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLGtEQUFDLENBQUM7UUFDL0MsWUFBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsbURBQUMsQ0FBQztRQWUvRCxrQkFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztZQUMvQixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sbUNBQW1DLENBQUM7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLGlDQUFpQyxDQUFDO1lBQ3RELE9BQU8sa0NBQWtDLENBQUM7UUFDNUMsQ0FBQyx5REFBQyxDQUFDO0tBQ0o7SUFuQkMsSUFBSTtRQUNGLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFO1lBQ25FLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixPQUFPLGFBQWEsQ0FDbEIsQ0FBQyxDQUFDLE9BQU8sRUFDVCxPQUFPLEVBQ1AsUUFBUSxFQUNSLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUNmLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FDdEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F4QlUsb0NBQW9DO2tHQUFwQyxvQ0FBb0MsMFBBckJyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULHFnREFwQlMsWUFBWSwrQkFBRSxzQ0FBc0Msc0dBQUUsMkNBQTJDOzsyRkF1QmhHLG9DQUFvQztrQkF6QmhELFNBQVM7K0JBQ0UsZ0NBQWdDLFdBQ2pDLENBQUMsWUFBWSxFQUFFLHNDQUFzQyxFQUFFLDJDQUEyQyxDQUFDLG1CQUMzRix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQlQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZpbGVUeXBlUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2ZpbGUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFYSW1hZ2VQYXlsb2FkLCBBWE1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQVhDb252ZXJzYXRpb25JbWFnZUF0dGFjaG1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvaW1hZ2UtYXR0YWNobWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQVhDb252ZXJzYXRpb25NZXNzYWdlUmVuZGVyZXJDb3B5SG9zdENvbXBvbmVudCxcbiAgbWVkaWFDb3B5VGV4dCxcbn0gZnJvbSAnLi4vc2hhcmVkL21lc3NhZ2UtcmVuZGVyZXItY29weS1ob3N0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb3B5V2l0aEZpbGVUeXBlRmFsbGJhY2sgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscy9maWxlLXR5cGUtbWVzc2FnZS5yZXNvbHZlJztcbmltcG9ydCB7IEFYQ29udmVyc2F0aW9uTWVzc2FnZVJlbmRlcmVyU3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9zaGFyZWQvbWVzc2FnZS1yZW5kZXJlci1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUkVOREVSRVJfU0hBUkVEX1NUWUxFUyB9IGZyb20gJy4uL3NoYXJlZC9yZW5kZXJlci1zaGFyZWQuc3R5bGVzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUltYWdlUGF5bG9hZCB9IGZyb20gJy4vaW1hZ2UucGF5bG9hZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWNvbnZlcnNhdGlvbi1pbWFnZS1yZW5kZXJlcicsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEFYQ29udmVyc2F0aW9uSW1hZ2VBdHRhY2htZW50Q29tcG9uZW50LCBBWENvbnZlcnNhdGlvbk1lc3NhZ2VSZW5kZXJlclN0YXRlQ29tcG9uZW50XSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1tc2cgYXgtY29udmVyc2F0aW9uLW1zZy0tZmx1c2hcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1jb252ZXJzYXRpb24tbXNnX19ncmlkXCIgW2NsYXNzXT1cImdyaWRNb2RlQ2xhc3MoKVwiPlxuICAgICAgICBAZm9yIChpbWFnZSBvZiBpbWFnZXMoKTsgdHJhY2sgaW1hZ2UubWVkaWFJZCA/PyBpbWFnZS51cmwpIHtcbiAgICAgICAgICA8YXgtY29udmVyc2F0aW9uLWltYWdlLWF0dGFjaG1lbnQgW2l0ZW1dPVwiaW1hZ2VcIiBbYWx0XT1cImNhcHRpb24oKSB8fCAnSW1hZ2UnXCIgLz5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKGNhcHRpb24oKSkge1xuICAgICAgICA8cCBjbGFzcz1cImF4LWNvbnZlcnNhdGlvbi1tc2dfX2NhcHRpb25cIj57eyBjYXB0aW9uKCkgfX08L3A+XG4gICAgICB9XG4gICAgICA8YXgtY29udmVyc2F0aW9uLW1lc3NhZ2UtcmVuZGVyZXItc3RhdGVcbiAgICAgICAgW3JlbmRlcmVyU3RhdGVdPVwicmVuZGVyZXJTdGF0ZSgpXCJcbiAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZSgpXCJcbiAgICAgICAgY29udGVudEVycm9yTGFiZWw9XCJDb3VsZG4ndCBsb2FkIGltYWdlXCJcbiAgICAgICAgY29udGVudEVycm9yU3R5bGU9XCJpbmxpbmVcIlxuICAgICAgICBwbGFjZW1lbnQ9XCJiZWxvd1wiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtSRU5ERVJFUl9TSEFSRURfU1RZTEVTXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25JbWFnZVJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgQVhDb252ZXJzYXRpb25NZXNzYWdlUmVuZGVyZXJDb3B5SG9zdENvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsZVR5cGVzID0gaW5qZWN0KEFYRmlsZVR5cGVSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IG1lc3NhZ2UgPSBpbnB1dC5yZXF1aXJlZDxBWE1lc3NhZ2U+KCk7XG4gIHJlYWRvbmx5IHJlbmRlcmVyU3RhdGUgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgIGRlbGl2ZXJ5U3RhdHVzOiB0aGlzLm1lc3NhZ2UoKS5zdGF0dXMsXG4gICAgY29udGVudFN0YXRlOiAncmVhZHknIGFzIGNvbnN0LFxuICB9KSk7XG5cbiAgcmVhZG9ubHkgcGF5bG9hZCA9IGNvbXB1dGVkKCgpID0+IG5vcm1hbGl6ZUltYWdlUGF5bG9hZCh0aGlzLm1lc3NhZ2UoKS5wYXlsb2FkIGFzIEFYSW1hZ2VQYXlsb2FkKSk7XG4gIHJlYWRvbmx5IGltYWdlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGF5bG9hZCgpLmltYWdlcyk7XG4gIHJlYWRvbmx5IGNhcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnBheWxvYWQoKS5jYXB0aW9uPy50cmltKCkgfHwgJycpO1xuXG4gIGNvcHkoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gY29weVdpdGhGaWxlVHlwZUZhbGxiYWNrKHRoaXMubWVzc2FnZSgpLCB0aGlzLmZpbGVUeXBlcywgKCkgPT4ge1xuICAgICAgY29uc3QgcCA9IHRoaXMucGF5bG9hZCgpO1xuICAgICAgcmV0dXJuIG1lZGlhQ29weVRleHQoXG4gICAgICAgIHAuY2FwdGlvbixcbiAgICAgICAgJ0ltYWdlJyxcbiAgICAgICAgJ2ltYWdlcycsXG4gICAgICAgIHAuaW1hZ2VzLmxlbmd0aCxcbiAgICAgICAgcC5pbWFnZXMubWFwKChpdGVtKSA9PiBpdGVtLnVybD8udHJpbSgpIHx8IGl0ZW0udGh1bWJuYWlsVXJsPy50cmltKCkpLFxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRvbmx5IGdyaWRNb2RlQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbiA9IHRoaXMuaW1hZ2VzKCkubGVuZ3RoO1xuICAgIGlmIChuIDw9IDEpIHJldHVybiAnYXgtY29udmVyc2F0aW9uLW1zZ19fZ3JpZC0tc2luZ2xlJztcbiAgICBpZiAobiA9PT0gMikgcmV0dXJuICdheC1jb252ZXJzYXRpb24tbXNnX19ncmlkLS1kdWFsJztcbiAgICByZXR1cm4gJ2F4LWNvbnZlcnNhdGlvbi1tc2dfX2dyaWQtLW11bHRpJztcbiAgfSk7XG59XG4iXX0="],"names":[],"mappings":";;;;;;;;;;AAUO,MAAM,oCAAoC,SAAS,8CAA8C,CAAC;AACzG,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,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AACtI,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5G,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,QAAQ,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM;AAC5C,YAAY,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;AAC1C,YAAY,IAAI,CAAC,IAAI,CAAC;AACtB,gBAAgB,OAAO,mCAAmC;AAC1D,YAAY,IAAI,CAAC,KAAK,CAAC;AACvB,gBAAgB,OAAO,iCAAiC;AACxD,YAAY,OAAO,kCAAkC;AACrD,QAAQ,CAAC,EAAE,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE,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,OAAO,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;AACtJ,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,oCAAoC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACxM,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oCAAoC,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,gCAAgC,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;AAChY;AACA;AACA;AACA;AACA;AACA;AACA;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,sCAAsC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,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;AACljE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC;AAC9I,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,gCAAgC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,sCAAsC,EAAE,2CAA2C,CAAC,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE;AAC1O;AACA;AACA;AACA;AACA;AACA;AACA;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,180 @@
1
+ import * as i1 from '@acorex/components/search-box';
2
+ import { AXSearchBoxModule } from '@acorex/components/search-box';
3
+ import * as i3 from '@acorex/core/translation';
4
+ import { AXTranslationModule } from '@acorex/core/translation';
5
+ import * as i2 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i0 from '@angular/core';
8
+ import { output, signal, computed, Component } from '@angular/core';
9
+ import { FormsModule } from '@angular/forms';
10
+
11
+ /**
12
+ * Emoji Tab Component
13
+ * Emoji picker for composer popup
14
+ */
15
+ let emojiCategoriesCache = null;
16
+ async function loadEmojiCategories() {
17
+ if (emojiCategoriesCache) {
18
+ return emojiCategoriesCache;
19
+ }
20
+ const module = await import('./acorex-components-conversation-emoji-categories-C7Gm95V0.mjs');
21
+ emojiCategoriesCache = module.default ?? module;
22
+ return emojiCategoriesCache;
23
+ }
24
+ class AXConversationEmojiTabComponent {
25
+ constructor() {
26
+ /** Emoji selected event */
27
+ this.itemSelected = output();
28
+ /** Search query */
29
+ this.searchQuery = signal('', ...(ngDevMode ? [{ debugName: "searchQuery" }] : []));
30
+ /** Active category */
31
+ this.activeCategoryId = signal('smileys', ...(ngDevMode ? [{ debugName: "activeCategoryId" }] : []));
32
+ /** Categories */
33
+ this.categories = signal([], ...(ngDevMode ? [{ debugName: "categories" }] : []));
34
+ /** Filtered emojis */
35
+ this.filteredEmojis = computed(() => {
36
+ const query = this.searchQuery().toLowerCase().trim();
37
+ const categoryId = this.activeCategoryId();
38
+ if (query) {
39
+ // Search across all categories by name and keywords
40
+ return this.categories().flatMap((cat) => cat.emojis).filter((emoji) => {
41
+ const searchText = `${emoji.name} ${emoji.keywords.join(' ')}`.toLowerCase();
42
+ return searchText.includes(query);
43
+ });
44
+ }
45
+ else {
46
+ // Show active category
47
+ const category = this.categories().find((c) => c.id === categoryId);
48
+ return category ? category.emojis : [];
49
+ }
50
+ }, ...(ngDevMode ? [{ debugName: "filteredEmojis" }] : []));
51
+ void loadEmojiCategories().then((categories) => this.categories.set(categories));
52
+ }
53
+ /** Select category */
54
+ selectCategory(categoryId) {
55
+ this.activeCategoryId.set(categoryId);
56
+ this.searchQuery.set('');
57
+ }
58
+ /** Get category CSS classes */
59
+ getCategoryClasses(categoryId) {
60
+ const classes = ['category-button'];
61
+ if (this.activeCategoryId() === categoryId) {
62
+ classes.push('category-button-active');
63
+ }
64
+ return classes.join(' ');
65
+ }
66
+ onSearchChange(event) {
67
+ this.searchQuery.set(event?.value || '');
68
+ }
69
+ /** Select emoji */
70
+ selectEmoji(emoji) {
71
+ this.itemSelected.emit(emoji);
72
+ }
73
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationEmojiTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: AXConversationEmojiTabComponent, isStandalone: true, selector: "ax-conversation-emoji-tab", outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: `
75
+ <div class="emoji-tab">
76
+ <!-- Search -->
77
+ <div class="emoji-search">
78
+ <ax-search-box
79
+ [value]="searchQuery()"
80
+ [placeholder]="'Search emoji...'"
81
+ (onValueChanged)="onSearchChange($event)"
82
+ ></ax-search-box>
83
+ </div>
84
+
85
+ <!-- Categories -->
86
+ <div class="emoji-categories">
87
+ @for (category of categories(); track category.id) {
88
+ <button
89
+ type="button"
90
+ [class]="getCategoryClasses(category.id)"
91
+ (click)="selectCategory(category.id)"
92
+ [attr.aria-label]="category.name"
93
+ [title]="category.name"
94
+ >
95
+ {{ category.icon }}
96
+ </button>
97
+ }
98
+ </div>
99
+
100
+ <!-- Emoji Grid -->
101
+ <div class="emoji-grid">
102
+ @for (emoji of filteredEmojis(); track emoji.char) {
103
+ <button
104
+ type="button"
105
+ class="emoji-button"
106
+ (click)="selectEmoji(emoji.char)"
107
+ [attr.aria-label]="emoji.name"
108
+ [title]="emoji.name"
109
+ >
110
+ {{ emoji.char }}
111
+ </button>
112
+ }
113
+ </div>
114
+
115
+ @if (filteredEmojis().length === 0) {
116
+ <div class="emoji-empty">
117
+ <p>{{ '@acorex:chat.empty.no-emojis-found' | translate | async }}</p>
118
+ </div>
119
+ }
120
+ </div>
121
+ `, isInline: true, styles: [".emoji-tab{display:flex;flex-direction:column;height:100%}.emoji-search{position:sticky;top:0;z-index:10;padding-block:.75rem}.emoji-categories{display:flex;align-items:center;flex-shrink:0;gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;overflow-x:auto;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.category-button{height:2rem;width:2rem;display:flex;justify-content:center;align-items:center;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.25rem;transition:all .15s;font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.category-button-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,32px);gap:.25rem;// overflow-y: auto;max-height:240px}.emoji-button{width:2rem;height:2rem;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.5rem;transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.emoji-button:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.2)}.emoji-empty{padding:2rem;text-align:center;opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: AXSearchBoxModule }, { kind: "component", type: i1.AXSearchBoxComponent, selector: "ax-search-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "class", "delayTime", "type", "autoSearch"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "translate" }] }); }
122
+ }
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXConversationEmojiTabComponent, decorators: [{
124
+ type: Component,
125
+ args: [{ selector: 'ax-conversation-emoji-tab', imports: [CommonModule, FormsModule, AXSearchBoxModule, AXTranslationModule], template: `
126
+ <div class="emoji-tab">
127
+ <!-- Search -->
128
+ <div class="emoji-search">
129
+ <ax-search-box
130
+ [value]="searchQuery()"
131
+ [placeholder]="'Search emoji...'"
132
+ (onValueChanged)="onSearchChange($event)"
133
+ ></ax-search-box>
134
+ </div>
135
+
136
+ <!-- Categories -->
137
+ <div class="emoji-categories">
138
+ @for (category of categories(); track category.id) {
139
+ <button
140
+ type="button"
141
+ [class]="getCategoryClasses(category.id)"
142
+ (click)="selectCategory(category.id)"
143
+ [attr.aria-label]="category.name"
144
+ [title]="category.name"
145
+ >
146
+ {{ category.icon }}
147
+ </button>
148
+ }
149
+ </div>
150
+
151
+ <!-- Emoji Grid -->
152
+ <div class="emoji-grid">
153
+ @for (emoji of filteredEmojis(); track emoji.char) {
154
+ <button
155
+ type="button"
156
+ class="emoji-button"
157
+ (click)="selectEmoji(emoji.char)"
158
+ [attr.aria-label]="emoji.name"
159
+ [title]="emoji.name"
160
+ >
161
+ {{ emoji.char }}
162
+ </button>
163
+ }
164
+ </div>
165
+
166
+ @if (filteredEmojis().length === 0) {
167
+ <div class="emoji-empty">
168
+ <p>{{ '@acorex:chat.empty.no-emojis-found' | translate | async }}</p>
169
+ </div>
170
+ }
171
+ </div>
172
+ `, styles: [".emoji-tab{display:flex;flex-direction:column;height:100%}.emoji-search{position:sticky;top:0;z-index:10;padding-block:.75rem}.emoji-categories{display:flex;align-items:center;flex-shrink:0;gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;overflow-x:auto;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.category-button{height:2rem;width:2rem;display:flex;justify-content:center;align-items:center;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.25rem;transition:all .15s;font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.category-button-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,32px);gap:.25rem;// overflow-y: auto;max-height:240px}.emoji-button{width:2rem;height:2rem;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.5rem;transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\",\"Apple Color Emoji\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.emoji-button:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.2)}.emoji-empty{padding:2rem;text-align:center;opacity:.6}\n"] }]
173
+ }], ctorParameters: () => [] });
174
+
175
+ /**
176
+ * Emoji Tab Component
177
+ */
178
+
179
+ export { AXConversationEmojiTabComponent };
180
+ //# sourceMappingURL=acorex-components-conversation-index-BbrYsQ84.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-components-conversation-index-BbrYsQ84.mjs","sources":["../tmp-esm2022/conversation/lib/plugins/composer/components/emoji-tab/emoji-tab.component.js","../tmp-esm2022/conversation/lib/plugins/composer/components/emoji-tab/index.js"],"sourcesContent":["/**\n * Emoji Tab Component\n * Emoji picker for composer popup\n */\nimport { AXSearchBoxModule } from '@acorex/components/search-box';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, output, signal } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/search-box\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@acorex/core/translation\";\nlet emojiCategoriesCache = null;\nasync function loadEmojiCategories() {\n if (emojiCategoriesCache) {\n return emojiCategoriesCache;\n }\n const module = await import('./emoji-categories.json');\n emojiCategoriesCache = module.default ?? module;\n return emojiCategoriesCache;\n}\nexport class AXConversationEmojiTabComponent {\n constructor() {\n /** Emoji selected event */\n this.itemSelected = output();\n /** Search query */\n this.searchQuery = signal('', ...(ngDevMode ? [{ debugName: \"searchQuery\" }] : []));\n /** Active category */\n this.activeCategoryId = signal('smileys', ...(ngDevMode ? [{ debugName: \"activeCategoryId\" }] : []));\n /** Categories */\n this.categories = signal([], ...(ngDevMode ? [{ debugName: \"categories\" }] : []));\n /** Filtered emojis */\n this.filteredEmojis = computed(() => {\n const query = this.searchQuery().toLowerCase().trim();\n const categoryId = this.activeCategoryId();\n if (query) {\n // Search across all categories by name and keywords\n return this.categories().flatMap((cat) => cat.emojis).filter((emoji) => {\n const searchText = `${emoji.name} ${emoji.keywords.join(' ')}`.toLowerCase();\n return searchText.includes(query);\n });\n }\n else {\n // Show active category\n const category = this.categories().find((c) => c.id === categoryId);\n return category ? category.emojis : [];\n }\n }, ...(ngDevMode ? [{ debugName: \"filteredEmojis\" }] : []));\n void loadEmojiCategories().then((categories) => this.categories.set(categories));\n }\n /** Select category */\n selectCategory(categoryId) {\n this.activeCategoryId.set(categoryId);\n this.searchQuery.set('');\n }\n /** Get category CSS classes */\n getCategoryClasses(categoryId) {\n const classes = ['category-button'];\n if (this.activeCategoryId() === categoryId) {\n classes.push('category-button-active');\n }\n return classes.join(' ');\n }\n onSearchChange(event) {\n this.searchQuery.set(event?.value || '');\n }\n /** Select emoji */\n selectEmoji(emoji) {\n this.itemSelected.emit(emoji);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationEmojiTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXConversationEmojiTabComponent, isStandalone: true, selector: \"ax-conversation-emoji-tab\", outputs: { itemSelected: \"itemSelected\" }, ngImport: i0, template: `\n <div class=\"emoji-tab\">\n <!-- Search -->\n <div class=\"emoji-search\">\n <ax-search-box\n [value]=\"searchQuery()\"\n [placeholder]=\"'Search emoji...'\"\n (onValueChanged)=\"onSearchChange($event)\"\n ></ax-search-box>\n </div>\n\n <!-- Categories -->\n <div class=\"emoji-categories\">\n @for (category of categories(); track category.id) {\n <button\n type=\"button\"\n [class]=\"getCategoryClasses(category.id)\"\n (click)=\"selectCategory(category.id)\"\n [attr.aria-label]=\"category.name\"\n [title]=\"category.name\"\n >\n {{ category.icon }}\n </button>\n }\n </div>\n\n <!-- Emoji Grid -->\n <div class=\"emoji-grid\">\n @for (emoji of filteredEmojis(); track emoji.char) {\n <button\n type=\"button\"\n class=\"emoji-button\"\n (click)=\"selectEmoji(emoji.char)\"\n [attr.aria-label]=\"emoji.name\"\n [title]=\"emoji.name\"\n >\n {{ emoji.char }}\n </button>\n }\n </div>\n\n @if (filteredEmojis().length === 0) {\n <div class=\"emoji-empty\">\n <p>{{ '@acorex:chat.empty.no-emojis-found' | translate | async }}</p>\n </div>\n }\n </div>\n `, isInline: true, styles: [\".emoji-tab{display:flex;flex-direction:column;height:100%}.emoji-search{position:sticky;top:0;z-index:10;padding-block:.75rem}.emoji-categories{display:flex;align-items:center;flex-shrink:0;gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;overflow-x:auto;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.category-button{height:2rem;width:2rem;display:flex;justify-content:center;align-items:center;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.25rem;transition:all .15s;font-family:\\\"Segoe UI Emoji\\\",Segoe UI Symbol,\\\"Noto Color Emoji\\\",\\\"Apple Color Emoji\\\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.category-button-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,32px);gap:.25rem;// overflow-y: auto;max-height:240px}.emoji-button{width:2rem;height:2rem;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.5rem;transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:\\\"Segoe UI Emoji\\\",Segoe UI Symbol,\\\"Noto Color Emoji\\\",\\\"Apple Color Emoji\\\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.emoji-button:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.2)}.emoji-empty{padding:2rem;text-align:center;opacity:.6}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: AXSearchBoxModule }, { kind: \"component\", type: i1.AXSearchBoxComponent, selector: \"ax-search-box\", inputs: [\"disabled\", \"readonly\", \"tabIndex\", \"placeholder\", \"value\", \"state\", \"name\", \"id\", \"look\", \"class\", \"delayTime\", \"type\", \"autoSearch\"], outputs: [\"valueChange\", \"stateChange\", \"onValueChanged\", \"onBlur\", \"onFocus\", \"readonlyChange\", \"disabledChange\", \"onKeyDown\", \"onKeyUp\", \"onKeyPress\"] }, { kind: \"ngmodule\", type: AXTranslationModule }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.AXTranslatorPipe, name: \"translate\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXConversationEmojiTabComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-conversation-emoji-tab', imports: [CommonModule, FormsModule, AXSearchBoxModule, AXTranslationModule], template: `\n <div class=\"emoji-tab\">\n <!-- Search -->\n <div class=\"emoji-search\">\n <ax-search-box\n [value]=\"searchQuery()\"\n [placeholder]=\"'Search emoji...'\"\n (onValueChanged)=\"onSearchChange($event)\"\n ></ax-search-box>\n </div>\n\n <!-- Categories -->\n <div class=\"emoji-categories\">\n @for (category of categories(); track category.id) {\n <button\n type=\"button\"\n [class]=\"getCategoryClasses(category.id)\"\n (click)=\"selectCategory(category.id)\"\n [attr.aria-label]=\"category.name\"\n [title]=\"category.name\"\n >\n {{ category.icon }}\n </button>\n }\n </div>\n\n <!-- Emoji Grid -->\n <div class=\"emoji-grid\">\n @for (emoji of filteredEmojis(); track emoji.char) {\n <button\n type=\"button\"\n class=\"emoji-button\"\n (click)=\"selectEmoji(emoji.char)\"\n [attr.aria-label]=\"emoji.name\"\n [title]=\"emoji.name\"\n >\n {{ emoji.char }}\n </button>\n }\n </div>\n\n @if (filteredEmojis().length === 0) {\n <div class=\"emoji-empty\">\n <p>{{ '@acorex:chat.empty.no-emojis-found' | translate | async }}</p>\n </div>\n }\n </div>\n `, styles: [\".emoji-tab{display:flex;flex-direction:column;height:100%}.emoji-search{position:sticky;top:0;z-index:10;padding-block:.75rem}.emoji-categories{display:flex;align-items:center;flex-shrink:0;gap:.25rem;margin-bottom:.75rem;padding-bottom:.75rem;overflow-x:auto;border-bottom:1px solid rgb(var(--ax-sys-color-border-light-surface))}.category-button{height:2rem;width:2rem;display:flex;justify-content:center;align-items:center;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.25rem;transition:all .15s;font-family:\\\"Segoe UI Emoji\\\",Segoe UI Symbol,\\\"Noto Color Emoji\\\",\\\"Apple Color Emoji\\\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.category-button:hover{background:rgb(var(--ax-sys-color-light-surface))}.category-button-active{background:rgb(var(--ax-sys-color-primary-lightest-surface));color:rgb(var(--ax-sys-color-on-primary-lightest-surface))}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,32px);gap:.25rem;// overflow-y: auto;max-height:240px}.emoji-button{width:2rem;height:2rem;padding:.25rem;border:none;background:transparent;border-radius:.375rem;cursor:pointer;font-size:1.5rem;transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:\\\"Segoe UI Emoji\\\",Segoe UI Symbol,\\\"Noto Color Emoji\\\",\\\"Apple Color Emoji\\\",Twemoji Mozilla,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.emoji-button:hover{background:rgb(var(--ax-sys-color-light-surface));// transform: scale(1.2)}.emoji-empty{padding:2rem;text-align:center;opacity:.6}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1vamktdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvY29udmVyc2F0aW9uL3NyYy9saWIvcGx1Z2lucy9jb21wb3Nlci9jb21wb25lbnRzL2Vtb2ppLXRhYi9lbW9qaS10YWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQUVILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFnQjdDLElBQUksb0JBQW9CLEdBQTJCLElBQUksQ0FBQztBQUV4RCxLQUFLLFVBQVUsbUJBQW1CO0lBQ2hDLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUN6QixPQUFPLG9CQUFvQixDQUFDO0lBQzlCLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQ3ZELG9CQUFvQixHQUFJLE1BQXVDLENBQUMsT0FBTyxJQUFLLE1BQXFDLENBQUM7SUFDbEgsT0FBTyxvQkFBb0IsQ0FBQztBQUM5QixDQUFDO0FBbUpELE1BQU0sT0FBTywrQkFBK0I7SUFhMUM7UUFaQSwyQkFBMkI7UUFDbEIsaUJBQVksR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUV6QyxtQkFBbUI7UUFDVixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxFQUFFLHVEQUFDLENBQUM7UUFFbEMsc0JBQXNCO1FBQ0wscUJBQWdC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QkFBbUIsQ0FBQyxZQUNsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQ1QiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEVtb2ppIFRhYiBDb21wb25lbnRcbiAqIEVtb2ppIHBpY2tlciBmb3IgY29tcG9zZXIgcG9wdXBcbiAqL1xuXG5pbXBvcnQgeyBBWFNlYXJjaEJveE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9zZWFyY2gtYm94JztcbmltcG9ydCB7IEFYVHJhbnNsYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW50ZXJmYWNlIEVtb2ppIHtcbiAgY2hhcjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGtleXdvcmRzOiBzdHJpbmdbXTtcbn1cblxuaW50ZXJmYWNlIEVtb2ppQ2F0ZWdvcnkge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgZW1vamlzOiBFbW9qaVtdO1xufVxuXG5cbmxldCBlbW9qaUNhdGVnb3JpZXNDYWNoZTogRW1vamlDYXRlZ29yeVtdIHwgbnVsbCA9IG51bGw7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRFbW9qaUNhdGVnb3JpZXMoKTogUHJvbWlzZTxFbW9qaUNhdGVnb3J5W10+IHtcbiAgaWYgKGVtb2ppQ2F0ZWdvcmllc0NhY2hlKSB7XG4gICAgcmV0dXJuIGVtb2ppQ2F0ZWdvcmllc0NhY2hlO1xuICB9XG4gIGNvbnN0IG1vZHVsZSA9IGF3YWl0IGltcG9ydCgnLi9lbW9qaS1jYXRlZ29yaWVzLmpzb24nKTtcbiAgZW1vamlDYXRlZ29yaWVzQ2FjaGUgPSAobW9kdWxlIGFzIHsgZGVmYXVsdDogRW1vamlDYXRlZ29yeVtdIH0pLmRlZmF1bHQgPz8gKG1vZHVsZSBhcyB1bmtub3duIGFzIEVtb2ppQ2F0ZWdvcnlbXSk7XG4gIHJldHVybiBlbW9qaUNhdGVnb3JpZXNDYWNoZTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtY29udmVyc2F0aW9uLWVtb2ppLXRhYicsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBBWFNlYXJjaEJveE1vZHVsZSwgQVhUcmFuc2xhdGlvbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImVtb2ppLXRhYlwiPlxuICAgICAgPCEtLSBTZWFyY2ggLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktc2VhcmNoXCI+XG4gICAgICAgIDxheC1zZWFyY2gtYm94XG4gICAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFF1ZXJ5KClcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoIGVtb2ppLi4uJ1wiXG4gICAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9heC1zZWFyY2gtYm94PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2F0ZWdvcmllcyAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1jYXRlZ29yaWVzXCI+XG4gICAgICAgIEBmb3IgKGNhdGVnb3J5IG9mIGNhdGVnb3JpZXMoKTsgdHJhY2sgY2F0ZWdvcnkuaWQpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJnZXRDYXRlZ29yeUNsYXNzZXMoY2F0ZWdvcnkuaWQpXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDYXRlZ29yeShjYXRlZ29yeS5pZClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjYXRlZ29yeS5uYW1lXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJjYXRlZ29yeS5uYW1lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBjYXRlZ29yeS5pY29uIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIEVtb2ppIEdyaWQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZW1vamktZ3JpZFwiPlxuICAgICAgICBAZm9yIChlbW9qaSBvZiBmaWx0ZXJlZEVtb2ppcygpOyB0cmFjayBlbW9qaS5jaGFyKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImVtb2ppLWJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0RW1vamkoZW1vamkuY2hhcilcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlbW9qaS5uYW1lXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJlbW9qaS5uYW1lXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBlbW9qaS5jaGFyIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKGZpbHRlcmVkRW1vamlzKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbW9qaS1lbXB0eVwiPlxuICAgICAgICAgIDxwPnt7ICdAYWNvcmV4OmNoYXQuZW1wdHkubm8tZW1vamlzLWZvdW5kJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmVtb2ppLXRhYiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLmVtb2ppLXNlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIHBhZGRpbmctYmxvY2s6IDAuNzVyZW07XG4gICAgICB9XG5cbiAgICAgIC5lbW9qaS1jYXRlZ29yaWVzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNzVyZW07XG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLWJvcmRlci1saWdodC1zdXJmYWNlKSk7XG4gICAgICB9XG5cbiAgICAgIC5jYXRlZ29yeS1idXR0b24ge1xuICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMC4yNXJlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAxLjI1cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7XG4gICAgICAgIGZvbnQtZmFtaWx5OlxuICAgICAgICAgICdTZWdvZSBVSSBFbW9qaScsICdTZWdvZSBVSSBTeW1ib2wnLCAnTm90byBDb2xvciBFbW9qaScsICdBcHBsZSBDb2xvciBFbW9qaScsICdUd2Vtb2ppIE1vemlsbGEnLCBzYW5zLXNlcmlmO1xuICAgICAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbiAgICAgIH1cblxuICAgICAgLmNhdGVnb3J5LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYih2YXIoLS1heC1zeXMtY29sb3ItbGlnaHQtc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAuY2F0ZWdvcnktYnV0dG9uLWFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYih2YXIoLS1heC1zeXMtY29sb3ItcHJpbWFyeS1saWdodGVzdC1zdXJmYWNlKSk7XG4gICAgICAgIGNvbG9yOiByZ2IodmFyKC0tYXgtc3lzLWNvbG9yLW9uLXByaW1hcnktbGlnaHRlc3Qtc3VyZmFjZSkpO1xuICAgICAgfVxuXG4gICAgICAuZW1vamktZ3JpZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgMzJweCk7XG4gICAgICAgIGdhcDogMC4yNXJlbTtcbiAgICAgICAgLy8gb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgbWF4LWhlaWdodDogMjQwcHg7XG4gICAgICB9XG5cbiAgICAgIC5lbW9qaS1idXR0b24ge1xuICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjI1cmVtO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwLjM3NXJlbTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZm9udC1mYW1pbHk6XG4gICAgICAgICAgJ1NlZ29lIFVJIEVtb2ppJywgJ1NlZ29lIFVJIFN5bWJvbCcsICdOb3RvIENvbG9yIEVtb2ppJywgJ0FwcGxlIENvbG9yIEVtb2ppJywgJ1R3ZW1vamkgTW96aWxsYScsIHNhbnMtc2VyaWY7XG4gICAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAgICAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xuICAgICAgfVxuXG4gICAgICAuZW1vamktYnV0dG9uOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiKHZhcigtLWF4LXN5cy1jb2xvci1saWdodC1zdXJmYWNlKSk7XG4gICAgICAgIC8vIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICAgIH1cblxuICAgICAgLmVtb2ppLWVtcHR5IHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhDb252ZXJzYXRpb25FbW9qaVRhYkNvbXBvbmVudCB7XG4gIC8qKiBFbW9qaSBzZWxlY3RlZCBldmVudCAqL1xuICByZWFkb25seSBpdGVtU2VsZWN0ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuXG4gIC8qKiBTZWFyY2ggcXVlcnkgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUXVlcnkgPSBzaWduYWwoJycpO1xuXG4gIC8qKiBBY3RpdmUgY2F0ZWdvcnkgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBhY3RpdmVDYXRlZ29yeUlkID0gc2lnbmFsPHN0cmluZz4oJ3NtaWxleXMnKTtcblxuICAvKiogQ2F0ZWdvcmllcyAqL1xuICByZWFkb25seSBjYXRlZ29yaWVzID0gc2lnbmFsPEVtb2ppQ2F0ZWdvcnlbXT4oW10pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHZvaWQgbG9hZEVtb2ppQ2F0ZWdvcmllcygpLnRoZW4oKGNhdGVnb3JpZXMpID0+IHRoaXMuY2F0ZWdvcmllcy5zZXQoY2F0ZWdvcmllcykpO1xuICB9XG5cbiAgLyoqIEZpbHRlcmVkIGVtb2ppcyAqL1xuICByZWFkb25seSBmaWx0ZXJlZEVtb2ppcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuc2VhcmNoUXVlcnkoKS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcbiAgICBjb25zdCBjYXRlZ29yeUlkID0gdGhpcy5hY3RpdmVDYXRlZ29yeUlkKCk7XG5cbiAgICBpZiAocXVlcnkpIHtcbiAgICAgIC8vIFNlYXJjaCBhY3Jvc3MgYWxsIGNhdGVnb3JpZXMgYnkgbmFtZSBhbmQga2V5d29yZHNcbiAgICAgIHJldHVybiB0aGlzLmNhdGVnb3JpZXMoKS5mbGF0TWFwKChjYXQpID0+IGNhdC5lbW9qaXMpLmZpbHRlcigoZW1vamkpID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoVGV4dCA9IGAke2Vtb2ppLm5hbWV9ICR7ZW1vamkua2V5d29yZHMuam9pbignICcpfWAudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRleHQuaW5jbHVkZXMocXVlcnkpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFNob3cgYWN0aXZlIGNhdGVnb3J5XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcmllcygpLmZpbmQoKGMpID0+IGMuaWQgPT09IGNhdGVnb3J5SWQpO1xuICAgICAgcmV0dXJuIGNhdGVnb3J5ID8gY2F0ZWdvcnkuZW1vamlzIDogW107XG4gICAgfVxuICB9KTtcblxuICAvKiogU2VsZWN0IGNhdGVnb3J5ICovXG4gIHNlbGVjdENhdGVnb3J5KGNhdGVnb3J5SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnlJZCk7XG4gICAgdGhpcy5zZWFyY2hRdWVyeS5zZXQoJycpO1xuICB9XG5cbiAgLyoqIEdldCBjYXRlZ29yeSBDU1MgY2xhc3NlcyAqL1xuICBnZXRDYXRlZ29yeUNsYXNzZXMoY2F0ZWdvcnlJZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjbGFzc2VzID0gWydjYXRlZ29yeS1idXR0b24nXTtcbiAgICBpZiAodGhpcy5hY3RpdmVDYXRlZ29yeUlkKCkgPT09IGNhdGVnb3J5SWQpIHtcbiAgICAgIGNsYXNzZXMucHVzaCgnY2F0ZWdvcnktYnV0dG9uLWFjdGl2ZScpO1xuICAgIH1cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBvblNlYXJjaENoYW5nZShldmVudDogeyB2YWx1ZT86IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hRdWVyeS5zZXQoZXZlbnQ/LnZhbHVlIHx8ICcnKTtcbiAgfVxuXG4gIC8qKiBTZWxlY3QgZW1vamkgKi9cbiAgc2VsZWN0RW1vamkoZW1vamk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoZW1vamkpO1xuICB9XG59XG4iXX0=","/**\n * Emoji Tab Component\n */\nexport { AXConversationEmojiTabComponent } from './emoji-tab.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2NvbnZlcnNhdGlvbi9zcmMvbGliL3BsdWdpbnMvY29tcG9zZXIvY29tcG9uZW50cy9lbW9qaS10YWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRW1vamkgVGFiIENvbXBvbmVudFxuICovXG5cbmV4cG9ydCB7IEFYQ29udmVyc2F0aW9uRW1vamlUYWJDb21wb25lbnQgfSBmcm9tICcuL2Vtb2ppLXRhYi5jb21wb25lbnQnO1xuIl19"],"names":[],"mappings":"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"}