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,315 +1,10 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { NovaCloudService } from '../../../nova-cloud/nova-cloud.service';
4
- import Parse from "parse";
5
- import { NovaUploadService } from '../../../storage/service-upload/nova-upload.service';
6
- import { drawDalle, getJimengImg, getJimengT_v, getJimengV_data, getJimengI_v } from './imagine-func';
7
- import { ToastController } from '@ionic/angular';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common/http";
10
- import * as i2 from "../../../nova-cloud/nova-cloud.service";
11
- import * as i3 from "../../../storage/service-upload/nova-upload.service";
12
- import * as i4 from "@ionic/angular";
13
- /**
14
- * ImagineService AI绘画服务
15
- */
16
- export class ImagineService {
1
+
17
2
  /**
18
- * 图片生成接口主机地址
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/service-fmai/service-imagine/imagine.service.mjs
19
7
  */
20
- constructor(http, ncloud, uploadServ, toastCtrl) {
21
- this.http = http;
22
- this.ncloud = ncloud;
23
- this.uploadServ = uploadServ;
24
- this.toastCtrl = toastCtrl;
25
- this.taskDetailMap = {};
26
- /**
27
- * 我的绘画作品共享方法
28
- */
29
- this.newWorkList = [];
30
- this.myWorkList = [];
31
- }
32
- /**
33
- * DALL-E-3 图片生成函数
34
- * @description
35
- * @see
36
- * https://p4.hosteagle.club/docs/api-reference?__cpo=aHR0cHM6Ly9wbGF0Zm9ybS5vcGVuYWkuY29t
37
- * @returns
38
- * {
39
- "id": "lpJGiFwWeA", // 图片生成任务ID
40
- "createdAt": "2024-11-27T12:18:14.463Z"
41
- }
42
- * @param {DalleOptions} options
43
- * @param {string} options.prompt 1000 characters for dall-e-2 and 4000 characters for dall-e-3.
44
- * @param {string} options.model dall-e-3 dall-e-2
45
- * @param {string} options.quality dall-e-3 only hd means more details & consistency
46
- * @param {string} options.response_format url | b64_json
47
- * @param {string} options.size 1024x1024, 1792x1024, or 1024x1792 for dall-e-3
48
- * @param {string} options.style vivid | natural dall-e-3 only
49
- */
50
- async drawDalle(options) {
51
- let work = await drawDalle(options);
52
- if (work?.id)
53
- this.newWorkList.unshift(work);
54
- return work;
55
- }
56
- priceDalle(options) {
57
- let priceList = [
58
- { "model": "dall-e-3", quality: null, "size": "1024x1024", "credit": 2 * 10 * 8 * 0.04 },
59
- { "model": "dall-e-3", quality: null, "size": "1024x1792", "credit": 2 * 10 * 8 * 0.08 },
60
- { "model": "dall-e-3", quality: null, "size": "1792x1024", "credit": 2 * 10 * 8 * 0.08 },
61
- { "model": "dall-e-3", quality: "hd", "size": "1024x1024", "credit": 2 * 10 * 8 * 0.08 },
62
- { "model": "dall-e-3", quality: "hd", "size": "1024x1792", "credit": 2 * 10 * 8 * 0.12 },
63
- { "model": "dall-e-3", quality: "hd", "size": "1792x1024", "credit": 2 * 10 * 8 * 0.12 },
64
- { "model": "dall-e-2", quality: null, "size": "1024x1024", "credit": 2 * 10 * 8 * 0.02 },
65
- { "model": "dall-e-2", quality: null, "size": "512x512", "credit": 2 * 10 * 8 * 0.018 },
66
- { "model": "dall-e-2", quality: null, "size": "256x256", "credit": 2 * 10 * 8 * 0.016 }
67
- ];
68
- let price = priceList.find(item => item.model == options.model && item.quality == options.quality && item.size == options.size);
69
- let credit = price?.credit || 2 * 10 * 8 * 0.12;
70
- return credit;
71
- }
72
- priceStableDiffusion(options) {
73
- let size = options.width * options.height;
74
- let num = 0.3; //飞码能量换算常数
75
- let credit = size * 0.000000763 * options.steps
76
- + size * 0.00002278 * (options?.upscale || 0)
77
- + (options?.hrSteps || 0) * size * (options?.hrScale || 0) * (options?.hrScale || 0) * 0.000000763
78
- + (options?.faceFix ? 2 : 0)
79
- + (options?.imgOptions?.removeBackground ? 2 : 0)
80
- + (options?.imgOptions?.redrawBackground ? 2 : 0)
81
- + (options?.imgOptions?.facePreservation ? 2 : 0)
82
- + (options?.imgOptions?.genderDetect ? 1 : 0)
83
- + (options?.controlnet?.units?.length || 0) * 2;
84
- // console.log(credit);
85
- credit = credit * num * options.batchSize;
86
- // console.log(credit);
87
- return credit;
88
- }
89
- b64DataToBase64Image(b64_json) {
90
- let data = atob(b64_json);
91
- let blob = new Blob([data], { type: 'image/webp' });
92
- new Promise(resolve => {
93
- // 使用 FileReader 将 Blob 对象转换为 base64 字符串
94
- let reader = new FileReader();
95
- reader.onloadend = function () {
96
- let base64data = reader.result;
97
- console.log(base64data);
98
- resolve(base64data);
99
- };
100
- reader.readAsDataURL(blob);
101
- });
102
- }
103
- /**
104
- * Huashi6专用绘图函数
105
- * @param reqBody
106
- * @see
107
- * 接口reqBody参数,参考:https://www.showdoc.com.cn/2307900595645609/10319675987319598
108
- * 密码:123456
109
- * @returns
110
- */
111
- async draw(reqBody) {
112
- let data = await this.ncloud.apig("aigc/sdapi/v1/draw", reqBody);
113
- // 正常生成taskId后,获取数据添加到列表中
114
- let taskId = data?.paintingSign;
115
- if (taskId) {
116
- setTimeout(async () => {
117
- let query = new Parse.Query("ImagineWork");
118
- query.equalTo("taskId", taskId);
119
- let work = await query.first();
120
- console.log(work);
121
- if (work?.id)
122
- this.newWorkList.unshift(work);
123
- }, 1000);
124
- }
125
- return data;
126
- }
127
- /**
128
- * 已完成的直接加载,未完成的再接口更新
129
- * @param taskId
130
- * @returns
131
- */
132
- async taskDetail(taskId) {
133
- let data = await this.ncloud.apig("aigc/sdapi/v1/task/detail", { taskId: taskId });
134
- console.log(data);
135
- this.taskDetailMap[taskId] = data;
136
- return data;
137
- }
138
- getMyWorkQuery() {
139
- let user = Parse.User.current();
140
- if (!user?.id)
141
- return;
142
- let query = this.getWorkQuery();
143
- query.include("model", "module", "user");
144
- query.equalTo("user", user.toPointer());
145
- return query;
146
- }
147
- getWorkQuery() {
148
- // 获取 1 分钟前的时间
149
- let oneMinutesAgo = new Date(new Date().getTime() - 1 * 60 * 1000);
150
- let query = Parse.Query.fromJSON("ImagineWork", {
151
- where: {
152
- // $or: [
153
- // // 超时60秒,且进度不为0
154
- // { createdAt: { $lte: oneMinutesAgo }, progress: { $ne: 0 } },
155
- // // 60秒内,不限进度
156
- // { createdAt: { $gt: oneMinutesAgo } }
157
- // ]
158
- }
159
- });
160
- query.include("model", "module", "user");
161
- query.notEqualTo("isDeleted", true);
162
- query.notEqualTo("isFailed", true);
163
- query.doesNotExist("respData.error"); // DE 算力瓶颈
164
- query.doesNotExist("respData.data.taskLimitCount"); // SD并发超限
165
- query.addDescending("createdAt");
166
- return query;
167
- }
168
- getimg() {
169
- return new Promise((resolve, reject) => {
170
- let input = document.createElement('input');
171
- input.type = 'file';
172
- input.click();
173
- let handleChange = async () => {
174
- input.removeEventListener('change', handleChange);
175
- if (input.files && input.files.length > 0) {
176
- let file = input.files[0];
177
- let fileResult = await this.uploadServ.upload(file, (res) => {
178
- console.log(res); // 上传进度,可以同步更新页面上传百分比
179
- res.total.percent.toFixed(2); //上传进度
180
- });
181
- // 测试使用固定图片
182
- // let fileResult = {
183
- // url: "https://file-cloud.fmode.cn/E4KpGvTEto/20230808/s12uh1092414597.png"
184
- // };
185
- resolve(fileResult.url);
186
- }
187
- else {
188
- reject("未选择文件");
189
- }
190
- };
191
- input.addEventListener('change', handleChange);
192
- });
193
- }
194
- /**
195
- * 即梦图片生成函数
196
- * @param options 图像参数
197
- */
198
- async getJimengImg(options) {
199
- let work_occupy = new Parse.Object('ImagineWork');
200
- work_occupy.set('__pending', true);
201
- work_occupy.set('__id', Symbol());
202
- work_occupy.set('images', ['']);
203
- this.newWorkList.unshift(work_occupy);
204
- try {
205
- let work = await getJimengImg(options);
206
- let index = this.newWorkList?.findIndex(item => item?.get('__id') === work_occupy?.get('__id'));
207
- if (index == -1)
208
- return;
209
- if (!work?.id) {
210
- this.newWorkList.splice(index, 1);
211
- return;
212
- }
213
- this.newWorkList.splice(index, 1, work);
214
- }
215
- catch (error) {
216
- let index = this.newWorkList?.findIndex(item => item?.get('__id') === work_occupy?.get('__id'));
217
- if (index == -1)
218
- return;
219
- this.newWorkList.splice(index, 1);
220
- }
221
- }
222
- /**
223
- * 即梦视频生成函数
224
- * @param options 图像参数
225
- * @param type 类型 文生视频无需填写,图生视频填'i_v'
226
- * @returns
227
- */
228
- async getJimengVideo(options, type) {
229
- let work_occupy = new Parse.Object('ImagineWork');
230
- work_occupy.set('__pending', true);
231
- work_occupy.set('__id', Symbol());
232
- work_occupy.set('provider', 'volcengine');
233
- work_occupy.set('taskId', '1');
234
- this.newWorkList.unshift(work_occupy);
235
- try {
236
- let work;
237
- if (type == 'i_v') {
238
- work = await getJimengI_v(options);
239
- }
240
- else {
241
- work = await getJimengT_v(options);
242
- }
243
- let index = this.newWorkList?.findIndex(item => item?.get('__id') === work_occupy?.get('__id'));
244
- if (index == -1)
245
- return;
246
- if (!work?.id) {
247
- this.newWorkList.splice(index, 1);
248
- this.setToast('创建有误,请稍后再试');
249
- return;
250
- }
251
- this.newWorkList.splice(index, 1, work);
252
- }
253
- catch (error) {
254
- let index = this.newWorkList?.findIndex(item => item?.get('__id') === work_occupy?.get('__id'));
255
- if (index == -1)
256
- return;
257
- this.newWorkList.splice(index, 1);
258
- }
259
- }
260
- /**
261
- * 即梦视频请求结果
262
- * @param video_by 获取类型:文生视频/图生视频 'text'|'img'
263
- * @param workId 作品id
264
- */
265
- async getJimengVideoData(video_by, workId) {
266
- try {
267
- let work = await getJimengV_data({ video_by, workId });
268
- console.log('请求结果', work);
269
- if (work?.error) {
270
- this.setToast(work?.error?.message || work?.error?.msg || work?.err?.message || work?.err?.msg || '请求错误');
271
- return;
272
- }
273
- if (work?.get('progress') !== 1 || work?.get('videos')?.length <= 0)
274
- return;
275
- let index = this.newWorkList?.findIndex(item => item?.id === workId);
276
- if (index == -1)
277
- return;
278
- if (!work?.id) {
279
- this.newWorkList.splice(index, 1);
280
- return;
281
- }
282
- this.newWorkList.splice(index, 1, work);
283
- return work;
284
- }
285
- catch (error) {
286
- let index = this.newWorkList?.findIndex(item => item?.id === workId);
287
- if (index == -1)
288
- return;
289
- this.newWorkList.splice(index, 1);
290
- }
291
- }
292
- /**
293
- * 提示
294
- * @param msg 提示语
295
- */
296
- async setToast(msg) {
297
- let toast = await this.toastCtrl.create({
298
- duration: 1000,
299
- message: msg || '请求错误',
300
- color: 'primary',
301
- icon: "information-circle",
302
- position: "top"
303
- });
304
- toast.present();
305
- }
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImagineService, deps: [{ token: i1.HttpClient }, { token: i2.NovaCloudService }, { token: i3.NovaUploadService }, { token: i4.ToastController }], target: i0.ɵɵFactoryTarget.Injectable }); }
307
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImagineService, providedIn: 'root' }); }
308
- }
309
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImagineService, decorators: [{
310
- type: Injectable,
311
- args: [{
312
- providedIn: 'root'
313
- }]
314
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.NovaCloudService }, { type: i3.NovaUploadService }, { type: i4.ToastController }] });
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2luZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9haWdjL3NlcnZpY2UtZm1haS9zZXJ2aWNlLWltYWdpbmUvaW1hZ2luZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUV4RixPQUFPLEVBQ1MsU0FBUyxFQUV2QixZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBQyxZQUFZLEVBQ3pELE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFnRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFFekI7O09BRUc7SUFDSCxZQUNVLElBQWdCLEVBQ2hCLE1BQXdCLEVBQ3hCLFVBQTZCLEVBQzdCLFNBQTBCO1FBSDFCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7UUFDeEIsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFDN0IsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUE4R3BDLGtCQUFhLEdBQVEsRUFBRSxDQUFBO1FBRXZCOztXQUVHO1FBQ0gsZ0JBQVcsR0FBd0IsRUFBRSxDQUFBO1FBQ3JDLGVBQVUsR0FBd0IsRUFBRSxDQUFBO0lBbkhoQyxDQUFDO0lBRUw7Ozs7Ozs7Ozs7Ozs7Ozs7O01BaUJFO0lBQ0YsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFxQjtR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QUE7WUFDdkMsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQTtZQUNwRSxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7Z0JBQUUsT0FBTTtZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUc7UUFDaEIsSUFBSSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QyxRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxHQUFHLElBQUksTUFBTTtZQUN0QixLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQTtRQUNGLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDOytHQWxTVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vdmFDbG91ZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9ub3ZhLWNsb3VkL25vdmEtY2xvdWQuc2VydmljZSc7XHJcbmltcG9ydCBQYXJzZSBmcm9tIFwicGFyc2VcIjtcclxuaW1wb3J0IHsgTm92YVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zdG9yYWdlL3NlcnZpY2UtdXBsb2FkL25vdmEtdXBsb2FkLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgRGFsbGVPcHRpb25zLCBkcmF3RGFsbGUsXHJcbiAgamltZW5nSW1nT3B0aW9ucywgamltZW5nVF92T3B0aW9ucywgamltZW5nSV92T3B0aW9ucyxcclxuICBnZXRKaW1lbmdJbWcsIGdldEppbWVuZ1RfdiwgZ2V0SmltZW5nVl9kYXRhLGdldEppbWVuZ0lfdlxyXG59IGZyb20gJy4vaW1hZ2luZS1mdW5jJztcclxuaW1wb3J0IHsgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xyXG5cclxuXHJcbi8v6auY57qnQUnnu5jlm74gYXBp5paH5qGjIGh0dHBzOi8vd3d3LnNob3dkb2MuY29tLmNuLzIzMDc5MDA1OTU2NDU2MDkvMTAzMTk2NzcyNjYzMDUxMzhcclxuZXhwb3J0IGludGVyZmFjZSBTdGFibGVEaWZmdXNpb25PcHRpb25zIHtcclxuICBwcm9tcHQ6IHN0cmluZyAvL+aUr+aMgeS4reiLseaWh1xyXG4gIG1vZGVsU3R5bGVJZDogbnVtYmVyXHQvL+aooeWei+mjjuagvOmFjee9rklE77yM6K+35L2/55So5oiR5Lus5a6Y5pa55o+Q5L6b55qE6aOO5qC85YiX6KGoXHJcbiAgLy/ln7rnoYDlj4LmlbBcclxuICBuZWdhdGl2ZVByb21wdD86IHN0cmluZyAvL+S7heaUr+aMgeS4reaWh1xyXG5cclxuICB3aWR0aD86IG51bWJlclx0Ly/lrr3vvIzpu5jorqQ1MTIs5LiN5Y+v6LaF6L+HMjA0OFxyXG4gIGhlaWdodD86IG51bWJlclx0Ly/pq5jvvIzpu5jorqQ1MTIs5LiN5Y+v6LaF6L+HMjA0OFxyXG4gIHN0ZXBzPzogbnVtYmVyXHQvL+i/reS7o+atpeaVsO+8jOm7mOiupDIw77yM5LiN5Y+v6LaF6L+HNTBcclxuICBzZWVkPzogbnVtYmVyXHQvL+maj+acuuenjeWtkO+8jOm7mOiupOS4jeS8oOWImeS4uumaj+acuueUn+aIkFxyXG4gIGNmZ1NjYWxlPzogbnVtYmVyXHQvL+aPkOekuuivjeW8leWvvOezu+aVsO+8jOWPluWAvOiMg+WbtDEtMzBcclxuICAvL+mineWkluWPguaVsCDku4Xlm77nlJ/lm75cclxuICBoclNjYWxlPzogbnVtYmVyXHQvL+mrmOa4heS/ruWkjeWAjeeOh++8jOS7heWcqOaWh+eUn+WbvuaooeW8j+eUn+aViO+8jOWPluWAvOS4jeWPr+S7pei2hei/hzNcclxuICBoclN0ZXBzPzogbnVtYmVyXHQvL+mrmOa4hei/reS7o+atpeaVsO+8jOm7mOiupDIw77yM5LiN5Y+v6LaF6L+HMzDvvIjkuI3lu7rorq7lsJHkuo4xNe+8jOS8muS4pemHjeW9seWTjeeUu+mdoueUn+aIkOaViOaenO+8iVxyXG4gIC8v6aKd5aSW5Y+C5pWwICBcclxuICB1cHNjYWxlPzogbnVtYmVyXHQvL0FJ5pS+5aSn5YCN5pWw77yM5Y+W5YC85LiN5Y+v5Lul6LaF6L+HM1xyXG4gIGJhdGNoU2l6ZT86IG51bWJlclx0Ly/nlJ/miJDlm77niYfmlbDvvIzlj5blgLzkuI3lj6/ku6XotoXov4c2XHJcbiAgLy/pop3lpJblj4LmlbBcclxuICBmYWNlRml4PzogYm9vbGVhblx0Ly/mmK/lkKblvIDlj5HohLjpg6jkv67lpI3vvIzms6jmhI/vvIzlvIDlkK/mraTlip/og73pnIDpop3lpJbmiaPpmaQy56ev5YiGXHJcbiAgZGV0YWlsc0xldmVsPzogbnVtYmVyXHQvL+iEuOmDqOS/ruWkjee7huiKguWIu+eUu+etiee6p++8jOWPluWAvOiMg+WbtDEtOVxyXG4gIC8v5Lul5LiL5Li65Zu+55Sf5Zu+XHJcbiAgaW1nPzogc3RyaW5nIC8v5Zu+54mHVVJM5L+d6K+B5YWs572R5Y+v5p+l55yLXHJcbiAgaW1nT3B0aW9ucz86IGltZ09wdGlvbnNcclxuICBkZW5vaXNpbmdTdHJlbmd0aD86IG51bWJlclx0Ly/ph43nu5jluYXluqbvvIzku4XlnKhpbWflrZfmrrXmnInkvKDlgLznmoTml7blgJnnlJ/mlYjvvIzlj5blgLzojIPlm7QwfjHvvIzlj5blgLzotorlpKfnlLvpnaLkuI7lj4LogIPlm77lt67liKvotorlpKdcclxuICBjb250cm9sbmV0Pzoge1xyXG4gICAgdW5pdHM/OiBDb250cm9sbmV0VW5pdHNbXVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIGltZ09wdGlvbnMg5Zu+5YOP6YWN572u5Y+C5pWwXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgaW1nT3B0aW9ucyB7XHJcbiAgcmVtb3ZlQmFja2dyb3VuZD86IGJvb2xlYW4gIC8v5piv5ZCm6Ieq5Yqo56e76Zmk5Zu+54mH5Lit55qE5Lq654mp6IOM5pmv77yM5LiA6Iis55So5LqO6YeN57uY6IOM5pmv5pyJ5pWI77yM5rOo5oSP77ya5byA5ZCv5q2k5Yqf6IO96ZyA6aKd5aSW5omj6ZmkMuenr+WIhlxyXG4gIHJlZHJhd0JhY2tncm91bmQ/OiBib29sZWFuICAvL+aYr+WQpuS/neeVmeeUu+mdouS4reeahOS4u+S9k++8jOS7hee7mOWItueUu+mdouS4reeahOiDjOaZr+azqOaEj++8muW8gOWQr+atpOWKn+iDvemcgOmineWkluaJo+mZpDLnp6/liIZcclxuICBtYWluT2JqZWN0VHlwZT86IFwiaHVtYW5cIiB8IFwiZ2VuZXJhbFwiICAvL+iHquWumuivhuWIq+eUu+mdouS4reeahOS4u+S9k++8jOeUqOS6juiDjOaZr+WkhOeQhuOAguWPluWAvO+8mmdlbmVyYWzvvJrpgJrnlKjlnLrmma/or4bliKvvvIznlKjkuo7oh6rliqjor4bliKvnlLvpnaLkuK3nmoTkuLvkvZPvvIxodW1hbu+8muivhuWIq+W5tuS/neeVmeeUu+mdouS4reeahOS6uueJqeOAguW9k3JlbW92ZUJhY2tncm91bmTmiJbogIVyZWRyYXdCYWNrZ3JvdW5k5Li6dHJ1ZeeahOaXtuWAme+8jOeUu+mdouS4reeahOS4u+S9k+exu+Wei++8jOivt+agueaNruaCqOeahOeUu+mdouS4reeahOWunumZheaDheWGteS8oOWAvO+8jOm7mOiupOS4umh1bWFuXHJcbiAgZmFjZVByZXNlcnZhdGlvbj86IGJvb2xlYW4gIC8v6Ieq5Yqo5qOA5rWL5Zu+54mH5Lit55qE5Lq66IS477yM5L2/55Sf5oiQ5ZCO55qE5Lq66IS45LiO5Y6f5aeL5Lq66IS45L+d5oyB6auY5bqm55u45Ly844CC5rOo5oSP77yM5byA5ZCv5q2k5Yqf6IO96ZyA6aKd5aSW5omj6ZmkMuenr+WIhlxyXG4gIGZhY2VQcmVzZXJ2YXRpb25Db3VudD86IG51bWJlclx0ICAvL+W8gOWQr+S6uuiEuOS/neaMgeWQju+8jOeUu+mdouS4reacgOWkmuWkhOeQhueahOS6uuiEuOaVsOmHj++8jOm7mOiupOS4ujHvvIzmnIDlpKflgLzlj6/ku6XkuLo1XHJcbiAgZ2VuZGVyRGV0ZWN0PzogYm9vbGVhbiBcdC8v5piv5ZCm6Ieq5Yqo5qOA5rWL5Zu+54mH5Lit55qE5Lq654mp5oCn5Yir77yM5bC96YeP5L2/55Sf5oiQ5YmN5ZCO55qE5Lq654mp5oCn5Yir5LiN5Y+R55Sf5Y+Y5YyW77yM5aaC5p6c5Zu+54mH5Lit5pyJ5aSa5Liq5Lq654mp5oCn5Yir5YiZ5pWI5p6c5Lya5LiN5YeG56Gu44CC5rOo5oSP77yM5byA5ZCv5q2k5Yqf6IO96ZyA6aKd5aSW5omj6ZmkMeenr+WIhlxyXG59XHJcblxyXG4vKipcclxuICogQ29udHJvbG5ldFVuaXRzIOaOp+WItue9kee7nOWNleWFg1xyXG4gKiBAcHVibGljXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xuZXRVbml0cyB7XHJcbiAgaXNPcGVuPzogYm9vbGVhbiAgICAvLyAgICDmmK/lkKblkK/nlKjor6XmjqfliLblj4LmlbBcclxuICB0eXBlPzogc3RyaW5nICAgICAvL1x0XHRjb250cm9sbmV05bmy6aKE5b2i5byPXHJcbiAgcHJlcHJvY2Vzcz86IGJvb2xlYW4gICAgLy9cdFx05piv5ZCm6ZyA6KaB5a+55Y+C6ICD5Zu+6L+b6KGM6aKE5aSE55CG5o+Q5Y+W5Y+v55So5L+h5oGvXHJcbiAgaW1hZ2U/OiBzdHJpbmcgICAgIC8vXHRcdGNvbnRyb2xuZXTpnIDopoHlj4LogIPnmoTlm77niYfvvIzkuI3kvKDpu5jorqTkuLrlm77nlJ/lm77nmoTljp/lp4vlm77niYfvvIzlj6/ku6XkuLpiYXNlNjTlm77niYfmiJbogIXlm77niYd1cmxcclxuICBjb250cm9sTW9kZT86IG51bWJlciAgICAgLy9cdFx0Y29udHJvbG5ldOaOp+WItuaooeW8j++8jDDjgIHlubPooaHmqKHlvI8o6buY6K6kKSwx77ya5o+Q56S66K+N5pu06YeN6KaBLDLvvJpjb250cm9sbmV05pu06YeN6KaBXHJcbiAgd2VpZ2h0PzogbnVtYmVyICAgICAvL1x0XHRjb250cm9sbmV05p2D6YeN77yM6IyD5Zu05Li6MH4y77yM6buY6K6k5Li6MSxcclxuICBjb250cm9sU3RhcnQ/OiBudW1iZXIgICAgIC8vXHRcdGNvbnRyb2xuZXTnlJ/mlYjml7bmnLrvvIzojIPlm7TkuLowfjHvvIzpu5jorqTkuLowXHJcbiAgY29udHJvbEVuZD86IG51bWJlciAgICAgLy9cdFx0Y29udHJvbG5ldOmAgOWHuuaXtuacuu+8jOiMg+WbtOS4ujB+Me+8jOm7mOiupOS4ujFcclxuICBwYXJhbXNBPzogbnVtYmVyICAgICAvL1x0XHRjb250cm9sbmV06aKE5aSE55CG5Zmo5a+55bqU5Y+C5pWwQVxyXG4gIHBhcmFtc0I/OiBudW1iZXIgICAgIC8vXHRcdGNvbnRyb2xuZXTpooTlpITnkIblmajlr7nlupTlj4LmlbBCXHJcbiAgY29udHJvbEFycmF5PzogYW55W11cclxufVxyXG5cclxuLyoqXHJcbiAqIEltYWdpbmVTZXJ2aWNlIEFJ57uY55S75pyN5YqhXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnaW5lU2VydmljZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIOWbvueJh+eUn+aIkOaOpeWPo+S4u+acuuWcsOWdgFxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBuY2xvdWQ6IE5vdmFDbG91ZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVwbG9hZFNlcnY6IE5vdmFVcGxvYWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdEN0cmw6IFRvYXN0Q29udHJvbGxlcixcclxuICApIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBEQUxMLUUtMyDlm77niYfnlJ/miJDlh73mlbBcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKiBAc2VlIFxyXG4gICAqIGh0dHBzOi8vcDQuaG9zdGVhZ2xlLmNsdWIvZG9jcy9hcGktcmVmZXJlbmNlP19fY3BvPWFIUjBjSE02THk5d2JHRjBabTl5YlM1dmNHVnVZV2t1WTI5dFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqIHtcclxuICAgICAgICBcImlkXCI6IFwibHBKR2lGd1dlQVwiLCAvLyDlm77niYfnlJ/miJDku7vliqFJRFxyXG4gICAgICAgIFwiY3JlYXRlZEF0XCI6IFwiMjAyNC0xMS0yN1QxMjoxODoxNC40NjNaXCJcclxuICAgICAgfVxyXG4gICAqIEBwYXJhbSB7RGFsbGVPcHRpb25zfSBvcHRpb25zXHJcbiAgICogQHBhcmFtICB7c3RyaW5nfSBvcHRpb25zLnByb21wdCAxMDAwIGNoYXJhY3RlcnMgZm9yIGRhbGwtZS0yIGFuZCA0MDAwIGNoYXJhY3RlcnMgZm9yIGRhbGwtZS0zLlxyXG4gICAqIEBwYXJhbSAge3N0cmluZ30gb3B0aW9ucy5tb2RlbCBkYWxsLWUtMyBkYWxsLWUtMlxyXG4gICAqIEBwYXJhbSAge3N0cmluZ30gb3B0aW9ucy5xdWFsaXR5IGRhbGwtZS0zIG9ubHkgaGQgbWVhbnMgbW9yZSBkZXRhaWxzICYgY29uc2lzdGVuY3lcclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG9wdGlvbnMucmVzcG9uc2VfZm9ybWF0IHVybCB8IGI2NF9qc29uXHJcbiAgICogQHBhcmFtICB7c3RyaW5nfSBvcHRpb25zLnNpemUgMTAyNHgxMDI0LCAxNzkyeDEwMjQsIG9yIDEwMjR4MTc5MiBmb3IgZGFsbC1lLTNcclxuICAgKiBAcGFyYW0gIHtzdHJpbmd9IG9wdGlvbnMuc3R5bGUgdml2aWQgfCBuYXR1cmFsIGRhbGwtZS0zIG9ubHlcclxuICAqL1xyXG4gIGFzeW5jIGRyYXdEYWxsZShvcHRpb25zOiBEYWxsZU9wdGlvbnMpIHtcclxuICAgIGxldCB3b3JrID0gYXdhaXQgZHJhd0RhbGxlKG9wdGlvbnMpO1xyXG4gICAgaWYgKHdvcms/LmlkKSB0aGlzLm5ld1dvcmtMaXN0LnVuc2hpZnQod29yaylcclxuICAgIHJldHVybiB3b3JrXHJcbiAgfVxyXG4gIHByaWNlRGFsbGUob3B0aW9uczogRGFsbGVPcHRpb25zKSB7XHJcbiAgICBsZXQgcHJpY2VMaXN0OiBBcnJheTxhbnk+ID0gW1xyXG4gICAgICB7IFwibW9kZWxcIjogXCJkYWxsLWUtM1wiLCBxdWFsaXR5OiBudWxsLCBcInNpemVcIjogXCIxMDI0eDEwMjRcIiwgXCJjcmVkaXRcIjogMiAqIDEwICogOCAqIDAuMDQgfSxcclxuICAgICAgeyBcIm1vZGVsXCI6IFwiZGFsbC1lLTNcIiwgcXVhbGl0eTogbnVsbCwgXCJzaXplXCI6IFwiMTAyNHgxNzkyXCIsIFwiY3JlZGl0XCI6IDIgKiAxMCAqIDggKiAwLjA4IH0sXHJcbiAgICAgIHsgXCJtb2RlbFwiOiBcImRhbGwtZS0zXCIsIHF1YWxpdHk6IG51bGwsIFwic2l6ZVwiOiBcIjE3OTJ4MTAyNFwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4wOCB9LFxyXG4gICAgICB7IFwibW9kZWxcIjogXCJkYWxsLWUtM1wiLCBxdWFsaXR5OiBcImhkXCIsIFwic2l6ZVwiOiBcIjEwMjR4MTAyNFwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4wOCB9LFxyXG4gICAgICB7IFwibW9kZWxcIjogXCJkYWxsLWUtM1wiLCBxdWFsaXR5OiBcImhkXCIsIFwic2l6ZVwiOiBcIjEwMjR4MTc5MlwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4xMiB9LFxyXG4gICAgICB7IFwibW9kZWxcIjogXCJkYWxsLWUtM1wiLCBxdWFsaXR5OiBcImhkXCIsIFwic2l6ZVwiOiBcIjE3OTJ4MTAyNFwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4xMiB9LFxyXG4gICAgICB7IFwibW9kZWxcIjogXCJkYWxsLWUtMlwiLCBxdWFsaXR5OiBudWxsLCBcInNpemVcIjogXCIxMDI0eDEwMjRcIiwgXCJjcmVkaXRcIjogMiAqIDEwICogOCAqIDAuMDIgfSxcclxuICAgICAgeyBcIm1vZGVsXCI6IFwiZGFsbC1lLTJcIiwgcXVhbGl0eTogbnVsbCwgXCJzaXplXCI6IFwiNTEyeDUxMlwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4wMTggfSxcclxuICAgICAgeyBcIm1vZGVsXCI6IFwiZGFsbC1lLTJcIiwgcXVhbGl0eTogbnVsbCwgXCJzaXplXCI6IFwiMjU2eDI1NlwiLCBcImNyZWRpdFwiOiAyICogMTAgKiA4ICogMC4wMTYgfVxyXG4gICAgXVxyXG4gICAgbGV0IHByaWNlID0gcHJpY2VMaXN0LmZpbmQoaXRlbSA9PiBpdGVtLm1vZGVsID09IG9wdGlvbnMubW9kZWwgJiYgaXRlbS5xdWFsaXR5ID09IG9wdGlvbnMucXVhbGl0eSAmJiBpdGVtLnNpemUgPT0gb3B0aW9ucy5zaXplKVxyXG4gICAgbGV0IGNyZWRpdCA9IHByaWNlPy5jcmVkaXQgfHwgMiAqIDEwICogOCAqIDAuMTJcclxuICAgIHJldHVybiBjcmVkaXRcclxuICB9XHJcbiAgcHJpY2VTdGFibGVEaWZmdXNpb24ob3B0aW9uczogU3RhYmxlRGlmZnVzaW9uT3B0aW9ucykge1xyXG4gICAgbGV0IHNpemUgPSBvcHRpb25zLndpZHRoICogb3B0aW9ucy5oZWlnaHRcclxuICAgIGxldCBudW0gPSAwLjMgLy/po57noIHog73ph4/mjaLnrpfluLjmlbBcclxuICAgIGxldCBjcmVkaXQgPSBzaXplICogMC4wMDAwMDA3NjMgKiBvcHRpb25zLnN0ZXBzXHJcbiAgICAgICsgc2l6ZSAqIDAuMDAwMDIyNzggKiAob3B0aW9ucz8udXBzY2FsZSB8fCAwKVxyXG4gICAgICArIChvcHRpb25zPy5oclN0ZXBzIHx8IDApICogc2l6ZSAqIChvcHRpb25zPy5oclNjYWxlIHx8IDApICogKG9wdGlvbnM/LmhyU2NhbGUgfHwgMCkgKiAwLjAwMDAwMDc2M1xyXG4gICAgICArIChvcHRpb25zPy5mYWNlRml4ID8gMiA6IDApXHJcbiAgICAgICsgKG9wdGlvbnM/LmltZ09wdGlvbnM/LnJlbW92ZUJhY2tncm91bmQgPyAyIDogMClcclxuICAgICAgKyAob3B0aW9ucz8uaW1nT3B0aW9ucz8ucmVkcmF3QmFja2dyb3VuZCA/IDIgOiAwKVxyXG4gICAgICArIChvcHRpb25zPy5pbWdPcHRpb25zPy5mYWNlUHJlc2VydmF0aW9uID8gMiA6IDApXHJcbiAgICAgICsgKG9wdGlvbnM/LmltZ09wdGlvbnM/LmdlbmRlckRldGVjdCA/IDEgOiAwKVxyXG4gICAgICArIChvcHRpb25zPy5jb250cm9sbmV0Py51bml0cz8ubGVuZ3RoIHx8IDApICogMlxyXG4gICAgLy8gY29uc29sZS5sb2coY3JlZGl0KTtcclxuXHJcbiAgICBjcmVkaXQgPSBjcmVkaXQgKiBudW0gKiBvcHRpb25zLmJhdGNoU2l6ZVxyXG5cclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZyhjcmVkaXQpO1xyXG5cclxuICAgIHJldHVybiBjcmVkaXRcclxuICB9XHJcbiAgYjY0RGF0YVRvQmFzZTY0SW1hZ2UoYjY0X2pzb24pIHtcclxuICAgIGxldCBkYXRhID0gYXRvYihiNjRfanNvbilcclxuICAgIGxldCBibG9iID0gbmV3IEJsb2IoW2RhdGFdLCB7IHR5cGU6ICdpbWFnZS93ZWJwJyB9KTtcclxuICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICAvLyDkvb/nlKggRmlsZVJlYWRlciDlsIYgQmxvYiDlr7nosaHovazmjaLkuLogYmFzZTY0IOWtl+espuS4slxyXG4gICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICBsZXQgYmFzZTY0ZGF0YSA9IHJlYWRlci5yZXN1bHQ7IGNvbnNvbGUubG9nKGJhc2U2NGRhdGEpXHJcbiAgICAgICAgcmVzb2x2ZShiYXNlNjRkYXRhKVxyXG4gICAgICB9O1xyXG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEh1YXNoaTbkuJPnlKjnu5jlm77lh73mlbBcclxuICAgKiBAcGFyYW0gcmVxQm9keSBcclxuICAgKiBAc2VlXHJcbiAgICog5o6l5Y+jcmVxQm9keeWPguaVsO+8jOWPguiAg++8mmh0dHBzOi8vd3d3LnNob3dkb2MuY29tLmNuLzIzMDc5MDA1OTU2NDU2MDkvMTAzMTk2NzU5ODczMTk1OThcclxuICAgKiDlr4bnoIHvvJoxMjM0NTZcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBhc3luYyBkcmF3KHJlcUJvZHk6IGFueSkge1xyXG4gICAgbGV0IGRhdGE6IGFueSA9IGF3YWl0IHRoaXMubmNsb3VkLmFwaWcoXCJhaWdjL3NkYXBpL3YxL2RyYXdcIiwgcmVxQm9keSlcclxuICAgIC8vIOato+W4uOeUn+aIkHRhc2tJZOWQju+8jOiOt+WPluaVsOaNrua3u+WKoOWIsOWIl+ihqOS4rVxyXG4gICAgbGV0IHRhc2tJZCA9IGRhdGE/LnBhaW50aW5nU2lnblxyXG4gICAgaWYgKHRhc2tJZCkge1xyXG4gICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICBsZXQgcXVlcnkgPSBuZXcgUGFyc2UuUXVlcnkoXCJJbWFnaW5lV29ya1wiKVxyXG4gICAgICAgIHF1ZXJ5LmVxdWFsVG8oXCJ0YXNrSWRcIiwgdGFza0lkKTtcclxuICAgICAgICBsZXQgd29yayA9IGF3YWl0IHF1ZXJ5LmZpcnN0KCk7XHJcbiAgICAgICAgY29uc29sZS5sb2cod29yaylcclxuICAgICAgICBpZiAod29yaz8uaWQpIHRoaXMubmV3V29ya0xpc3QudW5zaGlmdCh3b3JrKVxyXG4gICAgICB9LCAxMDAwKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhXHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIOW3suWujOaIkOeahOebtOaOpeWKoOi9ve+8jOacquWujOaIkOeahOWGjeaOpeWPo+abtOaWsFxyXG4gICAqIEBwYXJhbSB0YXNrSWQgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgYXN5bmMgdGFza0RldGFpbCh0YXNrSWQ6IHN0cmluZykge1xyXG4gICAgbGV0IGRhdGE6IGFueSA9IGF3YWl0IHRoaXMubmNsb3VkLmFwaWcoXCJhaWdjL3NkYXBpL3YxL3Rhc2svZGV0YWlsXCIsIHsgdGFza0lkOiB0YXNrSWQgfSlcclxuICAgIGNvbnNvbGUubG9nKGRhdGEpXHJcbiAgICB0aGlzLnRhc2tEZXRhaWxNYXBbdGFza0lkXSA9IGRhdGFcclxuICAgIHJldHVybiBkYXRhXHJcbiAgfVxyXG4gIHRhc2tEZXRhaWxNYXA6IGFueSA9IHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaIkeeahOe7mOeUu+S9nOWTgeWFseS6q+aWueazlVxyXG4gICAqL1xyXG4gIG5ld1dvcmtMaXN0OiBBcnJheTxQYXJzZS5PYmplY3Q+ID0gW11cclxuICBteVdvcmtMaXN0OiBBcnJheTxQYXJzZS5PYmplY3Q+ID0gW11cclxuICBnZXRNeVdvcmtRdWVyeSgpIHtcclxuICAgIGxldCB1c2VyID0gUGFyc2UuVXNlci5jdXJyZW50KClcclxuICAgIGlmICghdXNlcj8uaWQpIHJldHVyblxyXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5nZXRXb3JrUXVlcnkoKVxyXG4gICAgcXVlcnkuaW5jbHVkZShcIm1vZGVsXCIsIFwibW9kdWxlXCIsIFwidXNlclwiKVxyXG4gICAgcXVlcnkuZXF1YWxUbyhcInVzZXJcIiwgdXNlci50b1BvaW50ZXIoKSk7XHJcbiAgICByZXR1cm4gcXVlcnlcclxuICB9XHJcbiAgZ2V0V29ya1F1ZXJ5KCkge1xyXG5cclxuICAgIC8vIOiOt+WPliAxIOWIhumSn+WJjeeahOaXtumXtFxyXG4gICAgbGV0IG9uZU1pbnV0ZXNBZ28gPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIDEgKiA2MCAqIDEwMDApO1xyXG5cclxuICAgIGxldCBxdWVyeSA9IFBhcnNlLlF1ZXJ5LmZyb21KU09OKFwiSW1hZ2luZVdvcmtcIiwge1xyXG4gICAgICB3aGVyZToge1xyXG4gICAgICAgIC8vICRvcjogW1xyXG4gICAgICAgIC8vICAgLy8g6LaF5pe2NjDnp5LvvIzkuJTov5vluqbkuI3kuLowXHJcbiAgICAgICAgLy8gICB7IGNyZWF0ZWRBdDogeyAkbHRlOiBvbmVNaW51dGVzQWdvIH0sIHByb2dyZXNzOiB7ICRuZTogMCB9IH0sXHJcbiAgICAgICAgLy8gICAvLyA2MOenkuWGhe+8jOS4jemZkOi/m+W6plxyXG4gICAgICAgIC8vICAgeyBjcmVhdGVkQXQ6IHsgJGd0OiBvbmVNaW51dGVzQWdvIH0gfVxyXG4gICAgICAgIC8vIF1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBxdWVyeS5pbmNsdWRlKFwibW9kZWxcIiwgXCJtb2R1bGVcIiwgXCJ1c2VyXCIpO1xyXG4gICAgcXVlcnkubm90RXF1YWxUbyhcImlzRGVsZXRlZFwiLCB0cnVlKVxyXG4gICAgcXVlcnkubm90RXF1YWxUbyhcImlzRmFpbGVkXCIsIHRydWUpXHJcbiAgICBxdWVyeS5kb2VzTm90RXhpc3QoXCJyZXNwRGF0YS5lcnJvclwiKSAvLyBERSDnrpflipvnk7bpoohcclxuICAgIHF1ZXJ5LmRvZXNOb3RFeGlzdChcInJlc3BEYXRhLmRhdGEudGFza0xpbWl0Q291bnRcIikgLy8gU0Tlubblj5HotoXpmZBcclxuICAgIHF1ZXJ5LmFkZERlc2NlbmRpbmcoXCJjcmVhdGVkQXRcIik7XHJcbiAgICByZXR1cm4gcXVlcnk7XHJcbiAgfVxyXG4gIGdldGltZygpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgbGV0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgICAgaW5wdXQudHlwZSA9ICdmaWxlJztcclxuICAgICAgaW5wdXQuY2xpY2soKTtcclxuXHJcbiAgICAgIGxldCBoYW5kbGVDaGFuZ2UgPSBhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgaGFuZGxlQ2hhbmdlKTtcclxuICAgICAgICBpZiAoaW5wdXQuZmlsZXMgJiYgaW5wdXQuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgbGV0IGZpbGUgPSBpbnB1dC5maWxlc1swXTtcclxuICAgICAgICAgIGxldCBmaWxlUmVzdWx0ID0gYXdhaXQgdGhpcy51cGxvYWRTZXJ2LnVwbG9hZChmaWxlLCAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHJlcykgLy8g5LiK5Lyg6L+b5bqm77yM5Y+v5Lul5ZCM5q2l5pu05paw6aG16Z2i5LiK5Lyg55m+5YiG5q+UXHJcbiAgICAgICAgICAgIHJlcy50b3RhbC5wZXJjZW50LnRvRml4ZWQoMikvL+S4iuS8oOi/m+W6plxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICAvLyDmtYvor5Xkvb/nlKjlm7rlrprlm77niYdcclxuICAgICAgICAgIC8vIGxldCBmaWxlUmVzdWx0ID0ge1xyXG4gICAgICAgICAgLy8gICB1cmw6IFwiaHR0cHM6Ly9maWxlLWNsb3VkLmZtb2RlLmNuL0U0S3BHdlRFdG8vMjAyMzA4MDgvczEydWgxMDkyNDE0NTk3LnBuZ1wiXHJcbiAgICAgICAgICAvLyB9O1xyXG5cclxuICAgICAgICAgIHJlc29sdmUoZmlsZVJlc3VsdC51cmwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QoXCLmnKrpgInmi6nmlofku7ZcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgaGFuZGxlQ2hhbmdlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuICAvKipcclxuICAgKiDljbPmoqblm77niYfnlJ/miJDlh73mlbBcclxuICAgKiBAcGFyYW0gb3B0aW9ucyAg5Zu+5YOP5Y+C5pWwXHJcbiAgICovXHJcbiAgYXN5bmMgZ2V0SmltZW5nSW1nKG9wdGlvbnM6IGppbWVuZ0ltZ09wdGlvbnMpIHtcclxuICAgIGxldCB3b3JrX29jY3VweSA9IG5ldyBQYXJzZS5PYmplY3QoJ0ltYWdpbmVXb3JrJylcclxuICAgIHdvcmtfb2NjdXB5LnNldCgnX19wZW5kaW5nJywgdHJ1ZSlcclxuICAgIHdvcmtfb2NjdXB5LnNldCgnX19pZCcsIFN5bWJvbCgpKVxyXG4gICAgd29ya19vY2N1cHkuc2V0KCdpbWFnZXMnLCBbJyddKVxyXG4gICAgdGhpcy5uZXdXb3JrTGlzdC51bnNoaWZ0KHdvcmtfb2NjdXB5KVxyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHdvcmsgPSBhd2FpdCBnZXRKaW1lbmdJbWcob3B0aW9ucylcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5uZXdXb3JrTGlzdD8uZmluZEluZGV4KGl0ZW0gPT4gaXRlbT8uZ2V0KCdfX2lkJykgPT09IHdvcmtfb2NjdXB5Py5nZXQoJ19faWQnKSlcclxuICAgICAgaWYgKGluZGV4ID09IC0xKSByZXR1cm5cclxuICAgICAgaWYgKCF3b3JrPy5pZCkge1xyXG4gICAgICAgIHRoaXMubmV3V29ya0xpc3Quc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgIHJldHVyblxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubmV3V29ya0xpc3Quc3BsaWNlKGluZGV4LCAxLCB3b3JrKVxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5uZXdXb3JrTGlzdD8uZmluZEluZGV4KGl0ZW0gPT4gaXRlbT8uZ2V0KCdfX2lkJykgPT09IHdvcmtfb2NjdXB5Py5nZXQoJ19faWQnKSlcclxuICAgICAgaWYgKGluZGV4ID09IC0xKSByZXR1cm5cclxuICAgICAgdGhpcy5uZXdXb3JrTGlzdC5zcGxpY2UoaW5kZXgsIDEpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDljbPmoqbop4bpopHnlJ/miJDlh73mlbBcclxuICAgKiBAcGFyYW0gb3B0aW9ucyDlm77lg4/lj4LmlbBcclxuICAgKiBAcGFyYW0gdHlwZSDnsbvlnosg5paH55Sf6KeG6aKR5peg6ZyA5aGr5YaZ77yM5Zu+55Sf6KeG6aKR5aGrJ2lfdidcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBhc3luYyBnZXRKaW1lbmdWaWRlbyhvcHRpb25zLCB0eXBlPykge1xyXG4gICAgbGV0IHdvcmtfb2NjdXB5ID0gbmV3IFBhcnNlLk9iamVjdCgnSW1hZ2luZVdvcmsnKVxyXG4gICAgd29ya19vY2N1cHkuc2V0KCdfX3BlbmRpbmcnLCB0cnVlKVxyXG4gICAgd29ya19vY2N1cHkuc2V0KCdfX2lkJywgU3ltYm9sKCkpXHJcbiAgICB3b3JrX29jY3VweS5zZXQoJ3Byb3ZpZGVyJywgJ3ZvbGNlbmdpbmUnKVxyXG4gICAgd29ya19vY2N1cHkuc2V0KCd0YXNrSWQnLCAnMScpXHJcbiAgICB0aGlzLm5ld1dvcmtMaXN0LnVuc2hpZnQod29ya19vY2N1cHkpXHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgd29ya1xyXG4gICAgICBpZiAodHlwZSA9PSAnaV92Jykge1xyXG4gICAgICAgIHdvcmsgPSBhd2FpdCBnZXRKaW1lbmdJX3Yob3B0aW9ucylcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB3b3JrID0gYXdhaXQgZ2V0SmltZW5nVF92KG9wdGlvbnMpXHJcbiAgICAgIH1cclxuICAgICAgbGV0IGluZGV4ID0gdGhpcy5uZXdXb3JrTGlzdD8uZmluZEluZGV4KGl0ZW0gPT4gaXRlbT8uZ2V0KCdfX2lkJykgPT09IHdvcmtfb2NjdXB5Py5nZXQoJ19faWQnKSlcclxuICAgICAgaWYgKGluZGV4ID09IC0xKSByZXR1cm5cclxuICAgICAgaWYgKCF3b3JrPy5pZCkge1xyXG4gICAgICAgIHRoaXMubmV3V29ya0xpc3Quc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgICAgIHRoaXMuc2V0VG9hc3QoJ+WIm+W7uuacieivr++8jOivt+eojeWQjuWGjeivlScpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5uZXdXb3JrTGlzdC5zcGxpY2UoaW5kZXgsIDEsIHdvcmspXHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLm5ld1dvcmtMaXN0Py5maW5kSW5kZXgoaXRlbSA9PiBpdGVtPy5nZXQoJ19faWQnKSA9PT0gd29ya19vY2N1cHk/LmdldCgnX19pZCcpKVxyXG4gICAgICBpZiAoaW5kZXggPT0gLTEpIHJldHVyblxyXG4gICAgICB0aGlzLm5ld1dvcmtMaXN0LnNwbGljZShpbmRleCwgMSlcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgKiDljbPmoqbop4bpopHor7fmsYLnu5PmnpxcclxuICAqIEBwYXJhbSB2aWRlb19ieSDojrflj5bnsbvlnovvvJrmlofnlJ/op4bpopEv5Zu+55Sf6KeG6aKRICd0ZXh0J3wnaW1nJ1xyXG4gICogQHBhcmFtIHdvcmtJZCDkvZzlk4FpZFxyXG4gICovXHJcbiAgYXN5bmMgZ2V0SmltZW5nVmlkZW9EYXRhKHZpZGVvX2J5OiAndGV4dCcgfCAnaW1nJywgd29ya0lkKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBsZXQgd29yayA9IGF3YWl0IGdldEppbWVuZ1ZfZGF0YSh7IHZpZGVvX2J5LCB3b3JrSWQgfSlcclxuICAgICAgY29uc29sZS5sb2coJ+ivt+axgue7k+aenCcsIHdvcmspXHJcbiAgICAgIGlmICh3b3JrPy5lcnJvcikge1xyXG4gICAgICAgIHRoaXMuc2V0VG9hc3Qod29yaz8uZXJyb3I/Lm1lc3NhZ2UgfHwgd29yaz8uZXJyb3I/Lm1zZyB8fCB3b3JrPy5lcnI/Lm1lc3NhZ2UgfHwgd29yaz8uZXJyPy5tc2cgfHwgJ+ivt+axgumUmeivrycpXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuICAgICAgaWYgKHdvcms/LmdldCgncHJvZ3Jlc3MnKSAhPT0gMSB8fCB3b3JrPy5nZXQoJ3ZpZGVvcycpPy5sZW5ndGggPD0gMCkgcmV0dXJuXHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubmV3V29ya0xpc3Q/LmZpbmRJbmRleChpdGVtID0+IGl0ZW0/LmlkID09PSB3b3JrSWQpXHJcbiAgICAgIGlmIChpbmRleCA9PSAtMSkgcmV0dXJuXHJcbiAgICAgIGlmICghd29yaz8uaWQpIHtcclxuICAgICAgICB0aGlzLm5ld1dvcmtMaXN0LnNwbGljZShpbmRleCwgMSlcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm5ld1dvcmtMaXN0LnNwbGljZShpbmRleCwgMSwgd29yaylcclxuICAgICAgcmV0dXJuIHdvcmtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGxldCBpbmRleCA9IHRoaXMubmV3V29ya0xpc3Q/LmZpbmRJbmRleChpdGVtID0+IGl0ZW0/LmlkID09PSB3b3JrSWQpXHJcbiAgICAgIGlmIChpbmRleCA9PSAtMSkgcmV0dXJuXHJcbiAgICAgIHRoaXMubmV3V29ya0xpc3Quc3BsaWNlKGluZGV4LCAxKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5o+Q56S6XHJcbiAgICogQHBhcmFtIG1zZyDmj5DnpLror61cclxuICAgKi9cclxuICBhc3luYyBzZXRUb2FzdChtc2cpIHtcclxuICAgIGxldCB0b2FzdCA9IGF3YWl0IHRoaXMudG9hc3RDdHJsLmNyZWF0ZSh7XHJcbiAgICAgIGR1cmF0aW9uOiAxMDAwLFxyXG4gICAgICBtZXNzYWdlOiBtc2cgfHwgJ+ivt+axgumUmeivrycsXHJcbiAgICAgIGNvbG9yOiAncHJpbWFyeScsXHJcbiAgICAgIGljb246IFwiaW5mb3JtYXRpb24tY2lyY2xlXCIsXHJcbiAgICAgIHBvc2l0aW9uOiBcInRvcFwiXHJcbiAgICB9KVxyXG4gICAgdG9hc3QucHJlc2VudCgpO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuIl19
8
+ import{HttpClient}from"@angular/common/http";import{Injectable}from"@angular/core";import{NovaCloudService}from"../../../nova-cloud/nova-cloud.service";import{FmodeParse}from"@fmode/parse";import{NovaUploadService}from"../../../storage/service-upload/nova-upload.service";import{drawDalle,getJimengImg,getJimengT_v,getJimengV_data,getJimengI_v}from"./imagine-func";import{ToastController}from"@ionic/angular";import*as i0 from"@angular/core";import*as i1 from"@angular/common/http";import*as i2 from"../../../nova-cloud/nova-cloud.service";import*as i3 from"../../../storage/service-upload/nova-upload.service";import*as i4 from"@ionic/angular";const Parse=FmodeParse.with("nova");export class ImagineService{constructor(e,t,i,r){this.http=e,this.ncloud=t,this.uploadServ=i,this.toastCtrl=r,this.taskDetailMap={},this.newWorkList=[],this.myWorkList=[]}async drawDalle(e){let t=await drawDalle(e);return t?.id&&this.newWorkList.unshift(t),t}priceDalle(e){let t=[{model:"dall-e-3",quality:null,size:"1024x1024",credit:6.4},{model:"dall-e-3",quality:null,size:"1024x1792",credit:12.8},{model:"dall-e-3",quality:null,size:"1792x1024",credit:12.8},{model:"dall-e-3",quality:"hd",size:"1024x1024",credit:12.8},{model:"dall-e-3",quality:"hd",size:"1024x1792",credit:19.2},{model:"dall-e-3",quality:"hd",size:"1792x1024",credit:19.2},{model:"dall-e-2",quality:null,size:"1024x1024",credit:3.2},{model:"dall-e-2",quality:null,size:"512x512",credit:2.88},{model:"dall-e-2",quality:null,size:"256x256",credit:2.56}].find((t=>t.model==e.model&&t.quality==e.quality&&t.size==e.size));return t?.credit||19.2}priceStableDiffusion(e){let t=e.width*e.height,i=763e-9*t*e.steps+2278e-8*t*(e?.upscale||0)+(e?.hrSteps||0)*t*(e?.hrScale||0)*(e?.hrScale||0)*763e-9+(e?.faceFix?2:0)+(e?.imgOptions?.removeBackground?2:0)+(e?.imgOptions?.redrawBackground?2:0)+(e?.imgOptions?.facePreservation?2:0)+(e?.imgOptions?.genderDetect?1:0)+2*(e?.controlnet?.units?.length||0);return i=.3*i*e.batchSize,i}b64DataToBase64Image(e){let t=atob(e),i=new Blob([t],{type:"image/webp"});new Promise((e=>{let t=new FileReader;t.onloadend=function(){let i=t.result;console.log(i),e(i)},t.readAsDataURL(i)}))}async draw(e){let t=await this.ncloud.apig("aigc/sdapi/v1/draw",e),i=t?.paintingSign;return i&&setTimeout((async()=>{let e=new Parse.Query("ImagineWork");e.equalTo("taskId",i);let t=await e.first();console.log(t),t?.id&&this.newWorkList.unshift(t)}),1e3),t}async taskDetail(e){let t=await this.ncloud.apig("aigc/sdapi/v1/task/detail",{taskId:e});return console.log(t),this.taskDetailMap[e]=t,t}getMyWorkQuery(){let e=Parse.User.current();if(!e?.id)return;let t=this.getWorkQuery();return t.include("model","module","user"),t.equalTo("user",e.toPointer()),t}getWorkQuery(){new Date((new Date).getTime()-6e4);let e=Parse.Query.fromJSON("ImagineWork",{where:{}});return e.include("model","module","user"),e.notEqualTo("isDeleted",!0),e.notEqualTo("isFailed",!0),e.doesNotExist("respData.error"),e.doesNotExist("respData.data.taskLimitCount"),e.addDescending("createdAt"),e}getimg(){return new Promise(((e,t)=>{let i=document.createElement("input");i.type="file",i.click();let handleChange=async()=>{if(i.removeEventListener("change",handleChange),i.files&&i.files.length>0){let t=i.files[0],r=await this.uploadServ.upload(t,(e=>{console.log(e),e.total.percent.toFixed(2)}));e(r.url)}else t("未选择文件")};i.addEventListener("change",handleChange)}))}async getJimengImg(e){let t=new Parse.Object("ImagineWork");t.set("__pending",!0),t.set("__id",Symbol()),t.set("images",[""]),this.newWorkList.unshift(t);try{let i=await getJimengImg(e),r=this.newWorkList?.findIndex((e=>e?.get("__id")===t?.get("__id")));if(-1==r)return;if(!i?.id)return void this.newWorkList.splice(r,1);this.newWorkList.splice(r,1,i)}catch(e){let i=this.newWorkList?.findIndex((e=>e?.get("__id")===t?.get("__id")));if(-1==i)return;this.newWorkList.splice(i,1)}}async getJimengVideo(e,t){let i=new Parse.Object("ImagineWork");i.set("__pending",!0),i.set("__id",Symbol()),i.set("provider","volcengine"),i.set("taskId","1"),this.newWorkList.unshift(i);try{let r;r="i_v"==t?await getJimengI_v(e):await getJimengT_v(e);let o=this.newWorkList?.findIndex((e=>e?.get("__id")===i?.get("__id")));if(-1==o)return;if(!r?.id)return this.newWorkList.splice(o,1),void this.setToast("创建有误,请稍后再试");this.newWorkList.splice(o,1,r)}catch(e){let t=this.newWorkList?.findIndex((e=>e?.get("__id")===i?.get("__id")));if(-1==t)return;this.newWorkList.splice(t,1)}}async getJimengVideoData(e,t){try{let i=await getJimengV_data({video_by:e,workId:t});if(console.log("请求结果",i),i?.error)return void this.setToast(i?.error?.message||i?.error?.msg||i?.err?.message||i?.err?.msg||"请求错误");if(1!==i?.get("progress")||i?.get("videos")?.length<=0)return;let r=this.newWorkList?.findIndex((e=>e?.id===t));if(-1==r)return;return i?.id?(this.newWorkList.splice(r,1,i),i):void this.newWorkList.splice(r,1)}catch(e){let i=this.newWorkList?.findIndex((e=>e?.id===t));if(-1==i)return;this.newWorkList.splice(i,1)}}async setToast(e){(await this.toastCtrl.create({duration:1e3,message:e||"请求错误",color:"primary",icon:"information-circle",position:"top"})).present()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:ImagineService,deps:[{token:i1.HttpClient},{token:i2.NovaCloudService},{token:i3.NovaUploadService},{token:i4.ToastController}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:ImagineService,providedIn:"root"})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:ImagineService,decorators:[{type:Injectable,args:[{providedIn:"root"}]}],ctorParameters:()=>[{type:i1.HttpClient},{type:i2.NovaCloudService},{type:i3.NovaUploadService},{type:i4.ToastController}]});
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL3NlcnZpY2UtZm1haS9zZXJ2aWNlLWltYWdpbmUvaW1hZ2luZS5zZXJ2aWNlLm1qcw==`
10
+
@@ -1,4 +1,10 @@
1
- export * from "./imagine.service";
2
- export * from "./imagine-work";
3
- export * from "./imagine-func";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2Mvc2VydmljZS1mbWFpL3NlcnZpY2UtaW1hZ2luZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsZ0JBQWdCLENBQUE7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2ltYWdpbmUuc2VydmljZVwiXHJcblxyXG5leHBvcnQgKiBmcm9tIFwiLi9pbWFnaW5lLXdvcmtcIlxyXG5leHBvcnQgKiBmcm9tIFwiLi9pbWFnaW5lLWZ1bmNcIiJdfQ==
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/service-fmai/service-imagine/index.mjs
7
+ */
8
+ export*from"./imagine.service";export*from"./imagine-work";export*from"./imagine-func";
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL3NlcnZpY2UtZm1haS9zZXJ2aWNlLWltYWdpbmUvaW5kZXgubWpz`
10
+
@@ -1,62 +1,10 @@
1
- import { Component, Input } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import { DomSanitizer } from '@angular/platform-browser';
4
- import { IonIcon, ModalController } from '@ionic/angular/standalone';
5
- import { NzPipesModule } from 'ng-zorro-antd/pipes';
6
- import { FiletypePipe } from '../../../icon';
7
- import Parse from "parse";
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/platform-browser";
10
- import * as i2 from "@ionic/angular/standalone";
11
- import * as i3 from "@angular/material/button";
12
- import * as i4 from "ng-zorro-antd/pipes";
13
- export class FmOfficeViewerComponent {
14
- constructor(domSan, modalCtrl) {
15
- this.domSan = domSan;
16
- this.modalCtrl = modalCtrl;
17
- this.officeHost = "https://office.fmode.cn/browser/baa6eef/cool.html";
18
- // /hosting/discovery
19
- // /hosting/capabilities ."productVersionHash": "baa6eef",
20
- // /browser/dist/admin/admin.html
21
- this.wopiHost = "https://server.fmode.cn/api/office";
22
- this.permission = "readonly";
23
- this.showHeader = false;
24
- }
25
- back() {
26
- this.modalCtrl.dismiss();
27
- }
28
- ngOnInit() {
29
- this.genSafeUrl();
30
- }
31
- genSafeUrl() {
32
- if (this.fileId) {
33
- let url = `${this.officeHost}?lang=zh-cn&permission=${this.permission}&WOPISrc=${this.wopiHost}/wopi/files/${this.fileId}`;
34
- this.safeUrl = this.domSan.bypassSecurityTrustResourceUrl(url);
35
- this.loadAttachment(this.fileId);
36
- }
37
- }
38
- async loadAttachment(id) {
39
- let query = new Parse.Query("Attachment");
40
- this.attach = await query.get(id);
41
- }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmOfficeViewerComponent, deps: [{ token: i1.DomSanitizer }, { token: i2.ModalController }], target: i0.ɵɵFactoryTarget.Component }); }
43
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: FmOfficeViewerComponent, isStandalone: true, selector: "fm-office-viewer", inputs: { officeHost: "officeHost", wopiHost: "wopiHost", fileId: "fileId", permission: "permission", showHeader: "showHeader" }, ngImport: i0, template: "@if(showHeader&&attach?.id){\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]=\"attach?.get('url') | filetype\"></ion-icon>\r\n <span class=\"size\">{{attach?.get(\"size\") | nzBytes }}</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{attach?.get(\"name\") || '\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@if(safeUrl){\r\n <iframe [src]=\"safeUrl\" frameborder=\"0\" allow=\"clipboard-read *; clipboard-write *\"></iframe> \r\n}", styles: ["iframe{width:100%;height:100%}.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;padding:5px 15px;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: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.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: i4.NzBytesPipe, name: "nzBytes" }, { kind: "pipe", type: FiletypePipe, name: "filetype" }] }); }
44
- }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FmOfficeViewerComponent, decorators: [{
46
- type: Component,
47
- args: [{ selector: 'fm-office-viewer', standalone: true, imports: [
48
- IonIcon, MatButtonModule,
49
- NzPipesModule, FiletypePipe
50
- ], template: "@if(showHeader&&attach?.id){\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]=\"attach?.get('url') | filetype\"></ion-icon>\r\n <span class=\"size\">{{attach?.get(\"size\") | nzBytes }}</span>\r\n </div>\r\n <!-- \u6807\u9898 -->\r\n <div class=\"title\">\r\n {{attach?.get(\"name\") || '\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@if(safeUrl){\r\n <iframe [src]=\"safeUrl\" frameborder=\"0\" allow=\"clipboard-read *; clipboard-write *\"></iframe> \r\n}", styles: ["iframe{width:100%;height:100%}.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;padding:5px 15px;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"] }]
51
- }], ctorParameters: () => [{ type: i1.DomSanitizer }, { type: i2.ModalController }], propDecorators: { officeHost: [{
52
- type: Input
53
- }], wopiHost: [{
54
- type: Input
55
- }], fileId: [{
56
- type: Input
57
- }], permission: [{
58
- type: Input
59
- }], showHeader: [{
60
- type: Input
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm0tb2ZmaWNlLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mbW9kZS1uZy9zcmMvbGliL2FpZ2Mvc3RvcnkvZm0tb2ZmaWNlLXZpZXdlci9mbS1vZmZpY2Utdmlld2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ztb2RlLW5nL3NyYy9saWIvYWlnYy9zdG9yeS9mbS1vZmZpY2Utdmlld2VyL2ZtLW9mZmljZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7Ozs7OztBQVkxQixNQUFNLE9BQU8sdUJBQXVCO0lBbUJsQyxZQUNVLE1BQW1CLEVBQ25CLFNBQXlCO1FBRHpCLFdBQU0sR0FBTixNQUFNLENBQWE7UUFDbkIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFsQm5DLGVBQVUsR0FBVSxtREFBbUQsQ0FBQTtRQUN2RSxxQkFBcUI7UUFDckIsMERBQTBEO1FBQzFELGlDQUFpQztRQUVqQyxhQUFRLEdBQVUsb0NBQW9DLENBQUE7UUFLdEQsZUFBVSxHQUFVLFVBQVUsQ0FBQTtRQUc5QixlQUFVLEdBQVcsS0FBSyxDQUFDO0lBTzNCLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQTtJQUNuQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDO1lBQ2QsSUFBSSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSwwQkFBMEIsSUFBSSxDQUFDLFVBQVUsWUFBWSxJQUFJLENBQUMsUUFBUSxlQUFlLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQTtZQUMxSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFDRCxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQVM7UUFDNUIsSUFBSSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXBDLENBQUM7K0dBM0NVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhNQ2xCcEMsNGhDQXVCQyw4aEJEVEcsT0FBTywwSkFBQyxlQUFlLDJOQUN2QixhQUFhLG1GQUFDLFlBQVk7OzRGQUdqQix1QkFBdUI7a0JBVm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUjt3QkFDTixPQUFPLEVBQUMsZUFBZTt3QkFDdkIsYUFBYSxFQUFDLFlBQVk7cUJBQzNCOytHQUtELFVBQVU7c0JBRFQsS0FBSztnQkFNTixRQUFRO3NCQURQLEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgSW9uSWNvbiwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XHJcbmltcG9ydCB7IE56UGlwZXNNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3BpcGVzJztcclxuaW1wb3J0IHsgRmlsZXR5cGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vaWNvbic7XHJcbmltcG9ydCBQYXJzZSBmcm9tIFwicGFyc2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm0tb2ZmaWNlLXZpZXdlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZtLW9mZmljZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZtLW9mZmljZS12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6W1xyXG4gICAgSW9uSWNvbixNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBOelBpcGVzTW9kdWxlLEZpbGV0eXBlUGlwZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZtT2ZmaWNlVmlld2VyQ29tcG9uZW50ICBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgb2ZmaWNlSG9zdDpzdHJpbmcgPSBcImh0dHBzOi8vb2ZmaWNlLmZtb2RlLmNuL2Jyb3dzZXIvYmFhNmVlZi9jb29sLmh0bWxcIlxyXG4gIC8vIC9ob3N0aW5nL2Rpc2NvdmVyeVxyXG4gIC8vIC9ob3N0aW5nL2NhcGFiaWxpdGllcyAuXCJwcm9kdWN0VmVyc2lvbkhhc2hcIjogXCJiYWE2ZWVmXCIsXHJcbiAgLy8gL2Jyb3dzZXIvZGlzdC9hZG1pbi9hZG1pbi5odG1sXHJcbiAgQElucHV0KClcclxuICB3b3BpSG9zdDpzdHJpbmcgPSBcImh0dHBzOi8vc2VydmVyLmZtb2RlLmNuL2FwaS9vZmZpY2VcIlxyXG4gIEBJbnB1dCgpXHJcbiAgZmlsZUlkOnN0cmluZ3x1bmRlZmluZWQgLy8gQXR0YWNobWVudC5vYmplY3RJZFxyXG4gIGF0dGFjaDpQYXJzZS5PYmplY3R8dW5kZWZpbmVkXHJcbiAgQElucHV0KClcclxuICBwZXJtaXNzaW9uOnN0cmluZyA9IFwicmVhZG9ubHlcIlxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dIZWFkZXI6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBzYWZlVXJsOlNhZmVSZXNvdXJjZVVybHx1bmRlZmluZWRcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZG9tU2FuOkRvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgbW9kYWxDdHJsOk1vZGFsQ29udHJvbGxlclxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgYmFjaygpe1xyXG4gICAgdGhpcy5tb2RhbEN0cmwuZGlzbWlzcygpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2VuU2FmZVVybCgpXHJcbiAgfVxyXG5cclxuICBnZW5TYWZlVXJsKCl7XHJcbiAgICBpZih0aGlzLmZpbGVJZCl7XHJcbiAgICAgIGxldCB1cmwgPSBgJHt0aGlzLm9mZmljZUhvc3R9P2xhbmc9emgtY24mcGVybWlzc2lvbj0ke3RoaXMucGVybWlzc2lvbn0mV09QSVNyYz0ke3RoaXMud29waUhvc3R9L3dvcGkvZmlsZXMvJHt0aGlzLmZpbGVJZH1gXHJcbiAgICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuZG9tU2FuLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybCh1cmwpXHJcbiAgICAgIHRoaXMubG9hZEF0dGFjaG1lbnQodGhpcy5maWxlSWQpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGFzeW5jIGxvYWRBdHRhY2htZW50KGlkOnN0cmluZyl7XHJcbiAgICBsZXQgcXVlcnkgPSBuZXcgUGFyc2UuUXVlcnkoXCJBdHRhY2htZW50XCIpO1xyXG4gICAgdGhpcy5hdHRhY2ggPSBhd2FpdCBxdWVyeS5nZXQoaWQpO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIkBpZihzaG93SGVhZGVyJiZhdHRhY2g/LmlkKXtcclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlYmFyXCI+XHJcbiAgICAgICAgPCEtLSDmlofku7bkv6Hmga8gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtaW5mb1wiIHN0eWxlPVwiZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtcIj5cclxuICAgICAgICAgIDwhLS0g5Zu+5qCHK+Wkp+WwjyAtLT5cclxuICAgICAgICAgICAgPGlvbi1pY29uIFtzcmNdPVwiYXR0YWNoPy5nZXQoJ3VybCcpIHwgZmlsZXR5cGVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNpemVcIj57e2F0dGFjaD8uZ2V0KFwic2l6ZVwiKSB8IG56Qnl0ZXMgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLSDmoIfpopggLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgICAgICAge3thdHRhY2g/LmdldChcIm5hbWVcIikgfHwgJ+acquWRveWQjSd9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0g5pON5L2c5Yy65Z+fIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgc3R5bGU9XCJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDogZmxleC1lbmQ7XCI+XHJcbiAgICAgICAgICAgIDwhLS0g5YWz6ZetIC0tPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImJhY2soKVwiIGFyaWEtbGFiZWw9XCLpooTop4hcIj5cclxuICAgICAgICAgICAgICAgIOWFs+mXrVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG59XHJcbkBpZihzYWZlVXJsKXtcclxuICAgIDxpZnJhbWUgW3NyY109XCJzYWZlVXJsXCIgZnJhbWVib3JkZXI9XCIwXCIgYWxsb3c9XCJjbGlwYm9hcmQtcmVhZCAqOyBjbGlwYm9hcmQtd3JpdGUgKlwiPjwvaWZyYW1lPiBcclxufSJdfQ==
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/fm-office-viewer/fm-office-viewer.component.mjs
7
+ */
8
+ import{Component,Input}from"@angular/core";import{MatButtonModule}from"@angular/material/button";import{DomSanitizer}from"@angular/platform-browser";import{IonIcon,ModalController}from"@ionic/angular/standalone";import{NzPipesModule}from"ng-zorro-antd/pipes";import{FiletypePipe}from"../../../icon";import{FmodeParse}from"@fmode/parse";import*as i0 from"@angular/core";import*as i1 from"@angular/platform-browser";import*as i2 from"@ionic/angular/standalone";import*as i3 from"@angular/material/button";import*as i4 from"ng-zorro-antd/pipes";const Parse=FmodeParse.with("nova");export class FmOfficeViewerComponent{constructor(e,t){this.domSan=e,this.modalCtrl=t,this.officeHost="https://office.fmode.cn/browser/baa6eef/cool.html",this.wopiHost="https://server.fmode.cn/api/office",this.permission="readonly",this.showHeader=!1}back(){this.modalCtrl.dismiss()}ngOnInit(){this.genSafeUrl()}genSafeUrl(){if(this.fileId){let e=`${this.officeHost}?lang=zh-cn&permission=${this.permission}&WOPISrc=${this.wopiHost}/wopi/files/${this.fileId}`;this.safeUrl=this.domSan.bypassSecurityTrustResourceUrl(e),this.loadAttachment(this.fileId)}}async loadAttachment(e){let t=new Parse.Query("Attachment");this.attach=await t.get(e)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmOfficeViewerComponent,deps:[{token:i1.DomSanitizer},{token:i2.ModalController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:"17.0.0",version:"17.3.12",type:FmOfficeViewerComponent,isStandalone:!0,selector:"fm-office-viewer",inputs:{officeHost:"officeHost",wopiHost:"wopiHost",fileId:"fileId",permission:"permission",showHeader:"showHeader"},ngImport:i0,template:'@if(showHeader&&attach?.id){\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]="attach?.get(\'url\') | filetype"></ion-icon>\n <span class="size">{{attach?.get("size") | nzBytes }}</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{attach?.get("name") || \'未命名\'}}\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@if(safeUrl){\n <iframe [src]="safeUrl" frameborder="0" allow="clipboard-read *; clipboard-write *"></iframe> \n}',styles:["iframe{width:100%;height:100%}.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;padding:5px 15px;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:"component",type:IonIcon,selector:"ion-icon",inputs:["color","flipRtl","icon","ios","lazy","md","mode","name","sanitize","size","src"]},{kind:"ngmodule",type:MatButtonModule},{kind:"component",type:i3.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:i4.NzBytesPipe,name:"nzBytes"},{kind:"pipe",type:FiletypePipe,name:"filetype"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"17.3.12",ngImport:i0,type:FmOfficeViewerComponent,decorators:[{type:Component,args:[{selector:"fm-office-viewer",standalone:!0,imports:[IonIcon,MatButtonModule,NzPipesModule,FiletypePipe],template:'@if(showHeader&&attach?.id){\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]="attach?.get(\'url\') | filetype"></ion-icon>\n <span class="size">{{attach?.get("size") | nzBytes }}</span>\n </div>\n \x3c!-- 标题 --\x3e\n <div class="title">\n {{attach?.get("name") || \'未命名\'}}\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@if(safeUrl){\n <iframe [src]="safeUrl" frameborder="0" allow="clipboard-read *; clipboard-write *"></iframe> \n}',styles:["iframe{width:100%;height:100%}.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;padding:5px 15px;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.DomSanitizer},{type:i2.ModalController}],propDecorators:{officeHost:[{type:Input}],wopiHost:[{type:Input}],fileId:[{type:Input}],permission:[{type:Input}],showHeader:[{type:Input}]}});
9
+ var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9haWdjL3N0b3J5L2ZtLW9mZmljZS12aWV3ZXIvZm0tb2ZmaWNlLXZpZXdlci5jb21wb25lbnQubWpz`
10
+