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.
Files changed (275) hide show
  1. package/LICENSE.md +8 -0
  2. package/README.md +37 -37
  3. package/esm2022/fmode-ng.mjs +10 -5
  4. package/esm2022/lib/aigc/agent/fm-agent-task/fm-agent-task.component.mjs +8 -92
  5. package/esm2022/lib/aigc/agent/index.mjs +10 -3
  6. package/esm2022/lib/aigc/avatar/avatar.module.mjs +10 -45
  7. package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +10 -2
  8. package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +10 -315
  9. package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +10 -3
  10. package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +10 -57
  11. package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +10 -98
  12. package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +10 -107
  13. package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +10 -113
  14. package/esm2022/lib/aigc/avatar/index.mjs +10 -8
  15. package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +10 -2
  16. package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +8 -164
  17. package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +10 -49
  18. package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +10 -2
  19. package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +8 -155
  20. package/esm2022/lib/aigc/chat/chat-list/index.mjs +10 -2
  21. package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +10 -40
  22. package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +10 -2
  23. package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +10 -140
  24. package/esm2022/lib/aigc/chat/chat-message-card/duration-str.pipe.mjs +10 -29
  25. package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +10 -3
  26. package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +10 -3
  27. package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +8 -193
  28. package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +10 -331
  29. package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +8 -249
  30. package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +10 -83
  31. package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +10 -2
  32. package/esm2022/lib/aigc/chat/index.mjs +10 -8
  33. package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +10 -82
  34. package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +8 -367
  35. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +10 -51
  36. package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +10 -24
  37. package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +10 -115
  38. package/esm2022/lib/aigc/index.mjs +10 -14
  39. package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +10 -21
  40. package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +10 -2
  41. package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +8 -174
  42. package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +10 -7
  43. package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +9 -194
  44. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +10 -27
  45. package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +10 -27
  46. package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +10 -68
  47. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-func.mjs +9 -162
  48. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-work.mjs +10 -68
  49. package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +8 -313
  50. package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +10 -4
  51. package/esm2022/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.mjs +10 -62
  52. package/esm2022/lib/aigc/story/fm-story-card/fm-story-card.component.mjs +10 -87
  53. package/esm2022/lib/aigc/story/fm-story-list/fm-story-list.component.mjs +10 -345
  54. package/esm2022/lib/aigc/story/fm-story-list/story-preview.mjs +10 -81
  55. package/esm2022/lib/aigc/story/fm-story-loader/fm-story-loader.component.mjs +10 -152
  56. package/esm2022/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.mjs +10 -42
  57. package/esm2022/lib/aigc/story/index.mjs +10 -6
  58. package/esm2022/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs +10 -47
  59. package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs +10 -95
  60. package/esm2022/lib/aigc/story/modal-chat-story/modal-chat-story.component.mjs +10 -253
  61. package/esm2022/lib/aigc/story/story.service.mjs +10 -35
  62. package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +10 -636
  63. package/esm2022/lib/aigc/voice/index.mjs +10 -7
  64. package/esm2022/lib/aigc/voice/lib/audio/audio.player.mjs +10 -55
  65. package/esm2022/lib/aigc/voice/lib/audio/audio.streamer.mjs +10 -2
  66. package/esm2022/lib/aigc/voice/lib/audio/streamer.microsoft.mjs +10 -96
  67. package/esm2022/lib/aigc/voice/lib/audio/streamer.pcm.mjs +8 -177
  68. package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +10 -38
  69. package/esm2022/lib/aigc/voice/lib/recorder/extension-waveview.mjs +10 -215
  70. package/esm2022/lib/aigc/voice/lib/resample.mjs +10 -34
  71. package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +10 -189
  72. package/esm2022/lib/aigc/voice/tts/index.mjs +10 -5
  73. package/esm2022/lib/aigc/voice/tts/int-tts-provider.mjs +10 -2
  74. package/esm2022/lib/aigc/voice/tts/provider-doubao.mjs +8 -346
  75. package/esm2022/lib/code/fm-codemirror/fm-codemirror.component.mjs +8 -342
  76. package/esm2022/lib/code/index.mjs +10 -2
  77. package/esm2022/lib/core/agent/chat/completion/fmode-completion.mjs +8 -430
  78. package/esm2022/lib/core/agent/chat/completion/index.mjs +10 -2
  79. package/esm2022/lib/core/agent/chat/completion/int-gpt-chat-options.mjs +10 -2
  80. package/esm2022/lib/core/agent/chat/fmode-chat.mjs +8 -617
  81. package/esm2022/lib/core/agent/chat/index.mjs +10 -4
  82. package/esm2022/lib/core/agent/chat/interface.mjs +10 -2
  83. package/esm2022/lib/core/agent/index.mjs +10 -6
  84. package/esm2022/lib/core/agent/prompt/agent.prompt.mjs +10 -133
  85. package/esm2022/lib/core/agent/prompt/index.mjs +10 -2
  86. package/esm2022/lib/core/agent/prompt/prompt-util.mjs +10 -16
  87. package/esm2022/lib/core/agent/story/agent.story.mjs +10 -64
  88. package/esm2022/lib/core/agent/story/index.mjs +10 -2
  89. package/esm2022/lib/core/agent/task/agent.task.mjs +10 -90
  90. package/esm2022/lib/core/agent/task/index.mjs +10 -2
  91. package/esm2022/lib/core/agent/waiting/index.mjs +10 -3
  92. package/esm2022/lib/core/agent/waiting/loading/loading.ctrl.mjs +10 -279
  93. package/esm2022/lib/core/agent/waiting/tips/tips.ctrl.mjs +8 -190
  94. package/esm2022/lib/core/index.mjs +10 -4
  95. package/esm2022/lib/core/parse/datatype/acl.mjs +10 -57
  96. package/esm2022/lib/core/parse/datatype/file.mjs +10 -69
  97. package/esm2022/lib/core/parse/datatype/geopoint.mjs +10 -57
  98. package/esm2022/lib/core/parse/datatype/relation.mjs +10 -56
  99. package/esm2022/lib/core/parse/fmode.cloud.mjs +10 -0
  100. package/esm2022/lib/core/parse/fmode.object.mjs +10 -232
  101. package/esm2022/lib/core/parse/fmode.parse.mjs +10 -84
  102. package/esm2022/lib/core/parse/fmode.query.mjs +8 -500
  103. package/esm2022/lib/core/parse/fmode.user.mjs +10 -275
  104. package/esm2022/lib/core/parse/index.mjs +10 -5
  105. package/esm2022/lib/core/parse/types.mjs +10 -2
  106. package/esm2022/lib/core/voice/index.mjs +10 -3
  107. package/esm2022/lib/core/voice/tts/index.mjs +10 -2
  108. package/esm2022/lib/icon/filetype/audio.svg.mjs +10 -3
  109. package/esm2022/lib/icon/filetype/avatar.svg.mjs +10 -14
  110. package/esm2022/lib/icon/filetype/chat.svg.mjs +10 -3
  111. package/esm2022/lib/icon/filetype/docx.svg.mjs +10 -3
  112. package/esm2022/lib/icon/filetype/file.svg.mjs +10 -3
  113. package/esm2022/lib/icon/filetype/filetype.pipe.mjs +10 -57
  114. package/esm2022/lib/icon/filetype/index.mjs +10 -12
  115. package/esm2022/lib/icon/filetype/md.svg.mjs +10 -3
  116. package/esm2022/lib/icon/filetype/pdf.svg.mjs +10 -3
  117. package/esm2022/lib/icon/filetype/pptx.svg.mjs +10 -3
  118. package/esm2022/lib/icon/filetype/svgtoblob.mjs +10 -8
  119. package/esm2022/lib/icon/filetype/video.svg.mjs +10 -3
  120. package/esm2022/lib/icon/filetype/xlsx.svg.mjs +10 -3
  121. package/esm2022/lib/icon/index.mjs +10 -2
  122. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +10 -209
  123. package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +10 -33
  124. package/esm2022/lib/map/index.mjs +10 -4
  125. package/esm2022/lib/map/map.module.mjs +10 -61
  126. package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +10 -132
  127. package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +8 -115
  128. package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +8 -118
  129. package/esm2022/lib/nova-cloud/index.mjs +10 -3
  130. package/esm2022/lib/nova-cloud/ncloud-api-func.mjs +10 -91
  131. package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +10 -53
  132. package/esm2022/lib/payment/index.mjs +10 -2
  133. package/esm2022/lib/payment/payment/payment.component.mjs +10 -543
  134. package/esm2022/lib/payment/payment.service.mjs +10 -202
  135. package/esm2022/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.mjs +10 -48
  136. package/esm2022/lib/person/comp-person-item/comp-person-item.component.mjs +10 -29
  137. package/esm2022/lib/person/comp-person-story/comp-person-story.component.mjs +10 -211
  138. package/esm2022/lib/person/edit-upload/edit-upload.component.mjs +8 -412
  139. package/esm2022/lib/person/edit-upload/edit-upload.module.mjs +10 -50
  140. package/esm2022/lib/person/index.mjs +10 -5
  141. package/esm2022/lib/person/modal-person-select/modal-person-select.component.mjs +10 -144
  142. package/esm2022/lib/person/modal-user-verify/secret-text.pipe.mjs +10 -41
  143. package/esm2022/lib/person/modal-user-verify/user-verify.component.mjs +10 -595
  144. package/esm2022/lib/person/person-detail/person-detail.component.mjs +10 -172
  145. package/esm2022/lib/person/person.service.mjs +8 -193
  146. package/esm2022/lib/platform/cross.service.mjs +10 -62
  147. package/esm2022/lib/platform/index.mjs +10 -2
  148. package/esm2022/lib/social/index.mjs +10 -2
  149. package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +8 -230
  150. package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +10 -59
  151. package/esm2022/lib/storage/index.mjs +10 -5
  152. package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +8 -131
  153. package/esm2022/lib/storage/service-hwobs/index.mjs +10 -3
  154. package/esm2022/lib/storage/service-hwobs/typings/esdk-obs-browser.mjs +1 -1
  155. package/esm2022/lib/storage/service-upload/index.mjs +10 -2
  156. package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +8 -513
  157. package/esm2022/lib/storage/service-upload/util-file-md5.mjs +10 -28
  158. package/esm2022/lib/storage/service-upload/util-file-metadata.mjs +10 -93
  159. package/esm2022/lib/storage/storage.module.mjs +10 -42
  160. package/esm2022/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.mjs +10 -72
  161. package/esm2022/lib/text/fm-article-editor/article.service.mjs +10 -237
  162. package/esm2022/lib/text/fm-article-editor/comp-upload-book-banners/comp-upload-book-banners.component.mjs +8 -72
  163. package/esm2022/lib/text/fm-article-editor/draft.service.mjs +10 -207
  164. package/esm2022/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.mjs +8 -227
  165. package/esm2022/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.mjs +10 -303
  166. package/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs +8 -371
  167. package/esm2022/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.mjs +10 -94
  168. package/esm2022/lib/text/fm-article-editor/fm-article-outline-leftitem/fm-article-outline-leftitem.component.mjs +10 -36
  169. package/esm2022/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.mjs +10 -281
  170. package/esm2022/lib/text/fm-article-editor/fm-article-write-options/fm-article-write-options.component.mjs +10 -72
  171. package/esm2022/lib/text/fm-article-editor/outline-count.pipe.mjs +10 -22
  172. package/esm2022/lib/text/fm-article-editor/prompt/prompt-insertion-article.mjs +10 -169
  173. package/esm2022/lib/text/fm-article-editor/task-article-generation.mjs +10 -69
  174. package/esm2022/lib/text/fm-article-editor/tasks/task-article-draft-create.mjs +10 -65
  175. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline-edit.mjs +10 -55
  176. package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline.mjs +10 -142
  177. package/esm2022/lib/text/fm-article-editor/tasks/task-article-preview.mjs +10 -35
  178. package/esm2022/lib/text/fm-article-editor/tasks/task-article-writing-options.mjs +10 -81
  179. package/esm2022/lib/text/fm-article-editor/tasks/task-document-select.mjs +10 -50
  180. package/esm2022/lib/text/fm-text-quill/fm-text-quill.component.mjs +10 -145
  181. package/esm2022/lib/text/index.mjs +10 -4
  182. package/esm2022/lib/user/account/account.service.mjs +10 -222
  183. package/esm2022/lib/user/captcha/captcha.component.mjs +10 -135
  184. package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +10 -66
  185. package/esm2022/lib/user/index.mjs +10 -17
  186. package/esm2022/lib/user/login/auth.guard.mjs +10 -28
  187. package/esm2022/lib/user/login/auth.service.mjs +8 -433
  188. package/esm2022/lib/user/login/login.component.mjs +10 -916
  189. package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +10 -311
  190. package/esm2022/lib/user/profile/auth-profile.guard.mjs +10 -27
  191. package/esm2022/lib/user/profile/auth-profile.service.mjs +10 -122
  192. package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +10 -164
  193. package/esm2022/lib/user/profile/profile-bind/profile-confirm-modal.component.mjs +10 -79
  194. package/esm2022/lib/user/profile/profile.module.mjs +10 -54
  195. package/esm2022/lib/user/staff/index.mjs +10 -4
  196. package/esm2022/lib/user/staff/staff.guard.mjs +10 -26
  197. package/esm2022/lib/user/staff/staff.module.mjs +10 -18
  198. package/esm2022/lib/user/staff/staff.service.mjs +10 -85
  199. package/esm2022/lib/user/user-name.pipe.mjs +10 -29
  200. package/esm2022/lib/user/user.module.mjs +10 -102
  201. package/esm2022/lib/video/fm-video/fm-video.component.mjs +10 -67
  202. package/esm2022/lib/video/index.mjs +10 -2
  203. package/esm2022/public-api.mjs +10 -21
  204. package/fesm2022/fmode-ng.mjs +7 -19788
  205. package/fesm2022/fmode-ng.mjs.map +1 -1
  206. package/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.d.ts +2 -2
  207. package/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.d.ts +2 -2
  208. package/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.d.ts +2 -2
  209. package/lib/aigc/chat/chat-list/chat-list.component.d.ts +3 -2
  210. package/lib/aigc/chat/chat-message-card/comp-message-card.component.d.ts +3 -3
  211. package/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.d.ts +2 -2
  212. package/lib/aigc/chat/chat-modal-input/modal-input.component.d.ts +3 -3
  213. package/lib/aigc/service-fmai/service-imagine/imagine-func.d.ts +3 -3
  214. package/lib/aigc/service-fmai/service-imagine/imagine-work.d.ts +4 -4
  215. package/lib/aigc/service-fmai/service-imagine/imagine.service.d.ts +6 -6
  216. package/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.d.ts +2 -2
  217. package/lib/aigc/story/fm-story-card/fm-story-card.component.d.ts +2 -1
  218. package/lib/aigc/story/fm-story-list/fm-story-list.component.d.ts +6 -6
  219. package/lib/aigc/story/fm-story-list/story-preview.d.ts +4 -4
  220. package/lib/aigc/story/fm-story-loader/fm-story-loader.component.d.ts +3 -3
  221. package/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.d.ts +2 -2
  222. package/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.d.ts +3 -2
  223. package/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.d.ts +3 -2
  224. package/lib/aigc/story/modal-chat-story/modal-chat-story.component.d.ts +6 -6
  225. package/lib/aigc/story/story.service.d.ts +3 -2
  226. package/lib/aigc/voice/tts/fmode-tts-class.d.ts +2 -2
  227. package/lib/core/agent/chat/fmode-chat.d.ts +11 -11
  228. package/lib/core/agent/story/agent.story.d.ts +8 -8
  229. package/lib/core/parse/datatype/geopoint.d.ts +5 -1
  230. package/lib/core/parse/fmode.cloud.d.ts +32 -0
  231. package/lib/core/parse/fmode.object.d.ts +2 -2
  232. package/lib/core/parse/fmode.parse.d.ts +15 -9
  233. package/lib/core/parse/fmode.query.d.ts +41 -2
  234. package/lib/core/parse/fmode.user.d.ts +1 -0
  235. package/lib/core/parse/index.d.ts +1 -0
  236. package/lib/core/parse/types.d.ts +2 -0
  237. package/lib/map/comp-poi-picker/comp-poi-picker.component.d.ts +5 -5
  238. package/lib/payment/payment/payment.component.d.ts +3 -3
  239. package/lib/payment/payment.service.d.ts +4 -4
  240. package/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.d.ts +2 -1
  241. package/lib/person/comp-person-item/comp-person-item.component.d.ts +2 -1
  242. package/lib/person/comp-person-story/comp-person-story.component.d.ts +13 -13
  243. package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
  244. package/lib/person/modal-person-select/modal-person-select.component.d.ts +5 -5
  245. package/lib/person/modal-user-verify/user-verify.component.d.ts +5 -5
  246. package/lib/person/person-detail/person-detail.component.d.ts +4 -4
  247. package/lib/person/person.service.d.ts +7 -7
  248. package/lib/storage/service-hwobs/hwobs.service.d.ts +4 -5
  249. package/lib/storage/service-upload/nova-upload.service.d.ts +5 -5
  250. package/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.d.ts +2 -1
  251. package/lib/text/fm-article-editor/article.service.d.ts +12 -12
  252. package/lib/text/fm-article-editor/draft.service.d.ts +5 -5
  253. package/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.d.ts +3 -2
  254. package/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.d.ts +16 -17
  255. package/lib/text/fm-article-editor/fm-article-editor.component.d.ts +3 -3
  256. package/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.d.ts +11 -10
  257. package/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.d.ts +2 -2
  258. package/lib/text/fm-article-editor/prompt/prompt-insertion-article.d.ts +3 -3
  259. package/lib/text/fm-article-editor/task-article-generation.d.ts +5 -4
  260. package/lib/text/fm-article-editor/tasks/task-article-draft-create.d.ts +3 -3
  261. package/lib/text/fm-article-editor/tasks/task-article-outline-edit.d.ts +3 -3
  262. package/lib/text/fm-article-editor/tasks/task-article-outline.d.ts +3 -3
  263. package/lib/text/fm-article-editor/tasks/task-article-preview.d.ts +2 -1
  264. package/lib/text/fm-article-editor/tasks/task-article-writing-options.d.ts +3 -3
  265. package/lib/text/fm-article-editor/tasks/task-document-select.d.ts +3 -3
  266. package/lib/user/account/account.service.d.ts +2 -2
  267. package/lib/user/comp-user-avatar/comp-user-avatar.component.d.ts +2 -2
  268. package/lib/user/login/auth.service.d.ts +5 -5
  269. package/lib/user/login/login.component.d.ts +3 -3
  270. package/lib/user/profile/auth-profile.service.d.ts +8 -8
  271. package/lib/user/profile/profile-bind/profile-bind.component.d.ts +7 -7
  272. package/lib/user/profile/profile-bind/profile-confirm-modal.component.d.ts +2 -2
  273. package/lib/user/staff/staff.service.d.ts +3 -3
  274. package/lib/user/user-name.pipe.d.ts +2 -2
  275. package/package.json +12 -18
@@ -1,47 +1,10 @@
1
- import { CommonModule } from '@angular/common';
2
- import { Component, Input } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { IonItem, IonLabel, IonIcon, IonCardSubtitle, IonCardContent, IonList, IonCard, IonCardTitle, IonNote, IonCardHeader, IonItemGroup, IonItemDivider, IonChip, IonTextarea, ModalController } from "@ionic/angular/standalone";
6
- import { NzPipesModule } from 'ng-zorro-antd/pipes';
7
- import { FiletypePipe } from '../../../../icon/filetype';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@ionic/angular/standalone";
10
- import * as i2 from "@angular/common";
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
+
@@ -1,95 +1,10 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectorRef, Component, Input } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { IonItem, IonLabel, IonIcon, IonCardSubtitle, IonCardContent, IonList, IonCard, IonCardTitle, IonNote, IonCardHeader, IonItemGroup, IonItemDivider, IonChip, IonTextarea, ModalController, IonButton } from "@ionic/angular/standalone";
6
- import { NzPipesModule } from 'ng-zorro-antd/pipes';
7
- import { FiletypePipe } from '../../../../icon/filetype';
8
- import { FmTextQuillComponent } from '../../../../text/fm-text-quill/fm-text-quill.component';
9
- import { CompPersonItemComponent } from "../../../../person";
10
- import * as i0 from "@angular/core";
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
+