fmode-ng 0.0.113 → 0.0.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -0
- package/README.md +37 -37
- package/esm2022/fmode-ng.mjs +10 -5
- package/esm2022/lib/aigc/agent/fm-agent-task/fm-agent-task.component.mjs +8 -92
- package/esm2022/lib/aigc/agent/index.mjs +10 -3
- package/esm2022/lib/aigc/avatar/avatar.module.mjs +10 -45
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +10 -2
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +10 -315
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +10 -3
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +10 -57
- package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +10 -98
- package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +10 -107
- package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +10 -113
- package/esm2022/lib/aigc/avatar/index.mjs +10 -8
- package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +10 -2
- package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +8 -164
- package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +10 -49
- package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +8 -155
- package/esm2022/lib/aigc/chat/chat-list/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +10 -40
- package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +10 -140
- package/esm2022/lib/aigc/chat/chat-message-card/duration-str.pipe.mjs +10 -29
- package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +10 -3
- package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +10 -3
- package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +8 -193
- package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +10 -331
- package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +8 -249
- package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +10 -83
- package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/index.mjs +10 -8
- package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +10 -82
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +8 -367
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +10 -51
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +10 -24
- package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +10 -115
- package/esm2022/lib/aigc/index.mjs +10 -14
- package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +10 -21
- package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +10 -2
- package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +8 -174
- package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +10 -7
- package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +9 -194
- package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +10 -27
- package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +10 -27
- package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +10 -68
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-func.mjs +9 -162
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-work.mjs +10 -68
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +8 -313
- package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +10 -4
- package/esm2022/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.mjs +10 -62
- package/esm2022/lib/aigc/story/fm-story-card/fm-story-card.component.mjs +10 -87
- package/esm2022/lib/aigc/story/fm-story-list/fm-story-list.component.mjs +10 -345
- package/esm2022/lib/aigc/story/fm-story-list/story-preview.mjs +10 -81
- package/esm2022/lib/aigc/story/fm-story-loader/fm-story-loader.component.mjs +10 -152
- package/esm2022/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.mjs +10 -42
- package/esm2022/lib/aigc/story/index.mjs +10 -6
- package/esm2022/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs +10 -47
- package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs +10 -95
- package/esm2022/lib/aigc/story/modal-chat-story/modal-chat-story.component.mjs +10 -253
- package/esm2022/lib/aigc/story/story.service.mjs +10 -35
- package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +10 -636
- package/esm2022/lib/aigc/voice/index.mjs +10 -7
- package/esm2022/lib/aigc/voice/lib/audio/audio.player.mjs +10 -55
- package/esm2022/lib/aigc/voice/lib/audio/audio.streamer.mjs +10 -2
- package/esm2022/lib/aigc/voice/lib/audio/streamer.microsoft.mjs +10 -96
- package/esm2022/lib/aigc/voice/lib/audio/streamer.pcm.mjs +8 -177
- package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +10 -38
- package/esm2022/lib/aigc/voice/lib/recorder/extension-waveview.mjs +10 -215
- package/esm2022/lib/aigc/voice/lib/resample.mjs +10 -34
- package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +10 -189
- package/esm2022/lib/aigc/voice/tts/index.mjs +10 -5
- package/esm2022/lib/aigc/voice/tts/int-tts-provider.mjs +10 -2
- package/esm2022/lib/aigc/voice/tts/provider-doubao.mjs +8 -346
- package/esm2022/lib/code/fm-codemirror/fm-codemirror.component.mjs +8 -342
- package/esm2022/lib/code/index.mjs +10 -2
- package/esm2022/lib/core/agent/chat/completion/fmode-completion.mjs +8 -430
- package/esm2022/lib/core/agent/chat/completion/index.mjs +10 -2
- package/esm2022/lib/core/agent/chat/completion/int-gpt-chat-options.mjs +10 -2
- package/esm2022/lib/core/agent/chat/fmode-chat.mjs +8 -617
- package/esm2022/lib/core/agent/chat/index.mjs +10 -4
- package/esm2022/lib/core/agent/chat/interface.mjs +10 -2
- package/esm2022/lib/core/agent/index.mjs +10 -6
- package/esm2022/lib/core/agent/prompt/agent.prompt.mjs +10 -133
- package/esm2022/lib/core/agent/prompt/index.mjs +10 -2
- package/esm2022/lib/core/agent/prompt/prompt-util.mjs +10 -16
- package/esm2022/lib/core/agent/story/agent.story.mjs +10 -64
- package/esm2022/lib/core/agent/story/index.mjs +10 -2
- package/esm2022/lib/core/agent/task/agent.task.mjs +10 -90
- package/esm2022/lib/core/agent/task/index.mjs +10 -2
- package/esm2022/lib/core/agent/waiting/index.mjs +10 -3
- package/esm2022/lib/core/agent/waiting/loading/loading.ctrl.mjs +10 -279
- package/esm2022/lib/core/agent/waiting/tips/tips.ctrl.mjs +8 -190
- package/esm2022/lib/core/index.mjs +10 -4
- package/esm2022/lib/core/parse/datatype/acl.mjs +10 -57
- package/esm2022/lib/core/parse/datatype/file.mjs +10 -69
- package/esm2022/lib/core/parse/datatype/geopoint.mjs +10 -57
- package/esm2022/lib/core/parse/datatype/relation.mjs +10 -56
- package/esm2022/lib/core/parse/fmode.cloud.mjs +10 -0
- package/esm2022/lib/core/parse/fmode.object.mjs +10 -232
- package/esm2022/lib/core/parse/fmode.parse.mjs +10 -84
- package/esm2022/lib/core/parse/fmode.query.mjs +8 -500
- package/esm2022/lib/core/parse/fmode.user.mjs +10 -275
- package/esm2022/lib/core/parse/index.mjs +10 -5
- package/esm2022/lib/core/parse/types.mjs +10 -2
- package/esm2022/lib/core/voice/index.mjs +10 -3
- package/esm2022/lib/core/voice/tts/index.mjs +10 -2
- package/esm2022/lib/icon/filetype/audio.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/avatar.svg.mjs +10 -14
- package/esm2022/lib/icon/filetype/chat.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/docx.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/file.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/filetype.pipe.mjs +10 -57
- package/esm2022/lib/icon/filetype/index.mjs +10 -12
- package/esm2022/lib/icon/filetype/md.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/pdf.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/pptx.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/svgtoblob.mjs +10 -8
- package/esm2022/lib/icon/filetype/video.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/xlsx.svg.mjs +10 -3
- package/esm2022/lib/icon/index.mjs +10 -2
- package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +10 -209
- package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +10 -33
- package/esm2022/lib/map/index.mjs +10 -4
- package/esm2022/lib/map/map.module.mjs +10 -61
- package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +10 -132
- package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +8 -115
- package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +8 -118
- package/esm2022/lib/nova-cloud/index.mjs +10 -3
- package/esm2022/lib/nova-cloud/ncloud-api-func.mjs +10 -91
- package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +10 -53
- package/esm2022/lib/payment/index.mjs +10 -2
- package/esm2022/lib/payment/payment/payment.component.mjs +10 -543
- package/esm2022/lib/payment/payment.service.mjs +10 -202
- package/esm2022/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.mjs +10 -48
- package/esm2022/lib/person/comp-person-item/comp-person-item.component.mjs +10 -29
- package/esm2022/lib/person/comp-person-story/comp-person-story.component.mjs +10 -211
- package/esm2022/lib/person/edit-upload/edit-upload.component.mjs +8 -412
- package/esm2022/lib/person/edit-upload/edit-upload.module.mjs +10 -50
- package/esm2022/lib/person/index.mjs +10 -5
- package/esm2022/lib/person/modal-person-select/modal-person-select.component.mjs +10 -144
- package/esm2022/lib/person/modal-user-verify/secret-text.pipe.mjs +10 -41
- package/esm2022/lib/person/modal-user-verify/user-verify.component.mjs +10 -595
- package/esm2022/lib/person/person-detail/person-detail.component.mjs +10 -172
- package/esm2022/lib/person/person.service.mjs +8 -193
- package/esm2022/lib/platform/cross.service.mjs +10 -62
- package/esm2022/lib/platform/index.mjs +10 -2
- package/esm2022/lib/social/index.mjs +10 -2
- package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +8 -230
- package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +10 -59
- package/esm2022/lib/storage/index.mjs +10 -5
- package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +8 -131
- package/esm2022/lib/storage/service-hwobs/index.mjs +10 -3
- package/esm2022/lib/storage/service-hwobs/typings/esdk-obs-browser.mjs +1 -1
- package/esm2022/lib/storage/service-upload/index.mjs +10 -2
- package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +8 -513
- package/esm2022/lib/storage/service-upload/util-file-md5.mjs +10 -28
- package/esm2022/lib/storage/service-upload/util-file-metadata.mjs +10 -93
- package/esm2022/lib/storage/storage.module.mjs +10 -42
- package/esm2022/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.mjs +10 -72
- package/esm2022/lib/text/fm-article-editor/article.service.mjs +10 -237
- package/esm2022/lib/text/fm-article-editor/comp-upload-book-banners/comp-upload-book-banners.component.mjs +8 -72
- package/esm2022/lib/text/fm-article-editor/draft.service.mjs +10 -207
- package/esm2022/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.mjs +8 -227
- package/esm2022/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.mjs +10 -303
- package/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs +8 -371
- package/esm2022/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.mjs +10 -94
- package/esm2022/lib/text/fm-article-editor/fm-article-outline-leftitem/fm-article-outline-leftitem.component.mjs +10 -36
- package/esm2022/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.mjs +10 -281
- package/esm2022/lib/text/fm-article-editor/fm-article-write-options/fm-article-write-options.component.mjs +10 -72
- package/esm2022/lib/text/fm-article-editor/outline-count.pipe.mjs +10 -22
- package/esm2022/lib/text/fm-article-editor/prompt/prompt-insertion-article.mjs +10 -169
- package/esm2022/lib/text/fm-article-editor/task-article-generation.mjs +10 -69
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-draft-create.mjs +10 -65
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline-edit.mjs +10 -55
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline.mjs +10 -142
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-preview.mjs +10 -35
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-writing-options.mjs +10 -81
- package/esm2022/lib/text/fm-article-editor/tasks/task-document-select.mjs +10 -50
- package/esm2022/lib/text/fm-text-quill/fm-text-quill.component.mjs +10 -145
- package/esm2022/lib/text/index.mjs +10 -4
- package/esm2022/lib/user/account/account.service.mjs +10 -222
- package/esm2022/lib/user/captcha/captcha.component.mjs +10 -135
- package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +10 -66
- package/esm2022/lib/user/index.mjs +10 -17
- package/esm2022/lib/user/login/auth.guard.mjs +10 -28
- package/esm2022/lib/user/login/auth.service.mjs +8 -433
- package/esm2022/lib/user/login/login.component.mjs +10 -916
- package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +10 -311
- package/esm2022/lib/user/profile/auth-profile.guard.mjs +10 -27
- package/esm2022/lib/user/profile/auth-profile.service.mjs +10 -122
- package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +10 -164
- package/esm2022/lib/user/profile/profile-bind/profile-confirm-modal.component.mjs +10 -79
- package/esm2022/lib/user/profile/profile.module.mjs +10 -54
- package/esm2022/lib/user/staff/index.mjs +10 -4
- package/esm2022/lib/user/staff/staff.guard.mjs +10 -26
- package/esm2022/lib/user/staff/staff.module.mjs +10 -18
- package/esm2022/lib/user/staff/staff.service.mjs +10 -85
- package/esm2022/lib/user/user-name.pipe.mjs +10 -29
- package/esm2022/lib/user/user.module.mjs +10 -102
- package/esm2022/lib/video/fm-video/fm-video.component.mjs +10 -67
- package/esm2022/lib/video/index.mjs +10 -2
- package/esm2022/public-api.mjs +10 -21
- package/fesm2022/fmode-ng.mjs +7 -19788
- package/fesm2022/fmode-ng.mjs.map +1 -1
- package/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.d.ts +2 -2
- package/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.d.ts +2 -2
- package/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.d.ts +2 -2
- package/lib/aigc/chat/chat-list/chat-list.component.d.ts +3 -2
- package/lib/aigc/chat/chat-message-card/comp-message-card.component.d.ts +3 -3
- package/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.d.ts +2 -2
- package/lib/aigc/chat/chat-modal-input/modal-input.component.d.ts +3 -3
- package/lib/aigc/service-fmai/service-imagine/imagine-func.d.ts +3 -3
- package/lib/aigc/service-fmai/service-imagine/imagine-work.d.ts +4 -4
- package/lib/aigc/service-fmai/service-imagine/imagine.service.d.ts +6 -6
- package/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.d.ts +2 -2
- package/lib/aigc/story/fm-story-card/fm-story-card.component.d.ts +2 -1
- package/lib/aigc/story/fm-story-list/fm-story-list.component.d.ts +6 -6
- package/lib/aigc/story/fm-story-list/story-preview.d.ts +4 -4
- package/lib/aigc/story/fm-story-loader/fm-story-loader.component.d.ts +3 -3
- package/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.d.ts +2 -2
- package/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.d.ts +3 -2
- package/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.d.ts +3 -2
- package/lib/aigc/story/modal-chat-story/modal-chat-story.component.d.ts +6 -6
- package/lib/aigc/story/story.service.d.ts +3 -2
- package/lib/aigc/voice/tts/fmode-tts-class.d.ts +2 -2
- package/lib/core/agent/chat/fmode-chat.d.ts +11 -11
- package/lib/core/agent/story/agent.story.d.ts +8 -8
- package/lib/core/parse/datatype/geopoint.d.ts +5 -1
- package/lib/core/parse/fmode.cloud.d.ts +32 -0
- package/lib/core/parse/fmode.object.d.ts +2 -2
- package/lib/core/parse/fmode.parse.d.ts +15 -9
- package/lib/core/parse/fmode.query.d.ts +41 -2
- package/lib/core/parse/fmode.user.d.ts +1 -0
- package/lib/core/parse/index.d.ts +1 -0
- package/lib/core/parse/types.d.ts +2 -0
- package/lib/map/comp-poi-picker/comp-poi-picker.component.d.ts +5 -5
- package/lib/payment/payment/payment.component.d.ts +3 -3
- package/lib/payment/payment.service.d.ts +4 -4
- package/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.d.ts +2 -1
- package/lib/person/comp-person-item/comp-person-item.component.d.ts +2 -1
- package/lib/person/comp-person-story/comp-person-story.component.d.ts +13 -13
- package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
- package/lib/person/modal-person-select/modal-person-select.component.d.ts +5 -5
- package/lib/person/modal-user-verify/user-verify.component.d.ts +5 -5
- package/lib/person/person-detail/person-detail.component.d.ts +4 -4
- package/lib/person/person.service.d.ts +7 -7
- package/lib/storage/service-hwobs/hwobs.service.d.ts +4 -5
- package/lib/storage/service-upload/nova-upload.service.d.ts +5 -5
- package/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.d.ts +2 -1
- package/lib/text/fm-article-editor/article.service.d.ts +12 -12
- package/lib/text/fm-article-editor/draft.service.d.ts +5 -5
- package/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.d.ts +3 -2
- package/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.d.ts +16 -17
- package/lib/text/fm-article-editor/fm-article-editor.component.d.ts +3 -3
- package/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.d.ts +11 -10
- package/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.d.ts +2 -2
- package/lib/text/fm-article-editor/prompt/prompt-insertion-article.d.ts +3 -3
- package/lib/text/fm-article-editor/task-article-generation.d.ts +5 -4
- package/lib/text/fm-article-editor/tasks/task-article-draft-create.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-outline-edit.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-outline.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-preview.d.ts +2 -1
- package/lib/text/fm-article-editor/tasks/task-article-writing-options.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-document-select.d.ts +3 -3
- package/lib/user/account/account.service.d.ts +2 -2
- package/lib/user/comp-user-avatar/comp-user-avatar.component.d.ts +2 -2
- package/lib/user/login/auth.service.d.ts +5 -5
- package/lib/user/login/login.component.d.ts +3 -3
- package/lib/user/profile/auth-profile.service.d.ts +8 -8
- package/lib/user/profile/profile-bind/profile-bind.component.d.ts +7 -7
- package/lib/user/profile/profile-bind/profile-confirm-modal.component.d.ts +2 -2
- package/lib/user/staff/staff.service.d.ts +3 -3
- package/lib/user/user-name.pipe.d.ts +2 -2
- package/package.json +12 -18
|
@@ -1,157 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
3
|
-
import { AlertController, IonAvatar, IonButton, IonIcon, IonItem, IonLabel, IonList, IonNote, IonText, ModalController, NavController } from '@ionic/angular/standalone';
|
|
4
|
-
import { ChatService } from "../../service-fmai/service-chat/chat.service";
|
|
5
|
-
import { openChatPanelModal } from '../chat-panel/chat-panel.component';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../service-fmai/service-chat/chat.service";
|
|
8
|
-
import * as i2 from "@ionic/angular/standalone";
|
|
9
|
-
import * as i3 from "@angular/common";
|
|
10
|
-
export class ChatListComponent {
|
|
11
|
-
constructor(chatServ, alertCtrl, navCtrl, modalCtrl) {
|
|
12
|
-
this.chatServ = chatServ;
|
|
13
|
-
this.alertCtrl = alertCtrl;
|
|
14
|
-
this.navCtrl = navCtrl;
|
|
15
|
-
this.modalCtrl = modalCtrl;
|
|
16
|
-
this.chatList = [];
|
|
17
|
-
this.onItemClick = (chat, event) => {
|
|
18
|
-
event.stopPropagation();
|
|
19
|
-
this.goSession(chat);
|
|
20
|
-
};
|
|
21
|
-
/** 默认头像*/
|
|
22
|
-
this.avatar = 'https://ionicframework.com/docs/img/demos/avatar.svg';
|
|
23
|
-
this.isPreventGo = false;
|
|
24
|
-
this.chatServ.getChatSession().then(() => {
|
|
25
|
-
// console.log(this.chatServ.chatList);
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
async goSession(chat) {
|
|
29
|
-
if (this.isPreventGo)
|
|
30
|
-
return;
|
|
31
|
-
// this.tab.currentTab = ""
|
|
32
|
-
if (chat?.rid || chat?.sid) {
|
|
33
|
-
if (document.body.clientWidth < 700) {
|
|
34
|
-
let options = {
|
|
35
|
-
roleId: chat?.rid,
|
|
36
|
-
chatId: chat?.sid
|
|
37
|
-
};
|
|
38
|
-
console.log("openChatPanelModal");
|
|
39
|
-
openChatPanelModal(this.modalCtrl, options);
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
this.chatServ.restoreChatPanel(chat);
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
let alert = await this.alertCtrl.create({
|
|
46
|
-
header: "注意",
|
|
47
|
-
subHeader: "请您选择右侧角色",
|
|
48
|
-
message: "开始对话",
|
|
49
|
-
buttons: [
|
|
50
|
-
{
|
|
51
|
-
role: "ok", text: "知道了", handler: () => {
|
|
52
|
-
}
|
|
53
|
-
},
|
|
54
|
-
]
|
|
55
|
-
});
|
|
56
|
-
alert.present();
|
|
57
|
-
this.navCtrl.navigateRoot("/chat/pro/mask");
|
|
58
|
-
}
|
|
59
|
-
}
|
|
1
|
+
|
|
60
2
|
/**
|
|
61
|
-
*
|
|
62
|
-
*
|
|
3
|
+
* @copyright © 未来飞马 © 未来全栈 www.fmode.cn
|
|
4
|
+
* 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
|
|
5
|
+
* 保留所有权利 All Rights Reserved.
|
|
6
|
+
* /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs
|
|
63
7
|
*/
|
|
64
|
-
async presentEditTitle(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
setTimeout(() => { this.isPreventGo = false; }, 500);
|
|
68
|
-
event.preventDefault(); // 防止触发父级点击事件
|
|
69
|
-
const alert = await this.alertCtrl.create({
|
|
70
|
-
header: '修改会话标题',
|
|
71
|
-
subHeader: '',
|
|
72
|
-
message: '',
|
|
73
|
-
buttons: [
|
|
74
|
-
{
|
|
75
|
-
text: '取消',
|
|
76
|
-
role: 'cancel',
|
|
77
|
-
handler: () => {
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
text: '确定',
|
|
82
|
-
role: 'confirm',
|
|
83
|
-
handler: (data) => {
|
|
84
|
-
chat.title = data.title;
|
|
85
|
-
chatSession?.set('title', data.title);
|
|
86
|
-
chatSession?.save();
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
inputs: [
|
|
91
|
-
{
|
|
92
|
-
placeholder: '会话标题',
|
|
93
|
-
name: 'title',
|
|
94
|
-
value: chat?.title || ""
|
|
95
|
-
}
|
|
96
|
-
]
|
|
97
|
-
});
|
|
98
|
-
// this.chatSessionId = Id
|
|
99
|
-
await alert.present();
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* 删除图标的功能组件
|
|
103
|
-
* @param Id 会话Id
|
|
104
|
-
*/
|
|
105
|
-
async presentDeleteTItle(chatSession, chat, event) {
|
|
106
|
-
event.stopPropagation();
|
|
107
|
-
this.isPreventGo = true;
|
|
108
|
-
setTimeout(() => { this.isPreventGo = false; }, 500);
|
|
109
|
-
event.preventDefault(); // 防止触发父级点击事件
|
|
110
|
-
const alert = await this.alertCtrl.create({
|
|
111
|
-
header: '确认删除?',
|
|
112
|
-
subHeader: '',
|
|
113
|
-
message: '',
|
|
114
|
-
buttons: [
|
|
115
|
-
{
|
|
116
|
-
text: '取消',
|
|
117
|
-
role: 'cancel',
|
|
118
|
-
handler: () => {
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
text: '确定',
|
|
123
|
-
role: 'confirm',
|
|
124
|
-
handler: () => {
|
|
125
|
-
chat.isHidden = true;
|
|
126
|
-
chatSession?.set('isDeleted', true);
|
|
127
|
-
chatSession?.save();
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
});
|
|
132
|
-
await alert.present();
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* 绘画标题超出字数的部分用省略号代替
|
|
136
|
-
* @param str 被执行的文本
|
|
137
|
-
* @returns
|
|
138
|
-
*/
|
|
139
|
-
truncateString(str) {
|
|
140
|
-
if (str && str.length > 10) {
|
|
141
|
-
return str.slice(0, 10) + '...';
|
|
142
|
-
}
|
|
143
|
-
return str;
|
|
144
|
-
}
|
|
145
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatListComponent, deps: [{ token: i1.ChatService }, { token: i2.AlertController }, { token: i2.NavController }, { token: i2.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
146
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChatListComponent, isStandalone: true, selector: "app-chat-list", inputs: { onItemClick: "onItemClick" }, providers: [], ngImport: i0, template: "<ion-list>\r\n <ng-container *ngFor=\"let chat of (chatServ?.chatList || chatList)\">\r\n <ion-item [button]=\"true\" detail=\"false\" *ngIf=\"!chat?.isHidden\" (click)=\"onItemClick(chat,$event)\">\r\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\r\n <div class=\"unread-indicator\"></div>\r\n </div>\r\n <ion-label>\r\n <div style=\"display: flex;justify-content: space-between; align-items: center;\">\r\n <div style=\"display: flex; flex-direction: row;align-items: center;\">\r\n <strong style=\"display: flex;align-items: center;\">\r\n <ion-avatar style=\"margin-right: 10px;\">\r\n <img [src]=\"chat?.thumb||avatar\" />\r\n </ion-avatar>\r\n <p style=\"max-width: 7rem;white-space: nowrap;\">{{truncateString(chat?.title)}}</p>\r\n </strong>\r\n\r\n <ion-icon (click)=\"presentEditTitle(chat?.session,chat,$event)\" name=\"brush-sharp\" style=\"color:#777777;margin-left: 1rem;\"></ion-icon>\r\n <ion-icon (click)=\"presentDeleteTItle(chat?.session,chat,$event)\" name=\"trash-sharp\" style=\"color:#777777;margin-left: 0.5rem;\"></ion-icon>\r\n \r\n </div>\r\n <div class=\"metadata-end-wrapper\" slot=\"end\">\r\n <ion-note color=\"medium\">{{chat?.latest | date:\"HH:mm\"}}</ion-note>\r\n <ion-icon color=\"medium\" name=\"chevron-forward\"></ion-icon>\r\n </div>\r\n </div>\r\n <ion-text></ion-text><br />\r\n <ion-note color=\"medium\" class=\"ion-text-wrap\">\r\n {{chat?.message}}\r\n </ion-note>\r\n </ion-label>\r\n </ion-item>\r\n </ng-container>\r\n </ion-list>", styles: ["ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonAvatar, selector: "ion-avatar" }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonText, selector: "ion-text", inputs: ["color", "mode"] }] }); }
|
|
147
|
-
}
|
|
148
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChatListComponent, decorators: [{
|
|
149
|
-
type: Component,
|
|
150
|
-
args: [{ selector: 'app-chat-list', imports: [
|
|
151
|
-
CommonModule,
|
|
152
|
-
IonIcon, IonList, IonLabel, IonNote, IonButton, IonAvatar, IonItem, IonText,
|
|
153
|
-
], providers: [], standalone: true, template: "<ion-list>\r\n <ng-container *ngFor=\"let chat of (chatServ?.chatList || chatList)\">\r\n <ion-item [button]=\"true\" detail=\"false\" *ngIf=\"!chat?.isHidden\" (click)=\"onItemClick(chat,$event)\">\r\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\r\n <div class=\"unread-indicator\"></div>\r\n </div>\r\n <ion-label>\r\n <div style=\"display: flex;justify-content: space-between; align-items: center;\">\r\n <div style=\"display: flex; flex-direction: row;align-items: center;\">\r\n <strong style=\"display: flex;align-items: center;\">\r\n <ion-avatar style=\"margin-right: 10px;\">\r\n <img [src]=\"chat?.thumb||avatar\" />\r\n </ion-avatar>\r\n <p style=\"max-width: 7rem;white-space: nowrap;\">{{truncateString(chat?.title)}}</p>\r\n </strong>\r\n\r\n <ion-icon (click)=\"presentEditTitle(chat?.session,chat,$event)\" name=\"brush-sharp\" style=\"color:#777777;margin-left: 1rem;\"></ion-icon>\r\n <ion-icon (click)=\"presentDeleteTItle(chat?.session,chat,$event)\" name=\"trash-sharp\" style=\"color:#777777;margin-left: 0.5rem;\"></ion-icon>\r\n \r\n </div>\r\n <div class=\"metadata-end-wrapper\" slot=\"end\">\r\n <ion-note color=\"medium\">{{chat?.latest | date:\"HH:mm\"}}</ion-note>\r\n <ion-icon color=\"medium\" name=\"chevron-forward\"></ion-icon>\r\n </div>\r\n </div>\r\n <ion-text></ion-text><br />\r\n <ion-note color=\"medium\" class=\"ion-text-wrap\">\r\n {{chat?.message}}\r\n </ion-note>\r\n </ion-label>\r\n </ion-item>\r\n </ng-container>\r\n </ion-list>", styles: ["ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\n"] }]
|
|
154
|
-
}], ctorParameters: () => [{ type: i1.ChatService }, { type: i2.AlertController }, { type: i2.NavController }, { type: i2.ModalController }], propDecorators: { onItemClick: [{
|
|
155
|
-
type: Input
|
|
156
|
-
}] } });
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvYWlnYy9jaGF0L2NoYXQtbGlzdC9jaGF0LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1saXN0L2NoYXQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6SyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBYXhFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFDUyxRQUFvQixFQUNuQixTQUF5QixFQUN6QixPQUFxQixFQUNyQixTQUF5QjtRQUgxQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQWM7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFObkMsYUFBUSxHQUFjLEVBQUUsQ0FBQTtRQWVmLGdCQUFXLEdBQVksQ0FBQyxJQUFRLEVBQUMsS0FBSyxFQUFDLEVBQUU7WUFDaEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hC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QUNILE1BQU0sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEdBQVU7UUFDdkIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUMzQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUNsQyxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDOytHQWhKVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixvR0FKbEIsRUFDVCwwQkNkSCwydkRBZ0NhLG9zQkR0QlQsWUFBWSxtVEFDWixPQUFPLDJKQUFDLE9BQU8seUZBQUMsUUFBUSw2RkFBQyxPQUFPLGdGQUFXLFNBQVMsdURBQUMsT0FBTywwTkFBQyxPQUFPOzs0RkFNM0QsaUJBQWlCO2tCQVo3QixTQUFTOytCQUNFLGVBQWUsV0FHakI7d0JBQ04sWUFBWTt3QkFDWixPQUFPLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsT0FBTztxQkFDckUsYUFDUyxFQUNULGNBQ1UsSUFBSTt3S0FrQk4sV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBJb25BdmF0YXIsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uSXRlbSwgSW9uTGFiZWwsIElvbkxpc3QsIElvbk5vdGUsIElvblRleHQsIE1vZGFsQ29udHJvbGxlciwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xyXG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlLWZtYWkvc2VydmljZS1jaGF0L2NoYXQuc2VydmljZVwiXHJcbmltcG9ydCB7IG9wZW5DaGF0UGFuZWxNb2RhbCB9IGZyb20gJy4uL2NoYXQtcGFuZWwvY2hhdC1wYW5lbC5jb21wb25lbnQnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jaGF0LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGF0LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NoYXQtbGlzdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGltcG9ydHM6W1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW9uSWNvbixJb25MaXN0LElvbkxhYmVsLElvbk5vdGUsSW9uQnV0dG9uLElvbkF2YXRhcixJb25JdGVtLElvblRleHQsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6W1xyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTp0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGF0TGlzdENvbXBvbmVudCB7XHJcbiAgY2hhdExpc3Q6QXJyYXk8YW55PiA9IFtdXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGNoYXRTZXJ2OkNoYXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydEN0cmw6QWxlcnRDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBuYXZDdHJsOk5hdkNvbnRyb2xsZXIsXHJcbiAgICBwcml2YXRlIG1vZGFsQ3RybDpNb2RhbENvbnRyb2xsZXIsXHJcbiAgKXtcclxuXHJcbiAgICB0aGlzLmNoYXRTZXJ2LmdldENoYXRTZXNzaW9uKCkudGhlbigoKT0+e1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNoYXRTZXJ2LmNoYXRMaXN0KTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KCkgb25JdGVtQ2xpY2s6RnVuY3Rpb24gPSAoY2hhdDphbnksZXZlbnQpPT57XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZ29TZXNzaW9uKGNoYXQpXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIOm7mOiupOWktOWDjyovXHJcbiAgYXZhdGFyOnN0cmluZz0naHR0cHM6Ly9pb25pY2ZyYW1ld29yay5jb20vZG9jcy9pbWcvZGVtb3MvYXZhdGFyLnN2ZydcclxuICBhc3luYyBnb1Nlc3Npb24oY2hhdCl7XHJcbiAgICBpZih0aGlzLmlzUHJldmVudEdvKSByZXR1cm5cclxuICAgIC8vIHRoaXMudGFiLmN1cnJlbnRUYWIgPSBcIlwiXHJcbiAgICBpZihjaGF0Py5yaWQgfHwgY2hhdD8uc2lkKXsgIFxyXG4gICAgICBpZihkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoPDcwMCl7XHJcbiAgICAgICAgbGV0IG9wdGlvbnM6YW55ID0ge1xyXG4gICAgICAgICAgcm9sZUlkOmNoYXQ/LnJpZCxcclxuICAgICAgICAgIGNoYXRJZDpjaGF0Py5zaWRcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc29sZS5sb2coXCJvcGVuQ2hhdFBhbmVsTW9kYWxcIilcclxuICAgICAgICBvcGVuQ2hhdFBhbmVsTW9kYWwodGhpcy5tb2RhbEN0cmwsb3B0aW9ucylcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNoYXRTZXJ2LnJlc3RvcmVDaGF0UGFuZWwoY2hhdClcclxuICAgIH1lbHNle1xyXG4gICAgICBsZXQgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q3RybC5jcmVhdGUoe1xyXG4gICAgICAgIGhlYWRlcjpcIuazqOaEj1wiLFxyXG4gICAgICAgIHN1YkhlYWRlcjpcIuivt+aCqOmAieaLqeWPs+S+p+inkuiJslwiLFxyXG4gICAgICAgIG1lc3NhZ2U6XCLlvIDlp4vlr7nor51cIixcclxuICAgICAgICBidXR0b25zOltcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgcm9sZTpcIm9rXCIsdGV4dDpcIuefpemBk+S6hlwiLGhhbmRsZXI6KCk9PntcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICBdXHJcbiAgICAgIH0pXHJcbiAgICAgIGFsZXJ0LnByZXNlbnQoKTtcclxuICAgICAgdGhpcy5uYXZDdHJsLm5hdmlnYXRlUm9vdChcIi9jaGF0L3Byby9tYXNrXCIpXHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGlzUHJldmVudEdvOmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiDkv67mlLnlm77moIfnmoTlip/og73nu4Tku7ZcclxuICAgKiBAcGFyYW0gSWQg5Lya6K+dSWRcclxuICAgKi9cclxuICBhc3luYyBwcmVzZW50RWRpdFRpdGxlKGNoYXRTZXNzaW9uOlBhcnNlLk9iamVjdCxjaGF0OmFueSxldmVudDpFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgIHRoaXMuaXNQcmV2ZW50R28gPSB0cnVlO3NldFRpbWVvdXQoKCk9Pnt0aGlzLmlzUHJldmVudEdvPWZhbHNlfSw1MDApXHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyDpmLLmraLop6blj5HniLbnuqfngrnlh7vkuovku7ZcclxuICAgIGNvbnN0IGFsZXJ0ID0gYXdhaXQgdGhpcy5hbGVydEN0cmwuY3JlYXRlKHtcclxuICAgICAgaGVhZGVyOiAn5L+u5pS55Lya6K+d5qCH6aKYJyxcclxuICAgICAgc3ViSGVhZGVyOiAnJyxcclxuICAgICAgbWVzc2FnZTogJycsXHJcbiAgICAgIGJ1dHRvbnM6W1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHRleHQ6ICflj5bmtognLFxyXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICBcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZXh0OiAn56Gu5a6aJyxcclxuICAgICAgICAgIHJvbGU6ICdjb25maXJtJyxcclxuICAgICAgICAgIGhhbmRsZXI6IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICAgIGNoYXQudGl0bGUgPSBkYXRhLnRpdGxlXHJcbiAgICAgICAgICAgIGNoYXRTZXNzaW9uPy5zZXQoJ3RpdGxlJyxkYXRhLnRpdGxlKVxyXG4gICAgICAgICAgICBjaGF0U2Vzc2lvbj8uc2F2ZSgpXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIF0sXHJcbiAgICAgIGlucHV0czpbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICfkvJror53moIfpopgnLFxyXG4gICAgICAgICAgbmFtZTogJ3RpdGxlJyxcclxuICAgICAgICAgIHZhbHVlOmNoYXQ/LnRpdGxlIHx8IFwiXCJcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5jaGF0U2Vzc2lvbklkID0gSWRcclxuICAgIGF3YWl0IGFsZXJ0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOWIoOmZpOWbvuagh+eahOWKn+iDvee7hOS7tlxyXG4gICAqIEBwYXJhbSBJZCDkvJror51JZFxyXG4gICAqL1xyXG4gIGFzeW5jIHByZXNlbnREZWxldGVUSXRsZShjaGF0U2Vzc2lvbjpQYXJzZS5PYmplY3QsY2hhdDphbnksZXZlbnQ6RXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICB0aGlzLmlzUHJldmVudEdvID0gdHJ1ZTtzZXRUaW1lb3V0KCgpPT57dGhpcy5pc1ByZXZlbnRHbz1mYWxzZX0sNTAwKVxyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8g6Ziy5q2i6Kem5Y+R54i257qn54K55Ye75LqL5Lu2XHJcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuYWxlcnRDdHJsLmNyZWF0ZSh7XHJcbiAgICAgIGhlYWRlcjogJ+ehruiupOWIoOmZpO+8nycsXHJcbiAgICAgIHN1YkhlYWRlcjogJycsXHJcbiAgICAgIG1lc3NhZ2U6ICcnLFxyXG4gICAgICBidXR0b25zOltcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0ZXh0OiAn5Y+W5raIJyxcclxuICAgICAgICAgIHJvbGU6ICdjYW5jZWwnLFxyXG4gICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xyXG4gICAgXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ+ehruWumicsXHJcbiAgICAgICAgICByb2xlOiAnY29uZmlybScsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNoYXQuaXNIaWRkZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICBjaGF0U2Vzc2lvbj8uc2V0KCdpc0RlbGV0ZWQnLHRydWUpXHJcbiAgICAgICAgICAgIGNoYXRTZXNzaW9uPy5zYXZlKClcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH0pO1xyXG4gICAgYXdhaXQgYWxlcnQucHJlc2VudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog57uY55S75qCH6aKY6LaF5Ye65a2X5pWw55qE6YOo5YiG55So55yB55Wl5Y+35Luj5pu/XHJcbiAgICogQHBhcmFtIHN0ciDooqvmiafooYznmoTmlofmnKxcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICB0cnVuY2F0ZVN0cmluZyhzdHI6U3RyaW5nKSB7XHJcbiAgICBpZiAoc3RyICYmIHN0ci5sZW5ndGggPiAxMCkge1xyXG4gICAgICByZXR1cm4gc3RyLnNsaWNlKDAsIDEwKSArICcuLi4nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0cjtcclxuICB9XHJcblxyXG59XHJcbiIsIjxpb24tbGlzdD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoYXQgb2YgKGNoYXRTZXJ2Py5jaGF0TGlzdCB8fCBjaGF0TGlzdClcIj5cclxuICAgICAgPGlvbi1pdGVtIFtidXR0b25dPVwidHJ1ZVwiIGRldGFpbD1cImZhbHNlXCIgKm5nSWY9XCIhY2hhdD8uaXNIaWRkZW5cIiAoY2xpY2spPVwib25JdGVtQ2xpY2soY2hhdCwkZXZlbnQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3Itd3JhcHBlclwiIHNsb3Q9XCJzdGFydFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVucmVhZC1pbmRpY2F0b3JcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8aW9uLWxhYmVsPlxyXG4gICAgICAgICAgPGRpdiAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4O2p1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiByb3c7YWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgPHN0cm9uZyBzdHlsZT1cImRpc3BsYXk6IGZsZXg7YWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIDxpb24tYXZhdGFyIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiY2hhdD8udGh1bWJ8fGF2YXRhclwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICA8cCBzdHlsZT1cIm1heC13aWR0aDogN3JlbTt3aGl0ZS1zcGFjZTogbm93cmFwO1wiPnt7dHJ1bmNhdGVTdHJpbmcoY2hhdD8udGl0bGUpfX08L3A+XHJcbiAgICAgICAgICAgIDwvc3Ryb25nPlxyXG5cclxuICAgICAgICAgICAgPGlvbi1pY29uIChjbGljayk9XCJwcmVzZW50RWRpdFRpdGxlKGNoYXQ/LnNlc3Npb24sY2hhdCwkZXZlbnQpXCIgbmFtZT1cImJydXNoLXNoYXJwXCIgc3R5bGU9XCJjb2xvcjojNzc3Nzc3O21hcmdpbi1sZWZ0OiAxcmVtO1wiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIDxpb24taWNvbiAoY2xpY2spPVwicHJlc2VudERlbGV0ZVRJdGxlKGNoYXQ/LnNlc3Npb24sY2hhdCwkZXZlbnQpXCIgbmFtZT1cInRyYXNoLXNoYXJwXCIgc3R5bGU9XCJjb2xvcjojNzc3Nzc3O21hcmdpbi1sZWZ0OiAwLjVyZW07XCI+PC9pb24taWNvbj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXRhZGF0YS1lbmQtd3JhcHBlclwiIHNsb3Q9XCJlbmRcIj5cclxuICAgICAgICAgICAgICA8aW9uLW5vdGUgY29sb3I9XCJtZWRpdW1cIj57e2NoYXQ/LmxhdGVzdCB8IGRhdGU6XCJISDptbVwifX08L2lvbi1ub3RlPlxyXG4gICAgICAgICAgICAgIDxpb24taWNvbiBjb2xvcj1cIm1lZGl1bVwiIG5hbWU9XCJjaGV2cm9uLWZvcndhcmRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGlvbi10ZXh0PjwvaW9uLXRleHQ+PGJyIC8+XHJcbiAgICAgICAgICA8aW9uLW5vdGUgY29sb3I9XCJtZWRpdW1cIiBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj5cclxuICAgICAgICAgICAge3tjaGF0Py5tZXNzYWdlfX1cclxuICAgICAgICAgIDwvaW9uLW5vdGU+XHJcbiAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2lvbi1saXN0PiJdfQ==
|
|
8
|
+
import{CommonModule}from"@angular/common";import{Component,Input}from"@angular/core";import{AlertController,IonAvatar,IonButton,IonIcon,IonItem,IonLabel,IonList,IonNote,IonText,ModalController,NavController}from"@ionic/angular/standalone";import{ChatService}from"../../service-fmai/service-chat/chat.service";import{openChatPanelModal}from"../chat-panel/chat-panel.component";import*as i0 from"@angular/core";import*as i1 from"../../service-fmai/service-chat/chat.service";import*as i2 from"@ionic/angular/standalone";import*as i3 from"@angular/common";export class ChatListComponent{constructor(t,e,n,i){this.chatServ=t,this.alertCtrl=e,this.navCtrl=n,this.modalCtrl=i,this.chatList=[],this.onItemClick=(t,e)=>{e.stopPropagation(),this.goSession(t)},this.avatar="https://ionicframework.com/docs/img/demos/avatar.svg",this.isPreventGo=!1,this.chatServ.getChatSession().then((()=>{}))}async goSession(t){if(!this.isPreventGo)if(t?.rid||t?.sid){if(document.body.clientWidth<700){let e={roleId:t?.rid,chatId:t?.sid};return console.log("openChatPanelModal"),void openChatPanelModal(this.modalCtrl,e)}this.chatServ.restoreChatPanel(t)}else{(await this.alertCtrl.create({header:"注意",subHeader:"请您选择右侧角色",message:"开始对话",buttons:[{role:"ok",text:"知道了",handler:()=>{}}]})).present(),this.navCtrl.navigateRoot("/chat/pro/mask")}}async presentEditTitle(t,e,n){n.stopPropagation(),this.isPreventGo=!0,setTimeout((()=>{this.isPreventGo=!1}),500),n.preventDefault();const i=await this.alertCtrl.create({header:"修改会话标题",subHeader:"",message:"",buttons:[{text:"取消",role:"cancel",handler:()=>{}},{text:"确定",role:"confirm",handler:n=>{e.title=n.title,t?.set("title",n.title),t?.save()}}],inputs:[{placeholder:"会话标题",name:"title",value:e?.title||""}]});await i.present()}async presentDeleteTItle(t,e,n){n.stopPropagation(),this.isPreventGo=!0,setTimeout((()=>{this.isPreventGo=!1}),500),n.preventDefault();const i=await this.alertCtrl.create({header:"确认删除?",subHeader:"",message:"",buttons:[{text:"取消",role:"cancel",handler:()=>{}},{text:"确定",role:"confirm",handler:()=>{e.isHidden=!0,t?.set("isDeleted",!0),t?.save()}}]});await i.present()}truncateString(t){return t&&t.length>10?t.slice(0,10)+"...":t}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:ChatListComponent,deps:[{token:i1.ChatService},{token:i2.AlertController},{token:i2.NavController},{token:i2.ModalController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"14.0.0",version:"17.3.12",type:ChatListComponent,isStandalone:!0,selector:"app-chat-list",inputs:{onItemClick:"onItemClick"},providers:[],ngImport:i0,template:'<ion-list>\n <ng-container *ngFor="let chat of (chatServ?.chatList || chatList)">\n <ion-item [button]="true" detail="false" *ngIf="!chat?.isHidden" (click)="onItemClick(chat,$event)">\n <div class="unread-indicator-wrapper" slot="start">\n <div class="unread-indicator"></div>\n </div>\n <ion-label>\n <div style="display: flex;justify-content: space-between; align-items: center;">\n <div style="display: flex; flex-direction: row;align-items: center;">\n <strong style="display: flex;align-items: center;">\n <ion-avatar style="margin-right: 10px;">\n <img [src]="chat?.thumb||avatar" />\n </ion-avatar>\n <p style="max-width: 7rem;white-space: nowrap;">{{truncateString(chat?.title)}}</p>\n </strong>\n\n <ion-icon (click)="presentEditTitle(chat?.session,chat,$event)" name="brush-sharp" style="color:#777777;margin-left: 1rem;"></ion-icon>\n <ion-icon (click)="presentDeleteTItle(chat?.session,chat,$event)" name="trash-sharp" style="color:#777777;margin-left: 0.5rem;"></ion-icon>\n \n </div>\n <div class="metadata-end-wrapper" slot="end">\n <ion-note color="medium">{{chat?.latest | date:"HH:mm"}}</ion-note>\n <ion-icon color="medium" name="chevron-forward"></ion-icon>\n </div>\n </div>\n <ion-text></ion-text><br />\n <ion-note color="medium" class="ion-text-wrap">\n {{chat?.message}}\n </ion-note>\n </ion-label>\n </ion-item>\n </ng-container>\n </ion-list>',styles:["ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\n"],dependencies:[{kind:"ngmodule",type:CommonModule},{kind:"directive",type:i3.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{kind:"directive",type:i3.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{kind:"pipe",type:i3.DatePipe,name:"date"},{kind:"component",type:IonIcon,selector:"ion-icon",inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]},{kind:"component",type:IonList,selector:"ion-list",inputs:["inset","lines","mode"]},{kind:"component",type:IonLabel,selector:"ion-label",inputs:["color","mode","position"]},{kind:"component",type:IonNote,selector:"ion-note",inputs:["color","mode"]},{kind:"component",type:IonAvatar,selector:"ion-avatar"},{kind:"component",type:IonItem,selector:"ion-item",inputs:["button","color","detail","detailIcon","disabled","download","href","lines","mode","rel","routerAnimation","routerDirection","target","type"]},{kind:"component",type:IonText,selector:"ion-text",inputs:["color","mode"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:ChatListComponent,decorators:[{type:Component,args:[{selector:"app-chat-list",imports:[CommonModule,IonIcon,IonList,IonLabel,IonNote,IonButton,IonAvatar,IonItem,IonText],providers:[],standalone:!0,template:'<ion-list>\n <ng-container *ngFor="let chat of (chatServ?.chatList || chatList)">\n <ion-item [button]="true" detail="false" *ngIf="!chat?.isHidden" (click)="onItemClick(chat,$event)">\n <div class="unread-indicator-wrapper" slot="start">\n <div class="unread-indicator"></div>\n </div>\n <ion-label>\n <div style="display: flex;justify-content: space-between; align-items: center;">\n <div style="display: flex; flex-direction: row;align-items: center;">\n <strong style="display: flex;align-items: center;">\n <ion-avatar style="margin-right: 10px;">\n <img [src]="chat?.thumb||avatar" />\n </ion-avatar>\n <p style="max-width: 7rem;white-space: nowrap;">{{truncateString(chat?.title)}}</p>\n </strong>\n\n <ion-icon (click)="presentEditTitle(chat?.session,chat,$event)" name="brush-sharp" style="color:#777777;margin-left: 1rem;"></ion-icon>\n <ion-icon (click)="presentDeleteTItle(chat?.session,chat,$event)" name="trash-sharp" style="color:#777777;margin-left: 0.5rem;"></ion-icon>\n \n </div>\n <div class="metadata-end-wrapper" slot="end">\n <ion-note color="medium">{{chat?.latest | date:"HH:mm"}}</ion-note>\n <ion-icon color="medium" name="chevron-forward"></ion-icon>\n </div>\n </div>\n <ion-text></ion-text><br />\n <ion-note color="medium" class="ion-text-wrap">\n {{chat?.message}}\n </ion-note>\n </ion-label>\n </ion-item>\n </ng-container>\n </ion-list>',styles:["ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\n"]}]}],ctorParameters:()=>[{type:i1.ChatService},{type:i2.AlertController},{type:i2.NavController},{type:i2.ModalController}],propDecorators:{onItemClick:[{type:Input}]}});
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NoYXQvY2hhdC1saXN0L2NoYXQtbGlzdC5jb21wb25lbnQubWpz`
|
|
10
|
+
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* @copyright © 未来飞马 © 未来全栈 www.fmode.cn
|
|
4
|
+
* 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
|
|
5
|
+
* 保留所有权利 All Rights Reserved.
|
|
6
|
+
* /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/chat/chat-list/index.mjs
|
|
7
|
+
*/
|
|
8
|
+
export*from"./chat-list.component";
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NoYXQvY2hhdC1saXN0L2luZGV4Lm1qcw==`
|
|
10
|
+
|
|
@@ -1,40 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import * as i2 from
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
get messageList() {
|
|
12
|
-
return this.chatServ.chatMap[this.chatId]?.messageList;
|
|
13
|
-
}
|
|
14
|
-
constructor(chatServ) {
|
|
15
|
-
this.chatServ = chatServ;
|
|
16
|
-
}
|
|
17
|
-
ngDoCheck() {
|
|
18
|
-
}
|
|
19
|
-
ngAfterViewInit() {
|
|
20
|
-
console.log("ng gogogo1");
|
|
21
|
-
console.log("ng gogogo2");
|
|
22
|
-
// this.messageList = this.chatServ.chatMap[this.chatId]?.messageList
|
|
23
|
-
console.log(this.chat);
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmChatMesssageArea, deps: [{ token: i1.ChatService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FmChatMesssageArea, isStandalone: true, selector: "fm-chat-message-area", inputs: { chatId: "chatId", chat: "chat" }, ngImport: i0, template: "\r\n<div class=\"message-list\">\r\n <app-comp-role-prompt [chat]=\"chat\" [role]=\"chat?.role?.id\"></app-comp-role-prompt>\r\n <ng-container *ngFor=\"let message of chat?.messageList;let index=index;\">\r\n <!-- \u5185\u5BB9\u683C\u5F0F\u5316\u533A\u57DF -->\r\n <fm-chat-message-card [chat]=\"chat\" *ngIf=\"!message?.hidden\" [index]=\"index\" [message]=\"message\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n\r\n @if(!chat?.hideInputPreview){\r\n <!-- \u9884\u89C8\u65E0\u56FE\u6D88\u606F -->\r\n <ng-container *ngIf=\"chat?.userInput&&!chat?.userImage\">\r\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:'user',content:chat?.userInput}\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n \r\n <!-- \u9884\u89C8\u6709\u56FE\u6D88\u606F -->\r\n <ng-container *ngIf=\"chat?.userImage\">\r\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:'user',content:[{type:'text',text:chat?.userInput},{type:'image_url',image_url:{url:chat?.userImage}}]}\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n }\r\n</div>", styles: [".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FmChatMessageCard, selector: "fm-chat-message-card", inputs: ["index", "message", "role", "chat"] }, { kind: "component", type: CompRolePromptComponent, selector: "app-comp-role-prompt", inputs: ["chat", "role"] }] }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmChatMesssageArea, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{ selector: 'fm-chat-message-area', standalone: true, imports: [
|
|
31
|
-
CommonModule,
|
|
32
|
-
FmChatMessageCard,
|
|
33
|
-
CompRolePromptComponent,
|
|
34
|
-
], template: "\r\n<div class=\"message-list\">\r\n <app-comp-role-prompt [chat]=\"chat\" [role]=\"chat?.role?.id\"></app-comp-role-prompt>\r\n <ng-container *ngFor=\"let message of chat?.messageList;let index=index;\">\r\n <!-- \u5185\u5BB9\u683C\u5F0F\u5316\u533A\u57DF -->\r\n <fm-chat-message-card [chat]=\"chat\" *ngIf=\"!message?.hidden\" [index]=\"index\" [message]=\"message\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n\r\n @if(!chat?.hideInputPreview){\r\n <!-- \u9884\u89C8\u65E0\u56FE\u6D88\u606F -->\r\n <ng-container *ngIf=\"chat?.userInput&&!chat?.userImage\">\r\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:'user',content:chat?.userInput}\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n \r\n <!-- \u9884\u89C8\u6709\u56FE\u6D88\u606F -->\r\n <ng-container *ngIf=\"chat?.userImage\">\r\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:'user',content:[{type:'text',text:chat?.userInput},{type:'image_url',image_url:{url:chat?.userImage}}]}\" [role]=\"chat?.role\"></fm-chat-message-card>\r\n </ng-container>\r\n }\r\n</div>", styles: [".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\n"] }]
|
|
35
|
-
}], ctorParameters: () => [{ type: i1.ChatService }], propDecorators: { chatId: [{
|
|
36
|
-
type: Input
|
|
37
|
-
}], chat: [{
|
|
38
|
-
type: Input
|
|
39
|
-
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcC1tZXNzYWdlLWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1tZXNzYWdlLWFyZWEvY29tcC1tZXNzYWdlLWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL2NoYXQvY2hhdC1tZXNzYWdlLWFyZWEvY29tcC1tZXNzYWdlLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBaUIsU0FBUyxFQUFXLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDOzs7O0FBYXpGLE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IseUJBQXlCO0lBQ3pCLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFdBQVcsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsWUFBb0IsUUFBb0I7UUFBcEIsYUFBUSxHQUFSLFFBQVEsQ0FBWTtJQUV4QyxDQUFDO0lBRUQsU0FBUztJQUNULENBQUM7SUFDRCxlQUFlO1FBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3pCLHFFQUFxRTtRQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN4QixDQUFDOytHQXBCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw0SENqQi9CLDRxQ0FtQk0saUtEUEYsWUFBWSxnUUFDWixpQkFBaUIsK0dBQ2pCLHVCQUF1Qjs7NEZBR2Qsa0JBQWtCO2tCQVg5QixTQUFTOytCQUNFLHNCQUFzQixjQUdyQixJQUFJLFdBQ1A7d0JBQ04sWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHVCQUF1QjtxQkFDeEI7Z0ZBSVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRG9DaGVjaywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ2hhdFNlcnZpY2UsIEZtb2RlQ2hhdCB9IGZyb20gJy4uLy4uL3NlcnZpY2UtZm1haS9zZXJ2aWNlLWNoYXQnO1xyXG5pbXBvcnQgeyBGbUNoYXRNZXNzYWdlQ2FyZCB9IGZyb20gJy4uL2NoYXQtbWVzc2FnZS1jYXJkL2NvbXAtbWVzc2FnZS1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBSb2xlUHJvbXB0Q29tcG9uZW50IH0gZnJvbSAnLi4vY29tcC1yb2xlLXByb21wdC9jb21wLXJvbGUtcHJvbXB0LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZtLWNoYXQtbWVzc2FnZS1hcmVhJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcC1tZXNzYWdlLWFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbXAtbWVzc2FnZS1hcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTp0cnVlLFxyXG4gIGltcG9ydHM6W1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm1DaGF0TWVzc2FnZUNhcmQsXHJcbiAgICBDb21wUm9sZVByb21wdENvbXBvbmVudCxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGbUNoYXRNZXNzc2FnZUFyZWEgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LERvQ2hlY2sge1xyXG5cclxuICBASW5wdXQoKSBjaGF0SWQ6c3RyaW5nXHJcbiAgQElucHV0KCkgY2hhdDpGbW9kZUNoYXRcclxuICAvLyBtZXNzYWdlTGlzdDphbnlbXSA9IFtdXHJcbiAgZ2V0IG1lc3NhZ2VMaXN0KCk6YW55W117XHJcbiAgICByZXR1cm4gdGhpcy5jaGF0U2Vydi5jaGF0TWFwW3RoaXMuY2hhdElkXT8ubWVzc2FnZUxpc3RcclxuICB9XHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGF0U2VydjpDaGF0U2VydmljZSxcclxuICAgICl7XHJcbiAgfVxyXG5cclxuICBuZ0RvQ2hlY2soKTogdm9pZCB7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwibmcgZ29nb2dvMVwiKVxyXG4gICAgY29uc29sZS5sb2coXCJuZyBnb2dvZ28yXCIpXHJcbiAgICAvLyB0aGlzLm1lc3NhZ2VMaXN0ID0gdGhpcy5jaGF0U2Vydi5jaGF0TWFwW3RoaXMuY2hhdElkXT8ubWVzc2FnZUxpc3RcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY2hhdClcclxuICB9XHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJtZXNzYWdlLWxpc3RcIj5cclxuICAgIDxhcHAtY29tcC1yb2xlLXByb21wdCBbY2hhdF09XCJjaGF0XCIgW3JvbGVdPVwiY2hhdD8ucm9sZT8uaWRcIj48L2FwcC1jb21wLXJvbGUtcHJvbXB0PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBjaGF0Py5tZXNzYWdlTGlzdDtsZXQgaW5kZXg9aW5kZXg7XCI+XHJcbiAgICAgICAgPCEtLSDlhoXlrrnmoLzlvI/ljJbljLrln58gLS0+XHJcbiAgICAgICAgPGZtLWNoYXQtbWVzc2FnZS1jYXJkIFtjaGF0XT1cImNoYXRcIiAqbmdJZj1cIiFtZXNzYWdlPy5oaWRkZW5cIiBbaW5kZXhdPVwiaW5kZXhcIiBbbWVzc2FnZV09XCJtZXNzYWdlXCIgW3JvbGVdPVwiY2hhdD8ucm9sZVwiPjwvZm0tY2hhdC1tZXNzYWdlLWNhcmQ+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICBAaWYoIWNoYXQ/LmhpZGVJbnB1dFByZXZpZXcpe1xyXG4gICAgICAgIDwhLS0g6aKE6KeI5peg5Zu+5raI5oGvIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGF0Py51c2VySW5wdXQmJiFjaGF0Py51c2VySW1hZ2VcIj5cclxuICAgICAgICAgICAgPGZtLWNoYXQtbWVzc2FnZS1jYXJkIFtjaGF0XT1cImNoYXRcIiBbbWVzc2FnZV09XCJ7cm9sZTondXNlcicsY29udGVudDpjaGF0Py51c2VySW5wdXR9XCIgW3JvbGVdPVwiY2hhdD8ucm9sZVwiPjwvZm0tY2hhdC1tZXNzYWdlLWNhcmQ+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPCEtLSDpooTop4jmnInlm77mtojmga8gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNoYXQ/LnVzZXJJbWFnZVwiPlxyXG4gICAgICAgICAgICA8Zm0tY2hhdC1tZXNzYWdlLWNhcmQgW2NoYXRdPVwiY2hhdFwiIFttZXNzYWdlXT1cIntyb2xlOid1c2VyJyxjb250ZW50Olt7dHlwZTondGV4dCcsdGV4dDpjaGF0Py51c2VySW5wdXR9LHt0eXBlOidpbWFnZV91cmwnLGltYWdlX3VybDp7dXJsOmNoYXQ/LnVzZXJJbWFnZX19XX1cIiBbcm9sZV09XCJjaGF0Py5yb2xlXCI+PC9mbS1jaGF0LW1lc3NhZ2UtY2FyZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIH1cclxuPC9kaXY+Il19
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* @copyright © 未来飞马 © 未来全栈 www.fmode.cn
|
|
4
|
+
* 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
|
|
5
|
+
* 保留所有权利 All Rights Reserved.
|
|
6
|
+
* /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs
|
|
7
|
+
*/
|
|
8
|
+
import{CommonModule}from"@angular/common";import{Component,Input}from"@angular/core";import{ChatService,FmodeChat}from"../../service-fmai/service-chat";import{FmChatMessageCard}from"../chat-message-card/comp-message-card.component";import{CompRolePromptComponent}from"../comp-role-prompt/comp-role-prompt.component";import*as i0 from"@angular/core";import*as i1 from"../../service-fmai/service-chat";import*as i2 from"@angular/common";export class FmChatMesssageArea{get messageList(){return this.chatServ.chatMap[this.chatId]?.messageList}constructor(e){this.chatServ=e}ngDoCheck(){}ngAfterViewInit(){console.log("ng gogogo1"),console.log("ng gogogo2"),console.log(this.chat)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmChatMesssageArea,deps:[{token:i1.ChatService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"17.3.12",type:FmChatMesssageArea,isStandalone:!0,selector:"fm-chat-message-area",inputs:{chatId:"chatId",chat:"chat"},ngImport:i0,template:'\n<div class="message-list">\n <app-comp-role-prompt [chat]="chat" [role]="chat?.role?.id"></app-comp-role-prompt>\n <ng-container *ngFor="let message of chat?.messageList;let index=index;">\n \x3c!-- 内容格式化区域 --\x3e\n <fm-chat-message-card [chat]="chat" *ngIf="!message?.hidden" [index]="index" [message]="message" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n\n @if(!chat?.hideInputPreview){\n \x3c!-- 预览无图消息 --\x3e\n <ng-container *ngIf="chat?.userInput&&!chat?.userImage">\n <fm-chat-message-card [chat]="chat" [message]="{role:\'user\',content:chat?.userInput}" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n \n \x3c!-- 预览有图消息 --\x3e\n <ng-container *ngIf="chat?.userImage">\n <fm-chat-message-card [chat]="chat" [message]="{role:\'user\',content:[{type:\'text\',text:chat?.userInput},{type:\'image_url\',image_url:{url:chat?.userImage}}]}" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n }\n</div>',styles:[".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\n"],dependencies:[{kind:"ngmodule",type:CommonModule},{kind:"directive",type:i2.NgForOf,selector:"[ngFor][ngForOf]",inputs:["ngForOf","ngForTrackBy","ngForTemplate"]},{kind:"directive",type:i2.NgIf,selector:"[ngIf]",inputs:["ngIf","ngIfThen","ngIfElse"]},{kind:"component",type:FmChatMessageCard,selector:"fm-chat-message-card",inputs:["index","message","role","chat"]},{kind:"component",type:CompRolePromptComponent,selector:"app-comp-role-prompt",inputs:["chat","role"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmChatMesssageArea,decorators:[{type:Component,args:[{selector:"fm-chat-message-area",standalone:!0,imports:[CommonModule,FmChatMessageCard,CompRolePromptComponent],template:'\n<div class="message-list">\n <app-comp-role-prompt [chat]="chat" [role]="chat?.role?.id"></app-comp-role-prompt>\n <ng-container *ngFor="let message of chat?.messageList;let index=index;">\n \x3c!-- 内容格式化区域 --\x3e\n <fm-chat-message-card [chat]="chat" *ngIf="!message?.hidden" [index]="index" [message]="message" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n\n @if(!chat?.hideInputPreview){\n \x3c!-- 预览无图消息 --\x3e\n <ng-container *ngIf="chat?.userInput&&!chat?.userImage">\n <fm-chat-message-card [chat]="chat" [message]="{role:\'user\',content:chat?.userInput}" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n \n \x3c!-- 预览有图消息 --\x3e\n <ng-container *ngIf="chat?.userImage">\n <fm-chat-message-card [chat]="chat" [message]="{role:\'user\',content:[{type:\'text\',text:chat?.userInput},{type:\'image_url\',image_url:{url:chat?.userImage}}]}" [role]="chat?.role"></fm-chat-message-card>\n </ng-container>\n }\n</div>',styles:[".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\n"]}]}],ctorParameters:()=>[{type:i1.ChatService}],propDecorators:{chatId:[{type:Input}],chat:[{type:Input}]}});
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NoYXQvY2hhdC1tZXNzYWdlLWFyZWEvY29tcC1tZXNzYWdlLWFyZWEuY29tcG9uZW50Lm1qcw==`
|
|
10
|
+
|
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* @copyright © 未来飞马 © 未来全栈 www.fmode.cn
|
|
4
|
+
* 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.
|
|
5
|
+
* 保留所有权利 All Rights Reserved.
|
|
6
|
+
* /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/esm2022/lib/aigc/chat/chat-message-area/index.mjs
|
|
7
|
+
*/
|
|
8
|
+
export*from"./comp-message-area.component";
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL2NoYXQvY2hhdC1tZXNzYWdlLWFyZWEvaW5kZXgubWpz`
|
|
10
|
+
|