@acorex-platform/module-conversation-client 0.0.38 → 0.0.46

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 (73) hide show
  1. package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-XTzQQhii.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs} +9727 -8104
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BMGagKtP.mjs → acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BMGagKtP.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-D1SDsHvl.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs} +8 -7
  6. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-D1SDsHvl.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs.map} +1 -1
  7. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs +1756 -0
  8. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs +120 -0
  10. package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BV1YH96m.mjs.map → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-nE7xP4bF.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs} +747 -25
  12. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-DXkqkS50.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs} +4 -4
  14. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-DXkqkS50.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-SYCtAqcV.mjs → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-Bnbj0e6M.mjs} +3 -3
  16. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-SYCtAqcV.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-Bnbj0e6M.mjs.map} +1 -1
  17. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-bwT1-lAn.mjs +497 -0
  18. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-bwT1-lAn.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Dv_x3ztZ.mjs → acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Dv_x3ztZ.mjs.map → acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-audience.mjs +277 -0
  22. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-audience.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-post.mjs +530 -0
  24. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-post.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.mjs +206 -0
  26. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs +65 -17
  28. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs +231 -59
  30. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-CV_sCYGf.mjs +87 -0
  32. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-CV_sCYGf.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-audience.entity-DyaUcESJ.mjs +213 -0
  34. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-audience.entity-DyaUcESJ.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-post.entity-CbBcChEt.mjs +466 -0
  36. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-post.entity-CbBcChEt.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-receipt.entity-DtRFj8zV.mjs +142 -0
  38. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-receipt.entity-DtRFj8zV.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs → acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-CJk1wEvA.mjs} +35 -19
  40. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-CJk1wEvA.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-Ctt7qzfF.mjs +403 -0
  42. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-Ctt7qzfF.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs +1 -1
  44. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +846 -4
  45. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs +3 -0
  47. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-8NoSuUwe.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs} +2 -2
  49. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-8NoSuUwe.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BgJ0Z36e.mjs → acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs} +2 -2
  51. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BgJ0Z36e.mjs.map → acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs.map} +1 -1
  52. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-lcNz4Hpu.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs} +2 -2
  53. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-lcNz4Hpu.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs.map} +1 -1
  54. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DxccFsD9.mjs → acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs} +7 -2
  55. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  57. package/package.json +14 -2
  58. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-audience.d.ts +5 -0
  59. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-post.d.ts +5 -0
  60. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.d.ts +5 -0
  61. package/types/acorex-platform-module-conversation-client-contracts.d.ts +432 -2
  62. package/types/acorex-platform-module-conversation-client.d.ts +676 -161
  63. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-XTzQQhii.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BV1YH96m.mjs +0 -120
  65. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-nE7xP4bF.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-51PtojIM.mjs +0 -482
  67. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-51PtojIM.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs +0 -52
  69. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs +0 -263
  72. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-DxccFsD9.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-chat-conversation-info-panel.component-51PtojIM.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/chat/plugins/info-bar/chat-conversation-info-panel.component.ts","../../../../libs/modules/conversation/client/src/lib/features/chat/plugins/info-bar/chat-conversation-info-panel.component.html"],"sourcesContent":["//#region ----- Imports -----\n\nimport { AXClosableComponent, AXComponentCloseEvent } from '@acorex/cdk/common';\nimport { AXButtonComponent } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLabelComponent } from '@acorex/components/label';\nimport { AXSearchBoxComponent } from '@acorex/components/search-box';\nimport { AXSwitchModule } from '@acorex/components/switch';\nimport { AXTextBoxComponent } from '@acorex/components/text-box';\nimport { AXToastService } from '@acorex/components/toast';\nimport {\n AXConversationAvatarComponent,\n AXConversationAvatarPickerComponent,\n AXConversationRegistryComponentOutletComponent,\n AXConversationService,\n AXConversationMessageUtilsService,\n AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID,\n AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS,\n fetchConversationMediaPage,\n filterSupplementalInfoPanelMessages,\n getConversationMediaCategories,\n getConversationProfileFields,\n isMessageListThemeBackground,\n isSameMessageListBackground,\n mergeInfoPanelMessages,\n normalizeMessageListBackgroundValue,\n resolveMessageListBackgroundRaw,\n} from '@acorex/components/conversation';\nimport type {\n AXConversation,\n AXConversationMessage,\n AXConversationMessageListBackground,\n AXConversationMessageListThemeBackground,\n AXConversationMediaCategory,\n AXConversationParticipant,\n} from '@acorex/components/conversation';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AsyncPipe } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n inject,\n OnDestroy,\n OnInit,\n output,\n signal,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n//#endregion\n\n//#region ----- Types -----\n\ninterface AXMInfoPanelQuickAction {\n id: string;\n labelKey: string;\n icon: string;\n danger?: boolean;\n}\n\n//#endregion\n\n//#region ----- Component -----\n\n@Component({\n selector: 'axm-chat-conversation-info-panel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n AsyncPipe,\n FormsModule,\n AXButtonComponent,\n AXDecoratorModule,\n AXLabelComponent,\n AXSearchBoxComponent,\n AXSwitchModule,\n AXTextBoxComponent,\n AXConversationAvatarPickerComponent,\n AXConversationAvatarComponent,\n AXConversationRegistryComponentOutletComponent,\n AXTranslationModule,\n ],\n providers: [{ provide: AXClosableComponent, useExisting: AXMChatConversationInfoPanelComponent }],\n templateUrl: './chat-conversation-info-panel.component.html',\n styleUrl: './chat-conversation-info-panel.component.css',\n})\nexport class AXMChatConversationInfoPanelComponent extends AXClosableComponent implements OnInit, OnDestroy {\n //#region ----- Services -----\n\n private readonly toastService = inject(AXToastService);\n readonly translation = inject(AXTranslationService);\n private readonly platform = inject(AXPlatform);\n private readonly cdr = inject(ChangeDetectorRef);\n /**\n * Optional fallback only. Popup content is created on the root view container;\n * the chat instance is assigned via {@link AXPopupService} `data`.\n */\n private readonly injectedConversationService = inject(AXConversationService, { optional: true });\n\n //#endregion\n\n //#region ----- Popup State -----\n\n readonly onClosed = output<AXComponentCloseEvent>();\n\n /** Assigned by {@link AXPopupService} via `data`. */\n conversation!: AXConversation;\n /** Assigned by {@link AXPopupService} via `data`. */\n conversationService!: AXConversationService;\n\n readonly activeTab = signal<'profile' | 'manage'>('profile');\n readonly showMemberSearch = signal(false);\n readonly panelView = signal<'main' | 'media'>('main');\n readonly selectedMediaCategory = signal<AXConversationMediaCategory | null>(null);\n readonly mediaViewLoader = () =>\n import('./chat-conversation-info-media-view.component').then((m) => m.AXMChatConversationInfoMediaViewComponent);\n readonly conversationMessages = signal<AXConversationMessage[]>([]);\n readonly loadingMessages = signal(false);\n readonly loadingMoreMedia = signal(false);\n readonly mediaHasMore = signal(false);\n private mediaNextPage = 1;\n private mediaNextCursor: string | undefined;\n readonly memberSearchQuery = signal('');\n\n archived = false;\n\n private initialNotifications = false;\n private initialArchived = false;\n private readonly notificationsEnabled = signal(true);\n\n editTitle = '';\n editAvatar = '';\n\n private groupTitleSaveTimer: ReturnType<typeof setTimeout> | undefined;\n private groupDetailsSaveInFlight = false;\n\n readonly backgroundPresets = AX_CONVERSATION_MESSAGE_LIST_BACKGROUND_PRESETS.map((preset) => ({\n ...preset,\n label: this.translateBackgroundPresetLabel(preset.id),\n }));\n\n //#endregion\n\n //#region ----- Derived State -----\n\n readonly heroSubtitle = computed(() => {\n const conversation = this.liveConversation();\n if (!conversation) return '';\n this.conversationService?.typingRevision();\n this.conversationService?.presenceTimeTick();\n return AXConversationMessageUtilsService.getConversationSubtitle(conversation, {\n typingUserIds: this.conversationService?.getActiveTypingUserIds(conversation.id) ?? [],\n peerPresence: this.conversationService?.getPeerPresence(conversation),\n currentUserId: this.conversationService?.currentUser()?.id,\n });\n });\n\n readonly liveConversation = computed(() => {\n const conversation = this.conversation;\n if (!conversation?.id) return conversation;\n const fromStore = this.conversationService?.conversations().find((c) => c.id === conversation.id);\n return fromStore ?? conversation;\n });\n\n readonly isConversationMuted = computed(() => this.notificationsEnabled() === false);\n\n readonly profileFields = computed(() => {\n const conversation = this.liveConversation();\n if (!conversation) return [];\n return getConversationProfileFields(conversation, this.conversationService?.currentUser()?.id);\n });\n\n readonly mediaCategories = computed(() => {\n if (!this.conversation) return [];\n return getConversationMediaCategories(this.conversationMessages());\n });\n\n readonly quickActions = computed((): AXMInfoPanelQuickAction[] => {\n if (!this.conversation) return [];\n const muted = this.isConversationMuted();\n const actions: AXMInfoPanelQuickAction[] = [\n {\n id: 'mute',\n labelKey: muted ? '@acorex:chat.actions.unmute' : '@acorex:chat.actions.mute',\n icon: muted ? 'fa-light fa-bell-slash' : 'fa-light fa-bell',\n },\n ];\n\n if (!this.isPrivateConversation()) {\n actions.push({\n id: 'leave',\n labelKey: '@acorex:chat.actions.leave-and-delete',\n icon: 'fa-light fa-door-open',\n danger: true,\n });\n }\n\n return actions;\n });\n\n readonly filteredMembers = computed(() => {\n if (!this.conversation) return [];\n const query = this.memberSearchQuery().toLowerCase().trim();\n const members = this.conversation?.participants ?? [];\n if (!query) return members;\n return members.filter(\n (p) =>\n p.name.toLowerCase().includes(query) ||\n (p.description ?? '').toLowerCase().includes(query) ||\n (p.role ?? '').toLowerCase().includes(query),\n );\n });\n\n //#endregion\n\n //#region ----- Lifecycle -----\n\n ngOnInit(): void {\n // Popup assigns `data` after createComponent, so ngOnInit runs before those fields exist.\n queueMicrotask(() => this.initializeFromPopupData());\n }\n\n private initializeFromPopupData(): void {\n const resolvedService = this.conversationService ?? this.injectedConversationService;\n if (!resolvedService) {\n console.warn('AXMChatConversationInfoPanelComponent opened without conversationService.');\n this.close();\n return;\n }\n this.conversationService = resolvedService;\n\n if (!this.conversation) {\n const activeConversation = this.conversationService.activeConversation();\n if (activeConversation) {\n this.conversation = activeConversation;\n } else {\n console.warn('AXMChatConversationInfoPanelComponent opened without conversation context.');\n this.close();\n return;\n }\n }\n\n this.initialNotifications = this.conversationService.getRoomPreferences(this.conversation.id).notifications;\n this.notificationsEnabled.set(this.initialNotifications);\n this.archived = this.conversation.archived ?? false;\n this.initialArchived = this.archived;\n this.editTitle = this.conversation.title || '';\n this.editAvatar = this.conversation.avatar || '';\n\n this.cdr.markForCheck();\n void this.loadConversationMessages();\n }\n\n ngOnDestroy(): void {\n if (this.groupTitleSaveTimer) {\n clearTimeout(this.groupTitleSaveTimer);\n this.groupTitleSaveTimer = undefined;\n void this.persistGroupDetails();\n }\n\n const currentNotifications = this.notificationsEnabled();\n const hasChanges = currentNotifications !== this.initialNotifications || this.archived !== this.initialArchived;\n\n if (hasChanges) {\n this.toastService.success(this.translation.translateSync('@acorex:chat.info-panel.toasts.settings-saved'));\n }\n }\n\n //#endregion\n\n //#region ----- Data Loading -----\n\n private async loadConversationMessages(): Promise<void> {\n this.loadingMessages.set(true);\n this.mediaNextPage = 1;\n this.mediaNextCursor = undefined;\n this.mediaHasMore.set(false);\n\n try {\n const page = await fetchConversationMediaPage(\n this.conversationService.conversationApi,\n this.conversation.id,\n 0,\n );\n\n this.mediaHasMore.set(page.hasMore);\n this.mediaNextCursor = page.nextCursor;\n\n const supplemental =\n this.conversationService.activeConversationId() === this.conversation.id\n ? filterSupplementalInfoPanelMessages(this.conversationService.activeMessages())\n : [];\n\n this.conversationMessages.set(mergeInfoPanelMessages(page.items, supplemental));\n } catch (error) {\n console.error('Failed to load conversation media messages:', error);\n } finally {\n this.loadingMessages.set(false);\n }\n }\n\n async loadMoreMedia(): Promise<void> {\n if (!this.mediaHasMore() || this.loadingMoreMedia() || this.loadingMessages()) {\n return;\n }\n\n this.loadingMoreMedia.set(true);\n try {\n const page = await fetchConversationMediaPage(\n this.conversationService.conversationApi,\n this.conversation.id,\n this.mediaNextPage,\n undefined,\n this.mediaNextCursor,\n );\n\n this.mediaHasMore.set(page.hasMore);\n this.mediaNextCursor = page.nextCursor;\n this.mediaNextPage += 1;\n\n this.conversationMessages.set(mergeInfoPanelMessages(page.items, this.conversationMessages()));\n } catch (error) {\n console.error('Failed to load more conversation media:', error);\n } finally {\n this.loadingMoreMedia.set(false);\n }\n }\n\n //#endregion\n\n //#region ----- UI Helpers -----\n\n isPrivateConversation(): boolean {\n return this.conversation.type === 'private';\n }\n\n isGroupConversation(): boolean {\n return this.conversation.type === 'group' || this.conversation.type === 'channel';\n }\n\n membersSectionTitle(): string {\n return this.translation.translateSync('@acorex:chat.info-panel.tabs.members-count-upper', {\n params: { count: this.conversation.participants.length },\n });\n }\n\n getMemberRoleLabel(participant: AXConversationParticipant): string | null {\n switch (participant.role) {\n case 'admin':\n return '@acorex:chat.info-panel.member-role.admin';\n case 'owner':\n return '@acorex:chat.info-panel.member-role.admin';\n case 'moderator':\n return '@acorex:chat.info-panel.member-role.moderator';\n default:\n return null;\n }\n }\n\n onMemberSearchChange(value: string | null | undefined): void {\n this.memberSearchQuery.set(value ?? '');\n }\n\n setActiveTab(tab: 'profile' | 'manage'): void {\n this.activeTab.set(tab);\n }\n\n toggleMemberSearch(): void {\n this.showMemberSearch.update((value) => !value);\n if (!this.showMemberSearch()) {\n this.memberSearchQuery.set('');\n }\n }\n\n openMediaCategory(category: AXConversationMediaCategory): void {\n this.selectedMediaCategory.set(category);\n this.panelView.set('media');\n }\n\n closeMediaView(): void {\n this.panelView.set('main');\n this.selectedMediaCategory.set(null);\n }\n\n getMediaViewInputs(category: AXConversationMediaCategory): Record<string, unknown> {\n return {\n category,\n messages: this.conversationMessages(),\n conversation: this.conversation,\n conversationService: this.conversationService,\n hasMoreMedia: this.mediaHasMore(),\n loadingMoreMedia: this.loadingMoreMedia(),\n onLoadMoreMedia: () => this.loadMoreMedia(),\n onBack: () => this.closeMediaView(),\n };\n }\n\n getMediaRowLabel(category: AXConversationMediaCategory): string {\n return this.translation.translateSync(category.countLabelKey, {\n params: { count: category.count },\n });\n }\n\n getMemberSubtitle(participant: AXConversationParticipant): string {\n const presence = this.conversationService?.getUserPresence(participant.id);\n this.conversationService?.presenceTimeTick();\n if (presence?.status === 'online') {\n return this.translation.translateSync('@acorex:chat.status.online');\n }\n if (participant.description?.trim()) return participant.description.trim();\n if (participant.role && participant.role !== 'member') return participant.role;\n return '';\n }\n\n isMemberOnline(participant: AXConversationParticipant): boolean {\n this.conversationService?.presenceTimeTick();\n return this.conversationService?.getUserPresence(participant.id)?.status === 'online';\n }\n\n //#endregion\n\n //#region ----- Actions -----\n\n onQuickAction(actionId: string): void {\n switch (actionId) {\n case 'mute':\n void this.toggleConversationMute();\n break;\n case 'leave':\n void this.onLeave();\n break;\n }\n }\n\n async toggleConversationMute(): Promise<void> {\n await this.onNotificationsChange(!this.notificationsEnabled());\n }\n\n async onNotificationsChange(value: boolean): Promise<void> {\n try {\n await this.conversationService.updateConversationSettings(this.conversation.id, {\n notifications: value,\n });\n this.notificationsEnabled.set(value);\n } catch (error) {\n console.error('Failed to update notifications:', error);\n }\n }\n\n async onArchivedChange(value: boolean): Promise<void> {\n const previous = this.archived;\n this.archived = value;\n try {\n await this.conversationService.updateConversation(this.conversation.id, { archived: value });\n this.conversation.archived = value;\n this.initialArchived = value;\n } catch {\n this.archived = previous;\n }\n }\n\n close(data?: unknown): void {\n const event = new AXComponentCloseEvent();\n event.component = this;\n event.data = data;\n this.onClosed.emit(event);\n }\n\n closeAll(): void {\n this.close();\n }\n\n async onLeave(): Promise<void> {\n const isGroup = this.isGroupConversation();\n await this.conversationService.deleteConversation(this.conversation.id);\n\n if (this.conversationService.activeConversation()?.id === this.conversation.id) {\n this.conversationService.closeActiveConversation();\n }\n\n this.toastService.success(\n isGroup\n ? this.translation.translateSync('@acorex:chat.info-panel.toasts.left-conversation')\n : this.translation.translateSync('@acorex:chat.info-panel.toasts.deleted-conversation'),\n );\n this.close();\n }\n\n onGroupTitleChange(value: string): void {\n this.editTitle = value;\n clearTimeout(this.groupTitleSaveTimer);\n this.groupTitleSaveTimer = setTimeout(() => void this.persistGroupDetails(), 400);\n }\n\n onGroupAvatarChange(value: string): void {\n this.editAvatar = value;\n void this.persistGroupDetails();\n }\n\n private async persistGroupDetails(): Promise<void> {\n if (this.isPrivateConversation() || this.groupDetailsSaveInFlight) {\n return;\n }\n\n const title = this.editTitle.trim();\n if (!title) {\n return;\n }\n\n const nextAvatar = this.editAvatar.trim() || undefined;\n const currentTitle = this.conversation.title || '';\n const currentAvatar = this.conversation.avatar || undefined;\n\n if (title === currentTitle && nextAvatar === currentAvatar) {\n return;\n }\n\n this.groupDetailsSaveInFlight = true;\n try {\n await this.conversationService.updateConversation(this.conversation.id, {\n title,\n avatar: nextAvatar,\n });\n this.conversation.title = title;\n this.conversation.avatar = nextAvatar;\n } catch (error) {\n console.error('Failed to update group details:', error);\n this.toastService.danger(this.translation.translateSync('@acorex:chat.info-panel.toasts.failed-group-update'));\n } finally {\n this.groupDetailsSaveInFlight = false;\n }\n }\n\n isBackgroundSelected(preset: { id: string; value: AXConversationMessageListThemeBackground }): boolean {\n this.platform.themeMode();\n const bg = this.conversation?.metadata?.['messageListBackground'] as\n | AXConversationMessageListBackground\n | undefined;\n if (\n bg === undefined ||\n bg === '' ||\n (isMessageListThemeBackground(bg) && !bg.light.trim() && !bg.dark.trim())\n ) {\n return preset.id === AX_CONVERSATION_DEFAULT_MESSAGE_LIST_BACKGROUND_PRESET_ID;\n }\n return isSameMessageListBackground(bg, preset.value, this.platform.isDark());\n }\n\n presetBackgroundPreview(preset: AXConversationMessageListThemeBackground): string {\n this.platform.themeMode();\n const raw = resolveMessageListBackgroundRaw(preset, this.platform.isDark()) ?? '';\n return normalizeMessageListBackgroundValue(raw);\n }\n\n async applyMessageListBackground(value: AXConversationMessageListBackground): Promise<void> {\n const isReset =\n value === '' || (isMessageListThemeBackground(value) && !value.light.trim() && !value.dark.trim());\n try {\n const metadata = { ...(this.conversation.metadata ?? {}) };\n if (isReset) {\n delete metadata.messageListBackground;\n } else {\n metadata.messageListBackground = value;\n }\n await this.conversationService.updateConversationMetadata(this.conversation.id, metadata);\n this.conversation.metadata = metadata;\n this.toastService.success(\n isReset\n ? this.translation.translateSync('@acorex:chat.info-panel.toasts.background-reset')\n : this.translation.translateSync('@acorex:chat.info-panel.toasts.background-updated'),\n );\n } catch (error) {\n console.error('Failed to update message list background:', error);\n this.toastService.danger(\n this.translation.translateSync('@acorex:chat.info-panel.toasts.failed-background-update'),\n );\n }\n }\n\n getBackgroundAriaLabel(label: string): string {\n return this.translation.translateSync('@acorex:chat.info-panel.background.set-label', {\n params: { label },\n });\n }\n\n private translateBackgroundPresetLabel(id: string): string {\n const labelKeys: Record<string, string> = {\n 'solid-default': '@acorex:chat.info-panel.background.presets.default',\n 'solid-graphite': '@acorex:chat.info-panel.background.presets.graphite',\n 'solid-olive': '@acorex:chat.info-panel.background.presets.olive',\n 'solid-sky': '@acorex:chat.info-panel.background.presets.sky',\n 'grad-aurora': '@acorex:chat.info-panel.background.presets.aurora',\n 'grad-sunset': '@acorex:chat.info-panel.background.presets.sunset',\n };\n return this.translation.translateSync(labelKeys[id] ?? id);\n }\n\n //#endregion\n}\n\n//#endregion\n","@if (conversation) {\n <div class=\"tg-info-panel\">\n @if (panelView() === 'media' && selectedMediaCategory(); as category) {\n <ax-conversation-registry-component-outlet\n [componentLoader]=\"mediaViewLoader\"\n [inputs]=\"getMediaViewInputs(category)\"\n />\n } @else {\n <div class=\"tg-info-panel__scroll\">\n <section class=\"tg-hero\">\n <ax-conversation-avatar kind=\"auto\" [conversation]=\"conversation\" [size]=\"96\" />\n <h2 class=\"tg-hero__title\">{{ conversation.title }}</h2>\n <p class=\"tg-hero__subtitle\">{{ heroSubtitle() }}</p>\n </section>\n\n <section class=\"tg-quick-actions\">\n @for (action of quickActions(); track action.id) {\n <button\n type=\"button\"\n class=\"tg-quick-action\"\n [class.tg-quick-action--danger]=\"action.danger\"\n [class.tg-quick-action--active]=\"action.id === 'mute' && isConversationMuted()\"\n (click)=\"onQuickAction(action.id)\"\n >\n <span class=\"tg-quick-action__icon\"><i [class]=\"action.icon\"></i></span>\n <span class=\"tg-quick-action__label\">{{ action.labelKey | translate | async }}</span>\n </button>\n }\n </section>\n\n <nav class=\"tg-tabs\" role=\"tablist\">\n <button\n type=\"button\"\n class=\"tg-tab\"\n role=\"tab\"\n [class.tg-tab--active]=\"activeTab() === 'profile'\"\n [attr.aria-selected]=\"activeTab() === 'profile'\"\n (click)=\"setActiveTab('profile')\"\n >\n {{ '@acorex:chat.info-panel.tabs.profile' | translate | async }}\n </button>\n <button\n type=\"button\"\n class=\"tg-tab\"\n role=\"tab\"\n [class.tg-tab--active]=\"activeTab() === 'manage'\"\n [attr.aria-selected]=\"activeTab() === 'manage'\"\n (click)=\"setActiveTab('manage')\"\n >\n {{ '@acorex:chat.info-panel.tabs.manage' | translate | async }}\n </button>\n </nav>\n\n @if (activeTab() === 'profile') {\n @if (profileFields().length > 0) {\n <section class=\"tg-section tg-details\">\n @for (field of profileFields(); track field.id) {\n <div class=\"tg-detail-row\">\n <span class=\"tg-detail-row__icon\"><i [class]=\"field.icon\"></i></span>\n <div class=\"tg-detail-row__content\">\n <span class=\"tg-detail-row__value\">{{ field.value }}</span>\n <span class=\"tg-detail-row__label\">{{ field.labelKey | translate | async }}</span>\n </div>\n </div>\n }\n </section>\n }\n\n @if (loadingMessages()) {\n <div class=\"tg-loading\">{{ '@acorex:chat.info-panel.media.loading' | translate | async }}</div>\n } @else if (mediaCategories().length > 0) {\n <section class=\"tg-section tg-media\">\n @for (category of mediaCategories(); track category.id) {\n <button type=\"button\" class=\"tg-media-row\" (click)=\"openMediaCategory(category)\">\n <span class=\"tg-media-row__icon\"><i [class]=\"category.icon\"></i></span>\n <span class=\"tg-media-row__label\">{{ getMediaRowLabel(category) }}</span>\n <i class=\"fa-light fa-chevron-right tg-media-row__chevron\"></i>\n </button>\n }\n </section>\n }\n\n @if (isGroupConversation()) {\n <section class=\"tg-section tg-members\">\n <div class=\"tg-section-header tg-section-header--row\">\n <span class=\"tg-section-header__title\">{{ membersSectionTitle() }}</span>\n <div class=\"tg-section-header__actions\">\n <button\n type=\"button\"\n class=\"tg-icon-btn\"\n (click)=\"toggleMemberSearch()\"\n [attr.aria-label]=\"'@acorex:chat.info-panel.placeholders.search-members' | translate | async\"\n >\n <i class=\"fa-light fa-magnifying-glass\"></i>\n </button>\n </div>\n </div>\n @if (showMemberSearch()) {\n <div class=\"tg-members-search-wrap\">\n <ax-search-box\n class=\"tg-members-search\"\n [value]=\"memberSearchQuery()\"\n (valueChange)=\"onMemberSearchChange($event)\"\n [placeholder]=\"'@acorex:chat.info-panel.placeholders.search-members' | translate | async\"\n ></ax-search-box>\n </div>\n }\n @for (participant of filteredMembers(); track participant.id) {\n <div class=\"tg-member-row\">\n <ax-conversation-avatar\n kind=\"user\"\n [userId]=\"participant.id\"\n [conversation]=\"conversation\"\n [size]=\"42\"\n />\n <div class=\"tg-member-row__content\">\n <span class=\"tg-member-row__name\">{{ participant.name }}</span>\n <span\n class=\"tg-member-row__meta\"\n [class.tg-member-row__meta--online]=\"isMemberOnline(participant)\"\n >\n {{ getMemberSubtitle(participant) }}\n </span>\n </div>\n @if (getMemberRoleLabel(participant); as roleLabel) {\n <span class=\"tg-member-row__badge\">{{ roleLabel | translate | async }}</span>\n }\n </div>\n }\n </section>\n }\n }\n\n @if (activeTab() === 'manage') {\n <section class=\"tg-section tg-manage\">\n @if (!isPrivateConversation()) {\n <div class=\"tg-manage-block\">\n <ax-label class=\"tg-manage-label\">{{\n '@acorex:chat.info-panel.group-details.title' | translate | async\n }}</ax-label>\n <ax-text-box\n [value]=\"editTitle\"\n (valueChange)=\"onGroupTitleChange($event)\"\n [placeholder]=\"'@acorex:chat.info-panel.placeholders.enter-group-title' | translate | async\"\n ></ax-text-box>\n <div class=\"tg-manage-avatar\">\n <ax-conversation-avatar-picker\n [(avatarUrl)]=\"editAvatar\"\n (avatarUrlChange)=\"onGroupAvatarChange($event)\"\n ></ax-conversation-avatar-picker>\n </div>\n </div>\n }\n\n <div class=\"tg-setting-row\">\n <div class=\"tg-setting-row__info\">\n <span class=\"tg-setting-row__title\">{{\n '@acorex:chat.info-panel.settings.archived' | translate | async\n }}</span>\n <span class=\"tg-setting-row__desc\">{{\n '@acorex:chat.info-panel.settings.archived-description' | translate | async\n }}</span>\n </div>\n <ax-switch [(ngModel)]=\"archived\" (ngModelChange)=\"onArchivedChange($event)\"></ax-switch>\n </div>\n\n <div class=\"tg-manage-block tg-background-block\">\n <ax-label class=\"tg-manage-label\">{{\n '@acorex:chat.info-panel.background.title' | translate | async\n }}</ax-label>\n <p class=\"tg-background-desc\">\n {{ '@acorex:chat.info-panel.background.description' | translate | async }}\n </p>\n <div class=\"tg-background-grid\">\n @for (preset of backgroundPresets; track preset.id) {\n <button\n type=\"button\"\n class=\"tg-background-swatch\"\n [class.tg-background-swatch--active]=\"isBackgroundSelected(preset)\"\n [style.background]=\"presetBackgroundPreview(preset.value)\"\n (click)=\"applyMessageListBackground(preset.value)\"\n [attr.aria-label]=\"getBackgroundAriaLabel(preset.label)\"\n >\n <span class=\"tg-background-swatch__label\">{{ preset.label }}</span>\n </button>\n }\n </div>\n <ax-button\n [text]=\"'@acorex:chat.info-panel.actions.reset-to-default' | translate | async\"\n [look]=\"'ghost'\"\n (onClick)=\"applyMessageListBackground('')\"\n ></ax-button>\n </div>\n </section>\n }\n </div>\n }\n </div>\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAgEA;AAEA;AAwBM,MAAO,qCAAsC,SAAQ,mBAAmB,CAAA;AAtB9E,IAAA,WAAA,GAAA;;;AAyBmB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,oBAAoB,CAAC;AAClC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAChD;;;AAGG;QACc,IAAA,CAAA,2BAA2B,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;;QAMvF,IAAA,CAAA,QAAQ,GAAG,MAAM,EAAyB;QAO1C,IAAA,CAAA,SAAS,GAAG,MAAM,CAAuB,SAAS;sFAAC;QACnD,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK;6FAAC;QAChC,IAAA,CAAA,SAAS,GAAG,MAAM,CAAmB,MAAM;sFAAC;QAC5C,IAAA,CAAA,qBAAqB,GAAG,MAAM,CAAqC,IAAI;kGAAC;QACxE,IAAA,CAAA,eAAe,GAAG,MACzB,OAAO,uGAA+C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,yCAAyC,CAAC;QACzG,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAA0B,EAAE;iGAAC;QAC1D,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK;4FAAC;QAC/B,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,KAAK;6FAAC;QAChC,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,KAAK;yFAAC;QAC7B,IAAA,CAAA,aAAa,GAAG,CAAC;QAEhB,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,EAAE;8FAAC;QAEvC,IAAA,CAAA,QAAQ,GAAG,KAAK;QAER,IAAA,CAAA,oBAAoB,GAAG,KAAK;QAC5B,IAAA,CAAA,eAAe,GAAG,KAAK;QACd,IAAA,CAAA,oBAAoB,GAAG,MAAM,CAAC,IAAI;iGAAC;QAEpD,IAAA,CAAA,SAAS,GAAG,EAAE;QACd,IAAA,CAAA,UAAU,GAAG,EAAE;QAGP,IAAA,CAAA,wBAAwB,GAAG,KAAK;QAE/B,IAAA,CAAA,iBAAiB,GAAG,+CAA+C,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM;AAC5F,YAAA,GAAG,MAAM;YACT,KAAK,EAAE,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC,EAAE,CAAC;AACtD,SAAA,CAAC,CAAC;;;AAMM,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,EAAE,cAAc,EAAE;AAC1C,YAAA,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AAC5C,YAAA,OAAO,iCAAiC,CAAC,uBAAuB,CAAC,YAAY,EAAE;AAC7E,gBAAA,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;gBACtF,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,YAAY,CAAC;gBACrE,aAAa,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,EAAE;AAC3D,aAAA,CAAC;QACJ,CAAC;yFAAC;AAEO,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAK;AACxC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;YACtC,IAAI,CAAC,YAAY,EAAE,EAAE;AAAE,gBAAA,OAAO,YAAY;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;YACjG,OAAO,SAAS,IAAI,YAAY;QAClC,CAAC;6FAAC;QAEO,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,KAAK,KAAK;gGAAC;AAE3E,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE;AAC5C,YAAA,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,EAAE;AAC5B,YAAA,OAAO,4BAA4B,CAAC,YAAY,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAChG,CAAC;0FAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,EAAE;AACjC,YAAA,OAAO,8BAA8B,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpE,CAAC;4FAAC;AAEO,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAgC;YAC/D,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,EAAE;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE;AACxC,YAAA,MAAM,OAAO,GAA8B;AACzC,gBAAA;AACE,oBAAA,EAAE,EAAE,MAAM;oBACV,QAAQ,EAAE,KAAK,GAAG,6BAA6B,GAAG,2BAA2B;oBAC7E,IAAI,EAAE,KAAK,GAAG,wBAAwB,GAAG,kBAAkB;AAC5D,iBAAA;aACF;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;gBACjC,OAAO,CAAC,IAAI,CAAC;AACX,oBAAA,EAAE,EAAE,OAAO;AACX,oBAAA,QAAQ,EAAE,uCAAuC;AACjD,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,MAAM,EAAE,IAAI;AACb,iBAAA,CAAC;YACJ;AAEA,YAAA,OAAO,OAAO;QAChB,CAAC;yFAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;YACvC,IAAI,CAAC,IAAI,CAAC,YAAY;AAAE,gBAAA,OAAO,EAAE;AACjC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,IAAI,EAAE;AACrD,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,OAAO;AAC1B,YAAA,OAAO,OAAO,CAAC,MAAM,CACnB,CAAC,CAAC,KACA,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpC,gBAAA,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;AACnD,gBAAA,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC/C;QACH,CAAC;4FAAC;AAmYH,IAAA;;;IA7XC,QAAQ,GAAA;;QAEN,cAAc,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACtD;IAEQ,uBAAuB,GAAA;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,2BAA2B;QACpF,IAAI,CAAC,eAAe,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC;YACzF,IAAI,CAAC,KAAK,EAAE;YACZ;QACF;AACA,QAAA,IAAI,CAAC,mBAAmB,GAAG,eAAe;AAE1C,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE;YACxE,IAAI,kBAAkB,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,kBAAkB;YACxC;iBAAO;AACL,gBAAA,OAAO,CAAC,IAAI,CAAC,4EAA4E,CAAC;gBAC1F,IAAI,CAAC,KAAK,EAAE;gBACZ;YACF;QACF;AAEA,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,aAAa;QAC3G,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,KAAK;AACnD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ;QACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,EAAE;AAEhD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACvB,QAAA,KAAK,IAAI,CAAC,wBAAwB,EAAE;IACtC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtC,YAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;AACpC,YAAA,KAAK,IAAI,CAAC,mBAAmB,EAAE;QACjC;AAEA,QAAA,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,EAAE;AACxD,QAAA,MAAM,UAAU,GAAG,oBAAoB,KAAK,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe;QAE/G,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,+CAA+C,CAAC,CAAC;QAC5G;IACF;;;AAMQ,IAAA,MAAM,wBAAwB,GAAA;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;AAE5B,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,GAAG,MAAM,0BAA0B,CAC3C,IAAI,CAAC,mBAAmB,CAAC,eAAe,EACxC,IAAI,CAAC,YAAY,CAAC,EAAE,EACpB,CAAC,CACF;YAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU;AAEtC,YAAA,MAAM,YAAY,GAChB,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC;kBAClE,mCAAmC,CAAC,IAAI,CAAC,mBAAmB,CAAC,cAAc,EAAE;kBAC7E,EAAE;AAER,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACjF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,CAAC;QACrE;gBAAU;AACR,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QACjC;IACF;AAEA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;YAC7E;QACF;AAEA,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,0BAA0B,CAC3C,IAAI,CAAC,mBAAmB,CAAC,eAAe,EACxC,IAAI,CAAC,YAAY,CAAC,EAAE,EACpB,IAAI,CAAC,aAAa,EAClB,SAAS,EACT,IAAI,CAAC,eAAe,CACrB;YAED,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU;AACtC,YAAA,IAAI,CAAC,aAAa,IAAI,CAAC;AAEvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QAChG;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC;QACjE;gBAAU;AACR,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;QAClC;IACF;;;IAMA,qBAAqB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS;IAC7C;IAEA,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,SAAS;IACnF;IAEA,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,kDAAkD,EAAE;YACxF,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE;AACzD,SAAA,CAAC;IACJ;AAEA,IAAA,kBAAkB,CAAC,WAAsC,EAAA;AACvD,QAAA,QAAQ,WAAW,CAAC,IAAI;AACtB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,2CAA2C;AACpD,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,2CAA2C;AACpD,YAAA,KAAK,WAAW;AACd,gBAAA,OAAO,+CAA+C;AACxD,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;AAEA,IAAA,oBAAoB,CAAC,KAAgC,EAAA;QACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;IACzC;AAEA,IAAA,YAAY,CAAC,GAAyB,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;IACzB;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC;AAC/C,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE;AAC5B,YAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC;IACF;AAEA,IAAA,iBAAiB,CAAC,QAAqC,EAAA;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC;IAC7B;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC;IACtC;AAEA,IAAA,kBAAkB,CAAC,QAAqC,EAAA;QACtD,OAAO;YACL,QAAQ;AACR,YAAA,QAAQ,EAAE,IAAI,CAAC,oBAAoB,EAAE;YACrC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;AAC7C,YAAA,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE;AACjC,YAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;AACzC,YAAA,eAAe,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;AAC3C,YAAA,MAAM,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE;SACpC;IACH;AAEA,IAAA,gBAAgB,CAAC,QAAqC,EAAA;QACpD,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC5D,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;AAClC,SAAA,CAAC;IACJ;AAEA,IAAA,iBAAiB,CAAC,WAAsC,EAAA;AACtD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;AAC1E,QAAA,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AAC5C,QAAA,IAAI,QAAQ,EAAE,MAAM,KAAK,QAAQ,EAAE;YACjC,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,4BAA4B,CAAC;QACrE;AACA,QAAA,IAAI,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE;AAAE,YAAA,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,EAAE;QAC1E,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,WAAW,CAAC,IAAI;AAC9E,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,cAAc,CAAC,WAAsC,EAAA;AACnD,QAAA,IAAI,CAAC,mBAAmB,EAAE,gBAAgB,EAAE;AAC5C,QAAA,OAAO,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,KAAK,QAAQ;IACvF;;;AAMA,IAAA,aAAa,CAAC,QAAgB,EAAA;QAC5B,QAAQ,QAAQ;AACd,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,IAAI,CAAC,sBAAsB,EAAE;gBAClC;AACF,YAAA,KAAK,OAAO;AACV,gBAAA,KAAK,IAAI,CAAC,OAAO,EAAE;gBACnB;;IAEN;AAEA,IAAA,MAAM,sBAAsB,GAAA;QAC1B,MAAM,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAChE;IAEA,MAAM,qBAAqB,CAAC,KAAc,EAAA;AACxC,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;AAC9E,gBAAA,aAAa,EAAE,KAAK;AACrB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC;QACtC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;QACzD;IACF;IAEA,MAAM,gBAAgB,CAAC,KAAc,EAAA;AACnC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC5F,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,KAAK;AAClC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC9B;AAAE,QAAA,MAAM;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QAC1B;IACF;AAEA,IAAA,KAAK,CAAC,IAAc,EAAA;AAClB,QAAA,MAAM,KAAK,GAAG,IAAI,qBAAqB,EAAE;AACzC,QAAA,KAAK,CAAC,SAAS,GAAG,IAAI;AACtB,QAAA,KAAK,CAAC,IAAI,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,EAAE;IACd;AAEA,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC1C,QAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;AAEvE,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;AAC9E,YAAA,IAAI,CAAC,mBAAmB,CAAC,uBAAuB,EAAE;QACpD;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB;cACI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,kDAAkD;cACjF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,qDAAqD,CAAC,CAC1F;QACD,IAAI,CAAC,KAAK,EAAE;IACd;AAEA,IAAA,kBAAkB,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,QAAA,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,mBAAmB,EAAE,EAAE,GAAG,CAAC;IACnF;AAEA,IAAA,mBAAmB,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,QAAA,KAAK,IAAI,CAAC,mBAAmB,EAAE;IACjC;AAEQ,IAAA,MAAM,mBAAmB,GAAA;QAC/B,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,IAAI,CAAC,wBAAwB,EAAE;YACjE;QACF;QAEA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;QACnC,IAAI,CAAC,KAAK,EAAE;YACV;QACF;QAEA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS;QACtD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,SAAS;QAE3D,IAAI,KAAK,KAAK,YAAY,IAAI,UAAU,KAAK,aAAa,EAAE;YAC1D;QACF;AAEA,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,QAAA,IAAI;YACF,MAAM,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE;gBACtE,KAAK;AACL,gBAAA,MAAM,EAAE,UAAU;AACnB,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK;AAC/B,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,UAAU;QACvC;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC;AACvD,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,oDAAoD,CAAC,CAAC;QAChH;gBAAU;AACR,YAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;QACvC;IACF;AAEA,IAAA,oBAAoB,CAAC,MAAuE,EAAA;AAC1F,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,uBAAuB,CAEnD;QACb,IACE,EAAE,KAAK,SAAS;AAChB,YAAA,EAAE,KAAK,EAAE;aACR,4BAA4B,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EACzE;AACA,YAAA,OAAO,MAAM,CAAC,EAAE,KAAK,yDAAyD;QAChF;AACA,QAAA,OAAO,2BAA2B,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC9E;AAEA,IAAA,uBAAuB,CAAC,MAAgD,EAAA;AACtE,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;AACzB,QAAA,MAAM,GAAG,GAAG,+BAA+B,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE;AACjF,QAAA,OAAO,mCAAmC,CAAC,GAAG,CAAC;IACjD;IAEA,MAAM,0BAA0B,CAAC,KAA0C,EAAA;AACzE,QAAA,MAAM,OAAO,GACX,KAAK,KAAK,EAAE,KAAK,4BAA4B,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACpG,QAAA,IAAI;AACF,YAAA,MAAM,QAAQ,GAAG,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE;YAC1D,IAAI,OAAO,EAAE;gBACX,OAAO,QAAQ,CAAC,qBAAqB;YACvC;iBAAO;AACL,gBAAA,QAAQ,CAAC,qBAAqB,GAAG,KAAK;YACxC;AACA,YAAA,MAAM,IAAI,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC;AACzF,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,QAAQ;AACrC,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB;kBACI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,iDAAiD;kBAChF,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,mDAAmD,CAAC,CACxF;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC;AACjE,YAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CACtB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,yDAAyD,CAAC,CAC1F;QACH;IACF;AAEA,IAAA,sBAAsB,CAAC,KAAa,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,8CAA8C,EAAE;YACpF,MAAM,EAAE,EAAE,KAAK,EAAE;AAClB,SAAA,CAAC;IACJ;AAEQ,IAAA,8BAA8B,CAAC,EAAU,EAAA;AAC/C,QAAA,MAAM,SAAS,GAA2B;AACxC,YAAA,eAAe,EAAE,oDAAoD;AACrE,YAAA,gBAAgB,EAAE,qDAAqD;AACvE,YAAA,aAAa,EAAE,kDAAkD;AACjE,YAAA,WAAW,EAAE,gDAAgD;AAC7D,YAAA,aAAa,EAAE,mDAAmD;AAClE,YAAA,aAAa,EAAE,mDAAmD;SACnE;AACD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5D;8GA7fW,qCAAqC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qCAAqC,kHAJrC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,qCAAqC,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtFnG,23RAuMA,EAAA,MAAA,EAAA,CAAA,gsZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED7HI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,iBAAiB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,iBAAiB,+BACjB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACpB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,OAAA,EAAA,MAAA,EAAA,IAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,mCAAmC,oKACnC,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC7B,8CAA8C,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAC9C,mBAAmB,0BAXnB,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAiBA,qCAAqC,EAAA,UAAA,EAAA,CAAA;kBAtBjD,SAAS;+BACE,kCAAkC,EAAA,eAAA,EAC3B,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,OAAA,EAC5B;wBACP,SAAS;wBACT,WAAW;wBACX,iBAAiB;wBACjB,iBAAiB;wBACjB,gBAAgB;wBAChB,oBAAoB;wBACpB,cAAc;wBACd,kBAAkB;wBAClB,mCAAmC;wBACnC,6BAA6B;wBAC7B,8CAA8C;wBAC9C,mBAAmB;qBACpB,EAAA,SAAA,EACU,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAA,qCAAuC,EAAE,CAAC,EAAA,QAAA,EAAA,23RAAA,EAAA,MAAA,EAAA,CAAA,gsZAAA,CAAA,EAAA;;;"}
@@ -1,52 +0,0 @@
1
- const config = {
2
- i18n: 'conversation',
3
- module: 'Conversation',
4
- route: 'chat',
5
- };
6
- const RootConfig = {
7
- config,
8
- module: {
9
- route: 'conversation',
10
- name: config.module,
11
- title: `@${config.i18n}:module.title`,
12
- icon: 'fa-light fa-comments',
13
- },
14
- entities: {
15
- room: {
16
- name: 'Room',
17
- title: `t("room.plural-title", { scope: "${config.i18n}" })`,
18
- source: `${config.module}.Room`,
19
- icon: 'fa-light fa-comments',
20
- },
21
- message: {
22
- name: 'Message',
23
- title: `t("message.plural-title", { scope: "${config.i18n}" })`,
24
- source: `${config.module}.Message`,
25
- icon: 'fa-light fa-message',
26
- },
27
- },
28
- };
29
-
30
- //#region ----- Imports -----
31
- //#endregion
32
- //#region ----- Local entity catalog -----
33
- /**
34
- * Lazy per-entity layout factories. Do not re-export from the contracts barrel
35
- * so RootConfig imports stay light. Server seed and client `local-entities`
36
- * consume this catalog explicitly.
37
- */
38
- const conversationLocalEntityCatalog = {
39
- moduleName: RootConfig.module.name,
40
- loaders: {
41
- [RootConfig.entities.message.name]: () => import('./acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs').then((m) => m.messageFactory()),
42
- [RootConfig.entities.room.name]: () => import('./acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs').then((m) => m.roomFactory()),
43
- },
44
- };
45
- //#endregion
46
-
47
- /**
48
- * Generated bundle index. Do not edit.
49
- */
50
-
51
- export { RootConfig as R, conversationLocalEntityCatalog as c };
52
- //# sourceMappingURL=acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs","sources":["../../../../libs/modules/conversation/contracts/src/root-config.ts","../../../../libs/modules/conversation/contracts/src/entity-catalog.ts","../../../../libs/modules/conversation/contracts/src/acorex-platform-module-conversation-client-contracts-entity-catalog.ts"],"sourcesContent":["const config = {\n i18n: 'conversation',\n module: 'Conversation',\n route: 'chat',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'conversation',\n name: config.module,\n title: `@${config.i18n}:module.title`,\n icon: 'fa-light fa-comments',\n },\n entities: {\n room: {\n name: 'Room',\n title: `t(\"room.plural-title\", { scope: \"${config.i18n}\" })`,\n source: `${config.module}.Room`,\n icon: 'fa-light fa-comments',\n },\n message: {\n name: 'Message',\n title: `t(\"message.plural-title\", { scope: \"${config.i18n}\" })`,\n source: `${config.module}.Message`,\n icon: 'fa-light fa-message',\n },\n },\n} as const;\n","//#region ----- Imports -----\n\nimport type { AXPLocalEntityCatalog } from '@acorex-platform/framework-shared/entity';\n\nimport { RootConfig } from './root-config';\n\n//#endregion\n\n//#region ----- Local entity catalog -----\n\n/**\n * Lazy per-entity layout factories. Do not re-export from the contracts barrel\n * so RootConfig imports stay light. Server seed and client `local-entities`\n * consume this catalog explicitly.\n */\nexport const conversationLocalEntityCatalog: AXPLocalEntityCatalog = {\n moduleName: RootConfig.module.name,\n loaders: {\n [RootConfig.entities.message.name]: () =>\n import('./entities/message/message.entity.js').then((m) => m.messageFactory()),\n [RootConfig.entities.room.name]: () =>\n import('./entities/room/room.entity.js').then((m) => m.roomFactory()),\n },\n};\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './entity-catalog';\n"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,cAAc;AACpB,IAAA,MAAM,EAAE,cAAc;AACtB,IAAA,KAAK,EAAE,MAAM;CACd;AAEM,MAAM,UAAU,GAAG;IACxB,MAAM;AACN,IAAA,MAAM,EAAE;AACN,QAAA,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,MAAM,CAAC,MAAM;AACnB,QAAA,KAAK,EAAE,CAAA,CAAA,EAAI,MAAM,CAAC,IAAI,CAAA,aAAA,CAAe;AACrC,QAAA,IAAI,EAAE,sBAAsB;AAC7B,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE;AACJ,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,KAAK,EAAE,CAAA,iCAAA,EAAoC,MAAM,CAAC,IAAI,CAAA,IAAA,CAAM;AAC5D,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,KAAA,CAAO;AAC/B,YAAA,IAAI,EAAE,sBAAsB;AAC7B,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,KAAK,EAAE,CAAA,oCAAA,EAAuC,MAAM,CAAC,IAAI,CAAA,IAAA,CAAM;AAC/D,YAAA,MAAM,EAAE,CAAA,EAAG,MAAM,CAAC,MAAM,CAAA,QAAA,CAAU;AAClC,YAAA,IAAI,EAAE,qBAAqB;AAC5B,SAAA;AACF,KAAA;;;AC3BH;AAMA;AAEA;AAEA;;;;AAIG;AACI,MAAM,8BAA8B,GAA0B;AACnE,IAAA,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;AAClC,IAAA,OAAO,EAAE;AACP,QAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,MAClC,OAAO,mGAAsC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC;AAChF,QAAA,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,MAC/B,OAAO,gGAAgC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AACxE,KAAA;;AAGH;;ACzBA;;AAEG;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs","sources":["../../../../libs/modules/conversation/contracts/src/entities/message/message.entity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, AXPEntityProperty, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#endregion\n\n//#region ---- Property helpers ----\n\nfunction messageProp(\n i18n: string,\n name: string,\n groupId: string,\n schema: AXPEntityProperty['schema'],\n options?: Partial<AXPEntityProperty>,\n): AXPEntityProperty {\n return {\n name,\n title: `t(\"message.props.${name}\", { scope: \"${i18n}\" })`,\n groupId,\n schema,\n ...options,\n };\n}\n\nfunction hiddenStorageProp(\n i18n: string,\n name: string,\n dataType: 'object' | 'array',\n groupId = 'runtime',\n): AXPEntityProperty {\n return messageProp(i18n, name, groupId, {\n dataType,\n visible: false,\n nullable: true,\n });\n}\n\nconst filterable = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n};\n\n//#endregion\n\n//#region ---- Entity factory ----\n\nexport async function messageFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n const roomEntity = `${RootConfig.module.name}.${RootConfig.entities.room.name}`;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.message.name,\n title: RootConfig.entities.message.title,\n icon: RootConfig.entities.message.icon,\n formats: {\n individual: RootConfig.entities.message.title,\n plural: RootConfig.entities.message.title,\n searchResult: {\n title: '{{ title }}',\n description: '{{ conversationId }}',\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'content', title: `t(\"message.groups.content\", { scope: \"${i18n}\" })` },\n { id: 'flags', title: `t(\"message.groups.flags\", { scope: \"${i18n}\" })` },\n { id: 'runtime', title: `t(\"message.groups.runtime\", { scope: \"${i18n}\" })` },\n ],\n properties: [\n messageProp(i18n, 'name', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n messageProp(\n i18n,\n 'title',\n 'basic-info',\n {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n },\n { options: filterable },\n ),\n messageProp(\n i18n,\n 'conversationId',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: roomEntity,\n textField: 'title',\n valueField: 'id',\n look: 'select',\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n messageProp(\n i18n,\n 'senderId',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: 'SecurityManagement.User',\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n messageProp(\n i18n,\n 'type',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: [\n { name: 'text', title: 'Text' },\n { name: 'image', title: 'Image' },\n { name: 'video', title: 'Video' },\n { name: 'audio', title: 'Audio' },\n { name: 'voice', title: 'Voice' },\n { name: 'file', title: 'File' },\n { name: 'location', title: 'Location' },\n { name: 'sticker', title: 'Sticker' },\n { name: 'call-log', title: 'Call log' },\n { name: 'system', title: 'System' },\n { name: 'node', title: 'Node' },\n { name: 'assist-response', title: 'Assist response' },\n ],\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n messageProp(i18n, 'fileType', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n messageProp(\n i18n,\n 'timestamp',\n 'basic-info',\n {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n messageProp(\n i18n,\n 'status',\n 'content',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: [\n { name: 'sending', title: 'Sending' },\n { name: 'sent', title: 'Sent' },\n { name: 'delivered', title: 'Delivered' },\n { name: 'read', title: 'Read' },\n { name: 'failed', title: 'Failed' },\n ],\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n hiddenStorageProp(i18n, 'payload', 'object', 'content'),\n hiddenStorageProp(i18n, 'replyTo', 'object'),\n hiddenStorageProp(i18n, 'forwardedFrom', 'object'),\n hiddenStorageProp(i18n, 'reactions', 'array'),\n hiddenStorageProp(i18n, 'metadata', 'object'),\n messageProp(i18n, 'forwarded', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n messageProp(i18n, 'pinned', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n messageProp(i18n, 'deleted', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n messageProp(i18n, 'isLocal', 'flags', {\n dataType: 'boolean',\n visible: false,\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n messageProp(i18n, 'editedAt', 'flags', {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n }),\n messageProp(i18n, 'deletedAt', 'flags', {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n }),\n ],\n columns: [\n { name: 'title' },\n { name: 'conversationId' },\n { name: 'senderId' },\n { name: 'type' },\n { name: 'timestamp' },\n { name: 'status' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'content' }, { id: 'flags' }],\n properties: [\n { name: 'conversationId', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'senderId', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'timestamp', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'status', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'fileType', layout: { positions: { lg: { colSpan: 6, order: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 7 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 12, order: 8 } } } },\n { name: 'forwarded', layout: { positions: { lg: { colSpan: 4, order: 9 } } } },\n { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 10 } } } },\n { name: 'deleted', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'content' }, { id: 'flags' }],\n properties: [\n { name: 'conversationId', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'senderId', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'timestamp', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'status', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'fileType', layout: { positions: { lg: { colSpan: 6, order: 6 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 7 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 12, order: 8 } } } },\n { name: 'forwarded', layout: { positions: { lg: { colSpan: 4, order: 9 } } } },\n { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 10 } } } },\n { name: 'deleted', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },\n { name: 'editedAt', layout: { positions: { lg: { colSpan: 6, order: 12 } } } },\n { name: 'deletedAt', layout: { positions: { lg: { colSpan: 6, order: 13 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'basic-info' }, { id: 'content' }, { id: 'flags' }],\n properties: [\n { name: 'conversationId', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'senderId', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'timestamp', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'status', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'title', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n columns: ['title', 'conversationId', 'senderId', 'type', 'timestamp', 'status'],\n sorts: [{ name: 'timestamp', dir: 'desc' }],\n }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1,263 +0,0 @@
1
- import { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';
2
- import { createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';
3
- import { R as RootConfig } from './acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs';
4
-
5
- //#region ---- Imports ----
6
- //#endregion
7
- //#region ---- Property helpers ----
8
- function roomProp(i18n, name, groupId, schema, options) {
9
- return {
10
- name,
11
- title: `t("room.props.${name}", { scope: "${i18n}" })`,
12
- groupId,
13
- schema,
14
- ...options,
15
- };
16
- }
17
- function hiddenStorageProp(i18n, name, dataType, groupId = 'runtime') {
18
- return roomProp(i18n, name, groupId, {
19
- dataType,
20
- visible: false,
21
- nullable: true,
22
- });
23
- }
24
- const filterable = {
25
- sort: { enabled: true },
26
- filter: { advance: { enabled: true }, inline: { enabled: false } },
27
- };
28
- //#endregion
29
- //#region ---- Entity factory ----
30
- async function roomFactory() {
31
- const i18n = RootConfig.config.i18n;
32
- const entityDef = {
33
- module: RootConfig.module.name,
34
- name: RootConfig.entities.room.name,
35
- title: RootConfig.entities.room.title,
36
- icon: RootConfig.entities.room.icon,
37
- formats: {
38
- individual: RootConfig.entities.room.title,
39
- plural: RootConfig.entities.room.title,
40
- searchResult: {
41
- title: '{{ title }}',
42
- description: '{{ kind }}',
43
- },
44
- },
45
- relatedEntities: [],
46
- groups: [
47
- { id: 'basic-info', title: '@general:terms.interface.basic-info' },
48
- { id: 'activity', title: `t("room.groups.activity", { scope: "${i18n}" })` },
49
- { id: 'comment', title: `t("room.groups.comment", { scope: "${i18n}" })` },
50
- { id: 'flags', title: `t("room.groups.flags", { scope: "${i18n}" })` },
51
- { id: 'runtime', title: `t("room.groups.runtime", { scope: "${i18n}" })` },
52
- ],
53
- properties: [
54
- roomProp(i18n, 'name', 'basic-info', {
55
- dataType: 'string',
56
- interface: { type: AXPWidgetsCatalog.text },
57
- }),
58
- roomProp(i18n, 'title', 'basic-info', {
59
- dataType: 'string',
60
- interface: { type: AXPWidgetsCatalog.text },
61
- }, { options: filterable, validations: [{ rule: 'required' }] }),
62
- roomProp(i18n, 'kind', 'basic-info', {
63
- dataType: 'string',
64
- interface: {
65
- type: AXPWidgetsCatalog.select,
66
- options: {
67
- valueField: 'name',
68
- textField: 'title',
69
- multiple: false,
70
- dataSource: [
71
- { name: 'chat', title: 'Chat' },
72
- { name: 'comment', title: 'Comment' },
73
- ],
74
- },
75
- },
76
- }, { options: filterable, validations: [{ rule: 'required' }] }),
77
- roomProp(i18n, 'type', 'basic-info', {
78
- dataType: 'string',
79
- interface: {
80
- type: AXPWidgetsCatalog.select,
81
- options: {
82
- valueField: 'name',
83
- textField: 'title',
84
- multiple: false,
85
- dataSource: [
86
- { name: 'private', title: 'Private' },
87
- { name: 'group', title: 'Group' },
88
- { name: 'channel', title: 'Channel' },
89
- { name: 'bot', title: 'Bot' },
90
- ],
91
- },
92
- },
93
- }, { options: filterable, validations: [{ rule: 'required' }] }),
94
- roomProp(i18n, 'creatorId', 'basic-info', {
95
- dataType: 'string',
96
- interface: {
97
- type: AXPWidgetsCatalog.lookup,
98
- options: {
99
- entity: 'SecurityManagement.User',
100
- textField: 'displayName',
101
- valueField: 'id',
102
- look: 'select',
103
- },
104
- },
105
- }, { options: filterable }),
106
- roomProp(i18n, 'avatar', 'basic-info', {
107
- dataType: 'string',
108
- interface: { type: AXPWidgetsCatalog.text },
109
- }),
110
- roomProp(i18n, 'icon', 'basic-info', {
111
- dataType: 'string',
112
- interface: { type: AXPWidgetsCatalog.text },
113
- }),
114
- roomProp(i18n, 'description', 'basic-info', {
115
- dataType: 'string',
116
- interface: { type: AXPWidgetsCatalog.largeText },
117
- }),
118
- roomProp(i18n, 'lastMessageAt', 'activity', {
119
- dataType: 'date',
120
- interface: { type: AXPWidgetsCatalog.dateTime },
121
- }, { options: filterable, validations: [{ rule: 'required' }] }),
122
- roomProp(i18n, 'unreadCount', 'activity', {
123
- dataType: 'number',
124
- interface: { type: AXPWidgetsCatalog.number },
125
- }, { options: filterable, validations: [{ rule: 'required' }] }),
126
- roomProp(i18n, 'unreadMentions', 'activity', {
127
- dataType: 'number',
128
- interface: { type: AXPWidgetsCatalog.number },
129
- }),
130
- roomProp(i18n, 'createdAt', 'activity', {
131
- dataType: 'date',
132
- interface: { type: AXPWidgetsCatalog.dateTime },
133
- }, { validations: [{ rule: 'required' }] }),
134
- roomProp(i18n, 'updatedAt', 'activity', {
135
- dataType: 'date',
136
- interface: { type: AXPWidgetsCatalog.dateTime },
137
- }, { validations: [{ rule: 'required' }] }),
138
- roomProp(i18n, 'draft', 'activity', {
139
- dataType: 'string',
140
- interface: { type: AXPWidgetsCatalog.largeText },
141
- }),
142
- hiddenStorageProp(i18n, 'participants', 'array'),
143
- hiddenStorageProp(i18n, 'lastMessage', 'object'),
144
- hiddenStorageProp(i18n, 'status', 'object'),
145
- hiddenStorageProp(i18n, 'settings', 'object'),
146
- hiddenStorageProp(i18n, 'pinnedMessageIds', 'array'),
147
- hiddenStorageProp(i18n, 'metadata', 'object'),
148
- hiddenStorageProp(i18n, 'entityRef', 'object', 'comment'),
149
- roomProp(i18n, 'topic', 'comment', {
150
- dataType: 'string',
151
- interface: { type: AXPWidgetsCatalog.text },
152
- }),
153
- roomProp(i18n, 'entityRef.entityId', 'comment', {
154
- dataType: 'string',
155
- visible: false,
156
- interface: { type: AXPWidgetsCatalog.text },
157
- }),
158
- roomProp(i18n, 'entityRef.entityTypeId', 'comment', {
159
- dataType: 'string',
160
- visible: false,
161
- interface: { type: AXPWidgetsCatalog.text },
162
- }),
163
- roomProp(i18n, 'entityRef.moduleName', 'comment', {
164
- dataType: 'string',
165
- visible: false,
166
- interface: { type: AXPWidgetsCatalog.text },
167
- }),
168
- roomProp(i18n, 'entityRef.entityName', 'comment', {
169
- dataType: 'string',
170
- visible: false,
171
- interface: { type: AXPWidgetsCatalog.text },
172
- }),
173
- roomProp(i18n, 'blocked', 'flags', {
174
- dataType: 'boolean',
175
- interface: { type: AXPWidgetsCatalog.toggle },
176
- }),
177
- roomProp(i18n, 'pinned', 'flags', {
178
- dataType: 'boolean',
179
- interface: { type: AXPWidgetsCatalog.toggle },
180
- }),
181
- roomProp(i18n, 'archived', 'flags', {
182
- dataType: 'boolean',
183
- interface: { type: AXPWidgetsCatalog.toggle },
184
- }),
185
- ],
186
- columns: [
187
- { name: 'title' },
188
- { name: 'kind' },
189
- { name: 'type' },
190
- { name: 'lastMessageAt' },
191
- { name: 'unreadCount' },
192
- { name: 'pinned' },
193
- { name: 'archived' },
194
- ],
195
- interfaces: {
196
- master: {
197
- create: {
198
- sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'comment' }, { id: 'flags' }],
199
- properties: [
200
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
201
- { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
202
- { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
203
- { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
204
- { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },
205
- { name: 'avatar', layout: { positions: { lg: { colSpan: 6, order: 6 } } } },
206
- { name: 'icon', layout: { positions: { lg: { colSpan: 6, order: 7 } } } },
207
- { name: 'topic', layout: { positions: { lg: { colSpan: 12, order: 8 } } } },
208
- { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 9 } } } },
209
- { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 10 } } } },
210
- { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },
211
- { name: 'archived', layout: { positions: { lg: { colSpan: 4, order: 12 } } } },
212
- { name: 'blocked', layout: { positions: { lg: { colSpan: 4, order: 13 } } } },
213
- ],
214
- },
215
- update: {
216
- sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'comment' }, { id: 'flags' }],
217
- properties: [
218
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
219
- { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
220
- { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
221
- { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
222
- { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },
223
- { name: 'draft', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },
224
- { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 7 } } } },
225
- { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 8 } } } },
226
- { name: 'unreadMentions', layout: { positions: { lg: { colSpan: 6, order: 9 } } } },
227
- { name: 'updatedAt', layout: { positions: { lg: { colSpan: 6, order: 10 } } } },
228
- { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },
229
- { name: 'archived', layout: { positions: { lg: { colSpan: 4, order: 12 } } } },
230
- { name: 'blocked', layout: { positions: { lg: { colSpan: 4, order: 13 } } } },
231
- ],
232
- },
233
- single: {
234
- title: '{{title}}',
235
- sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'flags' }],
236
- properties: [
237
- { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },
238
- { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },
239
- { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },
240
- { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },
241
- { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },
242
- { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },
243
- ],
244
- actions: [...entityMasterRecordActions()],
245
- },
246
- list: {
247
- actions: [...entityMasterCrudActions()],
248
- views: [
249
- createAllQueryView({
250
- columns: ['title', 'kind', 'type', 'lastMessageAt', 'unreadCount', 'pinned', 'archived'],
251
- sorts: [{ name: 'lastMessageAt', dir: 'desc' }],
252
- }),
253
- ],
254
- },
255
- },
256
- },
257
- };
258
- return entityDef;
259
- }
260
- //#endregion
261
-
262
- export { roomFactory };
263
- //# sourceMappingURL=acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs","sources":["../../../../libs/modules/conversation/contracts/src/entities/room/room.entity.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPWidgetsCatalog } from '@acorex-platform/framework-shared/core';\nimport { AXPEntity, AXPEntityProperty, createAllQueryView, entityMasterCrudActions, entityMasterRecordActions } from '@acorex-platform/framework-shared/entity';\nimport { RootConfig } from '../../root-config';\n\n//#endregion\n\n//#region ---- Property helpers ----\n\nfunction roomProp(\n i18n: string,\n name: string,\n groupId: string,\n schema: AXPEntityProperty['schema'],\n options?: Partial<AXPEntityProperty>,\n): AXPEntityProperty {\n return {\n name,\n title: `t(\"room.props.${name}\", { scope: \"${i18n}\" })`,\n groupId,\n schema,\n ...options,\n };\n}\n\nfunction hiddenStorageProp(\n i18n: string,\n name: string,\n dataType: 'object' | 'array',\n groupId = 'runtime',\n): AXPEntityProperty {\n return roomProp(i18n, name, groupId, {\n dataType,\n visible: false,\n nullable: true,\n });\n}\n\nconst filterable = {\n sort: { enabled: true },\n filter: { advance: { enabled: true }, inline: { enabled: false } },\n};\n\n//#endregion\n\n//#region ---- Entity factory ----\n\nexport async function roomFactory(): Promise<AXPEntity | null> {\n const i18n = RootConfig.config.i18n;\n\n const entityDef: AXPEntity = {\n module: RootConfig.module.name,\n name: RootConfig.entities.room.name,\n title: RootConfig.entities.room.title,\n icon: RootConfig.entities.room.icon,\n formats: {\n individual: RootConfig.entities.room.title,\n plural: RootConfig.entities.room.title,\n searchResult: {\n title: '{{ title }}',\n description: '{{ kind }}',\n },\n },\n relatedEntities: [],\n groups: [\n { id: 'basic-info', title: '@general:terms.interface.basic-info' },\n { id: 'activity', title: `t(\"room.groups.activity\", { scope: \"${i18n}\" })` },\n { id: 'comment', title: `t(\"room.groups.comment\", { scope: \"${i18n}\" })` },\n { id: 'flags', title: `t(\"room.groups.flags\", { scope: \"${i18n}\" })` },\n { id: 'runtime', title: `t(\"room.groups.runtime\", { scope: \"${i18n}\" })` },\n ],\n properties: [\n roomProp(i18n, 'name', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(\n i18n,\n 'title',\n 'basic-info',\n {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n roomProp(\n i18n,\n 'kind',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: [\n { name: 'chat', title: 'Chat' },\n { name: 'comment', title: 'Comment' },\n ],\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n roomProp(\n i18n,\n 'type',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.select,\n options: {\n valueField: 'name',\n textField: 'title',\n multiple: false,\n dataSource: [\n { name: 'private', title: 'Private' },\n { name: 'group', title: 'Group' },\n { name: 'channel', title: 'Channel' },\n { name: 'bot', title: 'Bot' },\n ],\n },\n },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n roomProp(\n i18n,\n 'creatorId',\n 'basic-info',\n {\n dataType: 'string',\n interface: {\n type: AXPWidgetsCatalog.lookup,\n options: {\n entity: 'SecurityManagement.User',\n textField: 'displayName',\n valueField: 'id',\n look: 'select',\n },\n },\n },\n { options: filterable },\n ),\n roomProp(i18n, 'avatar', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'icon', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'description', 'basic-info', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.largeText },\n }),\n roomProp(\n i18n,\n 'lastMessageAt',\n 'activity',\n {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n roomProp(\n i18n,\n 'unreadCount',\n 'activity',\n {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number },\n },\n { options: filterable, validations: [{ rule: 'required' }] },\n ),\n roomProp(i18n, 'unreadMentions', 'activity', {\n dataType: 'number',\n interface: { type: AXPWidgetsCatalog.number },\n }),\n roomProp(\n i18n,\n 'createdAt',\n 'activity',\n {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n { validations: [{ rule: 'required' }] },\n ),\n roomProp(\n i18n,\n 'updatedAt',\n 'activity',\n {\n dataType: 'date',\n interface: { type: AXPWidgetsCatalog.dateTime },\n },\n { validations: [{ rule: 'required' }] },\n ),\n roomProp(i18n, 'draft', 'activity', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.largeText },\n }),\n hiddenStorageProp(i18n, 'participants', 'array'),\n hiddenStorageProp(i18n, 'lastMessage', 'object'),\n hiddenStorageProp(i18n, 'status', 'object'),\n hiddenStorageProp(i18n, 'settings', 'object'),\n hiddenStorageProp(i18n, 'pinnedMessageIds', 'array'),\n hiddenStorageProp(i18n, 'metadata', 'object'),\n hiddenStorageProp(i18n, 'entityRef', 'object', 'comment'),\n roomProp(i18n, 'topic', 'comment', {\n dataType: 'string',\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'entityRef.entityId', 'comment', {\n dataType: 'string',\n visible: false,\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'entityRef.entityTypeId', 'comment', {\n dataType: 'string',\n visible: false,\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'entityRef.moduleName', 'comment', {\n dataType: 'string',\n visible: false,\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'entityRef.entityName', 'comment', {\n dataType: 'string',\n visible: false,\n interface: { type: AXPWidgetsCatalog.text },\n }),\n roomProp(i18n, 'blocked', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n roomProp(i18n, 'pinned', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n roomProp(i18n, 'archived', 'flags', {\n dataType: 'boolean',\n interface: { type: AXPWidgetsCatalog.toggle },\n }),\n ],\n columns: [\n { name: 'title' },\n { name: 'kind' },\n { name: 'type' },\n { name: 'lastMessageAt' },\n { name: 'unreadCount' },\n { name: 'pinned' },\n { name: 'archived' },\n ],\n interfaces: {\n master: {\n create: {\n sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'comment' }, { id: 'flags' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'avatar', layout: { positions: { lg: { colSpan: 6, order: 6 } } } },\n { name: 'icon', layout: { positions: { lg: { colSpan: 6, order: 7 } } } },\n { name: 'topic', layout: { positions: { lg: { colSpan: 12, order: 8 } } } },\n { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 9 } } } },\n { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 10 } } } },\n { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },\n { name: 'archived', layout: { positions: { lg: { colSpan: 4, order: 12 } } } },\n { name: 'blocked', layout: { positions: { lg: { colSpan: 4, order: 13 } } } },\n ],\n },\n update: {\n sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'comment' }, { id: 'flags' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'name', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 5 } } } },\n { name: 'draft', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 7 } } } },\n { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 8 } } } },\n { name: 'unreadMentions', layout: { positions: { lg: { colSpan: 6, order: 9 } } } },\n { name: 'updatedAt', layout: { positions: { lg: { colSpan: 6, order: 10 } } } },\n { name: 'pinned', layout: { positions: { lg: { colSpan: 4, order: 11 } } } },\n { name: 'archived', layout: { positions: { lg: { colSpan: 4, order: 12 } } } },\n { name: 'blocked', layout: { positions: { lg: { colSpan: 4, order: 13 } } } },\n ],\n },\n single: {\n title: '{{title}}',\n sections: [{ id: 'basic-info' }, { id: 'activity' }, { id: 'flags' }],\n properties: [\n { name: 'title', layout: { positions: { lg: { colSpan: 6, order: 1 } } } },\n { name: 'kind', layout: { positions: { lg: { colSpan: 6, order: 2 } } } },\n { name: 'type', layout: { positions: { lg: { colSpan: 6, order: 3 } } } },\n { name: 'unreadCount', layout: { positions: { lg: { colSpan: 6, order: 4 } } } },\n { name: 'lastMessageAt', layout: { positions: { lg: { colSpan: 6, order: 5 } } } },\n { name: 'description', layout: { positions: { lg: { colSpan: 12, order: 6 } } } },\n ],\n actions: [...entityMasterRecordActions()],\n },\n list: {\n actions: [...entityMasterCrudActions()],\n views: [\n createAllQueryView({\n columns: ['title', 'kind', 'type', 'lastMessageAt', 'unreadCount', 'pinned', 'archived'],\n sorts: [{ name: 'lastMessageAt', dir: 'desc' }],\n }),\n ],\n },\n },\n },\n };\n\n return entityDef;\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"acorex-platform-module-conversation-client-sync-read-state.command-DxccFsD9.mjs","sources":["../../../../libs/modules/conversation/client/src/lib/features/commands/sync-read-state.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPCommand, type AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';\n\nimport { inject, Injectable } from '@angular/core';\n\nimport { AXMConversationInAppNotificationSyncService } from '../chat/services/conversation-in-app-notification-sync.service';\nimport { AXMConversationEntityStoreService } from '../chat/services/conversation-entity-store.service';\nimport { AXMConversationFocusService } from '../chat/services/conversation-focus.service';\nimport { axmMessageCountsTowardUnread } from '../chat/plugins/utils/conversation-unread.util';\n\n//#endregion\n\n//#region ---- Types ----\n\nexport interface AXMSyncReadStateOptions {\n conversationId: string;\n messageIds?: string[];\n currentUserId: string;\n /** Explicit user action (sidebar Mark as Read). Skips the “must be viewing” guard. */\n force?: boolean;\n /** Inbox row was marked read — do not treat as a chat-page focus requirement. */\n fromInbox?: boolean;\n}\n\n//#endregion\n\n//#region ---- Command ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMConversationSyncReadStateCommand implements AXPCommand<AXMSyncReadStateOptions, void> {\n private readonly store = inject(AXMConversationEntityStoreService);\n private readonly focus = inject(AXMConversationFocusService);\n private readonly inAppSync = inject(AXMConversationInAppNotificationSyncService);\n\n async execute(input: AXMSyncReadStateOptions | unknown): AXPCommandExecuteResultPromise<void> {\n const options = input as AXMSyncReadStateOptions;\n const conversationId = options.conversationId?.trim();\n if (!conversationId) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const allowWithoutFocus = Boolean(options.force || options.fromInbox);\n if (!allowWithoutFocus && !this.focus.isFocused(conversationId)) {\n return { success: true, kind: 'object', data: undefined };\n }\n\n const currentUserId = options.currentUserId?.trim();\n const messageIds = options.messageIds?.filter((id) => id?.trim()) ?? [];\n const idsToMark =\n messageIds.length > 0\n ? messageIds\n : currentUserId\n ? await this.collectUnreadMessageIds(conversationId, currentUserId)\n : [];\n\n if (idsToMark.length > 0 && currentUserId) {\n await this.focus.markMessagesRead(conversationId, idsToMark, currentUserId);\n } else {\n const cachedConversation = this.store.getCachedConversation(conversationId);\n if ((cachedConversation?.unreadCount ?? 0) !== 0) {\n await this.store.setUnreadCount(conversationId, 0);\n }\n }\n\n if (currentUserId) {\n await this.inAppSync.markConversationInAppNotificationRead(conversationId, currentUserId, {\n force: true,\n });\n }\n return { success: true, kind: 'object', data: undefined };\n }\n\n private async collectUnreadMessageIds(conversationId: string, currentUserId: string): Promise<string[]> {\n const cached = this.store.getCachedMessageList(conversationId);\n const messages = cached ?? (await this.store.loadConversationMessages(conversationId));\n return messages\n .filter((message) => axmMessageCountsTowardUnread(message, currentUserId))\n .map((message) => message.id)\n .filter((id): id is string => Boolean(id?.trim()));\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}