fmode-ng 0.0.113 → 0.0.115
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +8 -0
- package/README.md +37 -37
- package/esm2022/fmode-ng.mjs +10 -5
- package/esm2022/lib/aigc/agent/fm-agent-task/fm-agent-task.component.mjs +8 -92
- package/esm2022/lib/aigc/agent/index.mjs +10 -3
- package/esm2022/lib/aigc/avatar/avatar.module.mjs +10 -45
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/avatar.role.mjs +10 -2
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/comp-avatar-particle.component.mjs +10 -315
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/index.mjs +10 -3
- package/esm2022/lib/aigc/avatar/comp-avatar-particle/role-points.class.mjs +10 -57
- package/esm2022/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.mjs +10 -98
- package/esm2022/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.mjs +10 -107
- package/esm2022/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.mjs +10 -113
- package/esm2022/lib/aigc/avatar/index.mjs +10 -8
- package/esm2022/lib/aigc/avatar/interface-avatar-role.mjs +10 -2
- package/esm2022/lib/aigc/avatar/modal-chat-voice-input/modal-chat-voice-input.component.mjs +8 -164
- package/esm2022/lib/aigc/chat/chat-header-area/comp-header-area.component.mjs +10 -49
- package/esm2022/lib/aigc/chat/chat-header-area/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-list/chat-list.component.mjs +8 -155
- package/esm2022/lib/aigc/chat/chat-list/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-message-area/comp-message-area.component.mjs +10 -40
- package/esm2022/lib/aigc/chat/chat-message-area/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/chat-message-card/comp-message-card.component.mjs +10 -140
- package/esm2022/lib/aigc/chat/chat-message-card/duration-str.pipe.mjs +10 -29
- package/esm2022/lib/aigc/chat/chat-message-card/index.mjs +10 -3
- package/esm2022/lib/aigc/chat/chat-modal-input/index.mjs +10 -3
- package/esm2022/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.mjs +8 -193
- package/esm2022/lib/aigc/chat/chat-modal-input/modal-input.component.mjs +10 -331
- package/esm2022/lib/aigc/chat/chat-panel/chat-panel.component.mjs +8 -249
- package/esm2022/lib/aigc/chat/comp-role-prompt/comp-role-prompt.component.mjs +10 -83
- package/esm2022/lib/aigc/chat/comp-role-prompt/index.mjs +10 -2
- package/esm2022/lib/aigc/chat/index.mjs +10 -8
- package/esm2022/lib/aigc/comp-markdown-preview/clipboard.service.mjs +10 -82
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-parse.mjs +8 -367
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.component.mjs +10 -51
- package/esm2022/lib/aigc/comp-markdown-preview/markdown-preview.module.mjs +10 -24
- package/esm2022/lib/aigc/comp-markdown-preview/plugins/md-mathjax/index.mjs +10 -115
- package/esm2022/lib/aigc/index.mjs +10 -14
- package/esm2022/lib/aigc/service-fmai/fmai.service.mjs +10 -21
- package/esm2022/lib/aigc/service-fmai/service-chat/chat-class.mjs +10 -2
- package/esm2022/lib/aigc/service-fmai/service-chat/chat.service.mjs +8 -174
- package/esm2022/lib/aigc/service-fmai/service-chat/index.mjs +10 -7
- package/esm2022/lib/aigc/service-fmai/service-chat/mask-list.mjs +9 -194
- package/esm2022/lib/aigc/service-fmai/service-chat/pipes/chat-content.pipe.mjs +10 -27
- package/esm2022/lib/aigc/service-fmai/service-chat/pipes/hidexml.pipe.mjs +10 -27
- package/esm2022/lib/aigc/service-fmai/service-chat/utilnow.pipe.mjs +10 -68
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-func.mjs +9 -162
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine-work.mjs +10 -68
- package/esm2022/lib/aigc/service-fmai/service-imagine/imagine.service.mjs +8 -313
- package/esm2022/lib/aigc/service-fmai/service-imagine/index.mjs +10 -4
- package/esm2022/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.mjs +10 -62
- package/esm2022/lib/aigc/story/fm-story-card/fm-story-card.component.mjs +10 -87
- package/esm2022/lib/aigc/story/fm-story-list/fm-story-list.component.mjs +10 -345
- package/esm2022/lib/aigc/story/fm-story-list/story-preview.mjs +10 -81
- package/esm2022/lib/aigc/story/fm-story-loader/fm-story-loader.component.mjs +10 -152
- package/esm2022/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.mjs +10 -42
- package/esm2022/lib/aigc/story/index.mjs +10 -6
- package/esm2022/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.mjs +10 -47
- package/esm2022/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.mjs +10 -95
- package/esm2022/lib/aigc/story/modal-chat-story/modal-chat-story.component.mjs +10 -253
- package/esm2022/lib/aigc/story/story.service.mjs +10 -35
- package/esm2022/lib/aigc/voice/fmode-voice.service.mjs +10 -636
- package/esm2022/lib/aigc/voice/index.mjs +10 -7
- package/esm2022/lib/aigc/voice/lib/audio/audio.player.mjs +10 -55
- package/esm2022/lib/aigc/voice/lib/audio/audio.streamer.mjs +10 -2
- package/esm2022/lib/aigc/voice/lib/audio/streamer.microsoft.mjs +10 -96
- package/esm2022/lib/aigc/voice/lib/audio/streamer.pcm.mjs +8 -177
- package/esm2022/lib/aigc/voice/lib/pcm2wav.mjs +10 -38
- package/esm2022/lib/aigc/voice/lib/recorder/extension-waveview.mjs +10 -215
- package/esm2022/lib/aigc/voice/lib/resample.mjs +10 -34
- package/esm2022/lib/aigc/voice/tts/fmode-tts-class.mjs +10 -189
- package/esm2022/lib/aigc/voice/tts/index.mjs +10 -5
- package/esm2022/lib/aigc/voice/tts/int-tts-provider.mjs +10 -2
- package/esm2022/lib/aigc/voice/tts/provider-doubao.mjs +8 -346
- package/esm2022/lib/code/fm-codemirror/fm-codemirror.component.mjs +8 -342
- package/esm2022/lib/code/index.mjs +10 -2
- package/esm2022/lib/core/agent/chat/completion/fmode-completion.mjs +8 -430
- package/esm2022/lib/core/agent/chat/completion/index.mjs +10 -2
- package/esm2022/lib/core/agent/chat/completion/int-gpt-chat-options.mjs +10 -2
- package/esm2022/lib/core/agent/chat/fmode-chat.mjs +8 -617
- package/esm2022/lib/core/agent/chat/index.mjs +10 -4
- package/esm2022/lib/core/agent/chat/interface.mjs +10 -2
- package/esm2022/lib/core/agent/index.mjs +10 -6
- package/esm2022/lib/core/agent/prompt/agent.prompt.mjs +10 -133
- package/esm2022/lib/core/agent/prompt/index.mjs +10 -2
- package/esm2022/lib/core/agent/prompt/prompt-util.mjs +10 -16
- package/esm2022/lib/core/agent/story/agent.story.mjs +10 -64
- package/esm2022/lib/core/agent/story/index.mjs +10 -2
- package/esm2022/lib/core/agent/task/agent.task.mjs +10 -90
- package/esm2022/lib/core/agent/task/index.mjs +10 -2
- package/esm2022/lib/core/agent/waiting/index.mjs +10 -3
- package/esm2022/lib/core/agent/waiting/loading/loading.ctrl.mjs +10 -279
- package/esm2022/lib/core/agent/waiting/tips/tips.ctrl.mjs +8 -190
- package/esm2022/lib/core/index.mjs +10 -4
- package/esm2022/lib/core/parse/datatype/acl.mjs +10 -57
- package/esm2022/lib/core/parse/datatype/file.mjs +10 -69
- package/esm2022/lib/core/parse/datatype/geopoint.mjs +10 -57
- package/esm2022/lib/core/parse/datatype/relation.mjs +10 -56
- package/esm2022/lib/core/parse/fmode.cloud.mjs +10 -0
- package/esm2022/lib/core/parse/fmode.object.mjs +10 -232
- package/esm2022/lib/core/parse/fmode.parse.mjs +10 -84
- package/esm2022/lib/core/parse/fmode.query.mjs +8 -500
- package/esm2022/lib/core/parse/fmode.user.mjs +10 -275
- package/esm2022/lib/core/parse/index.mjs +10 -5
- package/esm2022/lib/core/parse/types.mjs +10 -2
- package/esm2022/lib/core/voice/index.mjs +10 -3
- package/esm2022/lib/core/voice/tts/index.mjs +10 -2
- package/esm2022/lib/icon/filetype/audio.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/avatar.svg.mjs +10 -14
- package/esm2022/lib/icon/filetype/chat.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/docx.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/file.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/filetype.pipe.mjs +10 -57
- package/esm2022/lib/icon/filetype/index.mjs +10 -12
- package/esm2022/lib/icon/filetype/md.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/pdf.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/pptx.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/svgtoblob.mjs +10 -8
- package/esm2022/lib/icon/filetype/video.svg.mjs +10 -3
- package/esm2022/lib/icon/filetype/xlsx.svg.mjs +10 -3
- package/esm2022/lib/icon/index.mjs +10 -2
- package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.component.mjs +10 -209
- package/esm2022/lib/map/comp-poi-picker/comp-poi-picker.module.mjs +10 -33
- package/esm2022/lib/map/index.mjs +10 -4
- package/esm2022/lib/map/map.module.mjs +10 -61
- package/esm2022/lib/map/page-loca-scatter/page-loca-scatter.component.mjs +10 -132
- package/esm2022/lib/map/page-map.start/page-map.start.component.mjs +8 -115
- package/esm2022/lib/map/page-plan-route/page-plan-route.component.mjs +8 -118
- package/esm2022/lib/nova-cloud/index.mjs +10 -3
- package/esm2022/lib/nova-cloud/ncloud-api-func.mjs +10 -91
- package/esm2022/lib/nova-cloud/nova-cloud.service.mjs +10 -53
- package/esm2022/lib/payment/index.mjs +10 -2
- package/esm2022/lib/payment/payment/payment.component.mjs +10 -543
- package/esm2022/lib/payment/payment.service.mjs +10 -202
- package/esm2022/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.mjs +10 -48
- package/esm2022/lib/person/comp-person-item/comp-person-item.component.mjs +10 -29
- package/esm2022/lib/person/comp-person-story/comp-person-story.component.mjs +10 -211
- package/esm2022/lib/person/edit-upload/edit-upload.component.mjs +8 -412
- package/esm2022/lib/person/edit-upload/edit-upload.module.mjs +10 -50
- package/esm2022/lib/person/index.mjs +10 -5
- package/esm2022/lib/person/modal-person-select/modal-person-select.component.mjs +10 -144
- package/esm2022/lib/person/modal-user-verify/secret-text.pipe.mjs +10 -41
- package/esm2022/lib/person/modal-user-verify/user-verify.component.mjs +10 -595
- package/esm2022/lib/person/person-detail/person-detail.component.mjs +10 -172
- package/esm2022/lib/person/person.service.mjs +8 -193
- package/esm2022/lib/platform/cross.service.mjs +10 -62
- package/esm2022/lib/platform/index.mjs +10 -2
- package/esm2022/lib/social/index.mjs +10 -2
- package/esm2022/lib/social/wechat/wechat-jssdk.service.mjs +8 -230
- package/esm2022/lib/storage/comp-hwobs-manager/hwobs-manager.component.mjs +10 -59
- package/esm2022/lib/storage/index.mjs +10 -5
- package/esm2022/lib/storage/service-hwobs/hwobs.service.mjs +8 -131
- package/esm2022/lib/storage/service-hwobs/index.mjs +10 -3
- package/esm2022/lib/storage/service-hwobs/typings/esdk-obs-browser.mjs +1 -1
- package/esm2022/lib/storage/service-upload/index.mjs +10 -2
- package/esm2022/lib/storage/service-upload/nova-upload.service.mjs +8 -513
- package/esm2022/lib/storage/service-upload/util-file-md5.mjs +10 -28
- package/esm2022/lib/storage/service-upload/util-file-metadata.mjs +10 -93
- package/esm2022/lib/storage/storage.module.mjs +10 -42
- package/esm2022/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.mjs +10 -72
- package/esm2022/lib/text/fm-article-editor/article.service.mjs +10 -237
- package/esm2022/lib/text/fm-article-editor/comp-upload-book-banners/comp-upload-book-banners.component.mjs +8 -72
- package/esm2022/lib/text/fm-article-editor/draft.service.mjs +10 -207
- package/esm2022/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.mjs +8 -227
- package/esm2022/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.mjs +10 -303
- package/esm2022/lib/text/fm-article-editor/fm-article-editor.component.mjs +8 -371
- package/esm2022/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.mjs +10 -94
- package/esm2022/lib/text/fm-article-editor/fm-article-outline-leftitem/fm-article-outline-leftitem.component.mjs +10 -36
- package/esm2022/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.mjs +10 -281
- package/esm2022/lib/text/fm-article-editor/fm-article-write-options/fm-article-write-options.component.mjs +10 -72
- package/esm2022/lib/text/fm-article-editor/outline-count.pipe.mjs +10 -22
- package/esm2022/lib/text/fm-article-editor/prompt/prompt-insertion-article.mjs +10 -169
- package/esm2022/lib/text/fm-article-editor/task-article-generation.mjs +10 -69
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-draft-create.mjs +10 -65
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline-edit.mjs +10 -55
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-outline.mjs +10 -142
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-preview.mjs +10 -35
- package/esm2022/lib/text/fm-article-editor/tasks/task-article-writing-options.mjs +10 -81
- package/esm2022/lib/text/fm-article-editor/tasks/task-document-select.mjs +10 -50
- package/esm2022/lib/text/fm-text-quill/fm-text-quill.component.mjs +10 -145
- package/esm2022/lib/text/index.mjs +10 -4
- package/esm2022/lib/user/account/account.service.mjs +10 -222
- package/esm2022/lib/user/captcha/captcha.component.mjs +10 -135
- package/esm2022/lib/user/comp-user-avatar/comp-user-avatar.component.mjs +10 -66
- package/esm2022/lib/user/index.mjs +10 -17
- package/esm2022/lib/user/login/auth.guard.mjs +10 -28
- package/esm2022/lib/user/login/auth.service.mjs +8 -433
- package/esm2022/lib/user/login/login.component.mjs +10 -916
- package/esm2022/lib/user/modal-user-login/modal-user-login.component.mjs +10 -311
- package/esm2022/lib/user/profile/auth-profile.guard.mjs +10 -27
- package/esm2022/lib/user/profile/auth-profile.service.mjs +10 -122
- package/esm2022/lib/user/profile/profile-bind/profile-bind.component.mjs +10 -164
- package/esm2022/lib/user/profile/profile-bind/profile-confirm-modal.component.mjs +10 -79
- package/esm2022/lib/user/profile/profile.module.mjs +10 -54
- package/esm2022/lib/user/staff/index.mjs +10 -4
- package/esm2022/lib/user/staff/staff.guard.mjs +10 -26
- package/esm2022/lib/user/staff/staff.module.mjs +10 -18
- package/esm2022/lib/user/staff/staff.service.mjs +10 -85
- package/esm2022/lib/user/user-name.pipe.mjs +10 -29
- package/esm2022/lib/user/user.module.mjs +10 -102
- package/esm2022/lib/video/fm-video/fm-video.component.mjs +10 -67
- package/esm2022/lib/video/index.mjs +10 -2
- package/esm2022/public-api.mjs +10 -21
- package/fesm2022/fmode-ng.mjs +7 -19788
- package/fesm2022/fmode-ng.mjs.map +1 -1
- package/lib/aigc/avatar/comp-avatar-role-image/comp-avatar-role-image.component.d.ts +2 -2
- package/lib/aigc/avatar/comp-avatar-role-video/comp-avatar-role-video.component.d.ts +2 -2
- package/lib/aigc/avatar/comp-avatar-talk/comp-avatar-talk.component.d.ts +2 -2
- package/lib/aigc/chat/chat-list/chat-list.component.d.ts +3 -2
- package/lib/aigc/chat/chat-message-card/comp-message-card.component.d.ts +3 -3
- package/lib/aigc/chat/chat-modal-input/modal-audio-message/modal-audio-message.component.d.ts +2 -2
- package/lib/aigc/chat/chat-modal-input/modal-input.component.d.ts +3 -3
- package/lib/aigc/service-fmai/service-imagine/imagine-func.d.ts +3 -3
- package/lib/aigc/service-fmai/service-imagine/imagine-work.d.ts +4 -4
- package/lib/aigc/service-fmai/service-imagine/imagine.service.d.ts +6 -6
- package/lib/aigc/story/fm-office-viewer/fm-office-viewer.component.d.ts +2 -2
- package/lib/aigc/story/fm-story-card/fm-story-card.component.d.ts +2 -1
- package/lib/aigc/story/fm-story-list/fm-story-list.component.d.ts +6 -6
- package/lib/aigc/story/fm-story-list/story-preview.d.ts +4 -4
- package/lib/aigc/story/fm-story-loader/fm-story-loader.component.d.ts +3 -3
- package/lib/aigc/story/fm-story-splitter/fm-story-splitter.component.d.ts +2 -2
- package/lib/aigc/story/modal-chat-story/comp-chat-story-json/comp-chat-story-json.component.d.ts +3 -2
- package/lib/aigc/story/modal-chat-story/comp-diary-story/comp-diary-story.component.d.ts +3 -2
- package/lib/aigc/story/modal-chat-story/modal-chat-story.component.d.ts +6 -6
- package/lib/aigc/story/story.service.d.ts +3 -2
- package/lib/aigc/voice/tts/fmode-tts-class.d.ts +2 -2
- package/lib/core/agent/chat/fmode-chat.d.ts +11 -11
- package/lib/core/agent/story/agent.story.d.ts +8 -8
- package/lib/core/parse/datatype/geopoint.d.ts +5 -1
- package/lib/core/parse/fmode.cloud.d.ts +32 -0
- package/lib/core/parse/fmode.object.d.ts +2 -2
- package/lib/core/parse/fmode.parse.d.ts +15 -9
- package/lib/core/parse/fmode.query.d.ts +41 -2
- package/lib/core/parse/fmode.user.d.ts +1 -0
- package/lib/core/parse/index.d.ts +1 -0
- package/lib/core/parse/types.d.ts +2 -0
- package/lib/map/comp-poi-picker/comp-poi-picker.component.d.ts +5 -5
- package/lib/payment/payment/payment.component.d.ts +3 -3
- package/lib/payment/payment.service.d.ts +4 -4
- package/lib/person/comp-person-gender-icon/comp-person-gender-icon.component.d.ts +2 -1
- package/lib/person/comp-person-item/comp-person-item.component.d.ts +2 -1
- package/lib/person/comp-person-story/comp-person-story.component.d.ts +13 -13
- package/lib/person/edit-upload/edit-upload.component.d.ts +1 -1
- package/lib/person/modal-person-select/modal-person-select.component.d.ts +5 -5
- package/lib/person/modal-user-verify/user-verify.component.d.ts +5 -5
- package/lib/person/person-detail/person-detail.component.d.ts +4 -4
- package/lib/person/person.service.d.ts +7 -7
- package/lib/storage/service-hwobs/hwobs.service.d.ts +4 -5
- package/lib/storage/service-upload/nova-upload.service.d.ts +5 -5
- package/lib/text/fm-article-editor/article-editor-topbar/article-editor-topbar.component.d.ts +2 -1
- package/lib/text/fm-article-editor/article.service.d.ts +12 -12
- package/lib/text/fm-article-editor/draft.service.d.ts +5 -5
- package/lib/text/fm-article-editor/fm-article-aitool/fm-article-aitool.component.d.ts +3 -2
- package/lib/text/fm-article-editor/fm-article-draft/fm-article-draft.component.d.ts +16 -17
- package/lib/text/fm-article-editor/fm-article-editor.component.d.ts +3 -3
- package/lib/text/fm-article-editor/fm-article-outline/fm-article-outline.component.d.ts +11 -10
- package/lib/text/fm-article-editor/fm-article-preview/fm-article-preview.component.d.ts +2 -2
- package/lib/text/fm-article-editor/prompt/prompt-insertion-article.d.ts +3 -3
- package/lib/text/fm-article-editor/task-article-generation.d.ts +5 -4
- package/lib/text/fm-article-editor/tasks/task-article-draft-create.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-outline-edit.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-outline.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-article-preview.d.ts +2 -1
- package/lib/text/fm-article-editor/tasks/task-article-writing-options.d.ts +3 -3
- package/lib/text/fm-article-editor/tasks/task-document-select.d.ts +3 -3
- package/lib/user/account/account.service.d.ts +2 -2
- package/lib/user/comp-user-avatar/comp-user-avatar.component.d.ts +2 -2
- package/lib/user/login/auth.service.d.ts +5 -5
- package/lib/user/login/login.component.d.ts +3 -3
- package/lib/user/profile/auth-profile.service.d.ts +8 -8
- package/lib/user/profile/profile-bind/profile-bind.component.d.ts +7 -7
- package/lib/user/profile/profile-bind/profile-confirm-modal.component.d.ts +2 -2
- package/lib/user/staff/staff.service.d.ts +3 -3
- package/lib/user/user-name.pipe.d.ts +2 -2
- package/package.json +12 -18
|
@@ -1,279 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
constructor(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this._taskIndex = 0;
|
|
12
|
-
this._taskTotal = 1;
|
|
13
|
-
this.position = "bottom";
|
|
14
|
-
this.container = null;
|
|
15
|
-
this.progressTimer = null;
|
|
16
|
-
this._message = options.message ?? this._message;
|
|
17
|
-
this._progress = options.progress ?? this._progress;
|
|
18
|
-
this._taskIndex = options.taskIndex ?? this._taskIndex;
|
|
19
|
-
this._taskTotal = options.taskTotal ?? this._taskTotal;
|
|
20
|
-
this.position = options.position ?? this.position;
|
|
21
|
-
this.handle = options.handle;
|
|
22
|
-
this.initDom();
|
|
23
|
-
}
|
|
24
|
-
// ✅ setters 自动刷新 UI
|
|
25
|
-
set message(val) {
|
|
26
|
-
this._message = val;
|
|
27
|
-
this.updateUI();
|
|
28
|
-
}
|
|
29
|
-
get message() {
|
|
30
|
-
return this._message;
|
|
31
|
-
}
|
|
32
|
-
set progress(val) {
|
|
33
|
-
this._progress = val;
|
|
34
|
-
this.updateUI();
|
|
35
|
-
}
|
|
36
|
-
get progress() {
|
|
37
|
-
return this._progress;
|
|
38
|
-
}
|
|
39
|
-
set taskIndex(val) {
|
|
40
|
-
this._taskIndex = val;
|
|
41
|
-
this.updateUI();
|
|
42
|
-
}
|
|
43
|
-
get taskIndex() {
|
|
44
|
-
return this._taskIndex;
|
|
45
|
-
}
|
|
46
|
-
set taskTotal(val) {
|
|
47
|
-
this._taskTotal = val;
|
|
48
|
-
this.updateUI();
|
|
49
|
-
}
|
|
50
|
-
get taskTotal() {
|
|
51
|
-
return this._taskTotal;
|
|
52
|
-
}
|
|
53
|
-
initDom() {
|
|
54
|
-
this.container = document.createElement("div");
|
|
55
|
-
this.container.className = "fmode-loading fmode-loading-" + this.position;
|
|
56
|
-
this.setPositionStyle();
|
|
57
|
-
this.container.innerHTML = `
|
|
58
|
-
<div class="fmode-loader-circle">
|
|
59
|
-
<svg viewBox="0 0 100 100">
|
|
60
|
-
<circle class="bg" cx="50" cy="50" r="45" />
|
|
61
|
-
<circle class="progress" cx="50" cy="50" r="45" />
|
|
62
|
-
</svg>
|
|
63
|
-
<div class="fmode-progress-text">${Math.round(this._progress * 100)}%</div>
|
|
64
|
-
</div>
|
|
65
|
-
<div class="fmode-task-info">任务 ${this._taskIndex} / ${this._taskTotal}</div>
|
|
66
|
-
<div class="fmode-message">${this._message}</div>
|
|
67
|
-
`;
|
|
68
|
-
this.injectCss();
|
|
69
|
-
}
|
|
70
|
-
setPositionStyle() {
|
|
71
|
-
if (!this.container)
|
|
72
|
-
return;
|
|
73
|
-
const pos = this.position;
|
|
74
|
-
const styleMap = {
|
|
75
|
-
top: { top: "20px", left: "50%", transform: "translateX(-50%)" },
|
|
76
|
-
bottom: { bottom: "100px", left: "50%", transform: "translateX(-50%)" },
|
|
77
|
-
middle: { top: "50%", left: "50%", transform: "translate(-50%, -50%)" },
|
|
78
|
-
topleft: { top: "20px", left: "20px" },
|
|
79
|
-
topright: { top: "20px", right: "20px" },
|
|
80
|
-
bottomleft: { bottom: "100px", left: "20px" },
|
|
81
|
-
bottomright: { bottom: "100px", right: "20px" },
|
|
82
|
-
};
|
|
83
|
-
const s = styleMap[pos];
|
|
84
|
-
Object.assign(this.container.style, {
|
|
85
|
-
position: "fixed",
|
|
86
|
-
zIndex: "99999",
|
|
87
|
-
display: "flex",
|
|
88
|
-
flexDirection: "row",
|
|
89
|
-
alignItems: "center",
|
|
90
|
-
gap: "8px",
|
|
91
|
-
...s,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
injectCss() {
|
|
95
|
-
if (!document.getElementById("fmode-loading-style")) {
|
|
96
|
-
const style = document.createElement("style");
|
|
97
|
-
style.id = "fmode-loading-style";
|
|
98
|
-
style.innerHTML = `
|
|
99
|
-
.fmode-loading {
|
|
100
|
-
position: fixed;
|
|
101
|
-
z-index: 99999;
|
|
102
|
-
display: flex;
|
|
103
|
-
flex-direction: row; /* 横排 */
|
|
104
|
-
align-items: center;
|
|
105
|
-
gap: 12px;
|
|
106
|
-
min-width: 360px; /* 防止消息过长时左边抖动 */
|
|
107
|
-
padding: 8px 12px;
|
|
108
|
-
border-radius: 8px;
|
|
109
|
-
background: rgba(0,0,0,0.6);
|
|
110
|
-
backdrop-filter: blur(6px);
|
|
111
|
-
animation: fadeIn 0.3s ease;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* 位置适配 */
|
|
115
|
-
.fmode-loading-top { top: 20px; left: 50%; transform: translateX(-50%); }
|
|
116
|
-
.fmode-loading-bottom { bottom: 100px; left: 50%; transform: translateX(-50%); }
|
|
117
|
-
.fmode-loading-middle { top: 50%; left: 50%; transform: translate(-50%, -50%); }
|
|
118
|
-
.fmode-loading-topleft { top: 20px; left: 20px; }
|
|
119
|
-
.fmode-loading-topright { top: 20px; right: 20px; }
|
|
120
|
-
.fmode-loading-bottomleft { bottom: 100px; left: 20px; }
|
|
121
|
-
.fmode-loading-bottomright { bottom: 100px; right: 20px; }
|
|
122
|
-
|
|
123
|
-
/* 背景发光 */
|
|
124
|
-
.fmode-loader-glow {
|
|
125
|
-
position: absolute;
|
|
126
|
-
width: 120px;
|
|
127
|
-
height: 120px;
|
|
128
|
-
background: radial-gradient(circle, rgba(0,255,255,0.2), transparent);
|
|
129
|
-
border-radius: 50%;
|
|
130
|
-
filter: blur(20px);
|
|
131
|
-
animation: glowPulse 2s infinite;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/* 圆形进度 */
|
|
135
|
-
|
|
136
|
-
.fmode-loader-circle {
|
|
137
|
-
flex-shrink: 0;
|
|
138
|
-
position: relative;
|
|
139
|
-
width: 48px;
|
|
140
|
-
height: 48px;
|
|
141
|
-
}
|
|
142
|
-
.fmode-loader-circle svg {
|
|
143
|
-
transform: rotate(-90deg);
|
|
144
|
-
width: 100%;
|
|
145
|
-
height: 100%;
|
|
146
|
-
}
|
|
147
|
-
.fmode-loader-circle circle {
|
|
148
|
-
fill: none;
|
|
149
|
-
stroke-width: 6;
|
|
150
|
-
stroke-linecap: round;
|
|
151
|
-
}
|
|
152
|
-
.fmode-loader-circle .bg {
|
|
153
|
-
stroke: rgba(255,255,255,0.1);
|
|
154
|
-
}
|
|
155
|
-
.fmode-loader-circle .progress {
|
|
156
|
-
stroke: url(#fmode-gradient);
|
|
157
|
-
stroke-dasharray: 283;
|
|
158
|
-
stroke-dashoffset: 283;
|
|
159
|
-
transition: stroke-dashoffset 0.3s ease;
|
|
160
|
-
}
|
|
161
|
-
.fmode-progress-text {
|
|
162
|
-
position: absolute;
|
|
163
|
-
top: 50%;
|
|
164
|
-
left: 50%;
|
|
165
|
-
transform: translate(-50%, -50%);
|
|
166
|
-
font-size: 12px;
|
|
167
|
-
font-weight: bold;
|
|
168
|
-
color: #0ff;
|
|
169
|
-
text-shadow: 0 0 6px #0ff;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
.fmode-task-info {
|
|
173
|
-
flex-shrink: 0;
|
|
174
|
-
font-size: 14px;
|
|
175
|
-
font-weight: bold;
|
|
176
|
-
color: #fff;
|
|
177
|
-
text-shadow: 0 0 4px rgba(0,0,0,0.5);
|
|
178
|
-
}
|
|
179
|
-
.fmode-message {
|
|
180
|
-
flex: 1;
|
|
181
|
-
font-size: 14px;
|
|
182
|
-
color: #fff;
|
|
183
|
-
text-shadow: 0 0 4px rgba(0,0,0,0.5);
|
|
184
|
-
white-space: nowrap;
|
|
185
|
-
overflow: hidden;
|
|
186
|
-
text-overflow: ellipsis;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
@keyframes glowPulse {
|
|
191
|
-
0%, 100% { opacity: 0.6; transform: scale(1); }
|
|
192
|
-
50% { opacity: 1; transform: scale(1.1); }
|
|
193
|
-
}
|
|
194
|
-
@keyframes fadeIn {
|
|
195
|
-
from { opacity: 0; transform: scale(0.9); }
|
|
196
|
-
to { opacity: 1; transform: scale(1); }
|
|
197
|
-
}
|
|
198
|
-
`;
|
|
199
|
-
document.head.appendChild(style);
|
|
200
|
-
// 添加 SVG 渐变定义
|
|
201
|
-
if (!document.getElementById("fmode-svg-gradient")) {
|
|
202
|
-
const svgDef = document.createElementNS("http://www.w3.org/2000/svg", "svg");
|
|
203
|
-
svgDef.style.position = "absolute";
|
|
204
|
-
svgDef.style.width = "0";
|
|
205
|
-
svgDef.style.height = "0";
|
|
206
|
-
svgDef.innerHTML = `
|
|
207
|
-
<defs>
|
|
208
|
-
<linearGradient id="fmode-gradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
|
209
|
-
<stop offset="0%" stop-color="#0ff" />
|
|
210
|
-
<stop offset="100%" stop-color="#0f0" />
|
|
211
|
-
</linearGradient>
|
|
212
|
-
</defs>
|
|
213
|
-
`;
|
|
214
|
-
svgDef.id = "fmode-svg-gradient";
|
|
215
|
-
document.body.appendChild(svgDef);
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
async present() {
|
|
220
|
-
if (this.container && !document.body.contains(this.container)) {
|
|
221
|
-
document.body.appendChild(this.container);
|
|
222
|
-
}
|
|
223
|
-
this.updateUI();
|
|
224
|
-
if (!this.handle) {
|
|
225
|
-
this.startAutoProgress();
|
|
226
|
-
}
|
|
227
|
-
else {
|
|
228
|
-
await this.handle();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
dismiss() {
|
|
232
|
-
if (this.container && document.body.contains(this.container)) {
|
|
233
|
-
document.body.removeChild(this.container);
|
|
234
|
-
}
|
|
235
|
-
if (this.progressTimer) {
|
|
236
|
-
cancelAnimationFrame(this.progressTimer);
|
|
237
|
-
this.progressTimer = null;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
startAutoProgress() {
|
|
241
|
-
let startTime = performance.now();
|
|
242
|
-
let duration = 50000; // 20秒
|
|
243
|
-
const easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
|
|
244
|
-
const step = (now) => {
|
|
245
|
-
let elapsed = now - startTime;
|
|
246
|
-
let ratio = elapsed / duration;
|
|
247
|
-
if (ratio > 1)
|
|
248
|
-
ratio = 1;
|
|
249
|
-
this.progress = easeOutCubic(ratio);
|
|
250
|
-
this.updateUI();
|
|
251
|
-
if (ratio < 1) {
|
|
252
|
-
this.progressTimer = requestAnimationFrame(step);
|
|
253
|
-
}
|
|
254
|
-
};
|
|
255
|
-
this.progressTimer = requestAnimationFrame(step);
|
|
256
|
-
}
|
|
257
|
-
updateUI() {
|
|
258
|
-
if (!this.container)
|
|
259
|
-
return;
|
|
260
|
-
const progressCircle = this.container.querySelector(".progress");
|
|
261
|
-
const progressText = this.container.querySelector(".fmode-progress-text");
|
|
262
|
-
const messageEl = this.container.querySelector(".fmode-message");
|
|
263
|
-
const taskInfoEl = this.container.querySelector(".fmode-task-info");
|
|
264
|
-
if (progressCircle) {
|
|
265
|
-
const circumference = 2 * Math.PI * 45;
|
|
266
|
-
progressCircle.style.strokeDashoffset = String(circumference * (1 - this._progress));
|
|
267
|
-
}
|
|
268
|
-
if (progressText) {
|
|
269
|
-
progressText.textContent = `${Math.round(this._progress * 100)}%`;
|
|
270
|
-
}
|
|
271
|
-
if (messageEl) {
|
|
272
|
-
messageEl.textContent = this._message;
|
|
273
|
-
}
|
|
274
|
-
if (taskInfoEl) {
|
|
275
|
-
taskInfoEl.textContent = `任务 ${this._taskIndex} / ${this._taskTotal}`;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jdHJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9jb3JlL2FnZW50L3dhaXRpbmcvbG9hZGluZy9sb2FkaW5nLmN0cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUE0QjtRQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFXL0IsWUFBWSxPQUE0QjtRQVZoQyxhQUFRLEdBQVcsUUFBUSxDQUFDO1FBQzVCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUN2QixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBRS9CLGFBQVEsR0FBYSxRQUFRLENBQUM7UUFFdEIsY0FBUyxHQUF1QixJQUFJLENBQUM7UUFDckMsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixJQUFJLE9BQU8sQ0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFXO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFXO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxPQUFPO1FBQ2IsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxHQUFHLDhCQUE4QixHQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDeEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEdBQUc7Ozs7OzsyQ0FNWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDOzt3Q0FFbkMsSUFBSSxDQUFDLFVBQVUsTUFBTSxJQUFJLENBQUMsVUFBVTttQ0FDekMsSUFBSSxDQUFDLFFBQVE7S0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBSU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDNUIsTUFBTSxHQUFHLEdBQWEsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwQyxNQUFNLFFBQVEsR0FBbUQ7WUFDL0QsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtZQUNoRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFO1lBQ3ZFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUU7WUFDdkUsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUN4QyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDN0MsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1NBQ2hELENBQUM7UUFFRixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRTtZQUNsQyxRQUFRLEVBQUUsT0FBTztZQUNqQixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxNQUFNO1lBQ2YsYUFBYSxFQUFFLEtBQUs7WUFDcEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsR0FBRyxFQUFFLEtBQUs7WUFDVixHQUFHLENBQUM7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR08sU0FBUztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUNwRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLEtBQUssQ0FBQyxFQUFFLEdBQUcscUJBQXFCLENBQUM7WUFDakMsS0FBSyxDQUFDLFNBQVMsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9HakIsQ0FBQztZQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLGNBQWM7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzdFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztnQkFDbkMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQzFCLE1BQU0sQ0FBQyxTQUFTLEdBQUc7Ozs7Ozs7U0FPbEIsQ0FBQztnQkFDRixNQUFNLENBQUMsRUFBRSxHQUFHLG9CQUFvQixDQUFDO2dCQUNqQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDN0QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxTQUFTLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLE1BQU07UUFDNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFM0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUMzQixJQUFJLE9BQU8sR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksS0FBSyxHQUFHLE9BQU8sR0FBRyxRQUFRLENBQUM7WUFDL0IsSUFBSSxLQUFLLEdBQUcsQ0FBQztnQkFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUM1QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQXFCLENBQUM7UUFDckYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQWdCLENBQUM7UUFDekYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQWdCLENBQUM7UUFDaEYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQWdCLENBQUM7UUFFbkYsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdkMsY0FBYyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLENBQUM7UUFDRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLFlBQVksQ0FBQyxXQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQztRQUNwRSxDQUFDO1FBQ0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLFNBQVMsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLFVBQVUsQ0FBQyxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4RSxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBQb3NpdGlvbiA9XHJcbiAgfCBcInRvcFwiXHJcbiAgfCBcImJvdHRvbVwiXHJcbiAgfCBcIm1pZGRsZVwiXHJcbiAgfCBcInRvcGxlZnRcIlxyXG4gIHwgXCJ0b3ByaWdodFwiXHJcbiAgfCBcImJvdHRvbWxlZnRcIlxyXG4gIHwgXCJib3R0b21yaWdodFwiO1xyXG5cclxuaW50ZXJmYWNlIEZtb2RlTG9hZGluZ09wdGlvbnMge1xyXG4gIG1lc3NhZ2U6IHN0cmluZztcclxuICBwcm9ncmVzcz86IG51bWJlcjsgLy8gMC4wIH4gMS4wXHJcbiAgdGFza0luZGV4PzogbnVtYmVyO1xyXG4gIHRhc2tUb3RhbD86IG51bWJlcjtcclxuICBwb3NpdGlvbj86IFBvc2l0aW9uO1xyXG4gIGhhbmRsZT86ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm1vZGVMb2FkaW5nQ29udHJvbGxlciB7XHJcbiAgYXN5bmMgY3JlYXRlKG9wdGlvbnM6IEZtb2RlTG9hZGluZ09wdGlvbnMpIHtcclxuICAgIGNvbnN0IGxvYWRlciA9IG5ldyBGbW9kZUxvYWRpbmdJbnN0YW5jZShvcHRpb25zKTtcclxuICAgIHJldHVybiBsb2FkZXI7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRm1vZGVMb2FkaW5nSW5zdGFuY2Uge1xyXG4gIHByaXZhdGUgX21lc3NhZ2U6IHN0cmluZyA9ICfliqDovb3kuK0uLi4nO1xyXG4gIHByaXZhdGUgX3Byb2dyZXNzOiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX3Rhc2tJbmRleDogbnVtYmVyID0gMDtcclxuICBwcml2YXRlIF90YXNrVG90YWw6IG51bWJlciA9IDE7XHJcblxyXG4gIHBvc2l0aW9uOiBQb3NpdGlvbiA9IFwiYm90dG9tXCI7XHJcbiAgaGFuZGxlPzogKCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWQ7XHJcbiAgcHJpdmF0ZSBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBwcm9ncmVzc1RpbWVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3Iob3B0aW9uczogRm1vZGVMb2FkaW5nT3B0aW9ucykge1xyXG4gICAgdGhpcy5fbWVzc2FnZSA9IG9wdGlvbnMubWVzc2FnZSA/PyB0aGlzLl9tZXNzYWdlO1xyXG4gICAgdGhpcy5fcHJvZ3Jlc3MgPSBvcHRpb25zLnByb2dyZXNzID8/IHRoaXMuX3Byb2dyZXNzO1xyXG4gICAgdGhpcy5fdGFza0luZGV4ID0gb3B0aW9ucy50YXNrSW5kZXggPz8gdGhpcy5fdGFza0luZGV4O1xyXG4gICAgdGhpcy5fdGFza1RvdGFsID0gb3B0aW9ucy50YXNrVG90YWwgPz8gdGhpcy5fdGFza1RvdGFsO1xyXG4gICAgdGhpcy5wb3NpdGlvbiA9IG9wdGlvbnMucG9zaXRpb24gPz8gdGhpcy5wb3NpdGlvbjtcclxuICAgIHRoaXMuaGFuZGxlID0gb3B0aW9ucy5oYW5kbGU7XHJcbiAgICB0aGlzLmluaXREb20oKTtcclxuICB9XHJcblxyXG4gIC8vIOKchSBzZXR0ZXJzIOiHquWKqOWIt+aWsCBVSVxyXG4gIHNldCBtZXNzYWdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9tZXNzYWdlID0gdmFsO1xyXG4gICAgdGhpcy51cGRhdGVVSSgpO1xyXG4gIH1cclxuICBnZXQgbWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9tZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHByb2dyZXNzKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9wcm9ncmVzcyA9IHZhbDtcclxuICAgIHRoaXMudXBkYXRlVUkoKTtcclxuICB9XHJcbiAgZ2V0IHByb2dyZXNzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2dyZXNzO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRhc2tJbmRleCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5fdGFza0luZGV4ID0gdmFsO1xyXG4gICAgdGhpcy51cGRhdGVVSSgpO1xyXG4gIH1cclxuICBnZXQgdGFza0luZGV4KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Rhc2tJbmRleDtcclxuICB9XHJcblxyXG4gIHNldCB0YXNrVG90YWwodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3Rhc2tUb3RhbCA9IHZhbDtcclxuICAgIHRoaXMudXBkYXRlVUkoKTtcclxuICB9XHJcbiAgZ2V0IHRhc2tUb3RhbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl90YXNrVG90YWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXREb20oKSB7XHJcbiAgICB0aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICB0aGlzLmNvbnRhaW5lci5jbGFzc05hbWUgPSBcImZtb2RlLWxvYWRpbmcgZm1vZGUtbG9hZGluZy1cIit0aGlzLnBvc2l0aW9uO1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvblN0eWxlKCk7XHJcblxyXG4gICAgdGhpcy5jb250YWluZXIuaW5uZXJIVE1MID0gYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm1vZGUtbG9hZGVyLWNpcmNsZVwiPlxyXG4gICAgICAgIDxzdmcgdmlld0JveD1cIjAgMCAxMDAgMTAwXCI+XHJcbiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiYmdcIiBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCI0NVwiIC8+XHJcbiAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwicHJvZ3Jlc3NcIiBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCI0NVwiIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZtb2RlLXByb2dyZXNzLXRleHRcIj4ke01hdGgucm91bmQodGhpcy5fcHJvZ3Jlc3MgKiAxMDApfSU8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbW9kZS10YXNrLWluZm9cIj7ku7vliqEgJHt0aGlzLl90YXNrSW5kZXh9IC8gJHt0aGlzLl90YXNrVG90YWx9PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbW9kZS1tZXNzYWdlXCI+JHt0aGlzLl9tZXNzYWdlfTwvZGl2PlxyXG4gICAgYDtcclxuXHJcbiAgICB0aGlzLmluamVjdENzcygpO1xyXG4gIH1cclxuICBcclxuICBcclxuXHJcbiAgcHJpdmF0ZSBzZXRQb3NpdGlvblN0eWxlKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lcikgcmV0dXJuO1xyXG4gICAgY29uc3QgcG9zOiBQb3NpdGlvbiA9IHRoaXMucG9zaXRpb247XHJcbiAgICBjb25zdCBzdHlsZU1hcDogUmVjb3JkPFBvc2l0aW9uLCBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24+PiA9IHtcclxuICAgICAgdG9wOiB7IHRvcDogXCIyMHB4XCIsIGxlZnQ6IFwiNTAlXCIsIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVYKC01MCUpXCIgfSxcclxuICAgICAgYm90dG9tOiB7IGJvdHRvbTogXCIxMDBweFwiLCBsZWZ0OiBcIjUwJVwiLCB0cmFuc2Zvcm06IFwidHJhbnNsYXRlWCgtNTAlKVwiIH0sXHJcbiAgICAgIG1pZGRsZTogeyB0b3A6IFwiNTAlXCIsIGxlZnQ6IFwiNTAlXCIsIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGUoLTUwJSwgLTUwJSlcIiB9LFxyXG4gICAgICB0b3BsZWZ0OiB7IHRvcDogXCIyMHB4XCIsIGxlZnQ6IFwiMjBweFwiIH0sXHJcbiAgICAgIHRvcHJpZ2h0OiB7IHRvcDogXCIyMHB4XCIsIHJpZ2h0OiBcIjIwcHhcIiB9LFxyXG4gICAgICBib3R0b21sZWZ0OiB7IGJvdHRvbTogXCIxMDBweFwiLCBsZWZ0OiBcIjIwcHhcIiB9LFxyXG4gICAgICBib3R0b21yaWdodDogeyBib3R0b206IFwiMTAwcHhcIiwgcmlnaHQ6IFwiMjBweFwiIH0sXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgY29uc3QgcyA9IHN0eWxlTWFwW3Bvc107XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuY29udGFpbmVyLnN0eWxlLCB7XHJcbiAgICAgIHBvc2l0aW9uOiBcImZpeGVkXCIsXHJcbiAgICAgIHpJbmRleDogXCI5OTk5OVwiLFxyXG4gICAgICBkaXNwbGF5OiBcImZsZXhcIixcclxuICAgICAgZmxleERpcmVjdGlvbjogXCJyb3dcIixcclxuICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcclxuICAgICAgZ2FwOiBcIjhweFwiLFxyXG4gICAgICAuLi5zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBcclxuICBwcml2YXRlIGluamVjdENzcygpIHtcclxuICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJmbW9kZS1sb2FkaW5nLXN0eWxlXCIpKSB7XHJcbiAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xyXG4gICAgICBzdHlsZS5pZCA9IFwiZm1vZGUtbG9hZGluZy1zdHlsZVwiO1xyXG4gICAgICBzdHlsZS5pbm5lckhUTUwgPSBgXHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nIHtcclxuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgICAgICAgei1pbmRleDogOTk5OTk7XHJcbiAgICAgICAgZGlzcGxheTogZmxleDtcclxuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyAgIC8qIOaoquaOkiAqL1xyXG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICAgICAgZ2FwOiAxMnB4O1xyXG4gICAgICAgIG1pbi13aWR0aDogMzYwcHg7ICAgICAgLyog6Ziy5q2i5raI5oGv6L+H6ZW/5pe25bem6L655oqW5YqoICovXHJcbiAgICAgICAgcGFkZGluZzogOHB4IDEycHg7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xyXG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC42KTtcclxuICAgICAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNnB4KTtcclxuICAgICAgICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVhc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8qIOS9jee9rumAgumFjSAqL1xyXG4gICAgICAuZm1vZGUtbG9hZGluZy10b3AgeyB0b3A6IDIwcHg7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nLWJvdHRvbSB7IGJvdHRvbTogMTAwcHg7IGxlZnQ6IDUwJTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nLW1pZGRsZSB7IHRvcDogNTAlOyBsZWZ0OiA1MCU7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nLXRvcGxlZnQgeyB0b3A6IDIwcHg7IGxlZnQ6IDIwcHg7IH1cclxuICAgICAgLmZtb2RlLWxvYWRpbmctdG9wcmlnaHQgeyB0b3A6IDIwcHg7IHJpZ2h0OiAyMHB4OyB9XHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nLWJvdHRvbWxlZnQgeyBib3R0b206IDEwMHB4OyBsZWZ0OiAyMHB4OyB9XHJcbiAgICAgIC5mbW9kZS1sb2FkaW5nLWJvdHRvbXJpZ2h0IHsgYm90dG9tOiAxMDBweDsgcmlnaHQ6IDIwcHg7IH1cclxuXHJcbiAgICAgIC8qIOiDjOaZr+WPkeWFiSAqL1xyXG4gICAgICAuZm1vZGUtbG9hZGVyLWdsb3cge1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB3aWR0aDogMTIwcHg7XHJcbiAgICAgICAgaGVpZ2h0OiAxMjBweDtcclxuICAgICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlLCByZ2JhKDAsMjU1LDI1NSwwLjIpLCB0cmFuc3BhcmVudCk7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGZpbHRlcjogYmx1cigyMHB4KTtcclxuICAgICAgICBhbmltYXRpb246IGdsb3dQdWxzZSAycyBpbmZpbml0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLyog5ZyG5b2i6L+b5bqmICovXHJcbiAgICAgIFxyXG4gICAgICAuZm1vZGUtbG9hZGVyLWNpcmNsZSB7XHJcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIHdpZHRoOiA0OHB4O1xyXG4gICAgICAgIGhlaWdodDogNDhweDtcclxuICAgICAgfVxyXG4gICAgICAuZm1vZGUtbG9hZGVyLWNpcmNsZSBzdmcge1xyXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XHJcbiAgICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICAgIC5mbW9kZS1sb2FkZXItY2lyY2xlIGNpcmNsZSB7XHJcbiAgICAgICAgZmlsbDogbm9uZTtcclxuICAgICAgICBzdHJva2Utd2lkdGg6IDY7XHJcbiAgICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xyXG4gICAgICB9XHJcbiAgICAgIC5mbW9kZS1sb2FkZXItY2lyY2xlIC5iZyB7XHJcbiAgICAgICAgc3Ryb2tlOiByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XHJcbiAgICAgIH1cclxuICAgICAgLmZtb2RlLWxvYWRlci1jaXJjbGUgLnByb2dyZXNzIHtcclxuICAgICAgICBzdHJva2U6IHVybCgjZm1vZGUtZ3JhZGllbnQpO1xyXG4gICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDI4MztcclxuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMjgzO1xyXG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgZWFzZTtcclxuICAgICAgfVxyXG4gICAgICAgIC5mbW9kZS1wcm9ncmVzcy10ZXh0IHtcclxuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICAgIHRvcDogNTAlO1xyXG4gICAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgIGNvbG9yOiAjMGZmO1xyXG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA2cHggIzBmZjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5mbW9kZS10YXNrLWluZm8ge1xyXG4gICAgICAgICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICAgICAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcclxuICAgICAgICAgIGNvbG9yOiAjZmZmO1xyXG4gICAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCA0cHggcmdiYSgwLDAsMCwwLjUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuZm1vZGUtbWVzc2FnZSB7XHJcbiAgICAgICAgICBmbGV4OiAxO1xyXG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICAgICAgY29sb3I6ICNmZmY7XHJcbiAgICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDRweCByZ2JhKDAsMCwwLDAuNSk7XHJcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgICAgIH1cclxuXHJcblxyXG4gICAgICBAa2V5ZnJhbWVzIGdsb3dQdWxzZSB7XHJcbiAgICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjY7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cclxuICAgICAgICA1MCUgeyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7IH1cclxuICAgICAgfVxyXG4gICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XHJcbiAgICAgICAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogc2NhbGUoMC45KTsgfVxyXG4gICAgICAgIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxyXG4gICAgICB9XHJcbiAgICAgIGA7XHJcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xyXG5cclxuICAgICAgLy8g5re75YqgIFNWRyDmuJDlj5jlrprkuYlcclxuICAgICAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImZtb2RlLXN2Zy1ncmFkaWVudFwiKSkge1xyXG4gICAgICAgIGNvbnN0IHN2Z0RlZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsIFwic3ZnXCIpO1xyXG4gICAgICAgIHN2Z0RlZi5zdHlsZS5wb3NpdGlvbiA9IFwiYWJzb2x1dGVcIjtcclxuICAgICAgICBzdmdEZWYuc3R5bGUud2lkdGggPSBcIjBcIjtcclxuICAgICAgICBzdmdEZWYuc3R5bGUuaGVpZ2h0ID0gXCIwXCI7XHJcbiAgICAgICAgc3ZnRGVmLmlubmVySFRNTCA9IGBcclxuICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICA8bGluZWFyR3JhZGllbnQgaWQ9XCJmbW9kZS1ncmFkaWVudFwiIHgxPVwiMCVcIiB5MT1cIjAlXCIgeDI9XCIxMDAlXCIgeTI9XCIwJVwiPlxyXG4gICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjAlXCIgc3RvcC1jb2xvcj1cIiMwZmZcIiAvPlxyXG4gICAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjEwMCVcIiBzdG9wLWNvbG9yPVwiIzBmMFwiIC8+XHJcbiAgICAgICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgYDtcclxuICAgICAgICBzdmdEZWYuaWQgPSBcImZtb2RlLXN2Zy1ncmFkaWVudFwiO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3ZnRGVmKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgcHJlc2VudCgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhZG9jdW1lbnQuYm9keS5jb250YWlucyh0aGlzLmNvbnRhaW5lcikpIHtcclxuICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZVVJKCk7XHJcbiAgICBpZiAoIXRoaXMuaGFuZGxlKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRBdXRvUHJvZ3Jlc3MoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuaGFuZGxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNtaXNzKCkge1xyXG4gICAgaWYgKHRoaXMuY29udGFpbmVyICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnModGhpcy5jb250YWluZXIpKSB7XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucHJvZ3Jlc3NUaW1lcikge1xyXG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnByb2dyZXNzVGltZXIpO1xyXG4gICAgICB0aGlzLnByb2dyZXNzVGltZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydEF1dG9Qcm9ncmVzcygpIHtcclxuICAgIGxldCBzdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgIGxldCBkdXJhdGlvbiA9IDUwMDAwOyAvLyAyMOenklxyXG4gICAgY29uc3QgZWFzZU91dEN1YmljID0gKHQ6IG51bWJlcikgPT4gMSAtIE1hdGgucG93KDEgLSB0LCAzKTtcclxuXHJcbiAgICBjb25zdCBzdGVwID0gKG5vdzogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCBlbGFwc2VkID0gbm93IC0gc3RhcnRUaW1lO1xyXG4gICAgICBsZXQgcmF0aW8gPSBlbGFwc2VkIC8gZHVyYXRpb247XHJcbiAgICAgIGlmIChyYXRpbyA+IDEpIHJhdGlvID0gMTtcclxuICAgICAgdGhpcy5wcm9ncmVzcyA9IGVhc2VPdXRDdWJpYyhyYXRpbyk7XHJcbiAgICAgIHRoaXMudXBkYXRlVUkoKTtcclxuICAgICAgaWYgKHJhdGlvIDwgMSkge1xyXG4gICAgICAgIHRoaXMucHJvZ3Jlc3NUaW1lciA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMucHJvZ3Jlc3NUaW1lciA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVUkoKSB7XHJcbiAgICBpZiAoIXRoaXMuY29udGFpbmVyKSByZXR1cm47XHJcbiAgICBjb25zdCBwcm9ncmVzc0NpcmNsZSA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIucHJvZ3Jlc3NcIikgYXMgU1ZHQ2lyY2xlRWxlbWVudDtcclxuICAgIGNvbnN0IHByb2dyZXNzVGV4dCA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuZm1vZGUtcHJvZ3Jlc3MtdGV4dFwiKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IG1lc3NhZ2VFbCA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoXCIuZm1vZGUtbWVzc2FnZVwiKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGNvbnN0IHRhc2tJbmZvRWwgPSB0aGlzLmNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKFwiLmZtb2RlLXRhc2staW5mb1wiKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICBpZiAocHJvZ3Jlc3NDaXJjbGUpIHtcclxuICAgICAgY29uc3QgY2lyY3VtZmVyZW5jZSA9IDIgKiBNYXRoLlBJICogNDU7XHJcbiAgICAgIHByb2dyZXNzQ2lyY2xlLnN0eWxlLnN0cm9rZURhc2hvZmZzZXQgPSBTdHJpbmcoY2lyY3VtZmVyZW5jZSAqICgxIC0gdGhpcy5fcHJvZ3Jlc3MpKTtcclxuICAgIH1cclxuICAgIGlmIChwcm9ncmVzc1RleHQpIHtcclxuICAgICAgcHJvZ3Jlc3NUZXh0LnRleHRDb250ZW50ID0gYCR7TWF0aC5yb3VuZCh0aGlzLl9wcm9ncmVzcyAqIDEwMCl9JWA7XHJcbiAgICB9XHJcbiAgICBpZiAobWVzc2FnZUVsKSB7XHJcbiAgICAgIG1lc3NhZ2VFbC50ZXh0Q29udGVudCA9IHRoaXMuX21lc3NhZ2U7XHJcbiAgICB9XHJcbiAgICBpZiAodGFza0luZm9FbCkge1xyXG4gICAgICB0YXNrSW5mb0VsLnRleHRDb250ZW50ID0gYOS7u+WKoSAke3RoaXMuX3Rhc2tJbmRleH0gLyAke3RoaXMuX3Rhc2tUb3RhbH1gO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
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/core/agent/waiting/loading/loading.ctrl.mjs
|
|
7
|
+
*/
|
|
8
|
+
export class FmodeLoadingController{async create(t){return new FmodeLoadingInstance(t)}}export class FmodeLoadingInstance{constructor(t){this._message="加载中...",this._progress=0,this._taskIndex=0,this._taskTotal=1,this.position="bottom",this.container=null,this.progressTimer=null,this._message=t.message??this._message,this._progress=t.progress??this._progress,this._taskIndex=t.taskIndex??this._taskIndex,this._taskTotal=t.taskTotal??this._taskTotal,this.position=t.position??this.position,this.handle=t.handle,this.initDom()}set message(t){this._message=t,this.updateUI()}get message(){return this._message}set progress(t){this._progress=t,this.updateUI()}get progress(){return this._progress}set taskIndex(t){this._taskIndex=t,this.updateUI()}get taskIndex(){return this._taskIndex}set taskTotal(t){this._taskTotal=t,this.updateUI()}get taskTotal(){return this._taskTotal}initDom(){this.container=document.createElement("div"),this.container.className="fmode-loading fmode-loading-"+this.position,this.setPositionStyle(),this.container.innerHTML=`\n <div class="fmode-loader-circle">\n <svg viewBox="0 0 100 100">\n <circle class="bg" cx="50" cy="50" r="45" />\n <circle class="progress" cx="50" cy="50" r="45" />\n </svg>\n <div class="fmode-progress-text">${Math.round(100*this._progress)}%</div>\n </div>\n <div class="fmode-task-info">任务 ${this._taskIndex} / ${this._taskTotal}</div>\n <div class="fmode-message">${this._message}</div>\n `,this.injectCss()}setPositionStyle(){if(!this.container)return;const t={top:{top:"20px",left:"50%",transform:"translateX(-50%)"},bottom:{bottom:"100px",left:"50%",transform:"translateX(-50%)"},middle:{top:"50%",left:"50%",transform:"translate(-50%, -50%)"},topleft:{top:"20px",left:"20px"},topright:{top:"20px",right:"20px"},bottomleft:{bottom:"100px",left:"20px"},bottomright:{bottom:"100px",right:"20px"}}[this.position];Object.assign(this.container.style,{position:"fixed",zIndex:"99999",display:"flex",flexDirection:"row",alignItems:"center",gap:"8px",...t})}injectCss(){if(!document.getElementById("fmode-loading-style")){const t=document.createElement("style");if(t.id="fmode-loading-style",t.innerHTML="\n .fmode-loading {\n position: fixed;\n z-index: 99999;\n display: flex;\n flex-direction: row; /* 横排 */\n align-items: center;\n gap: 12px;\n min-width: 360px; /* 防止消息过长时左边抖动 */\n padding: 8px 12px;\n border-radius: 8px;\n background: rgba(0,0,0,0.6);\n backdrop-filter: blur(6px);\n animation: fadeIn 0.3s ease;\n }\n\n /* 位置适配 */\n .fmode-loading-top { top: 20px; left: 50%; transform: translateX(-50%); }\n .fmode-loading-bottom { bottom: 100px; left: 50%; transform: translateX(-50%); }\n .fmode-loading-middle { top: 50%; left: 50%; transform: translate(-50%, -50%); }\n .fmode-loading-topleft { top: 20px; left: 20px; }\n .fmode-loading-topright { top: 20px; right: 20px; }\n .fmode-loading-bottomleft { bottom: 100px; left: 20px; }\n .fmode-loading-bottomright { bottom: 100px; right: 20px; }\n\n /* 背景发光 */\n .fmode-loader-glow {\n position: absolute;\n width: 120px;\n height: 120px;\n background: radial-gradient(circle, rgba(0,255,255,0.2), transparent);\n border-radius: 50%;\n filter: blur(20px);\n animation: glowPulse 2s infinite;\n }\n\n /* 圆形进度 */\n \n .fmode-loader-circle {\n flex-shrink: 0;\n position: relative;\n width: 48px;\n height: 48px;\n }\n .fmode-loader-circle svg {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n .fmode-loader-circle circle {\n fill: none;\n stroke-width: 6;\n stroke-linecap: round;\n }\n .fmode-loader-circle .bg {\n stroke: rgba(255,255,255,0.1);\n }\n .fmode-loader-circle .progress {\n stroke: url(#fmode-gradient);\n stroke-dasharray: 283;\n stroke-dashoffset: 283;\n transition: stroke-dashoffset 0.3s ease;\n }\n .fmode-progress-text {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n font-size: 12px;\n font-weight: bold;\n color: #0ff;\n text-shadow: 0 0 6px #0ff;\n }\n\n .fmode-task-info {\n flex-shrink: 0;\n font-size: 14px;\n font-weight: bold;\n color: #fff;\n text-shadow: 0 0 4px rgba(0,0,0,0.5);\n }\n .fmode-message {\n flex: 1;\n font-size: 14px;\n color: #fff;\n text-shadow: 0 0 4px rgba(0,0,0,0.5);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n\n @keyframes glowPulse {\n 0%, 100% { opacity: 0.6; transform: scale(1); }\n 50% { opacity: 1; transform: scale(1.1); }\n }\n @keyframes fadeIn {\n from { opacity: 0; transform: scale(0.9); }\n to { opacity: 1; transform: scale(1); }\n }\n ",document.head.appendChild(t),!document.getElementById("fmode-svg-gradient")){const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.style.position="absolute",t.style.width="0",t.style.height="0",t.innerHTML='\n <defs>\n <linearGradient id="fmode-gradient" x1="0%" y1="0%" x2="100%" y2="0%">\n <stop offset="0%" stop-color="#0ff" />\n <stop offset="100%" stop-color="#0f0" />\n </linearGradient>\n </defs>\n ',t.id="fmode-svg-gradient",document.body.appendChild(t)}}}async present(){this.container&&!document.body.contains(this.container)&&document.body.appendChild(this.container),this.updateUI(),this.handle?await this.handle():this.startAutoProgress()}dismiss(){this.container&&document.body.contains(this.container)&&document.body.removeChild(this.container),this.progressTimer&&(cancelAnimationFrame(this.progressTimer),this.progressTimer=null)}startAutoProgress(){let t=performance.now();const step=e=>{let n=(e-t)/5e4;var s;n>1&&(n=1),this.progress=(s=n,1-Math.pow(1-s,3)),this.updateUI(),n<1&&(this.progressTimer=requestAnimationFrame(step))};this.progressTimer=requestAnimationFrame(step)}updateUI(){if(!this.container)return;const t=this.container.querySelector(".progress"),e=this.container.querySelector(".fmode-progress-text"),n=this.container.querySelector(".fmode-message"),s=this.container.querySelector(".fmode-task-info");if(t){const e=2*Math.PI*45;t.style.strokeDashoffset=String(e*(1-this._progress))}e&&(e.textContent=`${Math.round(100*this._progress)}%`),n&&(n.textContent=this._message),s&&(s.textContent=`任务 ${this._taskIndex} / ${this._taskTotal}`)}}
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9jb3JlL2FnZW50L3dhaXRpbmcvbG9hZGluZy9sb2FkaW5nLmN0cmwubWpz`
|
|
10
|
+
|
|
@@ -1,192 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
constructor(tipsOptions) {
|
|
3
|
-
/**
|
|
4
|
-
* 持续时间:默认5,表示5秒
|
|
5
|
-
*/
|
|
6
|
-
this.duration = 5;
|
|
7
|
-
this.container = null;
|
|
8
|
-
this.currentIndex = 0;
|
|
9
|
-
this.intervalId = null;
|
|
10
|
-
this.position = 'top';
|
|
11
|
-
this.isVisible = false;
|
|
12
|
-
this.tipsList = tipsOptions?.tipsList.length > 0 ? tipsOptions?.tipsList : this.getDefaultTips();
|
|
13
|
-
if (tipsOptions?.random) {
|
|
14
|
-
this.tipsList = this.tipsList.sort(() => Math.random() - 0.5);
|
|
15
|
-
}
|
|
16
|
-
this.position = tipsOptions.position || 'top';
|
|
17
|
-
}
|
|
1
|
+
|
|
18
2
|
/**
|
|
19
|
-
*
|
|
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/core/agent/waiting/tips/tips.ctrl.mjs
|
|
20
7
|
*/
|
|
21
|
-
getDefaultTips() {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"生活就像一盒巧克力,你永远不知道下一颗是什么味道。",
|
|
25
|
-
"山重水复疑无路,柳暗花明又一村。",
|
|
26
|
-
"好的开始是成功的一半。",
|
|
27
|
-
"时间是最好的老师,但遗憾的是,它杀死了所有的学生。",
|
|
28
|
-
"不积跬步,无以至千里;不积小流,无以成江海。",
|
|
29
|
-
"代码如诗,简洁为美。"
|
|
30
|
-
];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* 添加提示语
|
|
34
|
-
* @param tip 提示文本
|
|
35
|
-
*/
|
|
36
|
-
addTip(tip) {
|
|
37
|
-
this.tipsList.push(tip);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* 设置提示列表
|
|
41
|
-
* @param tips 提示数组
|
|
42
|
-
*/
|
|
43
|
-
setTips(tips) {
|
|
44
|
-
this.tipsList = tips.length > 0 ? tips : this.getDefaultTips();
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* 显示提示区域
|
|
48
|
-
*/
|
|
49
|
-
present() {
|
|
50
|
-
if (this.isVisible)
|
|
51
|
-
return;
|
|
52
|
-
// 创建容器
|
|
53
|
-
this.container = document.createElement('div');
|
|
54
|
-
this.container.id = 'tips-container';
|
|
55
|
-
// 设置样式
|
|
56
|
-
Object.assign(this.container.style, {
|
|
57
|
-
position: 'fixed',
|
|
58
|
-
[this.position]: '20vh',
|
|
59
|
-
left: '50%',
|
|
60
|
-
transform: 'translateX(-50%)',
|
|
61
|
-
zIndex: '9999',
|
|
62
|
-
backgroundColor: 'rgba(255, 255, 255, 0.9)',
|
|
63
|
-
color: '#333',
|
|
64
|
-
padding: '12px 24px',
|
|
65
|
-
borderRadius: '8px',
|
|
66
|
-
boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',
|
|
67
|
-
maxWidth: '92vw',
|
|
68
|
-
minWidth: '92vw',
|
|
69
|
-
textAlign: 'center',
|
|
70
|
-
fontSize: '16px',
|
|
71
|
-
lineHeight: '1.5',
|
|
72
|
-
transition: 'opacity 0.3s ease',
|
|
73
|
-
border: '1px solid rgba(0, 0, 0, 0.1)',
|
|
74
|
-
backdropFilter: 'blur(4px)',
|
|
75
|
-
animation: 'fadeIn 0.5s ease'
|
|
76
|
-
});
|
|
77
|
-
// 创建提示内容元素
|
|
78
|
-
const tipContent = document.createElement('div');
|
|
79
|
-
tipContent.id = 'tip-content';
|
|
80
|
-
tipContent.textContent = this.tipsList[this.currentIndex];
|
|
81
|
-
Object.assign(tipContent.style, {
|
|
82
|
-
margin: '0',
|
|
83
|
-
whiteSpace: 'pre-wrap',
|
|
84
|
-
wordBreak: 'break-word'
|
|
85
|
-
});
|
|
86
|
-
// 创建进度条
|
|
87
|
-
const progressBar = document.createElement('div');
|
|
88
|
-
progressBar.id = 'tip-progress';
|
|
89
|
-
Object.assign(progressBar.style, {
|
|
90
|
-
height: '3px',
|
|
91
|
-
backgroundColor: 'rgba(0, 150, 255, 0.5)',
|
|
92
|
-
width: '100%',
|
|
93
|
-
borderRadius: '3px',
|
|
94
|
-
marginTop: '10px',
|
|
95
|
-
overflow: 'hidden'
|
|
96
|
-
});
|
|
97
|
-
const progressInner = document.createElement('div');
|
|
98
|
-
Object.assign(progressInner.style, {
|
|
99
|
-
height: '100%',
|
|
100
|
-
width: '100%',
|
|
101
|
-
backgroundColor: '#0096ff',
|
|
102
|
-
animation: `progress ${this.duration}s linear forwards`
|
|
103
|
-
});
|
|
104
|
-
progressBar.appendChild(progressInner);
|
|
105
|
-
this.container.appendChild(tipContent);
|
|
106
|
-
this.container.appendChild(progressBar);
|
|
107
|
-
document.body.appendChild(this.container);
|
|
108
|
-
// 添加动画样式
|
|
109
|
-
this.addAnimationStyles();
|
|
110
|
-
// 开始轮播
|
|
111
|
-
this.startRotation();
|
|
112
|
-
this.isVisible = true;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* 隐藏提示区域
|
|
116
|
-
*/
|
|
117
|
-
dismiss() {
|
|
118
|
-
if (!this.isVisible || !this.container)
|
|
119
|
-
return;
|
|
120
|
-
// 淡出动画
|
|
121
|
-
this.container.style.opacity = '0';
|
|
122
|
-
setTimeout(() => {
|
|
123
|
-
if (this.container && this.container.parentNode) {
|
|
124
|
-
document.body.removeChild(this.container);
|
|
125
|
-
this.container = null;
|
|
126
|
-
}
|
|
127
|
-
this.stopRotation();
|
|
128
|
-
this.isVisible = false;
|
|
129
|
-
}, 300);
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* 开始轮播
|
|
133
|
-
*/
|
|
134
|
-
startRotation() {
|
|
135
|
-
this.stopRotation();
|
|
136
|
-
this.intervalId = window.setInterval(() => {
|
|
137
|
-
this.nextTip();
|
|
138
|
-
}, this.duration * 1000);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* 停止轮播
|
|
142
|
-
*/
|
|
143
|
-
stopRotation() {
|
|
144
|
-
if (this.intervalId) {
|
|
145
|
-
clearInterval(this.intervalId);
|
|
146
|
-
this.intervalId = null;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* 显示下一条提示
|
|
151
|
-
*/
|
|
152
|
-
nextTip() {
|
|
153
|
-
if (!this.container)
|
|
154
|
-
return;
|
|
155
|
-
this.currentIndex = (this.currentIndex + 1) % this.tipsList.length;
|
|
156
|
-
let tipContent = this.container.querySelector('#tip-content');
|
|
157
|
-
let progressInner = this.container.querySelector('#tip-progress > div');
|
|
158
|
-
if (tipContent) {
|
|
159
|
-
// 淡出动画
|
|
160
|
-
tipContent.style.opacity = '0';
|
|
161
|
-
setTimeout(() => {
|
|
162
|
-
tipContent.textContent = this.tipsList[this.currentIndex];
|
|
163
|
-
// 重置进度条动画
|
|
164
|
-
if (progressInner) {
|
|
165
|
-
progressInner.style.animation = 'none';
|
|
166
|
-
void progressInner.offsetWidth; // 触发重绘
|
|
167
|
-
progressInner.style.animation = `progress ${this.duration}s linear forwards`;
|
|
168
|
-
}
|
|
169
|
-
// 淡入动画
|
|
170
|
-
tipContent.style.opacity = '1';
|
|
171
|
-
}, 50);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* 添加必要的动画样式
|
|
176
|
-
*/
|
|
177
|
-
addAnimationStyles() {
|
|
178
|
-
const style = document.createElement('style');
|
|
179
|
-
style.textContent = `
|
|
180
|
-
@keyframes fadeIn {
|
|
181
|
-
from { opacity: 0; transform: translateX(-50%) translateY(-10px); }
|
|
182
|
-
to { opacity: 1; transform: translateX(-50%) translateY(0); }
|
|
183
|
-
}
|
|
184
|
-
@keyframes progress {
|
|
185
|
-
from { width: 100%; }
|
|
186
|
-
to { width: 0%; }
|
|
187
|
-
}
|
|
188
|
-
`;
|
|
189
|
-
document.head.appendChild(style);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwcy5jdHJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm1vZGUtbmcvc3JjL2xpYi9jb3JlL2FnZW50L3dhaXRpbmcvdGlwcy90aXBzLmN0cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGNBQWM7SUFZdkIsWUFBWSxXQUE0RTtRQVh4Rjs7V0FFRztRQUNILGFBQVEsR0FBVyxDQUFDLENBQUM7UUFFckIsY0FBUyxHQUF1QixJQUFJLENBQUM7UUFDckMsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFDekIsZUFBVSxHQUFrQixJQUFJLENBQUM7UUFDakMsYUFBUSxHQUFxQixLQUFLLENBQUM7UUFDbkMsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUt2QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2pHLElBQUcsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDbEIsT0FBTztZQUNILG1CQUFtQjtZQUNuQiwyQkFBMkI7WUFDM0Isa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLFlBQVk7U0FDZixDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FB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Q25DLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNYLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxrQkFBa0I7UUFDdEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsV0FBVyxHQUFHOzs7Ozs7Ozs7U0FTbkIsQ0FBQztRQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBUaXBzQ29udHJvbGxlciB7XHJcbiAgICAvKipcclxuICAgICAqIOaMgee7reaXtumXtO+8mum7mOiupDXvvIzooajnpLo156eSXHJcbiAgICAgKi9cclxuICAgIGR1cmF0aW9uOiBudW1iZXIgPSA1O1xyXG4gICAgdGlwc0xpc3Q6IHN0cmluZ1tdO1xyXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gICAgY3VycmVudEluZGV4OiBudW1iZXIgPSAwO1xyXG4gICAgaW50ZXJ2YWxJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwb3NpdGlvbjogJ3RvcCcgfCAnYm90dG9tJyA9ICd0b3AnO1xyXG4gICAgaXNWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IodGlwc09wdGlvbnM6e3RpcHNMaXN0OiBzdHJpbmdbXSwgcG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScscmFuZG9tPzpib29sZWFufSkge1xyXG5cclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMudGlwc0xpc3QgPSB0aXBzT3B0aW9ucz8udGlwc0xpc3QubGVuZ3RoID4gMCA/IHRpcHNPcHRpb25zPy50aXBzTGlzdCA6IHRoaXMuZ2V0RGVmYXVsdFRpcHMoKTsgXHJcbiAgICAgICAgaWYodGlwc09wdGlvbnM/LnJhbmRvbSl7XHJcbiAgICAgICAgICAgIHRoaXMudGlwc0xpc3QgPSB0aGlzLnRpcHNMaXN0LnNvcnQoKCkgPT4gTWF0aC5yYW5kb20oKSAtIDAuNSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucG9zaXRpb24gPSB0aXBzT3B0aW9ucy5wb3NpdGlvbiB8fCAndG9wJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOiOt+WPlum7mOiupOaPkOekuuWIl+ihqFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdldERlZmF1bHRUaXBzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICBcIuivt+iAkOW/g+etieW+he+8jOeyvuW9qeWGheWuueWNs+WwhuWRiOeOsC4uLlwiLFxyXG4gICAgICAgICAgICBcIueUn+a0u+WwseWDj+S4gOebkuW3p+WFi+WKm++8jOS9oOawuOi/nOS4jeefpemBk+S4i+S4gOmil+aYr+S7gOS5iOWRs+mBk+OAglwiLFxyXG4gICAgICAgICAgICBcIuWxsemHjeawtOWkjeeWkeaXoOi3r++8jOafs+aal+iKseaYjuWPiOS4gOadkeOAglwiLFxyXG4gICAgICAgICAgICBcIuWlveeahOW8gOWni+aYr+aIkOWKn+eahOS4gOWNiuOAglwiLFxyXG4gICAgICAgICAgICBcIuaXtumXtOaYr+acgOWlveeahOiAgeW4iO+8jOS9humBl+aGvueahOaYr++8jOWug+adgOatu+S6huaJgOacieeahOWtpueUn+OAglwiLFxyXG4gICAgICAgICAgICBcIuS4jeenr+i3rOatpe+8jOaXoOS7peiHs+WNg+mHjO+8m+S4jeenr+Wwj+a1ge+8jOaXoOS7peaIkOaxn+a1t+OAglwiLFxyXG4gICAgICAgICAgICBcIuS7o+eggeWmguivl++8jOeugOa0geS4uue+juOAglwiXHJcbiAgICAgICAgXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOa3u+WKoOaPkOekuuivrVxyXG4gICAgICogQHBhcmFtIHRpcCDmj5DnpLrmlofmnKxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZFRpcCh0aXA6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGlwc0xpc3QucHVzaCh0aXApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog6K6+572u5o+Q56S65YiX6KGoXHJcbiAgICAgKiBAcGFyYW0gdGlwcyDmj5DnpLrmlbDnu4RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFRpcHModGlwczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRpcHNMaXN0ID0gdGlwcy5sZW5ndGggPiAwID8gdGlwcyA6IHRoaXMuZ2V0RGVmYXVsdFRpcHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOaYvuekuuaPkOekuuWMuuWfn1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcHJlc2VudCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc1Zpc2libGUpIHJldHVybjtcclxuICAgICAgICBcclxuICAgICAgICAvLyDliJvlu7rlrrnlmahcclxuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyLmlkID0gJ3RpcHMtY29udGFpbmVyJztcclxuICAgICAgICBcclxuICAgICAgICAvLyDorr7nva7moLflvI9cclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuY29udGFpbmVyLnN0eWxlLCB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxyXG4gICAgICAgICAgICBbdGhpcy5wb3NpdGlvbl06ICcyMHZoJyxcclxuICAgICAgICAgICAgbGVmdDogJzUwJScsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTUwJSknLFxyXG4gICAgICAgICAgICB6SW5kZXg6ICc5OTk5JyxcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpJyxcclxuICAgICAgICAgICAgY29sb3I6ICcjMzMzJyxcclxuICAgICAgICAgICAgcGFkZGluZzogJzEycHggMjRweCcsXHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzhweCcsXHJcbiAgICAgICAgICAgIGJveFNoYWRvdzogJzAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KScsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiAnOTJ2dycsXHJcbiAgICAgICAgICAgIG1pbldpZHRoOiAnOTJ2dycsXHJcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXHJcbiAgICAgICAgICAgIGZvbnRTaXplOiAnMTZweCcsXHJcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6ICcxLjUnLFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnb3BhY2l0eSAwLjNzIGVhc2UnLFxyXG4gICAgICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpJyxcclxuICAgICAgICAgICAgYmFja2Ryb3BGaWx0ZXI6ICdibHVyKDRweCknLFxyXG4gICAgICAgICAgICBhbmltYXRpb246ICdmYWRlSW4gMC41cyBlYXNlJ1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyDliJvlu7rmj5DnpLrlhoXlrrnlhYPntKBcclxuICAgICAgICBjb25zdCB0aXBDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgdGlwQ29udGVudC5pZCA9ICd0aXAtY29udGVudCc7XHJcbiAgICAgICAgdGlwQ29udGVudC50ZXh0Q29udGVudCA9IHRoaXMudGlwc0xpc3RbdGhpcy5jdXJyZW50SW5kZXhdO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGlwQ29udGVudC5zdHlsZSwge1xyXG4gICAgICAgICAgICBtYXJnaW46ICcwJyxcclxuICAgICAgICAgICAgd2hpdGVTcGFjZTogJ3ByZS13cmFwJyxcclxuICAgICAgICAgICAgd29yZEJyZWFrOiAnYnJlYWstd29yZCdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8g5Yib5bu66L+b5bqm5p2hXHJcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3NCYXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgICBwcm9ncmVzc0Jhci5pZCA9ICd0aXAtcHJvZ3Jlc3MnO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocHJvZ3Jlc3NCYXIuc3R5bGUsIHtcclxuICAgICAgICAgICAgaGVpZ2h0OiAnM3B4JyxcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAncmdiYSgwLCAxNTAsIDI1NSwgMC41KScsXHJcbiAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzNweCcsXHJcbiAgICAgICAgICAgIG1hcmdpblRvcDogJzEwcHgnLFxyXG4gICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbidcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3NJbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocHJvZ3Jlc3NJbm5lci5zdHlsZSwge1xyXG4gICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcclxuICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzAwOTZmZicsXHJcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYHByb2dyZXNzICR7dGhpcy5kdXJhdGlvbn1zIGxpbmVhciBmb3J3YXJkc2BcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcHJvZ3Jlc3NCYXIuYXBwZW5kQ2hpbGQocHJvZ3Jlc3NJbm5lcik7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQodGlwQ29udGVudCk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIuYXBwZW5kQ2hpbGQocHJvZ3Jlc3NCYXIpO1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpO1xyXG5cclxuICAgICAgICAvLyDmt7vliqDliqjnlLvmoLflvI9cclxuICAgICAgICB0aGlzLmFkZEFuaW1hdGlvblN0eWxlcygpO1xyXG5cclxuICAgICAgICAvLyDlvIDlp4vova7mkq1cclxuICAgICAgICB0aGlzLnN0YXJ0Um90YXRpb24oKTtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDpmpDol4/mj5DnpLrljLrln59cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRpc21pc3MoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSB8fCAhdGhpcy5jb250YWluZXIpIHJldHVybjtcclxuICAgICAgICBcclxuICAgICAgICAvLyDmt6Hlh7rliqjnlLtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lci5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy5jb250YWluZXIucGFyZW50Tm9kZSkge1xyXG4gICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRhaW5lcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lciA9IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zdG9wUm90YXRpb24oKTtcclxuICAgICAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9LCAzMDApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5byA5aeL6L2u5pKtXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhcnRSb3RhdGlvbigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0b3BSb3RhdGlvbigpO1xyXG4gICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubmV4dFRpcCgpO1xyXG4gICAgICAgIH0sIHRoaXMuZHVyYXRpb24qMTAwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDlgZzmraLova7mkq1cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdG9wUm90YXRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW50ZXJ2YWxJZCkge1xyXG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWxJZCk7XHJcbiAgICAgICAgICAgIHRoaXMuaW50ZXJ2YWxJZCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICog5pi+56S65LiL5LiA5p2h5o+Q56S6XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgbmV4dFRpcCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuY29udGFpbmVyKSByZXR1cm47XHJcbiAgICAgICAgXHJcbiAgICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAodGhpcy5jdXJyZW50SW5kZXggKyAxKSAlIHRoaXMudGlwc0xpc3QubGVuZ3RoO1xyXG4gICAgICAgIGxldCB0aXBDb250ZW50OmFueSA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyN0aXAtY29udGVudCcpO1xyXG4gICAgICAgIGxldCBwcm9ncmVzc0lubmVyOmFueSA9IHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyN0aXAtcHJvZ3Jlc3MgPiBkaXYnKTtcclxuICAgICAgICBcclxuICAgICAgICBpZiAodGlwQ29udGVudCkge1xyXG4gICAgICAgICAgICAvLyDmt6Hlh7rliqjnlLtcclxuICAgICAgICAgICAgdGlwQ29udGVudC5zdHlsZS5vcGFjaXR5ID0gJzAnO1xyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aXBDb250ZW50LnRleHRDb250ZW50ID0gdGhpcy50aXBzTGlzdFt0aGlzLmN1cnJlbnRJbmRleF07XHJcbiAgICAgICAgICAgICAgICAvLyDph43nva7ov5vluqbmnaHliqjnlLtcclxuICAgICAgICAgICAgICAgIGlmIChwcm9ncmVzc0lubmVyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NJbm5lci5zdHlsZS5hbmltYXRpb24gPSAnbm9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgdm9pZCBwcm9ncmVzc0lubmVyLm9mZnNldFdpZHRoOyAvLyDop6blj5Hph43nu5hcclxuICAgICAgICAgICAgICAgICAgICBwcm9ncmVzc0lubmVyLnN0eWxlLmFuaW1hdGlvbiA9IGBwcm9ncmVzcyAke3RoaXMuZHVyYXRpb259cyBsaW5lYXIgZm9yd2FyZHNgO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8g5reh5YWl5Yqo55S7XHJcbiAgICAgICAgICAgICAgICB0aXBDb250ZW50LnN0eWxlLm9wYWNpdHkgPSAnMSc7XHJcbiAgICAgICAgICAgIH0sIDUwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDmt7vliqDlv4XopoHnmoTliqjnlLvmoLflvI9cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhZGRBbmltYXRpb25TdHlsZXMoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xyXG4gICAgICAgIHN0eWxlLnRleHRDb250ZW50ID0gYFxyXG4gICAgICAgICAgICBAa2V5ZnJhbWVzIGZhZGVJbiB7XHJcbiAgICAgICAgICAgICAgICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTEwcHgpOyB9XHJcbiAgICAgICAgICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGtleWZyYW1lcyBwcm9ncmVzcyB7XHJcbiAgICAgICAgICAgICAgICBmcm9tIHsgd2lkdGg6IDEwMCU7IH1cclxuICAgICAgICAgICAgICAgIHRvIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBgO1xyXG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xyXG4gICAgfVxyXG59Il19
|
|
8
|
+
export class TipsController{constructor(t){this.duration=5,this.container=null,this.currentIndex=0,this.intervalId=null,this.position="top",this.isVisible=!1,this.tipsList=t?.tipsList.length>0?t?.tipsList:this.getDefaultTips(),t?.random&&(this.tipsList=this.tipsList.sort((()=>Math.random()-.5))),this.position=t.position||"top"}getDefaultTips(){return["请耐心等待,精彩内容即将呈现...","生活就像一盒巧克力,你永远不知道下一颗是什么味道。","山重水复疑无路,柳暗花明又一村。","好的开始是成功的一半。","时间是最好的老师,但遗憾的是,它杀死了所有的学生。","不积跬步,无以至千里;不积小流,无以成江海。","代码如诗,简洁为美。"]}addTip(t){this.tipsList.push(t)}setTips(t){this.tipsList=t.length>0?t:this.getDefaultTips()}present(){if(this.isVisible)return;this.container=document.createElement("div"),this.container.id="tips-container",Object.assign(this.container.style,{position:"fixed",[this.position]:"20vh",left:"50%",transform:"translateX(-50%)",zIndex:"9999",backgroundColor:"rgba(255, 255, 255, 0.9)",color:"#333",padding:"12px 24px",borderRadius:"8px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",maxWidth:"92vw",minWidth:"92vw",textAlign:"center",fontSize:"16px",lineHeight:"1.5",transition:"opacity 0.3s ease",border:"1px solid rgba(0, 0, 0, 0.1)",backdropFilter:"blur(4px)",animation:"fadeIn 0.5s ease"});const t=document.createElement("div");t.id="tip-content",t.textContent=this.tipsList[this.currentIndex],Object.assign(t.style,{margin:"0",whiteSpace:"pre-wrap",wordBreak:"break-word"});const i=document.createElement("div");i.id="tip-progress",Object.assign(i.style,{height:"3px",backgroundColor:"rgba(0, 150, 255, 0.5)",width:"100%",borderRadius:"3px",marginTop:"10px",overflow:"hidden"});const e=document.createElement("div");Object.assign(e.style,{height:"100%",width:"100%",backgroundColor:"#0096ff",animation:`progress ${this.duration}s linear forwards`}),i.appendChild(e),this.container.appendChild(t),this.container.appendChild(i),document.body.appendChild(this.container),this.addAnimationStyles(),this.startRotation(),this.isVisible=!0}dismiss(){this.isVisible&&this.container&&(this.container.style.opacity="0",setTimeout((()=>{this.container&&this.container.parentNode&&(document.body.removeChild(this.container),this.container=null),this.stopRotation(),this.isVisible=!1}),300))}startRotation(){this.stopRotation(),this.intervalId=window.setInterval((()=>{this.nextTip()}),1e3*this.duration)}stopRotation(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)}nextTip(){if(!this.container)return;this.currentIndex=(this.currentIndex+1)%this.tipsList.length;let t=this.container.querySelector("#tip-content"),i=this.container.querySelector("#tip-progress > div");t&&(t.style.opacity="0",setTimeout((()=>{t.textContent=this.tipsList[this.currentIndex],i&&(i.style.animation="none",i.offsetWidth,i.style.animation=`progress ${this.duration}s linear forwards`),t.style.opacity="1"}),50))}addAnimationStyles(){const t=document.createElement("style");t.textContent="\n @keyframes fadeIn {\n from { opacity: 0; transform: translateX(-50%) translateY(-10px); }\n to { opacity: 1; transform: translateX(-50%) translateY(0); }\n }\n @keyframes progress {\n from { width: 100%; }\n to { width: 0%; }\n }\n ",document.head.appendChild(t)}}
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9jb3JlL2FnZW50L3dhaXRpbmcvdGlwcy90aXBzLmN0cmwubWpz`
|
|
10
|
+
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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/core/index.mjs
|
|
7
|
+
*/
|
|
8
|
+
export*from"./agent";export*from"./voice";export*from"./parse";
|
|
9
|
+
var MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9lc20yMDIyL2xpYi9jb3JlL2luZGV4Lm1qcw==`
|
|
10
|
+
|