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,47 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import * as i3 from "@angular/forms";
|
|
12
|
-
import * as i4 from "@angular/material/button";
|
|
13
|
-
export class CompChatStoryJsonComponent {
|
|
14
|
-
constructor(modalCtrl) {
|
|
15
|
-
this.modalCtrl = modalCtrl;
|
|
16
|
-
this.showHeader = false;
|
|
17
|
-
}
|
|
18
|
-
back() {
|
|
19
|
-
this.modalCtrl.dismiss();
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() {
|
|
22
|
-
if (this.story?.get("person")?.id) {
|
|
23
|
-
if (this.story?.get("person")?.get("name")) {
|
|
24
|
-
this.person = this.story?.get("person");
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompChatStoryJsonComponent, deps: [{ token: i1.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CompChatStoryJsonComponent, isStandalone: true, selector: "comp-chat-story-json", inputs: { story: "story", person: "person", showHeader: "showHeader" }, ngImport: i0, template: "@if(showHeader){\r\n <div class=\"filebar\">\r\n <!-- \u6587\u4EF6\u4FE1\u606F -->\r\n <div class=\"file-info\" style=\"display:flex;align-items:center;\">\r\n <!-- \u56FE\u6807+\u5927\u5C0F -->\r\n <ion-icon [src]=\"'.chat'|filetype\"></ion-icon>\r\n <span class=\"size\">{{story?.get(\"chatSession\")?.get(\"messageList\")?.length }}\u6761</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{story?.get(\"title\")||'\u672A\u547D\u540D'}}\r\n </div>\r\n <!-- \u64CD\u4F5C\u533A\u57DF -->\r\n <div class=\"actions\" style=\"display:flex;align-items:center;justify-content: flex-end;\">\r\n <!-- \u5173\u95ED -->\r\n <button mat-button (click)=\"back()\" aria-label=\"\u9884\u89C8\">\r\n \u5173\u95ED\r\n </button>\r\n </div>\r\n</div>\r\n}\r\n<ng-container *ngIf=\"story?.get('contentJson')\">\r\n <div [style.overflowY]=\"'auto'\">\r\n\r\n <!-- \u91C7\u8BBF\u4E3B\u9898 -->\r\n <ion-item>\r\n <ion-label>\u4E3B\u9898</ion-label>\r\n {{story?.get('contentJson')?.title}}\r\n </ion-item>\r\n <ion-item>\r\n <ion-label>\u6807\u7B7E</ion-label>\r\n <ion-chip *ngFor=\"let item of story?.get('contentJson')?.keywords\" color=\"success\">{{item}}</ion-chip>\r\n </ion-item>\r\n <ion-item>\r\n <ion-textarea label=\"\u6982\u8FF0\" [readonly]=\"true\" [autoGrow]=\"true\" [ngModel]=\"story?.get('contentJson')?.desc\"></ion-textarea>\r\n </ion-item>\r\n\r\n <!-- \u8BDD\u9898\u5361\u7247 -->\r\n <ion-list>\r\n <ion-card color=\"primary\" *ngFor=\"let topic of story?.get('contentJson')?.topics||[];let index = index;\">\r\n <ion-card-header>\r\n <ion-card-title>\u8BDD\u9898{{index+1}}.{{ topic.title }}</ion-card-title>\r\n <ion-card-subtitle><ion-chip *ngFor=\"let item of topic.keywords\" color=\"warning\">{{item}}</ion-chip></ion-card-subtitle>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <p>{{ topic.content }}</p>\r\n <ion-list>\r\n <ng-container *ngFor=\"let qa of topic.list\">\r\n <ion-item >\r\n <ion-note slot=\"start\" color=\"medium\">\r\n \u95EE\r\n </ion-note>\r\n <ion-label>\r\n {{ qa.q }}\r\n </ion-label>\r\n </ion-item>\r\n <ion-item >\r\n <ion-label>\r\n {{ qa.a }}\r\n </ion-label>\r\n <ion-note slot=\"end\" color=\"medium\">\r\n \u7B54\r\n </ion-note>\r\n </ion-item>\r\n </ng-container>\r\n \r\n </ion-list>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-list>\r\n <ion-list>\r\n <ion-item-group *ngIf=\"person\">\r\n <ion-item>\r\n <ion-label style=\"text-align:center;\">\u5EF6\u4F38\u95EE\u9898</ion-label>\r\n </ion-item>\r\n <ion-item *ngFor=\"let item of story?.get('contentJson')?.questions||[];let index = index;\">\r\n {{index+1}}{{item}}\r\n </ion-item>\r\n </ion-item-group>\r\n </ion-list>\r\n</div>\r\n\r\n</ng-container>", styles: [".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\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: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { 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: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: IonCardSubtitle, selector: "ion-card-subtitle", inputs: ["color", "mode"] }, { kind: "component", type: IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: IonNote, selector: "ion-note", inputs: ["color", "mode"] }, { kind: "component", type: IonItemGroup, selector: "ion-item-group" }, { kind: "component", type: IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: NzPipesModule }, { kind: "pipe", type: FiletypePipe, name: "filetype" }] }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompChatStoryJsonComponent, decorators: [{
|
|
32
|
-
type: Component,
|
|
33
|
-
args: [{ selector: 'comp-chat-story-json', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
34
|
-
IonItem, IonLabel, IonIcon, IonList, IonCard, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCardContent, IonNote,
|
|
35
|
-
IonItemGroup, IonItemDivider, IonChip,
|
|
36
|
-
IonTextarea,
|
|
37
|
-
MatButtonModule,
|
|
38
|
-
NzPipesModule, FiletypePipe
|
|
39
|
-
], template: "@if(showHeader){\r\n <div class=\"filebar\">\r\n <!-- \u6587\u4EF6\u4FE1\u606F -->\r\n <div class=\"file-info\" style=\"display:flex;align-items:center;\">\r\n <!-- \u56FE\u6807+\u5927\u5C0F -->\r\n <ion-icon [src]=\"'.chat'|filetype\"></ion-icon>\r\n <span class=\"size\">{{story?.get(\"chatSession\")?.get(\"messageList\")?.length }}\u6761</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{story?.get(\"title\")||'\u672A\u547D\u540D'}}\r\n </div>\r\n <!-- \u64CD\u4F5C\u533A\u57DF -->\r\n <div class=\"actions\" style=\"display:flex;align-items:center;justify-content: flex-end;\">\r\n <!-- \u5173\u95ED -->\r\n <button mat-button (click)=\"back()\" aria-label=\"\u9884\u89C8\">\r\n \u5173\u95ED\r\n </button>\r\n </div>\r\n</div>\r\n}\r\n<ng-container *ngIf=\"story?.get('contentJson')\">\r\n <div [style.overflowY]=\"'auto'\">\r\n\r\n <!-- \u91C7\u8BBF\u4E3B\u9898 -->\r\n <ion-item>\r\n <ion-label>\u4E3B\u9898</ion-label>\r\n {{story?.get('contentJson')?.title}}\r\n </ion-item>\r\n <ion-item>\r\n <ion-label>\u6807\u7B7E</ion-label>\r\n <ion-chip *ngFor=\"let item of story?.get('contentJson')?.keywords\" color=\"success\">{{item}}</ion-chip>\r\n </ion-item>\r\n <ion-item>\r\n <ion-textarea label=\"\u6982\u8FF0\" [readonly]=\"true\" [autoGrow]=\"true\" [ngModel]=\"story?.get('contentJson')?.desc\"></ion-textarea>\r\n </ion-item>\r\n\r\n <!-- \u8BDD\u9898\u5361\u7247 -->\r\n <ion-list>\r\n <ion-card color=\"primary\" *ngFor=\"let topic of story?.get('contentJson')?.topics||[];let index = index;\">\r\n <ion-card-header>\r\n <ion-card-title>\u8BDD\u9898{{index+1}}.{{ topic.title }}</ion-card-title>\r\n <ion-card-subtitle><ion-chip *ngFor=\"let item of topic.keywords\" color=\"warning\">{{item}}</ion-chip></ion-card-subtitle>\r\n </ion-card-header>\r\n <ion-card-content>\r\n <p>{{ topic.content }}</p>\r\n <ion-list>\r\n <ng-container *ngFor=\"let qa of topic.list\">\r\n <ion-item >\r\n <ion-note slot=\"start\" color=\"medium\">\r\n \u95EE\r\n </ion-note>\r\n <ion-label>\r\n {{ qa.q }}\r\n </ion-label>\r\n </ion-item>\r\n <ion-item >\r\n <ion-label>\r\n {{ qa.a }}\r\n </ion-label>\r\n <ion-note slot=\"end\" color=\"medium\">\r\n \u7B54\r\n </ion-note>\r\n </ion-item>\r\n </ng-container>\r\n \r\n </ion-list>\r\n </ion-card-content>\r\n </ion-card>\r\n </ion-list>\r\n <ion-list>\r\n <ion-item-group *ngIf=\"person\">\r\n <ion-item>\r\n <ion-label style=\"text-align:center;\">\u5EF6\u4F38\u95EE\u9898</ion-label>\r\n </ion-item>\r\n <ion-item *ngFor=\"let item of story?.get('contentJson')?.questions||[];let index = index;\">\r\n {{index+1}}{{item}}\r\n </ion-item>\r\n </ion-item-group>\r\n </ion-list>\r\n</div>\r\n\r\n</ng-container>", styles: [".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\n"] }]
|
|
40
|
-
}], ctorParameters: () => [{ type: i1.ModalController }], propDecorators: { story: [{
|
|
41
|
-
type: Input
|
|
42
|
-
}], person: [{
|
|
43
|
-
type: Input
|
|
44
|
-
}], showHeader: [{
|
|
45
|
-
type: Input
|
|
46
|
-
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcC1jaGF0LXN0b3J5LWpzb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL3N0b3J5L21vZGFsLWNoYXQtc3RvcnkvY29tcC1jaGF0LXN0b3J5LWpzb24vY29tcC1jaGF0LXN0b3J5LWpzb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL3N0b3J5L21vZGFsLWNoYXQtc3RvcnkvY29tcC1jaGF0LXN0b3J5LWpzb24vY29tcC1jaGF0LXN0b3J5LWpzb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbk8sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7O0FBZ0J6RCxNQUFNLE9BQU8sMEJBQTBCO0lBUXJDLFlBQ1UsU0FBeUI7UUFBekIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFIbkMsZUFBVSxHQUFXLEtBQUssQ0FBQztJQUszQixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQ2hDLElBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDekMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXRCVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3SkN0QnZDLGlsR0FrRmUsOGVEckVKLFlBQVksK1BBQUMsV0FBVyw4VkFBQyxtQkFBbUIsK0JBQ25ELE9BQU8sME5BQUMsUUFBUSw2RkFBQyxPQUFPLDJKQUFDLE9BQU8seUZBQUMsT0FBTyx5TEFBQyxhQUFhLHNHQUFDLFlBQVksc0ZBQUMsZUFBZSx5RkFBQyxjQUFjLCtFQUFDLE9BQU8sZ0ZBQzFHLFlBQVksMkRBQWdCLE9BQU8sdUdBQ25DLFdBQVcsZ2FBQ1gsZUFBZSwyTkFDZixhQUFhLDBCQUFDLFlBQVk7OzRGQUlqQiwwQkFBMEI7a0JBZHRDLFNBQVM7K0JBQ0Usc0JBQXNCLGNBR3BCLElBQUksV0FDUixDQUFDLFlBQVksRUFBQyxXQUFXLEVBQUMsbUJBQW1CO3dCQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxZQUFZLEVBQUMsZUFBZSxFQUFDLGNBQWMsRUFBQyxPQUFPO3dCQUMxRyxZQUFZLEVBQUMsY0FBYyxFQUFDLE9BQU87d0JBQ25DLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhLEVBQUMsWUFBWTtxQkFFM0I7b0ZBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IElvbkl0ZW0sSW9uTGFiZWwsSW9uSWNvbiwgSW9uQ2FyZFN1YnRpdGxlLCBJb25DYXJkQ29udGVudCwgSW9uTGlzdCwgSW9uQ2FyZCwgSW9uQ2FyZFRpdGxlLCBJb25Ob3RlLCBJb25DYXJkSGVhZGVyLCBJb25JdGVtR3JvdXAsIElvbkl0ZW1EaXZpZGVyLCBJb25DaGlwLCBJb25UZXh0YXJlYSwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSBcIkBpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmVcIjtcclxuaW1wb3J0IHsgTnpQaXBlc01vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvcGlwZXMnO1xyXG5pbXBvcnQgeyBGaWxldHlwZVBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9pY29uL2ZpbGV0eXBlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29tcC1jaGF0LXN0b3J5LWpzb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wLWNoYXQtc3RvcnktanNvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29tcC1jaGF0LXN0b3J5LWpzb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6W0NvbW1vbk1vZHVsZSxGb3Jtc01vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgSW9uSXRlbSxJb25MYWJlbCxJb25JY29uLElvbkxpc3QsSW9uQ2FyZCxJb25DYXJkSGVhZGVyLElvbkNhcmRUaXRsZSxJb25DYXJkU3VidGl0bGUsSW9uQ2FyZENvbnRlbnQsSW9uTm90ZSxcclxuICAgIElvbkl0ZW1Hcm91cCxJb25JdGVtRGl2aWRlcixJb25DaGlwLFxyXG4gICAgSW9uVGV4dGFyZWEsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBOelBpcGVzTW9kdWxlLEZpbGV0eXBlUGlwZVxyXG5cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21wQ2hhdFN0b3J5SnNvbkNvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBzdG9yeTpQYXJzZS5PYmplY3R8dW5kZWZpbmVkXHJcbiAgQElucHV0KCkgcGVyc29uOlBhcnNlLk9iamVjdHx1bmRlZmluZWRcclxuXHJcbiAgQElucHV0KClcclxuICBzaG93SGVhZGVyOmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1vZGFsQ3RybDpNb2RhbENvbnRyb2xsZXJcclxuICApIHsgXHJcbiAgfVxyXG4gIGJhY2soKXtcclxuICAgIHRoaXMubW9kYWxDdHJsLmRpc21pc3MoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYodGhpcy5zdG9yeT8uZ2V0KFwicGVyc29uXCIpPy5pZCl7XHJcbiAgICAgIGlmKHRoaXMuc3Rvcnk/LmdldChcInBlcnNvblwiKT8uZ2V0KFwibmFtZVwiKSl7XHJcbiAgICAgICAgdGhpcy5wZXJzb24gPSB0aGlzLnN0b3J5Py5nZXQoXCJwZXJzb25cIilcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiQGlmKHNob3dIZWFkZXIpe1xyXG4gIDxkaXYgY2xhc3M9XCJmaWxlYmFyXCI+XHJcbiAgICA8IS0tIOaWh+S7tuS/oeaBryAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIiBzdHlsZT1cImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgIDwhLS0g5Zu+5qCHK+Wkp+WwjyAtLT5cclxuICAgICAgICA8aW9uLWljb24gW3NyY109XCInLmNoYXQnfGZpbGV0eXBlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpemVcIj57e3N0b3J5Py5nZXQoXCJjaGF0U2Vzc2lvblwiKT8uZ2V0KFwibWVzc2FnZUxpc3RcIik/Lmxlbmd0aCB9feadoTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSDmoIfpopggLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICB7e3N0b3J5Py5nZXQoXCJ0aXRsZVwiKXx8J+acquWRveWQjSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIOaTjeS9nOWMuuWfnyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgc3R5bGU9XCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCI+XHJcbiAgICAgICAgPCEtLSDlhbPpl60gLS0+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJiYWNrKClcIiBhcmlhLWxhYmVsPVwi6aKE6KeIXCI+XHJcbiAgICAgICAgICAgIOWFs+mXrVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yeT8uZ2V0KCdjb250ZW50SnNvbicpXCI+XHJcbiAgPGRpdiBbc3R5bGUub3ZlcmZsb3dZXT1cIidhdXRvJ1wiPlxyXG5cclxuICA8IS0tIOmHh+iuv+S4u+mimCAtLT5cclxuICA8aW9uLWl0ZW0+XHJcbiAgICA8aW9uLWxhYmVsPuS4u+mimDwvaW9uLWxhYmVsPlxyXG4gICAge3tzdG9yeT8uZ2V0KCdjb250ZW50SnNvbicpPy50aXRsZX19XHJcbiAgPC9pb24taXRlbT5cclxuICA8aW9uLWl0ZW0+XHJcbiAgICA8aW9uLWxhYmVsPuagh+etvjwvaW9uLWxhYmVsPlxyXG4gICAgPGlvbi1jaGlwICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN0b3J5Py5nZXQoJ2NvbnRlbnRKc29uJyk/LmtleXdvcmRzXCIgY29sb3I9XCJzdWNjZXNzXCI+e3tpdGVtfX08L2lvbi1jaGlwPlxyXG4gIDwvaW9uLWl0ZW0+XHJcbiAgPGlvbi1pdGVtPlxyXG4gICAgPGlvbi10ZXh0YXJlYSBsYWJlbD1cIuamgui/sFwiIFtyZWFkb25seV09XCJ0cnVlXCIgW2F1dG9Hcm93XT1cInRydWVcIiBbbmdNb2RlbF09XCJzdG9yeT8uZ2V0KCdjb250ZW50SnNvbicpPy5kZXNjXCI+PC9pb24tdGV4dGFyZWE+XHJcbiAgPC9pb24taXRlbT5cclxuXHJcbiAgPCEtLSDor53popjljaHniYcgLS0+XHJcbiAgPGlvbi1saXN0PlxyXG4gICAgPGlvbi1jYXJkIGNvbG9yPVwicHJpbWFyeVwiICpuZ0Zvcj1cImxldCB0b3BpYyBvZiBzdG9yeT8uZ2V0KCdjb250ZW50SnNvbicpPy50b3BpY3N8fFtdO2xldCBpbmRleCA9IGluZGV4O1wiPlxyXG4gICAgICA8aW9uLWNhcmQtaGVhZGVyPlxyXG4gICAgICAgIDxpb24tY2FyZC10aXRsZT7or53poph7e2luZGV4KzF9fS57eyB0b3BpYy50aXRsZSB9fTwvaW9uLWNhcmQtdGl0bGU+XHJcbiAgICAgICAgPGlvbi1jYXJkLXN1YnRpdGxlPjxpb24tY2hpcCAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0b3BpYy5rZXl3b3Jkc1wiIGNvbG9yPVwid2FybmluZ1wiPnt7aXRlbX19PC9pb24tY2hpcD48L2lvbi1jYXJkLXN1YnRpdGxlPlxyXG4gICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cclxuICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgICAgPHA+e3sgdG9waWMuY29udGVudCB9fTwvcD5cclxuICAgICAgICA8aW9uLWxpc3Q+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBxYSBvZiB0b3BpYy5saXN0XCI+XHJcbiAgICAgICAgICAgIDxpb24taXRlbSA+XHJcbiAgICAgICAgICAgICAgPGlvbi1ub3RlIHNsb3Q9XCJzdGFydFwiIGNvbG9yPVwibWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICDpl65cclxuICAgICAgICAgICAgICA8L2lvbi1ub3RlPlxyXG4gICAgICAgICAgICAgIDxpb24tbGFiZWw+XHJcbiAgICAgICAgICAgICAgICB7eyBxYS5xIH19XHJcbiAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XHJcbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgICAgIDxpb24taXRlbSA+XHJcbiAgICAgICAgICAgICAgPGlvbi1sYWJlbD5cclxuICAgICAgICAgICAgICAgIHt7IHFhLmEgfX1cclxuICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cclxuICAgICAgICAgICAgICA8aW9uLW5vdGUgc2xvdD1cImVuZFwiIGNvbG9yPVwibWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICDnrZRcclxuICAgICAgICAgICAgICA8L2lvbi1ub3RlPlxyXG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPC9pb24tbGlzdD5cclxuICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxyXG4gICAgPC9pb24tY2FyZD5cclxuICA8L2lvbi1saXN0PlxyXG4gIDxpb24tbGlzdD5cclxuICAgICAgPGlvbi1pdGVtLWdyb3VwICpuZ0lmPVwicGVyc29uXCI+XHJcbiAgICAgICAgPGlvbi1pdGVtPlxyXG4gICAgICAgICAgPGlvbi1sYWJlbCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyO1wiPuW7tuS8uOmXrumimDwvaW9uLWxhYmVsPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgICAgPGlvbi1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIHN0b3J5Py5nZXQoJ2NvbnRlbnRKc29uJyk/LnF1ZXN0aW9uc3x8W107bGV0IGluZGV4ID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICB7e2luZGV4KzF9fXt7aXRlbX19XHJcbiAgICAgICAgPC9pb24taXRlbT5cclxuICAgICAgPC9pb24taXRlbS1ncm91cD5cclxuICA8L2lvbi1saXN0PlxyXG48L2Rpdj5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
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/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs
|
|
7
|
+
*/
|
|
8
|
+
import{CommonModule}from"@angular/common";import{Component,Input}from"@angular/core";import{FormsModule,ReactiveFormsModule}from"@angular/forms";import{MatButtonModule}from"@angular/material/button";import{IonItem,IonLabel,IonIcon,IonCardSubtitle,IonCardContent,IonList,IonCard,IonCardTitle,IonNote,IonCardHeader,IonItemGroup,IonItemDivider,IonChip,IonTextarea,ModalController}from"@ionic/angular/standalone";import{NzPipesModule}from"ng-zorro-antd/pipes";import{FiletypePipe}from"../../../../icon/filetype";import{FmodeObject}from"@fmode/parse";import*as i0 from"@angular/core";import*as i1 from"@ionic/angular/standalone";import*as i2 from"@angular/common";import*as i3 from"@angular/forms";import*as i4 from"@angular/material/button";export class CompChatStoryJsonComponent{constructor(n){this.modalCtrl=n,this.showHeader=!1}back(){this.modalCtrl.dismiss()}ngOnInit(){this.story?.get("person")?.id&&this.story?.get("person")?.get("name")&&(this.person=this.story?.get("person"))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:CompChatStoryJsonComponent,deps:[{token:i1.ModalController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"17.3.12",type:CompChatStoryJsonComponent,isStandalone:!0,selector:"comp-chat-story-json",inputs:{story:"story",person:"person",showHeader:"showHeader"},ngImport:i0,template:'@if(showHeader){\n <div class="filebar">\n \x3c!-- 文件信息 --\x3e\n <div class="file-info" style="display:flex;align-items:center;">\n \x3c!-- 图标+大小 --\x3e\n <ion-icon [src]="\'.chat\'|filetype"></ion-icon>\n <span class="size">{{story?.get("chatSession")?.get("messageList")?.length }}条</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{story?.get("title")||\'未命名\'}}\n </div>\n \x3c!-- 操作区域 --\x3e\n <div class="actions" style="display:flex;align-items:center;justify-content: flex-end;">\n \x3c!-- 关闭 --\x3e\n <button mat-button (click)="back()" aria-label="预览">\n 关闭\n </button>\n </div>\n</div>\n}\n<ng-container *ngIf="story?.get(\'contentJson\')">\n <div [style.overflowY]="\'auto\'">\n\n \x3c!-- 采访主题 --\x3e\n <ion-item>\n <ion-label>主题</ion-label>\n {{story?.get(\'contentJson\')?.title}}\n </ion-item>\n <ion-item>\n <ion-label>标签</ion-label>\n <ion-chip *ngFor="let item of story?.get(\'contentJson\')?.keywords" color="success">{{item}}</ion-chip>\n </ion-item>\n <ion-item>\n <ion-textarea label="概述" [readonly]="true" [autoGrow]="true" [ngModel]="story?.get(\'contentJson\')?.desc"></ion-textarea>\n </ion-item>\n\n \x3c!-- 话题卡片 --\x3e\n <ion-list>\n <ion-card color="primary" *ngFor="let topic of story?.get(\'contentJson\')?.topics||[];let index = index;">\n <ion-card-header>\n <ion-card-title>话题{{index+1}}.{{ topic.title }}</ion-card-title>\n <ion-card-subtitle><ion-chip *ngFor="let item of topic.keywords" color="warning">{{item}}</ion-chip></ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p>{{ topic.content }}</p>\n <ion-list>\n <ng-container *ngFor="let qa of topic.list">\n <ion-item >\n <ion-note slot="start" color="medium">\n 问\n </ion-note>\n <ion-label>\n {{ qa.q }}\n </ion-label>\n </ion-item>\n <ion-item >\n <ion-label>\n {{ qa.a }}\n </ion-label>\n <ion-note slot="end" color="medium">\n 答\n </ion-note>\n </ion-item>\n </ng-container>\n \n </ion-list>\n </ion-card-content>\n </ion-card>\n </ion-list>\n <ion-list>\n <ion-item-group *ngIf="person">\n <ion-item>\n <ion-label style="text-align:center;">延伸问题</ion-label>\n </ion-item>\n <ion-item *ngFor="let item of story?.get(\'contentJson\')?.questions||[];let index = index;">\n {{index+1}}{{item}}\n </ion-item>\n </ion-item-group>\n </ion-list>\n</div>\n\n</ng-container>',styles:[".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\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:"ngmodule",type:FormsModule},{kind:"directive",type:i3.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{kind:"directive",type:i3.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{kind:"ngmodule",type:ReactiveFormsModule},{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:IonLabel,selector:"ion-label",inputs:["color","mode","position"]},{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:IonCard,selector:"ion-card",inputs:["button","color","disabled","download","href","mode","rel","routerAnimation","routerDirection","target","type"]},{kind:"component",type:IonCardHeader,selector:"ion-card-header",inputs:["color","mode","translucent"]},{kind:"component",type:IonCardTitle,selector:"ion-card-title",inputs:["color","mode"]},{kind:"component",type:IonCardSubtitle,selector:"ion-card-subtitle",inputs:["color","mode"]},{kind:"component",type:IonCardContent,selector:"ion-card-content",inputs:["mode"]},{kind:"component",type:IonNote,selector:"ion-note",inputs:["color","mode"]},{kind:"component",type:IonItemGroup,selector:"ion-item-group"},{kind:"component",type:IonChip,selector:"ion-chip",inputs:["color","disabled","mode","outline"]},{kind:"component",type:IonTextarea,selector:"ion-textarea",inputs:["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"]},{kind:"ngmodule",type:MatButtonModule},{kind:"component",type:i4.MatButton,selector:" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ",exportAs:["matButton"]},{kind:"ngmodule",type:NzPipesModule},{kind:"pipe",type:FiletypePipe,name:"filetype"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:CompChatStoryJsonComponent,decorators:[{type:Component,args:[{selector:"comp-chat-story-json",standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonItem,IonLabel,IonIcon,IonList,IonCard,IonCardHeader,IonCardTitle,IonCardSubtitle,IonCardContent,IonNote,IonItemGroup,IonItemDivider,IonChip,IonTextarea,MatButtonModule,NzPipesModule,FiletypePipe],template:'@if(showHeader){\n <div class="filebar">\n \x3c!-- 文件信息 --\x3e\n <div class="file-info" style="display:flex;align-items:center;">\n \x3c!-- 图标+大小 --\x3e\n <ion-icon [src]="\'.chat\'|filetype"></ion-icon>\n <span class="size">{{story?.get("chatSession")?.get("messageList")?.length }}条</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{story?.get("title")||\'未命名\'}}\n </div>\n \x3c!-- 操作区域 --\x3e\n <div class="actions" style="display:flex;align-items:center;justify-content: flex-end;">\n \x3c!-- 关闭 --\x3e\n <button mat-button (click)="back()" aria-label="预览">\n 关闭\n </button>\n </div>\n</div>\n}\n<ng-container *ngIf="story?.get(\'contentJson\')">\n <div [style.overflowY]="\'auto\'">\n\n \x3c!-- 采访主题 --\x3e\n <ion-item>\n <ion-label>主题</ion-label>\n {{story?.get(\'contentJson\')?.title}}\n </ion-item>\n <ion-item>\n <ion-label>标签</ion-label>\n <ion-chip *ngFor="let item of story?.get(\'contentJson\')?.keywords" color="success">{{item}}</ion-chip>\n </ion-item>\n <ion-item>\n <ion-textarea label="概述" [readonly]="true" [autoGrow]="true" [ngModel]="story?.get(\'contentJson\')?.desc"></ion-textarea>\n </ion-item>\n\n \x3c!-- 话题卡片 --\x3e\n <ion-list>\n <ion-card color="primary" *ngFor="let topic of story?.get(\'contentJson\')?.topics||[];let index = index;">\n <ion-card-header>\n <ion-card-title>话题{{index+1}}.{{ topic.title }}</ion-card-title>\n <ion-card-subtitle><ion-chip *ngFor="let item of topic.keywords" color="warning">{{item}}</ion-chip></ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <p>{{ topic.content }}</p>\n <ion-list>\n <ng-container *ngFor="let qa of topic.list">\n <ion-item >\n <ion-note slot="start" color="medium">\n 问\n </ion-note>\n <ion-label>\n {{ qa.q }}\n </ion-label>\n </ion-item>\n <ion-item >\n <ion-label>\n {{ qa.a }}\n </ion-label>\n <ion-note slot="end" color="medium">\n 答\n </ion-note>\n </ion-item>\n </ng-container>\n \n </ion-list>\n </ion-card-content>\n </ion-card>\n </ion-list>\n <ion-list>\n <ion-item-group *ngIf="person">\n <ion-item>\n <ion-label style="text-align:center;">延伸问题</ion-label>\n </ion-item>\n <ion-item *ngFor="let item of story?.get(\'contentJson\')?.questions||[];let index = index;">\n {{index+1}}{{item}}\n </ion-item>\n </ion-item-group>\n </ion-list>\n</div>\n\n</ng-container>',styles:[".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\n"]}]}],ctorParameters:()=>[{type:i1.ModalController}],propDecorators:{story:[{type:Input}],person:[{type:Input}],showHeader:[{type:Input}]}});
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL3N0b3J5L21vZGFsLWNoYXQtc3RvcnkvY29tcC1jaGF0LXN0b3J5LWpzb24vY29tcC1jaGF0LXN0b3J5LWpzb24uY29tcG9uZW50Lm1qcw==`
|
|
10
|
+
|
package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs
CHANGED
|
@@ -1,95 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import { FmTextQuillComponent } from '../../../../text/fm-text-quill/fm-text-quill.component';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import * as i1 from "@ionic/angular/standalone";
|
|
12
|
-
import * as i2 from "@angular/common";
|
|
13
|
-
import * as i3 from "@angular/forms";
|
|
14
|
-
import * as i4 from "@angular/material/button";
|
|
15
|
-
export class CompDiaryStoryComponent {
|
|
16
|
-
constructor(modalCtrl, cdRef) {
|
|
17
|
-
this.modalCtrl = modalCtrl;
|
|
18
|
-
this.cdRef = cdRef;
|
|
19
|
-
this.showHeader = false;
|
|
20
|
-
this.readOnly = false;
|
|
21
|
-
this.contentChanged = false;
|
|
22
|
-
this.showInfo = false;
|
|
23
|
-
this.now = new Date();
|
|
24
|
-
this.toolbar = [
|
|
25
|
-
[{ 'header': [1, 2, 3, 4, false] }],
|
|
26
|
-
['bold', 'italic', 'underline'],
|
|
27
|
-
// [{ 'font': [] }],
|
|
28
|
-
[{ 'list': 'bullet' }],
|
|
29
|
-
[{ 'align': [] }]
|
|
30
|
-
];
|
|
31
|
-
this.selectText = ``;
|
|
32
|
-
}
|
|
33
|
-
back() {
|
|
34
|
-
this.modalCtrl.dismiss();
|
|
35
|
-
}
|
|
36
|
-
ngOnInit() {
|
|
37
|
-
if (this.story?.get("person")?.id) {
|
|
38
|
-
if (this.story?.get("person")?.get("name")) {
|
|
39
|
-
this.person = this.story?.get("person");
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
selectChange(event) {
|
|
44
|
-
this.selectRange = event?.range;
|
|
45
|
-
this.selectText = event?.text;
|
|
46
|
-
this.selectQuill = event?.quill;
|
|
47
|
-
this.cdRef.detectChanges();
|
|
48
|
-
}
|
|
49
|
-
// 润色被点击
|
|
50
|
-
goOptimizeText(event) {
|
|
51
|
-
this.selectChange(event);
|
|
52
|
-
// this.aitab = "AI润色"
|
|
53
|
-
// this.optimizeContent();
|
|
54
|
-
}
|
|
55
|
-
// 内容变动
|
|
56
|
-
setContent(content, arrayItem) {
|
|
57
|
-
if (arrayItem) {
|
|
58
|
-
arrayItem.content = content;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
this.story?.set('content', content);
|
|
62
|
-
// let contentJson = this.story?.get('contentjson');
|
|
63
|
-
// contentJson.content = content
|
|
64
|
-
// this.story?.set('contentjson',contentJson);
|
|
65
|
-
}
|
|
66
|
-
this.contentChanged = true;
|
|
67
|
-
}
|
|
68
|
-
save() {
|
|
69
|
-
this.contentChanged = false;
|
|
70
|
-
this.story?.save();
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompDiaryStoryComponent, deps: [{ token: i1.ModalController }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CompDiaryStoryComponent, isStandalone: true, selector: "comp-diary-story", inputs: { story: "story", person: "person", showHeader: "showHeader", readOnly: "readOnly" }, ngImport: i0, template: "@if(showHeader){\r\n <div class=\"filebar\">\r\n <!-- \u6587\u4EF6\u4FE1\u606F -->\r\n <div class=\"file-info\" style=\"display:flex;align-items:center;\">\r\n <!-- \u56FE\u6807+\u5927\u5C0F -->\r\n <ion-icon [src]=\"'.chat'|filetype\"></ion-icon>\r\n <span class=\"size\">{{story?.get(\"chatSession\")?.get(\"messageList\")?.length }}\u6761</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{story?.get(\"title\")||'\u672A\u547D\u540D'}}\r\n </div>\r\n <!-- \u64CD\u4F5C\u533A\u57DF -->\r\n <div class=\"actions\" style=\"display:flex;align-items:center;justify-content: flex-end;\">\r\n <!-- \u5173\u95ED -->\r\n <button mat-button (click)=\"back()\" aria-label=\"\u9884\u89C8\">\r\n \u5173\u95ED\r\n </button>\r\n </div>\r\n</div>\r\n}\r\n<ng-container *ngIf=\"story?.get('contentJson')\">\r\n <div [style.overflowY]=\"'auto'\">\r\n\r\n @if(showInfo){\r\n\r\n @if(person?.id){\r\n <fm-comp-person-item [person]=\"person\"></fm-comp-person-item>\r\n }\r\n <!-- \u91C7\u8BBF\u4E3B\u9898 -->\r\n <!-- <ion-item>\r\n <ion-label>\u4E3B\u9898</ion-label>\r\n {{story?.get('contentJson')?.title}}\r\n </ion-item> -->\r\n <ion-item>\r\n <ion-label>\u65E5\u671F</ion-label>\r\n {{(story?.get(\"recordDate\") || now) | date:\"yy/MM/dd HH:mm\"}}\r\n </ion-item>\r\n <ion-item>\r\n <ion-label>\u6807\u7B7E</ion-label>\r\n <ion-chip *ngFor=\"let item of story?.get('contentJson')?.keywords\" color=\"success\">{{item}}</ion-chip>\r\n </ion-item>\r\n <ion-item>\r\n <ion-textarea label=\"\u6982\u8FF0\" [readonly]=\"true\" [autoGrow]=\"true\" [ngModel]=\"story?.get('contentJson')?.desc\"></ion-textarea>\r\n </ion-item>\r\n }\r\n\r\n <ion-list>\r\n <ion-item-group>\r\n <ion-item>\r\n <ion-label style=\"position: absolute;left: 0;width:50px;\">\u4E3B\u9898</ion-label>\r\n <ion-label style=\"text-align:center;\">{{story?.get('contentJson')?.title}}</ion-label>\r\n <ion-button (click)=\"showInfo=!showInfo\" style=\"position: absolute;right: 0;\">{{showInfo?\"\u6298\u53E0\":\"\u5C55\u5F00\"}}</ion-button>\r\n <ion-button *ngIf=\"contentChanged\" (click)=\"save()\" style=\"position: absolute;right: 0;\" [style.marginRight]=\"showInfo?'50px':'0px'\">\u4FDD\u5B58</ion-button>\r\n </ion-item>\r\n </ion-item-group>\r\n @if(story?.get('content')){\r\n <fm-text-quill #textQuill [theme]=\"'snow'\" [toolbar]=\"toolbar\" [readOnly]=\"readOnly\" [content]=\"story?.get('content')\" (onContentChange)=\"setContent($event)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n }\r\n </ion-list>\r\n</div>\r\n\r\n</ng-container>", styles: [".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\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: "pipe", type: i2.DatePipe, name: "date" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { 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: IonItemGroup, selector: "ion-item-group" }, { kind: "component", type: IonChip, selector: "ion-chip", inputs: ["color", "disabled", "mode", "outline"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: NzPipesModule }, { kind: "pipe", type: FiletypePipe, name: "filetype" }, { kind: "component", type: FmTextQuillComponent, selector: "fm-text-quill", inputs: ["readOnly", "content", "theme", "toolbar"], outputs: ["onAIClick", "onContentChange", "onSelectChange"] }, { kind: "component", type: CompPersonItemComponent, selector: "fm-comp-person-item", inputs: ["person"] }] }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CompDiaryStoryComponent, decorators: [{
|
|
76
|
-
type: Component,
|
|
77
|
-
args: [{ selector: 'comp-diary-story', standalone: true, imports: [CommonModule, FormsModule, ReactiveFormsModule,
|
|
78
|
-
IonItem, IonLabel, IonIcon, IonList, IonCard, IonCardHeader, IonCardTitle, IonCardSubtitle, IonCardContent, IonNote,
|
|
79
|
-
IonItemGroup, IonItemDivider, IonChip, IonButton,
|
|
80
|
-
IonTextarea,
|
|
81
|
-
MatButtonModule,
|
|
82
|
-
NzPipesModule, FiletypePipe,
|
|
83
|
-
FmTextQuillComponent,
|
|
84
|
-
CompPersonItemComponent
|
|
85
|
-
], template: "@if(showHeader){\r\n <div class=\"filebar\">\r\n <!-- \u6587\u4EF6\u4FE1\u606F -->\r\n <div class=\"file-info\" style=\"display:flex;align-items:center;\">\r\n <!-- \u56FE\u6807+\u5927\u5C0F -->\r\n <ion-icon [src]=\"'.chat'|filetype\"></ion-icon>\r\n <span class=\"size\">{{story?.get(\"chatSession\")?.get(\"messageList\")?.length }}\u6761</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{story?.get(\"title\")||'\u672A\u547D\u540D'}}\r\n </div>\r\n <!-- \u64CD\u4F5C\u533A\u57DF -->\r\n <div class=\"actions\" style=\"display:flex;align-items:center;justify-content: flex-end;\">\r\n <!-- \u5173\u95ED -->\r\n <button mat-button (click)=\"back()\" aria-label=\"\u9884\u89C8\">\r\n \u5173\u95ED\r\n </button>\r\n </div>\r\n</div>\r\n}\r\n<ng-container *ngIf=\"story?.get('contentJson')\">\r\n <div [style.overflowY]=\"'auto'\">\r\n\r\n @if(showInfo){\r\n\r\n @if(person?.id){\r\n <fm-comp-person-item [person]=\"person\"></fm-comp-person-item>\r\n }\r\n <!-- \u91C7\u8BBF\u4E3B\u9898 -->\r\n <!-- <ion-item>\r\n <ion-label>\u4E3B\u9898</ion-label>\r\n {{story?.get('contentJson')?.title}}\r\n </ion-item> -->\r\n <ion-item>\r\n <ion-label>\u65E5\u671F</ion-label>\r\n {{(story?.get(\"recordDate\") || now) | date:\"yy/MM/dd HH:mm\"}}\r\n </ion-item>\r\n <ion-item>\r\n <ion-label>\u6807\u7B7E</ion-label>\r\n <ion-chip *ngFor=\"let item of story?.get('contentJson')?.keywords\" color=\"success\">{{item}}</ion-chip>\r\n </ion-item>\r\n <ion-item>\r\n <ion-textarea label=\"\u6982\u8FF0\" [readonly]=\"true\" [autoGrow]=\"true\" [ngModel]=\"story?.get('contentJson')?.desc\"></ion-textarea>\r\n </ion-item>\r\n }\r\n\r\n <ion-list>\r\n <ion-item-group>\r\n <ion-item>\r\n <ion-label style=\"position: absolute;left: 0;width:50px;\">\u4E3B\u9898</ion-label>\r\n <ion-label style=\"text-align:center;\">{{story?.get('contentJson')?.title}}</ion-label>\r\n <ion-button (click)=\"showInfo=!showInfo\" style=\"position: absolute;right: 0;\">{{showInfo?\"\u6298\u53E0\":\"\u5C55\u5F00\"}}</ion-button>\r\n <ion-button *ngIf=\"contentChanged\" (click)=\"save()\" style=\"position: absolute;right: 0;\" [style.marginRight]=\"showInfo?'50px':'0px'\">\u4FDD\u5B58</ion-button>\r\n </ion-item>\r\n </ion-item-group>\r\n @if(story?.get('content')){\r\n <fm-text-quill #textQuill [theme]=\"'snow'\" [toolbar]=\"toolbar\" [readOnly]=\"readOnly\" [content]=\"story?.get('content')\" (onContentChange)=\"setContent($event)\"\r\n (onAIClick)=\"goOptimizeText($event)\" (onSelectChange)=\"selectChange($event)\"\r\n ></fm-text-quill>\r\n }\r\n </ion-list>\r\n</div>\r\n\r\n</ng-container>", styles: [".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\n"] }]
|
|
86
|
-
}], ctorParameters: () => [{ type: i1.ModalController }, { type: i0.ChangeDetectorRef }], propDecorators: { story: [{
|
|
87
|
-
type: Input
|
|
88
|
-
}], person: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], showHeader: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], readOnly: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}] } });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcC1kaWFyeS1zdG9yeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2Mvc3RvcnkvbW9kYWwtY2hhdC1zdG9yeS9jb21wLWRpYXJ5LXN0b3J5L2NvbXAtZGlhcnktc3RvcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL3N0b3J5L21vZGFsLWNoYXQtc3RvcnkvY29tcC1kaWFyeS1zdG9yeS9jb21wLWRpYXJ5LXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5TyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzlGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7QUFrQjNELE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLFlBQ1UsU0FBeUIsRUFDekIsS0FBdUI7UUFEdkIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFsQmpDLGVBQVUsR0FBVyxLQUFLLENBQUM7UUFHM0IsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUN6QixtQkFBYyxHQUFXLEtBQUssQ0FBQztRQUUvQixhQUFRLEdBQVcsS0FBSyxDQUFDO1FBRXpCLFFBQUcsR0FBUSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLFlBQU8sR0FBZTtZQUNwQixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztZQUMvQixvQkFBb0I7WUFDcEIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1NBQ2xCLENBQUE7UUFxQkQsZUFBVSxHQUFXLEVBQUUsQ0FBQTtJQWhCdkIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUMsQ0FBQztZQUNoQyxJQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDO2dCQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQ3pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQU9ELFlBQVksQ0FBQyxLQUFVO1FBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLEtBQUssQ0FBQTtRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFBO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELFFBQVE7SUFDUixjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3hCLHNCQUFzQjtRQUN0QiwwQkFBMEI7SUFDNUIsQ0FBQztJQUVELE9BQU87SUFDUCxVQUFVLENBQUMsT0FBWSxFQUFFLFNBQWU7UUFDdEMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRW5DLG9EQUFvRDtZQUNwRCxnQ0FBZ0M7WUFDaEMsOENBQThDO1FBQ2hELENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQzsrR0F6RVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsMEtDM0JwQywyeUZBZ0VlLDhlRGhESixZQUFZLGtUQUFDLFdBQVcsOFZBQUMsbUJBQW1CLCtCQUNuRCxPQUFPLDBOQUFDLFFBQVEsNkZBQUMsT0FBTywySkFBQyxPQUFPLHlGQUNoQyxZQUFZLDJEQUFnQixPQUFPLHVHQUFDLFNBQVMsb1BBQzdDLFdBQVcsZ2FBQ1gsZUFBZSwyTkFDZixhQUFhLDBCQUFDLFlBQVksaURBQzFCLG9CQUFvQiw0S0FDcEIsdUJBQXVCOzs0RkFJZCx1QkFBdUI7a0JBaEJuQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1IsQ0FBQyxZQUFZLEVBQUMsV0FBVyxFQUFDLG1CQUFtQjt3QkFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxjQUFjLEVBQUMsT0FBTzt3QkFDMUcsWUFBWSxFQUFDLGNBQWMsRUFBQyxPQUFPLEVBQUMsU0FBUzt3QkFDN0MsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGFBQWEsRUFBQyxZQUFZO3dCQUMxQixvQkFBb0I7d0JBQ3BCLHVCQUF1QjtxQkFFeEI7b0hBSVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgSW9uSXRlbSxJb25MYWJlbCxJb25JY29uLCBJb25DYXJkU3VidGl0bGUsIElvbkNhcmRDb250ZW50LCBJb25MaXN0LCBJb25DYXJkLCBJb25DYXJkVGl0bGUsIElvbk5vdGUsIElvbkNhcmRIZWFkZXIsIElvbkl0ZW1Hcm91cCwgSW9uSXRlbURpdmlkZXIsIElvbkNoaXAsIElvblRleHRhcmVhLCBNb2RhbENvbnRyb2xsZXIsIElvbkJ1dHRvbiB9IGZyb20gXCJAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lXCI7XHJcbmltcG9ydCB7IE56UGlwZXNNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3BpcGVzJztcclxuaW1wb3J0IHsgRmlsZXR5cGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaWNvbi9maWxldHlwZSc7XHJcbmltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XHJcbmltcG9ydCB7IEZtVGV4dFF1aWxsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vdGV4dC9mbS10ZXh0LXF1aWxsL2ZtLXRleHQtcXVpbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21wUGVyc29uSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uLy4uL3BlcnNvblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb21wLWRpYXJ5LXN0b3J5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcC1kaWFyeS1zdG9yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29tcC1kaWFyeS1zdG9yeS5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czpbQ29tbW9uTW9kdWxlLEZvcm1zTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBJb25JdGVtLElvbkxhYmVsLElvbkljb24sSW9uTGlzdCxJb25DYXJkLElvbkNhcmRIZWFkZXIsSW9uQ2FyZFRpdGxlLElvbkNhcmRTdWJ0aXRsZSxJb25DYXJkQ29udGVudCxJb25Ob3RlLFxyXG4gICAgSW9uSXRlbUdyb3VwLElvbkl0ZW1EaXZpZGVyLElvbkNoaXAsSW9uQnV0dG9uLFxyXG4gICAgSW9uVGV4dGFyZWEsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBOelBpcGVzTW9kdWxlLEZpbGV0eXBlUGlwZSxcclxuICAgIEZtVGV4dFF1aWxsQ29tcG9uZW50LFxyXG4gICAgQ29tcFBlcnNvbkl0ZW1Db21wb25lbnQgICAgXHJcblxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbXBEaWFyeVN0b3J5Q29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHN0b3J5OlBhcnNlLk9iamVjdHx1bmRlZmluZWRcclxuICBASW5wdXQoKSBwZXJzb246UGFyc2UuT2JqZWN0fHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dIZWFkZXI6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlYWRPbmx5OmJvb2xlYW4gPSBmYWxzZTtcclxuICBjb250ZW50Q2hhbmdlZDpib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHNob3dJbmZvOmJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbm93OkRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIHRvb2xiYXI6QXJyYXk8YW55PiA9ICBbXHJcbiAgICBbeyAnaGVhZGVyJzogWzEsIDIsIDMsIDQsIGZhbHNlXSB9XSxcclxuICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJ10sXHJcbiAgICAvLyBbeyAnZm9udCc6IFtdIH1dLFxyXG4gICAgW3sgJ2xpc3QnOiAnYnVsbGV0JyB9XSxcclxuICAgIFt7ICdhbGlnbic6IFtdIH1dXHJcbiAgXVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtb2RhbEN0cmw6TW9kYWxDb250cm9sbGVyLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkgeyBcclxuICB9XHJcbiAgYmFjaygpe1xyXG4gICAgdGhpcy5tb2RhbEN0cmwuZGlzbWlzcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZih0aGlzLnN0b3J5Py5nZXQoXCJwZXJzb25cIik/LmlkKXtcclxuICAgICAgaWYodGhpcy5zdG9yeT8uZ2V0KFwicGVyc29uXCIpPy5nZXQoXCJuYW1lXCIpKXtcclxuICAgICAgICB0aGlzLnBlcnNvbiA9IHRoaXMuc3Rvcnk/LmdldChcInBlcnNvblwiKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyDpgInmi6nlj5jliqhcclxuICAvKirmrrXokL3lhoXlrrnvvJrpgInkuK3lj4rmtqboibIgKi9cclxuICBzZWxlY3RRdWlsbDogUXVpbGwgfCB1bmRlZmluZWRcclxuICBzZWxlY3RUZXh0OiBzdHJpbmcgPSBgYFxyXG4gIHNlbGVjdFJhbmdlOiBSYW5nZSB8IHVuZGVmaW5lZFxyXG4gIHNlbGVjdENoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdFJhbmdlID0gZXZlbnQ/LnJhbmdlXHJcbiAgICB0aGlzLnNlbGVjdFRleHQgPSBldmVudD8udGV4dFxyXG4gICAgdGhpcy5zZWxlY3RRdWlsbCA9IGV2ZW50Py5xdWlsbFxyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIOa2puiJsuiiq+eCueWHu1xyXG4gIGdvT3B0aW1pemVUZXh0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0Q2hhbmdlKGV2ZW50KVxyXG4gICAgLy8gdGhpcy5haXRhYiA9IFwiQUnmtqboibJcIlxyXG4gICAgLy8gdGhpcy5vcHRpbWl6ZUNvbnRlbnQoKTtcclxuICB9XHJcblxyXG4gIC8vIOWGheWuueWPmOWKqFxyXG4gIHNldENvbnRlbnQoY29udGVudDogYW55LCBhcnJheUl0ZW0/OiBhbnkpIHtcclxuICAgIGlmIChhcnJheUl0ZW0pIHtcclxuICAgICAgYXJyYXlJdGVtLmNvbnRlbnQgPSBjb250ZW50XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN0b3J5Py5zZXQoJ2NvbnRlbnQnLGNvbnRlbnQpO1xyXG5cclxuICAgICAgLy8gbGV0IGNvbnRlbnRKc29uID0gdGhpcy5zdG9yeT8uZ2V0KCdjb250ZW50anNvbicpO1xyXG4gICAgICAvLyBjb250ZW50SnNvbi5jb250ZW50ID0gY29udGVudFxyXG4gICAgICAvLyB0aGlzLnN0b3J5Py5zZXQoJ2NvbnRlbnRqc29uJyxjb250ZW50SnNvbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRlbnRDaGFuZ2VkID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpe1xyXG4gICAgdGhpcy5jb250ZW50Q2hhbmdlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5zdG9yeT8uc2F2ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiQGlmKHNob3dIZWFkZXIpe1xyXG4gIDxkaXYgY2xhc3M9XCJmaWxlYmFyXCI+XHJcbiAgICA8IS0tIOaWh+S7tuS/oeaBryAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWluZm9cIiBzdHlsZT1cImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7XCI+XHJcbiAgICAgIDwhLS0g5Zu+5qCHK+Wkp+WwjyAtLT5cclxuICAgICAgICA8aW9uLWljb24gW3NyY109XCInLmNoYXQnfGZpbGV0eXBlXCI+PC9pb24taWNvbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNpemVcIj57e3N0b3J5Py5nZXQoXCJjaGF0U2Vzc2lvblwiKT8uZ2V0KFwibWVzc2FnZUxpc3RcIik/Lmxlbmd0aCB9feadoTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSDmoIfpopggLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICB7e3N0b3J5Py5nZXQoXCJ0aXRsZVwiKXx8J+acquWRveWQjSd9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIOaTjeS9nOWMuuWfnyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgc3R5bGU9XCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCI+XHJcbiAgICAgICAgPCEtLSDlhbPpl60gLS0+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJiYWNrKClcIiBhcmlhLWxhYmVsPVwi6aKE6KeIXCI+XHJcbiAgICAgICAgICAgIOWFs+mXrVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJzdG9yeT8uZ2V0KCdjb250ZW50SnNvbicpXCI+XHJcbiAgPGRpdiBbc3R5bGUub3ZlcmZsb3dZXT1cIidhdXRvJ1wiPlxyXG5cclxuICAgIEBpZihzaG93SW5mbyl7XHJcblxyXG4gICAgICBAaWYocGVyc29uPy5pZCl7XHJcbiAgICAgICAgPGZtLWNvbXAtcGVyc29uLWl0ZW0gW3BlcnNvbl09XCJwZXJzb25cIj48L2ZtLWNvbXAtcGVyc29uLWl0ZW0+XHJcbiAgICAgIH1cclxuICAgIDwhLS0g6YeH6K6/5Li76aKYIC0tPlxyXG4gICAgPCEtLSA8aW9uLWl0ZW0+XHJcbiAgICAgIDxpb24tbGFiZWw+5Li76aKYPC9pb24tbGFiZWw+XHJcbiAgICAgIHt7c3Rvcnk/LmdldCgnY29udGVudEpzb24nKT8udGl0bGV9fVxyXG4gICAgPC9pb24taXRlbT4gLS0+XHJcbiAgICA8aW9uLWl0ZW0+XHJcbiAgICAgIDxpb24tbGFiZWw+5pel5pyfPC9pb24tbGFiZWw+XHJcbiAgICAgIHt7KHN0b3J5Py5nZXQoXCJyZWNvcmREYXRlXCIpIHx8IG5vdykgfCBkYXRlOlwieXkvTU0vZGQgSEg6bW1cIn19XHJcbiAgICA8L2lvbi1pdGVtPlxyXG4gICAgPGlvbi1pdGVtPlxyXG4gICAgICA8aW9uLWxhYmVsPuagh+etvjwvaW9uLWxhYmVsPlxyXG4gICAgICA8aW9uLWNoaXAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc3Rvcnk/LmdldCgnY29udGVudEpzb24nKT8ua2V5d29yZHNcIiBjb2xvcj1cInN1Y2Nlc3NcIj57e2l0ZW19fTwvaW9uLWNoaXA+XHJcbiAgICA8L2lvbi1pdGVtPlxyXG4gICAgPGlvbi1pdGVtPlxyXG4gICAgICA8aW9uLXRleHRhcmVhIGxhYmVsPVwi5qaC6L+wXCIgW3JlYWRvbmx5XT1cInRydWVcIiBbYXV0b0dyb3ddPVwidHJ1ZVwiIFtuZ01vZGVsXT1cInN0b3J5Py5nZXQoJ2NvbnRlbnRKc29uJyk/LmRlc2NcIj48L2lvbi10ZXh0YXJlYT5cclxuICAgIDwvaW9uLWl0ZW0+XHJcbiAgfVxyXG5cclxuICA8aW9uLWxpc3Q+XHJcbiAgICAgIDxpb24taXRlbS1ncm91cD5cclxuICAgICAgICA8aW9uLWl0ZW0+XHJcbiAgICAgICAgICA8aW9uLWxhYmVsIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO2xlZnQ6IDA7d2lkdGg6NTBweDtcIj7kuLvpopg8L2lvbi1sYWJlbD5cclxuICAgICAgICAgIDxpb24tbGFiZWwgc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlcjtcIj57e3N0b3J5Py5nZXQoJ2NvbnRlbnRKc29uJyk/LnRpdGxlfX08L2lvbi1sYWJlbD5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzaG93SW5mbz0hc2hvd0luZm9cIiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMDtcIj57e3Nob3dJbmZvP1wi5oqY5Y+gXCI6XCLlsZXlvIBcIn19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJjb250ZW50Q2hhbmdlZFwiIChjbGljayk9XCJzYXZlKClcIiBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTtyaWdodDogMDtcIiBbc3R5bGUubWFyZ2luUmlnaHRdPVwic2hvd0luZm8/JzUwcHgnOicwcHgnXCI+5L+d5a2YPC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICAgIDwvaW9uLWl0ZW0tZ3JvdXA+XHJcbiAgICAgQGlmKHN0b3J5Py5nZXQoJ2NvbnRlbnQnKSl7XHJcbiAgICAgICA8Zm0tdGV4dC1xdWlsbCAjdGV4dFF1aWxsIFt0aGVtZV09XCInc25vdydcIiBbdG9vbGJhcl09XCJ0b29sYmFyXCIgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgW2NvbnRlbnRdPVwic3Rvcnk/LmdldCgnY29udGVudCcpXCIgKG9uQ29udGVudENoYW5nZSk9XCJzZXRDb250ZW50KCRldmVudClcIlxyXG4gICAgICAgKG9uQUlDbGljayk9XCJnb09wdGltaXplVGV4dCgkZXZlbnQpXCIgKG9uU2VsZWN0Q2hhbmdlKT1cInNlbGVjdENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgID48L2ZtLXRleHQtcXVpbGw+XHJcbiAgICAgIH1cclxuICA8L2lvbi1saXN0PlxyXG48L2Rpdj5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
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/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs
|
|
7
|
+
*/
|
|
8
|
+
import{CommonModule}from"@angular/common";import{ChangeDetectorRef,Component,Input}from"@angular/core";import{FormsModule,ReactiveFormsModule}from"@angular/forms";import{MatButtonModule}from"@angular/material/button";import{IonItem,IonLabel,IonIcon,IonCardSubtitle,IonCardContent,IonList,IonCard,IonCardTitle,IonNote,IonCardHeader,IonItemGroup,IonItemDivider,IonChip,IonTextarea,ModalController,IonButton}from"@ionic/angular/standalone";import{NzPipesModule}from"ng-zorro-antd/pipes";import{FiletypePipe}from"../../../../icon/filetype";import{FmTextQuillComponent}from"../../../../text/fm-text-quill/fm-text-quill.component";import{CompPersonItemComponent}from"../../../../person";import{FmodeObject}from"@fmode/parse";import*as i0 from"@angular/core";import*as i1 from"@ionic/angular/standalone";import*as i2 from"@angular/common";import*as i3 from"@angular/forms";import*as i4 from"@angular/material/button";export class CompDiaryStoryComponent{constructor(e,n){this.modalCtrl=e,this.cdRef=n,this.showHeader=!1,this.readOnly=!1,this.contentChanged=!1,this.showInfo=!1,this.now=new Date,this.toolbar=[[{header:[1,2,3,4,!1]}],["bold","italic","underline"],[{list:"bullet"}],[{align:[]}]],this.selectText=""}back(){this.modalCtrl.dismiss()}ngOnInit(){this.story?.get("person")?.id&&this.story?.get("person")?.get("name")&&(this.person=this.story?.get("person"))}selectChange(e){this.selectRange=e?.range,this.selectText=e?.text,this.selectQuill=e?.quill,this.cdRef.detectChanges()}goOptimizeText(e){this.selectChange(e)}setContent(e,n){n?n.content=e:this.story?.set("content",e),this.contentChanged=!0}save(){this.contentChanged=!1,this.story?.save()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:CompDiaryStoryComponent,deps:[{token:i1.ModalController},{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"17.3.12",type:CompDiaryStoryComponent,isStandalone:!0,selector:"comp-diary-story",inputs:{story:"story",person:"person",showHeader:"showHeader",readOnly:"readOnly"},ngImport:i0,template:'@if(showHeader){\n <div class="filebar">\n \x3c!-- 文件信息 --\x3e\n <div class="file-info" style="display:flex;align-items:center;">\n \x3c!-- 图标+大小 --\x3e\n <ion-icon [src]="\'.chat\'|filetype"></ion-icon>\n <span class="size">{{story?.get("chatSession")?.get("messageList")?.length }}条</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{story?.get("title")||\'未命名\'}}\n </div>\n \x3c!-- 操作区域 --\x3e\n <div class="actions" style="display:flex;align-items:center;justify-content: flex-end;">\n \x3c!-- 关闭 --\x3e\n <button mat-button (click)="back()" aria-label="预览">\n 关闭\n </button>\n </div>\n</div>\n}\n<ng-container *ngIf="story?.get(\'contentJson\')">\n <div [style.overflowY]="\'auto\'">\n\n @if(showInfo){\n\n @if(person?.id){\n <fm-comp-person-item [person]="person"></fm-comp-person-item>\n }\n \x3c!-- 采访主题 --\x3e\n \x3c!-- <ion-item>\n <ion-label>主题</ion-label>\n {{story?.get(\'contentJson\')?.title}}\n </ion-item> --\x3e\n <ion-item>\n <ion-label>日期</ion-label>\n {{(story?.get("recordDate") || now) | date:"yy/MM/dd HH:mm"}}\n </ion-item>\n <ion-item>\n <ion-label>标签</ion-label>\n <ion-chip *ngFor="let item of story?.get(\'contentJson\')?.keywords" color="success">{{item}}</ion-chip>\n </ion-item>\n <ion-item>\n <ion-textarea label="概述" [readonly]="true" [autoGrow]="true" [ngModel]="story?.get(\'contentJson\')?.desc"></ion-textarea>\n </ion-item>\n }\n\n <ion-list>\n <ion-item-group>\n <ion-item>\n <ion-label style="position: absolute;left: 0;width:50px;">主题</ion-label>\n <ion-label style="text-align:center;">{{story?.get(\'contentJson\')?.title}}</ion-label>\n <ion-button (click)="showInfo=!showInfo" style="position: absolute;right: 0;">{{showInfo?"折叠":"展开"}}</ion-button>\n <ion-button *ngIf="contentChanged" (click)="save()" style="position: absolute;right: 0;" [style.marginRight]="showInfo?\'50px\':\'0px\'">保存</ion-button>\n </ion-item>\n </ion-item-group>\n @if(story?.get(\'content\')){\n <fm-text-quill #textQuill [theme]="\'snow\'" [toolbar]="toolbar" [readOnly]="readOnly" [content]="story?.get(\'content\')" (onContentChange)="setContent($event)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n }\n </ion-list>\n</div>\n\n</ng-container>',styles:[".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\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:"pipe",type:i2.DatePipe,name:"date"},{kind:"ngmodule",type:FormsModule},{kind:"directive",type:i3.NgControlStatus,selector:"[formControlName],[ngModel],[formControl]"},{kind:"directive",type:i3.NgModel,selector:"[ngModel]:not([formControlName]):not([formControl])",inputs:["name","disabled","ngModel","ngModelOptions"],outputs:["ngModelChange"],exportAs:["ngModel"]},{kind:"ngmodule",type:ReactiveFormsModule},{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:IonLabel,selector:"ion-label",inputs:["color","mode","position"]},{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:IonItemGroup,selector:"ion-item-group"},{kind:"component",type:IonChip,selector:"ion-chip",inputs:["color","disabled","mode","outline"]},{kind:"component",type:IonButton,selector:"ion-button",inputs:["buttonType","color","disabled","download","expand","fill","form","href","mode","rel","routerAnimation","routerDirection","shape","size","strong","target","type"]},{kind:"component",type:IonTextarea,selector:"ion-textarea",inputs:["autoGrow","autocapitalize","autofocus","clearOnEdit","color","cols","counter","counterFormatter","debounce","disabled","enterkeyhint","errorText","fill","helperText","inputmode","label","labelPlacement","maxlength","minlength","mode","name","placeholder","readonly","required","rows","shape","spellcheck","value","wrap"]},{kind:"ngmodule",type:MatButtonModule},{kind:"component",type:i4.MatButton,selector:" button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ",exportAs:["matButton"]},{kind:"ngmodule",type:NzPipesModule},{kind:"pipe",type:FiletypePipe,name:"filetype"},{kind:"component",type:FmTextQuillComponent,selector:"fm-text-quill",inputs:["readOnly","content","theme","toolbar"],outputs:["onAIClick","onContentChange","onSelectChange"]},{kind:"component",type:CompPersonItemComponent,selector:"fm-comp-person-item",inputs:["person"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:CompDiaryStoryComponent,decorators:[{type:Component,args:[{selector:"comp-diary-story",standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonItem,IonLabel,IonIcon,IonList,IonCard,IonCardHeader,IonCardTitle,IonCardSubtitle,IonCardContent,IonNote,IonItemGroup,IonItemDivider,IonChip,IonButton,IonTextarea,MatButtonModule,NzPipesModule,FiletypePipe,FmTextQuillComponent,CompPersonItemComponent],template:'@if(showHeader){\n <div class="filebar">\n \x3c!-- 文件信息 --\x3e\n <div class="file-info" style="display:flex;align-items:center;">\n \x3c!-- 图标+大小 --\x3e\n <ion-icon [src]="\'.chat\'|filetype"></ion-icon>\n <span class="size">{{story?.get("chatSession")?.get("messageList")?.length }}条</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{story?.get("title")||\'未命名\'}}\n </div>\n \x3c!-- 操作区域 --\x3e\n <div class="actions" style="display:flex;align-items:center;justify-content: flex-end;">\n \x3c!-- 关闭 --\x3e\n <button mat-button (click)="back()" aria-label="预览">\n 关闭\n </button>\n </div>\n</div>\n}\n<ng-container *ngIf="story?.get(\'contentJson\')">\n <div [style.overflowY]="\'auto\'">\n\n @if(showInfo){\n\n @if(person?.id){\n <fm-comp-person-item [person]="person"></fm-comp-person-item>\n }\n \x3c!-- 采访主题 --\x3e\n \x3c!-- <ion-item>\n <ion-label>主题</ion-label>\n {{story?.get(\'contentJson\')?.title}}\n </ion-item> --\x3e\n <ion-item>\n <ion-label>日期</ion-label>\n {{(story?.get("recordDate") || now) | date:"yy/MM/dd HH:mm"}}\n </ion-item>\n <ion-item>\n <ion-label>标签</ion-label>\n <ion-chip *ngFor="let item of story?.get(\'contentJson\')?.keywords" color="success">{{item}}</ion-chip>\n </ion-item>\n <ion-item>\n <ion-textarea label="概述" [readonly]="true" [autoGrow]="true" [ngModel]="story?.get(\'contentJson\')?.desc"></ion-textarea>\n </ion-item>\n }\n\n <ion-list>\n <ion-item-group>\n <ion-item>\n <ion-label style="position: absolute;left: 0;width:50px;">主题</ion-label>\n <ion-label style="text-align:center;">{{story?.get(\'contentJson\')?.title}}</ion-label>\n <ion-button (click)="showInfo=!showInfo" style="position: absolute;right: 0;">{{showInfo?"折叠":"展开"}}</ion-button>\n <ion-button *ngIf="contentChanged" (click)="save()" style="position: absolute;right: 0;" [style.marginRight]="showInfo?\'50px\':\'0px\'">保存</ion-button>\n </ion-item>\n </ion-item-group>\n @if(story?.get(\'content\')){\n <fm-text-quill #textQuill [theme]="\'snow\'" [toolbar]="toolbar" [readOnly]="readOnly" [content]="story?.get(\'content\')" (onContentChange)="setContent($event)"\n (onAIClick)="goOptimizeText($event)" (onSelectChange)="selectChange($event)"\n ></fm-text-quill>\n }\n </ion-list>\n</div>\n\n</ng-container>',styles:[".filebar{display:flex;justify-content:space-between;align-items:center;padding:5px 15px}.filebar .file-info{max-width:80px}.filebar .title{flex:1;font-weight:700;margin-left:5px;margin-right:5px;max-width:220px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-align:center}.filebar mat-card-content{color:#333}.filebar ion-icon{font-size:28px;min-width:30px}.filebar ion-chip{color:#333}.filebar .actions{max-width:104px}\n"]}]}],ctorParameters:()=>[{type:i1.ModalController},{type:i0.ChangeDetectorRef}],propDecorators:{story:[{type:Input}],person:[{type:Input}],showHeader:[{type:Input}],readOnly:[{type:Input}]}});
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL3N0b3J5L21vZGFsLWNoYXQtc3RvcnkvY29tcC1kaWFyeS1zdG9yeS9jb21wLWRpYXJ5LXN0b3J5LmNvbXBvbmVudC5tanM=`
|
|
10
|
+
|