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,145 +1,10 @@
1
- import { Component } from '@angular/core';
2
- import { ViewChild, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef } from '@angular/core';
3
- import Quill from 'quill';
4
- import hljs from "highlight.js";
5
- import * as i0 from "@angular/core";
6
- export class FmTextQuillComponent {
7
- constructor(cdRef) {
8
- this.cdRef = cdRef;
9
- this.readOnly = false;
10
- this.content = ``;
11
- this.theme = 'bubble';
12
- this.toolbar = [
13
- [{ 'header': [1, 2, 3, 4, false] }],
14
- ['bold', 'italic', 'underline'],
15
- // [{ 'font': [] }],
16
- [{ 'list': 'bullet' }],
17
- [{ 'align': [] }],
18
- ['code-block'],
19
- ];
20
- /**工具条:补充AI按钮事件 */
21
- this.onAIClick = new EventEmitter;
22
- this.contentChanged = false;
23
- this.onContentChange = new EventEmitter;
24
- /**段落内容:选中及润色 */
25
- this.selectText = ``;
26
- this.optimizeText = ``;
27
- this.isOptimizing = false;
28
- this.onSelectChange = new EventEmitter;
29
- }
30
- ngOnInit() {
31
- setTimeout(() => {
32
- this.initQuillEditor();
33
- }, 100);
34
- }
35
- initQuillEditor() {
36
- this.oldContent = undefined;
37
- let editorHtmlElement = this.editorComp?.nativeElement;
38
- this.quill = new Quill(editorHtmlElement
39
- // "#editor"
40
- , {
41
- readOnly: this.readOnly,
42
- modules: {
43
- syntax: { hljs },
44
- toolbar: this.toolbar,
45
- history: {
46
- delay: 2000,
47
- maxStack: 500,
48
- userOnly: true
49
- },
50
- },
51
- theme: this.theme,
52
- });
53
- /**
54
- * 实现文章内容选中后设置至AI改写区域
55
- */
56
- this.quill.on('selection-change', (range, oldRange, source) => {
57
- if (range) {
58
- if (range.length == 0) {
59
- // console.log('User cursor is on', range.index);
60
- }
61
- else {
62
- let text = this.quill?.getText(range.index, range.length);
63
- this.selectRange = range;
64
- this.selectText = text || '';
65
- this.onSelectChange.emit({
66
- name: "select",
67
- quill: this.quill,
68
- range: this.selectRange,
69
- text: this.selectText
70
- });
71
- this.cdRef.detectChanges(); // 触发选中文字属性变化检测
72
- }
73
- }
74
- else {
75
- // console.log('Cursor not in the editor');
76
- }
77
- });
78
- /**
79
- * 实现文章内容加载及存储
80
- */
81
- // 加载文章内容
82
- this.quill.root.innerHTML = this.content || ``;
83
- if (!this.oldContent) { // 记录原始加载文章
84
- setTimeout(() => {
85
- this.oldContent = this.quill?.root?.innerHTML;
86
- }, 2000);
87
- }
88
- // 实时保存文章内容
89
- this.quill.on("text-change", () => {
90
- this.content = this.quill?.root?.innerHTML || "";
91
- if (this.oldContent && this.content) {
92
- this.contentChanged = this.content != this.oldContent;
93
- this.onContentChange.emit(this.content);
94
- }
95
- });
96
- // 添加ToolbarAI按钮
97
- let toolbar = this.quill.getModule('toolbar');
98
- let span = document.createElement("span");
99
- span.className = 'ql-formats';
100
- let button = document.createElement('button');
101
- button.className = 'ql-ai-optimize';
102
- button.innerHTML = 'AI';
103
- button.onclick = () => {
104
- this.onAIClick.emit({
105
- name: "AI",
106
- quill: this.quill,
107
- range: this.selectRange,
108
- text: this.selectText,
109
- });
110
- // this.aitab = "AI润色"
111
- // this.optimizeContent();
112
- };
113
- span.appendChild(button);
114
- toolbar.container.appendChild(span);
115
- // 修复样式 quill修复 高亮代码语言选择 字体白色看不见
116
- let style = document.createElement("style");
117
- style.innerText = `.ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}`;
118
- toolbar.container.appendChild(style);
119
- // console.log(toolbar.container)
120
- }
121
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmTextQuillComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FmTextQuillComponent, isStandalone: true, selector: "fm-text-quill", inputs: { readOnly: "readOnly", content: "content", theme: "theme", toolbar: "toolbar" }, outputs: { onAIClick: "onAIClick", onContentChange: "onContentChange", onSelectChange: "onSelectChange" }, viewQueries: [{ propertyName: "editorComp", first: true, predicate: ["editorComp"], descendants: true }], ngImport: i0, template: "<!-- \u9AD8\u4EAE\u533A\u57DF \u8BED\u8A00\u9009\u62E9\u9ED1\u8272\u5B57\u4F53 -->\r\n<style>.ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}</style>\r\n<div class=\"editor-container\" #editorComp id=\"editor\"></div>", styles: [":host-context(body.dark) ::ng-deep .ql-snow .ql-stroke{stroke:#fff!important}:host-context(body.dark) ::ng-deep .ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{color:#fff}:host-context(body.dark) ::ng-deep .ql-snow h1,:host-context(body.dark) ::ng-deep .ql-snow h2,:host-context(body.dark) ::ng-deep .ql-snow h3,:host-context(body.dark) ::ng-deep .ql-snow h4,:host-context(body.dark) ::ng-deep .ql-snow h5,:host-context(body.dark) ::ng-deep .ql-snow h6{color:#fff}.editor-container{height:auto}.editor-container .ql-editor{padding:0!important}.ql-editor{padding:0 2px!important}::ng-deep .ql-container.ql-snow{border:none}::ng-deep .ql-toolbar.ql-snow{border:none;border-radius:10px}.ql-toolbar.ql-snow{border:none!important}\n", ".ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}"] }); }
123
- }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmTextQuillComponent, decorators: [{
125
- type: Component,
126
- args: [{ selector: 'fm-text-quill', standalone: true, imports: [], template: "<!-- \u9AD8\u4EAE\u533A\u57DF \u8BED\u8A00\u9009\u62E9\u9ED1\u8272\u5B57\u4F53 -->\r\n<style>.ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}</style>\r\n<div class=\"editor-container\" #editorComp id=\"editor\"></div>", styles: [":host-context(body.dark) ::ng-deep .ql-snow .ql-stroke{stroke:#fff!important}:host-context(body.dark) ::ng-deep .ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{color:#fff}:host-context(body.dark) ::ng-deep .ql-snow h1,:host-context(body.dark) ::ng-deep .ql-snow h2,:host-context(body.dark) ::ng-deep .ql-snow h3,:host-context(body.dark) ::ng-deep .ql-snow h4,:host-context(body.dark) ::ng-deep .ql-snow h5,:host-context(body.dark) ::ng-deep .ql-snow h6{color:#fff}.editor-container{height:auto}.editor-container .ql-editor{padding:0!important}.ql-editor{padding:0 2px!important}::ng-deep .ql-container.ql-snow{border:none}::ng-deep .ql-toolbar.ql-snow{border:none;border-radius:10px}.ql-toolbar.ql-snow{border:none!important}\n", ".ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}"] }]
127
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { editorComp: [{
128
- type: ViewChild,
129
- args: ["editorComp"]
130
- }], readOnly: [{
131
- type: Input
132
- }], content: [{
133
- type: Input
134
- }], theme: [{
135
- type: Input
136
- }], toolbar: [{
137
- type: Input
138
- }], onAIClick: [{
139
- type: Output
140
- }], onContentChange: [{
141
- type: Output
142
- }], onSelectChange: [{
143
- type: Output
144
- }] } });
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm0tdGV4dC1xdWlsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL3RleHQvZm0tdGV4dC1xdWlsbC9mbS10ZXh0LXF1aWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvdGV4dC9mbS10ZXh0LXF1aWxsL2ZtLXRleHQtcXVpbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFnQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxLQUFnQixNQUFNLE9BQU8sQ0FBQztBQUNyQyxPQUFPLElBQUksTUFBTSxjQUFjLENBQUM7O0FBa0JoQyxNQUFNLE9BQU8sb0JBQW9CO0lBZS9CLFlBQ1UsS0FBdUI7UUFBdkIsVUFBSyxHQUFMLEtBQUssQ0FBa0I7UUFaeEIsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUN6QixZQUFPLEdBQW9CLEVBQUUsQ0FBQTtRQUM3QixVQUFLLEdBQVUsUUFBUSxDQUFBO1FBQ3ZCLFlBQU8sR0FBYztZQUM1QixDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBQztZQUMvQixvQkFBb0I7WUFDcEIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLENBQUMsWUFBWSxDQUFDO1NBQ2Ys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V0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLGdDQUFnQztRQUNoQyxJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQzNDLEtBQUssQ0FBQyxTQUFTLEdBQUcsK0VBQStFLENBQUE7UUFDakcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDcEMsaUNBQWlDO0lBQ25DLENBQUM7K0dBL0hVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdYQ3JCakMsd1BBRTREOzs0RkRtQi9DLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNSLEVBQUU7c0ZBR2UsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQUdkLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBa0JJLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csZUFBZTtzQkFBeEIsTUFBTTtnQkFRRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmlld0NoaWxkLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFF1aWxsLCB7IFJhbmdlIH0gZnJvbSAncXVpbGwnO1xyXG5pbXBvcnQgaGxqcyBmcm9tIFwiaGlnaGxpZ2h0LmpzXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW50ZXJmYWNlIFF1aWxsQ2hhbmdle1xyXG4gIHF1aWxsOlF1aWxsfHVuZGVmaW5lZCxcclxuICBuYW1lOnN0cmluZ3x1bmRlZmluZWQsXHJcbiAgcmFuZ2U6UmFuZ2V8dW5kZWZpbmVkLFxyXG4gIHRleHQ6c3RyaW5nfHVuZGVmaW5lZCxcclxufVxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm0tdGV4dC1xdWlsbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZtLXRleHQtcXVpbGwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZtLXRleHQtcXVpbGwuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6W11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZtVGV4dFF1aWxsQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChcImVkaXRvckNvbXBcIikgZWRpdG9yQ29tcDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxyXG4gIHF1aWxsOiBRdWlsbCB8IHVuZGVmaW5lZFxyXG5cclxuICBASW5wdXQoKSByZWFkT25seTpib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY29udGVudDpzdHJpbmd8dW5kZWZpbmVkID0gYGBcclxuICBASW5wdXQoKSB0aGVtZTpzdHJpbmcgPSAnYnViYmxlJ1xyXG4gIEBJbnB1dCgpIHRvb2xiYXI6QXJyYXk8YW55PiA9IFtcclxuICAgIFt7ICdoZWFkZXInOiBbMSwgMiwgMywgNCwgZmFsc2VdIH1dLFxyXG4gICAgWydib2xkJywgJ2l0YWxpYycsICd1bmRlcmxpbmUnXSxcclxuICAgIC8vIFt7ICdmb250JzogW10gfV0sXHJcbiAgICBbeyAnbGlzdCc6ICdidWxsZXQnIH1dLFxyXG4gICAgW3sgJ2FsaWduJzogW10gfV0sXHJcbiAgICBbJ2NvZGUtYmxvY2snXSxcclxuICBdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjpDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmluaXRRdWlsbEVkaXRvcigpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcbiAgLyoq5bel5YW35p2h77ya6KGl5YWFQUnmjInpkq7kuovku7YgKi9cclxuICBAT3V0cHV0KCkgb25BSUNsaWNrOkV2ZW50RW1pdHRlcjxRdWlsbENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFF1aWxsQ2hhbmdlPlxyXG5cclxuICAvKirmlofnq6DlhoXlrrnvvJrliKTlrprmmK/lkKbmm7TmlLkgKi9cclxuICBvbGRDb250ZW50OnN0cmluZ3x1bmRlZmluZWRcclxuICBjb250ZW50Q2hhbmdlZDpib29sZWFuID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIG9uQ29udGVudENoYW5nZTpFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPlxyXG5cclxuICAvKirmrrXokL3lhoXlrrnvvJrpgInkuK3lj4rmtqboibIgKi9cclxuICBzZWxlY3RUZXh0OiBzdHJpbmcgPSBgYFxyXG4gIHNlbGVjdFJhbmdlOlJhbmdlfHVuZGVmaW5lZFxyXG4gIG9wdGltaXplVGV4dDogc3RyaW5nID0gYGBcclxuICBpc09wdGltaXppbmc6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIG9wdGltaXplJDpTdWJzY3JpcHRpb258dW5kZWZpbmVkO1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdENoYW5nZTpFdmVudEVtaXR0ZXI8UXVpbGxDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxRdWlsbENoYW5nZT5cclxuXHJcblxyXG4gIGluaXRRdWlsbEVkaXRvcigpe1xyXG4gICAgdGhpcy5vbGRDb250ZW50ID0gdW5kZWZpbmVkXHJcbiAgICBsZXQgZWRpdG9ySHRtbEVsZW1lbnQgPSB0aGlzLmVkaXRvckNvbXA/Lm5hdGl2ZUVsZW1lbnRcclxuICAgIHRoaXMucXVpbGwgPSBuZXcgUXVpbGwoXHJcbiAgICAgIGVkaXRvckh0bWxFbGVtZW50XHJcbiAgICAgIC8vIFwiI2VkaXRvclwiXHJcbiAgICAgICwge1xyXG4gICAgICAgIHJlYWRPbmx5OnRoaXMucmVhZE9ubHksXHJcbiAgICAgICAgbW9kdWxlczoge1xyXG4gICAgICAgIHN5bnRheDogeyBobGpzIH0sXHJcbiAgICAgICAgdG9vbGJhcjogdGhpcy50b29sYmFyLFxyXG4gICAgICAgIGhpc3Rvcnk6IHtcclxuICAgICAgICAgIGRlbGF5OiAyMDAwLFxyXG4gICAgICAgICAgbWF4U3RhY2s6IDUwMCxcclxuICAgICAgICAgIHVzZXJPbmx5OiB0cnVlXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUsXHJcbiAgICB9KTtcclxuICAgIC8qKlxyXG4gICAgICog5a6e546w5paH56ug5YaF5a656YCJ5Lit5ZCO6K6+572u6IezQUnmlLnlhpnljLrln59cclxuICAgICAqL1xyXG4gICAgdGhpcy5xdWlsbC5vbignc2VsZWN0aW9uLWNoYW5nZScsIChyYW5nZSwgb2xkUmFuZ2UsIHNvdXJjZSkgPT4ge1xyXG4gICAgICBpZiAocmFuZ2UpIHtcclxuICAgICAgICBpZiAocmFuZ2UubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdVc2VyIGN1cnNvciBpcyBvbicsIHJhbmdlLmluZGV4KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IHRleHQgPSB0aGlzLnF1aWxsPy5nZXRUZXh0KHJhbmdlLmluZGV4LCByYW5nZS5sZW5ndGgpO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RSYW5nZSA9IHJhbmdlXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdFRleHQgPSB0ZXh0IHx8ICcnXHJcbiAgICAgICAgICB0aGlzLm9uU2VsZWN0Q2hhbmdlLmVtaXQoe1xyXG4gICAgICAgICAgICBuYW1lOlwic2VsZWN0XCIsXHJcbiAgICAgICAgICAgIHF1aWxsOnRoaXMucXVpbGwsXHJcbiAgICAgICAgICAgIHJhbmdlOnRoaXMuc2VsZWN0UmFuZ2UsXHJcbiAgICAgICAgICAgIHRleHQ6dGhpcy5zZWxlY3RUZXh0XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7IC8vIOinpuWPkemAieS4reaWh+Wtl+WxnuaAp+WPmOWMluajgOa1i1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZygnQ3Vyc29yIG5vdCBpbiB0aGUgZWRpdG9yJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLyoqXHJcbiAgICAgKiDlrp7njrDmlofnq6DlhoXlrrnliqDovb3lj4rlrZjlgqhcclxuICAgICAqL1xyXG4gICAgLy8g5Yqg6L295paH56ug5YaF5a65XHJcbiAgICB0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MID0gdGhpcy5jb250ZW50IHx8IGBgXHJcblxyXG4gICAgaWYoIXRoaXMub2xkQ29udGVudCkgeyAvLyDorrDlvZXljp/lp4vliqDovb3mlofnq6BcclxuICAgICAgc2V0VGltZW91dCgoKT0+eyAvLyDkv67mraNobGpzLXVuZGVmaW5lZOWvvOiHtOWJjeWQjuaWh+S4jeS4gOiHtFxyXG4gICAgICAgIHRoaXMub2xkQ29udGVudCA9IHRoaXMucXVpbGw/LnJvb3Q/LmlubmVySFRNTDtcclxuICAgICAgfSwyMDAwKVxyXG4gICAgfVxyXG4gICAgLy8g5a6e5pe25L+d5a2Y5paH56ug5YaF5a65XHJcbiAgICB0aGlzLnF1aWxsLm9uKFwidGV4dC1jaGFuZ2VcIiwgKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLnF1aWxsPy5yb290Py5pbm5lckhUTUwgfHwgXCJcIlxyXG4gICAgICBpZih0aGlzLm9sZENvbnRlbnQgJiYgdGhpcy5jb250ZW50KSB7XHJcbiAgICAgICAgdGhpcy5jb250ZW50Q2hhbmdlZCA9IHRoaXMuY29udGVudCAhPSB0aGlzLm9sZENvbnRlbnRcclxuICAgICAgICB0aGlzLm9uQ29udGVudENoYW5nZS5lbWl0KHRoaXMuY29udGVudClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIC8vIOa3u+WKoFRvb2xiYXJBSeaMiemSrlxyXG4gICAgbGV0IHRvb2xiYXI6YW55ID0gdGhpcy5xdWlsbC5nZXRNb2R1bGUoJ3Rvb2xiYXInKTtcclxuICAgIGxldCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNwYW5cIilcclxuICAgIHNwYW4uY2xhc3NOYW1lID0gJ3FsLWZvcm1hdHMnO1xyXG4gICAgbGV0IGJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpO1xyXG4gICAgYnV0dG9uLmNsYXNzTmFtZSA9ICdxbC1haS1vcHRpbWl6ZSc7XHJcbiAgICBidXR0b24uaW5uZXJIVE1MID0gJ0FJJztcclxuICAgIGJ1dHRvbi5vbmNsaWNrID0gKCk9PntcclxuICAgICAgdGhpcy5vbkFJQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgbmFtZTpcIkFJXCIsXHJcbiAgICAgICAgcXVpbGw6dGhpcy5xdWlsbCxcclxuICAgICAgICByYW5nZTp0aGlzLnNlbGVjdFJhbmdlLFxyXG4gICAgICAgIHRleHQ6dGhpcy5zZWxlY3RUZXh0LFxyXG4gICAgICB9KVxyXG4gICAgICAvLyB0aGlzLmFpdGFiID0gXCJBSea2puiJslwiXHJcbiAgICAgIC8vIHRoaXMub3B0aW1pemVDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgICBzcGFuLmFwcGVuZENoaWxkKGJ1dHRvbilcclxuICAgIHRvb2xiYXIuY29udGFpbmVyLmFwcGVuZENoaWxkKHNwYW4pO1xyXG5cclxuICAgIC8vIOS/ruWkjeagt+W8jyBxdWlsbOS/ruWkjSDpq5jkuq7ku6PnoIHor63oqIDpgInmi6kg5a2X5L2T55m96Imy55yL5LiN6KeBXHJcbiAgICBsZXQgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIilcclxuICAgIHN0eWxlLmlubmVyVGV4dCA9IGAucWwtYnViYmxlIC5xbC1lZGl0b3IgLnFsLWNvZGUtYmxvY2stY29udGFpbmVyIC5xbC11aXtjb2xvcjpibGFjayFpbXBvcnRhbnQ7fWBcclxuICAgIHRvb2xiYXIuY29udGFpbmVyLmFwcGVuZENoaWxkKHN0eWxlKVxyXG4gICAgLy8gY29uc29sZS5sb2codG9vbGJhci5jb250YWluZXIpXHJcbiAgfVxyXG59XHJcbiIsIjwhLS0g6auY5Lqu5Yy65Z+fIOivreiogOmAieaLqem7keiJsuWtl+S9kyAtLT5cclxuPHN0eWxlPi5xbC1idWJibGUgLnFsLWVkaXRvciAucWwtY29kZS1ibG9jay1jb250YWluZXIgLnFsLXVpe2NvbG9yOmJsYWNrIWltcG9ydGFudDt9PC9zdHlsZT5cclxuPGRpdiBjbGFzcz1cImVkaXRvci1jb250YWluZXJcIiAjZWRpdG9yQ29tcCBpZD1cImVkaXRvclwiPjwvZGl2PiJdfQ==
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/text/fm-text-quill/fm-text-quill.component.mjs
7
+ */
8
+ import{Component}from"@angular/core";import{ViewChild,Input,Output,EventEmitter,ElementRef,ChangeDetectorRef}from"@angular/core";import Quill from"quill";import hljs from"highlight.js";import*as i0 from"@angular/core";export class FmTextQuillComponent{constructor(e){this.cdRef=e,this.readOnly=!1,this.content="",this.theme="bubble",this.toolbar=[[{header:[1,2,3,4,!1]}],["bold","italic","underline"],[{list:"bullet"}],[{align:[]}],["code-block"]],this.onAIClick=new EventEmitter,this.contentChanged=!1,this.onContentChange=new EventEmitter,this.selectText="",this.optimizeText="",this.isOptimizing=!1,this.onSelectChange=new EventEmitter}ngOnInit(){setTimeout((()=>{this.initQuillEditor()}),100)}initQuillEditor(){this.oldContent=void 0;let e=this.editorComp?.nativeElement;this.quill=new Quill(e,{readOnly:this.readOnly,modules:{syntax:{hljs:hljs},toolbar:this.toolbar,history:{delay:2e3,maxStack:500,userOnly:!0}},theme:this.theme}),this.quill.on("selection-change",((e,t,o)=>{if(e)if(0==e.length);else{let t=this.quill?.getText(e.index,e.length);this.selectRange=e,this.selectText=t||"",this.onSelectChange.emit({name:"select",quill:this.quill,range:this.selectRange,text:this.selectText}),this.cdRef.detectChanges()}})),this.quill.root.innerHTML=this.content||"",this.oldContent||setTimeout((()=>{this.oldContent=this.quill?.root?.innerHTML}),2e3),this.quill.on("text-change",(()=>{this.content=this.quill?.root?.innerHTML||"",this.oldContent&&this.content&&(this.contentChanged=this.content!=this.oldContent,this.onContentChange.emit(this.content))}));let t=this.quill.getModule("toolbar"),o=document.createElement("span");o.className="ql-formats";let n=document.createElement("button");n.className="ql-ai-optimize",n.innerHTML="AI",n.onclick=()=>{this.onAIClick.emit({name:"AI",quill:this.quill,range:this.selectRange,text:this.selectText})},o.appendChild(n),t.container.appendChild(o);let l=document.createElement("style");l.innerText=".ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}",t.container.appendChild(l)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmTextQuillComponent,deps:[{token:i0.ChangeDetectorRef}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"14.0.0",version:"17.3.12",type:FmTextQuillComponent,isStandalone:!0,selector:"fm-text-quill",inputs:{readOnly:"readOnly",content:"content",theme:"theme",toolbar:"toolbar"},outputs:{onAIClick:"onAIClick",onContentChange:"onContentChange",onSelectChange:"onSelectChange"},viewQueries:[{propertyName:"editorComp",first:!0,predicate:["editorComp"],descendants:!0}],ngImport:i0,template:'\x3c!-- 高亮区域 语言选择黑色字体 --\x3e\n<style>.ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}</style>\n<div class="editor-container" #editorComp id="editor"></div>',styles:[":host-context(body.dark) ::ng-deep .ql-snow .ql-stroke{stroke:#fff!important}:host-context(body.dark) ::ng-deep .ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{color:#fff}:host-context(body.dark) ::ng-deep .ql-snow h1,:host-context(body.dark) ::ng-deep .ql-snow h2,:host-context(body.dark) ::ng-deep .ql-snow h3,:host-context(body.dark) ::ng-deep .ql-snow h4,:host-context(body.dark) ::ng-deep .ql-snow h5,:host-context(body.dark) ::ng-deep .ql-snow h6{color:#fff}.editor-container{height:auto}.editor-container .ql-editor{padding:0!important}.ql-editor{padding:0 2px!important}::ng-deep .ql-container.ql-snow{border:none}::ng-deep .ql-toolbar.ql-snow{border:none;border-radius:10px}.ql-toolbar.ql-snow{border:none!important}\n",".ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}"]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmTextQuillComponent,decorators:[{type:Component,args:[{selector:"fm-text-quill",standalone:!0,imports:[],template:'\x3c!-- 高亮区域 语言选择黑色字体 --\x3e\n<style>.ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}</style>\n<div class="editor-container" #editorComp id="editor"></div>',styles:[":host-context(body.dark) ::ng-deep .ql-snow .ql-stroke{stroke:#fff!important}:host-context(body.dark) ::ng-deep .ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{color:#fff}:host-context(body.dark) ::ng-deep .ql-snow h1,:host-context(body.dark) ::ng-deep .ql-snow h2,:host-context(body.dark) ::ng-deep .ql-snow h3,:host-context(body.dark) ::ng-deep .ql-snow h4,:host-context(body.dark) ::ng-deep .ql-snow h5,:host-context(body.dark) ::ng-deep .ql-snow h6{color:#fff}.editor-container{height:auto}.editor-container .ql-editor{padding:0!important}.ql-editor{padding:0 2px!important}::ng-deep .ql-container.ql-snow{border:none}::ng-deep .ql-toolbar.ql-snow{border:none;border-radius:10px}.ql-toolbar.ql-snow{border:none!important}\n",".ql-bubble .ql-editor .ql-code-block-container .ql-ui{color:black!important;}"]}]}],ctorParameters:()=>[{type:i0.ChangeDetectorRef}],propDecorators:{editorComp:[{type:ViewChild,args:["editorComp"]}],readOnly:[{type:Input}],content:[{type:Input}],theme:[{type:Input}],toolbar:[{type:Input}],onAIClick:[{type:Output}],onContentChange:[{type:Output}],onSelectChange:[{type:Output}]}});
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi90ZXh0L2ZtLXRleHQtcXVpbGwvZm0tdGV4dC1xdWlsbC5jb21wb25lbnQubWpz`
10
+
@@ -1,4 +1,10 @@
1
- export * from "./fm-text-quill/fm-text-quill.component";
2
- export * from "./fm-article-editor/fm-article-editor.component";
3
- export * from "./fm-article-editor/article.service";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL3RleHQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMscUNBQXFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9mbS10ZXh0LXF1aWxsL2ZtLXRleHQtcXVpbGwuY29tcG9uZW50XCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2ZtLWFydGljbGUtZWRpdG9yL2ZtLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudFwiXHJcbmV4cG9ydCAqIGZyb20gXCIuL2ZtLWFydGljbGUtZWRpdG9yL2FydGljbGUuc2VydmljZVwiIl19
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/text/index.mjs
7
+ */
8
+ export*from"./fm-text-quill/fm-text-quill.component";export*from"./fm-article-editor/fm-article-editor.component";export*from"./fm-article-editor/article.service";
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi90ZXh0L2luZGV4Lm1qcw==`
10
+
@@ -1,222 +1,10 @@
1
- import { Injectable } from "@angular/core";
2
- import { NovaCloudService } from "../../nova-cloud/nova-cloud.service";
3
- import Parse from "parse";
4
- import { AuthService } from "../login/auth.service";
5
- import { HttpClient } from "@angular/common/http";
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../nova-cloud/nova-cloud.service";
8
- import * as i2 from "../login/auth.service";
9
- import * as i3 from "@angular/common/http";
10
- export class AccountService {
11
- constructor(ncloud, authServ, http) {
12
- this.ncloud = ncloud;
13
- this.authServ = authServ;
14
- this.http = http;
15
- this.company = "";
16
- this.billing = {
17
- credit: {
18
- usedDetail: {},
19
- },
20
- };
21
- this.wxAppId = "";
22
- this.wxpayEnabled = false;
23
- this.appid = localStorage.getItem("WECHAT_APP_ID") || "wxb4193c93ae9aa696";
24
- this.company = this.authServ.company || localStorage.getItem("company");
25
- this.getBilling();
26
- this.getProfile();
27
- this.getUserOpenid();
28
- }
29
- /* 获取认证信息 */
30
- async getProfile() {
31
- let uid = Parse.User.current()?.id;
32
- if (!uid)
33
- return;
34
- let query = new Parse.Query("Profile");
35
- query.equalTo("user", uid);
36
- query.equalTo("company", this.company);
37
- query.notEqualTo("isDeleted", true);
38
- let profile = await query.first();
39
- if (profile?.id) {
40
- this.profile = profile;
41
- }
42
- }
43
- async getBilling() {
44
- let data;
45
- if (!Parse.User.current()?.getSessionToken())
46
- return; // 用户登陆时才可查询账单
47
- try {
48
- data = await this.ncloud.apig("aigc/account", null, "get");
49
- }
50
- catch (err) { }
51
- if (data?.credit) {
52
- this.billing = data;
53
- }
54
- return data;
55
- }
56
- /* 如果是微信内置浏览器,获取登录code */
57
- async getUserOpenid() {
58
- let ua = navigator.userAgent.toLowerCase();
59
- let isWeixin = ua.indexOf("micromessenger") != -1;
60
- let code = this.getQueryStringByName("code");
61
- let openid = localStorage.getItem("openid");
62
- if (!openid) {
63
- if (!Parse.User.current())
64
- return;
65
- let wechat = Parse.User.current().get("wechat");
66
- openid = wechat?.[this.appid]?.openid;
67
- if (isWeixin) {
68
- if (!code) {
69
- this.authWechat();
70
- }
71
- else {
72
- await this.getwechat(code);
73
- }
74
- }
75
- }
76
- }
77
- authWechat(url = "/account/billing") {
78
- if (!localStorage.getItem("openid")) {
79
- // let REDIRECT_URI = "https://ai.fmode.cn" + url;
80
- let REDIRECT_URI = window.location.href;
81
- REDIRECT_URI = encodeURIComponent(REDIRECT_URI);
82
- // console.log(REDIRECT_URI);
83
- // console.log(
84
- // "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
85
- // this.appid +
86
- // "&redirect_uri=" +
87
- // REDIRECT_URI +
88
- // "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"
89
- // );
90
- window.location.href =
91
- "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
92
- this.appid +
93
- "&redirect_uri=" +
94
- REDIRECT_URI +
95
- "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
96
- return;
97
- }
98
- }
99
- //根据QueryString参数名称获取值
100
- getQueryStringByName(name) {
101
- let result = location.search.match(new RegExp("[?&]" + name + "=([^&]+)", "i"));
102
- if (result == null || result.length < 1) {
103
- return "";
104
- }
105
- return result[1];
106
- }
107
- async getwechat(code, url = "/account/billing") {
108
- return new Promise(async (resolve, reject) => {
109
- this.http
110
- .post(`https://server.fmode.cn/api/wechat/get_wx`, {
111
- company: this.company,
112
- code: code,
113
- })
114
- .subscribe(async (res) => {
115
- console.log(res);
116
- if (res && res.code == 200 && res.data.openid) {
117
- let openid = res.data.openid;
118
- // localStorage.setItem('authData', JSON.stringify(res.data))
119
- localStorage.setItem("openid", openid);
120
- localStorage.removeItem("code");
121
- let wxopts = {};
122
- wxopts[this.appid] = {
123
- "openid": openid,
124
- },
125
- Parse.User.current().set("wechat", wxopts);
126
- await Parse.User.current().save();
127
- resolve(true);
128
- }
129
- }, async (err) => {
130
- console.log("Error updating items", err);
131
- this.authWechat(url);
132
- reject(false);
133
- });
134
- });
135
- }
136
- /* 获取微信签名 */
137
- getWXSignPackageInWechat() {
138
- let params = {
139
- company: this.company,
140
- href: encodeURIComponent(location.href.split("?")[0]),
141
- };
142
- this.http
143
- .post(`https://server.fmode.cn/api/wechat/getconfig`, params)
144
- .subscribe((response) => {
145
- // 返回的签名信息
146
- let res = response;
147
- const signPackage = res.data;
148
- this.wxAppId = signPackage.appid;
149
- this.wxpayEnabled = true;
150
- wx.config({
151
- debug: false, // 开启调试模式
152
- appId: signPackage.appid, // 必填,公众号的唯一标识
153
- timestamp: signPackage.timestamp, // 必填,生成签名的时间戳
154
- nonceStr: signPackage.nonceStr, // 必填,生成签名的随机串
155
- signature: signPackage.signature, // 必填,签名,见附录1
156
- jsApiList: [
157
- "chooseWXPay", // JSAPI微信支付
158
- 'onMenuShareTimeline', //分享到微信朋友圈
159
- 'onMenuShareAppMessage', //分享给微信朋友
160
- 'onMenuShareQQ', //分享到QQ
161
- 'onMenuShareQZone', //分享到QQ空间
162
- 'updateAppMessageShareData', //分享到微信及QQ(新接口)
163
- 'updateTimelineShareData' //分享到朋友圈”及“分享到QQ空间(新接口
164
- ], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
165
- });
166
- let url = 'https://ai.fmode.cn';
167
- let pathname = location.pathname;
168
- url + pathname + '?invite=' + Parse.User.current()?.id;
169
- let shareInfo = this.shareInfo || {
170
- title: '飞码AI', // 分享标题
171
- desc: '解放创意引领未来|国际前沿的AIGC平台', // 分享描述
172
- link: url, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
173
- type: 'link', //分享类型,music、video或link,不填默认为link
174
- imgUrl: 'https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png', // 分享图标
175
- success: function () {
176
- // 设置成功
177
- console.log('分享成功');
178
- },
179
- error: function () {
180
- console.log('分享失败');
181
- },
182
- cancel: function () {
183
- console.log('取消分享');
184
- }
185
- };
186
- wx.ready(() => {
187
- wx.updateAppMessageShareData(shareInfo); //分享到微信好友或者qq好友
188
- wx.updateTimelineShareData(shareInfo); //分享到朋友圈或者qq空间
189
- });
190
- wx.error(() => { });
191
- });
192
- }
193
- async saveAccountLog(info, orderid, company, message) {
194
- let url = "https://server.fmode.cn/api/apig/saveAccountLog";
195
- return new Promise((res, rej) => {
196
- this.http
197
- .post(url, {
198
- company: company,
199
- uid: Parse.User.current().id,
200
- orderid: orderid,
201
- info: info,
202
- })
203
- .subscribe((data) => {
204
- console.log(data);
205
- res(true);
206
- }, (err) => {
207
- console.warn(err);
208
- message && message.error("请求超时,请稍后再试");
209
- rej();
210
- });
211
- });
212
- }
213
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountService, deps: [{ token: i1.NovaCloudService }, { token: i2.AuthService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
214
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountService, providedIn: "root" }); }
215
- }
216
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccountService, decorators: [{
217
- type: Injectable,
218
- args: [{
219
- providedIn: "root",
220
- }]
221
- }], ctorParameters: () => [{ type: i1.NovaCloudService }, { type: i2.AuthService }, { type: i3.HttpClient }] });
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi91c2VyL2FjY291bnQvYWNjb3VudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdkUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBTWxELE1BQU0sT0FBTyxjQUFjO0lBWXpCLFlBQ1UsTUFBd0IsRUFDeEIsUUFBcUIsRUFDckIsSUFBZ0I7UUFGaEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUNyQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBZDFCLFlBQU8sR0FBVyxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFRO1lBQ2IsTUFBTSxFQUFFO2dCQUNOLFVBQVUsRUFBRSxFQUFFO2FBQ2Y7U0FDRixDQUFDO1FBRUYsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLFVBQUssR0FBVSxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDO1FBTzNFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEVB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QUFFLElBQUk7YUFDWCxDQUFDO2lCQUNELFNBQVMsQ0FDUixDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xCLEdBQUcsQ0FBRSxJQUFJLENBQUMsQ0FBQTtZQUNaLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUN2QyxHQUFHLEVBQUUsQ0FBQTtZQUNQLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDOytHQXhOVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBOb3ZhQ2xvdWRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL25vdmEtY2xvdWQvbm92YS1jbG91ZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCBQYXJzZSBmcm9tIFwicGFyc2VcIjtcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tIFwiLi4vbG9naW4vYXV0aC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuZGVjbGFyZSB2YXIgd3g6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjY291bnRTZXJ2aWNlIHtcclxuICBjb21wYW55OiBzdHJpbmcgPSBcIlwiO1xyXG4gIGJpbGxpbmc6IGFueSA9IHtcclxuICAgIGNyZWRpdDoge1xyXG4gICAgICB1c2VkRGV0YWlsOiB7fSxcclxuICAgIH0sXHJcbiAgfTtcclxuICBwcm9maWxlOiBQYXJzZS5PYmplY3Q7XHJcbiAgd3hBcHBJZCA9IFwiXCI7XHJcbiAgd3hwYXlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgYXBwaWQ6c3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJXRUNIQVRfQVBQX0lEXCIpIHx8IFwid3hiNDE5M2M5M2FlOWFhNjk2XCI7XHJcbiAgc2hhcmVJbmZvOmFueVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuY2xvdWQ6IE5vdmFDbG91ZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2OiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wYW55ID0gdGhpcy5hdXRoU2Vydi5jb21wYW55IHx8IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY29tcGFueVwiKTtcclxuICAgIHRoaXMuZ2V0QmlsbGluZygpO1xyXG4gICAgdGhpcy5nZXRQcm9maWxlKCk7XHJcbiAgICB0aGlzLmdldFVzZXJPcGVuaWQoKTtcclxuICB9XHJcbiAgLyog6I635Y+W6K6k6K+B5L+h5oGvICovXHJcbiAgYXN5bmMgZ2V0UHJvZmlsZSgpIHtcclxuICAgIGxldCB1aWQgPSBQYXJzZS5Vc2VyLmN1cnJlbnQoKT8uaWQ7XHJcbiAgICBpZiAoIXVpZCkgcmV0dXJuO1xyXG4gICAgbGV0IHF1ZXJ5ID0gbmV3IFBhcnNlLlF1ZXJ5KFwiUHJvZmlsZVwiKTtcclxuICAgIHF1ZXJ5LmVxdWFsVG8oXCJ1c2VyXCIsIHVpZCk7XHJcbiAgICBxdWVyeS5lcXVhbFRvKFwiY29tcGFueVwiLCB0aGlzLmNvbXBhbnkpO1xyXG4gICAgcXVlcnkubm90RXF1YWxUbyhcImlzRGVsZXRlZFwiLCB0cnVlKTtcclxuICAgIGxldCBwcm9maWxlID0gYXdhaXQgcXVlcnkuZmlyc3QoKTtcclxuICAgIGlmIChwcm9maWxlPy5pZCkge1xyXG4gICAgICB0aGlzLnByb2ZpbGUgPSBwcm9maWxlO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3luYyBnZXRCaWxsaW5nKCkge1xyXG4gICAgbGV0IGRhdGE6IGFueTtcclxuICAgIGlmKCFQYXJzZS5Vc2VyLmN1cnJlbnQoKT8uZ2V0U2Vzc2lvblRva2VuKCkpcmV0dXJuIC8vIOeUqOaIt+eZu+mZhuaXtuaJjeWPr+afpeivoui0puWNlVxyXG4gICAgdHJ5IHtcclxuICAgICAgZGF0YSA9IGF3YWl0IHRoaXMubmNsb3VkLmFwaWcoXCJhaWdjL2FjY291bnRcIiwgbnVsbCwgXCJnZXRcIik7XHJcbiAgICB9IGNhdGNoIChlcnIpIHt9XHJcbiAgICBpZiAoZGF0YT8uY3JlZGl0KSB7XHJcbiAgICAgIHRoaXMuYmlsbGluZyA9IGRhdGE7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcbiAgLyog5aaC5p6c5piv5b6u5L+h5YaF572u5rWP6KeI5Zmo77yM6I635Y+W55m75b2VY29kZSAqL1xyXG4gIGFzeW5jIGdldFVzZXJPcGVuaWQoKSB7XHJcbiAgICBsZXQgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7XHJcbiAgICBsZXQgaXNXZWl4aW4gPSB1YS5pbmRleE9mKFwibWljcm9tZXNzZW5nZXJcIikgIT0gLTE7XHJcbiAgICBsZXQgY29kZSA9IHRoaXMuZ2V0UXVlcnlTdHJpbmdCeU5hbWUoXCJjb2RlXCIpO1xyXG4gICAgbGV0IG9wZW5pZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwib3BlbmlkXCIpO1xyXG4gICAgaWYgKCFvcGVuaWQpIHtcclxuICAgICAgaWYoIVBhcnNlLlVzZXIuY3VycmVudCgpKSByZXR1cm5cclxuICAgICAgbGV0IHdlY2hhdCA9IFBhcnNlLlVzZXIuY3VycmVudCgpLmdldChcIndlY2hhdFwiKTtcclxuICAgICAgb3BlbmlkID0gd2VjaGF0Py5bdGhpcy5hcHBpZF0/Lm9wZW5pZDtcclxuICAgICAgaWYgKGlzV2VpeGluKSB7XHJcbiAgICAgICAgaWYgKCFjb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLmF1dGhXZWNoYXQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5nZXR3ZWNoYXQoY29kZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGF1dGhXZWNoYXQodXJsOiBzdHJpbmcgPSBcIi9hY2NvdW50L2JpbGxpbmdcIikge1xyXG4gICAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcIm9wZW5pZFwiKSkge1xyXG4gICAgICAvLyBsZXQgUkVESVJFQ1RfVVJJID0gXCJodHRwczovL2FpLmZtb2RlLmNuXCIgKyB1cmw7XHJcbiAgICAgIGxldCBSRURJUkVDVF9VUkkgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcclxuICAgICAgUkVESVJFQ1RfVVJJID0gZW5jb2RlVVJJQ29tcG9uZW50KFJFRElSRUNUX1VSSSk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFJFRElSRUNUX1VSSSk7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKFxyXG4gICAgICAvLyAgIFwiaHR0cHM6Ly9vcGVuLndlaXhpbi5xcS5jb20vY29ubmVjdC9vYXV0aDIvYXV0aG9yaXplP2FwcGlkPVwiICtcclxuICAgICAgLy8gICAgIHRoaXMuYXBwaWQgK1xyXG4gICAgICAvLyAgICAgXCImcmVkaXJlY3RfdXJpPVwiICtcclxuICAgICAgLy8gICAgIFJFRElSRUNUX1VSSSArXHJcbiAgICAgIC8vICAgICBcIiZyZXNwb25zZV90eXBlPWNvZGUmc2NvcGU9c25zYXBpX2Jhc2Umc3RhdGU9U1RBVEUjd2VjaGF0X3JlZGlyZWN0XCJcclxuICAgICAgLy8gKTtcclxuICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPVxyXG4gICAgICAgIFwiaHR0cHM6Ly9vcGVuLndlaXhpbi5xcS5jb20vY29ubmVjdC9vYXV0aDIvYXV0aG9yaXplP2FwcGlkPVwiICtcclxuICAgICAgICB0aGlzLmFwcGlkICtcclxuICAgICAgICBcIiZyZWRpcmVjdF91cmk9XCIgK1xyXG4gICAgICAgIFJFRElSRUNUX1VSSSArXHJcbiAgICAgICAgXCImcmVzcG9uc2VfdHlwZT1jb2RlJnNjb3BlPXNuc2FwaV91c2VyaW5mbyZzdGF0ZT1TVEFURSN3ZWNoYXRfcmVkaXJlY3RcIjtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL+agueaNrlF1ZXJ5U3RyaW5n5Y+C5pWw5ZCN56ew6I635Y+W5YC8XHJcbiAgZ2V0UXVlcnlTdHJpbmdCeU5hbWUobmFtZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gbG9jYXRpb24uc2VhcmNoLm1hdGNoKFxyXG4gICAgICBuZXcgUmVnRXhwKFwiWz8mXVwiICsgbmFtZSArIFwiPShbXiZdKylcIiwgXCJpXCIpXHJcbiAgICApO1xyXG4gICAgaWYgKHJlc3VsdCA9PSBudWxsIHx8IHJlc3VsdC5sZW5ndGggPCAxKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc3VsdFsxXTtcclxuICB9XHJcbiAgYXN5bmMgZ2V0d2VjaGF0KFxyXG4gICAgY29kZTogc3RyaW5nLFxyXG4gICAgdXJsOiBzdHJpbmcgPSBcIi9hY2NvdW50L2JpbGxpbmdcIlxyXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgLnBvc3QoYGh0dHBzOi8vc2VydmVyLmZtb2RlLmNuL2FwaS93ZWNoYXQvZ2V0X3d4YCwge1xyXG4gICAgICAgICAgY29tcGFueTogdGhpcy5jb21wYW55LFxyXG4gICAgICAgICAgY29kZTogY29kZSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICBhc3luYyAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2cocmVzKTtcclxuICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDAgJiYgcmVzLmRhdGEub3BlbmlkKSB7XHJcbiAgICAgICAgICAgICAgbGV0IG9wZW5pZCA9IHJlcy5kYXRhLm9wZW5pZDtcclxuICAgICAgICAgICAgICAvLyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYXV0aERhdGEnLCBKU09OLnN0cmluZ2lmeShyZXMuZGF0YSkpXHJcbiAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJvcGVuaWRcIiwgb3BlbmlkKTtcclxuICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShcImNvZGVcIik7XHJcbiAgICAgICAgICAgICAgbGV0IHd4b3B0cyA9IHt9XHJcbiAgICAgICAgICAgICAgd3hvcHRzW3RoaXMuYXBwaWRdID0ge1xyXG4gICAgICAgICAgICAgICAgXCJvcGVuaWRcIjogb3BlbmlkLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgUGFyc2UuVXNlci5jdXJyZW50KCkuc2V0KFwid2VjaGF0XCIsIHd4b3B0cyk7XHJcbiAgICAgICAgICAgICAgYXdhaXQgUGFyc2UuVXNlci5jdXJyZW50KCkuc2F2ZSgpO1xyXG4gICAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBhc3luYyAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiRXJyb3IgdXBkYXRpbmcgaXRlbXNcIiwgZXJyKTtcclxuICAgICAgICAgICAgdGhpcy5hdXRoV2VjaGF0KHVybCk7XHJcbiAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKiDojrflj5blvq7kv6Hnrb7lkI0gKi9cclxuICBnZXRXWFNpZ25QYWNrYWdlSW5XZWNoYXQoKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICBjb21wYW55OiB0aGlzLmNvbXBhbnksXHJcbiAgICAgIGhyZWY6IGVuY29kZVVSSUNvbXBvbmVudChsb2NhdGlvbi5ocmVmLnNwbGl0KFwiP1wiKVswXSksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5odHRwXHJcbiAgICAgIC5wb3N0KGBodHRwczovL3NlcnZlci5mbW9kZS5jbi9hcGkvd2VjaGF0L2dldGNvbmZpZ2AsIHBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyDov5Tlm57nmoTnrb7lkI3kv6Hmga9cclxuICAgICAgICBsZXQgcmVzOiBhbnkgPSByZXNwb25zZTtcclxuICAgICAgICBjb25zdCBzaWduUGFja2FnZSA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMud3hBcHBJZCA9IHNpZ25QYWNrYWdlLmFwcGlkO1xyXG4gICAgICAgIHRoaXMud3hwYXlFbmFibGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgd3guY29uZmlnKHtcclxuICAgICAgICAgIGRlYnVnOiBmYWxzZSwgLy8g5byA5ZCv6LCD6K+V5qih5byPXHJcbiAgICAgICAgICBhcHBJZDogc2lnblBhY2thZ2UuYXBwaWQsIC8vIOW/heWhq++8jOWFrOS8l+WPt+eahOWUr+S4gOagh+ivhlxyXG4gICAgICAgICAgdGltZXN0YW1wOiBzaWduUGFja2FnZS50aW1lc3RhbXAsIC8vIOW/heWhq++8jOeUn+aIkOetvuWQjeeahOaXtumXtOaIs1xyXG4gICAgICAgICAgbm9uY2VTdHI6IHNpZ25QYWNrYWdlLm5vbmNlU3RyLCAvLyDlv4XloavvvIznlJ/miJDnrb7lkI3nmoTpmo/mnLrkuLJcclxuICAgICAgICAgIHNpZ25hdHVyZTogc2lnblBhY2thZ2Uuc2lnbmF0dXJlLCAvLyDlv4XloavvvIznrb7lkI3vvIzop4HpmYTlvZUxXHJcbiAgICAgICAgICBqc0FwaUxpc3Q6IFtcclxuICAgICAgICAgICAgXCJjaG9vc2VXWFBheVwiLCAvLyBKU0FQSeW+ruS/oeaUr+S7mFxyXG4gICAgICAgICAgICAnb25NZW51U2hhcmVUaW1lbGluZScsIC8v5YiG5Lqr5Yiw5b6u5L+h5pyL5Y+L5ZyIXHJcbiAgICAgICAgICAgICdvbk1lbnVTaGFyZUFwcE1lc3NhZ2UnLCAvL+WIhuS6q+e7meW+ruS/oeaci+WPi1xyXG4gICAgICAgICAgICAnb25NZW51U2hhcmVRUScsIC8v5YiG5Lqr5YiwUVFcclxuICAgICAgICAgICAgJ29uTWVudVNoYXJlUVpvbmUnLCAvL+WIhuS6q+WIsFFR56m66Ze0XHJcbiAgICAgICAgICAgICd1cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhJywgLy/liIbkuqvliLDlvq7kv6Hlj4pRUe+8iOaWsOaOpeWPo++8iVxyXG4gICAgICAgICAgICAndXBkYXRlVGltZWxpbmVTaGFyZURhdGEnIC8v5YiG5Lqr5Yiw5pyL5Y+L5ZyI4oCd5Y+K4oCc5YiG5Lqr5YiwUVHnqbrpl7TvvIjmlrDmjqXlj6NcclxuICAgICAgICAgIF0sIC8vIOW/heWhq++8jOmcgOimgeS9v+eUqOeahEpT5o6l5Y+j5YiX6KGo77yM5omA5pyJSlPmjqXlj6PliJfooajop4HpmYTlvZUyXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IHVybCA9ICdodHRwczovL2FpLmZtb2RlLmNuJ1xyXG4gICAgICAgIGxldCBwYXRobmFtZSA9IGxvY2F0aW9uLnBhdGhuYW1lXHJcbiAgICAgICAgdXJsICsgcGF0aG5hbWUgKyAnP2ludml0ZT0nICsgUGFyc2UuVXNlci5jdXJyZW50KCk/LmlkXHJcbiAgICAgICAgbGV0IHNoYXJlSW5mbyA9IHRoaXMuc2hhcmVJbmZvIHx8IHtcclxuICAgICAgICAgIHRpdGxlOiAn6aOe56CBQUknLCAvLyDliIbkuqvmoIfpophcclxuICAgICAgICAgIGRlc2M6ICfop6PmlL7liJvmhI/lvJXpoobmnKrmnaV85Zu96ZmF5YmN5rK/55qEQUlHQ+W5s+WPsCcsIC8vIOWIhuS6q+aPj+i/sFxyXG4gICAgICAgICAgbGluazogdXJsLCAvLyDliIbkuqvpk77mjqXvvIzor6Xpk77mjqXln5/lkI3miJbot6/lvoTlv4XpobvkuI7lvZPliY3pobXpnaLlr7nlupTnmoTlhazkvJflj7dKU+WuieWFqOWfn+WQjeS4gOiHtFxyXG4gICAgICAgICAgdHlwZTogJ2xpbmsnLCAvL+WIhuS6q+exu+WeiyxtdXNpY+OAgXZpZGVv5oiWbGlua++8jOS4jeWhq+m7mOiupOS4umxpbmtcclxuICAgICAgICAgIGltZ1VybDogJ2h0dHBzOi8vZmlsZS1jbG91ZC5mbW9kZS5jbi9FNEtwR3ZURXRvLzIwMjMwODIyLzNta2Y0MTAzMzYyMzI3NS5wbmcnLCAvLyDliIbkuqvlm77moIdcclxuICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICAvLyDorr7nva7miJDlip9cclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+WIhuS6q+aIkOWKnycpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVycm9yOiBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coJ+WIhuS6q+Wksei0pScpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGNhbmNlbDogZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCflj5bmtojliIbkuqsnKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB3eC5yZWFkeSgoKSA9PiB7XHJcbiAgICAgICAgICB3eC51cGRhdGVBcHBNZXNzYWdlU2hhcmVEYXRhKHNoYXJlSW5mbyk7IC8v5YiG5Lqr5Yiw5b6u5L+h5aW95Y+L5oiW6ICFcXHlpb3lj4tcclxuICAgICAgICAgIHd4LnVwZGF0ZVRpbWVsaW5lU2hhcmVEYXRhKHNoYXJlSW5mbyk7IC8v5YiG5Lqr5Yiw5pyL5Y+L5ZyI5oiW6ICFcXHnqbrpl7RcclxuICAgICAgICB9KTtcclxuICAgICAgICB3eC5lcnJvcigoKSA9PiB7fSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBhc3luYyBzYXZlQWNjb3VudExvZyhpbmZvOiBvYmplY3QsIG9yZGVyaWQ6c3RyaW5nLCBjb21wYW55OnN0cmluZywgbWVzc2FnZTphbnkpIHtcclxuICAgIGxldCB1cmwgPSBcImh0dHBzOi8vc2VydmVyLmZtb2RlLmNuL2FwaS9hcGlnL3NhdmVBY2NvdW50TG9nXCI7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcyxyZWopPT57XHJcbiAgICAgIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh1cmwsIHtcclxuICAgICAgICBjb21wYW55OiBjb21wYW55LFxyXG4gICAgICAgIHVpZDogUGFyc2UuVXNlci5jdXJyZW50KCkuaWQsXHJcbiAgICAgICAgb3JkZXJpZDogb3JkZXJpZCxcclxuICAgICAgICBpbmZvOiBpbmZvLFxyXG4gICAgICB9KVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgICAgcmVzICh0cnVlKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS53YXJuKGVycik7XHJcbiAgICAgICAgICBtZXNzYWdlICYmIG1lc3NhZ2UuZXJyb3IoXCLor7fmsYLotoXml7bvvIzor7fnqI3lkI7lho3or5VcIik7XHJcbiAgICAgICAgICByZWooKVxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pXHJcbiAgICBcclxuICB9XHJcbn1cclxuIl19
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/user/account/account.service.mjs
7
+ */
8
+ import{Injectable}from"@angular/core";import{NovaCloudService}from"../../nova-cloud/nova-cloud.service";import{FmodeParse}from"@fmode/parse";import{AuthService}from"../login/auth.service";import{HttpClient}from"@angular/common/http";import*as i0 from"@angular/core";import*as i1 from"../../nova-cloud/nova-cloud.service";import*as i2 from"../login/auth.service";import*as i3 from"@angular/common/http";const Parse=FmodeParse.with("nova");export class AccountService{constructor(e,t,o){this.ncloud=e,this.authServ=t,this.http=o,this.company="",this.billing={credit:{usedDetail:{}}},this.wxAppId="",this.wxpayEnabled=!1,this.appid=localStorage.getItem("WECHAT_APP_ID")||"wxb4193c93ae9aa696",this.company=this.authServ.company||localStorage.getItem("company"),this.getBilling(),this.getProfile(),this.getUserOpenid()}async getProfile(){let e=Parse.User.current()?.id;if(!e)return;let t=new Parse.Query("Profile");t.equalTo("user",e),t.equalTo("company",this.company),t.notEqualTo("isDeleted",!0);let o=await t.first();o?.id&&(this.profile=o)}async getBilling(){let e;if(Parse.User.current()?.getSessionToken()){try{e=await this.ncloud.apig("aigc/account",null,"get")}catch(e){}return e?.credit&&(this.billing=e),e}}async getUserOpenid(){let e=-1!=navigator.userAgent.toLowerCase().indexOf("micromessenger"),t=this.getQueryStringByName("code"),o=localStorage.getItem("openid");if(!o){if(!Parse.User.current())return;let i=Parse.User.current().get("wechat");o=i?.[this.appid]?.openid,e&&(t?await this.getwechat(t):this.authWechat())}}authWechat(e="/account/billing"){if(!localStorage.getItem("openid")){let e=window.location.href;return e=encodeURIComponent(e),void(window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+this.appid+"&redirect_uri="+e+"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect")}}getQueryStringByName(e){let t=location.search.match(new RegExp("[?&]"+e+"=([^&]+)","i"));return null==t||t.length<1?"":t[1]}async getwechat(e,t="/account/billing"){return new Promise((async(o,i)=>{this.http.post("https://server.fmode.cn/api/wechat/get_wx",{company:this.company,code:e}).subscribe((async e=>{if(console.log(e),e&&200==e.code&&e.data.openid){let t=e.data.openid;localStorage.setItem("openid",t),localStorage.removeItem("code");let i={};i[this.appid]={openid:t},Parse.User.current().set("wechat",i),await Parse.User.current().save(),o(!0)}}),(async e=>{console.log("Error updating items",e),this.authWechat(t),i(!1)}))}))}getWXSignPackageInWechat(){let e={company:this.company,href:encodeURIComponent(location.href.split("?")[0])};this.http.post("https://server.fmode.cn/api/wechat/getconfig",e).subscribe((e=>{const t=e.data;this.wxAppId=t.appid,this.wxpayEnabled=!0,wx.config({debug:!1,appId:t.appid,timestamp:t.timestamp,nonceStr:t.nonceStr,signature:t.signature,jsApiList:["chooseWXPay","onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQQ","onMenuShareQZone","updateAppMessageShareData","updateTimelineShareData"]});let o="https://ai.fmode.cn";location.pathname;Parse.User.current()?.id;let i=this.shareInfo||{title:"飞码AI",desc:"解放创意引领未来|国际前沿的AIGC平台",link:o,type:"link",imgUrl:"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png",success:function(){console.log("分享成功")},error:function(){console.log("分享失败")},cancel:function(){console.log("取消分享")}};wx.ready((()=>{wx.updateAppMessageShareData(i),wx.updateTimelineShareData(i)})),wx.error((()=>{}))}))}async saveAccountLog(e,t,o,i){return new Promise(((a,r)=>{this.http.post("https://server.fmode.cn/api/apig/saveAccountLog",{company:o,uid:Parse.User.current().id,orderid:t,info:e}).subscribe((e=>{console.log(e),a(!0)}),(e=>{console.warn(e),i&&i.error("请求超时,请稍后再试"),r()}))}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:AccountService,deps:[{token:i1.NovaCloudService},{token:i2.AuthService},{token:i3.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:AccountService,providedIn:"root"})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:AccountService,decorators:[{type:Injectable,args:[{providedIn:"root"}]}],ctorParameters:()=>[{type:i1.NovaCloudService},{type:i2.AuthService},{type:i3.HttpClient}]});
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi91c2VyL2FjY291bnQvYWNjb3VudC5zZXJ2aWNlLm1qcw==`
10
+