1 |
- {"ast":null,"code":"import _asyncToGenerator from \"F:/workspace/202226701027/huinongbao-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nvar _AudioPlayer, _NovaCloudService, _CrossService, _NovaUploadService, _ChatService, _ImagineService, _FmaiService, _UtilnowPipe, _ChatContentPipe, _HidexmlPipe, _MarkdownPreviewComponent, _MarkdownPreviewModule, _ClipboardService, _FmodeVoiceService, _CompAvatarParticleComponent, _CompAvatarRoleImageComponent, _ModalChatVoiceInputComponent, _CompAvatarTalkComponent, _AvatarModule, _FmVideoComponent, _CompAvatarRoleVideoComponent, _ChatListComponent, _FmChatHeaderArea, _Parse__default$serve, _AuthService, _AccountService, _CompUserAvatarComponent, _DurationStrPipe, _FmChatMessageCard, _CompRolePromptComponent, _FmChatMesssageArea, _ModalAudioMessageComponent, _FmChatModalInput, _ChatPanelComponent, _PageMapStartComponent, _CompPoiPickerComponent, _CompPoiPickerModule, _PagePlanRouteComponent, _PageLocaScatterComponent, _FmodeMapModule, _HwobsService, _HwobsManagerComponent, _FmodeStorgeModule, _WechatJssdkService, _LoginComponent, _ModalUserLoginComponent, _CaptchaComponent, _UserNamePipe, _UserModule, _StaffModule, _StaffService, _AuthStaffGuard, _AuthProfileService, _AuthProfileGuard, _ProfileBindComponent, _AuthPcuserGuard, _ProfileModule;\nconst _c0 = [\"mdContent\"];\nfunction _MarkdownPreviewComponent_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 4, 0);\n }\n}\nfunction _MarkdownPreviewComponent_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 5);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r0.content, \" \");\n }\n}\nconst _c1 = [\"renderCanvas\"];\nconst _c2 = [\"avatarImage\"];\nfunction _ModalChatVoiceInputComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 6);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r0.talkTips);\n }\n}\nfunction _ModalChatVoiceInputComponent_ng_container_0_div_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 7)(1, \"button\", 8);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.toggleRecord());\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"br\");\n i0.ɵɵelementStart(4, \"button\", 8);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_4_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.playRecord());\n });\n i0.ɵɵtext(5, \"\\u64AD\\u653E\\u5F55\\u5236\\u7ED3\\u679C\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(6, \"br\");\n i0.ɵɵelementStart(7, \"button\", 8);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_7_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.playBuffers());\n });\n i0.ɵɵtext(8, \"\\u64AD\\u653EBuffers\\u7ED3\\u679C\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"button\", 9);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_9_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.testTTS());\n });\n i0.ɵɵtext(10, \"\\u6D4B\\u8BD5TTS\\u7EAFWEB\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"button\", 9);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_11_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.startASR());\n });\n i0.ɵɵtext(12, \"\\u6D4B\\u8BD5ASR\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(13, \"button\", 9);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_13_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.testXunfeiTTS());\n });\n i0.ɵɵtext(14, \"\\u6D4B\\u8BD5\\u5408\\u6210\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate2(\"\\u5F00\\u59CB\\u5F55\\u5236 \", ctx_r0.voiceServ.connStatus, \" \", ctx_r0.voiceServ.btnStatus, \"\");\n }\n}\nfunction _ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-fab-button\", 10);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template_ion_fab_button_click_1_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.toggleRecord());\n });\n i0.ɵɵelement(2, \"ion-icon\", 11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-fab-list\", 12)(4, \"ion-fab-button\", 9);\n i0.ɵɵlistener(\"click\", function _ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template_ion_fab_button_click_4_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.cancelTalk());\n });\n i0.ɵɵelement(5, \"ion-icon\", 13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(4);\n i0.ɵɵclassMap(\"loading\");\n }\n}\nfunction _ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-fab-button\", 14);\n i0.ɵɵlistener(\"touchstart\", function _ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template_ion_fab_button_touchstart_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.toggleRecord());\n })(\"touchend\", function _ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template_ion_fab_button_touchend_1_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r0 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r0.voiceServ.cancelTalk());\n });\n i0.ɵɵelement(2, \"ion-icon\", 11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction _ModalChatVoiceInputComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _ModalChatVoiceInputComponent_ng_container_0_div_1_Template, 2, 1, \"div\", 1);\n i0.ɵɵelementStart(2, \"div\", 2);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, _ModalChatVoiceInputComponent_ng_container_0_div_4_Template, 15, 2, \"div\", 3);\n i0.ɵɵelementStart(5, \"ion-fab\", 4);\n i0.ɵɵtemplate(6, _ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template, 6, 2, \"ng-container\", 0)(7, _ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template, 3, 0, \"ng-container\", 0);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(8, \"div\", 5);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx_r0.fmodeChat == null ? null : ctx_r0.fmodeChat.userInput) && ctx_r0.voiceServ.btnStatus != \"OPEN\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r0.fmodeChat == null ? null : ctx_r0.fmodeChat.userInput);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.talkMode == \"click\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.talkMode == \"press\");\n }\n}\nconst _c3 = [\"avatar\"];\nconst _c4 = [\"aiRespComp\"];\nfunction _CompAvatarTalkComponent_ion_item_17_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-item\", 9)(1, \"ion-note\", 10);\n i0.ɵɵtext(2, \"\\u5E74\\u9F84\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.avatarRole == null ? null : ctx_r1.avatarRole.get(\"age\"));\n }\n}\nfunction _CompAvatarTalkComponent_ion_item_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-item\", 9)(1, \"ion-note\", 10);\n i0.ɵɵtext(2, \"\\u6027\\u522B\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.avatarRole == null ? null : ctx_r1.avatarRole.get(\"gender\"));\n }\n}\nfunction _CompAvatarTalkComponent_ion_chip_36_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-chip\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(ctx_r1.avatarRole == null ? null : ctx_r1.avatarRole.get(\"title\"));\n }\n}\nfunction _CompAvatarTalkComponent_fm_avatar_role_image_41_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-avatar-role-image\", 21, 2);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"fmodeChat\", ctx_r1.fmodeChat)(\"role\", ctx_r1.avatarRole);\n }\n}\nfunction _CompAvatarTalkComponent_fm_modal_chat_voice_input_46_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-modal-chat-voice-input\", 22);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"fmodeChat\", ctx_r1.fmodeChat);\n }\n}\nconst _c5 = [\"videoCanvas\"];\nfunction _ChatListComponent_ng_container_1_ion_item_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-item\", 2);\n i0.ɵɵlistener(\"click\", function _ChatListComponent_ng_container_1_ion_item_1_Template_ion_item_click_0_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const chat_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.onItemClick(chat_r2, $event));\n });\n i0.ɵɵelementStart(1, \"div\", 3);\n i0.ɵɵelement(2, \"div\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-label\")(4, \"div\", 5)(5, \"div\", 6)(6, \"strong\", 7)(7, \"ion-avatar\", 8);\n i0.ɵɵelement(8, \"img\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"p\", 10);\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"ion-icon\", 11);\n i0.ɵɵlistener(\"click\", function _ChatListComponent_ng_container_1_ion_item_1_Template_ion_icon_click_11_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const chat_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.presentEditTitle(chat_r2 == null ? null : chat_r2.session, chat_r2, $event));\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"ion-icon\", 12);\n i0.ɵɵlistener(\"click\", function _ChatListComponent_ng_container_1_ion_item_1_Template_ion_icon_click_12_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const chat_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.presentDeleteTItle(chat_r2 == null ? null : chat_r2.session, chat_r2, $event));\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(13, \"div\", 13)(14, \"ion-note\", 14);\n i0.ɵɵtext(15);\n i0.ɵɵpipe(16, \"date\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(17, \"ion-icon\", 15);\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(18, \"ion-text\")(19, \"br\");\n i0.ɵɵelementStart(20, \"ion-note\", 16);\n i0.ɵɵtext(21);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const chat_r2 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"button\", true);\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"src\", (chat_r2 == null ? null : chat_r2.thumb) || ctx_r2.avatar, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.truncateString(chat_r2 == null ? null : chat_r2.title));\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(16, 5, chat_r2 == null ? null : chat_r2.latest, \"HH:mm\"));\n i0.ɵɵadvance(6);\n i0.ɵɵtextInterpolate1(\" \", chat_r2 == null ? null : chat_r2.message, \" \");\n }\n}\nfunction _ChatListComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _ChatListComponent_ng_container_1_ion_item_1_Template, 22, 8, \"ion-item\", 1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const chat_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(chat_r2 == null ? null : chat_r2.isHidden));\n }\n}\nfunction _FmChatHeaderArea_ion_toolbar_0_img_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"img\", 12);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"src\", (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"avatar\")) || (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"thumb\")), i0.ɵɵsanitizeUrl);\n }\n}\nfunction _FmChatHeaderArea_ion_toolbar_0_ion_icon_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"ion-icon\", 13);\n }\n}\nfunction _FmChatHeaderArea_ion_toolbar_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-toolbar\")(1, \"ion-buttons\", 3)(2, \"ion-button\", 4);\n i0.ɵɵlistener(\"click\", function _FmChatHeaderArea_ion_toolbar_0_Template_ion_button_click_2_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.goBack());\n });\n i0.ɵɵelement(3, \"ion-icon\", 5);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"ion-title\")(5, \"div\", 6)(6, \"div\", 7);\n i0.ɵɵlistener(\"click\", function _FmChatHeaderArea_ion_toolbar_0_Template_div_click_6_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.chat.showAvatar());\n });\n i0.ɵɵtemplate(7, _FmChatHeaderArea_ion_toolbar_0_img_7_Template, 1, 1, \"img\", 8)(8, _FmChatHeaderArea_ion_toolbar_0_ion_icon_8_Template, 1, 0, \"ion-icon\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"span\", 4);\n i0.ɵɵlistener(\"click\", function _FmChatHeaderArea_ion_toolbar_0_Template_span_click_9_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.chat.showAvatar());\n });\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(11, \"ion-buttons\", 10)(12, \"ion-button\", 4);\n i0.ɵɵlistener(\"click\", function _FmChatHeaderArea_ion_toolbar_0_Template_ion_button_click_12_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.isModalOpen = true);\n });\n i0.ɵɵelement(13, \"ion-icon\", 11);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"avatar\")) || (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"thumb\")));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"avatarConfig\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"name\"), \" \");\n }\n}\nfunction _FmChatHeaderArea_div_1_fm_avatar_role_image_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-avatar-role-image\", 16);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"fmodeChat\", ctx_r1.chat)(\"role\", ctx_r1.avatarRole);\n }\n}\nfunction _FmChatHeaderArea_div_1_fm_avatar_role_video_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-avatar-role-video\", 16);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"fmodeChat\", ctx_r1.chat)(\"role\", ctx_r1.avatarRole);\n }\n}\nfunction _FmChatHeaderArea_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 14);\n i0.ɵɵtemplate(1, _FmChatHeaderArea_div_1_fm_avatar_role_image_1_Template, 1, 2, \"fm-avatar-role-image\", 15)(2, _FmChatHeaderArea_div_1_fm_avatar_role_video_2_Template, 1, 2, \"fm-avatar-role-video\", 15);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.chat == null ? null : ctx_r1.chat.avatarMode) == \"image\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.chat == null ? null : ctx_r1.chat.avatarMode) == \"video\");\n }\n}\nfunction _FmChatHeaderArea_ng_template_3_ion_item_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-item\", 22)(1, \"ion-note\", 3);\n i0.ɵɵtext(2, \"\\u5E74\\u9F84\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"age\"));\n }\n}\nfunction _FmChatHeaderArea_ng_template_3_ion_item_19_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-item\", 22)(1, \"ion-note\", 3);\n i0.ɵɵtext(2, \"\\u6027\\u522B\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-label\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"gender\"));\n }\n}\nfunction _FmChatHeaderArea_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-header\")(1, \"ion-toolbar\")(2, \"ion-buttons\", 3)(3, \"ion-button\", 4);\n i0.ɵɵlistener(\"click\", function _FmChatHeaderArea_ng_template_3_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.isModalOpen = false);\n });\n i0.ɵɵtext(4, \"\\u8FD4\\u56DE\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"ion-title\");\n i0.ɵɵtext(6, \"\\u7B80\\u4ECB\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(7, \"ion-content\", 17)(8, \"ion-card\", 18);\n i0.ɵɵelement(9, \"img\", 19);\n i0.ɵɵelementStart(10, \"ion-card-header\")(11, \"ion-card-subtitle\");\n i0.ɵɵtext(12);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(13, \"ion-card-title\");\n i0.ɵɵtext(14);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"ion-card-content\");\n i0.ɵɵtext(16);\n i0.ɵɵelementStart(17, \"ion-list\", 20);\n i0.ɵɵtemplate(18, _FmChatHeaderArea_ng_template_3_ion_item_18_Template, 5, 1, \"ion-item\", 21)(19, _FmChatHeaderArea_ng_template_3_ion_item_19_Template, 5, 1, \"ion-item\", 21);\n i0.ɵɵelementStart(20, \"ion-item\", 22)(21, \"ion-note\", 3);\n i0.ɵɵtext(22, \"\\u79F0\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(23, \"ion-label\");\n i0.ɵɵtext(24);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(25, \"ion-item\", 22)(26, \"ion-note\", 3);\n i0.ɵɵtext(27, \"\\u64C5\\u957F\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(28, \"ion-label\");\n i0.ɵɵtext(29);\n i0.ɵɵelementEnd()()()()()();\n }\n if (rf & 2) {\n let tmp_9_0;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(9);\n i0.ɵɵproperty(\"src\", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"thumb\"), i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"tags\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"name\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"desc\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"inset\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"age\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"gender\"));\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"title\"));\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : (tmp_9_0 = ctx_r1.chat.role.get(\"tags\")) == null ? null : tmp_9_0.join(\",\"));\n }\n}\nconst _c6 = () => ({\n backgroundColor: \"#222D3A\"\n});\nfunction _CompUserAvatarComponent_ng_container_0_nz_avatar_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 6);\n }\n if (rf & 2) {\n i0.ɵɵstyleMap(i0.ɵɵpureFunction0(2, _c6));\n }\n}\nfunction _CompUserAvatarComponent_ng_container_0_nz_avatar_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzSrc\", ctx_r0.user == null ? null : ctx_r0.user.get(\"avatar\"));\n }\n}\nfunction _CompUserAvatarComponent_ng_container_0_img_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"img\", 8);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"src\", ctx_r0.identity, i0.ɵɵsanitizeUrl);\n }\n}\nfunction _CompUserAvatarComponent_ng_container_0_nz_avatar_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 9);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzText\", ctx_r0.text);\n }\n}\nfunction _CompUserAvatarComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵtemplate(2, _CompUserAvatarComponent_ng_container_0_nz_avatar_2_Template, 1, 3, \"nz-avatar\", 2);\n i0.ɵɵelementStart(3, \"div\", 1);\n i0.ɵɵtemplate(4, _CompUserAvatarComponent_ng_container_0_nz_avatar_4_Template, 1, 1, \"nz-avatar\", 3)(5, _CompUserAvatarComponent_ng_container_0_img_5_Template, 1, 1, \"img\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(6, _CompUserAvatarComponent_ng_container_0_nz_avatar_6_Template, 1, 1, \"nz-avatar\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type == \"icon\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type == \"avatar\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.identity && ctx_r0.type == \"avatar\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r0.type == \"text\");\n }\n}\nfunction _FmChatMessageCard_div_1_div_5_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵpipe(2, \"durationStr\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(3);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind1(2, 1, ((ctx_r1.message == null ? null : ctx_r1.message.voice == null ? null : ctx_r1.message.voice.duration) || 0) / 1000), \" \");\n }\n}\nfunction _FmChatMessageCard_div_1_div_5_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\");\n }\n}\nfunction _FmChatMessageCard_div_1_div_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 16);\n i0.ɵɵlistener(\"click\", function _FmChatMessageCard_div_1_div_5_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.toggleVoicePlay());\n });\n i0.ɵɵelementStart(1, \"div\", 17);\n i0.ɵɵelement(2, \"span\", 18);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 19);\n i0.ɵɵtemplate(4, _FmChatMessageCard_div_1_div_5_span_4_Template, 3, 3, \"span\", 20)(5, _FmChatMessageCard_div_1_div_5_span_5_Template, 1, 0, \"span\", 20);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"play-voice-playing\", ctx_r1.tts == null ? null : ctx_r1.tts.isPlaying);\n i0.ɵɵproperty(\"nzRotate\", (ctx_r1.message == null ? null : ctx_r1.message.role) == \"user\" ? -90 : 90);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.message == null ? null : ctx_r1.message.voice == null ? null : ctx_r1.message.voice.duration);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx_r1.message == null ? null : ctx_r1.message.voice == null ? null : ctx_r1.message.voice.duration));\n }\n}\nfunction _FmChatMessageCard_div_1_nz_avatar_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 21);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzSrc\", ((ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"avatar\")) || (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : ctx_r1.chat.role.get(\"thumb\")) || \"https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\") + \"?\" + \"x-image-process=image/resize,m_fixed,w_100\" + \"&imageView2/1/w/32/h/32\");\n }\n}\nfunction _FmChatMessageCard_div_1_app_comp_user_avatar_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"app-comp-user-avatar\", 22);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"user\", ctx_r1.user);\n }\n}\nfunction _FmChatMessageCard_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 8)(1, \"div\", 9)(2, \"div\", 10)(3, \"ion-button\", 11);\n i0.ɵɵlistener(\"click\", function _FmChatMessageCard_div_1_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.copy());\n });\n i0.ɵɵelement(4, \"ion-icon\", 12);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(5, _FmChatMessageCard_div_1_div_5_Template, 6, 5, \"div\", 13)(6, _FmChatMessageCard_div_1_nz_avatar_6_Template, 1, 1, \"nz-avatar\", 14)(7, _FmChatMessageCard_div_1_app_comp_user_avatar_7_Template, 1, 1, \"app-comp-user-avatar\", 15);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n let tmp_1_0;\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.message == null ? null : ctx_r1.message.role) == \"assistant\" && (ctx_r1.chat == null ? null : ctx_r1.chat.role == null ? null : (tmp_1_0 = ctx_r1.chat.role.get(\"voiceConfig\")) == null ? null : tmp_1_0.voice) || (ctx_r1.message == null ? null : ctx_r1.message.role) == \"user\" && (ctx_r1.message == null ? null : ctx_r1.message.voice));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.message == null ? null : ctx_r1.message.role) != \"user\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r1.message == null ? null : ctx_r1.message.role) == \"user\");\n }\n}\nfunction _FmChatMessageCard_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 23);\n i0.ɵɵelement(1, \"img\", 24);\n i0.ɵɵpipe(2, \"chatContent\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"src\", i0.ɵɵpipeBind2(2, 1, ctx_r1.message == null ? null : ctx_r1.message.content, \"image_url\"), i0.ɵɵsanitizeUrl);\n }\n}\nfunction _FmChatMessageCard_fm_markdown_preview_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 25);\n i0.ɵɵpipe(1, \"chatContent\");\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"content\", i0.ɵɵpipeBind1(1, 2, ctx_r1.message == null ? null : ctx_r1.message.content))(\"render\", false);\n }\n}\nfunction _FmChatMessageCard_fm_markdown_preview_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 26);\n i0.ɵɵpipe(1, \"chatContent\");\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"content\", i0.ɵɵpipeBind1(1, 1, ctx_r1.message == null ? null : ctx_r1.message.content));\n }\n}\nfunction _FmChatMessageCard_div_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 27);\n i0.ɵɵtext(1, \" \\u6B63\\u5728\\u8F93\\u5165\");\n i0.ɵɵelement(2, \"ion-spinner\", 28);\n i0.ɵɵelementEnd();\n }\n}\nfunction _FmChatMessageCard_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 29)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"date\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 1, ctx_r1.message == null ? null : ctx_r1.message.createdAt, \"dd/MM/yy HH:mm\"));\n }\n}\nconst _c7 = () => [0, 1];\nfunction _CompRolePromptComponent_ng_container_0_div_1_ng_container_1_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 9);\n i0.ɵɵlistener(\"click\", function _CompRolePromptComponent_ng_container_0_div_1_ng_container_1_ng_container_7_Template_div_click_1_listener() {\n const message_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(4);\n return i0.ɵɵresetView(ctx_r2.applyPrompt(message_r2));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const message_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzTooltipTitle\", message_r2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", message_r2, \" \");\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_div_1_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 5)(2, \"div\", 6)(3, \"div\");\n i0.ɵɵelement(4, \"img\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 8);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(7, _CompRolePromptComponent_ng_container_0_div_1_ng_container_1_ng_container_7_Template, 3, 2, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const content_r4 = ctx.$implicit;\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"src\", content_r4.img, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", content_r4.get(\"cate\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", content_r4.get(\"messageList\"));\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵtemplate(1, _CompRolePromptComponent_ng_container_0_div_1_ng_container_1_Template, 8, 3, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.chat == null ? null : ctx_r2.chat.promptList);\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 9);\n i0.ɵɵlistener(\"click\", function _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_div_1_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r5);\n const message_r6 = i0.ɵɵnextContext().$implicit;\n const ctx_r2 = i0.ɵɵnextContext(4);\n return i0.ɵɵresetView(ctx_r2.applyPrompt(message_r6));\n });\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const message_r6 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"nzTooltipTitle\", message_r6);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", message_r6, \" \");\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_div_1_Template, 2, 2, \"div\", 12);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const idx_r7 = ctx.index;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", idx_r7 < 3);\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 5)(2, \"div\", 6)(3, \"div\");\n i0.ɵɵelement(4, \"img\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 8);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(7, _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_Template, 2, 1, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const content_r8 = ctx.$implicit;\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"src\", content_r8.img, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", content_r8.get(\"cate\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", content_r8.get(\"messageList\"));\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_ng_container_2_div_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 13)(1, \"button\", 14);\n i0.ɵɵlistener(\"click\", function _CompRolePromptComponent_ng_container_0_ng_container_2_div_3_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.chat.isPromptModalOpen = true);\n });\n i0.ɵɵtext(2, \"\\u67E5\\u770B\\u66F4\\u591A\");\n i0.ɵɵelement(3, \"span\", 15);\n i0.ɵɵelementEnd()();\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 10);\n i0.ɵɵtemplate(2, _CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_Template, 8, 3, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, _CompRolePromptComponent_ng_container_0_ng_container_2_div_3_Template, 4, 0, \"div\", 11);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.chat == null ? null : ctx_r2.chat.promptList);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.chat == null ? null : ctx_r2.chat.promptList == null ? null : ctx_r2.chat.promptList.length);\n }\n}\nfunction _CompRolePromptComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _CompRolePromptComponent_ng_container_0_div_1_Template, 2, 1, \"div\", 2)(2, _CompRolePromptComponent_ng_container_0_ng_container_2_Template, 4, 2, \"ng-container\", 0);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.cross == null ? null : ctx_r2.cross.navMenuType) != \"mobile\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.cross == null ? null : ctx_r2.cross.navMenuType) == \"mobile\");\n }\n}\nfunction _CompRolePromptComponent_ng_template_2_ng_container_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-button\", 19);\n i0.ɵɵlistener(\"click\", function _CompRolePromptComponent_ng_template_2_ng_container_4_Template_ion_button_click_1_listener() {\n const i_r11 = i0.ɵɵrestoreView(_r10).index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.checkCate(i_r11));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const prompt_r12 = ctx.$implicit;\n const i_r11 = ctx.index;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"color\", i_r11 == ctx_r2.cateIndex ? \"secondary\" : \"light\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(prompt_r12 == null ? null : prompt_r12.get(\"cate\"));\n }\n}\nfunction _CompRolePromptComponent_ng_template_2_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 20);\n i0.ɵɵlistener(\"click\", function _CompRolePromptComponent_ng_template_2_ng_container_6_Template_div_click_1_listener() {\n const message_r14 = i0.ɵɵrestoreView(_r13).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.applyPrompt(message_r14));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const message_r14 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"background-color\", ctx_r2.isDarkMode ? \"rgba(255,255,255,0.2)\" : \"white\")(\"color\", ctx_r2.isDarkMode ? \"rgba(255,255,255,0.5)\" : \"black\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate(message_r14);\n }\n}\nfunction _CompRolePromptComponent_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 16)(1, \"ion-label\");\n i0.ɵɵtext(2, \"\\u8BDD\\u9898\\u7075\\u611F\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 17);\n i0.ɵɵtemplate(4, _CompRolePromptComponent_ng_template_2_ng_container_4_Template, 3, 2, \"ng-container\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 18);\n i0.ɵɵtemplate(6, _CompRolePromptComponent_ng_template_2_ng_container_6_Template, 3, 5, \"ng-container\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.chat == null ? null : ctx_r2.chat.promptList);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.chat == null ? null : ctx_r2.chat.promptList[ctx_r2.cateIndex] == null ? null : ctx_r2.chat.promptList[ctx_r2.cateIndex].get(\"messageList\"));\n }\n}\nconst _c8 = a0 => ({\n role: \"user\",\n content: a0\n});\nconst _c9 = a0 => ({\n type: \"text\",\n text: a0\n});\nconst _c10 = a0 => ({\n url: a0\n});\nconst _c11 = a0 => ({\n type: \"image_url\",\n image_url: a0\n});\nconst _c12 = (a0, a1) => [a0, a1];\nfunction _FmChatMesssageArea_ng_container_2_fm_chat_message_card_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-chat-message-card\", 4);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n const message_r2 = ctx_r0.$implicit;\n const index_r3 = ctx_r0.index;\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"chat\", ctx_r3.chat)(\"index\", index_r3)(\"message\", message_r2)(\"role\", ctx_r3.chat == null ? null : ctx_r3.chat.role);\n }\n}\nfunction _FmChatMesssageArea_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _FmChatMesssageArea_ng_container_2_fm_chat_message_card_1_Template, 1, 4, \"fm-chat-message-card\", 3);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const message_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(message_r2 == null ? null : message_r2.hidden));\n }\n}\nfunction _FmChatMesssageArea_Conditional_3_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"fm-chat-message-card\", 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"chat\", ctx_r3.chat)(\"message\", i0.ɵɵpureFunction1(3, _c8, ctx_r3.chat == null ? null : ctx_r3.chat.userInput))(\"role\", ctx_r3.chat == null ? null : ctx_r3.chat.role);\n }\n}\nfunction _FmChatMesssageArea_Conditional_3_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelement(1, \"fm-chat-message-card\", 6);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"chat\", ctx_r3.chat)(\"message\", i0.ɵɵpureFunction1(12, _c8, i0.ɵɵpureFunction2(9, _c12, i0.ɵɵpureFunction1(3, _c9, ctx_r3.chat == null ? null : ctx_r3.chat.userInput), i0.ɵɵpureFunction1(7, _c11, i0.ɵɵpureFunction1(5, _c10, ctx_r3.chat == null ? null : ctx_r3.chat.userImage)))))(\"role\", ctx_r3.chat == null ? null : ctx_r3.chat.role);\n }\n}\nfunction _FmChatMesssageArea_Conditional_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _FmChatMesssageArea_Conditional_3_ng_container_0_Template, 2, 5, \"ng-container\", 5)(1, _FmChatMesssageArea_Conditional_3_ng_container_1_Template, 2, 14, \"ng-container\", 5);\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", (ctx_r3.chat == null ? null : ctx_r3.chat.userInput) && !(ctx_r3.chat == null ? null : ctx_r3.chat.userImage));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r3.chat == null ? null : ctx_r3.chat.userImage);\n }\n}\nfunction _ModalAudioMessageComponent_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 2);\n i0.ɵɵelement(2, \"ion-spinner\", 3);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction _ModalAudioMessageComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 4)(2, \"ion-button\", 5);\n i0.ɵɵlistener(\"click\", function _ModalAudioMessageComponent_ng_container_2_Template_ion_button_click_2_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.cancel());\n });\n i0.ɵɵelement(3, \"ion-icon\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 7)(5, \"div\", 8);\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 9)(8, \"div\", 10);\n i0.ɵɵelement(9, \"div\", 11)(10, \"div\", 11)(11, \"div\", 11)(12, \"div\", 11)(13, \"div\", 11);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(14, \"ion-button\", 12);\n i0.ɵɵlistener(\"click\", function _ModalAudioMessageComponent_ng_container_2_Template_ion_button_click_14_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.send());\n });\n i0.ɵɵelement(15, \"ion-icon\", 13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(16, \"div\", 14);\n i0.ɵɵtext(17, \" \\u8BF7\\u60A8\\u8BB2\\u8BDD\\uFF0CAI\\u4F1A\\u8BC6\\u522B\\uFF01 \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(6);\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.durationStr || \"00:00\", \" \");\n }\n}\nconst _c13 = [\"userInput\"];\nconst _c14 = a0 => ({\n \"role-time\": a0\n});\nfunction _FmChatModalInput_ng_container_2_ion_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-button\", 10);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_2_ion_button_1_Template_ion_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const button_r2 = i0.ɵɵnextContext().$implicit;\n return i0.ɵɵresetView(button_r2.onClick());\n });\n i0.ɵɵelement(1, \"ion-icon\", 11);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const button_r2 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"title\", button_r2 == null ? null : button_r2.title);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", button_r2 == null ? null : button_r2.icon)(\"slot\", (button_r2 == null ? null : button_r2.showTitle) ? \"start\" : \"icon-only\");\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", (button_r2 == null ? null : button_r2.showTitle) && (button_r2 == null ? null : button_r2.title), \" \");\n }\n}\nfunction _FmChatModalInput_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _FmChatModalInput_ng_container_2_ion_button_1_Template, 3, 4, \"ion-button\", 9);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const button_r2 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", button_r2.show());\n }\n}\nfunction _FmChatModalInput_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-button\", 12);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_3_Template_ion_button_click_1_listener() {\n const button_r4 = i0.ɵɵrestoreView(_r3).$implicit;\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.chatServ.doButtonAction(button_r4));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const button_r4 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", button_r4 == null ? null : button_r4.name, \" \");\n }\n}\nfunction _FmChatModalInput_Conditional_4_ion_button_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-button\", 14);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_Conditional_4_ion_button_0_Template_ion_button_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.showShare());\n });\n i0.ɵɵelement(1, \"ion-icon\", 15);\n i0.ɵɵelementEnd();\n }\n}\nfunction _FmChatModalInput_Conditional_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _FmChatModalInput_Conditional_4_ion_button_0_Template, 2, 0, \"ion-button\", 13);\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", (ctx_r4.chat == null ? null : ctx_r4.chat.messageList == null ? null : ctx_r4.chat.messageList.length) > 1);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_1_nz_avatar_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 34);\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"nzSrc\", ((ctx_r4.chat == null ? null : ctx_r4.chat.role == null ? null : ctx_r4.chat.role.get(\"avatar\")) || (ctx_r4.chat == null ? null : ctx_r4.chat.role == null ? null : ctx_r4.chat.role.get(\"thumb\")) || \"https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\") + \"?\" + \"x-image-process=image/resize,m_fixed,w_100\" + \"&imageView2/1/w/32/h/32\");\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_1_app_comp_user_avatar_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"app-comp-user-avatar\", 35);\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(4);\n i0.ɵɵproperty(\"user\", ctx_r4.user);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 30)(1, \"div\");\n i0.ɵɵtemplate(2, _FmChatModalInput_ng_template_6_div_12_div_1_nz_avatar_2_Template, 1, 1, \"nz-avatar\", 31);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 32);\n i0.ɵɵtemplate(4, _FmChatModalInput_ng_template_6_div_12_div_1_app_comp_user_avatar_4_Template, 1, 1, \"app-comp-user-avatar\", 33);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) != \"user\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) == \"user\");\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_4_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r8 == null ? null : message_r8.content);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 36)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_ng_template_6_div_12_div_4_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r8 == null ? null : message_r8.complete);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_6_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r8 == null ? null : message_r8.content);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 40)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_ng_template_6_div_12_div_6_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r8 == null ? null : message_r8.complete);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_8_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r8 == null ? null : message_r8.content);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 41)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_ng_template_6_div_12_div_8_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r8 == null ? null : message_r8.complete);\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_div_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 42)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"date\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r8 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c14, (message_r8 == null ? null : message_r8.role) !== \"user\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 2, message_r8 == null ? null : message_r8.createdAt, \"dd/MM/yyyy, HH/mm/ss a\"));\n }\n}\nfunction _FmChatModalInput_ng_template_6_div_12_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, _FmChatModalInput_ng_template_6_div_12_div_1_Template, 5, 2, \"div\", 21);\n i0.ɵɵelementStart(2, \"div\", 22)(3, \"div\", 23);\n i0.ɵɵtemplate(4, _FmChatModalInput_ng_template_6_div_12_div_4_Template, 3, 1, \"div\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 25);\n i0.ɵɵtemplate(6, _FmChatModalInput_ng_template_6_div_12_div_6_Template, 3, 1, \"div\", 26);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 27);\n i0.ɵɵtemplate(8, _FmChatModalInput_ng_template_6_div_12_div_8_Template, 3, 1, \"div\", 28);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(9, _FmChatModalInput_ng_template_6_div_12_div_9_Template, 4, 7, \"div\", 29);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const message_r8 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) != \"system\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) === \"user\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) !== \"user\" && (message_r8 == null ? null : message_r8.role) !== \"system\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r8 == null ? null : message_r8.role) === \"system\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", message_r8 == null ? null : message_r8.createdAt);\n }\n}\nfunction _FmChatModalInput_ng_template_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-header\")(1, \"ion-toolbar\")(2, \"ion-buttons\", 16)(3, \"ion-button\", 17);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_template_6_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.handleCancelShare());\n });\n i0.ɵɵtext(4, \"\\u53D6\\u6D88\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"ion-title\");\n i0.ɵɵtext(6, \"\\u5BF9\\u8BDD\\u5206\\u4EAB\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"ion-buttons\", 18)(8, \"ion-button\", 17);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_template_6_Template_ion_button_click_8_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.handleOkShare());\n });\n i0.ɵɵtext(9, \"\\u5206\\u4EAB\");\n i0.ɵɵelementEnd()()()();\n i0.ɵɵelementStart(10, \"ion-content\", 19)(11, \"div\", 20);\n i0.ɵɵtemplate(12, _FmChatModalInput_ng_template_6_div_12_Template, 10, 5, \"div\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance(12);\n i0.ɵɵproperty(\"ngForOf\", ctx_r4.chat == null ? null : ctx_r4.chat.messageList);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_nz_avatar_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"nz-avatar\", 34);\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"nzSrc\", ((ctx_r4.chat == null ? null : ctx_r4.chat.role == null ? null : ctx_r4.chat.role.get(\"thumb\")) || \"https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\") + \"?\" + \"x-image-process=image/resize,m_fixed,w_100\" + \"&imageView2/1/w/32/h/32\");\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_app_comp_user_avatar_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"app-comp-user-avatar\", 35);\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(5);\n i0.ɵɵproperty(\"user\", ctx_r4.user);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 30)(1, \"div\");\n i0.ɵɵtemplate(2, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_nz_avatar_2_Template, 1, 1, \"nz-avatar\", 31);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 32);\n i0.ɵɵtemplate(4, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_app_comp_user_avatar_4_Template, 1, 1, \"app-comp-user-avatar\", 33);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) != \"user\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) == \"user\");\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r10 == null ? null : message_r10.content);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 36)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r10 == null ? null : message_r10.complete);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r10 == null ? null : message_r10.content);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 40)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r10 == null ? null : message_r10.complete);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_fm_markdown_preview_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-markdown-preview\", 39);\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext(2).$implicit;\n i0.ɵɵproperty(\"content\", message_r10 == null ? null : message_r10.content);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 41)(1, \"div\", 37);\n i0.ɵɵtemplate(2, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_fm_markdown_preview_2_Template, 1, 1, \"fm-markdown-preview\", 38);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", message_r10 == null ? null : message_r10.complete);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 42)(1, \"span\");\n i0.ɵɵtext(2);\n i0.ɵɵpipe(3, \"date\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const message_r10 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(5, _c14, (message_r10 == null ? null : message_r10.role) !== \"user\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 2, message_r10 == null ? null : message_r10.createdAt, \"dd/MM/yyyy, HH/mm/ss a\"));\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_div_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\");\n i0.ɵɵtemplate(1, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_Template, 5, 2, \"div\", 21);\n i0.ɵɵelementStart(2, \"div\", 22)(3, \"div\", 23);\n i0.ɵɵtemplate(4, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_Template, 3, 1, \"div\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"div\", 25);\n i0.ɵɵtemplate(6, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_Template, 3, 1, \"div\", 26);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(7, \"div\", 27);\n i0.ɵɵtemplate(8, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_Template, 3, 1, \"div\", 28);\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(9, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_9_Template, 4, 7, \"div\", 29);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const message_r10 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) != \"system\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) === \"user\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) !== \"user\" && (message_r10 == null ? null : message_r10.role) !== \"system\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (message_r10 == null ? null : message_r10.role) === \"system\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", message_r10 == null ? null : message_r10.createdAt);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_ng_container_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 20);\n i0.ɵɵtemplate(2, _FmChatModalInput_nz_modal_7_ng_container_1_div_2_Template, 10, 5, \"div\", 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r4.chat == null ? null : ctx_r4.chat.messageList);\n }\n}\nfunction _FmChatModalInput_nz_modal_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r9 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"nz-modal\", 43);\n i0.ɵɵtwoWayListener(\"nzVisibleChange\", function _FmChatModalInput_nz_modal_7_Template_nz_modal_nzVisibleChange_0_listener($event) {\n i0.ɵɵrestoreView(_r9);\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r4.isShare, $event) || (ctx_r4.isShare = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"nzOnCancel\", function _FmChatModalInput_nz_modal_7_Template_nz_modal_nzOnCancel_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.handleCancelShare());\n })(\"nzOnOk\", function _FmChatModalInput_nz_modal_7_Template_nz_modal_nzOnOk_0_listener() {\n i0.ɵɵrestoreView(_r9);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.handleOkShare());\n });\n i0.ɵɵtemplate(1, _FmChatModalInput_nz_modal_7_ng_container_1_Template, 3, 1, \"ng-container\", 44);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayProperty(\"nzVisible\", ctx_r4.isShare);\n }\n}\nfunction _FmChatModalInput_ion_button_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-button\", 45);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ion_button_8_Template_ion_button_click_0_listener() {\n i0.ɵɵrestoreView(_r11);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.setMessageImage());\n });\n i0.ɵɵelement(1, \"ion-icon\", 46);\n i0.ɵɵelementEnd();\n }\n}\nfunction _FmChatModalInput_Conditional_9_ng_template_4_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r12 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-item\", 50);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_Conditional_9_ng_template_4_ng_container_2_Template_ion_item_click_1_listener() {\n const model_r13 = i0.ɵɵrestoreView(_r12).$implicit;\n const ctx_r4 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r4.chatServ.currentModel = model_r13);\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementStart(3, \"ion-note\", 18);\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const model_r13 = ctx.$implicit;\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"button\", true)(\"detail\", false);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", model_r13 == null ? null : model_r13.get(\"name\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\"\", model_r13 == null ? null : model_r13.get(\"credit\"), \"/k\");\n }\n}\nfunction _FmChatModalInput_Conditional_9_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-content\")(1, \"ion-list\");\n i0.ɵɵtemplate(2, _FmChatModalInput_Conditional_9_ng_template_4_ng_container_2_Template, 5, 4, \"ng-container\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r4.chatServ.modelList);\n }\n}\nfunction _FmChatModalInput_Conditional_9_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-button\", 47);\n i0.ɵɵelement(1, \"ion-icon\", 48);\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"ion-popover\", 49);\n i0.ɵɵtemplate(4, _FmChatModalInput_Conditional_9_ng_template_4_Template, 3, 1, \"ng-template\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", (ctx_r4.chatServ == null ? null : ctx_r4.chatServ.currentModel == null ? null : ctx_r4.chatServ.currentModel.get) && (ctx_r4.chatServ == null ? null : ctx_r4.chatServ.currentModel == null ? null : ctx_r4.chatServ.currentModel.get(\"name\")) || \"\\u98DE\\u78014.0\", \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"dismissOnSelect\", true);\n }\n}\nfunction _FmChatModalInput_ng_container_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r14 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-button\", 51);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_11_Template_ion_button_click_1_listener() {\n i0.ɵɵrestoreView(_r14);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.chat.isVoiceInputMode = false);\n });\n i0.ɵɵelement(2, \"ion-icon\", 52);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 53);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_11_Template_div_click_3_listener() {\n i0.ɵɵrestoreView(_r14);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.startTalk());\n });\n i0.ɵɵelementStart(4, \"span\");\n i0.ɵɵtext(5, \" \\u70B9\\u51FB\\u8BB2\\u8BDD \");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction _FmChatModalInput_ng_container_12_ion_button_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r16 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-button\", 51);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_12_ion_button_1_Template_ion_button_click_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.chat.isVoiceInputMode = true);\n });\n i0.ɵɵelement(1, \"ion-icon\", 58);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵstyleProp(\"display\", ctx_r4.chat.isTexting ? \"none\" : \"flex\");\n }\n}\nfunction _FmChatModalInput_ng_container_12_ion_textarea_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r17 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-textarea\", 59, 0);\n i0.ɵɵlistener(\"keydown\", function _FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_keydown_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.onKeyDown($event));\n });\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ngModelChange_0_listener($event) {\n i0.ɵɵrestoreView(_r17);\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵtwoWayBindingSet(ctx_r4.chat.userInput, $event) || (ctx_r4.chat.userInput = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"ionFocus\", function _FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ionFocus_0_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.onInputFocus());\n })(\"ionBlur\", function _FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ionBlur_0_listener() {\n i0.ɵɵrestoreView(_r17);\n const ctx_r4 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r4.chat.isTexting = false);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"errorText\", ctx_r4.errorText);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r4.chat.userInput);\n i0.ɵɵproperty(\"autoGrow\", true);\n }\n}\nfunction _FmChatModalInput_ng_container_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtemplate(1, _FmChatModalInput_ng_container_12_ion_button_1_Template, 2, 2, \"ion-button\", 54)(2, _FmChatModalInput_ng_container_12_ion_textarea_2_Template, 2, 3, \"ion-textarea\", 55);\n i0.ɵɵelementStart(3, \"ion-button\", 56);\n i0.ɵɵlistener(\"click\", function _FmChatModalInput_ng_container_12_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r15);\n const ctx_r4 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r4.sendMessage());\n });\n i0.ɵɵelement(4, \"ion-icon\", 57);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.chat == null ? null : ctx_r4.chat.role == null ? null : ctx_r4.chat.role.get(\"voiceConfig\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r4.chat);\n }\n}\nconst _c15 = [\"contentComp\"];\nconst _c16 = [[[\"\", \"chat-header\", \"\"]], [[\"\", \"chat-content\", \"\"]], [[\"\", \"chat-footer\", \"\"]]];\nconst _c17 = [\"[chat-header]\", \"[chat-content]\", \"[chat-footer]\"];\nfunction _ChatPanelComponent_div_0_fm_chat_header_area_3_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-chat-header-area\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"chat\", ctx_r0.fmodeChat);\n }\n}\nfunction _ChatPanelComponent_div_0_fm_chat_message_area_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-chat-message-area\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"chat\", ctx_r0.fmodeChat);\n }\n}\nfunction _ChatPanelComponent_div_0_fm_chat_modal_input_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"fm-chat-modal-input\", 7);\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"chat\", ctx_r0.fmodeChat);\n }\n}\nfunction _ChatPanelComponent_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2)(1, \"div\", 3);\n i0.ɵɵprojection(2);\n i0.ɵɵtemplate(3, _ChatPanelComponent_div_0_fm_chat_header_area_3_Template, 1, 1, \"fm-chat-header-area\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"div\", 5, 0);\n i0.ɵɵprojection(6, 1);\n i0.ɵɵtemplate(7, _ChatPanelComponent_div_0_fm_chat_message_area_7_Template, 1, 1, \"fm-chat-message-area\", 4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"div\", 6);\n i0.ɵɵprojection(9, 2);\n i0.ɵɵtemplate(10, _ChatPanelComponent_div_0_fm_chat_modal_input_10_Template, 1, 1, \"fm-chat-modal-input\", 4);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"avatarHeader\", ctx_r0.fmodeChat == null ? null : ctx_r0.fmodeChat.isAvatarShow);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showHeaderArea);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showMessageArea);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx_r0.showInputModal);\n }\n}\nconst _c18 = [\"class\", \"start\"];\nfunction _PageMapStartComponent_ng_container_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 4);\n i0.ɵɵlistener(\"click\", function _PageMapStartComponent_ng_container_2_Template_div_click_1_listener() {\n const place_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.goAndMarkPlace(place_r2));\n });\n i0.ɵɵtext(2);\n i0.ɵɵelementStart(3, \"button\", 3);\n i0.ɵɵlistener(\"click\", function _PageMapStartComponent_ng_container_2_Template_button_click_3_listener() {\n const place_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.clearMark(place_r2));\n });\n i0.ɵɵtext(4, \"\\u6E05\\u9664\\u6807\\u8BB0\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const place_r2 = ctx.$implicit;\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", place_r2.name, \" \");\n }\n}\nconst _c19 = [\"container\"];\nconst _c20 = [\"panel\"];\nfunction _CompPoiPickerComponent_ng_template_3_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵtext(1);\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\"(\", ctx_r1.location.latitude, \",\", ctx_r1.location.longitude, \")\");\n }\n}\nfunction _CompPoiPickerComponent_ng_template_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-header\")(1, \"ion-toolbar\")(2, \"ion-buttons\", 4)(3, \"ion-button\", 5);\n i0.ɵɵlistener(\"click\", function _CompPoiPickerComponent_ng_template_3_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.cancel());\n });\n i0.ɵɵtext(4, \"Cancel\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"ion-title\");\n i0.ɵɵtext(6, \"\\u5730\\u56FE\\u9009\\u70B9\");\n i0.ɵɵtemplate(7, _CompPoiPickerComponent_ng_template_3_ng_container_7_Template, 2, 2, \"ng-container\", 6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"ion-buttons\", 7)(9, \"ion-button\", 8);\n i0.ɵɵlistener(\"click\", function _CompPoiPickerComponent_ng_template_3_Template_ion_button_click_9_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.confirm());\n });\n i0.ɵɵtext(10, \"Confirm\");\n i0.ɵɵelementEnd()()()();\n i0.ɵɵelementStart(11, \"ion-content\", 9)(12, \"ion-item\")(13, \"ion-input\", 10);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _CompPoiPickerComponent_ng_template_3_Template_ion_input_ngModelChange_13_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.address, $event) || (ctx_r1.address = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"ion-button\", 11);\n i0.ɵɵlistener(\"click\", function _CompPoiPickerComponent_ng_template_3_Template_ion_button_click_14_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.searchByAddress());\n });\n i0.ɵɵtext(15, \"\\u641C\\u7D22\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelement(16, \"div\", 12, 0)(18, \"div\", 13, 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.location);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"strong\", true);\n i0.ɵɵadvance(4);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.address);\n }\n}\nfunction _PagePlanRouteComponent_ng_container_7_ng_container_3_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const place_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\"\\u8BE6\\u7EC6\\u5730\\u5740\\uFF1A\", place_r3.address, \"\");\n }\n}\nfunction _PagePlanRouteComponent_ng_container_7_ng_container_3_span_5_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"span\");\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const place_r3 = i0.ɵɵnextContext().$implicit;\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate2(\"\\u5730\\u56FE\\u5750\\u6807\\uFF1A\", place_r3.location.latitude, \",\", place_r3.location.longitude, \"\");\n }\n}\nfunction _PagePlanRouteComponent_ng_container_7_ng_container_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-card\")(2, \"h2\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, _PagePlanRouteComponent_ng_container_7_ng_container_3_span_4_Template, 2, 1, \"span\", 3)(5, _PagePlanRouteComponent_ng_container_7_ng_container_3_span_5_Template, 2, 2, \"span\", 3);\n i0.ɵɵelementStart(6, \"fm-map-poi-picker\", 6);\n i0.ɵɵtwoWayListener(\"nameChange\", function _PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_nameChange_6_listener($event) {\n const place_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n i0.ɵɵtwoWayBindingSet(place_r3.name, $event) || (place_r3.name = $event);\n return i0.ɵɵresetView($event);\n })(\"addressChange\", function _PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_addressChange_6_listener($event) {\n const place_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n i0.ɵɵtwoWayBindingSet(place_r3.address, $event) || (place_r3.address = $event);\n return i0.ɵɵresetView($event);\n })(\"locationChange\", function _PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_locationChange_6_listener($event) {\n const place_r3 = i0.ɵɵrestoreView(_r2).$implicit;\n i0.ɵɵtwoWayBindingSet(place_r3.location, $event) || (place_r3.location = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const place_r3 = ctx.$implicit;\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(place_r3 == null ? null : place_r3.name);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", place_r3.address);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", place_r3.location);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"name\", place_r3.name)(\"address\", place_r3.address)(\"location\", place_r3.location);\n }\n}\nfunction _PagePlanRouteComponent_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"h1\");\n i0.ɵɵtext(2, \"\\u9009\\u62E9\\u65C5\\u6E38\\u8BA1\\u5212\\u666F\\u70B9\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(3, _PagePlanRouteComponent_ng_container_7_ng_container_3_Template, 7, 6, \"ng-container\", 4);\n i0.ɵɵelementStart(4, \"ion-button\", 5);\n i0.ɵɵlistener(\"click\", function _PagePlanRouteComponent_ng_container_7_Template_ion_button_click_4_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.addNewPlace());\n });\n i0.ɵɵtext(5, \"\\u6DFB\\u52A0\\u65B0\\u666F\\u70B9\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r3 = i0.ɵɵnextContext();\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx_r3.placeList);\n }\n}\nfunction _PagePlanRouteComponent_ng_container_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-button\", 5);\n i0.ɵɵlistener(\"click\", function _PagePlanRouteComponent_ng_container_8_Template_ion_button_click_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r3 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r3.createPlan());\n });\n i0.ɵɵtext(2, \"\\u521B\\u5EFA\\u89C4\\u5212\\u8DEF\\u7EBF\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 7)(4, \"div\", 8);\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction _HwobsManagerComponent_ion_item_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-item\", 0);\n i0.ɵɵlistener(\"click\", function _HwobsManagerComponent_ion_item_10_Template_ion_item_click_0_listener() {\n const item_r2 = i0.ɵɵrestoreView(_r1).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.openDir(item_r2));\n });\n i0.ɵɵelement(1, \"ion-icon\", 1);\n i0.ɵɵelementStart(2, \"ion-label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r2 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"folder\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.showName(item_r2.Prefix));\n }\n}\nfunction _HwobsManagerComponent_ion_item_11_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-item\", 0);\n i0.ɵɵlistener(\"click\", function _HwobsManagerComponent_ion_item_11_Template_ion_item_click_0_listener() {\n const item_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.openFile(item_r5));\n });\n i0.ɵɵelement(1, \"ion-icon\", 1);\n i0.ɵɵelementStart(2, \"ion-label\");\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const item_r5 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"name\", \"document\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r2.showName(item_r5.Key));\n }\n}\nfunction _LoginComponent_ng_container_6_ng_template_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_6_ng_template_13_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_ng_container_6_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.submitFormMobilePassword(ctx_r1.validateForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u624B\\u673A\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 21);\n i0.ɵɵelement(6, \"input\", 22);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\")(8, \"nz-form-label\", 20);\n i0.ɵɵtext(9, \"\\u5BC6 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 21)(11, \"nz-input-group\", 23);\n i0.ɵɵelement(12, \"input\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, _LoginComponent_ng_container_6_ng_template_13_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"nz-form-item\", 25)(16, \"nz-form-label\", 26);\n i0.ɵɵtext(17, \"\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"nz-form-control\", 27);\n i0.ɵɵelement(19, \"input\", 28);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(20, \"nz-form-control\", 29)(21, \"div\", 30);\n i0.ɵɵtext(22);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(23, \"nz-form-control\", 31)(24, \"div\", 32);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_6_Template_div_click_24_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.creatCode());\n });\n i0.ɵɵtext(25, \" \\u6362\\u4E00\\u4E2A \");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(26, \"div\", 33)(27, \"button\", 34);\n i0.ɵɵtext(28, \"\\u767B\\u5F55\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(29, \"div\", 35)(30, \"h6\", 36);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_6_Template_h6_click_30_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.forget());\n });\n i0.ɵɵtext(31, \"\\u5FD8\\u8BB0\\u5BC6\\u7801\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const suffixTemplate_r4 = i0.ɵɵreference(14);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.validateForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.userErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.passwordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.codeErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.code);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSize\", \"large\")(\"disabled\", !ctx_r1.validateForm.valid);\n }\n}\nfunction _LoginComponent_ng_container_7_ng_template_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_7_ng_template_13_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_7_ng_template_21_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_7_ng_template_21_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_7_div_29_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 48);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_7_div_29_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.getCode2());\n });\n i0.ɵɵtext(1, \" \\u83B7\\u53D6\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n }\n}\nfunction _LoginComponent_ng_container_7_div_30_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 49);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.countDown, \"/\\u79D2 \");\n }\n}\nfunction _LoginComponent_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_ng_container_7_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.forgetFormFun(ctx_r1.forgetForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u767B\\u5F55\\u8D26\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 21);\n i0.ɵɵelement(6, \"input\", 38);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\")(8, \"nz-form-label\", 20);\n i0.ɵɵtext(9, \"\\u65B0 \\u5BC6 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 21)(11, \"nz-input-group\", 23);\n i0.ɵɵelement(12, \"input\", 39);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, _LoginComponent_ng_container_7_ng_template_13_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"nz-form-item\")(16, \"nz-form-label\", 20);\n i0.ɵɵtext(17, \"\\u786E\\u8BA4\\u5BC6\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"nz-form-control\", 21)(19, \"nz-input-group\", 23);\n i0.ɵɵelement(20, \"input\", 40);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(21, _LoginComponent_ng_container_7_ng_template_21_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(23, \"nz-form-item\", 41)(24, \"nz-form-label\", 20);\n i0.ɵɵtext(25, \"\\u9A8C \\u8BC1 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(26, \"nz-form-control\", 42);\n i0.ɵɵelement(27, \"input\", 43);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(28, \"nz-form-control\", 44);\n i0.ɵɵtemplate(29, _LoginComponent_ng_container_7_div_29_Template, 2, 0, \"div\", 45)(30, _LoginComponent_ng_container_7_div_30_Template, 2, 1, \"div\", 46);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(31, \"div\", 33)(32, \"button\", 47);\n i0.ɵɵtext(33, \"\\u91CD\\u7F6E\\u5BC6\\u7801\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(34, \"div\", 35)(35, \"h6\", 36);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_7_Template_h6_click_35_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.backLogin());\n });\n i0.ɵɵtext(36, \"\\u8FD4\\u56DE\\u767B\\u5F55\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const suffixTemplate_r9 = i0.ɵɵreference(14);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.forgetForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.userErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.passwordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r9);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.forgetphoneCodesErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r9);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.phoneCodesErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 8);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isCountDown);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isCountDown);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSize\", \"large\")(\"disabled\", !ctx_r1.forgetForm.valid);\n }\n}\nfunction _LoginComponent_ng_container_9_ng_template_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r11 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_9_ng_template_13_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r11);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r10 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_ng_container_9_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.submitFormUserPassword(ctx_r1.validateUserForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u5E10 \\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 21);\n i0.ɵɵelement(6, \"input\", 50);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\")(8, \"nz-form-label\", 20);\n i0.ɵɵtext(9, \"\\u5BC6 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 21)(11, \"nz-input-group\", 23);\n i0.ɵɵelement(12, \"input\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, _LoginComponent_ng_container_9_ng_template_13_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"nz-form-item\", 25)(16, \"nz-form-label\", 26);\n i0.ɵɵtext(17, \"\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"nz-form-control\", 27);\n i0.ɵɵelement(19, \"input\", 28);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(20, \"nz-form-control\", 29)(21, \"div\", 30);\n i0.ɵɵtext(22);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(23, \"nz-form-control\", 31)(24, \"div\", 32);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_9_Template_div_click_24_listener() {\n i0.ɵɵrestoreView(_r10);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.creatCode());\n });\n i0.ɵɵtext(25, \" \\u6362\\u4E00\\u4E2A \");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(26, \"div\", 33)(27, \"button\", 34);\n i0.ɵɵtext(28, \"\\u767B\\u5F55\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const suffixTemplate_r12 = i0.ɵɵreference(14);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.validateUserForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.userErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.passwordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r12);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.codeErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.code);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSize\", \"large\")(\"disabled\", !ctx_r1.validateUserForm.valid);\n }\n}\nfunction _LoginComponent_ng_container_10_ng_template_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r14 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_10_ng_template_13_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r14);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_10_ng_template_21_Template(rf, ctx) {\n if (rf & 1) {\n const _r15 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_10_ng_template_21_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r15);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible = !ctx_r1.passwordVisible);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_ng_container_10_div_29_Template(rf, ctx) {\n if (rf & 1) {\n const _r16 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 48);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_10_div_29_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r16);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.getCode2());\n });\n i0.ɵɵtext(1, \" \\u83B7\\u53D6\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n }\n}\nfunction _LoginComponent_ng_container_10_div_30_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 49);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.countDown, \"/\\u79D2 \");\n }\n}\nfunction _LoginComponent_ng_container_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r13 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_ng_container_10_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.forgetFormFun(ctx_r1.forgetForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u767B\\u5F55\\u8D26\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 21);\n i0.ɵɵelement(6, \"input\", 38);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\")(8, \"nz-form-label\", 20);\n i0.ɵɵtext(9, \"\\u65B0 \\u5BC6 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 21)(11, \"nz-input-group\", 23);\n i0.ɵɵelement(12, \"input\", 39);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, _LoginComponent_ng_container_10_ng_template_13_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"nz-form-item\")(16, \"nz-form-label\", 20);\n i0.ɵɵtext(17, \"\\u786E\\u8BA4\\u5BC6\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(18, \"nz-form-control\", 21)(19, \"nz-input-group\", 23);\n i0.ɵɵelement(20, \"input\", 40);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(21, _LoginComponent_ng_container_10_ng_template_21_Template, 1, 1, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(23, \"nz-form-item\", 41)(24, \"nz-form-label\", 20);\n i0.ɵɵtext(25, \"\\u9A8C \\u8BC1 \\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(26, \"nz-form-control\", 42);\n i0.ɵɵelement(27, \"input\", 43);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(28, \"nz-form-control\", 44);\n i0.ɵɵtemplate(29, _LoginComponent_ng_container_10_div_29_Template, 2, 0, \"div\", 45)(30, _LoginComponent_ng_container_10_div_30_Template, 2, 1, \"div\", 46);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(31, \"div\", 33)(32, \"button\", 47);\n i0.ɵɵtext(33, \"\\u91CD\\u7F6E\\u5BC6\\u7801\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(34, \"div\", 35)(35, \"h6\", 36);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_10_Template_h6_click_35_listener() {\n i0.ɵɵrestoreView(_r13);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.backLogin());\n });\n i0.ɵɵtext(36, \"\\u8FD4\\u56DE\\u767B\\u5F55\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const suffixTemplate_r17 = i0.ɵɵreference(14);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.forgetForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.userErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.passwordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r17);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.forgetphoneCodesErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate_r17);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.phoneCodesErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 8);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isCountDown);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isCountDown);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSize\", \"large\")(\"disabled\", !ctx_r1.forgetForm.valid);\n }\n}\nfunction _LoginComponent_ng_container_12_div_25_Template(rf, ctx) {\n if (rf & 1) {\n const _r19 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 32);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_12_div_25_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r19);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.sendSMSCode());\n });\n i0.ɵɵtext(1, \" \\u83B7\\u53D6\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n }\n}\nfunction _LoginComponent_ng_container_12_div_26_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 54);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.smsTimeCount, \" \");\n }\n}\nfunction _LoginComponent_ng_container_12_Template(rf, ctx) {\n if (rf & 1) {\n const _r18 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_ng_container_12_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r18);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.submitFormMobileSMS(ctx_r1.validateSMSForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u624B \\u673A \\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 21);\n i0.ɵɵelement(6, \"input\", 22);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\", 25)(8, \"nz-form-label\", 26);\n i0.ɵɵtext(9, \"\\u9A8C\\u8BC1\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 27);\n i0.ɵɵelement(11, \"input\", 28);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"nz-form-control\", 29)(13, \"div\", 30);\n i0.ɵɵtext(14);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(15, \"nz-form-control\", 31)(16, \"div\", 32);\n i0.ɵɵlistener(\"click\", function _LoginComponent_ng_container_12_Template_div_click_16_listener() {\n i0.ɵɵrestoreView(_r18);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.creatCode());\n });\n i0.ɵɵtext(17, \" \\u6362\\u4E00\\u4E2A \");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(18, \"nz-form-item\")(19, \"nz-form-label\", 20);\n i0.ɵɵtext(20, \"\\u77ED\\u4FE1\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(21, \"nz-form-control\", 21)(22, \"nz-input-group\");\n i0.ɵɵelement(23, \"input\", 51);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(24, \"nz-form-control\", 31);\n i0.ɵɵtemplate(25, _LoginComponent_ng_container_12_div_25_Template, 2, 0, \"div\", 52)(26, _LoginComponent_ng_container_12_div_26_Template, 2, 1, \"div\", 53);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(27, \"div\", 33)(28, \"button\", 34);\n i0.ɵɵtext(29, \"\\u767B\\u5F55\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.validateSMSForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.userErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 14);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.codeErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx_r1.code);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 5);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.smsCodeErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 10);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"type\", \"text\")(\"disabled\", !ctx_r1.isSended || !ctx_r1.codeVerified);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSpan\", 4);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isSending);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isSending);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSize\", \"large\")(\"disabled\", !ctx_r1.validateSMSForm.valid);\n }\n}\nfunction _LoginComponent_nz_tab_13_div_23_Template(rf, ctx) {\n if (rf & 1) {\n const _r21 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 48);\n i0.ɵɵlistener(\"click\", function _LoginComponent_nz_tab_13_div_23_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r21);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.getCode());\n });\n i0.ɵɵtext(1, \" \\u83B7\\u9A8C\\u8BC1\\u7801 \");\n i0.ɵɵelementEnd();\n }\n}\nfunction _LoginComponent_nz_tab_13_div_24_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 49);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.countDown, \"/\\u79D2 \");\n }\n}\nfunction _LoginComponent_nz_tab_13_ng_template_31_Template(rf, ctx) {\n if (rf & 1) {\n const _r22 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_nz_tab_13_ng_template_31_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r22);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible2 = !ctx_r1.passwordVisible2);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible2 ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_nz_tab_13_ng_template_39_Template(rf, ctx) {\n if (rf & 1) {\n const _r23 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"i\", 37);\n i0.ɵɵlistener(\"click\", function _LoginComponent_nz_tab_13_ng_template_39_Template_i_click_0_listener() {\n i0.ɵɵrestoreView(_r23);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.passwordVisible3 = !ctx_r1.passwordVisible3);\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"nzType\", ctx_r1.passwordVisible3 ? \"eye-invisible\" : \"eye\");\n }\n}\nfunction _LoginComponent_nz_tab_13_Template(rf, ctx) {\n if (rf & 1) {\n const _r20 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"nz-tab\", 55)(1, \"form\", 19);\n i0.ɵɵlistener(\"ngSubmit\", function _LoginComponent_nz_tab_13_Template_form_ngSubmit_1_listener() {\n i0.ɵɵrestoreView(_r20);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.registSubmitForm(ctx_r1.registForm.value));\n });\n i0.ɵɵelementStart(2, \"nz-form-item\")(3, \"nz-form-label\", 20);\n i0.ɵɵtext(4, \"\\u5F00\\u901A\\u8BC1\\u4EF6\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"nz-form-control\", 56);\n i0.ɵɵelement(6, \"input\", 57);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(7, \"nz-form-item\")(8, \"nz-form-label\", 20);\n i0.ɵɵtext(9, \"\\u5F00\\u901A\\u59D3\\u540D\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"nz-form-control\", 58);\n i0.ɵɵelement(11, \"input\", 59);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(12, \"nz-form-item\")(13, \"nz-form-label\", 20);\n i0.ɵɵtext(14, \"\\u7ED1\\u5B9A\\u624B\\u673A\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(15, \"nz-form-control\", 58)(16, \"input\", 60);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _LoginComponent_nz_tab_13_Template_input_ngModelChange_16_listener($event) {\n i0.ɵɵrestoreView(_r20);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.registPhone, $event) || (ctx_r1.registPhone = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(17, \"nz-form-item\", 61)(18, \"nz-form-label\", 20);\n i0.ɵɵtext(19, \"\\u624B\\u673A\\u9A8C\\u8BC1\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(20, \"nz-form-control\", 62);\n i0.ɵɵelement(21, \"input\", 63);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(22, \"nz-form-control\", 64);\n i0.ɵɵtemplate(23, _LoginComponent_nz_tab_13_div_23_Template, 2, 0, \"div\", 65)(24, _LoginComponent_nz_tab_13_div_24_Template, 2, 1, \"div\", 46);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(25, \"nz-form-item\")(26, \"nz-form-label\", 20);\n i0.ɵɵtext(27, \"\\u5F00\\u901A\\u5BC6\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(28, \"nz-form-control\", 58)(29, \"nz-input-group\", 23);\n i0.ɵɵelement(30, \"input\", 66);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(31, _LoginComponent_nz_tab_13_ng_template_31_Template, 1, 1, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(33, \"nz-form-item\")(34, \"nz-form-label\", 20);\n i0.ɵɵtext(35, \"\\u786E\\u8BA4\\u5BC6\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(36, \"nz-form-control\", 58)(37, \"nz-input-group\", 23);\n i0.ɵɵelement(38, \"input\", 67);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(39, _LoginComponent_nz_tab_13_ng_template_39_Template, 1, 1, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(41, \"div\", 33)(42, \"button\", 68);\n i0.ɵɵtext(43, \"\\u7533\\u8BF7\\u5F00\\u901A\");\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n const suffixTemplate2_r24 = i0.ɵɵreference(32);\n const suffixTemplate3_r25 = i0.ɵɵreference(40);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"formGroup\", ctx_r1.registForm);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.registIdcardErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 12);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.registNameErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 12);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.phoneErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 12);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.registPhone);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.phoneCodesErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 6);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx_r1.isCountDown);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.isCountDown);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.regpasswordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 12);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate2_r24);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible2 ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"nzSpan\", 7);\n i0.ɵɵadvance(2);\n i0.ɵɵpropertyInterpolate(\"nzErrorTip\", ctx_r1.confirmPasswordErrorTip);\n i0.ɵɵproperty(\"nzSpan\", 12);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"nzSuffix\", suffixTemplate3_r25);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx_r1.passwordVisible3 ? \"text\" : \"password\");\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"disabled\", !ctx_r1.registForm.valid);\n }\n}\nfunction _LoginComponent_div_20_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 69)(1, \"nz-spin\", 70);\n i0.ɵɵelement(2, \"nz-alert\", 71);\n i0.ɵɵelementEnd()();\n }\n}\nfunction _LoginComponent_ng_container_22_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"p\");\n i0.ɵɵtext(2, \"\\u624B\\u673A\\u53F7\\u9519\\u8BEF, \\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u6838\\u5BF9\\u4FE1\\u606F\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n}\nconst _c21 = [\"canvasDom\"];\nconst _c22 = [\"smsCodeInput\"];\nconst _c23 = () => ({\n standalone: true\n});\nfunction _ModalUserLoginComponent_div_8_button_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 25);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_div_8_button_2_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setActiveButton(\"\\u8D26\\u53F7\\u5BC6\\u7801\"));\n });\n i0.ɵɵtext(1, \" \\u8D26\\u53F7\\u5BC6\\u7801 \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u8D26\\u53F7\\u5BC6\\u7801\");\n }\n}\nfunction _ModalUserLoginComponent_div_8_button_3_Template(rf, ctx) {\n if (rf & 1) {\n const _r3 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 25);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_div_8_button_3_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r3);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setActiveButton(\"\\u77ED\\u4FE1\\u9A8C\\u8BC1\"));\n });\n i0.ɵɵtext(1, \" \\u77ED\\u4FE1\\u9A8C\\u8BC1 \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u77ED\\u4FE1\\u9A8C\\u8BC1\");\n }\n}\nfunction _ModalUserLoginComponent_div_8_button_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 25);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_div_8_button_4_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r1 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r1.setActiveButton(\"\\u5FAE\\u4FE1\\u626B\\u7801\"));\n });\n i0.ɵɵtext(1, \" \\u5FAE\\u4FE1\\u626B\\u7801 \");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u5FAE\\u4FE1\\u626B\\u7801\");\n }\n}\nfunction _ModalUserLoginComponent_div_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 22)(1, \"div\", 23);\n i0.ɵɵtemplate(2, _ModalUserLoginComponent_div_8_button_2_Template, 2, 2, \"button\", 24)(3, _ModalUserLoginComponent_div_8_button_3_Template, 2, 2, \"button\", 24)(4, _ModalUserLoginComponent_div_8_button_4_Template, 2, 2, \"button\", 24);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.authServ == null ? null : ctx_r1.authServ.loginOptions == null ? null : ctx_r1.authServ.loginOptions.userpwd);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.authServ == null ? null : ctx_r1.authServ.loginOptions == null ? null : ctx_r1.authServ.loginOptions.mobilecode);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.authServ == null ? null : ctx_r1.authServ.loginOptions == null ? null : ctx_r1.authServ.loginOptions.wechat);\n }\n}\nfunction _ModalUserLoginComponent_form_9_div_5_Template(rf, ctx) {\n if (rf & 1) {\n const _r6 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 33, 1)(2, \"input\", 34);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_9_div_5_Template_input_ngModelChange_2_listener($event) {\n i0.ɵɵrestoreView(_r6);\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵtwoWayBindingSet(ctx_r1.localCodeNum, $event) || (ctx_r1.localCodeNum = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.localCodeNum);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(2, _c23));\n }\n}\nfunction _ModalUserLoginComponent_form_9_Template(rf, ctx) {\n if (rf & 1) {\n const _r5 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"form\", 26)(1, \"div\", 14)(2, \"div\", 27);\n i0.ɵɵtext(3, \"+86\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(4, \"input\", 28);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_9_Template_input_ngModelChange_4_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.loginInfo.mobile, $event) || (ctx_r1.loginInfo.mobile = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(5, _ModalUserLoginComponent_form_9_div_5_Template, 3, 3, \"div\", 29);\n i0.ɵɵelementStart(6, \"div\", 14)(7, \"input\", 30, 0);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_9_Template_input_ngModelChange_7_listener($event) {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.loginInfo.code, $event) || (ctx_r1.loginInfo.code = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"change\", function _ModalUserLoginComponent_form_9_Template_input_change_7_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.smsAutoLogin());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"button\", 31);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_9_Template_button_click_9_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.startCountdown());\n });\n i0.ɵɵtext(10);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"div\", 32)(12, \"span\");\n i0.ɵɵtext(13, \"\\u672A\\u6CE8\\u518C\\u7684\\u624B\\u673A\\u53F7\\uFF0C\\u5C06\\u81EA\\u52A8\\u521B\\u5EFA\\u5E10\\u53F7\\u5E76\\u767B\\u5F55\\u3002\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(14, \"div\", 18)(15, \"button\", 19);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_9_Template_button_click_15_listener() {\n i0.ɵɵrestoreView(_r5);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.login());\n });\n i0.ɵɵtext(16, \" \\u767B\\u5F55 \");\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u77ED\\u4FE1\\u9A8C\\u8BC1\");\n i0.ɵɵadvance(4);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.loginInfo.mobile);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(12, _c23));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.authServ == null ? null : ctx_r1.authServ.enabledLocalCode);\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.loginInfo.code);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(13, _c23));\n i0.ɵɵadvance(2);\n i0.ɵɵclassProp(\"active\", ctx_r1.isCountingdown);\n i0.ɵɵproperty(\"value\", ctx_r1.buttonText)(\"disabled\", ctx_r1.isCountingdown);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", ctx_r1.buttonText, \" \");\n }\n}\nfunction _ModalUserLoginComponent_form_10_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"form\", 13)(1, \"div\", 14)(2, \"input\", 35);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_10_Template_input_ngModelChange_2_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.mobile, $event) || (ctx_r1.mobile = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(3, \"div\", 14)(4, \"input\", 16);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_10_Template_input_ngModelChange_4_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.password, $event) || (ctx_r1.password = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"div\", 36)(6, \"div\", 37);\n i0.ɵɵelement(7, \"input\", 38);\n i0.ɵɵtext(8, \" \\u8BB0\\u4F4F\\u5BC6\\u7801 \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(9, \"div\", 39);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_10_Template_div_click_9_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.setActiveButton(\"\\u6CE8\\u518C\\u5E10\\u53F7\"));\n });\n i0.ɵɵtext(10, \" \\u6CE8\\u518C\\u5E10\\u53F7 \");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(11, \"div\", 32)(12, \"span\")(13, \"input\", 40);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_form_10_Template_input_ngModelChange_13_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.isUserRuleChecked, $event) || (ctx_r1.isUserRuleChecked = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"span\", 41);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_10_Template_span_click_14_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.isUserRuleChecked = true);\n });\n i0.ɵɵtext(15, \"\\u540C\\u610F\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(16, \"span\", 41);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_10_Template_span_click_16_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.isUserRuleChecked = true);\n });\n i0.ɵɵtext(17, \"\\u300A\\u7528\\u6237\\u534F\\u8BAE\\u53CA\\u9690\\u79C1\\u6761\\u6B3E\\u300B\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(18, \"div\", 18)(19, \"button\", 19);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_form_10_Template_button_click_19_listener() {\n i0.ɵɵrestoreView(_r7);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.loginMobilePassword());\n });\n i0.ɵɵtext(20, \" \\u767B\\u5F55 \");\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u8D26\\u53F7\\u5BC6\\u7801\");\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.mobile);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(8, _c23));\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.password);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(9, _c23));\n i0.ɵɵadvance(9);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.isUserRuleChecked);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(10, _c23));\n }\n}\nfunction _ModalUserLoginComponent_form_21_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"form\", 42)(1, \"div\", 43);\n i0.ɵɵelement(2, \"img\", 44);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 45);\n i0.ɵɵtext(4, \"\\u4F7F\\u7528\\u5FAE\\u4FE1\\u626B\\u4E00\\u626B,\\u626B\\u7801\\u767B\\u5F55 \\\"\\u98DE\\u7801AI\\\"\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵclassProp(\"active\", ctx_r1.authServ.activeButton === \"\\u5FAE\\u4FE1\\u626B\\u7801\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"src\", ctx_r1.authServ.wechatUrl, i0.ɵɵsanitizeUrl);\n }\n}\nfunction _ModalUserLoginComponent_div_22_Template(rf, ctx) {\n if (rf & 1) {\n const _r8 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 46)(1, \"button\", 47);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_div_22_Template_button_click_1_listener() {\n i0.ɵɵrestoreView(_r8);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.goHome());\n });\n i0.ɵɵtext(2, \" \\u8FD4\\u56DE\\u9996\\u9875 \");\n i0.ɵɵelementEnd()();\n }\n}\nfunction _CaptchaComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 3)(2, \"input\", 4);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _CaptchaComponent_ng_container_0_Template_input_ngModelChange_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r1.vCode, $event) || (ctx_r1.vCode = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"keydown\", function _CaptchaComponent_ng_container_0_Template_input_keydown_2_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.enter($event));\n })(\"change\", function _CaptchaComponent_ng_container_0_Template_input_change_2_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r1 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r1.onChange());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵelement(3, \"div\", 5, 1);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r1.vCode);\n i0.ɵɵproperty(\"nzStatus\", ctx_r1.vCode.length == 4 ? \"\" : \"error\");\n }\n}\nfunction _CaptchaComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3);\n i0.ɵɵelement(1, \"div\", 5, 1);\n i0.ɵɵelementEnd();\n }\n}\nconst _c24 = a0 => ({\n \"active-radio\": a0\n});\nfunction _ProfileBindComponent_ng_container_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"ion-content\")(2, \"div\", 4);\n i0.ɵɵelement(3, \"img\", 5);\n i0.ɵɵelementStart(4, \"div\");\n i0.ɵɵtext(5, \"\\u8BF7\\u4F7F\\u7528\\u7535\\u8111\\u6D4F\\u89C8\\u5668\\u6253\\u5F00\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementContainerEnd();\n }\n}\nfunction _ProfileBindComponent_ng_template_1_div_6_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 20);\n i0.ɵɵlistener(\"click\", function _ProfileBindComponent_ng_template_1_div_6_Template_div_click_0_listener() {\n i0.ɵɵrestoreView(_r2);\n const ctx_r2 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r2.onShowModal());\n });\n i0.ɵɵelement(1, \"span\", 21);\n i0.ɵɵelementStart(2, \"div\", 22);\n i0.ɵɵtext(3, \"\\u4F01\\u4E1A\\u7BA1\\u7406\\u5458\");\n i0.ɵɵelementEnd()();\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_container_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"h2\");\n i0.ɵɵtext(2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \\u6B22\\u8FCE\\u60A8\\uFF1A\", (ctx_r2.profile == null ? null : ctx_r2.profile.get(\"name\")) || (ctx_r2.profileList[0] == null ? null : ctx_r2.profileList[0].get(\"name\")) || (ctx_r2.user == null ? null : ctx_r2.user.get(\"nickname\")) || (ctx_r2.user == null ? null : ctx_r2.user.get(\"name\")) || (ctx_r2.user == null ? null : ctx_r2.user.get(\"username\")), \"\\uFF0C\\u8BF7\\u9009\\u62E9\\u60A8\\u7684\\u4F01\\u4E1A\\u8EAB\\u4EFD\\uFF1A \");\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_template_8_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"h2\");\n i0.ɵɵtext(1, \"\\u60A8\\u8FD8\\u672A\\u7ED1\\u5B9A\\u4F01\\u4E1A\\uFF0C\\u8BF7\\u5148\\u8054\\u7CFB\\u7BA1\\u7406\\u5458\\u7ED1\\u5B9A\\uFF01\");\n i0.ɵɵelementEnd();\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_container_10_div_2_span_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 29);\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_container_10_div_2_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 25);\n i0.ɵɵlistener(\"click\", function _ProfileBindComponent_ng_template_1_ng_container_10_div_2_Template_div_click_0_listener() {\n const p_r5 = i0.ɵɵrestoreView(_r4).$implicit;\n const ctx_r2 = i0.ɵɵnextContext(3);\n return i0.ɵɵresetView(ctx_r2.selectProfile(p_r5));\n });\n i0.ɵɵelementStart(1, \"div\", 26);\n i0.ɵɵelement(2, \"span\", 27);\n i0.ɵɵtext(3);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, _ProfileBindComponent_ng_template_1_ng_container_10_div_2_span_4_Template, 1, 0, \"span\", 28);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_9_0;\n const p_r5 = ctx.$implicit;\n const ctx_r2 = i0.ɵɵnextContext(3);\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction1(4, _c24, ctx_r2.currentProfile == p_r5.id));\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate2(\" \", p_r5.get(\"name\"), \" @ \\u4F01\\u4E1A \", ((tmp_9_0 = p_r5.get(\"company\")) == null ? null : tmp_9_0.get(\"name\")) || ((tmp_9_0 = p_r5.get(\"company\")) == null ? null : tmp_9_0.get(\"title\")), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.currentProfile == p_r5.id);\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_container_10_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"div\", 23);\n i0.ɵɵtemplate(2, _ProfileBindComponent_ng_template_1_ng_container_10_div_2_Template, 5, 6, \"div\", 24);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx_r2.profileList);\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_template_18_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 30);\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_template_24_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"span\", 31);\n }\n}\nfunction _ProfileBindComponent_ng_template_1_ng_container_29_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementContainerStart(0);\n i0.ɵɵelementStart(1, \"p\");\n i0.ɵɵtext(2, \"\\u60A8\\u786E\\u8BA4\\u7ED1\\u5B9A\\u5E76\\u5207\\u6362\\u81F3\\u8BE5\\u8EAB\\u4EFD\\u5417\\uFF1F\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"p\");\n i0.ɵɵtext(4);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(5, \"p\");\n i0.ɵɵtext(6);\n i0.ɵɵelementEnd();\n i0.ɵɵelementContainerEnd();\n }\n if (rf & 2) {\n let tmp_7_0;\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate1(\"\\u59D3\\u540D\\uFF1A\", ctx_r2.profileSearched.get(\"name\"), \"\");\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \\u5E10\\u5957\\uFF1A\", (ctx_r2.profileSearched == null ? null : (tmp_7_0 = ctx_r2.profileSearched.get(\"company\")) == null ? null : tmp_7_0.get(\"name\")) || (ctx_r2.profileSearched == null ? null : (tmp_7_0 = ctx_r2.profileSearched.get(\"company\")) == null ? null : tmp_7_0.get(\"title\")), \" \");\n }\n}\nfunction _ProfileBindComponent_ng_template_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 6)(1, \"div\", 7);\n i0.ɵɵtext(2, \"\\u4F01\\u4E1A\\u9879\\u76EE\\u7BA1\\u7406\\u7CFB\\u7EDF\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(3, \"div\", 8);\n i0.ɵɵtext(4);\n i0.ɵɵpipe(5, \"date\");\n i0.ɵɵtemplate(6, _ProfileBindComponent_ng_template_1_div_6_Template, 4, 0, \"div\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, _ProfileBindComponent_ng_template_1_ng_container_7_Template, 3, 1, \"ng-container\", 3)(8, _ProfileBindComponent_ng_template_1_ng_template_8_Template, 2, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor)(10, _ProfileBindComponent_ng_template_1_ng_container_10_Template, 3, 1, \"ng-container\", 10);\n i0.ɵɵelementStart(11, \"div\", 11);\n i0.ɵɵelement(12, \"span\", 12);\n i0.ɵɵtext(13, \" \\u82E5\\u65E0\\u5E10\\u5957\\u4FE1\\u606F\\uFF0C\\u8BF7\\u8F93\\u5165\\u4F01\\u4E1A\\u8EAB\\u4EFD\\u9A8C\\u8BC1\\u7ED1\\u5B9A \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"div\")(15, \"div\", 13)(16, \"nz-input-group\", 14)(17, \"input\", 15);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ProfileBindComponent_ng_template_1_Template_input_ngModelChange_17_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r2.pdata.name, $event) || (ctx_r2.pdata.name = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(18, _ProfileBindComponent_ng_template_1_ng_template_18_Template, 1, 0, \"ng-template\", null, 1, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelement(20, \"br\")(21, \"br\");\n i0.ɵɵelementStart(22, \"nz-input-group\", 14)(23, \"input\", 16);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ProfileBindComponent_ng_template_1_Template_input_ngModelChange_23_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r2.pdata.mobile, $event) || (ctx_r2.pdata.mobile = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(24, _ProfileBindComponent_ng_template_1_ng_template_24_Template, 1, 0, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(26, \"button\", 17);\n i0.ɵɵlistener(\"click\", function _ProfileBindComponent_ng_template_1_Template_button_click_26_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.searchProfile());\n });\n i0.ɵɵtext(27, \" \\u67E5\\u8BE2\\u8EAB\\u4EFD \");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(28, \"nz-modal\", 18);\n i0.ɵɵtwoWayListener(\"nzVisibleChange\", function _ProfileBindComponent_ng_template_1_Template_nz_modal_nzVisibleChange_28_listener($event) {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵtwoWayBindingSet(ctx_r2.isVisible, $event) || (ctx_r2.isVisible = $event);\n return i0.ɵɵresetView($event);\n });\n i0.ɵɵlistener(\"nzOnCancel\", function _ProfileBindComponent_ng_template_1_Template_nz_modal_nzOnCancel_28_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.isVisible = false);\n })(\"nzOnOk\", function _ProfileBindComponent_ng_template_1_Template_nz_modal_nzOnOk_28_listener() {\n i0.ɵɵrestoreView(_r1);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2.bindProfile());\n });\n i0.ɵɵtemplate(29, _ProfileBindComponent_ng_template_1_ng_container_29_Template, 7, 2, \"ng-container\", 19);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const elseTemplate_r6 = i0.ɵɵreference(9);\n const prefixTemplateUser_r7 = i0.ɵɵreference(19);\n const prefixTemplateMobile_r8 = i0.ɵɵreference(25);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance(4);\n i0.ɵɵtextInterpolate1(\" \", i0.ɵɵpipeBind2(5, 11, ctx_r2.now, \"yyyy\\u5E74MM\\u6708dd\\u65E5\"), \" \");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.user == null ? null : ctx_r2.user.get(\"type\")) == \"admin\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.profileList == null ? null : ctx_r2.profileList.length) > 0)(\"ngIfElse\", elseTemplate_r6);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", (ctx_r2.profileList == null ? null : ctx_r2.profileList.length) > 0);\n i0.ɵɵadvance(6);\n i0.ɵɵproperty(\"nzPrefix\", prefixTemplateUser_r7);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r2.pdata.name);\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"nzPrefix\", prefixTemplateMobile_r8);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx_r2.pdata.mobile);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"nzSize\", \"large\");\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"nzVisible\", ctx_r2.isVisible);\n }\n}\n/**\n * @copyright © 未来飞马 © 未来全栈 www.fmode.cn \n * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.\n * 保留所有权利 All Rights Reserved.\n * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/fesm2022/fmode-ng.mjs\n */\nimport * as i0 from \"@angular/core\";\nimport { Injectable, Pipe, Component, Input, ViewChild, NgModule, EventEmitter, Output, HostListener } from \"@angular/core\";\nimport * as i1$1 from \"@angular/router\";\nimport { RouterModule } from \"@angular/router\";\nimport { finalize, Subject, Observable, bufferTime, concatMap, delay, combineLatest } from \"rxjs\";\nimport * as Parse from \"parse\";\nimport Parse__default from \"parse\";\nimport { PromptTemplate } from \"@langchain/core/prompts\";\nimport { SpeechSynthesizer } from \"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/SpeechSynthesizer\";\nimport { SpeechConfig } from \"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/SpeechConfig\";\nimport { ResultReason } from \"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/ResultReason\";\nimport { AudioConfig } from \"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Audio/AudioConfig\";\nimport { PushAudioOutputStreamCallback } from \"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Audio/PushAudioOutputStreamCallback\";\nimport { bufferWhen, takeUntil, filter } from \"rxjs/operators\";\nimport * as i1 from \"@angular/common/http\";\nimport { HttpClientModule } from \"@angular/common/http\";\nimport * as i2 from \"@ionic/angular\";\nimport { IonicModule, ModalController, IonModal as IonModal$1 } from \"@ionic/angular\";\nimport * as i2$2 from \"@angular/common\";\nimport { DatePipe, CommonModule } from \"@angular/common\";\nimport { Camera, CameraSource, CameraResultType } from \"@capacitor/camera\";\nimport { Capacitor } from \"@capacitor/core\";\nimport { Filesystem } from \"@capacitor/filesystem\";\nimport { FilesystemWeb } from \"@capacitor/filesystem/dist/esm/web.js\";\nimport * as qiniu from \"qiniu-js\";\nimport * as i2$1 from \"@awesome-cordova-plugins/diagnostic/ngx\";\nimport { Diagnostic } from \"@awesome-cordova-plugins/diagnostic/ngx\";\nimport CryptoJS from \"crypto-js\";\nimport { MediaCapture } from \"@awesome-cordova-plugins/media-capture\";\nimport SparkMD5 from \"spark-md5\";\nimport { mathjax } from \"mathjax-full/js/mathjax\";\nimport { TeX } from \"mathjax-full/js/input/tex\";\nimport { SVG } from \"mathjax-full/js/output/svg\";\nimport { CHTML } from \"mathjax-full/js/output/chtml\";\nimport { AllPackages } from \"mathjax-full/js/input/tex/AllPackages\";\nimport { liteAdaptor } from \"mathjax-full/js/adaptors/liteAdaptor\";\nimport { RegisterHTMLHandler } from \"mathjax-full/js/handlers/html\";\nimport hljs from \"highlight.js\";\nimport MarkdownIt from \"markdown-it\";\nimport $ from \"jquery\";\nimport abbr from \"markdown-it-abbr\";\nimport footnote from \"markdown-it-footnote\";\nimport deflist from \"markdown-it-deflist\";\nimport mark from \"markdown-it-mark\";\nimport ins from \"markdown-it-ins\";\nimport sub from \"markdown-it-sub\";\nimport sup from \"markdown-it-sup\";\nimport ruby from \"markdown-it-ruby\";\nimport plantumlEncoder from \"plantuml-encoder\";\nimport * as i1$2 from \"@angular/platform-browser\";\nimport { Clipboard } from \"@capacitor/clipboard\";\nimport Recorder from \"recorder-core\";\nimport \"recorder-core/src/engine/pcm\";\nimport \"recorder-core/src/engine/wav\";\nimport \"recorder-core/src/extensions/waveview\";\nimport * as i7 from \"@angular/forms\";\nimport { FormsModule, ReactiveFormsModule, Validators } from \"@angular/forms\";\nimport * as BABYLON from \"@babylonjs/core\";\nimport \"@babylonjs/loaders\";\nimport * as i2$3 from \"@ionic/angular/standalone\";\nimport { IonIcon, IonToolbar, IonButtons, IonButton, IonList, IonLabel, IonNote, IonAvatar, IonItem, IonText, IonModal, IonTitle, IonHeader, IonCard, ModalController as ModalController$1, IonSegment, IonSpinner, IonTextarea, IonPopover, IonContent, IonInput, IonCheckbox } from \"@ionic/angular/standalone\";\nimport * as i3 from \"ng-zorro-antd/avatar\";\nimport { NzAvatarModule } from \"ng-zorro-antd/avatar\";\nimport * as i5 from \"ng-zorro-antd/icon\";\nimport { NzIconModule } from \"ng-zorro-antd/icon\";\nimport { NzSanitizerPipe } from \"ng-zorro-antd/pipes\";\nimport * as i4 from \"ng-zorro-antd/message\";\nimport { NzMessageModule } from \"ng-zorro-antd/message\";\nimport * as i3$1 from \"ng-zorro-antd/modal\";\nimport { NzModalModule } from \"ng-zorro-antd/modal\";\nimport * as AMapLoader from \"@amap/amap-jsapi-loader\";\nimport ObsClient from \"esdk-obs-browserjs\";\nimport * as i8 from \"ng-zorro-antd/input\";\nimport { NzInputModule } from \"ng-zorro-antd/input\";\nimport * as i9 from \"ng-zorro-antd/button\";\nimport { NzButtonModule } from \"ng-zorro-antd/button\";\nimport { NzRadioModule } from \"ng-zorro-antd/radio\";\nimport * as i13 from \"ng-zorro-antd/spin\";\nimport { NzSpinModule } from \"ng-zorro-antd/spin\";\nimport * as i14 from \"ng-zorro-antd/tabs\";\nimport { NzTabsModule } from \"ng-zorro-antd/tabs\";\nimport * as i16 from \"ng-zorro-antd/form\";\nimport { NzFormModule } from \"ng-zorro-antd/form\";\nimport * as i10 from \"ng-zorro-antd/core/transition-patch\";\nimport * as i11 from \"ng-zorro-antd/core/wave\";\nimport * as i15 from \"ng-zorro-antd/grid\";\nclass AgentPrompt {\n constructor() {}\n jsonCompletion(e, t) {\n let n,\n o = new FmodeChatCompletion([{\n role: \"user\",\n content: e\n }]);\n return o.model = t || \"fmode-4.5-128k\", o.sendCompletion({\n isDirect: !0\n }).pipe(finalize(() => {\n let e;\n console.log(n), n.json = this.extractAndParseJson(e), n.complete = !0;\n }));\n }\n extractAndParseJson(e) {\n let t = e.indexOf(\"{\");\n if (-1 === t) return {};\n let n = 0,\n o = t;\n for (let i = t; i < e.length; i++) if (\"{\" === e[i] ? n++ : \"}\" === e[i] && n--, 0 === n) {\n o = i;\n break;\n }\n if (0 !== n) return {};\n const i = e.slice(t, o + 1);\n try {\n return JSON.parse(i);\n } catch (e) {\n return console.error(\"Failed to parse JSON:\", e), {};\n }\n }\n extractMarkdownToMultiArray(e) {\n let t = e.split(\"\\n\"),\n n = [],\n o = n,\n i = [n];\n for (let e of t) {\n if (!e.trim()) continue;\n if (e.startsWith(\"#\")) {\n let t = e.replace(/^#+\\s*/, \"\");\n o.push([t]);\n continue;\n }\n let t = e.search(/\\S/) / 2,\n n = e.trim().replace(/^-+\\s*/, \"\");\n for (; t < i.length - 1;) i.pop();\n for (; t > i.length - 1;) {\n let e = [];\n i[i.length - 1].push(e), i.push(e);\n }\n o = i[i.length - 1], o.push(n);\n }\n return n;\n }\n getFormatTpl(e, t) {\n var _this = this;\n return _asyncToGenerator(function* () {\n let n = yield _this.getPromptTpl(e);\n return yield n.format(t);\n })();\n }\n getPromptTpl(e) {\n return _asyncToGenerator(function* () {\n let t = new Parse__default.Query(\"PromptTemplate\");\n t.equalTo(\"code\", e);\n let n = yield t.first();\n return PromptTemplate.fromTemplate(n === null || n === void 0 ? void 0 : n.get(\"template\"), {\n templateFormat: \"mustache\"\n });\n })();\n }\n getTokens(e) {\n var _e;\n return e = e || \"\", 2 * ((_e = e) === null || _e === void 0 ? void 0 : _e.length);\n }\n}\nclass AudioPlayer {\n constructor() {\n this.audio = new Audio();\n }\n static getInstance() {\n return AudioPlayer.instance || (AudioPlayer.instance = new AudioPlayer()), AudioPlayer.instance;\n }\n setAudioEvent(e, t) {\n this.audio[e] = t;\n }\n get duration() {\n return this.audio.duration;\n }\n get src() {\n return this.audio.src;\n }\n stop() {\n this.audio.pause();\n }\n play(e) {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n return new Promise((t, n) => {\n _this2.audio.src !== e ? (_this2.audio.src = e, _this2.audio.play().then(() => {\n t();\n }).catch(() => {\n n();\n })) : _this2.audio.paused ? _this2.audio.play().then(() => {\n t();\n }).catch(() => {\n n();\n }) : _this2.audio.pause();\n });\n })();\n }\n}\n_AudioPlayer = AudioPlayer;\n_AudioPlayer.instance = null;\nclass FmPushAudioOutputStreamCallback extends PushAudioOutputStreamCallback {\n constructor() {\n super(), this.audioDataSubject = new Subject(), this.playedSubject = new Subject(), this.isPlaying = !1, this.isClosed = !1, this.audioBufferQueue = [], this.maxBufferSize = 10, this.writeCount = 0, this.audioContext = new (window.AudioContext || window.webkitAudioContext)(), this.audioDataSubject.pipe(bufferWhen(() => this.playedSubject), takeUntil(this.audioDataSubject.pipe(filter(() => this.isClosed)))).subscribe(e => {\n this.playAudio(e);\n });\n }\n write(e) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n _this3.writeCount++, 10 == _this3.writeCount && _this3.playedSubject.next(!0), _this3.audioDataSubject.next(e);\n })();\n }\n playAudio(e) {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n _this4.isPlaying = !0;\n const t = _this4.mergeArrayBuffers(e);\n let n;\n try {\n n = yield _this4.audioContext.decodeAudioData(t);\n } catch (e) {}\n if (n) {\n const e = _this4.audioContext.createBufferSource();\n e.buffer = n, e.connect(_this4.audioContext.destination), e.start(), yield new Promise(t => {\n e.onended = t;\n }), _this4.playedSubject.next(!0);\n }\n _this4.isPlaying = !1;\n })();\n }\n mergeArrayBuffers(e) {\n const t = e.reduce((e, t) => e + t.byteLength, 0),\n n = new Uint8Array(t);\n let o = 0;\n for (const t of e) {\n const e = new Uint8Array(t);\n n.set(e, o), o += e.length;\n }\n return n.buffer;\n }\n stop() {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n _this5.isClosed = !0, _this5.audioDataSubject && _this5.audioDataSubject.unsubscribe(), _this5.playedSubject && _this5.playedSubject.unsubscribe(), _this5.audioContext && _this5.audioContext.close();\n })();\n }\n close() {\n var _this6 = this;\n return _asyncToGenerator(function* () {\n console.log(\"close 数据加载完成\"), _this6.isClosed = !0;\n })();\n }\n}\nclass FmodeTTS {\n stop() {\n var _this$audioPlayer, _this$audioStream;\n this.audioPlayer && (_this$audioPlayer = this.audioPlayer) !== null && _this$audioPlayer !== void 0 && _this$audioPlayer.stop(), this.audioStream && ((_this$audioStream = this.audioStream) === null || _this$audioStream === void 0 ? void 0 : _this$audioStream.stop());\n }\n constructor(e, t) {\n this.isPlaying = !1, this.uploadServ = t, this.subscriptionKey = e === null || e === void 0 ? void 0 : e.subscriptionKey, this.authorizationToken = e === null || e === void 0 ? void 0 : e.token, this.region = e === null || e === void 0 ? void 0 : e.region, this.subscriptionKey && (this.speechConfig = SpeechConfig.fromSubscription(this.subscriptionKey, this.region)), this.authorizationToken && (this.speechConfig = SpeechConfig.fromAuthorizationToken(this.authorizationToken, this.region)), this.audioStream = new FmPushAudioOutputStreamCallback(), this.audioConfig = AudioConfig.fromStreamOutput(this.audioStream), this.synthesizer = new SpeechSynthesizer(this.speechConfig, this.audioConfig), this.audioPlayer = AudioPlayer.getInstance();\n }\n extractTextFromXML(e) {\n const t = />([^<]+)</g;\n let n,\n o = [];\n for (; null !== (n = t.exec(e));) {\n const e = n[1].trim();\n e && o.push(e);\n }\n return o.join(\" \");\n }\n extractSSMLContent(e) {\n var t = e.match(/<speak[^]*?<\\/speak>/);\n return t ? t[0] : e;\n }\n speakAsync(e, t, n) {\n var _this7 = this;\n return _asyncToGenerator(function* () {\n var _t, _t4, _t5;\n if (!t) {\n var _Parse__default$User$;\n let n = Parse__default.Object.extend(\"ChatVoice\");\n (t = new n()).set(\"ssml\", e), t.set(\"content\", _this7.extractTextFromXML(e));\n let o = localStorage.getItem(\"company\");\n o && t.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: o\n }), ((_Parse__default$User$ = Parse__default.User.current()) === null || _Parse__default$User$ === void 0 ? void 0 : _Parse__default$User$.id) && t.set(\"user\", Parse__default.User.current().toPointer());\n }\n if (!((_t = t) !== null && _t !== void 0 && _t.get(\"voiceFile\"))) {\n var _t2, _t3;\n let n = [];\n (_t2 = t) !== null && _t2 !== void 0 && _t2.get(\"content\") && n.push({\n content: (_t3 = t) === null || _t3 === void 0 ? void 0 : _t3.get(\"content\")\n }), e && n.push({\n ssml: e\n });\n let o = Parse__default.Query.fromJSON(\"ChatVoice\", {\n include: \"voiceFile\",\n where: {\n $or: n\n }\n }),\n i = yield o.first();\n t.set(\"voiceFile\", i === null || i === void 0 ? void 0 : i.get(\"voiceFile\"));\n }\n return (_t4 = t) !== null && _t4 !== void 0 && _t4.get(\"voiceFile\") ? (_this7.playAudioData((_t5 = t) === null || _t5 === void 0 || (_t5 = _t5.get(\"voiceFile\")) === null || _t5 === void 0 ? void 0 : _t5.get(\"url\"), t, n), t) : (e = _this7.extractSSMLContent(e), _this7.isPlaying = !0, new Promise((o, i) => {\n var _e2, _this7$eventMap, _this7$eventMap2;\n const a = Date.now();\n let r = \"speakTextAsync\";\n ((_e2 = e) === null || _e2 === void 0 ? void 0 : _e2.indexOf(\"<\")) > -1 && (r = \"speakSsmlAsync\"), e = _this7.fixMarkdownChar(e), (_this7$eventMap = _this7.eventMap) !== null && _this7$eventMap !== void 0 && _this7$eventMap.onSpeakBefore && (_this7$eventMap2 = _this7.eventMap) !== null && _this7$eventMap2 !== void 0 && _this7$eventMap2.onSpeakBefore(), _this7.synthesizer[r](e, e => {\n if (console.log(e), e.reason === ResultReason.SynthesizingAudioStarted && (_this7.isPlaying = !0), e.reason === ResultReason.SynthesizingAudioCompleted) {\n var _this7$eventMap3, _this7$eventMap4;\n ((_this7$eventMap3 = _this7.eventMap) === null || _this7$eventMap3 === void 0 ? void 0 : _this7$eventMap3.onAudioCompleted) && ((_this7$eventMap4 = _this7.eventMap) === null || _this7$eventMap4 === void 0 ? void 0 : _this7$eventMap4.onAudioCompleted());\n const i = Date.now();\n let r = e === null || e === void 0 ? void 0 : e.audioData;\n t.set(\"duration\", Number(e === null || e === void 0 ? void 0 : e.audioDuration) / 1e4), _this7.playAudioData(r, t, n), console.log(`Audio synthesis finished. Duration: ${i - a} ms`), setTimeout(() => {\n _this7.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop()) && (n === null || n === void 0 ? void 0 : n.onStop());\n }, 2e3), o(t);\n } else i(`Speech synthesis failed. Reason: ${e.errorDetails}`);\n }, e => {\n i(`Error occurred during synthesis: ${e}`);\n });\n }));\n })();\n }\n onBreak(e) {}\n fixMarkdownChar(e) {\n return e.replaceAll(\"*\", \"\");\n }\n playAudioData(e, t, n) {\n var _this8 = this;\n return _asyncToGenerator(function* () {\n let o;\n if (console.log(\"audioData\", e), !(e !== null && e !== void 0 && e.indexOf && (e === null || e === void 0 ? void 0 : e.indexOf(\"http\")) >= -1)) {\n let n = new Blob([e], {\n type: \"audio/wav\"\n });\n return o = URL.createObjectURL(n), void _this8.uploadAndSaveVoice(n, t);\n }\n o = e;\n let i = _this8.audioPlayer;\n n !== null && n !== void 0 && n.onStart && n !== null && n !== void 0 && n.onStart(t), _this8.isPlaying = !0, i.setAudioEvent(\"onloadeddata\", () => {\n let e = 1e3 * i.duration;\n console.log(\"duration\", e), t !== null && t !== void 0 && t.get(\"duration\") || (t !== null && t !== void 0 && t.set(\"duration\", e), t !== null && t !== void 0 && t.save()), (n === null || n === void 0 ? void 0 : n.onLoaded) && (n === null || n === void 0 ? void 0 : n.onLoaded(i));\n }), console.log(\"event setting\"), i.setAudioEvent(\"onabort\", () => {\n _this8.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop) && (n === null || n === void 0 ? void 0 : n.onStop());\n }), i.setAudioEvent(\"onerror\", () => {\n _this8.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop) && (n === null || n === void 0 ? void 0 : n.onStop());\n }), i.setAudioEvent(\"onpause\", () => {\n _this8.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop) && (n === null || n === void 0 ? void 0 : n.onStop());\n }), i.setAudioEvent(\"onended\", () => {\n _this8.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop) && (n === null || n === void 0 ? void 0 : n.onStop());\n }), i.setAudioEvent(\"onclose\", () => {\n _this8.isPlaying = !1, (n === null || n === void 0 ? void 0 : n.onStop) && (n === null || n === void 0 ? void 0 : n.onStop());\n }), console.log(\"playAudio\", o);\n let playAudio = () => {\n i.play(o).then(() => {}).catch(() => {\n setTimeout(() => {\n console.log(\"playAudio\"), playAudio();\n }, 200);\n });\n };\n playAudio();\n })();\n }\n uploadAndSaveVoice(e, t) {\n var _this9 = this;\n return _asyncToGenerator(function* () {\n if (console.log(\"blob\", e), _this9.uploadServ) {\n var _t6, _this9$uploadServ, _t7, _t8;\n let n = ((_t6 = t) === null || _t6 === void 0 ? void 0 : _t6.id) || ((_this9$uploadServ = _this9.uploadServ) === null || _this9$uploadServ === void 0 ? void 0 : _this9$uploadServ.genMd5(((_t7 = t) === null || _t7 === void 0 ? void 0 : _t7.get(\"content\")) || ((_t8 = t) === null || _t8 === void 0 ? void 0 : _t8.get(\"ssml\")))),\n o = new Date(),\n i = n + o.getFullYear() + (o.getMonth() + 1) + o.getDate() + o.getHours() + o.getMinutes() + o.getSeconds() + \".wav\",\n a = new File([e], i, {\n type: \"audio/wav\"\n }),\n r = yield _this9.uploadServ.upload(a, e => {\n console.log(e);\n }),\n s = {\n __type: \"Pointer\",\n className: \"Attachment\",\n objectId: r === null || r === void 0 ? void 0 : r.id\n };\n return s !== null && s !== void 0 && s.objectId && (t.set(\"voiceFile\", s), t = yield t.save()), r === null || r === void 0 ? void 0 : r.url;\n }\n return null;\n })();\n }\n}\nconst API_BASE = \"https://server.fmode.cn/api/apig/aigc/gpt\",\n agentPrompt = new AgentPrompt(),\n PromptTplTalkSSMLOutputCode = \"talk-ssml-output-tpl\",\n PromptTplTalkTextSSMLCode = \"talk-text-ssml-tpl\";\nfunction getMessageContentText(e) {\n var _e$find;\n let t = \"\";\n return \"string\" == typeof e && (t = e), \"object\" == typeof e && (t = (e === null || e === void 0 || (_e$find = e.find(e => e === null || e === void 0 ? void 0 : e.text)) === null || _e$find === void 0 ? void 0 : _e$find.text) || \"\"), t;\n}\nfunction getMessageImageUrl(e) {\n var _e$find2;\n return \"object\" == typeof e ? (e === null || e === void 0 || (_e$find2 = e.find(e => e === null || e === void 0 ? void 0 : e.image_url)) === null || _e$find2 === void 0 || (_e$find2 = _e$find2.image_url) === null || _e$find2 === void 0 ? void 0 : _e$find2.url) || \"\" : null;\n}\nclass FmodeChat {\n showAvatar() {\n var _this$role, _this$avatarConfig, _this$role2, _this$role3, _this$avatarConfig2;\n this.avatarConfig = (_this$role = this.role) === null || _this$role === void 0 ? void 0 : _this$role.get(\"avatarConfig\"), this.avatarConfig && (this.isAvatarShow = !0, (_this$avatarConfig = this.avatarConfig) !== null && _this$avatarConfig !== void 0 && _this$avatarConfig.image && (this.avatarConfig.image.waiting = this.avatarConfig.image.waiting || ((_this$role2 = this.role) === null || _this$role2 === void 0 ? void 0 : _this$role2.get(\"thumb\")) || ((_this$role3 = this.role) === null || _this$role3 === void 0 ? void 0 : _this$role3.get(\"avatar\")), this.avatarMode = \"image\"), ((_this$avatarConfig2 = this.avatarConfig) === null || _this$avatarConfig2 === void 0 ? void 0 : _this$avatarConfig2.video) && (this.avatarConfig.video.waiting = this.avatarConfig.video.waiting, this.avatarMode = \"video\"));\n }\n scrollToBottom(e) {\n var _e3;\n e = e || this.scrollComp, ((_e3 = e) === null || _e3 === void 0 || (_e3 = _e3.nativeElement) === null || _e3 === void 0 ? void 0 : _e3.scrollHeight) && (e.nativeElement.scrollTop = e.nativeElement.scrollHeight);\n }\n constructor(e, t, n, o, i, a, r) {\n var _this10 = this,\n _this$role5,\n _this$role6,\n _this$voiceConfig;\n this.ChatSession = Parse__default.Object.extend(\"ChatSession\"), this.messageList = [{\n role: \"system\",\n content: \"系统提示:AI仅供参考\"\n }], this.latestAIResponse = \"\", this.userInput = \"\", this.userImage = \"\", this.isDirect = !1, this.hideShare = !1, this.hideModalSelect = !1, this.hideInputPreview = !1, this.isAvatarShow = !1, this.avatarMode = \"\", this.isPromptModalOpen = !1, this.isPromptMessageAreaShow = !0, this.promptList = [], this.focusUserInput = () => {}, this.leftButtons = [{\n title: \"灵感\",\n icon: \"color-wand-outline\",\n onClick: () => {\n this.isPromptModalOpen = !0;\n },\n show: () => {\n var _this$promptList;\n return this === null || this === void 0 || (_this$promptList = this.promptList) === null || _this$promptList === void 0 ? void 0 : _this$promptList.length;\n }\n }, {\n title: \"角色\",\n icon: \"people-outline\",\n onClick: () => {\n var _this$navCtrl;\n (_this$navCtrl = this.navCtrl) === null || _this$navCtrl === void 0 || _this$navCtrl.navigateRoot(\"/chat/pro/mask\");\n },\n show: () => !0\n }, {\n title: \"呼叫\",\n icon: \"call-outline\",\n onClick: () => {\n var _this$chatServ;\n (_this$chatServ = this.chatServ) === null || _this$chatServ === void 0 || _this$chatServ.callRole(this.role);\n },\n show: () => {\n var _this$role4;\n return this === null || this === void 0 || (_this$role4 = this.role) === null || _this$role4 === void 0 ? void 0 : _this$role4.get(\"voiceConfig\");\n }\n }], this.isVoiceInputMode = !1, this.isTexting = !1, this.isTalkMode = !1, this.SSMLRoleVoice = \"zh-CN-XiaoxiaoNeural\", this.playAnimation = e => {\n console.log(e);\n }, this.welcome = /*#__PURE__*/_asyncToGenerator(function* () {\n var _this10$messageList, _n$get, _n$get2, _n$get3, _this10$role$get, _this10$role$get2;\n let e = (_this10$messageList = _this10.messageList) === null || _this10$messageList === void 0 ? void 0 : _this10$messageList.filter(e => \"assistant\" == (e === null || e === void 0 ? void 0 : e.role));\n if (e !== null && e !== void 0 && e.length) return;\n let t = Parse__default.User.current(),\n n = yield _this10.loadSelf(\"Person\", \"userVerify\"),\n o = yield _this10.loadSelf(\"Profile\", \"user\"),\n i = (t === null || t === void 0 ? void 0 : t.get(\"nickname\")) || (o === null || o === void 0 ? void 0 : o.get(\"name\")) || (t === null || t === void 0 ? void 0 : t.get(\"realname\")) || (t === null || t === void 0 ? void 0 : t.get(\"name\")),\n a = (n === null || n === void 0 ? void 0 : n.get(\"name\")) || (n === null || n === void 0 || (_n$get = n.get(\"userVefiry\")) === null || _n$get === void 0 ? void 0 : _n$get.get(\"realname\")) || (n === null || n === void 0 || (_n$get2 = n.get(\"userVefiry\")) === null || _n$get2 === void 0 ? void 0 : _n$get2.get(\"nickname\"));\n (n === null || n === void 0 || (_n$get3 = n.get(\"userVerify\")) === null || _n$get3 === void 0 ? void 0 : _n$get3.id) == (t === null || t === void 0 ? void 0 : t.id) && (a = \"您\");\n let r = (_this10$role$get = _this10.role.get(\"voiceConfig\")) === null || _this10$role$get === void 0 || (_this10$role$get = _this10$role$get.welcome) === null || _this10$role$get === void 0 ? void 0 : _this10$role$get.prompt;\n if ((_this10$role$get2 = _this10.role.get(\"voiceConfig\")) !== null && _this10$role$get2 !== void 0 && (_this10$role$get2 = _this10$role$get2.welcome) !== null && _this10$role$get2 !== void 0 && (_this10$role$get2 = _this10$role$get2.promptList) !== null && _this10$role$get2 !== void 0 && _this10$role$get2.length) {\n var _this10$role$get3;\n let e = (_this10$role$get3 = _this10.role.get(\"voiceConfig\")) === null || _this10$role$get3 === void 0 || (_this10$role$get3 = _this10$role$get3.welcome) === null || _this10$role$get3 === void 0 ? void 0 : _this10$role$get3.promptList;\n r = e[Math.floor(Math.random() * e.length)];\n }\n if (!r) return;\n let s = yield PromptTemplate.fromTemplate(r, {\n templateFormat: \"mustache\"\n }).format({\n name: i,\n userName: i,\n personName: a,\n timeOfDay: _this10.getTimeOfDay()\n }),\n l = yield _this10.getVoiceByContentText(s),\n c = {\n role: \"assistant\",\n voice: l,\n content: s,\n complete: !0\n };\n _this10.voiceMap[l === null || l === void 0 ? void 0 : l.id], _this10.playChatVoice(_this10.voiceMap[l === null || l === void 0 ? void 0 : l.id]), _this10.messageList.push(c);\n }), this.self = {}, this.voiceMap = {}, this.VoiceTTSMap = {}, this.chatServ = o, this.role = t, this.sessionId = e, this.navCtrl = i, this.ncloud = a, this.uploadServ = r, n !== null && n !== void 0 && n.id && (this.chatSession = n, this.messageList = this.chatSession.get(\"messageList\"), this.sessionId = n === null || n === void 0 ? void 0 : n.id), ((_this$role5 = this.role) === null || _this$role5 === void 0 ? void 0 : _this$role5.id) && (this.voiceConfig = (_this$role6 = this.role) === null || _this$role6 === void 0 ? void 0 : _this$role6.get(\"voiceConfig\"), ((_this$voiceConfig = this.voiceConfig) === null || _this$voiceConfig === void 0 ? void 0 : _this$voiceConfig.autoTalk) && (this.isTalkMode = !0, this.isDirect = !0));\n }\n getTimeOfDay() {\n const e = new Date().getHours();\n return e >= 5 && e < 12 ? \"早上\" : e >= 12 && e < 14 ? \"中午\" : e >= 14 && e < 18 ? \"下午\" : \"晚上\";\n }\n loadSelf(e, t) {\n var _this11 = this;\n return _asyncToGenerator(function* () {\n if (_this11.self[e]) return _this11.self[e];\n let n = Parse__default.User.current(),\n o = new Parse__default.Query(e);\n return o.include(t), o.equalTo(t, n === null || n === void 0 ? void 0 : n.id), _this11.self[e] = yield o.first(), _this11.self[e];\n })();\n }\n loadTalkSystemPrompt(e) {\n var _this12 = this;\n return _asyncToGenerator(function* () {\n var _e$get, _this12$messageList, _this12$messageList2;\n if (!_this12.isTalkMode) return;\n if (!e) return;\n \"男\" == (e === null || e === void 0 ? void 0 : e.get(\"gender\")) ? _this12.SSMLRoleVoice = \"zh-CN-YunyeNeural\" : _this12.SSMLRoleVoice = \"zh-CN-XiaoxiaoNeural\", _this12.SSMLRoleVoice = (e === null || e === void 0 || (_e$get = e.get(\"voiceConfig\")) === null || _e$get === void 0 ? void 0 : _e$get.voice) || _this12.SSMLRoleVoice;\n let t = yield agentPrompt.getFormatTpl(\"talk-ssml-output-tpl\", {\n SSMLRoleVoice: _this12.SSMLRoleVoice\n }),\n n = e.get(\"prompt\") || \"请你扮演飞码AI的人工智能专家。\";\n n += t;\n let o = {\n role: \"user\",\n content: n,\n hidden: !0\n },\n i = (_this12$messageList = _this12.messageList) === null || _this12$messageList === void 0 ? void 0 : _this12$messageList.map(e => e === null || e === void 0 ? void 0 : e.content).join();\n if (i.indexOf(n) > -1) return;\n let a = (_this12$messageList2 = _this12.messageList) === null || _this12$messageList2 === void 0 ? void 0 : _this12$messageList2.findIndex(e => \"system\" == (e === null || e === void 0 ? void 0 : e.role)),\n r = a + 1;\n _this12.messageList.splice(r, 0, o);\n })();\n }\n loadRolePrompt() {\n var _this$role7, _this$messageList, _this$messageList2;\n let e = (_this$role7 = this.role) === null || _this$role7 === void 0 ? void 0 : _this$role7.get(\"prompt\"),\n t = {\n role: \"user\",\n content: e,\n hidden: !0\n };\n if (!e) return;\n let n = (_this$messageList = this.messageList) === null || _this$messageList === void 0 ? void 0 : _this$messageList.map(e => e === null || e === void 0 ? void 0 : e.content).join();\n if (n.indexOf(e) > -1) return;\n let o = (_this$messageList2 = this.messageList) === null || _this$messageList2 === void 0 ? void 0 : _this$messageList2.findIndex(e => \"system\" == (e === null || e === void 0 ? void 0 : e.role)),\n i = o + 1;\n this.messageList.splice(i, 0, t);\n }\n sendMessage(e = \"FmodeAiTest测试问题\", t, n, o, i) {\n var _this13 = this;\n return _asyncToGenerator(function* () {\n var _this13$chatServ;\n if (_this13.scrollToBottom && _this13.scrollToBottom(), _this13.isPromptMessageAreaShow = !1, _this13.loadRolePrompt(), t) {\n let n = {\n role: \"user\",\n content: [{\n type: \"image_url\",\n image_url: {\n url: t\n }\n }, {\n type: \"text\",\n text: e\n }],\n complete: !0,\n createdAt: new Date()\n };\n i && (n.voice = {\n id: i === null || i === void 0 ? void 0 : i.id\n }), _this13.messageList.push({\n role: \"user\",\n content: [{\n type: \"image_url\",\n image_url: {\n url: t\n }\n }, {\n type: \"text\",\n text: e\n }],\n complete: !0,\n createdAt: new Date()\n });\n } else {\n let t = {\n role: \"user\",\n content: e,\n complete: !0,\n createdAt: new Date()\n };\n i && (t.voice = {\n id: i === null || i === void 0 ? void 0 : i.id,\n duration: i === null || i === void 0 ? void 0 : i.duration\n }), _this13.messageList.push(t);\n }\n let a = new FmodeChatCompletion(_this13.fixMessageList(_this13.messageList), {\n model: ((_this13$chatServ = _this13.chatServ) === null || _this13$chatServ === void 0 || (_this13$chatServ = _this13$chatServ.currentModel) === null || _this13$chatServ === void 0 ? void 0 : _this13$chatServ.get(\"code\")) || \"fmode-4.5-128k\"\n });\n _this13.userInput = \"\", _this13.userImage = \"\";\n let r = _this13.isDirect || !1;\n _this13.isTalkMode && (r = !0);\n let s = a.sendCompletion({\n isDirect: r,\n onComplete: n || null\n }).pipe(finalize( /*#__PURE__*/_asyncToGenerator(function* () {\n if (_this13.isTalkMode) {\n var _this13$messageList$a;\n let e = (_this13$messageList$a = _this13.messageList[a.indexOfList]) === null || _this13$messageList$a === void 0 ? void 0 : _this13$messageList$a.content,\n t = yield _this13.getVoiceByContentText(e, o);\n o !== null && o !== void 0 && o.onSSMLComplete && o !== null && o !== void 0 && o.onSSMLComplete(t), _this13.messageList[a.indexOfList].voice = t, _this13.playChatVoice(_this13.voiceMap[t === null || t === void 0 ? void 0 : t.id]);\n }\n _this13.messageList[a.indexOfList].complete = !0;\n }))).subscribe(e => {\n var _this13$chatSession, _this13$messageList;\n _this13.messageList[a.indexOfList] = e, _this13.latestAIResponse = _this13.getContentText(e === null || e === void 0 ? void 0 : e.content);\n let t = (_this13$chatSession = _this13.chatSession) === null || _this13$chatSession === void 0 || (_this13$chatSession = _this13$chatSession.get(\"messageList\")) === null || _this13$chatSession === void 0 ? void 0 : _this13$chatSession.length;\n ((_this13$messageList = _this13.messageList) === null || _this13$messageList === void 0 ? void 0 : _this13$messageList.length) > t && _this13.saveChatSession(), e !== null && e !== void 0 && e.complete && (_this13.saveChatSession(), s.unsubscribe()), _this13.scrollToBottom && _this13.scrollToBottom();\n });\n })();\n }\n getVoiceByContentText(e, t, n = !1) {\n var _this$role8,\n _this14 = this;\n let o = this.getContentText(e),\n i = new (Parse__default.Object.extend(\"ChatVoice\"))(),\n a = \"\";\n return this.SSMLRoleVoice = ((_this$role8 = this.role) === null || _this$role8 === void 0 || (_this$role8 = _this$role8.get(\"voiceConfig\")) === null || _this$role8 === void 0 ? void 0 : _this$role8.voice) || this.SSMLRoleVoice, new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(function* (e, t) {\n let resolveChatVoice = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(function* () {\n var _Parse__default$User$2, _this14$chatSession, _this14$chatSession2, _i, _i2;\n i.set(\"content\", o), i.set(\"ssml\", a), i.set(\"role\", \"assistant\");\n let t = localStorage.getItem(\"company\");\n t && i.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: t\n }), (_Parse__default$User$2 = Parse__default.User.current()) !== null && _Parse__default$User$2 !== void 0 && _Parse__default$User$2.id && i.set(\"user\", Parse__default.User.current().toPointer()), (_this14$chatSession = _this14.chatSession) !== null && _this14$chatSession !== void 0 && _this14$chatSession.id && i.set(\"session\", (_this14$chatSession2 = _this14.chatSession) === null || _this14$chatSession2 === void 0 ? void 0 : _this14$chatSession2.toPointer()), i = yield i.save(), _this14.voiceMap[(_i = i) === null || _i === void 0 ? void 0 : _i.id] = i, e({\n id: (_i2 = i) === null || _i2 === void 0 ? void 0 : _i2.id\n });\n });\n return function resolveChatVoice() {\n return _ref4.apply(this, arguments);\n };\n }();\n if (0 == n && (a = `<speak xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"http://www.w3.org/2001/mstts\" xmlns:emo=\"http://www.w3.org/2009/10/emotionml\" version=\"1.0\" xml:lang=\"zh-CN\"><voice name=\"${_this14.SSMLRoleVoice}\">${o}</voice></speak>`, resolveChatVoice()), 1 == n) {\n var _this14$chatServ;\n let e = yield agentPrompt.getFormatTpl(\"talk-text-ssml-tpl\", {\n content: o,\n SSMLRoleVoice: _this14.SSMLRoleVoice\n });\n new FmodeChatCompletion(_this14.fixMessageList([{\n role: \"user\",\n content: e\n }]), {\n model: ((_this14$chatServ = _this14.chatServ) === null || _this14$chatServ === void 0 || (_this14$chatServ = _this14$chatServ.currentModel) === null || _this14$chatServ === void 0 ? void 0 : _this14$chatServ.get(\"code\")) || \"fmode-4.5-128k\"\n }).sendCompletion({\n isDirect: !0\n }).subscribe( /*#__PURE__*/function () {\n var _ref5 = _asyncToGenerator(function* (e) {\n (e === null || e === void 0 ? void 0 : e.complete) && (a = _this14.getContentText(e === null || e === void 0 ? void 0 : e.content), resolveChatVoice());\n });\n return function (_x3) {\n return _ref5.apply(this, arguments);\n };\n }());\n }\n });\n return function (_x, _x2) {\n return _ref3.apply(this, arguments);\n };\n }());\n }\n getContentText(e) {\n var _e$;\n return \"string\" == typeof e ? e : (e === null || e === void 0 || (_e$ = e[0]) === null || _e$ === void 0 ? void 0 : _e$.text) || \"\";\n }\n initTTS() {\n var _this15 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this15.ncloud.apig(\"voice/tts/token\", {\n company: localStorage.getItem(\"company\")\n });\n if (console.log(e), e !== null && e !== void 0 && e.token) {\n return new FmodeTTS(e, _this15.uploadServ);\n }\n return null;\n })();\n }\n stopPlayingVoice() {\n Object.values(this.VoiceTTSMap).forEach(e => {\n (e === null || e === void 0 ? void 0 : e.isPlaying) && (e === null || e === void 0 ? void 0 : e.stop());\n });\n }\n playChatVoice(e, t) {\n var _this16 = this;\n return _asyncToGenerator(function* () {\n let n = yield _this16.initTTS();\n if (n) {\n try {\n _this16.playAnimation(\"talking\"), n.speakAsync(e === null || e === void 0 ? void 0 : e.get(\"ssml\"), e, {\n onStart: e => {\n (t === null || t === void 0 ? void 0 : t.onStart) && (t === null || t === void 0 ? void 0 : t.onStart(e));\n },\n onLoaded: e => {\n (t === null || t === void 0 ? void 0 : t.onLoaded) && (t === null || t === void 0 ? void 0 : t.onLoaded(e));\n },\n onStop: () => {\n t !== null && t !== void 0 && t.onStop && t !== null && t !== void 0 && t.onStop(), _this16.playAnimation(\"waiting\");\n }\n });\n } catch (e) {\n console.error(e);\n }\n return _this16.VoiceTTSMap[e.id] = n, n;\n }\n return null;\n })();\n }\n saveChatSession() {\n var _this17 = this;\n return _asyncToGenerator(function* () {\n var _this17$role, _Parse__default$User$3, _this17$chatSession;\n if (\"new\" == _this17.sessionId && (_this17.chatSession = new _this17.ChatSession()), _this17.chatSession.set(\"title\", _this17.genTitle()), _this17.chatSession.set(\"role\", (_this17$role = _this17.role) === null || _this17$role === void 0 ? void 0 : _this17$role.toPointer()), _this17.chatSession.set(\"messageList\", _this17.messageList), _this17.chatSession.set(\"user\", (_Parse__default$User$3 = Parse__default.User.current()) === null || _Parse__default$User$3 === void 0 ? void 0 : _Parse__default$User$3.toPointer()), _this17.chatSession = yield _this17.chatSession.save(), _this17.sessionId = (_this17$chatSession = _this17.chatSession) === null || _this17$chatSession === void 0 ? void 0 : _this17$chatSession.id, _this17.sessionId) {\n var _window$location, _this17$chatSession2, _this17$role2, _this17$role3, _this17$chatSession3, _this17$chatSession4, _this17$chatSession5, _this17$chatServ, _this17$chatServ2, _this17$chatServ3;\n let e = `${window.location.origin}/chat/pro/chat/${_this17.sessionId}`;\n ((_window$location = window.location) === null || _window$location === void 0 || (_window$location = _window$location.pathname) === null || _window$location === void 0 ? void 0 : _window$location.indexOf(\"chat/session\")) > -1 && (e = `${window.location.origin}/chat/session/chat/${_this17.sessionId}`), e = _this17.getInviteUrl(e), window.history.replaceState(null, null, e + window.location.search);\n let t = {\n sid: (_this17$chatSession2 = _this17.chatSession) === null || _this17$chatSession2 === void 0 ? void 0 : _this17$chatSession2.id,\n rid: (_this17$role2 = _this17.role) === null || _this17$role2 === void 0 ? void 0 : _this17$role2.id,\n name: (_this17$role3 = _this17.role) === null || _this17$role3 === void 0 ? void 0 : _this17$role3.get(\"name\"),\n message: (_this17$chatSession3 = _this17.chatSession) === null || _this17$chatSession3 === void 0 || (_this17$chatSession3 = _this17$chatSession3.get(\"messageList\")) === null || _this17$chatSession3 === void 0 || (_this17$chatSession3 = _this17$chatSession3[((_this17$chatSession4 = _this17.chatSession) === null || _this17$chatSession4 === void 0 || (_this17$chatSession4 = _this17$chatSession4.get(\"messageList\")) === null || _this17$chatSession4 === void 0 ? void 0 : _this17$chatSession4.length) - 1]) === null || _this17$chatSession3 === void 0 || (_this17$chatSession3 = _this17$chatSession3.content) === null || _this17$chatSession3 === void 0 ? void 0 : _this17$chatSession3.slice(0, 20),\n latest: (_this17$chatSession5 = _this17.chatSession) === null || _this17$chatSession5 === void 0 ? void 0 : _this17$chatSession5.createdAt\n };\n ((_this17$chatServ = _this17.chatServ) === null || _this17$chatServ === void 0 || (_this17$chatServ = _this17$chatServ.chatList) === null || _this17$chatServ === void 0 ? void 0 : _this17$chatServ.length) || (_this17.chatServ.chatList = []);\n let n = (_this17$chatServ2 = _this17.chatServ) === null || _this17$chatServ2 === void 0 || (_this17$chatServ2 = _this17$chatServ2.chatList) === null || _this17$chatServ2 === void 0 ? void 0 : _this17$chatServ2.find(e => (e === null || e === void 0 ? void 0 : e.sid) == (t === null || t === void 0 ? void 0 : t.sid));\n n > -1 ? _this17.chatServ.chatList[n] = t : (_this17$chatServ3 = _this17.chatServ) === null || _this17$chatServ3 === void 0 ? void 0 : _this17$chatServ3.chatList.unshift(t);\n }\n })();\n }\n getInviteUrl(e) {\n var _Parse__default$User;\n let t = new URL(e),\n n = (_Parse__default$User = Parse__default.User) === null || _Parse__default$User === void 0 || (_Parse__default$User = _Parse__default$User.current()) === null || _Parse__default$User === void 0 ? void 0 : _Parse__default$User.id;\n return t.searchParams.set(\"invite\", n), t.href;\n }\n genTitle() {\n var _this$messageList$fin, _e$find3;\n if (this.title) return this.title;\n let e = (_this$messageList$fin = this.messageList.find(e => \"user\" == e.role)) === null || _this$messageList$fin === void 0 ? void 0 : _this$messageList$fin.content;\n return \"string\" == typeof e && (this.title = (e === null || e === void 0 ? void 0 : e.slice(0, 15)) || \"\"), \"object\" == typeof e && (this.title = (e === null || e === void 0 || (_e$find3 = e.find(e => e === null || e === void 0 ? void 0 : e.text)) === null || _e$find3 === void 0 ? void 0 : _e$find3.text) || \"\"), this.title;\n }\n fixMessageList(e) {\n return e.map(e => ({\n role: e.role,\n content: e.content\n }));\n }\n nowStr() {\n let e = new Date();\n return `${e.getFullYear()}/${e.getMonth() + 1}/${e.getDate()} ${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}`;\n }\n}\nclass FmodeChatCompletion {\n constructor(e, t) {\n this.content = \"\", this.contentBuffer = [], this.isCompleted = !1, this.indexOfList = Number(e.length), this.messages = e, this.model = (t === null || t === void 0 ? void 0 : t.model) || \"fmode-4.5-128k\";\n }\n sendCompletion(e = {}) {\n e.intTime = (e === null || e === void 0 ? void 0 : e.intTime) || 50, e.isDirect = (e === null || e === void 0 ? void 0 : e.isDirect) || !1, (e === null || e === void 0 ? void 0 : e.isDirect) && (e.intTime = 1);\n let t = {\n messages: this.messages,\n stream: !0,\n model: this.model,\n temperature: .5,\n presence_penalty: 0,\n frequency_penalty: 0\n };\n return new Observable(n => {\n let o = RequestFmodeChatApi(\"/v1/chat/completions\", t).subscribe(t => {\n let i = String(t);\n if (\"data: [DONE]\" == i && (this.isCompleted = !0, e !== null && e !== void 0 && e.isDirect && this.isCompleted && (n.next({\n role: \"assistant\",\n content: this.content,\n complete: !0,\n createdAt: new Date()\n }), o.unsubscribe(), e !== null && e !== void 0 && e.onComplete && e.onComplete({\n role: \"assistant\",\n content: this.content,\n complete: !0,\n createdAt: new Date()\n }), n.complete())), i.indexOf(\"data: {\") > -1) {\n var _t$choices;\n let t = chunkToJson(i),\n a = (t === null || t === void 0 || (_t$choices = t.choices) === null || _t$choices === void 0 || (_t$choices = _t$choices[0]) === null || _t$choices === void 0 || (_t$choices = _t$choices.delta) === null || _t$choices === void 0 ? void 0 : _t$choices.content) || \"\";\n this.contentBuffer.push(a), e !== null && e !== void 0 && e.isDirect && (this.content += a || \"\", this.isCompleted || n.next({\n role: \"assistant\",\n cid: t === null || t === void 0 ? void 0 : t.id,\n content: this.content,\n createdAt: new Date()\n })), (e === null || e === void 0 ? void 0 : e.isDirect) || this.contentPusher || (this.contentPusher = setInterval(() => {\n var _this$contentBuffer, _this$contentBuffer2, _this$contentBuffer3;\n this.isCompleted && 0 == ((_this$contentBuffer = this.contentBuffer) === null || _this$contentBuffer === void 0 ? void 0 : _this$contentBuffer.length) && (n.next({\n role: \"assistant\",\n cid: t === null || t === void 0 ? void 0 : t.id,\n content: this.content,\n complete: !0,\n createdAt: new Date()\n }), o.unsubscribe(), clearInterval(this.contentPusher), n.complete()), ((_this$contentBuffer2 = this.contentBuffer) === null || _this$contentBuffer2 === void 0 ? void 0 : _this$contentBuffer2.length) >= 0 && (((_this$contentBuffer3 = this.contentBuffer) === null || _this$contentBuffer3 === void 0 ? void 0 : _this$contentBuffer3.length) > 0 && (this.content += this.contentBuffer.shift()), n.next({\n role: \"assistant\",\n cid: t === null || t === void 0 ? void 0 : t.id,\n content: this.content,\n createdAt: new Date()\n }));\n }, e === null || e === void 0 ? void 0 : e.intTime));\n }\n });\n }).pipe(bufferTime(100), concatMap(e => e), delay(200));\n }\n}\nfunction chunkToJson(e) {\n let t;\n try {\n t = JSON.parse(e.replaceAll(\"data: \", \"\"));\n } catch (e) {\n console.error(e);\n }\n return t || {};\n}\nfunction RequestFmodeChatApi(e, t, n = \"POST\") {\n return new Observable(o => {\n var _Parse__default$User$4;\n let i = API_BASE + e,\n a = `Bearer ${((_Parse__default$User$4 = Parse__default.User.current()) === null || _Parse__default$User$4 === void 0 ? void 0 : _Parse__default$User$4.getSessionToken()) || localStorage.getItem(\"FMODE_AI_TOKEN\")}`;\n return t.token = a, t && (t = JSON.stringify(t)), fetch(i, {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"Cache-Control\": \"no-cache\"\n },\n body: t || null,\n method: n,\n credentials: \"omit\",\n mode: \"cors\"\n }).then(e => {\n let t = \"\";\n {\n var _e$body;\n let n = (_e$body = e.body) === null || _e$body === void 0 ? void 0 : _e$body.getReader();\n const i = new TextDecoder();\n let a = new ReadableStream({\n start(e) {\n !function read() {\n n.read().then(({\n done: t,\n value: n\n }) => {\n if (t) return e.close(), void o.complete();\n e.enqueue(n), read();\n });\n }();\n }\n }).getReader();\n a.read().then(function processStream({\n done: e,\n value: n\n }) {\n if (e) return;\n !function processData(e) {\n let n = (t + e).split(\"\\n\");\n if ((n === null || n === void 0 ? void 0 : n.length) > 1) {\n for (let e = 0; e < n.length - 1; e++) {\n let t = n[e];\n o.next(t);\n }\n t = n[n.length - 1];\n }\n }(i.decode(n)), a.read().then(processStream);\n });\n }\n }).catch(e => o.error(e)), () => {};\n });\n}\nfunction JsonToFormData(e) {\n const t = new FormData();\n return function appendFormData(e, n = \"\") {\n Array.isArray(e) ? e.forEach((e, t) => {\n appendFormData(e, `${n}[${t}]`);\n }) : \"object\" == typeof e && null !== e ? Object.keys(e).forEach(t => {\n const o = n ? `${n}.${t}` : t;\n appendFormData(e[t], o);\n }) : t.append(n, e);\n }(e), t;\n}\nfunction ncloudApi(_x4, _x5) {\n return _ncloudApi.apply(this, arguments);\n}\nfunction _ncloudApi() {\n _ncloudApi = _asyncToGenerator(function* (e, t, n = \"POST\", o) {\n e = o + e;\n try {\n const o = yield fetch(e, {\n method: n,\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(t),\n mode: \"cors\",\n credentials: \"omit\"\n }),\n i = yield o.json();\n return !i || 200 !== i.code && 1 !== i.code ? null : i.data;\n } catch (e) {\n throw e;\n }\n });\n return _ncloudApi.apply(this, arguments);\n}\nfunction novaql(_x6, _x7, _x8) {\n return _novaql.apply(this, arguments);\n}\nfunction _novaql() {\n _novaql = _asyncToGenerator(function* (e, t, n) {\n const o = n + \"/novaql/select\";\n let i = {\n sql: e\n };\n t && t.length > 0 && (i.params = JSON.stringify(t));\n try {\n const e = yield fetch(o, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(i),\n mode: \"cors\",\n credentials: \"omit\"\n }),\n t = yield e.json();\n if (t && 200 === t.code) return t.data;\n } catch (e) {\n throw e;\n }\n });\n return _novaql.apply(this, arguments);\n}\nfunction apig(_x9, _x10) {\n return _apig.apply(this, arguments);\n}\nfunction _apig() {\n _apig = _asyncToGenerator(function* (e, t, n = \"POST\", o) {\n localStorage.setItem(\"NOVA_APIG_SERVER\", \"aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG\"), o || (o = localStorage.getItem(\"NOVA_APIG_SERVER\"), o = decodeURIComponent(atob(o))), e = o + e;\n let i = Parse__default.User.current(),\n a = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${i === null || i === void 0 ? void 0 : i.getSessionToken()}`\n };\n try {\n let o = yield fetch(e, {\n method: n,\n headers: a,\n body: t ? JSON.stringify(t) : null,\n mode: \"cors\",\n credentials: \"omit\"\n });\n if (!o.ok) throw new Error(`HTTP error! status: ${o.status}`);\n let i = yield o.json();\n return !i || 200 !== i.code && 1 !== i.code && 0 !== i.code ? null : i.data;\n } catch (e) {\n throw console.error(\"请求出错\", e), e;\n }\n });\n return _apig.apply(this, arguments);\n}\nclass NovaCloudService {\n constructor(e) {\n this.http = e, this.serverURL = \"https://server.fmode.cn/api\", localStorage.setItem(\"NOVA_APIG_SERVER\", \"aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG\");\n }\n novaql(e, t) {\n return novaql(e, t, this.serverURL);\n }\n apig(e, t, n = \"post\") {\n return apig(e, t, n);\n }\n apigTest(e, t, n = \"post\") {\n return apig(e, t, n, \"https://test.fmode.cn/api/apig/\");\n }\n api(e, t, n = \"post\") {\n return ncloudApi(e, t, n, this.serverURL);\n }\n searchParse(e) {\n return e = e || location.href, new URL(e).searchParams;\n }\n}\n_NovaCloudService = NovaCloudService;\n_NovaCloudService.ɵfac = function _NovaCloudService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _NovaCloudService)(i0.ɵɵinject(i1.HttpClient));\n};\n_NovaCloudService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _NovaCloudService,\n factory: _NovaCloudService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NovaCloudService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1.HttpClient\n }], null);\n})();\nclass CrossService {\n getMenuType() {\n return this.clientWidth = document.body.clientWidth, this.onResizeScreen(), this.navMenuType;\n }\n constructor(e, t) {\n this.platform = e, this.navCtrl = t, this.mobileWidth = 915, this.clientWidth = document.body.clientWidth, this.clientWidth = document.body.clientWidth, this.updateWidth(), this.onResizeScreen();\n }\n dismisModalTop(e, t) {\n return _asyncToGenerator(function* () {\n let n = yield e === null || e === void 0 ? void 0 : e.getTop();\n n && (t !== null && t !== void 0 && t.preventDefault && t !== null && t !== void 0 && t.preventDefault(), n.dismiss(), n.isOpen = !1);\n })();\n }\n updateWidth() {\n this.fixInterval = setInterval(() => {\n if (this.clientWidth) return clearInterval(this.fixInterval), void delete this.fixInterval;\n console.log(document.body.clientWidth), this.clientWidth = document.body.clientWidth;\n }, 200);\n }\n onResizeScreen(e) {\n this.clientWidth = document.body.clientWidth, this.clientWidth >= this.mobileWidth ? (this.leftMenuMode = \"horizontal\", this.navMenuType = \"pc\") : (this.leftMenuMode = \"inline\", this.navMenuType = \"mobile\");\n }\n}\n_CrossService = CrossService;\n_CrossService.ɵfac = function _CrossService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CrossService)(i0.ɵɵinject(i2.Platform), i0.ɵɵinject(i2.NavController));\n};\n_CrossService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _CrossService,\n factory: _CrossService.ɵfac,\n providedIn: \"root\"\n});\nfunction calcFileMd5(e) {\n return new Promise((t, n) => {\n const o = new FileReader();\n o.onload = e => {\n try {\n var _e$target;\n const o = (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.result;\n if (o) {\n const e = new SparkMD5.ArrayBuffer();\n e.append(o);\n const n = e.end();\n t(n);\n } else n(new Error(\"Failed to load file\"));\n } catch (e) {\n n(e);\n }\n }, o.onerror = e => {\n n(e);\n }, o.readAsArrayBuffer(e);\n });\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CrossService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i2.Platform\n }, {\n type: i2.NavController\n }], null);\n})();\nclass NovaUploadService {\n constructor(e, t) {\n this.platform = e, this.diagnostic = t, this.maxSize = 5242880, this.getUptoken(!0), this.requestPermission(), this.queryDomain();\n }\n upload(e, t) {\n var _this18 = this;\n return _asyncToGenerator(function* () {\n var _e$name, _r, _r2, _s, _s2;\n let n,\n o = e.type,\n i = (_e$name = e.name) === null || _e$name === void 0 ? void 0 : _e$name.split(\".\"),\n a = i[i.length - 1];\n try {\n n = yield calcFileMd5(e);\n } catch (e) {}\n let r,\n s,\n l = _this18.fileToBlob(e);\n return r = o.indexOf(\"image\") > -1 ? yield _this18.saveQiniuImageFile(l, a, null, t) : yield _this18.saveQiniuMediaFile(e, l, null, t), r.md5 = n, ((_r = r) === null || _r === void 0 || (_r = _r.url) === null || _r === void 0 ? void 0 : _r.indexOf(\"undefined\")) > -1 && (r.url = (_this18.qiniuDomain || \"https://file-cloud.fmode.cn/\") + r.url.replace(\"undefined/\", \"\")), (_r2 = r) !== null && _r2 !== void 0 && _r2.url && (s = yield _this18.saveAttachment(r, _this18.qiniuDomain, null, _this18.getCompanyId())), (_s = s) !== null && _s !== void 0 && _s.id && (r.id = (_s2 = s) === null || _s2 === void 0 ? void 0 : _s2.id), r;\n })();\n }\n isCapacitor() {\n return this.platform.is(\"capacitor\") || this.platform.is(\"cordova\");\n }\n requestPermission() {\n var _this19 = this;\n return _asyncToGenerator(function* () {\n _this19.isCapacitor() && (yield _this19.requestStoagePermission(), yield _this19.requestCameraPermission());\n })();\n }\n requestStoagePermission() {\n var _this20 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this20.diagnostic.isExternalStorageAuthorized();\n if (console.log(\"permisson_STORAGE:\", e), !e) {\n yield _this20.diagnostic.requestExternalStorageAuthorization();\n }\n })();\n }\n requestCameraPermission() {\n var _this21 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this21.diagnostic.isCameraAuthorized();\n if (console.log(\"permisson_Camera:\", e), !e) {\n yield _this21.diagnostic.requestCameraAuthorization();\n }\n })();\n }\n getUptoken(e = !1) {\n var _this22 = this;\n return _asyncToGenerator(function* () {\n if (console.log(\"getUptoken\"), _this22.qiniuConf || e) try {\n console.log(_this22.getCompanyId());\n let e = yield Parse__default.Cloud.run(\"qiniu_uptoken\", {\n company: _this22.getCompanyId()\n });\n console.log(e), _this22.qiniuConf = e;\n } catch (e) {\n console.error(e);\n }\n })();\n }\n genFileKey(e, t) {\n let n = new Date(),\n o = new DatePipe(\"en\");\n return t || (t = this.getCompanyId()), t + \"/\" + o.transform(n, \"yMMdd\") + \"/\" + String(e.id).substr(20, 6) + o.transform(n, \"hhmmssSSS\") + /\\.[^\\.]+/.exec(e.name);\n }\n getCompanyId() {\n if (this.company) return this.company;\n return localStorage.getItem(\"company\");\n }\n queryDomain() {\n var _this23 = this;\n return _asyncToGenerator(function* () {\n let e = new Parse__default.Query(\"Company\"),\n t = yield e.get(_this23.getCompanyId());\n t.get(\"configQiniu\") && t.get(\"configQiniu\").domain ? (console.log(t.get(\"configQiniu\").domain), _this23.qiniuDomain = t.get(\"configQiniu\").domain) : _this23.qiniuDomain = \"https://file-cloud.fmode.cn\";\n })();\n }\n saveAttachment(e, t, n, o) {\n return _asyncToGenerator(function* () {\n let i = e.url;\n i.startsWith(\"http\") || (i = t + i), i = i.replace(/undefined\\//, \"\"), o || (o = localStorage.getItem(\"company\"));\n let a = Parse__default.User.current(),\n r = new Parse__default.Query(\"Attachment\");\n r.equalTo(\"url\", i);\n let s = yield r.first();\n if (s && s.id) return console.error(\"该文件已存在,无需重复上传\"), s;\n return s = new (Parse__default.Object.extend(\"Attachment\"))(), s.set(\"size\", e.size), s.set(\"url\", i), s.set(\"name\", e.name), s.set(\"mime\", e.type), s.set(\"md5\", e === null || e === void 0 ? void 0 : e.md5), a !== null && a !== void 0 && a.id && s.set(\"user\", a.toPointer()), o && s.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: localStorage.getItem(\"company\")\n }), n && s.set(\"category\", {\n __type: \"Pointer\",\n className: \"Category\",\n objectId: n\n }), yield s.save();\n })();\n }\n captureVideo(e) {\n var _this24 = this;\n return _asyncToGenerator(function* () {\n if (_this24.qiniuConf = e, !_this24.isCapacitor()) return;\n let t = yield _this24.cameraCaptureVideoFile(),\n n = yield _this24.getMediaFileDataString(t);\n return yield _this24.saveQiniuMediaFile(t, n);\n })();\n }\n cameraCaptureVideoFile() {\n return _asyncToGenerator(function* () {\n let e = MediaCapture,\n t = yield e.captureVideo({\n limit: 1\n });\n return (t === null || t === void 0 ? void 0 : t.length) > 0 ? t[0] : null;\n })();\n }\n getMediaFileDataString(e) {\n return _asyncToGenerator(function* () {\n new FilesystemWeb(), e.fullPath.replaceAll(\"///\", \"//\");\n let t = yield Filesystem.stat({\n path: e.fullPath\n }),\n n = Capacitor.convertFileSrc(t.uri),\n o = yield fetch(n),\n i = yield o.blob();\n if (console.log(i.size), console.log(JSON.stringify(t)), console.log(JSON.stringify(o)), console.log(JSON.stringify(Object.keys(o))), i) return i;\n throw \"读取文件失败\";\n })();\n }\n takePicture(e) {\n var _this25 = this;\n return _asyncToGenerator(function* () {\n if (_this25.qiniuConf = e, !_this25.isCapacitor()) return;\n yield _this25.getUptoken();\n let t = yield _this25.cameraTakePictureDataUrl();\n if (!(t !== null && t !== void 0 && t.dataUrl)) return;\n let n = yield _this25.base64ToBlob(t === null || t === void 0 ? void 0 : t.dataUrl),\n o = yield _this25.saveQiniuImageFile(n, t === null || t === void 0 ? void 0 : t.format);\n return console.log(JSON.stringify(o)), o;\n })();\n }\n cameraTakePictureDataUrl() {\n var _this26 = this;\n return _asyncToGenerator(function* () {\n if (!_this26.isCapacitor()) return;\n return yield Camera.getPhoto({\n quality: 90,\n allowEditing: !1,\n source: CameraSource.Camera,\n resultType: CameraResultType.DataUrl\n });\n })();\n }\n saveQiniuImageFile(e, t, n, o) {\n var _this27 = this;\n return _asyncToGenerator(function* () {\n let i = _this27.maxSize;\n if (e.size > i) throw yield console.log(\"照片过大,超出限制5MB\"), \"超出文件大小\";\n let a = new DatePipe(\"en\").transform(new Date(), \"yyyyMMddHHmmss\"),\n r = `${a}.${t}`,\n s = `image/${t}`,\n l = {\n fname: r,\n params: {},\n mimeType: \"image/*\"\n },\n c = {\n useCdnDomain: !0,\n forceDirect: !0\n };\n console.log(_this27.qiniuConf);\n let p = _this27.genFileKey({\n id: a,\n name: r\n });\n return console.log(\"图片上传前\"), new Promise((t, n) => {\n var _this27$qiniuConf;\n console.log(\"进入了上传\"), qiniu.upload(e, p, (_this27$qiniuConf = _this27.qiniuConf) === null || _this27$qiniuConf === void 0 ? void 0 : _this27$qiniuConf.uptoken, l, c).subscribe({\n next: e => {\n console.log(e), o && o(e);\n },\n error: function () {\n var _ref6 = _asyncToGenerator(function* (e) {\n console.log(e);\n });\n return function error(_x11) {\n return _ref6.apply(this, arguments);\n };\n }(),\n complete: n => {\n var _this27$qiniuConf2, _this27$qiniuConf3;\n console.log(\"上传完成\"), console.log(`${(_this27$qiniuConf2 = _this27.qiniuConf) === null || _this27$qiniuConf2 === void 0 ? void 0 : _this27$qiniuConf2.domain}${n.key}`), n.url = `${(_this27$qiniuConf3 = _this27.qiniuConf) === null || _this27$qiniuConf3 === void 0 ? void 0 : _this27$qiniuConf3.domain}${n.key}`, n.name = r, n.type = s, n.size = e.size, t(n);\n }\n });\n });\n })();\n }\n saveQiniuMediaFile(e, t, n, o) {\n var _this28 = this;\n return _asyncToGenerator(function* () {\n let i = e.name,\n a = e.type;\n if (e.size > 104857600) throw console.log(\"视频过大,超出限制100MB\"), \"超出文件大小\";\n let r = new DatePipe(\"en\").transform(new Date(), \"yyyyMMddHHmmss\"),\n s = {\n fname: i,\n params: {},\n mimeType: a\n },\n l = {\n useCdnDomain: !0,\n forceDirect: !0\n },\n c = _this28.genFileKey({\n id: r,\n name: i\n });\n return console.log(\"图片上传前\"), console.log(e.name, t.size), console.log(t.size), console.log(t.size / 1024 / 1024), new Promise((n, i) => {\n var _this28$qiniuConf;\n console.log(\"进入了上传\"), qiniu.upload(t, c, (_this28$qiniuConf = _this28.qiniuConf) === null || _this28$qiniuConf === void 0 ? void 0 : _this28$qiniuConf.uptoken, s, l).subscribe({\n next: e => {\n console.log(\"主要用来展示进度\"), o && o(e), console.log(JSON.stringify(e));\n },\n error: function () {\n var _ref7 = _asyncToGenerator(function* (e) {\n console.log(\"上传失败\"), console.log(JSON.stringify(e));\n });\n return function error(_x12) {\n return _ref7.apply(this, arguments);\n };\n }(),\n complete: t => {\n var _this28$qiniuConf2;\n console.log(\"上传完成\"), console.log(JSON.stringify(t)), e.key = t.key, console.log(e.type), e.url = `${(_this28$qiniuConf2 = _this28.qiniuConf) === null || _this28$qiniuConf2 === void 0 ? void 0 : _this28$qiniuConf2.domain}${t.key}`, console.log(e.url), n(e);\n }\n });\n });\n })();\n }\n base64ToBlobType(e, t) {\n return _asyncToGenerator(function* () {\n let n = yield fetch(`data:${t};base64,${e}`);\n return yield n.blob();\n })();\n }\n base64ToBlob(e) {\n return _asyncToGenerator(function* () {\n let t = yield fetch(e);\n return yield t.blob();\n })();\n }\n fileToBlob(e) {\n const t = e.slice(0, e.size, e.type);\n return new Blob([t], {\n type: e.type\n });\n }\n genMd5(e) {\n return CryptoJS.MD5(e).toString();\n }\n}\n_NovaUploadService = NovaUploadService;\n_NovaUploadService.ɵfac = function _NovaUploadService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _NovaUploadService)(i0.ɵɵinject(i2.Platform), i0.ɵɵinject(i2$1.Diagnostic));\n};\n_NovaUploadService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _NovaUploadService,\n factory: _NovaUploadService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(NovaUploadService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i2.Platform\n }, {\n type: i2$1.Diagnostic\n }], null);\n})();\nclass ChatService {\n constructor(e, t, n, o, i, a, r) {\n this.router = e, this.ncloud = t, this.platform = n, this.alertCtrl = o, this.navCtrl = i, this.cross = a, this.uploadServ = r, this.chatMap = {}, this.isCapacitor = !1, this.platformMap = {\n pc: \"电脑端\",\n mobile: \"移动端\"\n }, this.isCapacitor = this.platform.is(\"capacitor\");\n }\n loadModelList(e) {\n var _this29 = this;\n return _asyncToGenerator(function* () {\n var _this29$modelList, _this29$modelList2;\n if ((_this29$modelList = _this29.modelList) !== null && _this29$modelList !== void 0 && _this29$modelList.length) return;\n let t = new Parse__default.Query(\"ChatModel\");\n t.notEqualTo(\"isDeleted\", !0), t.equalTo(\"isEnabled\", !0), t.addAscending(\"index\"), _this29.modelList = yield t.find(), _this29.currentModel = e || ((_this29$modelList2 = _this29.modelList) === null || _this29$modelList2 === void 0 ? void 0 : _this29$modelList2.find(e => \"fmode-4.5-128k\" == e.get(\"code\")));\n })();\n }\n doButtonAction(e) {\n var _this30 = this;\n return _asyncToGenerator(function* () {\n var _e$platform, _e$platform2, _e$platform3;\n let t = _this30.cross.navMenuType,\n n = e === null || e === void 0 || (_e$platform = e.platform) === null || _e$platform === void 0 ? void 0 : _e$platform.map(e => _this30.platformMap[e]).join(\"、\");\n if ((e === null || e === void 0 || (_e$platform2 = e.platform) === null || _e$platform2 === void 0 ? void 0 : _e$platform2.length) > 0 && -1 == (e === null || e === void 0 || (_e$platform3 = e.platform) === null || _e$platform3 === void 0 ? void 0 : _e$platform3.indexOf(t))) {\n (yield _this30.alertCtrl.create({\n header: \"注意\",\n subHeader: \"终端不符\",\n message: `请您使用${n}开启本功能。`,\n buttons: [{\n role: \"ok\",\n text: \"知道了\"\n }]\n })).present();\n } else (e === null || e === void 0 ? void 0 : e.path) && _this30.navCtrl.navigateRoot(e === null || e === void 0 ? void 0 : e.path);\n })();\n }\n initChatMap(e) {\n var _this31 = this;\n return _asyncToGenerator(function* () {\n if (_this31.chatMap[e]) return _this31.chatMap[e];\n let t = new Parse__default.Query(\"ChatSession\");\n t.include(\"user\", \"role\", \"role.model\", \"story\", \"story.person\", \"person\", \"person.userVerify\");\n let n = yield t.get(e),\n o = new FmodeChat(n === null || n === void 0 ? void 0 : n.id, n === null || n === void 0 ? void 0 : n.get(\"role\"), n, _this31, _this31.navCtrl, _this31.ncloud, _this31.uploadServ);\n return _this31.chatMap[e] = o, _this31.chatMap[e];\n })();\n }\n getChatSession(e) {\n var _this32 = this;\n return _asyncToGenerator(function* () {\n var _Parse__default$User2;\n if (!(Parse__default !== null && Parse__default !== void 0 && (_Parse__default$User2 = Parse__default.User) !== null && _Parse__default$User2 !== void 0 && (_Parse__default$User2 = _Parse__default$User2.current()) !== null && _Parse__default$User2 !== void 0 && _Parse__default$User2.id)) return;\n let t = new Parse__default.Query(\"ChatSession\");\n e && (t = Parse__default.Query.fromJSON(\"ChatSession\", e)), t.include(\"user\", \"role\", \"role.model\", \"story\", \"story.person\", \"story.person.userVerify\", \"person\", \"person.userVerify\"), t.addDescending(\"updatedAt\"), t.equalTo(\"user\", Parse__default.User.current().toPointer()), t.notEqualTo(\"isDeleted\", !0), t.limit(30);\n let n = yield t.find();\n _this32.chatList = n.map(e => {\n var _e$get2, _e$get3, _e$get4, _e$get5, _e$get6, _e$get7;\n return _this32.chatMap[e === null || e === void 0 ? void 0 : e.id] = new FmodeChat(e === null || e === void 0 ? void 0 : e.id, e === null || e === void 0 ? void 0 : e.get(\"role\"), e, _this32, _this32.navCtrl, _this32.ncloud, _this32.uploadServ), {\n session: e,\n sid: e === null || e === void 0 ? void 0 : e.id,\n isHidden: !1,\n rid: e === null || e === void 0 || (_e$get2 = e.get(\"role\")) === null || _e$get2 === void 0 ? void 0 : _e$get2.id,\n name: e === null || e === void 0 || (_e$get3 = e.get(\"role\")) === null || _e$get3 === void 0 ? void 0 : _e$get3.get(\"name\"),\n thumb: e === null || e === void 0 || (_e$get4 = e.get(\"role\")) === null || _e$get4 === void 0 ? void 0 : _e$get4.get(\"thumb\"),\n title: (e === null || e === void 0 ? void 0 : e.get(\"title\")) || (e === null || e === void 0 || (_e$get5 = e.get(\"role\")) === null || _e$get5 === void 0 ? void 0 : _e$get5.get(\"name\")),\n message: e === null || e === void 0 || (_e$get6 = e.get(\"messageList\")) === null || _e$get6 === void 0 || (_e$get6 = _e$get6[(e === null || e === void 0 || (_e$get7 = e.get(\"messageList\")) === null || _e$get7 === void 0 ? void 0 : _e$get7.length) - 1]) === null || _e$get6 === void 0 || (_e$get6 = _e$get6.content) === null || _e$get6 === void 0 ? void 0 : _e$get6.slice(0, 20),\n latest: e === null || e === void 0 ? void 0 : e.createdAt\n };\n });\n })();\n }\n getChatSessionDistinct() {\n var _this33 = this;\n return _asyncToGenerator(function* () {\n var _Parse__default$User$5;\n let e = yield _this33.ncloud.novaql('SELECT t1.\"objectId\" as sid , \"AvatarRole\".\"objectId\" as rid, * FROM (\\n SELECT *,ROW_NUMBER() OVER (PARTITION BY \"user\", \"role\" ORDER BY \"createdAt\" DESC) AS rn\\n FROM \"ChatSession\" WHERE \"user\"=$1\\n ) as t1\\n LEFT JOIN \"AvatarRole\" ON \"AvatarRole\".\"objectId\" = t1.\"role\"\\n WHERE t1.rn=1\\n LIMIT $2\\n ;', [(_Parse__default$User$5 = Parse__default.User.current()) === null || _Parse__default$User$5 === void 0 ? void 0 : _Parse__default$User$5.id, 10]),\n t = e === null || e === void 0 ? void 0 : e.map(e => {\n var _e$messageList, _e$messageList2;\n return {\n sid: e === null || e === void 0 ? void 0 : e.sid,\n rid: e === null || e === void 0 ? void 0 : e.rid,\n name: e === null || e === void 0 ? void 0 : e.name,\n message: e === null || e === void 0 || (_e$messageList = e.messageList) === null || _e$messageList === void 0 || (_e$messageList = _e$messageList[(e === null || e === void 0 || (_e$messageList2 = e.messageList) === null || _e$messageList2 === void 0 ? void 0 : _e$messageList2.length) - 1]) === null || _e$messageList === void 0 || (_e$messageList = _e$messageList.content) === null || _e$messageList === void 0 ? void 0 : _e$messageList.slice(0, 20),\n latest: e === null || e === void 0 ? void 0 : e.createdAt\n };\n });\n return _this33.chatList = t, _this33.chatList;\n })();\n }\n createChatPanel(e, t) {\n var _t9;\n let n = ((_t9 = t) === null || _t9 === void 0 ? void 0 : _t9.id) || \"new\";\n t = new FmodeChat(n, e, t, this, this.navCtrl, this.ncloud, this.uploadServ), this.chatMap[n] = t, this.router.navigate([\"/chat/pro/chat/\" + n]);\n }\n createNewRoleChat(e) {\n var _this34 = this;\n return _asyncToGenerator(function* () {\n let t = new Parse__default.Query(\"AvatarRole\");\n t.include(\"model\");\n let n = yield t.get(e);\n return new FmodeChat(\"new\", n, null, _this34, _this34.navCtrl, _this34.ncloud, _this34.uploadServ);\n })();\n }\n restoreChatPanel(e) {\n var _this35 = this;\n return _asyncToGenerator(function* () {\n let t = new Parse__default.Query(\"AvatarRole\"),\n n = new Parse__default.Query(\"ChatSession\"),\n o = yield t.get(e === null || e === void 0 ? void 0 : e.rid),\n i = yield n.get(e === null || e === void 0 ? void 0 : e.sid),\n a = new FmodeChat(e === null || e === void 0 ? void 0 : e.sid, o, i, _this35, _this35.navCtrl, _this35.ncloud, _this35.uploadServ);\n _this35.chatMap[e === null || e === void 0 ? void 0 : e.sid] = a, _this35.router.navigate([\"/chat/pro/chat/\" + (e === null || e === void 0 ? void 0 : e.sid)]);\n })();\n }\n callRole(e) {\n var _this36 = this;\n return _asyncToGenerator(function* () {\n document.body.classList.add(\"dark\"), _this36.router.navigate([`/avatar/role/${e.id}`, {\n type: \"phone\"\n }]);\n })();\n }\n}\n_ChatService = ChatService;\n_ChatService.ɵfac = function _ChatService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ChatService)(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(NovaCloudService), i0.ɵɵinject(i2.Platform), i0.ɵɵinject(i2.AlertController), i0.ɵɵinject(i2.NavController), i0.ɵɵinject(CrossService), i0.ɵɵinject(NovaUploadService));\n};\n_ChatService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _ChatService,\n factory: _ChatService.ɵfac,\n providedIn: \"root\"\n});\nfunction drawDalle(_x13) {\n return _drawDalle.apply(this, arguments);\n}\nfunction _drawDalle() {\n _drawDalle = _asyncToGenerator(function* (e) {\n var _e$prompt;\n e.size = (e === null || e === void 0 ? void 0 : e.size) || \"1024x1024\", e.style = (e === null || e === void 0 ? void 0 : e.style) || \"natural\", e.quality = (e === null || e === void 0 ? void 0 : e.quality) || null;\n let t = {\n model: \"dall-e-3\",\n prompt: e.prompt,\n n: 1,\n quality: e.quality,\n response_format: \"url\",\n size: e.size,\n style: e.style\n };\n if (((_e$prompt = e.prompt) === null || _e$prompt === void 0 ? void 0 : _e$prompt.length) > 3e3) throw \"prompt maximum < 4000 characters\";\n let n,\n o = yield apig(\"aigc/gpt/v1/images/generations\", t);\n if (console.log(o), o !== null && o !== void 0 && o.id) {\n let e = new Parse__default.Query(\"ImagineWork\");\n e.get(o === null || o === void 0 ? void 0 : o.id), n = yield e.first(), console.log(n);\n }\n return n;\n });\n return _drawDalle.apply(this, arguments);\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChatService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1$1.Router\n }, {\n type: NovaCloudService\n }, {\n type: i2.Platform\n }, {\n type: i2.AlertController\n }, {\n type: i2.NavController\n }, {\n type: CrossService\n }, {\n type: NovaUploadService\n }], null);\n})();\nclass ImagineService {\n constructor(e, t, n) {\n this.http = e, this.ncloud = t, this.uploadServ = n, this.taskDetailMap = {}, this.newWorkList = [], this.myWorkList = [];\n }\n drawDalle(e) {\n var _this37 = this;\n return _asyncToGenerator(function* () {\n let t = yield drawDalle(e);\n return t !== null && t !== void 0 && t.id && _this37.newWorkList.unshift(t), t;\n })();\n }\n priceDalle(e) {\n let t = [{\n model: \"dall-e-3\",\n quality: null,\n size: \"1024x1024\",\n credit: 6.4\n }, {\n model: \"dall-e-3\",\n quality: null,\n size: \"1024x1792\",\n credit: 12.8\n }, {\n model: \"dall-e-3\",\n quality: null,\n size: \"1792x1024\",\n credit: 12.8\n }, {\n model: \"dall-e-3\",\n quality: \"hd\",\n size: \"1024x1024\",\n credit: 12.8\n }, {\n model: \"dall-e-3\",\n quality: \"hd\",\n size: \"1024x1792\",\n credit: 19.2\n }, {\n model: \"dall-e-3\",\n quality: \"hd\",\n size: \"1792x1024\",\n credit: 19.2\n }, {\n model: \"dall-e-2\",\n quality: null,\n size: \"1024x1024\",\n credit: 3.2\n }, {\n model: \"dall-e-2\",\n quality: null,\n size: \"512x512\",\n credit: 2.88\n }, {\n model: \"dall-e-2\",\n quality: null,\n size: \"256x256\",\n credit: 2.56\n }].find(t => t.model == e.model && t.quality == e.quality && t.size == e.size);\n return (t === null || t === void 0 ? void 0 : t.credit) || 19.2;\n }\n priceStableDiffusion(e) {\n var _e$imgOptions, _e$imgOptions2, _e$imgOptions3, _e$imgOptions4, _e$controlnet;\n let t = e.width * e.height,\n n = 763e-9 * t * e.steps + 2278e-8 * t * ((e === null || e === void 0 ? void 0 : e.upscale) || 0) + ((e === null || e === void 0 ? void 0 : e.hrSteps) || 0) * t * ((e === null || e === void 0 ? void 0 : e.hrScale) || 0) * ((e === null || e === void 0 ? void 0 : e.hrScale) || 0) * 763e-9 + (e !== null && e !== void 0 && e.faceFix ? 2 : 0) + (e !== null && e !== void 0 && (_e$imgOptions = e.imgOptions) !== null && _e$imgOptions !== void 0 && _e$imgOptions.removeBackground ? 2 : 0) + (e !== null && e !== void 0 && (_e$imgOptions2 = e.imgOptions) !== null && _e$imgOptions2 !== void 0 && _e$imgOptions2.redrawBackground ? 2 : 0) + (e !== null && e !== void 0 && (_e$imgOptions3 = e.imgOptions) !== null && _e$imgOptions3 !== void 0 && _e$imgOptions3.facePreservation ? 2 : 0) + (e !== null && e !== void 0 && (_e$imgOptions4 = e.imgOptions) !== null && _e$imgOptions4 !== void 0 && _e$imgOptions4.genderDetect ? 1 : 0) + 2 * ((e === null || e === void 0 || (_e$controlnet = e.controlnet) === null || _e$controlnet === void 0 || (_e$controlnet = _e$controlnet.units) === null || _e$controlnet === void 0 ? void 0 : _e$controlnet.length) || 0);\n return n = .3 * n * e.batchSize, n;\n }\n b64DataToBase64Image(e) {\n let t = atob(e),\n n = new Blob([t], {\n type: \"image/webp\"\n });\n new Promise(e => {\n let t = new FileReader();\n t.onloadend = function () {\n let n = t.result;\n console.log(n), e(n);\n }, t.readAsDataURL(n);\n });\n }\n draw(e) {\n var _this38 = this;\n return _asyncToGenerator(function* () {\n let t = yield _this38.ncloud.apig(\"aigc/sdapi/v1/draw\", e),\n n = t === null || t === void 0 ? void 0 : t.paintingSign;\n return n && setTimeout( /*#__PURE__*/_asyncToGenerator(function* () {\n let e = new Parse__default.Query(\"ImagineWork\");\n e.equalTo(\"taskId\", n);\n let t = yield e.first();\n console.log(t), (t === null || t === void 0 ? void 0 : t.id) && _this38.newWorkList.unshift(t);\n }), 1e3), t;\n })();\n }\n taskDetail(e) {\n var _this39 = this;\n return _asyncToGenerator(function* () {\n let t = yield _this39.ncloud.apig(\"aigc/sdapi/v1/task/detail\", {\n taskId: e\n });\n return console.log(t), _this39.taskDetailMap[e] = t, t;\n })();\n }\n getMyWorkQuery() {\n let e = Parse__default.User.current();\n if (!(e !== null && e !== void 0 && e.id)) return;\n let t = this.getWorkQuery();\n return t.include(\"model\", \"module\", \"user\"), t.equalTo(\"user\", e.toPointer()), t;\n }\n getWorkQuery() {\n let e = new Date(new Date().getTime() - 6e4),\n t = Parse__default.Query.fromJSON(\"ImagineWork\", {\n where: {\n $or: [{\n createdAt: {\n $lte: e\n },\n progress: {\n $ne: 0\n }\n }, {\n createdAt: {\n $gt: e\n }\n }]\n }\n });\n return t.include(\"model\", \"module\", \"user\"), t.notEqualTo(\"isDeleted\", !0), t.notEqualTo(\"isFailed\", !0), t.doesNotExist(\"respData.error\"), t.doesNotExist(\"respData.data.taskLimitCount\"), t.addDescending(\"createdAt\"), t;\n }\n getimg() {\n var _this40 = this;\n return new Promise((e, t) => {\n let n = document.createElement(\"input\");\n n.type = \"file\", n.click();\n let _handleChange = /*#__PURE__*/function () {\n var _ref9 = _asyncToGenerator(function* () {\n if (n.removeEventListener(\"change\", _handleChange), n.files && n.files.length > 0) {\n let t = n.files[0],\n o = yield _this40.uploadServ.upload(t, e => {\n console.log(e), e.total.percent.toFixed(2);\n });\n e(o.url);\n } else t(\"未选择文件\");\n });\n return function handleChange() {\n return _ref9.apply(this, arguments);\n };\n }();\n n.addEventListener(\"change\", _handleChange);\n });\n }\n}\n_ImagineService = ImagineService;\n_ImagineService.ɵfac = function _ImagineService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ImagineService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(NovaCloudService), i0.ɵɵinject(NovaUploadService));\n};\n_ImagineService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _ImagineService,\n factory: _ImagineService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ImagineService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1.HttpClient\n }, {\n type: NovaCloudService\n }, {\n type: NovaUploadService\n }], null);\n})();\nclass FmaiService {\n constructor(e, t) {\n this.imagine = e, this.chat = t;\n }\n}\n_FmaiService = FmaiService;\n_FmaiService.ɵfac = function _FmaiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmaiService)(i0.ɵɵinject(ImagineService), i0.ɵɵinject(ChatService));\n};\n_FmaiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _FmaiService,\n factory: _FmaiService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmaiService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: ImagineService\n }, {\n type: ChatService\n }], null);\n})();\nclass ImagineWork {\n constructor(e) {\n this.task = null, this.progress = 0, this.images = [], this.id = e, this.fetchTask();\n }\n fetchTask() {\n var _this41 = this;\n return _asyncToGenerator(function* () {\n if (_this41.id) {\n const e = new Parse__default.Query(\"ImagineWork\");\n try {\n var _this41$images;\n let t = yield e.get(_this41.id);\n _this41.task = t, t.id && (_this41.progress = _this41.task.get(\"progress\"), _this41.images = _this41.task.get(\"images\"), ((_this41$images = _this41.images) === null || _this41$images === void 0 ? void 0 : _this41$images.length) && (_this41.progress = 1));\n } catch (e) {\n console.error(\"Error fetching task:\", e);\n }\n }\n return _this41.task;\n })();\n }\n draw(e) {\n return new Observable(t => {\n if (this.task) return t.next(this.task), void t.complete();\n drawDalle(e).then(e => {\n this.id = e.id, this.fetchTask();\n const n = new Parse__default.Query(\"ImagineWork\"),\n o = setInterval(() => {\n n.get(this.id).then(e => {\n var _this$task;\n this.progress += .01, this.task = e, t.next(e), ((_this$task = this.task) === null || _this$task === void 0 || (_this$task = _this$task.get(\"images\")) === null || _this$task === void 0 ? void 0 : _this$task.length) && (this.progress = 1, clearInterval(o), t.complete());\n }).catch(e => {\n clearInterval(o), t.error(e);\n });\n }, 1e3);\n }).catch(e => {\n t.error(e);\n });\n });\n }\n}\nlet colorMap = [\"primary\", \"secondary\", \"tertiary\", \"success\", \"warning\", \"danger\", \"light\", \"medium\", \"dark\"];\nconst MASK_LIST = [{\n name: \"执行李\",\n type: \"employee\",\n title: \"首席执行官\",\n desc: \"一位富有远见和领导才能的创业新秀。她具备战略思维和决策能力,能够为公司设定长期目标并领导团队实现这些目标。\",\n color: colorMap[0],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/15_48766.jpg?e=1695974629&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:oPkQSsyQLLD08R_J4SMeO1f1RdM=\"\n}, {\n name: \"技术刘\",\n type: \"employee\",\n title: \"首席技术官\",\n desc: \"一位技术专家,拥有广泛的技术知识和经验。他善于解决复杂的技术问题,并能够领导开发团队实施创新的技术解决方案。\",\n color: colorMap[1],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/9/29/9_619877.jpg?e=1695952672&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:LDuSg8_n5g4Rj_8F5PKrGzV4T54=\", \"https://imgsource.huashi6.com/images/ai/2023/9/27/20_17767.jpg?e=1695819037&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:a9uOeeJMN2oopK-3WQZzldPXfH0=\"]\n}, {\n name: \"点子王\",\n type: \"employee\",\n title: \"首席运营官\",\n desc: \"一位富有创意和市场洞察力的市场营销专家。她擅长制定营销策略,了解目标受众,并能够利用各种渠道和工具推广公司的产品或服务。\",\n color: colorMap[2],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/9_186291.jpg?e=1695952125&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:EhEUtwnC9hpu-SXXsBrp2Q-rcJk=\"\n}, {\n title: \"设计总监\",\n name: \"李欣\",\n type: \"employee\",\n desc: \"一位富有创造力和用户导向思维的设计师。她能够理解用户需求,并通过设计直观、易用且吸引人的用户界面来提供出色的用户体验。\",\n color: colorMap[3],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/9_18099.jpg?e=1695952201&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:G_a60v52iTTqvJgeTSa_8zJUY2w=\"\n}, {\n title: \"运营经理\",\n name: \"刘洁\",\n type: \"employee\",\n desc: \"一位组织能力强、注重细节并擅长解决问题的运营专家。她能够协调各个部门的工作,并确保公司的运营流程高效运行。\",\n color: colorMap[4],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/9_842519.jpg?e=1695952125&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:FM_kKZDzkcLQ1EX4266dXU46cRc=\"\n}, {\n title: \"销售经理\",\n name: \"张伟\",\n type: \"employee\",\n desc: \"一位富有销售天赋和人际交往能力的销售专家。他善于与客户建立良好的关系,并能够推动销售团队实现业绩目标。\",\n color: colorMap[5],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/15_739110.jpg?e=1695974920&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:vg_sn-qn67MJS-7j2o7mWzOCUSk=\"\n}, {\n title: \"数据分析师\",\n name: \"杨晨\",\n type: \"employee\",\n desc: \"一位善于解读数据和提供商业洞察的数据分析专家。她能够收集、分析和解释数据,为公司的决策制定提供有力的支持。\",\n color: colorMap[6],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/15_204321.jpg?e=1695974779&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:dC2sGmJekSPBTCycPF76BkQPBoo=\"\n}, {\n title: \"财务经理\",\n name: \"赵晓\",\n type: \"employee\",\n desc: \"一位精通财务管理和分析的专业人士。她能够制定财务战略、管理公司的财务流程,并提供准确的财务报告和预测。\",\n color: colorMap[7],\n cover: \"https://imgsource.huashi6.com/images/ai/2023/9/29/15_947878.jpg?e=1695974779&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:TFGn0_l2PqhUTe9G4A3it769hcU=\"\n}, {\n title: \"品牌专员\",\n name: \"王雅\",\n type: \"employee\",\n desc: \"一位富有创意和品牌意识的专业人士。她能够塑造和管理公司的品牌形象,制定品牌营销策略,并与内部和外部利益相关者建立良好的合作关系。\",\n color: colorMap[8],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_129581.jpg?e=1695975151&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:YQrpiv1hBKRPIdaEbDDDkLFuPG8=\", \"https://imgsource.huashi6.com/images/ai/2023/9/29/15_912136.jpg?e=1695975151&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:8SVMU1rdKD8eaJ1gH_qGQzcrMhM=\"]\n}, {\n title: \"全科\",\n name: \"孔博\",\n type: \"teacher\",\n desc: \"擅长全科教学的金牌教师,知识面广泛,博古通今,因材施教,耐心稳重。\",\n color: colorMap[0],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_40958.jpg?e=1697604189&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:U7r1Td30lXdf9mE1TMVAnDhBP6c=\"]\n}, {\n title: \"语文\",\n name: \"王明\",\n type: \"teacher\",\n desc: \"激发学生对文学的热爱,引导他们成为优秀的作家和沟通者。\",\n color: colorMap[1],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_698893.jpg?e=1697602689&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:hK_AuY7BA1pp33QVeUue5QjIg4o=\"]\n}, {\n title: \"数学\",\n name: \"万红\",\n type: \"teacher\",\n desc: \"以清晰的逻辑和耐心的指导,帮助学生掌握数学的基础知识和解题技巧。\",\n color: colorMap[2],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_256253.jpg?e=1697603314&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:K2iqp_ZzHYzXNu_0VJlywyANHp8=\"]\n}, {\n title: \"英语\",\n name: \"张瑞\",\n type: \"teacher\",\n desc: \"激发学生对英语学习的兴趣,培养他们的听、说、读、写能力,让他们自信地运用英语。\",\n color: colorMap[3],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_266171.jpg?e=1697603707&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:uhpxBbT-jlSt_KjAnj0SFsFAjWU=\"]\n}, {\n title: \"物理\",\n name: \"金晓\",\n type: \"teacher\",\n desc: \"通过实验和案例,帮助学生理解物理原理,培养他们的科学思维和实验技能。\",\n color: colorMap[4],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_694925.jpg?e=1697603071&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:FznZxhkYUrZ-BzX05dvNt8acTUw=\"]\n}, {\n title: \"化学\",\n name: \"陈华\",\n type: \"teacher\",\n desc: \"激发学生对化学的好奇心,教授他们化学知识和实验技巧,培养他们的实验和分析能力。\",\n color: colorMap[5],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_942234.jpg?e=1697603169&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:__2T8cxLl4J0AwMR9MJdDiooDF0=\"]\n}, {\n title: \"生物\",\n name: \"杨婷\",\n type: \"teacher\",\n desc: \"引导学生探索生命的奥秘,培养他们的科学观察和实验能力,让他们热爱生物科学。\",\n color: colorMap[6],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_330738.jpg?e=1697603491&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:2K5-DHPnUQ-R9GGxtWKiEG68QlE=\"]\n}, {\n title: \"历史\",\n name: \"赵亮\",\n type: \"teacher\",\n desc: \"帮助学生了解历史事件和文化背景,培养他们的历史意识和批判思维。\",\n color: colorMap[7],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_256302.jpg?e=1697602689&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:YP7ffC1YKO-Pb0C3ks4caT0QqZk=\"]\n}, {\n title: \"地理\",\n name: \"林丽\",\n type: \"teacher\",\n desc: \"引导学生探索地球的奥秘,培养他们的地理观察和分析能力,让他们热爱地理科学。\",\n color: colorMap[8],\n cover: [\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_555804.jpg?e=1697604054&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:xLN4QW0x9jx9lEB4EFHWvI_gEsI=\"]\n}];\nclass UtilnowPipe {\n constructor() {\n this.enLocale = {\n \"秒钟前\": \" seconds ago\",\n \"分钟前\": \" minutes ago\",\n \"小时前\": \" hours ago\",\n \"天前\": \" days ago\"\n };\n }\n transform(e, t) {\n let n = (new Date().getTime() - e.getTime()) / 1e3;\n if (n <= 60) return this.handleArgs(n.toFixed(0), \"秒钟前\", t);\n let o = n / 60;\n if (o < 60) return this.handleArgs(o.toFixed(0), \"分钟前\", t);\n let i = o / 60;\n if (i < 24) return this.handleArgs(i.toFixed(0), \"小时前\", t);\n let a = i / 24;\n return a < 7 ? this.handleArgs(a.toFixed(0), \"天前\", t) : `${e === null || e === void 0 ? void 0 : e.getFullYear()}-${(e === null || e === void 0 ? void 0 : e.getMonth()) + 1}-${e === null || e === void 0 ? void 0 : e.getDate()}`;\n }\n handleArgs(e, t, n) {\n var _n$constructor;\n return \"en\" == n && (t = this.enLocale[t]), \"TranslateService\" == (n === null || n === void 0 || (_n$constructor = n.constructor) === null || _n$constructor === void 0 ? void 0 : _n$constructor.name) && (console.log(t), \"en\" == (n === null || n === void 0 ? void 0 : n.getDefaultLang()) && (t = this.enLocale[t])), \"json\" == n ? {\n unit: t,\n value: e\n } : e + t;\n }\n}\n_UtilnowPipe = UtilnowPipe;\n_UtilnowPipe.ɵfac = function _UtilnowPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _UtilnowPipe)();\n};\n_UtilnowPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"utilnow\",\n type: _UtilnowPipe,\n pure: true,\n standalone: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UtilnowPipe, [{\n type: Pipe,\n args: [{\n name: \"utilnow\",\n standalone: !0\n }]\n }], null, null);\n})();\nclass ChatContentPipe {\n transform(e, ...t) {\n let n = (t === null || t === void 0 ? void 0 : t[0]) || \"text\";\n return \"text\" == n ? getMessageContentText(e) : \"image_url\" == n ? getMessageImageUrl(e) : e;\n }\n}\n_ChatContentPipe = ChatContentPipe;\n_ChatContentPipe.ɵfac = function _ChatContentPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ChatContentPipe)();\n};\n_ChatContentPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"chatContent\",\n type: _ChatContentPipe,\n pure: true,\n standalone: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChatContentPipe, [{\n type: Pipe,\n args: [{\n name: \"chatContent\",\n pure: !0,\n standalone: !0\n }]\n }], null, null);\n})();\nclass HidexmlPipe {\n transform(e, ...t) {\n return e ? this.hideXmlTags(e) : \"\";\n }\n hideXmlTags(e) {\n return e.replace(/<[^>]*>/g, \"\");\n }\n}\n_HidexmlPipe = HidexmlPipe;\n_HidexmlPipe.ɵfac = function _HidexmlPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _HidexmlPipe)();\n};\n_HidexmlPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"hidexml\",\n type: _HidexmlPipe,\n pure: true,\n standalone: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HidexmlPipe, [{\n type: Pipe,\n args: [{\n name: \"hidexml\",\n standalone: !0\n }]\n }], null, null);\n})();\nclass MarkdownMathJax {\n constructor(e) {\n this.options = e, this.adaptor = liteAdaptor(), RegisterHTMLHandler(this.adaptor);\n }\n text_to_mathjax(e, t) {\n var _e4, _e5, _t10;\n if (!((_e4 = e) !== null && _e4 !== void 0 && _e4.length)) return \"\";\n if (!((_e5 = e) !== null && _e5 !== void 0 && _e5.replace)) return \"\";\n t = t || this.options;\n let n = new SVG({\n fontCache: \"local\"\n });\n \"chtml\" == ((_t10 = t) === null || _t10 === void 0 ? void 0 : _t10.output) && (n = new CHTML());\n const o = mathjax.document(\"\", {\n skipHtmlTags: [\"script\", \"noscript\", \"style\", \"textarea\", \"pre\", \"code\", \"annotation\", \"annotation-xml\"],\n InputJax: new TeX({\n processEscapes: !0,\n packages: AllPackages\n }),\n OutputJax: n\n }),\n i = {\n em: 16,\n ex: 8,\n containerWidth: 1280\n };\n return [/\\$\\$\\ (.+?)\\ \\$\\$/g, /\\$\\$(.+?)\\$\\$/g, /\\$\\$\\n(.+?)\\n\\$\\$/g, /\\$(.+?)\\$/g, /\\\\\\((.+?)\\\\\\)/g, /\\\\\\[(.+?)\\\\\\]/g].forEach(t => {\n e = e.replace(t, (e, n) => {\n let a;\n console.log(t, e, n);\n try {\n a = o.convert(`${n}`, i);\n } catch (e) {}\n if (a) {\n return `<span class=\"mathjax raw\" style=\"margin-left:10px;margin-right:10px;\">${this.adaptor.innerHTML(a)}</span>`;\n }\n return n;\n });\n }), e;\n }\n}\nlet md = new MarkdownIt({\n html: !0,\n xhtmlOut: !0,\n breaks: !1,\n linkify: !1,\n typographer: !1,\n quotes: \"“”‘’\",\n highlight: function (e, t) {\n if (t && hljs.getLanguage(t)) try {\n return `<pre style=\"position:relative;padding:10px;\" class=\"hljs lang-${t}\"><code>${hljs.highlight(e, {\n language: t\n }).value}</code><small class=\"hljs-lang\"><span class=\"sr-only\">Language:</span>${t}</small></pre>`;\n } catch (e) {}\n return \"\";\n }\n});\nmd.use(abbr), md.use(footnote), md.use(deflist), md.use(mark), md.use(ins), md.use(sub), md.use(sup), md.use(ruby);\nconst mditConfig = {\n plantumlServer: \"https://www.plantuml.com/plantuml\"\n};\nfunction makePlantumlURL(e) {\n const t = plantumlEncoder.encode(e);\n return `${mditConfig.plantumlServer}/svg/${t}`;\n}\nmd.renderer.rules.plantuml = (e, t, n, o, i) => {\n const a = e[t];\n if (\"plantuml\" !== a.type) return e[t].content;\n return `\\n <img src=\"${makePlantumlURL(a.content)}\" />\\n <pre style=\"position:relative;padding:10px;\" class=\"hljs lang-plantuml\"><code>${a.content}</code><small class=\"hljs-lang\"><span class=\"sr-only\">Language:</span>plantuml</small></pre>\\n `;\n}, md.core.ruler.push(\"plantuml\", e => {\n const t = e.tokens;\n for (const e of t) \"fence\" === e.type && \"plantuml\" === e.info && (e.type = \"plantuml\");\n});\nconst spaceregex = /\\s*/,\n notinhtmltagregex = /(?![^<]*>|[^<>]*<\\/)/;\nlet coloregex = /\\[color=([#|(|)|\\s|,|\\w]*?)\\]/;\ncoloregex = new RegExp(coloregex.source + notinhtmltagregex.source, \"g\");\nlet nameregex = /\\[name=(.*?)\\]/,\n timeregex = /\\[time=([:|,|+|-|(|)|\\s|\\w]*?)\\]/;\nconst nameandtimeregex = new RegExp(nameregex.source + spaceregex.source + timeregex.source + notinhtmltagregex.source, \"g\");\nfunction replaceExtraTags(e) {\n return console.log(\"replaceExtraTags\", e), e = (e = (e = (e = e.replace(coloregex, '<span class=\"color\" data-color=\"$1\"></span>')).replace(nameandtimeregex, '<small><i class=\"fa fa-user\"></i> $1 <i class=\"fa fa-clock-o\"></i> $2</small>')).replace(nameregex, '<small><i class=\"fa fa-user\"></i> $1</small>')).replace(timeregex, '<small><i class=\"fa fa-clock-o\"></i> $1</small>'), console.log(\"replaceExtraTags\", e), e;\n}\nfunction finishView(e) {\n let t = $.parseHTML(`<html><body><div id=\"topmd\">${e}</div></body></html>`)[0],\n n = $(t),\n o = n.find(\"blockquote.raw\").removeClass(\"raw\");\n o = n.find(\"blockquote\");\n let i = $(o).find(\"p\");\n i.each((e, t) => {\n let n = $(t).html();\n n = replaceExtraTags(n), t.innerHTML = n, $(t).html(n), i[e].innerHTML = n, $(i[e]).html(n);\n }), o.find(\".color\").each((e, t) => {\n let n = $(t).attr(\"data-color\");\n $(t).closest(\"blockquote\").css(\"border-left-color\", n);\n });\n let a = \"<style>\\n .markdown-section {\\n color: black;\\n text-align: left;\\n }\\n .markdown-section pre .hljs-lang{\\n text-transform: uppercase;\\n font-weight: 700;\\n font-size: .75rem;\\n line-height: 1rem;\\n padding-top: .25rem;\\n padding-bottom: .25rem;\\n padding-left: .5rem;\\n padding-right: .5rem;\\n background-color: rgba(0,0,0,.3);\\n border-bottom-left-radius: .375rem;\\n top:0;\\n right:0;\\n position:absolute;\\n}\\n\\n }\\n .markdown-section pre .hljs {\\n position:relative!important;\\n background: #272822!important;\\n padding:10px!important;\\n color: #ddd;\\n text-shadow: none!important;\\n }\\n\\n .markdown-section blockquote {\\n margin: 0;\\n margin-bottom: 0px;\\n margin-bottom: .85em;\\n padding: 0 15px;\\n color: #858585;\\n border-left: 4px solid #e5e5e5;\\n border-left-color: rgb(229, 229, 229);\\n }\\n .markdown-section img {\\n max-width:100%;\\n }\\n </style>\" + (n.html() || e);\n return a = a.replaceAll('src=\"/uploads/', 'src=\"https://md.fmode.cn/uploads/'), a;\n}\nnameregex = new RegExp(nameregex.source + notinhtmltagregex.source, \"g\"), timeregex = new RegExp(timeregex.source + notinhtmltagregex.source, \"g\");\nclass MarkdownParse {\n constructor() {}\n parseToHTML(e) {\n var _e6, _e7;\n if (!((_e6 = e) !== null && _e6 !== void 0 && _e6.length)) return \"\";\n if (!((_e7 = e) !== null && _e7 !== void 0 && _e7.replace)) return \"\";\n let t = new MarkdownMathJax();\n e = e.split(\"```\").map((e, n) => n % 2 == 0 ? e = t.text_to_mathjax(e, {\n output: \"svg\"\n }) : e).join(\"```\");\n let n = md.render(e);\n return n = finishView(n), n;\n }\n info(...e) {}\n}\nclass MarkdownPreviewComponent {\n constructor(e, t) {\n this.domSan = e, this.renderer = t, this.content = \"\", this.render = !0;\n }\n ngAfterViewInit() {\n this.renderMdToHTML();\n }\n renderMdToHTML() {\n if (!this.render) return;\n let e = new MarkdownParse().parseToHTML(this.content);\n this.safeHTML = this.domSan.bypassSecurityTrustHtml(e);\n let t = this.renderer.createElement(\"div\");\n t.innerHTML = e, this.renderer.appendChild(this.mdContent.nativeElement, t);\n }\n}\n_MarkdownPreviewComponent = MarkdownPreviewComponent;\n_MarkdownPreviewComponent.ɵfac = function _MarkdownPreviewComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _MarkdownPreviewComponent)(i0.ɵɵdirectiveInject(i1$2.DomSanitizer), i0.ɵɵdirectiveInject(i0.Renderer2));\n};\n_MarkdownPreviewComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _MarkdownPreviewComponent,\n selectors: [[\"fm-markdown-preview\"]],\n viewQuery: function _MarkdownPreviewComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.mdContent = _t.first);\n }\n },\n inputs: {\n content: \"content\",\n render: \"render\"\n },\n decls: 3,\n vars: 2,\n consts: [[\"mdContent\", \"\"], [1, \"message-body\"], [\"class\", \"markdown-section\", 4, \"ngIf\"], [\"class\", \"pre-section\", 4, \"ngIf\"], [1, \"markdown-section\"], [1, \"pre-section\"]],\n template: function _MarkdownPreviewComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1);\n i0.ɵɵtemplate(1, _MarkdownPreviewComponent_div_1_Template, 2, 0, \"div\", 2)(2, _MarkdownPreviewComponent_div_2_Template, 2, 1, \"div\", 3);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.render);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.render);\n }\n },\n dependencies: [i2$2.NgIf],\n styles: [\"[_nghost-%COMP%]{overflow-x:auto}.message-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{text-align:left;overflow-x:auto}.message-body[_ngcontent-%COMP%] .pre-section[_ngcontent-%COMP%]{white-space:pre-wrap}.markdown-section[_ngcontent-%COMP%] blockquote[_ngcontent-%COMP%]{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MarkdownPreviewComponent, [{\n type: Component,\n args: [{\n selector: \"fm-markdown-preview\",\n template: '<div class=\"message-body\">\\n <div *ngIf=\"render\" #mdContent class=\"markdown-section\">\\n </div>\\n <div *ngIf=\"!render\" class=\"pre-section\">\\n {{content}}\\n </div>\\n</div>',\n styles: [\":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\\n\"]\n }]\n }], () => [{\n type: i1$2.DomSanitizer\n }, {\n type: i0.Renderer2\n }], {\n content: [{\n type: Input\n }],\n mdContent: [{\n type: ViewChild,\n args: [\"mdContent\"]\n }],\n render: [{\n type: Input\n }]\n });\n})();\nclass MarkdownPreviewModule {}\n_MarkdownPreviewModule = MarkdownPreviewModule;\n_MarkdownPreviewModule.ɵfac = function _MarkdownPreviewModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _MarkdownPreviewModule)();\n};\n_MarkdownPreviewModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _MarkdownPreviewModule\n});\n_MarkdownPreviewModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(MarkdownPreviewModule, [{\n type: NgModule,\n args: [{\n declarations: [MarkdownPreviewComponent],\n imports: [CommonModule],\n exports: [MarkdownPreviewComponent]\n }]\n }], null, null);\n})();\nclass ClipboardService {\n constructor(e) {\n this.toastCtrl = e;\n }\n copyToClipboard(e) {\n var _this42 = this;\n return _asyncToGenerator(function* () {\n try {\n return yield Clipboard.write({\n string: e\n }), void _this42.copySuccess();\n } catch (t) {\n try {\n var _navigator;\n if (navigator.clipboard && window.isSecureContext) return yield (_navigator = navigator) === null || _navigator === void 0 || (_navigator = _navigator.clipboard) === null || _navigator === void 0 ? void 0 : _navigator.writeText(e), void _this42.copySuccess();\n throw !1;\n } catch (t) {\n let n = document.createElement(\"textarea\");\n n.value = e, n.style.position = \"fixed\", n.style.left = \"-9999px\", n.style.top = \"-9999px\", document.body.appendChild(n), n.focus(), n.select();\n try {\n var _document;\n let e = (_document = document) === null || _document === void 0 ? void 0 : _document.execCommand(\"copy\");\n e ? _this42.copySuccess() : console.error(\"无法复制文本\");\n } catch (e) {\n console.error(\"无法复制文本: \", e);\n }\n document.body.removeChild(n);\n }\n }\n })();\n }\n copySuccess() {\n var _this43 = this;\n return _asyncToGenerator(function* () {\n (yield _this43.toastCtrl.create({\n duration: 1e3,\n message: \"复制成功\",\n color: \"primary\",\n icon: \"information-circle\",\n position: \"top\"\n })).present();\n })();\n }\n}\n_ClipboardService = ClipboardService;\n_ClipboardService.ɵfac = function _ClipboardService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ClipboardService)(i0.ɵɵinject(i2.ToastController));\n};\n_ClipboardService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _ClipboardService,\n factory: _ClipboardService.ɵfac,\n providedIn: \"root\"\n});\nfunction pcmtoWav(e, t, n, o) {\n let i = {\n chunkId: [82, 73, 70, 70],\n chunkSize: 0,\n format: [87, 65, 86, 69],\n subChunk1Id: [102, 109, 116, 32],\n subChunk1Size: 16,\n audioFormat: 1,\n numChannels: n || 1,\n sampleRate: t || 16e3,\n byteRate: 0,\n blockAlign: 0,\n bitsPerSample: o || 16,\n subChunk2Id: [100, 97, 116, 97],\n subChunk2Size: 0\n };\n function u32ToArray(e) {\n return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255];\n }\n function u16ToArray(e) {\n return [255 & e, e >> 8 & 255];\n }\n let a = new Uint8Array(e);\n i.blockAlign = i.numChannels * i.bitsPerSample >> 3, i.byteRate = i.blockAlign * i.sampleRate, i.subChunk2Size = a.length * (i.bitsPerSample >> 3), i.chunkSize = 36 + i.subChunk2Size;\n let r = i.chunkId.concat(u32ToArray(i.chunkSize), i.format, i.subChunk1Id, u32ToArray(i.subChunk1Size), u16ToArray(i.audioFormat), u16ToArray(i.numChannels), u32ToArray(i.sampleRate), u32ToArray(i.byteRate), u16ToArray(i.blockAlign), u16ToArray(i.bitsPerSample), i.subChunk2Id, u32ToArray(i.subChunk2Size)),\n s = new Uint8Array(r),\n l = new Uint8Array(s.length + a.length);\n return l.set(s), l.set(a, s.length), new Blob([l], {\n type: \"audio/wav\"\n });\n}\nfunction resampleAudio(e, t, n) {\n let o = e.length,\n i = Math.floor(o / t * n),\n a = [];\n for (let o = 0; o < i; o++) {\n let i = Math.floor(o * (t / n));\n a[o] = e[i];\n }\n return a;\n}\nfunction convertFrameBufferToBase64(e) {\n const t = new Uint8Array(2 * e.length);\n for (let n = 0; n < e.length; n++) {\n const o = e[n];\n t[2 * n] = 255 & o, t[2 * n + 1] = o >> 8 & 255;\n }\n return btoa(String.fromCharCode.apply(null, t));\n}\nfunction resampleBuffer(e, t, n) {\n const o = t / n,\n i = Math.round(e.length / o),\n a = new Int16Array(i);\n for (let t = 0; t < i; t++) {\n const n = Math.floor(t * o);\n a[t] = e[n];\n }\n return a;\n}\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ClipboardService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i2.ToastController\n }], null);\n})();\nconst SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition,\n SpeechGrammarList = window.SpeechGrammarList || window.webkitSpeechGrammarList;\nclass WebSpeech {\n constructor(e) {\n this.platform = e;\n }\n startRecognition(e = \"Nihao | Hello\") {\n if (!SpeechRecognition) return;\n if (this.recognition && this.recognition.stop(), console.log(\"startRecognition\"), this.recognition = new SpeechRecognition(), !this.recognition) return;\n this.recognition.continuous = !0;\n let t = `#JSGF V1.0; grammar words; public <word> = ${e} ;`;\n this.recognition = new SpeechRecognition();\n let n = new SpeechGrammarList();\n n.addFromString(t, 1), this.recognition.grammars = n, this.recognition.start(), this.recognition.onresult = e => {\n var _t$, _t$2, _t$3;\n let t = e.results || [];\n console.log(t), console.log((_t$ = t[0]) === null || _t$ === void 0 ? void 0 : _t$[0]), ((_t$2 = t[0]) === null || _t$2 === void 0 || (_t$2 = _t$2[0]) === null || _t$2 === void 0 || (_t$2 = _t$2.transcript) === null || _t$2 === void 0 ? void 0 : _t$2.indexOf(\"Nihao\")) > -1 && console.log(\"Nihao成功唤醒\"), ((_t$3 = t[0]) === null || _t$3 === void 0 || (_t$3 = _t$3[0]) === null || _t$3 === void 0 || (_t$3 = _t$3.transcript) === null || _t$3 === void 0 ? void 0 : _t$3.indexOf(\"Hello\")) > -1 && console.log(\"Hello成功唤醒\"), this.startRecognition();\n }, this.recognition.onend = e => {\n console.log(e);\n }, this.recognition.onerror = e => {\n console.error(e);\n };\n }\n speak(e, t = 1, n = 1.2, o = .8) {\n this.platform.is(\"capacitor\") || this.speakWithEdge(e, 1, 1.2, .8);\n }\n speakWithEdge(e, t = 1, n = 1.2, o = .8) {\n let i = new SpeechSynthesisUtterance(e),\n a = this.getVoiceByName(\"Yaoyao\");\n console.log(a), a && (i.voice = a), i.rate = n, i.pitch = t, i.volume = 10, window.speechSynthesis.speak(i);\n }\n getVoiceByName(e) {\n return window.speechSynthesis.getVoices().find(t => t.name.indexOf(e) > -1);\n }\n}\nclass FmodeVoiceService {\n constructor(e, t) {\n this.platform = e, this.diagnostic = t, this.webSpeech = WebSpeech, this.isUserFinish = !1, this.recordWavBlob = null, this.recordPcmBlob = null, this.recordDuration = 0, this.recordType = \"pcm\", this.encodingType = \"raw\", this.connStatus = \"\", this.btnStatus = \"UNDEFINED\", this.resultText = \"\", this.resultTextTemp = \"\", this.APPID = \"50f4a46c\", this.API_SECRET = \"NzFlNmFhZDJjMDNkZGM3NzI0Mzg2OGNm\", this.API_KEY = \"106ddc40dfd4b9ca6d7b47c70fada749\", this.durationStr = \"00:00\", this.duration = 0, this.requestPermission();\n }\n toggleRecord() {\n console.log(this.btnStatus), \"UNDEFINED\" === this.btnStatus || \"CLOSED\" === this.btnStatus ? this.startTalk() : \"CONNECTING\" !== this.btnStatus && \"OPEN\" !== this.btnStatus || this.finishTalk();\n }\n finishTalk() {\n this.isUserFinish = !0, this.onBeforeFinishTalk && this.onBeforeFinishTalk(), this.recordStop();\n }\n startTalk(e) {\n var _this44 = this;\n return _asyncToGenerator(function* () {\n var _event;\n _this44.resultText = \"\", _this44.resultTextTemp = \"\", _this44.onBeforeStartTalk && _this44.onBeforeStartTalk(), (_event = event) !== null && _event !== void 0 && _event.preventDefault(), yield _this44.openWithPriviledge(), setTimeout(() => {\n _this44.connectWebSocket();\n }, 100), _this44.startCountdown(), _this44.onAfterStartTalk && _this44.onAfterStartTalk();\n })();\n }\n cancelTalk() {\n var _this$iatWS;\n this.onBeforeCancelTalk && this.onBeforeCancelTalk(), this.recordStop(), (_this$iatWS = this.iatWS) !== null && _this$iatWS !== void 0 && _this$iatWS.close(), this.resultText = null, this.onAfterCancelTalk && this.onAfterCancelTalk();\n }\n recordStart() {\n var _this45 = this;\n return _asyncToGenerator(function* () {\n _this45.createRecorder(), yield _this45.openWithPriviledge(), _this45.recorder.start(), _this45.changeBtnStatus(\"OPEN\"), _this45.onAfterRecordStart && _this45.onAfterRecordStart();\n })();\n }\n recordStop() {\n var _this46 = this;\n return new Promise(e => {\n var _this$recorder;\n clearInterval(this.countdownInterval), this.changeBtnStatus(\"CLOSED\"), (_this$recorder = this.recorder) === null || _this$recorder === void 0 ? void 0 : _this$recorder.stop( /*#__PURE__*/function () {\n var _ref10 = _asyncToGenerator(function* (t, n) {\n var _this46$recorder;\n try {\n _this46.iatWS.send(JSON.stringify({\n data: {\n status: 2,\n format: \"audio/L16;rate=16000\",\n encoding: _this46.encodingType,\n audio: \"\"\n }\n }));\n } catch (e) {}\n let o = (window.URL || webkitURL).createObjectURL(t);\n console.log(t, o, \"时长:\" + n + \"ms\"), _this46.recordPcmBlob = t, _this46.recordWavBlob = yield _this46.pcmBlobToWavBlob(t, 44100), console.log(\"this.recordWavBlob\", _this46.recordWavBlob), setTimeout(() => {\n _this46.isUserFinish && (_this46.onAfterFinishTalk && _this46.onAfterFinishTalk(), _this46.isUserFinish = !1);\n }, 2e3), (_this46$recorder = _this46.recorder) !== null && _this46$recorder !== void 0 && _this46$recorder.close(), _this46.recorder = null, console.log(\"localUrl\", o), e(!0);\n });\n return function (_x14, _x15) {\n return _ref10.apply(this, arguments);\n };\n }(), t => {\n console.log(\"录音失败:\" + t), this.recorder.close(), this.recorder = null, e(null);\n });\n });\n }\n playRecord() {\n this.playPCM(this.recordPcmBlob, 44100);\n }\n pcmBlobToWavBlob(e, t) {\n return _asyncToGenerator(function* () {\n return new Promise(n => {\n let o = new FileReader();\n o.onload = function (e) {\n let o = pcmtoWav(e.target.result, t, 1, 16);\n n(o);\n }, o.readAsArrayBuffer(e);\n });\n })();\n }\n playPCM(e, t) {\n var _this47 = this;\n return _asyncToGenerator(function* () {\n let n = yield _this47.pcmBlobToWavBlob(e, t),\n o = window.URL.createObjectURL(n),\n i = new Audio();\n i.src = o, i.play();\n })();\n }\n playBuffers() {\n var _this48 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this48.BuffersToBlob(_this48.buffers);\n _this48.playPCM(e, 44100);\n })();\n }\n BuffersToBlob(e) {\n let t = [];\n return e.forEach(e => {\n e.forEach(e => {\n t.push(e);\n });\n }), new Blob([t], {\n type: \"audio/pcm\"\n });\n }\n splitAudioData(e) {\n const t = 1280,\n n = Math.ceil(e.length / t),\n o = [];\n for (let i = 0; i < n; i++) {\n const n = i * t,\n a = n + t,\n r = e.slice(n, a);\n o.push(r);\n }\n return o;\n }\n BufferToBlob(e) {\n return new Blob([e], {\n type: \"audio/pcm\"\n });\n }\n createRecorder() {\n this.recorder || (this.recorder = Recorder({\n type: this.recordType,\n sampleRate: 44100,\n bitRate: 16,\n onProcess: (e, t, n, o, i, a) => {\n var _this$waveClient;\n let r = e.length && e[e.length - 1];\n if (this.buffers = e, r = resampleBuffer(r, 44100, 16e3), this.iatWS.readyState === this.iatWS.OPEN) {\n if (this.disableASR) return;\n this.iatWS.send(JSON.stringify({\n data: {\n status: 1,\n format: \"audio/L16;rate=16000\",\n encoding: this.encodingType,\n audio: convertFrameBufferToBase64(r)\n }\n }));\n }\n (_this$waveClient = this.waveClient) === null || _this$waveClient === void 0 || _this$waveClient.input(e[e.length - 1], t, o);\n }\n }));\n }\n openWithPriviledge() {\n var _this49 = this;\n return _asyncToGenerator(function* () {\n return console.log(_this49.btnStatus), yield _this49.requestPermission(), _this49.createRecorder(), !!Recorder.IsOpen() || new Promise(e => {\n _this49.recorder.open(() => {\n let t = document.querySelector(\".record-wave\");\n t && (console.log(t), Recorder.WaveView && (_this49.waveClient = Recorder.WaveView({\n elem: \".record-wave\"\n }))), e(!0);\n }, (e, t) => {\n console.log((t ? \"UserNotAllow,\" : \"\") + \"无法录音:\" + e);\n });\n });\n })();\n }\n getWebSocketUrl() {\n let e = \"wss://iat-api.xfyun.cn/v2/iat\",\n t = \"iat-api.xfyun.cn\",\n n = this.API_KEY,\n o = this.API_SECRET,\n i = new Date().toUTCString(),\n a = `host: ${t}\\ndate: ${i}\\nGET /v2/iat HTTP/1.1`,\n r = CryptoJS.HmacSHA256(a, o),\n s = CryptoJS.enc.Base64.stringify(r);\n return e = `${e}?authorization=${btoa(`api_key=\"${n}\", algorithm=\"hmac-sha256\", headers=\"host date request-line\", signature=\"${s}\"`)}&date=${i}&host=${t}`, e;\n }\n toBase64(e) {\n for (var t = \"\", n = new Uint8Array(e), o = n.byteLength, i = 0; i < o; i++) t += String.fromCharCode(n[i]);\n return window.btoa(t);\n }\n countTimer() {\n this.duration++;\n let e = String(parseInt(String(this.duration / 60))).padStart(2, \"0\"),\n t = String((this.duration % 60).toFixed(0)).padStart(2, \"0\"),\n n = e + \":\" + t;\n this.durationStr = n, this.connStatus = `录音中(${this.durationStr})`, console.log(this.duration, e, t), console.log(this.duration), console.log(n), this.onDurationStrChange && this.onDurationStrChange(n);\n }\n startCountdown() {\n this.recordDuration = 0, this.durationInterval && clearInterval(this.durationInterval), this.countdownInterval = setInterval(() => {\n this.recordDuration += 100;\n }, 100), this.now = new Date(), this.duration = 0, this.countdownInterval && clearInterval(this.countdownInterval), this.countdownInterval = setInterval(() => {\n this.countTimer();\n }, 1e3);\n }\n changeBtnStatus(e) {\n this.btnStatus = e, \"CONNECTING\" === e ? this.connStatus = \"建立连接中\" : \"OPEN\" === e || (\"CLOSING\" === e ? this.connStatus = \"关闭连接中\" : \"CLOSED\" === e && (this.connStatus = \"开始录音\"));\n }\n renderResult(e) {\n let t = JSON.parse(e);\n if (t.data && t.data.result) {\n let e = t.data.result,\n n = \"\",\n o = e.ws;\n for (let e = 0; e < o.length; e++) n += o[e].cw[0].w, console.log(n);\n e.pgs ? (\"apd\" === e.pgs && (this.resultText = this.resultTextTemp), this.resultTextTemp = this.resultText + n) : this.resultText = this.resultText + n, this.resultTextTemp || this.resultText, console.log(\"diff temp\", this.resultTextTemp), console.log(\"diff result\", this.resultText), this.onInputChange && this.onInputChange(this.getUserInput());\n }\n 0 === t.code && 2 === t.data.status && this.iatWS.close(), 0 !== t.code && (this.iatWS.close(), console.error(t));\n }\n getUserInput() {\n return \"\" + (this.resultTextTemp || this.resultText);\n }\n connectWebSocket() {\n var _this50 = this;\n console.log(\"connectWebSocket\");\n const e = this.getWebSocketUrl();\n if (\"WebSocket\" in window) this.iatWS = new WebSocket(e);else if (!(\"MozWebSocket\" in window)) return void alert(\"浏览器不支持WebSocket\");\n console.log(\"connectWebSocket\", this.btnStatus), this.changeBtnStatus(\"CONNECTING\"), this.iatWS.onopen = e => {\n this.recordStart();\n var t = {\n common: {\n app_id: this.APPID\n },\n business: {\n language: \"zh_cn\",\n domain: \"iat\",\n accent: \"mandarin\",\n vad_eos: 5e3,\n dwa: \"wpgs\"\n },\n data: {\n status: 0,\n format: \"audio/L16;rate=16000\",\n encoding: this.encodingType\n }\n };\n this.iatWS.send(JSON.stringify(t));\n }, this.iatWS.onmessage = e => {\n console.log(\"onmessage\" + this.resultText), this.renderResult(e.data);\n }, this.iatWS.onerror = e => {\n console.error(\"error\", e), this.recordStop(), this.changeBtnStatus(\"CLOSED\");\n }, this.iatWS.onclose = /*#__PURE__*/function () {\n var _ref11 = _asyncToGenerator(function* (e) {\n console.log(\"onclose\" + _this50.resultText), _this50.reconnectWebsocket();\n });\n return function (_x16) {\n return _ref11.apply(this, arguments);\n };\n }();\n }\n reconnectWebsocket() {\n var _this51 = this;\n return _asyncToGenerator(function* () {\n _this51.isUserFinish || _this51.connectWebSocket();\n })();\n }\n isCapacitor() {\n return this.platform.is(\"capacitor\") || this.platform.is(\"cordova\");\n }\n requestPermission() {\n var _this52 = this;\n return _asyncToGenerator(function* () {\n if (_this52.isCapacitor()) try {\n yield _this52.requestStoagePermission(), yield _this52.requestCameraPermission(), yield _this52.requestMicPermission(), yield _this52.requestRecordAudioPermission();\n } catch (e) {\n console.error(e);\n }\n })();\n }\n requestRecordAudioPermission() {\n var _this53 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this53.diagnostic.requestRuntimePermissions([_this53.diagnostic.permission.RECORD_AUDIO]);\n console.log(\"record permission request:\", e);\n })();\n }\n requestMicPermission() {\n var _this54 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this54.diagnostic.isMicrophoneAuthorized();\n if (console.log(\"permisson_MIC:\", e), !e) {\n yield _this54.diagnostic.requestMicrophoneAuthorization();\n }\n })();\n }\n requestStoagePermission() {\n var _this55 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this55.diagnostic.isExternalStorageAuthorized();\n if (console.log(\"permisson_STORAGE:\", e), !e) {\n yield _this55.diagnostic.requestExternalStorageAuthorization();\n }\n })();\n }\n requestCameraPermission() {\n var _this56 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this56.diagnostic.isCameraAuthorized();\n if (console.log(\"permisson_Camera:\", e), !e) {\n yield _this56.diagnostic.requestCameraAuthorization();\n }\n })();\n }\n}\n_FmodeVoiceService = FmodeVoiceService;\n_FmodeVoiceService.ɵfac = function _FmodeVoiceService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmodeVoiceService)(i0.ɵɵinject(i2.Platform), i0.ɵɵinject(i2$1.Diagnostic));\n};\n_FmodeVoiceService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _FmodeVoiceService,\n factory: _FmodeVoiceService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmodeVoiceService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i2.Platform\n }, {\n type: i2$1.Diagnostic\n }], null);\n})();\nclass RolePointsCloud {\n constructor(e, t, n) {\n this.offsetPosition = new BABYLON.Vector3(0, 1.25, 0), this.animationGroup = new BABYLON.AnimationGroup(\"RoleAnimGroup\"), this.AnimMap = {\n idle: null\n }, this.scene = e, this.engine = this.engine;\n }\n init() {\n var _this57 = this;\n return _asyncToGenerator(function* () {\n _this57.Mesh = _this57.loadMesh(), _this57.loadIdleAnim();\n })();\n }\n playAnim(e) {\n this.scene.beginDirectAnimation(this.Mesh, [this.AnimMap[e]], 0, 120, !0);\n }\n loadMesh() {\n let e = BABYLON.MeshBuilder.CreateSphere(\"sphere\", {\n diameter: 2\n }, this.scene);\n return e.position.addInPlace(this.offsetPosition), e.visibility = 1, e.material = new BABYLON.StandardMaterial(\"mat\", this.scene), e.material.wireframe = !0, e.scaling = new BABYLON.Vector3(1, 1, 1), e;\n }\n loadIdleAnim() {\n let e = new BABYLON.Animation(\"idle\", \"scaling\", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE),\n t = [];\n t.push({\n frame: 0,\n value: new BABYLON.Vector3(1, 1, 1)\n }), t.push({\n frame: 60,\n value: new BABYLON.Vector3(1.5, 1.5, 1.5)\n }), t.push({\n frame: 120,\n value: new BABYLON.Vector3(1, 1, 1)\n }), e.setKeys(t), this.Mesh.animations.push(this.AnimMap.idle), this.AnimMap.idle = e, this.animationGroup.addTargetedAnimation(this.AnimMap.idle, this.Mesh);\n }\n}\nclass CompAvatarParticleComponent {\n constructor(e) {\n this.elementRef = e, this.isWebVR = !1, this.animMap = {};\n }\n ngAfterViewInit() {\n if (this.canvas = this.renderCanvas.nativeElement, console.log(this.canvas), this.canvas) {\n let e = {};\n this.engine = new BABYLON.Engine(this.canvas, !0, e), console.log(this.engine), this.createScene(), this.engine.runRenderLoop(() => {\n var _this$scene, _this$engine;\n (_this$scene = this.scene) !== null && _this$scene !== void 0 && _this$scene.render(), (_this$engine = this.engine) === null || _this$engine === void 0 ? void 0 : _this$engine.resize();\n }), window.addEventListener(\"resize\", () => {\n var _this$engine2;\n (_this$engine2 = this.engine) === null || _this$engine2 === void 0 || _this$engine2.resize();\n });\n }\n }\n createScene() {\n var _this58 = this;\n return _asyncToGenerator(function* () {\n var _this58$engine;\n _this58.scene = new BABYLON.Scene(_this58.engine), _this58.scene.clearColor = new BABYLON.Color4(0, 0, 0, 1), _this58.mainCamera = _this58.createCamera(), console.log(_this58.mainCamera), _this58.currentRole = new RolePointsCloud(_this58.scene, _this58.engine, _this58.mainCamera), yield _this58.currentRole.init(), _this58.currentRole.playAnim(\"idle\"), _this58.currentRole.Mesh.visibility = 0, yield _this58.createCloudPoints();\n new BABYLON.HemisphericLight(\"light1\", new BABYLON.Vector3(0, 1, 0), _this58.scene);\n (_this58$engine = _this58.engine) === null || _this58$engine === void 0 || _this58$engine.resize();\n })();\n }\n createCamera() {\n let e = new (this.isWebVR ? BABYLON.VRDeviceOrientationArcRotateCamera : BABYLON.ArcRotateCamera)(\"Camera\", 0, 0, 30, new BABYLON.Vector3(0, .5, 0), this.scene);\n return e.setPosition(new BABYLON.Vector3(0, 0, 5)), e.beta = Math.PI / 3, e.alpha = Math.PI / 1.2, e.radius = 15, e;\n }\n createCloudPoints() {\n var _this59 = this;\n return _asyncToGenerator(function* () {\n _this59.pointsMesh = _this59.currentRole.Mesh, _this59.pointsCloud = new BABYLON.PointsCloudSystem(\"pcs\", 1, _this59.scene);\n let e = new BABYLON.Color3(.7, .8, 1),\n t = new BABYLON.Color4(.7, .8, 1),\n n = (new BABYLON.Color4(.2, .5, 1), new BABYLON.Color4(0, 0, .2, 0), new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\", _this59.scene)),\n o = new BABYLON.PBRMaterial(\"material\", _this59.scene);\n o.emissiveTexture = n, o.emissiveColor = e, _this59.pointsCloud.addVolumePoints(_this59.currentRole.Mesh, 5e3, BABYLON.PointColor.Color, t), _this59.pointsCloud.buildMeshAsync().then(() => {\n _this59.playAnimation(\"waiting\");\n }), _this59.scene.registerAfterRender(() => {\n _this59.pointsCloud.setParticles();\n }), _this59.engine.runRenderLoop(() => {\n _this59.scene.render();\n });\n })();\n }\n playAnimation(e) {\n switch (e) {\n case \"waiting\":\n this.cloudAnim();\n break;\n case \"listening\":\n this.cloudAnim({\n rotateSpeed: .01,\n breathing: !1\n });\n break;\n case \"thinking\":\n this.cloudAnim({\n rotateSpeed: .2,\n breathing: !1\n });\n break;\n case \"talking\":\n this.animMap.idle && this.scene.beginDirectAnimation(this.pointsMesh, [this.animMap.talking], 0, 20, !0);\n }\n }\n cloudAnim(e = {\n breathing: !0,\n rotateSpeed: .002\n }) {\n this.animMap.idle && this.scene.beginDirectAnimation(this.pointsMesh, [this.animMap.idle], 0, 120, !0);\n let t = new BABYLON.Color4(1, 1, 1, 1),\n n = (new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\", this.scene), 0);\n this.pointsCloud.updateParticle = o => {\n var _this$currentRole$Mes, _this$currentRole$Mes2;\n let i = (_this$currentRole$Mes = this.currentRole.Mesh.getBoundingInfo()) === null || _this$currentRole$Mes === void 0 || (_this$currentRole$Mes = _this$currentRole$Mes.boundingSphere) === null || _this$currentRole$Mes === void 0 ? void 0 : _this$currentRole$Mes.radiusWorld,\n a = (_this$currentRole$Mes2 = this.currentRole.Mesh.getBoundingInfo()) === null || _this$currentRole$Mes2 === void 0 || (_this$currentRole$Mes2 = _this$currentRole$Mes2.boundingSphere) === null || _this$currentRole$Mes2 === void 0 ? void 0 : _this$currentRole$Mes2.centerWorld;\n o.idx;\n if (o.color = t, o.rotation.y += e.rotateSpeed, o && n < 3 && (console.log(this.currentRole.Mesh.getBoundingInfo()), console.log(o), n++), o.initpos || (o.initpos = o.position), e.breathing) {\n let e = o.initpos.subtract(a);\n o.position = new BABYLON.Vector3(e.x * i, e.y * i, e.z * i).add(this.currentRole.offsetPosition);\n }\n return o;\n };\n }\n createSphere() {\n let e = BABYLON.MeshBuilder.CreateSphere(\"sphere\", {\n diameter: 2\n }, this.scene);\n e.visibility = 1, e.material = new BABYLON.StandardMaterial(\"mat\", this.scene), e.material.wireframe = !0, e.scaling = new BABYLON.Vector3(1, 1, 1), this.pointsMesh = e;\n let t = new BABYLON.Animation(\"breathingAnimation\", \"scaling\", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE),\n n = [];\n n.push({\n frame: 0,\n value: new BABYLON.Vector3(.3, .3, .3)\n }), n.push({\n frame: 60,\n value: new BABYLON.Vector3(.5, .5, .5)\n }), n.push({\n frame: 120,\n value: new BABYLON.Vector3(.3, .3, .3)\n }), t.setKeys(n), this.animMap.idle = t;\n let o = [{\n frame: 0,\n value: BABYLON.Vector3.One()\n }, {\n frame: 10,\n value: new BABYLON.Vector3(1.2, .8, 1.2)\n }, {\n frame: 20,\n value: BABYLON.Vector3.One()\n }],\n i = new BABYLON.Animation(\"talkAnimation\", \"scaling\", 30, BABYLON.Animation.ANIMATIONTYPE_VECTOR3, BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);\n return i.setKeys(o), this.animMap.talk = i, this.scene.beginDirectAnimation(e, [this.animMap.idle], 0, 120, !0), e;\n }\n createParticle() {\n var _this60 = this;\n return _asyncToGenerator(function* () {\n let e = _this60.createSphere(),\n t = new BABYLON.ParticleSystem(\"particles\", 2e3, _this60.scene);\n t.particleTexture = new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\", _this60.scene), t.emitter = e, t.minEmitBox = new BABYLON.Vector3(0, 0, 0), t.maxEmitBox = new BABYLON.Vector3(0, 0, 0), t.color1 = new BABYLON.Color4(.7, .8, 1, 1), t.color2 = new BABYLON.Color4(.2, .5, 1, 1), t.colorDead = new BABYLON.Color4(0, 0, .2, 0), t.minSize = .5, t.maxSize = .5, t.minLifeTime = .1, t.maxLifeTime = .1, t.minAngularSpeed = 0, t.maxAngularSpeed = Math.PI, t.minInitialRotation = 0, t.maxInitialRotation = Math.PI, t.minEmitPower = 0, t.maxEmitPower = 0, t.emitRate = 1500, t.updateSpeed = .01, t.blendMode = BABYLON.ParticleSystem.BLENDMODE_ONEONE, t.direction1 = new BABYLON.Vector3(0, 0, 0), t.direction2 = new BABYLON.Vector3(0, 0, 0), t.start();\n let n = t.createSphereEmitter();\n n.radius = 2, n.radiusRange = 0, n.directionRandomizer = 0, t.gravity = new BABYLON.Vector3(0, 0, 0), t.disposeOnStop = !0, t.updateFunction = n => {\n for (let o = 0; o < n.length; o++) {\n var _e$getBoundingInfo;\n let i = n[o],\n a = (_e$getBoundingInfo = e.getBoundingInfo()) === null || _e$getBoundingInfo === void 0 || (_e$getBoundingInfo = _e$getBoundingInfo.boundingSphere) === null || _e$getBoundingInfo === void 0 ? void 0 : _e$getBoundingInfo.radiusWorld;\n i.position = i.position.normalize().scale(a), i.age += _this60.scene.getEngine().getDeltaTime() / 1e3, i.age >= i.lifeTime && (t.recycleParticle(i), o--);\n }\n }, _this60.engine.runRenderLoop(() => {\n _this60.scene.render(), t.worldOffset = e.position;\n });\n })();\n }\n setCameraToMeshCenter(e, t) {\n t.computeWorldMatrix(!0);\n let n = t.getBoundingInfo(),\n o = n.minimum,\n i = n.maximum,\n a = i.x - o.x,\n r = i.y - o.y,\n s = i.z - o.z,\n l = n.boundingBox.center;\n console.log(\"宽度:\" + a), console.log(\"高度:\" + r), console.log(\"深度:\" + s), console.log(\"中心点:\" + l);\n }\n}\n_CompAvatarParticleComponent = CompAvatarParticleComponent;\n_CompAvatarParticleComponent.ɵfac = function _CompAvatarParticleComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompAvatarParticleComponent)(i0.ɵɵdirectiveInject(i0.ElementRef));\n};\n_CompAvatarParticleComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompAvatarParticleComponent,\n selectors: [[\"fm-avatar-role-particle\"]],\n viewQuery: function _CompAvatarParticleComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.renderCanvas = _t.first);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 0,\n consts: [[\"renderCanvas\", \"\"], [1, \"render-canvas\"]],\n template: function _CompAvatarParticleComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"canvas\", 1, 0);\n }\n },\n dependencies: [CommonModule, FormsModule],\n styles: [\".render-canvas[_ngcontent-%COMP%]{display:block;width:100%;height:100%;touch-action:none}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompAvatarParticleComponent, [{\n type: Component,\n args: [{\n selector: \"fm-avatar-role-particle\",\n standalone: !0,\n imports: [CommonModule, FormsModule],\n template: '<canvas #renderCanvas class=\"render-canvas\"></canvas>',\n styles: [\".render-canvas{display:block;width:100%;height:100%;touch-action:none}\\n\"]\n }]\n }], () => [{\n type: i0.ElementRef\n }], {\n renderCanvas: [{\n type: ViewChild,\n args: [\"renderCanvas\"]\n }]\n });\n})();\nclass CompAvatarRoleImageComponent {\n constructor() {\n this.animClass = \"waiting\", this.imageMap = {};\n }\n playWave() {\n !this.wave && Recorder.WaveView && (this.wave = Recorder.WaveView({\n elem: \".record-wave-avatar\",\n keep: !1\n }));\n let e = function generatePowerLevel() {\n return 100 * Math.random();\n }();\n this.waveInterval = setInterval(() => {\n let t = function generateSampleRate() {\n const e = [44100, 48e3, 88200, 96e3];\n return e[Math.floor(Math.random() * e.length)];\n }(),\n n = function generatePcmData(e) {\n const t = [];\n for (let n = 0; n < e; n++) t.push(Math.floor(65536 * Math.random()) - 32768);\n return t;\n }(1e3);\n this.wave.input(n, e, t);\n }, 40);\n }\n stopWave() {\n clearInterval(this.waveInterval);\n }\n ngAfterViewInit() {}\n ngOnInit() {\n setTimeout(() => {\n var _this$fmodeChat$avata, _this$imageMap;\n this.imageMap = (_this$fmodeChat$avata = this.fmodeChat.avatarConfig) === null || _this$fmodeChat$avata === void 0 ? void 0 : _this$fmodeChat$avata.image, this.avatarImage.nativeElement.src = (_this$imageMap = this.imageMap) === null || _this$imageMap === void 0 ? void 0 : _this$imageMap.waiting, this.fmodeChat.playAnimation = this.playAnimation;\n }, 1500);\n }\n playAnimation() {\n let e = this;\n return t => {\n let n = e.avatarImage.nativeElement;\n switch (e.animClass = t, e.stopWave(), t) {\n case \"thinking\":\n case \"waiting\":\n n.style.animationPlayState = \"running\";\n break;\n case \"talking\":\n n.style.animationPlayState = \"running\", e.playWave();\n break;\n case \"listening\":\n n.style.animationPlayState = \"pause\";\n break;\n default:\n n.style.animationPlayState = \"paused\";\n }\n };\n }\n}\n_CompAvatarRoleImageComponent = CompAvatarRoleImageComponent;\n_CompAvatarRoleImageComponent.ɵfac = function _CompAvatarRoleImageComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompAvatarRoleImageComponent)();\n};\n_CompAvatarRoleImageComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompAvatarRoleImageComponent,\n selectors: [[\"fm-avatar-role-image\"]],\n viewQuery: function _CompAvatarRoleImageComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c2, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.avatarImage = _t.first);\n }\n },\n inputs: {\n fmodeChat: \"fmodeChat\",\n role: \"role\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 6,\n vars: 2,\n consts: [[\"avatarImage\", \"\"], [1, \"page\"], [1, \"avatar\"], [1, \"avatar-photo\"], [\"alt\", \"\"], [1, \"record-wave-avatar\"]],\n template: function _CompAvatarRoleImageComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"div\", 2)(2, \"div\", 3);\n i0.ɵɵelement(3, \"img\", 4, 0)(5, \"div\", 5);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵclassMap(ctx.animClass);\n }\n },\n dependencies: [CommonModule, FormsModule],\n styles: [\".page[_ngcontent-%COMP%]{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:center;align-items:center}.avatar[_ngcontent-%COMP%] .avatar-photo[_ngcontent-%COMP%]{position:relative;margin-top:-10vh;width:80%}.avatar[_ngcontent-%COMP%] .avatar-photo[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-radius:10px}.avatar[_ngcontent-%COMP%] .record-wave-avatar[_ngcontent-%COMP%]{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking[_ngcontent-%COMP%], .listening[_ngcontent-%COMP%], .waiting[_ngcontent-%COMP%], .talking[_ngcontent-%COMP%]{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes _ngcontent-%COMP%_waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes _ngcontent-%COMP%_thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}.thinking[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_thinkingAnimation}.waiting[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_waitingAnimation}.listening[_ngcontent-%COMP%]{animation-name:listeningAnimation}.talking[_ngcontent-%COMP%]{animation-name:talkingAnimation}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompAvatarRoleImageComponent, [{\n type: Component,\n args: [{\n selector: \"fm-avatar-role-image\",\n standalone: !0,\n imports: [CommonModule, FormsModule],\n template: '<div class=\"page\">\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <img #avatarImage alt=\"\">\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',\n styles: [\".page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;margin-top:-10vh;width:80%}.avatar .avatar-photo img{border-radius:10px}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}.thinking{animation-name:thinkingAnimation}.waiting{animation-name:waitingAnimation}.listening{animation-name:listeningAnimation}.talking{animation-name:talkingAnimation}\\n\"]\n }]\n }], null, {\n avatarImage: [{\n type: ViewChild,\n args: [\"avatarImage\"]\n }],\n fmodeChat: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\nclass ModalChatVoiceInputComponent {\n constructor(e, t, n, o, i, a) {\n this.platform = e, this.router = t, this.voiceServ = n, this.toastCtrl = o, this.ncloud = i, this.chatServ = a, this.talkMode = \"click\", this.talkTips = \"点击话筒开始讲话\", this.errorText = \"\", this.player = new Audio();\n }\n ngOnInit() {\n \"press\" == this.talkMode && (this.talkTips = \"轻触底部开始讲话\"), setTimeout(() => {\n this.initVoiceSevice(), this.initVoiceASR();\n }, 500);\n }\n initVoiceASR() {\n var _this61 = this;\n return _asyncToGenerator(function* () {\n _this61.voiceServ.requestPermission().then(() => {\n _this61.voiceServ.openWithPriviledge(), _this61.startASRAwake();\n });\n })();\n }\n startASRAwake() {\n var _this62 = this;\n return _asyncToGenerator(function* () {\n yield _this62.voiceServ.openWithPriviledge(), new _this62.voiceServ.webSpeech(_this62.platform).startRecognition(\"Nihao | Hello\");\n })();\n }\n playMusic(e) {\n this.player.src = `/assets/avatar/voice/${e}.mp3`, this.player.play();\n }\n initVoiceSevice() {\n this.fmodeChat.userInput = this.voiceServ.resultText, this.voiceServ.requestPermission().then(() => {\n this.voiceServ.openWithPriviledge();\n }), this.voiceServ.onBeforeStartTalk = () => {\n this.fmodeChat.playAnimation(\"listening\"), this.playMusic(\"start-talk\");\n }, this.voiceServ.onBeforeCancelTalk = () => {\n this.playMusic(\"interupt-talk\"), this.fmodeChat.playAnimation(\"waiting\");\n }, this.voiceServ.onAfterCancelTalk = () => {\n this.startASRAwake();\n }, this.voiceServ.onBeforeFinishTalk = () => {\n this.fmodeChat.playAnimation(\"thinking\"), this.playMusic(\"stop-talk\");\n }, this.voiceServ.onAfterFinishTalk = () => {\n var _this$voiceServ;\n console.log(\"onAfterFinishTalk\"), this.fmodeChat.userInput = (_this$voiceServ = this.voiceServ) === null || _this$voiceServ === void 0 ? void 0 : _this$voiceServ.resultText, this.sendMessage(), this.startASRAwake();\n };\n }\n sendMessage() {\n var _this63 = this;\n return _asyncToGenerator(function* () {\n var _this63$fmodeChat;\n if (!_this63.fmodeChat.userInput) {\n return _this63.errorText = \"内容不能为空\", void (yield _this63.toastCtrl.create({\n message: _this63.errorText,\n position: \"top\",\n icon: \"alert\",\n color: \"warning-circle\",\n duration: 1e3\n })).present();\n }\n (_this63$fmodeChat = _this63.fmodeChat) !== null && _this63$fmodeChat !== void 0 && _this63$fmodeChat.sendMessage(_this63.voiceServ.resultText, null, e => {}, {\n onSSMLComplete: e => {\n console.log(e);\n }\n }), _this63.fmodeChat.userInput = \"\", _this63.fmodeChat.userImage = \"\";\n })();\n }\n testTTS(e) {\n console.log(e), e = e || \"你好呀,我是飞马小智!很高兴为您介绍脑控科技的发展历程。我们成立于2019年\", new this.voiceServ.webSpeech(this.platform).speak(e);\n }\n testXunfeiTTS() {}\n}\n_ModalChatVoiceInputComponent = ModalChatVoiceInputComponent;\n_ModalChatVoiceInputComponent.ɵfac = function _ModalChatVoiceInputComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ModalChatVoiceInputComponent)(i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(FmodeVoiceService), i0.ɵɵdirectiveInject(i2.ToastController), i0.ɵɵdirectiveInject(NovaCloudService), i0.ɵɵdirectiveInject(ChatService));\n};\n_ModalChatVoiceInputComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ModalChatVoiceInputComponent,\n selectors: [[\"fm-modal-chat-voice-input\"]],\n inputs: {\n fmodeChat: \"fmodeChat\",\n talkMode: \"talkMode\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([FmodeVoiceService]), i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"], [\"class\", \"user-asr-input\", \"style\", \"text-align: center;\", 4, \"ngIf\"], [1, \"user-asr-input\"], [\"class\", \"test-button-group\", 4, \"ngIf\"], [\"slot\", \"fixed\", \"horizontal\", \"center\", \"vertical\", \"bottom\"], [1, \"record-wave\"], [1, \"user-asr-input\", 2, \"text-align\", \"center\"], [1, \"test-button-group\"], [1, \"button-record\", 3, \"click\"], [3, \"click\"], [\"color\", \"primary\", \"closeIcon\", \"checkmark\", 3, \"click\"], [\"name\", \"mic-outline\"], [\"side\", \"end\"], [\"name\", \"pause-outline\"], [\"color\", \"primary\", \"closeIcon\", \"mic-outline\", 3, \"touchstart\", \"touchend\"]],\n template: function _ModalChatVoiceInputComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _ModalChatVoiceInputComponent_ng_container_0_Template, 9, 5, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.fmodeChat);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, IonicModule, i2.IonFab, i2.IonFabButton, i2.IonFabList, i2.IonIcon, RouterModule],\n styles: [\"ion-fab[_ngcontent-%COMP%]{margin-bottom:10vh}.fab-button-close-active[_ngcontent-%COMP%]:before{content:\\\"\\\";position:absolute;top:-5px;left:-5px;width:66px;height:66px;border-radius:50%;border:5px solid #fff;border-top-color:transparent;animation:spin 2s ease-in-out infinite;animation-fill-mode:both;animation-play-state:running}.record-wave[_ngcontent-%COMP%]{position:fixed;bottom:0;width:100vw;height:6vh}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ModalChatVoiceInputComponent, [{\n type: Component,\n args: [{\n selector: \"fm-modal-chat-voice-input\",\n standalone: !0,\n imports: [CommonModule, IonicModule, RouterModule],\n providers: [FmodeVoiceService],\n template: ' \\n <ng-container *ngIf=\"fmodeChat\">\\n\\n \\x3c!-- 用户输入 提示区域 --\\x3e\\n <div class=\"user-asr-input\" style=\"text-align: center;\" *ngIf=\"!fmodeChat?.userInput && voiceServ.btnStatus!=\\'OPEN\\'\">{{talkTips}}</div>\\n <div class=\"user-asr-input\">{{fmodeChat?.userInput}}</div>\\n \\n \\x3c!-- 测试按钮 --\\x3e\\n <div class=\"test-button-group\" *ngIf=\"false\">\\n <button class=\"button-record\" (click)=\"voiceServ.toggleRecord()\">开始录制 {{voiceServ.connStatus}} {{voiceServ.btnStatus}}</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playRecord()\">播放录制结果</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playBuffers()\">播放Buffers结果</button>\\n <button (click)=\"testTTS()\">测试TTS纯WEB</button>\\n <button (click)=\"startASR()\">测试ASR</button> \\n <button (click)=\"testXunfeiTTS()\">测试合成</button> \\n </div>\\n\\n \\n \\n \\x3c!-- 交互按钮 --\\x3e\\n <ion-fab slot=\"fixed\" horizontal=\"center\" vertical=\"bottom\">\\n <ng-container *ngIf=\"talkMode==\\'click\\'\">\\n \\x3c!-- 默认按钮:开始讲话 --\\x3e\\n <ion-fab-button color=\"primary\" closeIcon=\"checkmark\" (click)=\"voiceServ.toggleRecord()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n\\n \\x3c!-- 讲话中:取消发送 --\\x3e\\n <ion-fab-list side=\"end\">\\n <ion-fab-button [class]=\"\\'loading\\'\" (click)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"pause-outline\"></ion-icon>\\n </ion-fab-button>\\n </ion-fab-list>\\n </ng-container>\\n \\n <ng-container *ngIf=\"talkMode==\\'press\\'\">\\n <ion-fab-button color=\"primary\" closeIcon=\"mic-outline\" (touchstart)=\"voiceServ.toggleRecord()\" (touchend)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n </ng-container>\\n </ion-fab>\\n\\n\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave\">\\n </div>\\n</ng-container>\\n',\n styles: ['ion-fab{margin-bottom:10vh}.fab-button-close-active:before{content:\"\";position:absolute;top:-5px;left:-5px;width:66px;height:66px;border-radius:50%;border:5px solid #fff;border-top-color:transparent;animation:spin 2s ease-in-out infinite;animation-fill-mode:both;animation-play-state:running}.record-wave{position:fixed;bottom:0;width:100vw;height:6vh}\\n']\n }]\n }], () => [{\n type: i2.Platform\n }, {\n type: i1$1.Router\n }, {\n type: FmodeVoiceService\n }, {\n type: i2.ToastController\n }, {\n type: NovaCloudService\n }, {\n type: ChatService\n }], {\n fmodeChat: [{\n type: Input\n }],\n talkMode: [{\n type: Input\n }]\n });\n})();\nclass CompAvatarTalkComponent {\n constructor(e, t, n, o, i, a, r) {\n this.voiceServ = e, this.platform = t, this.router = n, this.navCtrl = o, this.route = i, this.chatServ = a, this.ncloud = r, this.route.paramMap.subscribe(e => {\n this.roleId = e.get(\"roleId\"), this.loadAvatarRole(this.roleId);\n }), document.body.classList.add(\"dark\");\n }\n ngOnInit() {}\n ngOnDestroy() {\n document.body.classList.remove(\"dark\"), this.voiceServ.resultText = null, this.fmodeChat && (this.fmodeChat.latestAIResponse = null);\n }\n goBack() {\n var _this$avatarRole;\n document.body.classList.remove(\"dark\");\n let e = (_this$avatarRole = this.avatarRole) === null || _this$avatarRole === void 0 ? void 0 : _this$avatarRole.get(\"backUrl\");\n try {\n if (e) return void this.navCtrl.navigateRoot(e);\n this.navCtrl.navigateRoot(\"/chat/pro/role/\" + this.roleId);\n } catch (e) {\n this.navCtrl.navigateRoot(\"/chat/pro/role/\" + this.roleId);\n }\n }\n loadAvatarRole(e) {\n var _this64 = this;\n return _asyncToGenerator(function* () {\n let t = new Parse.Query(\"AvatarRole\");\n _this64.avatarRole = yield t.get(e);\n let n = yield _this64.chatServ.createNewRoleChat(_this64.roleId);\n n.isTalkMode = !0, _this64.fmodeChat = n, _this64.fmodeChat.showAvatar();\n })();\n }\n ngAfterViewInit() {\n this.listenDivChange();\n }\n listenDivChange() {\n new MutationObserver(() => {\n this.scrollToBottom(this.aiRespComp);\n }).observe(this.aiRespComp.nativeElement, {\n childList: !0,\n subtree: !0,\n attributes: !0\n });\n }\n scrollToBottom(e) {\n var _e$nativeElement;\n (e === null || e === void 0 || (_e$nativeElement = e.nativeElement) === null || _e$nativeElement === void 0 ? void 0 : _e$nativeElement.scrollHeight) && (e.nativeElement.scrollTop = e.nativeElement.scrollHeight);\n }\n}\n_CompAvatarTalkComponent = CompAvatarTalkComponent;\n_CompAvatarTalkComponent.ɵfac = function _CompAvatarTalkComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompAvatarTalkComponent)(i0.ɵɵdirectiveInject(FmodeVoiceService), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(ChatService), i0.ɵɵdirectiveInject(NovaCloudService));\n};\n_CompAvatarTalkComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompAvatarTalkComponent,\n selectors: [[\"app-comp-avatar-talk\"]],\n viewQuery: function _CompAvatarTalkComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c3, 5);\n i0.ɵɵviewQuery(_c4, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.avatarComp = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.aiRespComp = _t.first);\n }\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([FmodeVoiceService, NovaCloudService, ChatService, Diagnostic, ModalController]), i0.ɵɵStandaloneFeature],\n decls: 47,\n vars: 16,\n consts: [[\"menu\", \"\"], [\"aiRespComp\", \"\"], [\"avatar\", \"\"], [\"contentId\", \"main-content\", \"side\", \"end\"], [1, \"ion-padding\"], [2, \"margin\", \"0px\"], [\"alt\", \"\", 3, \"src\"], [2, \"margin\", \"0px\", 3, \"inset\"], [\"lines\", \"none\", 4, \"ngIf\"], [\"lines\", \"none\"], [\"slot\", \"start\"], [\"id\", \"main-content\", 1, \"ion-page\"], [1, \"ion-no-border\"], [3, \"click\"], [\"name\", \"chevron-back-outline\"], [4, \"ngIf\"], [\"slot\", \"end\"], [\"name\", \"ellipsis-horizontal-outline\"], [\"class\", \"avatar\", 3, \"fmodeChat\", \"role\", 4, \"ngIf\"], [1, \"ai-resp-input\"], [3, \"fmodeChat\", 4, \"ngIf\"], [1, \"avatar\", 3, \"fmodeChat\", \"role\"], [3, \"fmodeChat\"]],\n template: function _CompAvatarTalkComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"ion-menu\", 3, 0)(2, \"ion-header\")(3, \"ion-toolbar\")(4, \"ion-title\");\n i0.ɵɵtext(5, \"\\u8D44\\u6599\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(6, \"ion-content\", 4)(7, \"ion-card\", 5);\n i0.ɵɵelement(8, \"img\", 6);\n i0.ɵɵelementStart(9, \"ion-card-header\")(10, \"ion-card-subtitle\");\n i0.ɵɵtext(11);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"ion-card-title\");\n i0.ɵɵtext(13);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(14, \"ion-card-content\");\n i0.ɵɵtext(15);\n i0.ɵɵelementStart(16, \"ion-list\", 7);\n i0.ɵɵtemplate(17, _CompAvatarTalkComponent_ion_item_17_Template, 5, 1, \"ion-item\", 8)(18, _CompAvatarTalkComponent_ion_item_18_Template, 5, 1, \"ion-item\", 8);\n i0.ɵɵelementStart(19, \"ion-item\", 9)(20, \"ion-note\", 10);\n i0.ɵɵtext(21, \"\\u79F0\\u53F7\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(22, \"ion-label\");\n i0.ɵɵtext(23);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(24, \"ion-item\", 9)(25, \"ion-note\", 10);\n i0.ɵɵtext(26, \"\\u64C5\\u957F\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(27, \"ion-label\");\n i0.ɵɵtext(28);\n i0.ɵɵelementEnd()()()()()()();\n i0.ɵɵelementStart(29, \"div\", 11)(30, \"ion-header\", 12)(31, \"ion-toolbar\")(32, \"ion-buttons\", 10)(33, \"ion-button\", 13);\n i0.ɵɵlistener(\"click\", function _CompAvatarTalkComponent_Template_ion_button_click_33_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.goBack());\n });\n i0.ɵɵelement(34, \"ion-icon\", 14);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(35, \"ion-title\");\n i0.ɵɵtemplate(36, _CompAvatarTalkComponent_ion_chip_36_Template, 2, 1, \"ion-chip\", 15);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(37, \"ion-buttons\", 16);\n i0.ɵɵtext(38);\n i0.ɵɵelementStart(39, \"ion-button\", 13);\n i0.ɵɵlistener(\"click\", function _CompAvatarTalkComponent_Template_ion_button_click_39_listener() {\n i0.ɵɵrestoreView(_r1);\n const menu_r3 = i0.ɵɵreference(1);\n return i0.ɵɵresetView(menu_r3.toggle());\n });\n i0.ɵɵelement(40, \"ion-icon\", 17);\n i0.ɵɵelementEnd()()()();\n i0.ɵɵtemplate(41, _CompAvatarTalkComponent_fm_avatar_role_image_41_Template, 2, 2, \"fm-avatar-role-image\", 18);\n i0.ɵɵelementStart(42, \"div\", 19, 1);\n i0.ɵɵtext(44);\n i0.ɵɵpipe(45, \"hidexml\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(46, _CompAvatarTalkComponent_fm_modal_chat_voice_input_46_Template, 1, 1, \"fm-modal-chat-voice-input\", 20);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_10_0;\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"src\", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"thumb\"), i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(ctx.avatarRole == null ? null : ctx.avatarRole.get(\"tags\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate(ctx.avatarRole == null ? null : ctx.avatarRole.get(\"name\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"desc\"), \" \");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"inset\", true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"age\"));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"gender\"));\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx.avatarRole == null ? null : ctx.avatarRole.get(\"title\"));\n i0.ɵɵadvance(5);\n i0.ɵɵtextInterpolate(ctx.avatarRole == null ? null : (tmp_10_0 = ctx.avatarRole.get(\"tags\")) == null ? null : tmp_10_0.join(\",\"));\n i0.ɵɵadvance(8);\n i0.ɵɵproperty(\"ngIf\", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"title\"));\n i0.ɵɵadvance(2);\n i0.ɵɵtextInterpolate1(\" \", ctx.avatarRole == null ? null : ctx.avatarRole.get(\"name\"), \" \");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.avatarRole && ctx.fmodeChat);\n i0.ɵɵadvance(3);\n i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(45, 14, ctx.fmodeChat == null ? null : ctx.fmodeChat.latestAIResponse));\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.fmodeChat);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, RouterModule, FormsModule, IonicModule, i2.IonButton, i2.IonButtons, i2.IonCard, i2.IonCardContent, i2.IonCardHeader, i2.IonCardSubtitle, i2.IonCardTitle, i2.IonChip, i2.IonContent, i2.IonHeader, i2.IonIcon, i2.IonItem, i2.IonLabel, i2.IonList, i2.IonMenu, i2.IonNote, i2.IonTitle, i2.IonToolbar, CompAvatarRoleImageComponent, ModalChatVoiceInputComponent, HidexmlPipe],\n styles: [\"ion-menu[_ngcontent-%COMP%] ion-note[_ngcontent-%COMP%]{color:#ccc;font-weight:700}@keyframes _ngcontent-%COMP%_spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.avatar[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.ai-resp-input[_ngcontent-%COMP%]{font-size:1rem;color:#fff;position:fixed;top:60px;max-height:15vh;overflow-y:scroll;padding:0 10px}.user-asr-input[_ngcontent-%COMP%]{font-size:1rem;color:#fff;position:fixed;bottom:6vh;padding:0 10px}.test-button-group[_ngcontent-%COMP%]{color:#00f;position:fixed;bottom:20vh}.test-button-group[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:10px;margin:10px}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompAvatarTalkComponent, [{\n type: Component,\n args: [{\n selector: \"app-comp-avatar-talk\",\n standalone: !0,\n imports: [CommonModule, RouterModule, FormsModule, IonicModule, CompAvatarParticleComponent, CompAvatarRoleImageComponent, ModalChatVoiceInputComponent, HidexmlPipe],\n providers: [FmodeVoiceService, NovaCloudService, ChatService, Diagnostic, ModalController],\n template: '<ion-menu #menu contentId=\"main-content\" side=\"end\">\\n <ion-header>\\n <ion-toolbar>\\n <ion-title>资料</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{avatarRole?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{avatarRole?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{avatarRole?.get(\"desc\")}}\\n\\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"avatarRole?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{avatarRole?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{avatarRole?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{avatarRole?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{avatarRole?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{avatarRole?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n\\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n \\n \\n \\n </ion-content>\\n</ion-menu>\\n\\n<div class=\"ion-page\" id=\"main-content\">\\n <ion-header class=\"ion-no-border\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\"> <ion-icon name=\"chevron-back-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <ion-chip *ngIf=\"avatarRole?.get(\\'title\\')\">{{avatarRole?.get(\"title\")}}</ion-chip>\\n </ion-title>\\n <ion-buttons slot=\"end\">\\n \\x3c!-- <ion-button (click)=\"playTTSTeting()\">TTS测试</ion-button> --\\x3e\\n {{avatarRole?.get(\"name\")}}\\n <ion-button (click)=\"menu.toggle()\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n\\n \\x3c!-- <ion-segment value=\"voice\">\\n <ion-segment-button (click)=\"chatServ.createChatPanel(avatarRole)\" value=\"chat\">\\n <ion-label>聊天</ion-label>\\n </ion-segment-button>\\n <ion-segment-button routerLink=\"{{\\'/avatar/role/\\'+avatarRole?.id}}\" value=\"voice\">\\n <ion-label>语音</ion-label>\\n </ion-segment-button>\\n </ion-segment> --\\x3e\\n\\n \\x3c!-- 数字形象:动画效果 --\\x3e\\n <fm-avatar-role-image *ngIf=\"avatarRole&&fmodeChat\" [fmodeChat]=\"fmodeChat\" [role]=\"avatarRole\" #avatar class=\"avatar\"></fm-avatar-role-image>\\n \\x3c!-- <fm-avatar-role-particle #avatar class=\"avatar\"></fm-avatar-role-particle> --\\x3e\\n\\n \\x3c!-- AI回复的最新消息 --\\x3e\\n <div class=\"ai-resp-input\" #aiRespComp>{{fmodeChat?.latestAIResponse | hidexml}}</div>\\n\\n <fm-modal-chat-voice-input *ngIf=\"fmodeChat\" [fmodeChat]=\"fmodeChat\"></fm-modal-chat-voice-input>\\n\\n</div>\\n\\n',\n styles: [\"ion-menu ion-note{color:#ccc;font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.avatar{display:block;width:100%;height:100%}.ai-resp-input{font-size:1rem;color:#fff;position:fixed;top:60px;max-height:15vh;overflow-y:scroll;padding:0 10px}.user-asr-input{font-size:1rem;color:#fff;position:fixed;bottom:6vh;padding:0 10px}.test-button-group{color:#00f;position:fixed;bottom:20vh}.test-button-group button{padding:10px;margin:10px}\\n\"]\n }]\n }], () => [{\n type: FmodeVoiceService\n }, {\n type: i2.Platform\n }, {\n type: i1$1.Router\n }, {\n type: i2.NavController\n }, {\n type: i1$1.ActivatedRoute\n }, {\n type: ChatService\n }, {\n type: NovaCloudService\n }], {\n avatarComp: [{\n type: ViewChild,\n args: [\"avatar\"]\n }],\n aiRespComp: [{\n type: ViewChild,\n args: [\"aiRespComp\"]\n }]\n });\n})();\nconst AvatarRoutes = [{\n path: \"role/:roleId\",\n component: CompAvatarTalkComponent,\n runGuardsAndResolvers: \"always\"\n}];\nclass AvatarModule {}\n_AvatarModule = AvatarModule;\n_AvatarModule.ɵfac = function _AvatarModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AvatarModule)();\n};\n_AvatarModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _AvatarModule\n});\n_AvatarModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, FormsModule, HttpClientModule, ReactiveFormsModule, RouterModule.forChild(AvatarRoutes), CompAvatarTalkComponent]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AvatarModule, [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [CommonModule, FormsModule, HttpClientModule, ReactiveFormsModule, RouterModule.forChild(AvatarRoutes), CompAvatarTalkComponent],\n exports: [CompAvatarTalkComponent]\n }]\n }], null, null);\n})();\nclass FmVideoComponent {\n constructor() {\n this.url = \"\", this.video = document.createElement(\"video\"), this.canvasStyle = {}, this.video.crossOrigin = \"anonymous\";\n }\n ngOnChanges(e) {\n e.url && e.url.currentValue && this.play(this.url);\n }\n play(e) {\n try {\n this.video.muted = !0, this.video.loop = !0, this.video.controls = !1, this.video.src = e, this.video.playsInline = !0, this.video.load(), this.video.play().then(() => {}).catch(() => {\n setTimeout(() => {\n this.play(e);\n }, 200);\n });\n } catch (t) {\n return void setTimeout(() => {\n this.play(e);\n }, 500);\n }\n this.ctx || (this.ctx = this.canvasRef.nativeElement.getContext(\"2d\"), this.video.addEventListener(\"loadeddata\", () => {\n this.canvasRef.nativeElement.width = this.video.videoWidth, this.canvasRef.nativeElement.height = this.video.videoHeight, this.drawFrame();\n }));\n }\n drawFrame() {\n this.video.paused || this.video.ended || (this.ctx.drawImage(this.video, 0, 0, this.canvasRef.nativeElement.width, this.canvasRef.nativeElement.height), requestAnimationFrame(() => this.drawFrame()));\n }\n}\n_FmVideoComponent = FmVideoComponent;\n_FmVideoComponent.ɵfac = function _FmVideoComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmVideoComponent)();\n};\n_FmVideoComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _FmVideoComponent,\n selectors: [[\"fm-video\"]],\n viewQuery: function _FmVideoComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c5, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.canvasRef = _t.first);\n }\n },\n inputs: {\n url: \"url\",\n canvasStyle: \"canvasStyle\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 2,\n consts: [[\"videoCanvas\", \"\"]],\n template: function _FmVideoComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"canvas\", null, 0);\n }\n if (rf & 2) {\n i0.ɵɵstyleMap(ctx.canvasStyle);\n }\n },\n dependencies: [CommonModule],\n styles: [\"[_nghost-%COMP%]{display:flex;justify-content:center;align-items:center;overflow:hidden}canvas[_ngcontent-%COMP%]{max-height:100%;width:auto;height:auto;background:transparent}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmVideoComponent, [{\n type: Component,\n args: [{\n selector: \"fm-video\",\n standalone: !0,\n imports: [CommonModule],\n template: '<canvas #videoCanvas [style]=\"canvasStyle\"></canvas>',\n styles: [\":host{display:flex;justify-content:center;align-items:center;overflow:hidden}canvas{max-height:100%;width:auto;height:auto;background:transparent}\\n\"]\n }]\n }], () => [], {\n url: [{\n type: Input\n }],\n canvasRef: [{\n type: ViewChild,\n args: [\"videoCanvas\", {\n static: !0\n }]\n }],\n canvasStyle: [{\n type: Input\n }]\n });\n})();\nclass CompAvatarRoleVideoComponent {\n constructor(e) {\n this.navCtrl = e, this.animClass = \"waiting\", this.onClose = new EventEmitter(), this.videoMap = {};\n }\n close() {\n this.onClose.emit(!0), this.fmodeChat.isAvatarShow = !1;\n }\n goBack() {\n this.navCtrl.back();\n }\n playWave() {\n !this.wave && Recorder.WaveView && (this.wave = Recorder.WaveView({\n elem: \".record-wave-avatar\",\n keep: !1\n }));\n let e = function generatePowerLevel() {\n return 100 * Math.random();\n }();\n this.waveInterval = setInterval(() => {\n let t = function generateSampleRate() {\n const e = [44100, 48e3, 88200, 96e3];\n return e[Math.floor(Math.random() * e.length)];\n }(),\n n = function generatePcmData(e) {\n const t = [];\n for (let n = 0; n < e; n++) t.push(Math.floor(65536 * Math.random()) - 32768);\n return t;\n }(1e3);\n this.wave.input(n, e, t);\n }, 40);\n }\n stopWave() {\n clearInterval(this.waveInterval);\n }\n ngAfterViewInit() {}\n ngOnInit() {\n setTimeout(() => {\n var _this$fmodeChat$avata2, _this$videoMap;\n this.videoMap = (_this$fmodeChat$avata2 = this.fmodeChat.avatarConfig) === null || _this$fmodeChat$avata2 === void 0 ? void 0 : _this$fmodeChat$avata2.video, this.playVideo((_this$videoMap = this.videoMap) === null || _this$videoMap === void 0 ? void 0 : _this$videoMap.waiting), this.fmodeChat.playAnimation = this.playAnimation;\n }, 1500);\n }\n playAnimation() {\n let e = this;\n return t => {\n e.animClass = t, e.stopWave(), e.playVideo(e.videoMap[t]);\n };\n }\n playVideo(e) {\n this.avatarVideo.play(e);\n }\n}\n_CompAvatarRoleVideoComponent = CompAvatarRoleVideoComponent;\n_CompAvatarRoleVideoComponent.ɵfac = function _CompAvatarRoleVideoComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompAvatarRoleVideoComponent)(i0.ɵɵdirectiveInject(i2$3.NavController));\n};\n_CompAvatarRoleVideoComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompAvatarRoleVideoComponent,\n selectors: [[\"fm-avatar-role-video\"]],\n viewQuery: function _CompAvatarRoleVideoComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(FmVideoComponent, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.avatarVideo = _t.first);\n }\n },\n inputs: {\n fmodeChat: \"fmodeChat\",\n role: \"role\"\n },\n outputs: {\n onClose: \"onClose\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 13,\n vars: 2,\n consts: [[\"avatarVideo\", \"\"], [1, \"page\"], [\"slot\", \"start\"], [3, \"click\"], [\"name\", \"chevron-back-outline\"], [\"slot\", \"end\"], [\"name\", \"chevron-collapse-outline\"], [1, \"avatar\"], [1, \"avatar-photo\"], [\"alt\", \"\"], [1, \"record-wave-avatar\"]],\n template: function _CompAvatarRoleVideoComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\", 1)(1, \"ion-toolbar\")(2, \"ion-buttons\", 2)(3, \"ion-button\", 3);\n i0.ɵɵlistener(\"click\", function _CompAvatarRoleVideoComponent_Template_ion_button_click_3_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.goBack());\n });\n i0.ɵɵelement(4, \"ion-icon\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(5, \"ion-buttons\", 5)(6, \"ion-button\", 3);\n i0.ɵɵlistener(\"click\", function _CompAvatarRoleVideoComponent_Template_ion_button_click_6_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.close());\n });\n i0.ɵɵelement(7, \"ion-icon\", 6);\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(8, \"div\", 7)(9, \"div\", 8);\n i0.ɵɵelement(10, \"fm-video\", 9, 0)(12, \"div\", 10);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(8);\n i0.ɵɵclassMap(ctx.animClass);\n }\n },\n dependencies: [CommonModule, FormsModule, FmVideoComponent, IonIcon, IonToolbar, IonButtons, IonButton],\n styles: [\"ion-toolbar[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100vw;--background:transparent}.page[_ngcontent-%COMP%]{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar[_ngcontent-%COMP%]{height:100%;width:100%;display:flex;justify-content:center;align-items:center}.avatar[_ngcontent-%COMP%] .avatar-photo[_ngcontent-%COMP%]{position:relative;display:flex;justify-content:center;width:80%;max-height:100%}.avatar[_ngcontent-%COMP%] .avatar-photo[_ngcontent-%COMP%] fm-video[_ngcontent-%COMP%]{border-radius:50%;max-height:100%;max-width:100%}.avatar[_ngcontent-%COMP%] .record-wave-avatar[_ngcontent-%COMP%]{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking[_ngcontent-%COMP%], .listening[_ngcontent-%COMP%], .waiting[_ngcontent-%COMP%], .talking[_ngcontent-%COMP%]{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes _ngcontent-%COMP%_waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes _ngcontent-%COMP%_thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompAvatarRoleVideoComponent, [{\n type: Component,\n args: [{\n selector: \"fm-avatar-role-video\",\n standalone: !0,\n imports: [CommonModule, FormsModule, FmVideoComponent, IonIcon, IonToolbar, IonButtons, IonButton],\n template: '<div class=\"page\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"close()\"> <ion-icon name=\"chevron-collapse-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <fm-video #avatarVideo alt=\"\"></fm-video>\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',\n styles: [\"ion-toolbar{position:fixed;top:0;left:0;width:100vw;--background:transparent}.page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{height:100%;width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;display:flex;justify-content:center;width:80%;max-height:100%}.avatar .avatar-photo fm-video{border-radius:50%;max-height:100%;max-width:100%}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}\\n\"]\n }]\n }], () => [{\n type: i2$3.NavController\n }], {\n avatarVideo: [{\n type: ViewChild,\n args: [FmVideoComponent]\n }],\n fmodeChat: [{\n type: Input\n }],\n role: [{\n type: Input\n }],\n onClose: [{\n type: Output\n }]\n });\n})();\nclass ChatListComponent {\n constructor(e, t, n) {\n this.chatServ = e, this.alertCtrl = t, this.navCtrl = n, this.chatList = [], this.onItemClick = (e, t) => {\n t.stopPropagation(), this.goSession(e);\n }, this.avatar = \"https://ionicframework.com/docs/img/demos/avatar.svg\", this.isPreventGo = !1, this.chatServ.getChatSession().then(() => {});\n }\n goSession(e) {\n var _this65 = this;\n return _asyncToGenerator(function* () {\n if (!_this65.isPreventGo) if (e !== null && e !== void 0 && e.rid || e !== null && e !== void 0 && e.sid) _this65.chatServ.restoreChatPanel(e);else {\n (yield _this65.alertCtrl.create({\n header: \"注意\",\n subHeader: \"请您选择右侧角色\",\n message: \"开始对话\",\n buttons: [{\n role: \"ok\",\n text: \"知道了\",\n handler: () => {}\n }]\n })).present(), _this65.navCtrl.navigateRoot(\"/chat/pro/mask\");\n }\n })();\n }\n presentEditTitle(e, t, n) {\n var _this66 = this;\n return _asyncToGenerator(function* () {\n n.stopPropagation(), _this66.isPreventGo = !0, setTimeout(() => {\n _this66.isPreventGo = !1;\n }, 500), n.preventDefault();\n const o = yield _this66.alertCtrl.create({\n header: \"修改会话标题\",\n subHeader: \"\",\n message: \"\",\n buttons: [{\n text: \"取消\",\n role: \"cancel\",\n handler: () => {}\n }, {\n text: \"确定\",\n role: \"confirm\",\n handler: n => {\n t.title = n.title, e !== null && e !== void 0 && e.set(\"title\", n.title), e === null || e === void 0 ? void 0 : e.save();\n }\n }],\n inputs: [{\n placeholder: \"会话标题\",\n name: \"title\",\n value: (t === null || t === void 0 ? void 0 : t.title) || \"\"\n }]\n });\n yield o.present();\n })();\n }\n presentDeleteTItle(e, t, n) {\n var _this67 = this;\n return _asyncToGenerator(function* () {\n n.stopPropagation(), _this67.isPreventGo = !0, setTimeout(() => {\n _this67.isPreventGo = !1;\n }, 500), n.preventDefault();\n const o = yield _this67.alertCtrl.create({\n header: \"确认删除?\",\n subHeader: \"\",\n message: \"\",\n buttons: [{\n text: \"取消\",\n role: \"cancel\",\n handler: () => {}\n }, {\n text: \"确定\",\n role: \"confirm\",\n handler: () => {\n t.isHidden = !0, e !== null && e !== void 0 && e.set(\"isDeleted\", !0), e === null || e === void 0 ? void 0 : e.save();\n }\n }]\n });\n yield o.present();\n })();\n }\n truncateString(e) {\n return e && e.length > 10 ? e.slice(0, 10) + \"...\" : e;\n }\n}\n_ChatListComponent = ChatListComponent;\n_ChatListComponent.ɵfac = function _ChatListComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ChatListComponent)(i0.ɵɵdirectiveInject(ChatService), i0.ɵɵdirectiveInject(i2$3.AlertController), i0.ɵɵdirectiveInject(i2$3.NavController));\n};\n_ChatListComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ChatListComponent,\n selectors: [[\"app-chat-list\"]],\n inputs: {\n onItemClick: \"onItemClick\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([]), i0.ɵɵStandaloneFeature],\n decls: 2,\n vars: 1,\n consts: [[4, \"ngFor\", \"ngForOf\"], [\"detail\", \"false\", 3, \"button\", \"click\", 4, \"ngIf\"], [\"detail\", \"false\", 3, \"click\", \"button\"], [\"slot\", \"start\", 1, \"unread-indicator-wrapper\"], [1, \"unread-indicator\"], [2, \"display\", \"flex\", \"justify-content\", \"space-between\", \"align-items\", \"center\"], [2, \"display\", \"flex\", \"flex-direction\", \"row\", \"align-items\", \"center\"], [2, \"display\", \"flex\", \"align-items\", \"center\"], [2, \"margin-right\", \"10px\"], [3, \"src\"], [2, \"max-width\", \"7rem\", \"white-space\", \"nowrap\"], [\"name\", \"brush-sharp\", 2, \"margin-left\", \"1rem\", 3, \"click\"], [\"name\", \"trash-sharp\", 2, \"margin-left\", \"0.5rem\", 3, \"click\"], [\"slot\", \"end\", 1, \"metadata-end-wrapper\"], [\"color\", \"medium\"], [\"color\", \"medium\", \"name\", \"chevron-forward\"], [\"color\", \"medium\", 1, \"ion-text-wrap\"]],\n template: function _ChatListComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-list\");\n i0.ɵɵtemplate(1, _ChatListComponent_ng_container_1_Template, 2, 1, \"ng-container\", 0);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", (ctx.chatServ == null ? null : ctx.chatServ.chatList) || ctx.chatList);\n }\n },\n dependencies: [CommonModule, i2$2.NgForOf, i2$2.NgIf, i2$2.DatePipe, IonIcon, IonList, IonLabel, IonNote, IonAvatar, IonItem, IonText],\n styles: [\"ion-icon[_ngcontent-%COMP%]{color:#fff}ion-list[_ngcontent-%COMP%]{margin:3px}ion-list[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%]{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] .active__[_ngcontent-%COMP%]{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] .active[_ngcontent-%COMP%]{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{flex:1 1 auto}ion-list[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{cursor:pointer;text-align:center}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChatListComponent, [{\n type: Component,\n args: [{\n selector: \"app-chat-list\",\n imports: [CommonModule, IonIcon, IonList, IonLabel, IonNote, IonButton, IonAvatar, IonItem, IonText],\n providers: [],\n standalone: !0,\n template: '<ion-list>\\n <ng-container *ngFor=\"let chat of (chatServ?.chatList || chatList)\">\\n <ion-item [button]=\"true\" detail=\"false\" *ngIf=\"!chat?.isHidden\" (click)=\"onItemClick(chat,$event)\">\\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\\n <div class=\"unread-indicator\"></div>\\n </div>\\n <ion-label>\\n <div style=\"display: flex;justify-content: space-between; align-items: center;\">\\n <div style=\"display: flex; flex-direction: row;align-items: center;\">\\n <strong style=\"display: flex;align-items: center;\">\\n <ion-avatar style=\"margin-right: 10px;\">\\n <img [src]=\"chat?.thumb||avatar\" />\\n </ion-avatar>\\n <p style=\"max-width: 7rem;white-space: nowrap;\">{{truncateString(chat?.title)}}</p>\\n </strong>\\n\\n <ion-icon (click)=\"presentEditTitle(chat?.session,chat,$event)\" name=\"brush-sharp\" style=\"margin-left: 1rem;\"></ion-icon>\\n <ion-icon (click)=\"presentDeleteTItle(chat?.session,chat,$event)\" name=\"trash-sharp\" style=\"margin-left: 0.5rem;\"></ion-icon>\\n \\n </div>\\n <div class=\"metadata-end-wrapper\" slot=\"end\">\\n <ion-note color=\"medium\">{{chat?.latest | date:\"HH:mm\"}}</ion-note>\\n <ion-icon color=\"medium\" name=\"chevron-forward\"></ion-icon>\\n </div>\\n </div>\\n <ion-text></ion-text><br />\\n <ion-note color=\"medium\" class=\"ion-text-wrap\">\\n {{chat?.message}}\\n </ion-note>\\n </ion-label>\\n </ion-item>\\n </ng-container>\\n </ion-list>',\n styles: [\"ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\\n\"]\n }]\n }], () => [{\n type: ChatService\n }, {\n type: i2$3.AlertController\n }, {\n type: i2$3.NavController\n }], {\n onItemClick: [{\n type: Input\n }]\n });\n})();\nclass FmChatHeaderArea {\n constructor(e) {\n this.navCtrl = e, this.isModalOpen = !1;\n }\n goBack() {\n this.navCtrl.back();\n }\n}\n_FmChatHeaderArea = FmChatHeaderArea;\n_FmChatHeaderArea.ɵfac = function _FmChatHeaderArea_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmChatHeaderArea)(i0.ɵɵdirectiveInject(i2$3.NavController));\n};\n_FmChatHeaderArea.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _FmChatHeaderArea,\n selectors: [[\"fm-chat-header-area\"]],\n inputs: {\n chat: \"chat\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 3,\n consts: [[4, \"ngIf\"], [\"class\", \"avatar-area\", 4, \"ngIf\"], [3, \"willDismiss\", \"isOpen\"], [\"slot\", \"start\"], [3, \"click\"], [\"name\", \"chevron-back-outline\"], [1, \"title-avatar-area\"], [1, \"avatar-img\", 3, \"click\"], [3, \"src\", 4, \"ngIf\"], [\"name\", \"resize-outline\", 4, \"ngIf\"], [\"slot\", \"end\"], [\"name\", \"ellipsis-horizontal-outline\"], [3, \"src\"], [\"name\", \"resize-outline\"], [1, \"avatar-area\"], [3, \"fmodeChat\", \"role\", 4, \"ngIf\"], [3, \"fmodeChat\", \"role\"], [1, \"ion-padding\"], [2, \"margin\", \"0px\"], [\"alt\", \"\", 3, \"src\"], [2, \"margin\", \"0px\", 3, \"inset\"], [\"lines\", \"none\", 4, \"ngIf\"], [\"lines\", \"none\"]],\n template: function _FmChatHeaderArea_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _FmChatHeaderArea_ion_toolbar_0_Template, 14, 3, \"ion-toolbar\", 0)(1, _FmChatHeaderArea_div_1_Template, 3, 2, \"div\", 1);\n i0.ɵɵelementStart(2, \"ion-modal\", 2);\n i0.ɵɵlistener(\"willDismiss\", function _FmChatHeaderArea_Template_ion_modal_willDismiss_2_listener() {\n return ctx.isModalOpen = false;\n });\n i0.ɵɵtemplate(3, _FmChatHeaderArea_ng_template_3_Template, 30, 9, \"ng-template\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", (ctx.chat == null ? null : ctx.chat.isAvatarShow) == false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.chat == null ? null : ctx.chat.isAvatarShow) == true);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"isOpen\", ctx.isModalOpen);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, IonToolbar, IonButtons, IonButton, IonIcon, IonModal, IonTitle, IonHeader, IonList, IonItem, IonCard, IonLabel, IonNote, CompAvatarRoleImageComponent, CompAvatarRoleVideoComponent],\n styles: [\".title-avatar-area[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.title-avatar-area[_ngcontent-%COMP%] .avatar-img[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:50%;margin-right:5px}.title-avatar-area[_ngcontent-%COMP%] .avatar-img[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{background:#df76dfcc;border-radius:50%;padding:3px;position:absolute;color:#000;margin-left:-20px;font-size:10px;margin-top:18px}.avatar-area[_ngcontent-%COMP%]{height:100%}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmChatHeaderArea, [{\n type: Component,\n args: [{\n selector: \"fm-chat-header-area\",\n standalone: !0,\n imports: [CommonModule, IonToolbar, IonButtons, IonButton, IonIcon, IonModal, IonAvatar, IonTitle, IonHeader, IonList, IonItem, IonCard, IonLabel, IonNote, CompAvatarRoleImageComponent, CompAvatarRoleVideoComponent],\n template: '<ion-toolbar *ngIf=\"chat?.isAvatarShow==false\">\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <div class=\"title-avatar-area\">\\n <div class=\"avatar-img\" (click)=\"chat.showAvatar()\">\\n <img *ngIf=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" [src]=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" />\\n <ion-icon *ngIf=\"chat?.role?.get(\\'avatarConfig\\')\" name=\"resize-outline\"></ion-icon>\\n </div>\\n <span (click)=\"chat.showAvatar()\">\\n {{chat?.role?.get(\"name\")}}\\n </span>\\n </div>\\n </ion-title>\\n\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"isModalOpen=true\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n</ion-toolbar>\\n\\n<div class=\"avatar-area\" *ngIf=\"chat?.isAvatarShow==true\">\\n <fm-avatar-role-image *ngIf=\"chat?.avatarMode==\\'image\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-image>\\n <fm-avatar-role-video *ngIf=\"chat?.avatarMode==\\'video\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-video>\\n</div>\\n\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"isModalOpen=false\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"isModalOpen=false\">返回</ion-button>\\n </ion-buttons>\\n <ion-title>简介</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{chat?.role?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{chat?.role?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{chat?.role?.get(\"desc\")}}\\n \\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"chat?.role?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{chat?.role?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{chat?.role?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{chat?.role?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{chat?.role?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{chat?.role?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n \\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n </ion-content>\\n </ng-template>\\n </ion-modal>',\n styles: [\".title-avatar-area{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.title-avatar-area .avatar-img img{width:32px;height:32px;border-radius:50%;margin-right:5px}.title-avatar-area .avatar-img ion-icon{background:#df76dfcc;border-radius:50%;padding:3px;position:absolute;color:#000;margin-left:-20px;font-size:10px;margin-top:18px}.avatar-area{height:100%}\\n\"]\n }]\n }], () => [{\n type: i2$3.NavController\n }], {\n chat: [{\n type: Input\n }]\n });\n})(), Parse__default.applicationId || (Parse__default.initialize(\"ncloudmaster\"), Parse__default.serverURL = (((_Parse__default$serve = Parse__default.serverURL) === null || _Parse__default$serve === void 0 || (_Parse__default$serve = _Parse__default$serve.split(\"parse\")) === null || _Parse__default$serve === void 0 ? void 0 : _Parse__default$serve[0]) || \"https://server.fmode.cn/\") + \"parse\");\nclass AuthService {\n isGuardLock(e) {\n let t = !0,\n n = Parse__default.User.current();\n return t = !(n !== null && n !== void 0 && n.id) && this.guardMap[e], t;\n }\n get loginTypeCount() {\n var _Object$values;\n return (_Object$values = Object.values(this.loginOptions)) === null || _Object$values === void 0 || (_Object$values = _Object$values.filter(e => e)) === null || _Object$values === void 0 ? void 0 : _Object$values.length;\n }\n get logoUrl() {\n return localStorage.getItem(\"LOGO_URL\") || this._logoUrl || \"https://file.yuban.co/img/logo-feima.png\";\n }\n set logoUrl(e) {\n localStorage.setItem(\"LOGO_URL\", e), this._logoUrl = this._logoUrl;\n }\n getCompanyId() {\n let e = localStorage.getItem(\"company\");\n return e = this.company || e, e;\n }\n constructor(e, t, n, o) {\n this.router = e, this.toastCtrl = t, this.novaCloud = n, this.http = o, this.guardMap = {}, this.isModalShow = !1, this.showBackHome = !0, this.activeButton = \"账号密码\", this.loginOptions = {\n userpwd: !0,\n mobilepwd: !0,\n mobilecode: !0,\n wechat: !0\n }, this._logoUrl = \"https://file.yuban.co/img/logo-feima.png\", this.wechatUrl = \"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/hv1tsm115258608.jpg\", this.isLoggedIn = !1, this.LoginPage = \"/pcuser/login\", this.mobileUserMap = {}, this.enabledLocalCode = !1;\n }\n toast(e) {\n var _this68 = this;\n return _asyncToGenerator(function* () {\n e.position = (e === null || e === void 0 ? void 0 : e.position) || \"top\", e.duration = (e === null || e === void 0 ? void 0 : e.duration) || 1500, e.color = (e === null || e === void 0 ? void 0 : e.color) || \"primary\", (yield _this68.toastCtrl.create(e)).present();\n })();\n }\n init(e) {\n this.company = e.company, this.guardType = e.guardType, this.saveParamsInvite();\n }\n checkLoginLock() {\n let e = Parse__default.User.current();\n return !!(e !== null && e !== void 0 && e.id) || (this.isModalShow = !0, this.isLoggedIn = !1, !1);\n }\n checkLogin(e) {\n this.guardMap[e] = !0;\n let t = Parse__default.User.current();\n return console.log(\"currentUser\", t), t && t.id ? (this.setAccount(t), this.isLoggedIn = !0, !0) : this.guardType && \"page\" != this.guardType ? \"modal\" == this.guardType ? (this.isModalShow = !0, this.isLoggedIn = !1, !0) : void 0 : (this.redirectUrl = e, this.router.navigate([this.LoginPage]), !1);\n }\n setAccount(e) {\n var _this69 = this;\n return _asyncToGenerator(function* () {\n var _this69$account, _i3;\n if ((_this69$account = _this69.account) !== null && _this69$account !== void 0 && _this69$account.id) return;\n let t = Parse__default.Object.extend(\"Account\"),\n n = (e === null || e === void 0 ? void 0 : e.get(\"company\")) || {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: _this69.getCompanyId()\n } || null,\n o = new Parse__default.Query(\"Account\");\n o.equalTo(\"user\", e.toPointer());\n let i = yield o.first();\n return (_i3 = i) !== null && _i3 !== void 0 && _i3.id || (i = new t(), i.set({\n user: e.toPointer(),\n company: n\n }), i = yield i.save()), _this69.account = i, i;\n })();\n }\n login(e, t) {\n var _this70 = this;\n return new Promise((n, o) => {\n Parse__default.User.logIn(e, t).then( /*#__PURE__*/function () {\n var _ref12 = _asyncToGenerator(function* (e) {\n var _e$get8;\n if (_this70.bindInvite(e), _this70.setCurrentUserLocalStorage(e), \"modal\" == _this70.guardType) return yield _this70.refreshPage(), void n(!0);\n let t = new Parse__default.Query(\"Company\");\n t.select(\"rootPage\"), t.equalTo(\"objectId\", e === null || e === void 0 || (_e$get8 = e.get(\"company\")) === null || _e$get8 === void 0 ? void 0 : _e$get8.id);\n let o = yield t.first(),\n i = o === null || o === void 0 ? void 0 : o.get(\"rootPage\");\n _this70.redirectUrl = _this70.redirectUrl || i || \"/project/dashboard\";\n let a = _this70.redirectUrl;\n a = decodeURIComponent(a), _this70.router.navigate([a]);\n });\n return function (_x17) {\n return _ref12.apply(this, arguments);\n };\n }()).catch(e => {\n console.error(e), o({\n message: \"无此用户信息,请先在小程序登录\"\n });\n });\n });\n }\n refreshPage() {\n return new Promise(e => {\n var _Parse__default$User$6;\n let t = this.router.url;\n (_Parse__default$User$6 = Parse__default.User.current()) !== null && _Parse__default$User$6 !== void 0 && _Parse__default$User$6.id && (this.isModalShow = !1), this.router.navigateByUrl(\"/\", {\n skipLocationChange: !0\n }).then(() => {\n this.router.navigateByUrl(t).then(() => {\n e(!0);\n });\n });\n });\n }\n setCurrentUserLocalStorage(e) {\n var _e$get9, _e$get10;\n ((_e$get9 = e.get(\"company\")) === null || _e$get9 === void 0 ? void 0 : _e$get9.id) && localStorage.setItem(\"company\", (_e$get10 = e.get(\"company\")) === null || _e$get10 === void 0 ? void 0 : _e$get10.id);\n }\n logout(e, t) {\n let n = localStorage.getItem(\"company\"),\n o = localStorage.getItem(\"WECHAT_APP_ID\"),\n i = localStorage.getItem(\"LOGO_URL\"),\n a = localStorage.getItem(\"NOVA_APIG_SERVER\");\n localStorage.clear(), localStorage.setItem(\"company\", n), localStorage.setItem(\"WECHAT_APP_ID\", o), localStorage.setItem(\"LOGO_URL\", i), localStorage.setItem(\"NOVA_APIG_SERVER\", a), Parse__default.User.logOut().then(e => {}), this.router.navigate([t || \"/pcuser/login\"]);\n }\n loginMobilePassword(e, t, n) {\n var _this71 = this;\n return _asyncToGenerator(function* () {\n let o = yield _this71.getMobileUser(e);\n o ? _this71.login(o, t).then( /*#__PURE__*/function () {\n var _ref13 = _asyncToGenerator(function* (e) {\n _this71.isModalShow = !1;\n });\n return function (_x18) {\n return _ref13.apply(this, arguments);\n };\n }()).catch(e => {\n console.log(e), n.create(\"error\", \"错误的用户名或密码\");\n }) : n.create(\"error\", \"用户不存在,请尝试其他登录方式\");\n })();\n }\n signMobilePassword(e, t) {\n var _this72 = this;\n return new Promise( /*#__PURE__*/function () {\n var _ref14 = _asyncToGenerator(function* (n, o) {\n n(yield _this72.signUpAndUpdate(e, t));\n });\n return function (_x19, _x20) {\n return _ref14.apply(this, arguments);\n };\n }());\n }\n getMobileUser(e) {\n var _this73 = this;\n return _asyncToGenerator(function* () {\n let t = _this73.getCompanyId(),\n n = t + e;\n if (_this73.mobileUserMap[n]) return _this73.mobileUserMap[n];\n let o = yield _this73.novaCloud.api(\"/auth/getusername\", {\n company: t,\n mobile: e\n });\n return o !== null && o !== void 0 && o.username && (_this73.mobileUserMap[n] = o === null || o === void 0 ? void 0 : o.username), _this73.mobileUserMap[n];\n })();\n }\n signUpAndUpdate(e, t) {\n var _this74 = this;\n return t = t || e + \"pwd666\", new Promise(n => {\n Parse__default.User.signUp(this.getCompanyId() + \"-\" + e, t, \"\").then( /*#__PURE__*/function () {\n var _ref15 = _asyncToGenerator(function* (t) {\n t.id && (console.log(t), t.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: _this74.getCompanyId()\n }), t.set(\"mobile\", e), t.set(\"type\", \"user\"), _this74.bindInvite(t), t = yield t.save(), n(t));\n });\n return function (_x21) {\n return _ref15.apply(this, arguments);\n };\n }()).catch(e => {\n n(void 0);\n });\n });\n }\n getMobileCodeToken(e, t) {\n var _this75 = this;\n return _asyncToGenerator(function* () {\n return new Promise((n, o) => {\n var _Parse__default$serve2;\n let i = ((_Parse__default$serve2 = Parse__default.serverURL) === null || _Parse__default$serve2 === void 0 || (_Parse__default$serve2 = _Parse__default$serve2.split(\"parse\")) === null || _Parse__default$serve2 === void 0 ? void 0 : _Parse__default$serve2[0]) || \"https://server.fmode.cn/\";\n _this75.http.get(i + `api/auth/mobile?company=${_this75.company}&mobile=${e}&code=${t}`).toPromise().then(e => {\n n(e);\n }).catch(e => {\n o(e);\n });\n });\n })();\n }\n loginCode(e, t, n, o) {\n var _this76 = this;\n return _asyncToGenerator(function* () {\n if (t) try {\n let n = yield _this76.getMobileCodeToken(e, t);\n if (200 == (n === null || n === void 0 ? void 0 : n.code)) {\n console.log(200, n);\n let e = yield Parse__default.User.become(n.data.token);\n if (console.log(e, e === null || e === void 0 ? void 0 : e.id), e !== null && e !== void 0 && e.id) {\n console.log(e, e === null || e === void 0 ? void 0 : e.id);\n try {\n yield _this76.bindInvite(e);\n } catch (e) {\n console.error(\"bind err b\", e);\n }\n return !0;\n }\n }\n } catch (n) {\n var _n$error, _n$error2;\n if (console.log(\"error1\", n), !((n === null || n === void 0 || (_n$error = n.error) === null || _n$error === void 0 || (_n$error = _n$error.mess) === null || _n$error === void 0 ? void 0 : _n$error.indexOf(\"用户不存在\")) > -1)) return void _this76.toast({\n message: n === null || n === void 0 || (_n$error2 = n.error) === null || _n$error2 === void 0 ? void 0 : _n$error2.mess\n });\n {\n let n = yield _this76.signUpAndUpdate(e);\n if (n !== null && n !== void 0 && n.id) return yield _this76.loginCode(e, t);\n }\n } else _this76.toast({\n color: \"primary\",\n message: \"请填写有效验证码\"\n });\n })();\n }\n saveParamsInvite() {\n let e = this.novaCloud.searchParse();\n console.log(\"saveParamsInvite\", e);\n let t = e === null || e === void 0 ? void 0 : e.get(\"invite\");\n console.log(t), t && localStorage.setItem(\"invite\", t);\n }\n bindInvite(e) {\n var _this77 = this;\n return _asyncToGenerator(function* () {\n var _e8, _e9;\n if (!(e = e || Parse__default.User.current())) return;\n if ((_e8 = e) !== null && _e8 !== void 0 && (_e8 = _e8.get(\"invite\")) !== null && _e8 !== void 0 && _e8.id) return;\n let t,\n n = localStorage.getItem(\"invite\");\n if (n && ((_e9 = e) === null || _e9 === void 0 ? void 0 : _e9.id) != n) try {\n var _e10;\n t = yield _this77.novaCloud.api(\"/auth/invite\", {\n current: (_e10 = e) === null || _e10 === void 0 ? void 0 : _e10.id,\n invite: n,\n type: \"code\"\n }), console.log(\"bind\", t);\n } catch (e) {\n console.error(\"bind err\", e);\n }\n })();\n }\n}\n_AuthService = AuthService;\n_AuthService.ɵfac = function _AuthService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AuthService)(i0.ɵɵinject(i1$1.Router), i0.ɵɵinject(i2$3.ToastController), i0.ɵɵinject(NovaCloudService), i0.ɵɵinject(i1.HttpClient));\n};\n_AuthService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AuthService,\n factory: _AuthService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AuthService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1$1.Router\n }, {\n type: i2$3.ToastController\n }, {\n type: NovaCloudService\n }, {\n type: i1.HttpClient\n }], null);\n})();\nclass AccountService {\n constructor(e, t, n) {\n this.ncloud = e, this.authServ = t, this.http = n, this.company = \"\", this.billing = {\n credit: {\n usedDetail: {}\n }\n }, this.wxAppId = \"\", this.wxpayEnabled = !1, this.appid = localStorage.getItem(\"WECHAT_APP_ID\") || \"wxb4193c93ae9aa696\", this.company = this.authServ.company || localStorage.getItem(\"company\"), this.getBilling(), this.getProfile(), this.getUserOpenid();\n }\n getProfile() {\n var _this78 = this;\n return _asyncToGenerator(function* () {\n var _Parse__default$User$7;\n let e = (_Parse__default$User$7 = Parse__default.User.current()) === null || _Parse__default$User$7 === void 0 ? void 0 : _Parse__default$User$7.id;\n if (!e) return;\n let t = new Parse__default.Query(\"Profile\");\n t.equalTo(\"user\", e), t.equalTo(\"company\", _this78.company), t.notEqualTo(\"isDeleted\", !0);\n let n = yield t.first();\n (n === null || n === void 0 ? void 0 : n.id) && (_this78.profile = n);\n })();\n }\n getBilling() {\n var _this79 = this;\n return _asyncToGenerator(function* () {\n var _Parse__default$User$8;\n let e;\n if ((_Parse__default$User$8 = Parse__default.User.current()) !== null && _Parse__default$User$8 !== void 0 && _Parse__default$User$8.getSessionToken()) {\n var _e11;\n try {\n e = yield _this79.ncloud.apig(\"aigc/account\", null, \"get\");\n } catch (e) {}\n return (_e11 = e) !== null && _e11 !== void 0 && _e11.credit && (_this79.billing = e), e;\n }\n })();\n }\n getUserOpenid() {\n var _this80 = this;\n return _asyncToGenerator(function* () {\n let e = -1 != navigator.userAgent.toLowerCase().indexOf(\"micromessenger\"),\n t = _this80.getQueryStringByName(\"code\"),\n n = localStorage.getItem(\"openid\");\n if (!n) {\n var _o$_this80$appid;\n if (!Parse__default.User.current()) return;\n let o = Parse__default.User.current().get(\"wechat\");\n n = o === null || o === void 0 || (_o$_this80$appid = o[_this80.appid]) === null || _o$_this80$appid === void 0 ? void 0 : _o$_this80$appid.openid, e && (t ? yield _this80.getwechat(t) : _this80.authWechat());\n }\n })();\n }\n authWechat(e = \"/account/billing\") {\n if (!localStorage.getItem(\"openid\")) {\n let e = window.location.href;\n return e = encodeURIComponent(e), void (window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=\" + this.appid + \"&redirect_uri=\" + e + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\");\n }\n }\n getQueryStringByName(e) {\n let t = location.search.match(new RegExp(\"[?&]\" + e + \"=([^&]+)\", \"i\"));\n return null == t || t.length < 1 ? \"\" : t[1];\n }\n getwechat(e, t = \"/account/billing\") {\n var _this81 = this;\n return _asyncToGenerator(function* () {\n return new Promise( /*#__PURE__*/function () {\n var _ref16 = _asyncToGenerator(function* (n, o) {\n _this81.http.post(\"https://server.fmode.cn/api/wechat/get_wx\", {\n company: _this81.company,\n code: e\n }).subscribe( /*#__PURE__*/function () {\n var _ref17 = _asyncToGenerator(function* (e) {\n if (console.log(e), e && 200 == e.code && e.data.openid) {\n let t = e.data.openid;\n localStorage.setItem(\"openid\", t), localStorage.removeItem(\"code\");\n let o = {};\n o[_this81.appid] = {\n openid: t\n }, Parse__default.User.current().set(\"wechat\", o), yield Parse__default.User.current().save(), n(!0);\n }\n });\n return function (_x24) {\n return _ref17.apply(this, arguments);\n };\n }(), /*#__PURE__*/function () {\n var _ref18 = _asyncToGenerator(function* (e) {\n console.log(\"Error updating items\", e), _this81.authWechat(t), o(!1);\n });\n return function (_x25) {\n return _ref18.apply(this, arguments);\n };\n }());\n });\n return function (_x22, _x23) {\n return _ref16.apply(this, arguments);\n };\n }());\n })();\n }\n getWXSignPackageInWechat() {\n let e = {\n company: this.company,\n href: encodeURIComponent(location.href.split(\"?\")[0])\n };\n this.http.post(\"https://server.fmode.cn/api/wechat/getconfig\", e).subscribe(e => {\n var _Parse__default$User$9;\n const t = e.data;\n this.wxAppId = t.appid, this.wxpayEnabled = !0, wx.config({\n debug: !1,\n appId: t.appid,\n timestamp: t.timestamp,\n nonceStr: t.nonceStr,\n signature: t.signature,\n jsApiList: [\"chooseWXPay\", \"onMenuShareTimeline\", \"onMenuShareAppMessage\", \"onMenuShareQQ\", \"onMenuShareQZone\", \"updateAppMessageShareData\", \"updateTimelineShareData\"]\n });\n let n = \"https://ai.fmode.cn\";\n location.pathname;\n (_Parse__default$User$9 = Parse__default.User.current()) === null || _Parse__default$User$9 === void 0 || _Parse__default$User$9.id;\n let o = this.shareInfo || {\n title: \"飞码AI\",\n desc: \"解放创意引领未来|国际前沿的AIGC平台\",\n link: n,\n type: \"link\",\n imgUrl: \"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png\",\n success: function () {\n console.log(\"分享成功\");\n },\n error: function () {\n console.log(\"分享失败\");\n },\n cancel: function () {\n console.log(\"取消分享\");\n }\n };\n wx.ready(() => {\n wx.updateAppMessageShareData(o), wx.updateTimelineShareData(o);\n }), wx.error(() => {});\n });\n }\n saveAccountLog(e, t, n, o) {\n var _this82 = this;\n return _asyncToGenerator(function* () {\n return new Promise((i, a) => {\n _this82.http.post(\"https://test.fmode.cn/api/apig/saveAccountLog\", {\n company: n,\n uid: Parse__default.User.current().id,\n orderid: t,\n info: e\n }).subscribe(e => {\n console.log(e), i(!0);\n }, e => {\n console.warn(e), o && o.error(\"请求超时,请稍后再试\"), a();\n });\n });\n })();\n }\n}\n_AccountService = AccountService;\n_AccountService.ɵfac = function _AccountService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AccountService)(i0.ɵɵinject(NovaCloudService), i0.ɵɵinject(AuthService), i0.ɵɵinject(i1.HttpClient));\n};\n_AccountService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AccountService,\n factory: _AccountService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AccountService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: NovaCloudService\n }, {\n type: AuthService\n }, {\n type: i1.HttpClient\n }], null);\n})();\nclass CompUserAvatarComponent {\n constructor(e) {\n this.novaAccount = e, this.type = \"icon\", this.text = \"U\";\n }\n ngOnInit() {\n this.type = this.getType();\n }\n ngOnChanges() {\n this.refresh();\n }\n refresh() {\n var _this83 = this;\n return _asyncToGenerator(function* () {\n yield _this83.novaAccount.getProfile();\n let e = _this83.novaAccount.profile;\n (e === null || e === void 0 ? void 0 : e.get(\"type\")) && (\"student\" == (e === null || e === void 0 ? void 0 : e.get(\"type\")) ? _this83.identity = \"https://file-cloud.fmode.cn/khgbeQmvYZ/20231123/k1k4iq103416124.png\" : _this83.identity = \"https://file-cloud.fmode.cn/E4KpGvTEto/20231116/q12c16094638625.png\");\n })();\n }\n getType() {\n var _this$user, _this$user2, _this$user3, _this$user4;\n if (!((_this$user = this.user) !== null && _this$user !== void 0 && _this$user.id)) return \"icon\";\n if ((_this$user2 = this.user) !== null && _this$user2 !== void 0 && _this$user2.get(\"avatar\")) return \"avatar\";\n let e = ((_this$user3 = this.user) === null || _this$user3 === void 0 ? void 0 : _this$user3.get(\"nickname\")) || ((_this$user4 = this.user) === null || _this$user4 === void 0 ? void 0 : _this$user4.get(\"realname\"));\n return e ? (this.text = e === null || e === void 0 ? void 0 : e.slice(0, 1), \"text\") : \"icon\";\n }\n}\n_CompUserAvatarComponent = CompUserAvatarComponent;\n_CompUserAvatarComponent.ɵfac = function _CompUserAvatarComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompUserAvatarComponent)(i0.ɵɵdirectiveInject(AccountService));\n};\n_CompUserAvatarComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompUserAvatarComponent,\n selectors: [[\"app-comp-user-avatar\"]],\n inputs: {\n user: \"user\"\n },\n standalone: true,\n features: [i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature],\n decls: 1,\n vars: 1,\n consts: [[4, \"ngIf\"], [1, \"avatar-com\"], [\"nzIcon\", \"user\", 3, \"style\", 4, \"ngIf\"], [\"class\", \"comp-avatar\", 3, \"nzSrc\", 4, \"ngIf\"], [\"class\", \"auth-icon\", \"alt\", \"\\u5DF2\\u8BA4\\u8BC1\", 3, \"src\", 4, \"ngIf\"], [\"style\", \"background-color: #0199f9\", 3, \"nzText\", 4, \"ngIf\"], [\"nzIcon\", \"user\"], [1, \"comp-avatar\", 3, \"nzSrc\"], [\"alt\", \"\\u5DF2\\u8BA4\\u8BC1\", 1, \"auth-icon\", 3, \"src\"], [2, \"background-color\", \"#0199f9\", 3, \"nzText\"]],\n template: function _CompUserAvatarComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _CompUserAvatarComponent_ng_container_0_Template, 7, 4, \"ng-container\", 0);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", (ctx.user == null ? null : ctx.user.id) || ctx.type == \"icon\");\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, NzAvatarModule, i3.NzAvatarComponent, NzIconModule],\n styles: [\".avatar-com[_ngcontent-%COMP%]{position:relative;width:32px;height:32px}.avatar-com[_ngcontent-%COMP%] .auth-icon[_ngcontent-%COMP%]{width:20px;height:20px;border-radius:50%;position:absolute;right:-6px;bottom:-2px}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompUserAvatarComponent, [{\n type: Component,\n args: [{\n selector: \"app-comp-user-avatar\",\n standalone: !0,\n imports: [CommonModule, NzAvatarModule, NzIconModule],\n template: '<ng-container *ngIf=\"user?.id || type == \\'icon\\'\">\\n <div class=\"avatar-com\">\\n \\x3c!-- 默认ICON --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'icon\\'\"\\n [style]=\"{ backgroundColor: \\'#222D3A\\' }\"\\n nzIcon=\"user\"\\n ></nz-avatar>\\n \\x3c!-- <div *ngIf=\"type==\\'icon\\'\" class=\"iconfont icon-yonghu-yuan\"></div> --\\x3e\\n \\x3c!-- 头像照片 --\\x3e\\n <div class=\"avatar-com\">\\n <nz-avatar class=\"comp-avatar\"\\n *ngIf=\"type == \\'avatar\\'\"\\n [nzSrc]=\"user?.get(\\'avatar\\')\"\\n ></nz-avatar>\\n <img\\n class=\"auth-icon\"\\n *ngIf=\"identity && type == \\'avatar\\'\"\\n [src]=\"identity\"\\n alt=\"已认证\"\\n />\\n </div>\\n \\x3c!-- 昵称首字符 --\\x3e\\n \\x3c!-- #222D3A --\\x3e\\n \\x3c!-- #0199f9 --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'text\\'\"\\n style=\"background-color: #0199f9\"\\n [nzText]=\"text\"\\n ></nz-avatar>\\n </div>\\n</ng-container>\\n',\n styles: [\".avatar-com{position:relative;width:32px;height:32px}.avatar-com .auth-icon{width:20px;height:20px;border-radius:50%;position:absolute;right:-6px;bottom:-2px}\\n\"]\n }]\n }], () => [{\n type: AccountService\n }], {\n user: [{\n type: Input\n }]\n });\n})();\nclass DurationStrPipe {\n transform(e, ...t) {\n let n = String(parseInt(String(e / 60))),\n o = \"\";\n return e / 60 > 1 && (o += `${n}'`), o += `${String((e % 60).toFixed(0))}\"`, o;\n }\n}\n_DurationStrPipe = DurationStrPipe;\n_DurationStrPipe.ɵfac = function _DurationStrPipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _DurationStrPipe)();\n};\n_DurationStrPipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"durationStr\",\n type: _DurationStrPipe,\n pure: true,\n standalone: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DurationStrPipe, [{\n type: Pipe,\n args: [{\n name: \"durationStr\",\n standalone: !0\n }]\n }], null, null);\n})();\nclass FmChatMessageCard {\n constructor(e) {\n this.copyServ = e, this.user = Parse__default.User.current();\n }\n toggleVoicePlay() {\n var _this84 = this;\n return _asyncToGenerator(function* () {\n var _this84$message, _this84$message2, _this84$message3, _this84$tts, _this84$tts2, _this84$message4, _e12, _this84$message7, _e15, _e18;\n if ((_this84$message = _this84.message) !== null && _this84$message !== void 0 && (_this84$message = _this84$message.voice) !== null && _this84$message !== void 0 && _this84$message.id && _this84.chat.VoiceTTSMap[(_this84$message2 = _this84.message) === null || _this84$message2 === void 0 || (_this84$message2 = _this84$message2.voice) === null || _this84$message2 === void 0 ? void 0 : _this84$message2.id] && (_this84.tts = _this84.chat.VoiceTTSMap[(_this84$message3 = _this84.message) === null || _this84$message3 === void 0 || (_this84$message3 = _this84$message3.voice) === null || _this84$message3 === void 0 ? void 0 : _this84$message3.id]), (_this84$tts = _this84.tts) !== null && _this84$tts !== void 0 && _this84$tts.isPlaying) return void ((_this84$tts2 = _this84.tts) === null || _this84$tts2 === void 0 ? void 0 : _this84$tts2.stop());\n let e,\n t = !1;\n if ((_this84$message4 = _this84.message) !== null && _this84$message4 !== void 0 && (_this84$message4 = _this84$message4.voice) !== null && _this84$message4 !== void 0 && _this84$message4.id) {\n var _this84$message5;\n let t = new Parse__default.Query(\"ChatVoice\");\n t.include(\"voiceFile\"), e = yield t.get((_this84$message5 = _this84.message) === null || _this84$message5 === void 0 || (_this84$message5 = _this84$message5.voice) === null || _this84$message5 === void 0 ? void 0 : _this84$message5.id);\n }\n if (!((_e12 = e) !== null && _e12 !== void 0 && _e12.id)) {\n var _this84$message6, _e13, _e14;\n let n = yield _this84.chat.getVoiceByContentText((_this84$message6 = _this84.message) === null || _this84$message6 === void 0 ? void 0 : _this84$message6.content);\n e = _this84.chat.voiceMap[n === null || n === void 0 ? void 0 : n.id], _this84.message.voice = {\n id: (_e13 = e) === null || _e13 === void 0 ? void 0 : _e13.id,\n duration: (_e14 = e) === null || _e14 === void 0 ? void 0 : _e14.get(\"duration\")\n }, t = !0;\n }\n (_this84$message7 = _this84.message) !== null && _this84$message7 !== void 0 && (_this84$message7 = _this84$message7.voice) !== null && _this84$message7 !== void 0 && _this84$message7.duration || (_this84.message.voice.duration = (_e15 = e) === null || _e15 === void 0 ? void 0 : _e15.get(\"duration\"), t = !0), t && _this84.saveSession(), yield _this84.chat.playChatVoice(e, {\n onStart: t => {\n var _e16;\n (_e16 = e) !== null && _e16 !== void 0 && _e16.id, t === null || t === void 0 ? void 0 : t.id;\n },\n onLoaded: e => {\n _this84.message.voice.duration = 1e3 * e.duration, _this84.updateVoiceDuration(1e3 * e.duration);\n },\n onStop: t => {\n var _e17;\n (_e17 = e) !== null && _e17 !== void 0 && _e17.id, t === null || t === void 0 ? void 0 : t.id;\n }\n }), _this84.tts = _this84.chat.VoiceTTSMap[(_e18 = e) === null || _e18 === void 0 ? void 0 : _e18.id];\n })();\n }\n updateVoiceDuration(e) {\n var _this$message;\n ((_this$message = this.message) === null || _this$message === void 0 || (_this$message = _this$message.voice) === null || _this$message === void 0 ? void 0 : _this$message.duration) || (this.message.voice.duration = e, this.saveSession());\n }\n saveSession() {\n var _this$chat;\n (this.index >= 2 || void 0 === this.index) && ((_this$chat = this.chat) === null || _this$chat === void 0 ? void 0 : _this$chat.saveChatSession());\n }\n copy() {\n var _this85 = this;\n return _asyncToGenerator(function* () {\n var _this85$message;\n _this85.copyServ.copyToClipboard(getMessageContentText((_this85$message = _this85.message) === null || _this85$message === void 0 ? void 0 : _this85$message.content));\n })();\n }\n}\n_FmChatMessageCard = FmChatMessageCard;\n_FmChatMessageCard.ɵfac = function _FmChatMessageCard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmChatMessageCard)(i0.ɵɵdirectiveInject(ClipboardService));\n};\n_FmChatMessageCard.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _FmChatMessageCard,\n selectors: [[\"fm-chat-message-card\"]],\n inputs: {\n index: \"index\",\n message: \"message\",\n role: \"role\",\n chat: \"chat\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 9,\n vars: 15,\n consts: [[1, \"message-card\"], [\"class\", \"item-row user\", 4, \"ngIf\"], [\"class\", \"item-row images\", 4, \"ngIf\"], [1, \"item-row\", \"bubble\"], [\"class\", \"content-style\", 3, \"content\", \"render\", 4, \"ngIf\"], [3, \"content\", 4, \"ngIf\"], [\"class\", \"item-row loading\", 4, \"ngIf\"], [\"class\", \"item-row created\", 4, \"ngIf\"], [1, \"item-row\", \"user\"], [1, \"avatar-row\"], [1, \"actions\"], [\"size\", \"small\", \"fill\", \"outline\", \"slot\", \"start\", 3, \"click\"], [\"name\", \"copy-outline\"], [\"class\", \"play-voice\", 3, \"click\", 4, \"ngIf\"], [3, \"nzSrc\", 4, \"ngIf\"], [3, \"user\", 4, \"ngIf\"], [1, \"play-voice\", 3, \"click\"], [1, \"voice-button\"], [\"nz-icon\", \"\", \"nzType\", \"wifi\", \"nzTheme\", \"outline\", 3, \"nzRotate\"], [1, \"voice-info\"], [4, \"ngIf\"], [3, \"nzSrc\"], [3, \"user\"], [1, \"item-row\", \"images\"], [\"alt\", \"\", 3, \"src\"], [1, \"content-style\", 3, \"content\", \"render\"], [3, \"content\"], [1, \"item-row\", \"loading\"], [\"name\", \"dots\"], [1, \"item-row\", \"created\"]],\n template: function _FmChatMessageCard_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, _FmChatMessageCard_div_1_Template, 8, 3, \"div\", 1)(2, _FmChatMessageCard_div_2_Template, 3, 4, \"div\", 2);\n i0.ɵɵpipe(3, \"chatContent\");\n i0.ɵɵelementStart(4, \"div\", 3);\n i0.ɵɵtemplate(5, _FmChatMessageCard_fm_markdown_preview_5_Template, 2, 4, \"fm-markdown-preview\", 4)(6, _FmChatMessageCard_fm_markdown_preview_6_Template, 2, 3, \"fm-markdown-preview\", 5);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, _FmChatMessageCard_div_7_Template, 3, 0, \"div\", 6)(8, _FmChatMessageCard_div_8_Template, 4, 4, \"div\", 7);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n let tmp_4_0;\n i0.ɵɵclassProp(\"right\", (ctx.message == null ? null : ctx.message.role) == \"user\")(\"center\", (ctx.message == null ? null : ctx.message.role) == \"system\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.message == null ? null : ctx.message.role) != \"system\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind2(3, 12, ctx.message == null ? null : ctx.message.content, \"image_url\"));\n i0.ɵɵadvance(2);\n i0.ɵɵstyleProp(\"font-size\", (ctx.role == null ? null : (tmp_4_0 = ctx.role.get(\"uiConfig\")) == null ? null : tmp_4_0.message == null ? null : tmp_4_0.message.bubble == null ? null : tmp_4_0.message.bubble.fontSize) || \"0.8rem\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx.message == null ? null : ctx.message.complete));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message == null ? null : ctx.message.complete);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", (ctx.message == null ? null : ctx.message.role) != \"system\" && !(ctx.message == null ? null : ctx.message.complete));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.message == null ? null : ctx.message.createdAt);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, i2$2.DatePipe, CompUserAvatarComponent, MarkdownPreviewModule, MarkdownPreviewComponent, NzAvatarModule, i3.NzAvatarComponent, NzIconModule, i5.NzIconDirective, ChatContentPipe, DurationStrPipe],\n styles: [\"@charset \\\"UTF-8\\\";body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .item-native[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] .item-native[_ngcontent-%COMP%]{background:none!important}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%]{color:#0e101d}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%] .content-style[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%] .content-style[_ngcontent-%COMP%]{filter:invert(1)!important}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%] fm-markdown-preview[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%] fm-markdown-preview[_ngcontent-%COMP%]{filter:invert(1)!important}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%]{background-color:#0e101d}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%] .voice-info[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%] .voice-info[_ngcontent-%COMP%]{color:#fff}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%]{color:#921f8a!important;background:#921f8a!important}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .right[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%]{background:#921f8a!important}body.dark[_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .created[_ngcontent-%COMP%] span[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-card[_ngcontent-%COMP%] .created[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:#fff}@media screen and (max-width: 800px){.message-card[_ngcontent-%COMP%]:focus .actions[_ngcontent-%COMP%]{opacity:1!important}}.message-card[_ngcontent-%COMP%]:hover .actions[_ngcontent-%COMP%]{opacity:1;transition:opacity .3s ease-in-out}.message-card[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:start;align-items:flex-start}.message-card[_ngcontent-%COMP%] .avatar-row[_ngcontent-%COMP%]{width:300px;height:32px;display:flex;flex-direction:row-reverse;justify-content:start;align-items:center}.message-card[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;opacity:0;padding-left:10px;padding-right:10px}.message-card[_ngcontent-%COMP%] .item-row[_ngcontent-%COMP%]{display:flex;flex:100%;justify-content:start;margin-bottom:5px}.message-card[_ngcontent-%COMP%] .images[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:300px}.message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%]{display:flex;justify-content:center;max-width:100%;padding:.5rem .5rem 0rem;color:#333;flex:none;border-radius:0 1.5em 1.5em/0em 1.5em 1.5em;color:#fff;background-color:currentColor}.message-card[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%] .content-style[_ngcontent-%COMP%]{filter:grayscale(1) contrast(999) invert(1)}.message-card[_ngcontent-%COMP%] .loading[_ngcontent-%COMP%]{text-align:right;color:#101010}.message-card[_ngcontent-%COMP%] .created[_ngcontent-%COMP%]{display:flex}.message-card[_ngcontent-%COMP%] .created[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:12px;opacity:.4;white-space:nowrap;transition:all .6s ease;color:var(--black);text-align:center;width:100%;box-sizing:border-box;padding-right:10px;pointer-events:none;z-index:1}.right[_ngcontent-%COMP%]{justify-content:end;align-items:flex-end}.right[_ngcontent-%COMP%] .avatar-row[_ngcontent-%COMP%]{flex-direction:row;justify-content:end;width:auto}.right[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{position:relative;margin-left:0}.right[_ngcontent-%COMP%] .item-row[_ngcontent-%COMP%]{justify-content:end}.right[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%]{color:#bbdefb;border-top-left-radius:1.5em;border-top-right-radius:0}.right[_ngcontent-%COMP%] .play-voice[_ngcontent-%COMP%]{flex-direction:row-reverse;background-color:#bbdefb}.center[_ngcontent-%COMP%]{justify-content:center;align-items:center}.center[_ngcontent-%COMP%] .item-row[_ngcontent-%COMP%]{justify-content:center}.center[_ngcontent-%COMP%] .bubble[_ngcontent-%COMP%]{color:var(--gray-secondary);border-top-left-radius:1.5em;border-top-right-radius:1.5em;font-size:12px;font-weight:100;padding:5px 20px}.play-voice[_ngcontent-%COMP%]{min-width:100px;height:32px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-radius:7px}.play-voice[_ngcontent-%COMP%] .voice-button[_ngcontent-%COMP%]{width:32px;height:32px;display:flex;justify-content:center;align-items:center}.play-voice[_ngcontent-%COMP%] .voice-button[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;font-size:18px;color:#ff69b4}.play-voice[_ngcontent-%COMP%] .voice-info[_ngcontent-%COMP%]{height:32px;display:flex;padding:0 10px;justify-content:end;align-items:center;color:#333}.play-voice-playing[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_play-voice-animation 1s infinite}@keyframes _ngcontent-%COMP%_play-voice-animation{0%{width:0}to{width:32px}}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmChatMessageCard, [{\n type: Component,\n args: [{\n selector: \"fm-chat-message-card\",\n standalone: !0,\n imports: [CommonModule, IonItem, CompUserAvatarComponent, MarkdownPreviewModule, NzAvatarModule, IonAvatar, NzIconModule, ChatContentPipe, NzSanitizerPipe, DurationStrPipe],\n template: '<div class=\"message-card\" [class.right]=\"message?.role==\\'user\\'\" [class.center]=\"message?.role==\\'system\\'\">\\n \\x3c!-- 用户及操作区 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\"> \\x3c!-- 系统消息不显示头像 --\\x3e\\n <div class=\"avatar-row\">\\n <div class=\"actions\">\\n \\x3c!-- 刷新 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"refresh-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n \\x3c!-- 复制 --\\x3e\\n <ion-button size=\"small\" fill=\"outline\" slot=\"start\" (click)=\"copy()\">\\n <ion-icon name=\"copy-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 编辑 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"create-outline\"></ion-icon>\\n </ion-button> --\\x3e\\n </div>\\n \\x3c!-- 音频消息区域 --\\x3e\\n <div *ngIf=\"((message?.role==\\'assistant\\' && chat?.role?.get(\\'voiceConfig\\')?.voice) || (message?.role==\\'user\\'&&message?.voice))\" class=\"play-voice\" (click)=\"toggleVoicePlay()\">\\n <div class=\"voice-button\">\\n <span nz-icon [nzRotate]=\"message?.role==\\'user\\'?-90:90\" nzType=\"wifi\" nzTheme=\"outline\" [class.play-voice-playing]=\"tts?.isPlaying\"></span>\\n </div>\\n <div class=\"voice-info\">\\n <span *ngIf=\"message?.voice?.duration\">\\n {{((message?.voice?.duration||0)/1000) | durationStr}}\\n </span>\\n <span *ngIf=\"!message?.voice?.duration\">\\n \\x3c!-- --\\x3e\\n </span>\\n </div>\\n </div>\\n \\x3c!-- 头像区域 --\\x3e\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\" ></nz-avatar>\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 附件:图片 --\\x3e\\n <div class=\"item-row images\" *ngIf=\"message?.content | chatContent:\\'image_url\\'\">\\n <img [src]=\"message?.content | chatContent:\\'image_url\\'\" alt=\"\">\\n </div>\\n \\x3c!-- 聊天气泡 --\\x3e\\n <div class=\"item-row bubble\" [style.fontSize]=\"role?.get(\\'uiConfig\\')?.message?.bubble?.fontSize || \\'0.8rem\\'\">\\n <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content | chatContent\" [render]=\"false\"></fm-markdown-preview>\\n <fm-markdown-preview *ngIf=\"message?.complete\" [content]=\"message?.content | chatContent\"></fm-markdown-preview>\\n </div>\\n \\x3c!-- 时间显示 --\\x3e\\n <div class=\"item-row loading\" *ngIf=\"message?.role!=\\'system\\' && !message?.complete\">\\n 正在输入<ion-spinner name=\"dots\"></ion-spinner>\\n </div>\\n\\n <div class=\"item-row created\" *ngIf=\"message?.createdAt\">\\n <span>{{message?.createdAt | date:\"dd/MM/yy HH:mm\"}}</span>\\n </div>\\n</div>',\n styles: ['@charset \"UTF-8\";:host-context(body.dark) .message-card .actions .item-native{background:none!important}:host-context(body.dark) .message-card .bubble{color:#0e101d}:host-context(body.dark) .message-card .bubble .content-style{filter:invert(1)!important}:host-context(body.dark) .message-card .bubble fm-markdown-preview{filter:invert(1)!important}:host-context(body.dark) .message-card .play-voice{background-color:#0e101d}:host-context(body.dark) .message-card .play-voice .voice-info{color:#fff}:host-context(body.dark) .message-card .right .bubble{color:#921f8a!important;background:#921f8a!important}:host-context(body.dark) .message-card .right .play-voice{background:#921f8a!important}:host-context(body.dark) .message-card .created span{color:#fff}@media screen and (max-width: 800px){.message-card:focus .actions{opacity:1!important}}.message-card:hover .actions{opacity:1;transition:opacity .3s ease-in-out}.message-card{display:flex;flex-wrap:wrap;justify-content:start;align-items:flex-start}.message-card .avatar-row{width:300px;height:32px;display:flex;flex-direction:row-reverse;justify-content:start;align-items:center}.message-card .actions{display:flex;opacity:0;padding-left:10px;padding-right:10px}.message-card .item-row{display:flex;flex:100%;justify-content:start;margin-bottom:5px}.message-card .images img{max-width:300px}.message-card .bubble{display:flex;justify-content:center;max-width:100%;padding:.5rem .5rem 0rem;color:#333;flex:none;border-radius:0 1.5em 1.5em/0em 1.5em 1.5em;color:#fff;background-color:currentColor}.message-card .bubble .content-style{filter:grayscale(1) contrast(999) invert(1)}.message-card .loading{text-align:right;color:#101010}.message-card .created{display:flex}.message-card .created span{font-size:12px;opacity:.4;white-space:nowrap;transition:all .6s ease;color:var(--black);text-align:center;width:100%;box-sizing:border-box;padding-right:10px;pointer-events:none;z-index:1}.right{justify-content:end;align-items:flex-end}.right .avatar-row{flex-direction:row;justify-content:end;width:auto}.right .actions{position:relative;margin-left:0}.right .item-row{justify-content:end}.right .bubble{color:#bbdefb;border-top-left-radius:1.5em;border-top-right-radius:0}.right .play-voice{flex-direction:row-reverse;background-color:#bbdefb}.center{justify-content:center;align-items:center}.center .item-row{justify-content:center}.center .bubble{color:var(--gray-secondary);border-top-left-radius:1.5em;border-top-right-radius:1.5em;font-size:12px;font-weight:100;padding:5px 20px}.play-voice{min-width:100px;height:32px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-radius:7px}.play-voice .voice-button{width:32px;height:32px;display:flex;justify-content:center;align-items:center}.play-voice .voice-button span{overflow:hidden;font-size:18px;color:#ff69b4}.play-voice .voice-info{height:32px;display:flex;padding:0 10px;justify-content:end;align-items:center;color:#333}.play-voice-playing{animation:play-voice-animation 1s infinite}@keyframes play-voice-animation{0%{width:0}to{width:32px}}\\n']\n }]\n }], () => [{\n type: ClipboardService\n }], {\n index: [{\n type: Input\n }],\n message: [{\n type: Input\n }],\n role: [{\n type: Input\n }],\n chat: [{\n type: Input\n }]\n });\n})();\nclass CompRolePromptComponent {\n constructor(e, t) {\n this.cross = e, this.modalController = t, this.role = \"\", this.showModal = !1, this.cateIndex = 0, this.isDarkMode = !1, this.company = \"E4KpGvTEto\";\n }\n ngOnInit() {\n this.getChatPrompt(), document.body.classList.contains(\"dark\") && (this.isDarkMode = !0);\n }\n applyPrompt(e) {\n var _this$cross;\n this.chat.userInput = e, this.chat.isVoiceInputMode = !1, this.chat.focusUserInput(), \"mobile\" == ((_this$cross = this.cross) === null || _this$cross === void 0 ? void 0 : _this$cross.navMenuType) && this.modalController.dismiss();\n }\n getChatPrompt() {\n var _this86 = this;\n return _asyncToGenerator(function* () {\n let e = new Parse.Query(\"ChatPrompt\");\n e.notEqualTo(\"isDeleted\", !0), e.equalTo(\"company\", _this86.company), e.equalTo(\"role\", _this86.role), e.include(\"role\");\n let t = yield e.find();\n _this86.chat.promptList = t, _this86.chat.promptList.forEach(e => {\n let t = e.get(\"role\").get(\"promptCates\").filter(t => t.name == e.get(\"cate\"));\n e.img = t[0].img;\n }), console.log(_this86.chat.promptList);\n })();\n }\n checkCate(e) {\n this.cateIndex = e;\n }\n}\n_CompRolePromptComponent = CompRolePromptComponent;\n_CompRolePromptComponent.ɵfac = function _CompRolePromptComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompRolePromptComponent)(i0.ɵɵdirectiveInject(CrossService), i0.ɵɵdirectiveInject(i2$3.ModalController));\n};\n_CompRolePromptComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompRolePromptComponent,\n selectors: [[\"app-comp-role-prompt\"]],\n inputs: {\n chat: \"chat\",\n role: \"role\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ModalController$1]), i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 5,\n consts: [[4, \"ngIf\"], [3, \"willDismiss\", \"isOpen\", \"initialBreakpoint\", \"breakpoints\"], [\"class\", \"prompt\", 4, \"ngIf\"], [1, \"prompt\"], [4, \"ngFor\", \"ngForOf\"], [1, \"prompt_cate\"], [1, \"cate_info\"], [\"alt\", \"\", 3, \"src\"], [1, \"cate_name\"], [\"nz-tooltip\", \"\", \"nzTooltipColor\", \"#108ee9\", 1, \"message\", 3, \"click\", \"nzTooltipTitle\"], [1, \"prompt_mobile\"], [\"class\", \"view_more\", 4, \"ngIf\"], [\"class\", \"message\", \"nz-tooltip\", \"\", \"nzTooltipColor\", \"#108ee9\", 3, \"nzTooltipTitle\", \"click\", 4, \"ngIf\"], [1, \"view_more\"], [\"expand\", \"block\", 3, \"click\"], [\"nz-icon\", \"\", \"nzType\", \"right\", \"nzTheme\", \"outline\"], [1, \"block\"], [1, \"block_cate\"], [1, \"message_mobile\"], [3, \"click\", \"color\"], [1, \"message-box\", 3, \"click\"]],\n template: function _CompRolePromptComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _CompRolePromptComponent_ng_container_0_Template, 3, 2, \"ng-container\", 0);\n i0.ɵɵelementStart(1, \"ion-modal\", 1);\n i0.ɵɵlistener(\"willDismiss\", function _CompRolePromptComponent_Template_ion_modal_willDismiss_1_listener() {\n return ctx.chat.isPromptModalOpen = false;\n });\n i0.ɵɵtemplate(2, _CompRolePromptComponent_ng_template_2_Template, 7, 2, \"ng-template\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", (ctx.chat == null ? null : ctx.chat.messageList == null ? null : ctx.chat.messageList.length) < 4 && (ctx.chat == null ? null : ctx.chat.isPromptMessageAreaShow) && !(ctx.chat == null ? null : ctx.chat.userInput));\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"isOpen\", ctx.chat.isPromptModalOpen)(\"initialBreakpoint\", 1)(\"breakpoints\", i0.ɵɵpureFunction0(4, _c7));\n }\n },\n dependencies: [CommonModule, i2$2.NgForOf, i2$2.NgIf, FormsModule, ReactiveFormsModule, IonModal, IonButton, IonLabel, NzIconModule, i5.NzIconDirective],\n styles: [\"body.dark[_nghost-%COMP%] .prompt_cate[_ngcontent-%COMP%] .message[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .prompt_cate[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{background:#fff3;border:1px solid #333;box-shadow:0 2px 8px #333;color:#ffffff80}body.dark[_nghost-%COMP%] .cate_info[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .cate_info[_ngcontent-%COMP%]{color:#fff}body.dark[_nghost-%COMP%] ion-modal[_ngcontent-%COMP%] .block[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] ion-modal[_ngcontent-%COMP%] .block[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{color:#fff!important}body.dark[_nghost-%COMP%] ion-modal[_ngcontent-%COMP%] .block[_ngcontent-%COMP%] .message-box[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] ion-modal[_ngcontent-%COMP%] .block[_ngcontent-%COMP%] .message-box[_ngcontent-%COMP%]{color:#ccc!important;background-color:#333!important}body.dark[_nghost-%COMP%] .message-box[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-box[_ngcontent-%COMP%]{color:#ccc!important;background-color:#333!important}.prompt[_ngcontent-%COMP%]{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%]{flex:1;height:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;justify-content:center}.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%]{font-size:1.5em;font-weight:700}.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%] div[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:58px;height:58px}.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%] .cate_name[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{padding:1em;margin:1em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 390.4px){.prompt[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{width:100px;height:64px;padding:unset;margin:.8em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:pre-wrap;text-overflow:ellipsis}}.prompt_mobile[_ngcontent-%COMP%]{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt_mobile[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%]{flex:1;height:inherit}.prompt_mobile[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;font-size:1.2em}.prompt_mobile[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%] div[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:48px;height:48px}.prompt_mobile[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .cate_info[_ngcontent-%COMP%] .cate_name[_ngcontent-%COMP%]{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;margin-top:2vw}.prompt_mobile[_ngcontent-%COMP%] .prompt_cate[_ngcontent-%COMP%] .message[_ngcontent-%COMP%]{min-height:48px;padding:0 2vw;margin:4vw 1vw;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.view_more[_ngcontent-%COMP%]{text-align:center;color:#999;margin:4vw 0}.view_more[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{background-color:transparent}.block[_ngcontent-%COMP%]{width:100%;height:80vh;padding:2vw}.block[_ngcontent-%COMP%] .block_cate[_ngcontent-%COMP%]{display:flex;justify-content:space-evenly}.block[_ngcontent-%COMP%] .message_mobile[_ngcontent-%COMP%]{overflow-y:auto;height:65vh;color:#000}.message-box[_ngcontent-%COMP%]{background-color:#fff;text-align:center;padding:8px 0;margin:8px 0;border-radius:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-modal[_ngcontent-%COMP%]{--height: auto}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompRolePromptComponent, [{\n type: Component,\n args: [{\n selector: \"app-comp-role-prompt\",\n standalone: !0,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, IonModal, IonButton, IonSegment, IonLabel, NzIconModule],\n providers: [ModalController$1],\n template: '<ng-container *ngIf=\"chat?.messageList?.length<4 && chat?.isPromptMessageAreaShow && !chat?.userInput\">\\n \\x3c!-- PC端样式 --\\x3e\\n <div class=\"prompt\" *ngIf=\"cross?.navMenuType!=\\'mobile\\'\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\')\">\\n <div class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n \\x3c!-- 手机端样式 --\\x3e\\n <ng-container *ngIf=\"cross?.navMenuType==\\'mobile\\'\">\\n <div class=\"prompt_mobile\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\');let idx = index\">\\n <div *ngIf=\"idx<3\" class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n <div class=\"view_more\" *ngIf=\"chat?.promptList?.length\">\\n <button (click)=\"chat.isPromptModalOpen=true\" expand=\"block\">查看更多<span nz-icon nzType=\"right\" nzTheme=\"outline\"></span></button>\\n </div>\\n </ng-container>\\n</ng-container>\\n\\n <ion-modal [isOpen]=\"chat.isPromptModalOpen\" (willDismiss)=\"chat.isPromptModalOpen=false\" [initialBreakpoint]=\"1\" [breakpoints]=\"[0, 1]\">\\n <ng-template>\\n <div class=\"block\">\\n <ion-label>话题灵感</ion-label>\\n <div class=\"block_cate\">\\n \\x3c!-- <ion-segment [(ngModel)]=\"cateIndex\">\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-segment-button value=\"i\">\\n <ion-label>{{prompt?.get(\"cate\")}}</ion-label>\\n </ion-segment-button>\\n </ng-container>\\n </ion-segment> --\\x3e\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-button [color]=\"i==cateIndex?\\'secondary\\':\\'light\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</ion-button>\\n \\x3c!-- <div [class]=\"i==cateIndex?\\'active_cate\\':\\'\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</div> --\\x3e\\n </ng-container>\\n </div>\\n <div class=\"message_mobile\">\\n <ng-container *ngFor=\"let message of chat?.promptList[cateIndex]?.get(\\'messageList\\')\">\\n <div class=\"message-box\" [style.backgroundColor]=\"isDarkMode?\\'rgba(255,255,255,0.2)\\':\\'white\\'\" [style.color]=\"isDarkMode?\\'rgba(255,255,255,0.5)\\':\\'black\\'\" (click)=\"applyPrompt(message)\">{{message}}</div>\\n </ng-container>\\n </div>\\n </div>\\n </ng-template>\\n </ion-modal>',\n styles: [\":host-context(body.dark) .prompt_cate .message{background:#fff3;border:1px solid #333;box-shadow:0 2px 8px #333;color:#ffffff80}:host-context(body.dark) .cate_info{color:#fff}:host-context(body.dark) ion-modal .block h4{color:#fff!important}:host-context(body.dark) ion-modal .block .message-box{color:#ccc!important;background-color:#333!important}:host-context(body.dark) .message-box{color:#ccc!important;background-color:#333!important}.prompt{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt .prompt_cate{flex:1;height:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;justify-content:center}.prompt .prompt_cate .cate_info{font-size:1.5em;font-weight:700}.prompt .prompt_cate .cate_info div img{width:58px;height:58px}.prompt .prompt_cate .cate_info .cate_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prompt .prompt_cate .message{padding:1em;margin:1em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 390.4px){.prompt .prompt_cate .message{width:100px;height:64px;padding:unset;margin:.8em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:pre-wrap;text-overflow:ellipsis}}.prompt_mobile{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt_mobile .prompt_cate{flex:1;height:inherit}.prompt_mobile .prompt_cate .cate_info{display:flex;justify-content:center;align-items:center;font-size:1.2em}.prompt_mobile .prompt_cate .cate_info div img{width:48px;height:48px}.prompt_mobile .prompt_cate .cate_info .cate_name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;margin-top:2vw}.prompt_mobile .prompt_cate .message{min-height:48px;padding:0 2vw;margin:4vw 1vw;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.view_more{text-align:center;color:#999;margin:4vw 0}.view_more>button{background-color:transparent}.block{width:100%;height:80vh;padding:2vw}.block .block_cate{display:flex;justify-content:space-evenly}.block .message_mobile{overflow-y:auto;height:65vh;color:#000}.message-box{background-color:#fff;text-align:center;padding:8px 0;margin:8px 0;border-radius:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-modal{--height: auto}\\n\"]\n }]\n }], () => [{\n type: CrossService\n }, {\n type: i2$3.ModalController\n }], {\n chat: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\nclass FmChatMesssageArea {\n get messageList() {\n var _this$chatServ$chatMa;\n return (_this$chatServ$chatMa = this.chatServ.chatMap[this.chatId]) === null || _this$chatServ$chatMa === void 0 ? void 0 : _this$chatServ$chatMa.messageList;\n }\n constructor(e) {\n this.chatServ = e;\n }\n ngDoCheck() {}\n ngAfterViewInit() {\n console.log(\"ng gogogo1\"), console.log(\"ng gogogo2\"), console.log(this.chat);\n }\n}\n_FmChatMesssageArea = FmChatMesssageArea;\n_FmChatMesssageArea.ɵfac = function _FmChatMesssageArea_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmChatMesssageArea)(i0.ɵɵdirectiveInject(ChatService));\n};\n_FmChatMesssageArea.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _FmChatMesssageArea,\n selectors: [[\"fm-chat-message-area\"]],\n inputs: {\n chatId: \"chatId\",\n chat: \"chat\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 4,\n vars: 4,\n consts: [[1, \"message-list\"], [3, \"chat\", \"role\"], [4, \"ngFor\", \"ngForOf\"], [3, \"chat\", \"index\", \"message\", \"role\", 4, \"ngIf\"], [3, \"chat\", \"index\", \"message\", \"role\"], [4, \"ngIf\"], [3, \"chat\", \"message\", \"role\"]],\n template: function _FmChatMesssageArea_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵelement(1, \"app-comp-role-prompt\", 1);\n i0.ɵɵtemplate(2, _FmChatMesssageArea_ng_container_2_Template, 2, 1, \"ng-container\", 2)(3, _FmChatMesssageArea_Conditional_3_Template, 2, 2);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"chat\", ctx.chat)(\"role\", ctx.chat == null ? null : ctx.chat.role == null ? null : ctx.chat.role.id);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.chat == null ? null : ctx.chat.messageList);\n i0.ɵɵadvance();\n i0.ɵɵconditional(!(ctx.chat == null ? null : ctx.chat.hideInputPreview) ? 3 : -1);\n }\n },\n dependencies: [CommonModule, i2$2.NgForOf, i2$2.NgIf, FmChatMessageCard, CompRolePromptComponent],\n styles: [\".message-list[_ngcontent-%COMP%]{padding:5px 20px}body.dark[_nghost-%COMP%] .message-list[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .message-list[_ngcontent-%COMP%]{background-color:#000!important}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmChatMesssageArea, [{\n type: Component,\n args: [{\n selector: \"fm-chat-message-area\",\n standalone: !0,\n imports: [CommonModule, FmChatMessageCard, CompRolePromptComponent],\n template: '\\n<div class=\"message-list\">\\n <app-comp-role-prompt [chat]=\"chat\" [role]=\"chat?.role?.id\"></app-comp-role-prompt>\\n <ng-container *ngFor=\"let message of chat?.messageList;let index=index;\">\\n \\x3c!-- 内容格式化区域 --\\x3e\\n <fm-chat-message-card [chat]=\"chat\" *ngIf=\"!message?.hidden\" [index]=\"index\" [message]=\"message\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n\\n @if(!chat?.hideInputPreview){\\n \\x3c!-- 预览无图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userInput&&!chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:chat?.userInput}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n \\n \\x3c!-- 预览有图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:[{type:\\'text\\',text:chat?.userInput},{type:\\'image_url\\',image_url:{url:chat?.userImage}}]}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n }\\n</div>',\n styles: [\".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\\n\"]\n }]\n }], () => [{\n type: ChatService\n }], {\n chatId: [{\n type: Input\n }],\n chat: [{\n type: Input\n }]\n });\n})();\nclass ModalAudioMessageComponent {\n constructor(e, t, n) {\n this.voiceServ = e, this.toastCtrl = t, this.uploadServ = n, this.isRecording = !1, this.player = new Audio(), this.durationStr = \"0:00\";\n }\n ngOnInit() {\n this.chat.userInput = \"\", this.initVoiceSevice(), this.voiceServ.startTalk();\n }\n playMusic(e) {\n this.player || (this.player = new Audio()), this.player.src = `/assets/avatar/voice/${e}.mp3`;\n try {\n var _this$player;\n (_this$player = this.player) === null || _this$player === void 0 || _this$player.play();\n } catch (e) {}\n }\n initVoiceSevice() {\n var _this87 = this;\n this.chat.userInput = this.voiceServ.resultText, this.voiceServ.requestPermission().then(() => {\n this.voiceServ.openWithPriviledge();\n }), this.voiceServ.onBeforeStartTalk = () => {\n this.chat.playAnimation(\"listening\"), this.playMusic(\"start-talk\");\n }, this.voiceServ.onAfterRecordStart = () => {\n this.isRecording = !0;\n }, this.voiceServ.onDurationStrChange = e => {\n this.durationStr = e;\n }, this.voiceServ.onBeforeCancelTalk = () => {\n this.playMusic(\"interupt-talk\"), this.chat.playAnimation(\"waiting\");\n }, this.voiceServ.onAfterCancelTalk = () => {}, this.voiceServ.onBeforeFinishTalk = () => {\n this.chat.playAnimation(\"thinking\"), this.playMusic(\"stop-talk\");\n }, this.voiceServ.onAfterFinishTalk = /*#__PURE__*/_asyncToGenerator(function* () {\n var _this87$voiceServ, _this87$voiceServ2, _this87$voiceServ3, _this87$voiceServ4, _this87$chat;\n console.log(\"onAfterFinishTalk1\", (_this87$voiceServ = _this87.voiceServ) === null || _this87$voiceServ === void 0 ? void 0 : _this87$voiceServ.resultText), console.log(\"onAfterFinishTalk2\", (_this87$voiceServ2 = _this87.voiceServ) === null || _this87$voiceServ2 === void 0 ? void 0 : _this87$voiceServ2.resultTextTemp), _this87.chat.userInput = \"\" + (((_this87$voiceServ3 = _this87.voiceServ) === null || _this87$voiceServ3 === void 0 ? void 0 : _this87$voiceServ3.resultTextTemp) || ((_this87$voiceServ4 = _this87.voiceServ) === null || _this87$voiceServ4 === void 0 ? void 0 : _this87$voiceServ4.resultText)), (_this87$chat = _this87.chat) !== null && _this87$chat !== void 0 && _this87$chat.userInput && (yield _this87.saveChatVoice()), _this87.sendMessage();\n });\n }\n saveChatVoice() {\n var _this88 = this;\n return _asyncToGenerator(function* () {\n let e = _this88.voiceServ.recordWavBlob,\n t = _this88.voiceServ.recordDuration;\n if (e) {\n var _Parse__default$User$10, _this88$chatVoice, _this88$uploadServ, _this88$chatVoice2, _this88$chatVoice3;\n let n = Parse__default.Object.extend(\"ChatVoice\");\n _this88.chatVoice = new n(), _this88.chatVoice.set(\"content\", _this88.chat.userInput), _this88.chatVoice.set(\"role\", \"user\"), _this88.chatVoice.set(\"duration\", t);\n let o = localStorage.getItem(\"company\");\n o && _this88.chatVoice.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: o\n }), ((_Parse__default$User$10 = Parse__default.User.current()) === null || _Parse__default$User$10 === void 0 ? void 0 : _Parse__default$User$10.id) && _this88.chatVoice.set(\"user\", Parse__default.User.current().toPointer());\n let i = ((_this88$chatVoice = _this88.chatVoice) === null || _this88$chatVoice === void 0 ? void 0 : _this88$chatVoice.id) || ((_this88$uploadServ = _this88.uploadServ) === null || _this88$uploadServ === void 0 ? void 0 : _this88$uploadServ.genMd5(((_this88$chatVoice2 = _this88.chatVoice) === null || _this88$chatVoice2 === void 0 ? void 0 : _this88$chatVoice2.get(\"content\")) || ((_this88$chatVoice3 = _this88.chatVoice) === null || _this88$chatVoice3 === void 0 ? void 0 : _this88$chatVoice3.get(\"ssml\")))),\n a = new Date(),\n r = i + a.getFullYear() + (a.getMonth() + 1) + a.getDate() + a.getHours() + a.getMinutes() + a.getSeconds() + \".wav\",\n s = new File([e], r, {\n type: \"audio/wav\"\n }),\n l = yield _this88.uploadServ.upload(s, e => {\n console.log(e);\n }),\n c = {\n __type: \"Pointer\",\n className: \"Attachment\",\n objectId: l === null || l === void 0 ? void 0 : l.id\n };\n (c === null || c === void 0 ? void 0 : c.objectId) && (_this88.chatVoice.set(\"voiceFile\", c), _this88.chatVoice = yield _this88.chatVoice.save());\n }\n })();\n }\n sendMessage() {\n var _this89 = this;\n return _asyncToGenerator(function* () {\n var _this89$chat, _this89$chat2, _this89$chat3, _this89$chatVoice, _this89$chatVoice2;\n if (_this89.chat.userInput) (_this89$chat = _this89.chat) === null || _this89$chat === void 0 || _this89$chat.sendMessage(\"\" + ((_this89$chat2 = _this89.chat) === null || _this89$chat2 === void 0 ? void 0 : _this89$chat2.userInput), (_this89$chat3 = _this89.chat) === null || _this89$chat3 === void 0 ? void 0 : _this89$chat3.userImage, e => {}, {\n onSSMLComplete: e => {\n console.log(e);\n }\n }, {\n id: (_this89$chatVoice = _this89.chatVoice) === null || _this89$chatVoice === void 0 ? void 0 : _this89$chatVoice.id,\n duration: (_this89$chatVoice2 = _this89.chatVoice) === null || _this89$chatVoice2 === void 0 ? void 0 : _this89$chatVoice2.get(\"duration\")\n });else {\n (yield _this89.toastCtrl.create({\n message: \"内容不能为空\",\n position: \"top\",\n icon: \"alert\",\n color: \"warning-circle\",\n duration: 1e3\n })).present();\n }\n })();\n }\n cancel() {\n var _this$modal;\n this.clear(), this.voiceServ.cancelTalk(), (_this$modal = this.modal) === null || _this$modal === void 0 ? void 0 : _this$modal.dismiss(null, \"cancel\");\n }\n send() {\n var _this$modal2;\n this.clear(), this.voiceServ.finishTalk(), (_this$modal2 = this.modal) === null || _this$modal2 === void 0 ? void 0 : _this$modal2.dismiss(null, \"send\");\n }\n clear() {\n this.now = void 0, this.isRecording = !1;\n }\n}\n_ModalAudioMessageComponent = ModalAudioMessageComponent;\n_ModalAudioMessageComponent.ɵfac = function _ModalAudioMessageComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ModalAudioMessageComponent)(i0.ɵɵdirectiveInject(FmodeVoiceService), i0.ɵɵdirectiveInject(i2$3.ToastController), i0.ɵɵdirectiveInject(NovaUploadService));\n};\n_ModalAudioMessageComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ModalAudioMessageComponent,\n selectors: [[\"fm-modal-audio-message\"]],\n inputs: {\n chat: \"chat\",\n modal: \"modal\"\n },\n standalone: true,\n features: [i0.ɵɵProvidersFeature([ModalController$1]), i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 2,\n consts: [[1, \"modal-area\"], [4, \"ngIf\"], [1, \"row\"], [\"name\", \"crescent\", \"color\", \"success\", 2, \"width\", \"80px\", \"height\", \"80px\"], [1, \"actions\", \"row\"], [\"size\", \"large\", \"shape\", \"round\", \"color\", \"light\", 3, \"click\"], [\"name\", \"close-outline\"], [1, \"audio-input\"], [1, \"timer\", \"row\"], [1, \"audio-wave\", \"row\"], [1, \"audio\"], [1, \"wave\"], [\"size\", \"large\", \"shape\", \"round\", \"color\", \"success\", 3, \"click\"], [\"name\", \"send-outline\"], [1, \"tips\", \"row\"]],\n template: function _ModalAudioMessageComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵtemplate(1, _ModalAudioMessageComponent_ng_container_1_Template, 3, 0, \"ng-container\", 1)(2, _ModalAudioMessageComponent_ng_container_2_Template, 18, 1, \"ng-container\", 1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.isRecording);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.isRecording);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, IonButton, IonIcon, IonSpinner],\n styles: [\"body.dark[_nghost-%COMP%] .modal-area[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .modal-area[_ngcontent-%COMP%]{color:#fff}.modal-area[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:15px}.modal-area[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{margin:10px}.modal-area[_ngcontent-%COMP%] .tips[_ngcontent-%COMP%]{padding-top:5px}.modal-area[_ngcontent-%COMP%] .timer[_ngcontent-%COMP%]{font-size:1.5rem;font-weight:700}.modal-area[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;justify-content:space-around;width:100%;height:86px}.audio-input[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;align-items:center}.audio[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;width:60px;height:40px}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]{height:40px;display:block;width:10px;height:6px;border-radius:8px;background:orange}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_audio-wave 2s ease-in-out infinite}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]:nth-child(1){animation-delay:.1s}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]:nth-child(2){animation-delay:.2s}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]:nth-child(3){animation-delay:.3s}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]:nth-child(4){animation-delay:.4s}.audio[_ngcontent-%COMP%] .wave[_ngcontent-%COMP%]:nth-child(5){animation-delay:.5s}@keyframes _ngcontent-%COMP%_audio-wave{0%{height:6px;transform:translateY(0);background:#ff8e3a}25%{height:6px;transform:translateY(0);background:#9c73f8}50%{height:30px;transform:translateY(-5px) scaleY(1.5);background:#ed509e}75%{height:6px;transform:translateY(0);background:#9c73f8}to{height:6px;transform:translateY(0);background:#0fccce}}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ModalAudioMessageComponent, [{\n type: Component,\n args: [{\n selector: \"fm-modal-audio-message\",\n standalone: !0,\n imports: [CommonModule, IonButton, IonIcon, IonSpinner],\n providers: [ModalController$1],\n template: '\\x3c!-- <div style=\"background:#FFFFFF;color:#000000;width:100%\">\\n {{this.chat.userInput}}\\n</div> --\\x3e\\n<div class=\"modal-area\">\\n\\n \\x3c!-- 加载WebSockets动画 --\\x3e\\n <ng-container *ngIf=\"!isRecording\">\\n <div class=\"row\">\\n <ion-spinner name=\"crescent\" color=\"success\" style=\"width:80px;height:80px;\"></ion-spinner>\\n </div>\\n </ng-container>\\n \\x3c!-- 录音中动画 --\\x3e\\n <ng-container *ngIf=\"isRecording\">\\n <div class=\"actions row\">\\n \\x3c!-- 取消 --\\x3e\\n <ion-button (click)=\"cancel()\" size=\"large\" shape=\"round\" color=\"light\">\\n <ion-icon name=\"close-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 音频 --\\x3e\\n <div class=\"audio-input\">\\n <div class=\"timer row\">\\n {{durationStr || \"00:00\"}}\\n </div>\\n <div class=\"audio-wave row\">\\n <div class=\"audio\">\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n </div>\\n </div>\\n </div>\\n \\x3c!-- 发送 --\\x3e\\n <ion-button (click)=\"send()\" size=\"large\" shape=\"round\" color=\"success\">\\n <ion-icon name=\"send-outline\"></ion-icon>\\n </ion-button>\\n </div>\\n \\n <div class=\"tips row\">\\n 请您讲话,AI会识别!\\n </div>\\n </ng-container>\\n</div>',\n styles: [\":host-context(body.dark) .modal-area{color:#fff}.modal-area{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:15px}.modal-area .row{margin:10px}.modal-area .tips{padding-top:5px}.modal-area .timer{font-size:1.5rem;font-weight:700}.modal-area .actions{display:flex;justify-content:space-around;width:100%;height:86px}.audio-input{display:flex;flex-direction:column;justify-content:center;align-items:center}.audio{display:flex;justify-content:space-between;align-items:center;gap:8px;width:60px;height:40px}.audio .wave{height:40px;display:block;width:10px;height:6px;border-radius:8px;background:orange}.audio .wave{animation:audio-wave 2s ease-in-out infinite}.audio .wave:nth-child(1){animation-delay:.1s}.audio .wave:nth-child(2){animation-delay:.2s}.audio .wave:nth-child(3){animation-delay:.3s}.audio .wave:nth-child(4){animation-delay:.4s}.audio .wave:nth-child(5){animation-delay:.5s}@keyframes audio-wave{0%{height:6px;transform:translateY(0);background:#ff8e3a}25%{height:6px;transform:translateY(0);background:#9c73f8}50%{height:30px;transform:translateY(-5px) scaleY(1.5);background:#ed509e}75%{height:6px;transform:translateY(0);background:#9c73f8}to{height:6px;transform:translateY(0);background:#0fccce}}\\n\"]\n }]\n }], () => [{\n type: FmodeVoiceService\n }, {\n type: i2$3.ToastController\n }, {\n type: NovaUploadService\n }], {\n chat: [{\n type: Input\n }],\n modal: [{\n type: Input\n }]\n });\n})();\nclass FmChatModalInput {\n closeAudio() {\n var _this$audioComp;\n (_this$audioComp = this.audioComp) !== null && _this$audioComp !== void 0 && _this$audioComp.cancel(), this.isAudioModal = !1;\n }\n startTalk() {\n var _this90 = this;\n return _asyncToGenerator(function* () {\n let e,\n t = document.body.clientHeight || 960;\n _this90.audioModalHeightPoint = Number((165 / t).toFixed(2)), _this90.chat.stopPlayingVoice(), e = yield _this90.modalCtrl.create({\n component: ModalAudioMessageComponent,\n componentProps: {\n chat: _this90.chat,\n modal: e,\n onBreakPointSet: () => {\n var _e19;\n (_e19 = e) === null || _e19 === void 0 || _e19.setCurrentBreakpoint(_this90.audioModalHeightPoint);\n }\n },\n breakpoints: [_this90.audioModalHeightPoint],\n initialBreakpoint: _this90.audioModalHeightPoint\n }), e.present();\n })();\n }\n constructor(e, t, n, o, i, a, r, s, l) {\n this.toastCtrl = e, this.alertCtrl = t, this.modalCtrl = n, this.navCtrl = o, this.router = i, this.imagineServ = a, this.chatServ = r, this.route = s, this.messages = l, this.errorText = \"\", this.isAudioModal = !1, this.audioModalHeightPoint = .35, this.isShare = !1, this.user = Parse__default.User.current();\n }\n ngOnInit() {\n this.loadModel();\n let e = this;\n this.chat.focusUserInput = () => {\n e.chat.isVoiceInputMode = !1, e.userInputComp.setFocus();\n };\n }\n loadModel() {\n var _this91 = this;\n return _asyncToGenerator(function* () {\n var _this91$chat;\n let e = (_this91$chat = _this91.chat) === null || _this91$chat === void 0 || (_this91$chat = _this91$chat.role) === null || _this91$chat === void 0 ? void 0 : _this91$chat.get(\"model\");\n yield _this91.chatServ.loadModelList(e);\n })();\n }\n setMessageImage() {\n var _this92 = this;\n return _asyncToGenerator(function* () {\n var _this92$chat;\n let e = yield _this92.imagineServ.getimg();\n _this92.chat.userImage = e, console.log((_this92$chat = _this92.chat) === null || _this92$chat === void 0 ? void 0 : _this92$chat.userImage);\n })();\n }\n onInputFocus() {\n this.chat.isTexting = !0, this.chat.scrollToBottom && this.chat.scrollToBottom();\n }\n onKeyDown(e) {\n e.ctrlKey && \"Enter\" === e.key && (console.log(\"Ctrl+Enter 被按下\"), this.sendMessage());\n }\n sendMessage() {\n var _this93 = this;\n return _asyncToGenerator(function* () {\n var _this93$chat, _this93$chat2, _this93$chat3;\n if (!_this93.chat.userInput) {\n return _this93.errorText = \"内容不能为空\", void (yield _this93.toastCtrl.create({\n message: _this93.errorText,\n position: \"top\",\n icon: \"alert\",\n color: \"warning-circle\",\n duration: 1e3\n })).present();\n }\n (_this93$chat = _this93.chat) !== null && _this93$chat !== void 0 && _this93$chat.sendMessage((_this93$chat2 = _this93.chat) === null || _this93$chat2 === void 0 ? void 0 : _this93$chat2.userInput, (_this93$chat3 = _this93.chat) === null || _this93$chat3 === void 0 ? void 0 : _this93$chat3.userImage, e => {}, {\n onSSMLComplete: e => {\n console.log(e);\n }\n }), _this93.chat.userInput = \"\", _this93.chat.userImage = \"\";\n })();\n }\n checkBalance() {\n var _this94 = this;\n return _asyncToGenerator(function* () {\n var _this94$chatServ, _e$credit;\n if (!((_this94$chatServ = _this94.chatServ) !== null && _this94$chatServ !== void 0 && (_this94$chatServ = _this94$chatServ.currentModel) !== null && _this94$chatServ !== void 0 && _this94$chatServ.get(\"payLimit\"))) return !0;\n let e = yield _this94.account.getBilling();\n if ((e === null || e === void 0 || (_e$credit = e.credit) === null || _e$credit === void 0 ? void 0 : _e$credit.balance) < 10) {\n return (yield _this94.alertCtrl.create({\n header: \"注意\",\n subHeader: \"您的余额不足,请充值后解锁高级模型\",\n buttons: [{\n role: \"cancel\",\n text: \"取消\"\n }, {\n role: \"destructive\",\n text: \"充值\",\n handler: () => {\n _this94.router.navigateByUrl(\"/account/billing\");\n }\n }]\n })).present(), !1;\n }\n return !0;\n })();\n }\n getChatShare() {\n var _this95 = this;\n return _asyncToGenerator(function* () {\n var _this95$chat;\n _this95.user = Parse__default.User.current();\n let e = new Parse__default.Query(\"ChatShare\");\n e.equalTo(\"user\", Parse__default.User.current().id), e.equalTo(\"session\", (_this95$chat = _this95.chat) === null || _this95$chat === void 0 ? void 0 : _this95$chat.sessionId);\n yield e.first();\n })();\n }\n toggleChatShare() {\n var _this96 = this;\n return _asyncToGenerator(function* () {\n var _this96$chat, _this96$chat2, _t11, _this96$chat3;\n let e = new Parse__default.Query(\"ChatShare\");\n e.equalTo(\"user\", Parse__default.User.current().id), e.equalTo(\"role\", (_this96$chat = _this96.chat) === null || _this96$chat === void 0 ? void 0 : _this96$chat.role.id), e.equalTo(\"session\", (_this96$chat2 = _this96.chat) === null || _this96$chat2 === void 0 ? void 0 : _this96$chat2.sessionId), e.select(\"objectId\");\n let t = yield e.first();\n if ((_t11 = t) !== null && _t11 !== void 0 && _t11.id) t.set(\"messageList\", (_this96$chat3 = _this96.chat) === null || _this96$chat3 === void 0 ? void 0 : _this96$chat3.messageList);else {\n var _Parse__default$User$11, _this96$chat4, _this96$chat5, _this96$chat6;\n t = new (Parse__default.Object.extend(\"ChatShare\"))(), t.set(\"user\", {\n __type: \"Pointer\",\n className: \"_User\",\n objectId: (_Parse__default$User$11 = Parse__default.User.current()) === null || _Parse__default$User$11 === void 0 ? void 0 : _Parse__default$User$11.id\n }), t.set(\"session\", {\n __type: \"Pointer\",\n className: \"ChatSession\",\n objectId: (_this96$chat4 = _this96.chat) === null || _this96$chat4 === void 0 ? void 0 : _this96$chat4.sessionId\n }), t.set(\"role\", {\n __type: \"Pointer\",\n className: \"AvatarRole\",\n objectId: (_this96$chat5 = _this96.chat) === null || _this96$chat5 === void 0 ? void 0 : _this96$chat5.role.id\n }), t.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: \"E4KpGvTEto\"\n }), t.set(\"messageList\", (_this96$chat6 = _this96.chat) === null || _this96$chat6 === void 0 ? void 0 : _this96$chat6.messageList);\n }\n yield t.save(), _this96.getChatShare();\n })();\n }\n chatShareSuccessMessage() {\n this.messages.success(\"分享成功\");\n }\n showShare() {\n this.isShare = !0;\n }\n handleOkShare() {\n this.toggleChatShare(), this.chatShareSuccessMessage(), this.isShare = !1;\n }\n handleCancelShare() {\n this.isShare = !1;\n }\n}\n_FmChatModalInput = FmChatModalInput;\n_FmChatModalInput.ɵfac = function _FmChatModalInput_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmChatModalInput)(i0.ɵɵdirectiveInject(i2.ToastController), i0.ɵɵdirectiveInject(i2.AlertController), i0.ɵɵdirectiveInject(i2$3.ModalController), i0.ɵɵdirectiveInject(i2.NavController), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(ImagineService), i0.ɵɵdirectiveInject(ChatService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i4.NzMessageService));\n};\n_FmChatModalInput.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _FmChatModalInput,\n selectors: [[\"fm-chat-modal-input\"]],\n viewQuery: function _FmChatModalInput_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(ModalAudioMessageComponent, 5);\n i0.ɵɵviewQuery(_c13, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.audioComp = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.userInputComp = _t.first);\n }\n },\n inputs: {\n chat: \"chat\",\n message: \"message\",\n role: \"role\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 13,\n vars: 9,\n consts: [[\"userInput\", \"\"], [\"lines\", \"none\", 1, \"button-item\"], [4, \"ngFor\", \"ngForOf\"], [\"shape\", \"round\", \"fill\", \"outline\", \"title\", \"\\u5206\\u4EAB\", \"slot\", \"end\"], [3, \"isOpen\"], [\"nzTitle\", \"\\u95EE\\u7B54\\u5206\\u4EAB\", \"nzCentered\", \"\", \"nzOkText\", \"\\u5206\\u4EAB\", \"nzCancelText\", \"\\u53D6\\u6D88\", 3, \"nzVisible\", \"nzVisibleChange\", \"nzOnCancel\", \"nzOnOk\", 4, \"ngIf\"], [\"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"end\", 3, \"click\", 4, \"ngIf\"], [\"lines\", \"none\", 1, \"input-item\"], [4, \"ngIf\"], [\"style\", \"--padding-start:10px;--padding-end:10px;\", \"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"start\", 3, \"title\", \"click\", 4, \"ngIf\"], [\"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"start\", 2, \"--padding-start\", \"10px\", \"--padding-end\", \"10px\", 3, \"click\", \"title\"], [3, \"name\", \"slot\"], [\"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"start\", 3, \"click\"], [\"shape\", \"round\", \"fill\", \"outline\", \"title\", \"\\u5206\\u4EAB\", \"slot\", \"end\", 3, \"click\", 4, \"ngIf\"], [\"shape\", \"round\", \"fill\", \"outline\", \"title\", \"\\u5206\\u4EAB\", \"slot\", \"end\", 3, \"click\"], [\"name\", \"share-social-outline\"], [\"slot\", \"start\"], [3, \"click\"], [\"slot\", \"end\"], [1, \"ion-padding\"], [1, \"popup-content\"], [\"class\", \"item-row user\", 4, \"ngIf\"], [1, \"message-wrapper\"], [1, \"message-content-user\"], [\"class\", \"user-message\", 4, \"ngIf\"], [1, \"message-content-role\"], [\"class\", \"role-message\", 4, \"ngIf\"], [1, \"message-content-system\"], [\"class\", \"system-message\", 4, \"ngIf\"], [\"class\", \"chat-time\", 3, \"ngClass\", 4, \"ngIf\"], [1, \"item-row\", \"user\"], [3, \"nzSrc\", 4, \"ngIf\"], [1, \"user-question\"], [3, \"user\", 4, \"ngIf\"], [3, \"nzSrc\"], [3, \"user\"], [1, \"user-message\"], [1, \"item-content\"], [\"class\", \"content-style\", 3, \"content\", 4, \"ngIf\"], [1, \"content-style\", 3, \"content\"], [1, \"role-message\"], [1, \"system-message\"], [1, \"chat-time\", 3, \"ngClass\"], [\"nzTitle\", \"\\u95EE\\u7B54\\u5206\\u4EAB\", \"nzCentered\", \"\", \"nzOkText\", \"\\u5206\\u4EAB\", \"nzCancelText\", \"\\u53D6\\u6D88\", 3, \"nzVisibleChange\", \"nzOnCancel\", \"nzOnOk\", \"nzVisible\"], [4, \"nzModalContent\"], [\"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"end\", 3, \"click\"], [\"name\", \"image-outline\"], [\"shape\", \"round\", \"fill\", \"outline\", \"slot\", \"end\", \"id\", \"model-button\"], [\"name\", \"chevron-down-outline\"], [\"trigger\", \"model-button\", 3, \"dismissOnSelect\"], [3, \"click\", \"button\", \"detail\"], [\"color\", \"primary\", \"shape\", \"round\", \"size\", \"large\", 1, \"btn-input-change\", 3, \"click\"], [\"name\", \"chatbox-ellipses-outline\", \"slot\", \"icon-only\"], [1, \"btn-voice-start\", 3, \"click\"], [\"class\", \"btn-input-change\", \"color\", \"primary\", \"shape\", \"round\", \"size\", \"large\", 3, \"display\", \"click\", 4, \"ngIf\"], [\"shape\", \"round\", \"fill\", \"outline\", \"label\", \"Ctrl + Enter \\u53D1\\u9001\\u6D88\\u606F\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u60A8\\u7684\\u63D0\\u793A\\u8BCD\", \"labelPlacement\", \"floating\", 3, \"errorText\", \"ngModel\", \"autoGrow\", \"keydown\", \"ngModelChange\", \"ionFocus\", \"ionBlur\", 4, \"ngIf\"], [\"color\", \"primary\", \"shape\", \"round\", \"size\", \"large\", 3, \"click\"], [\"name\", \"paper-plane-outline\", \"slot\", \"icon-only\"], [\"name\", \"mic-outline\", \"slot\", \"icon-only\"], [\"shape\", \"round\", \"fill\", \"outline\", \"label\", \"Ctrl + Enter \\u53D1\\u9001\\u6D88\\u606F\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u60A8\\u7684\\u63D0\\u793A\\u8BCD\", \"labelPlacement\", \"floating\", 3, \"keydown\", \"ngModelChange\", \"ionFocus\", \"ionBlur\", \"errorText\", \"ngModel\", \"autoGrow\"]],\n template: function _FmChatModalInput_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-toolbar\")(1, \"ion-item\", 1);\n i0.ɵɵtemplate(2, _FmChatModalInput_ng_container_2_Template, 2, 1, \"ng-container\", 2)(3, _FmChatModalInput_ng_container_3_Template, 3, 1, \"ng-container\", 2)(4, _FmChatModalInput_Conditional_4_Template, 1, 1, \"ion-button\", 3);\n i0.ɵɵelementStart(5, \"ion-modal\", 4);\n i0.ɵɵtemplate(6, _FmChatModalInput_ng_template_6_Template, 13, 1, \"ng-template\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, _FmChatModalInput_nz_modal_7_Template, 2, 1, \"nz-modal\", 5)(8, _FmChatModalInput_ion_button_8_Template, 2, 0, \"ion-button\", 6)(9, _FmChatModalInput_Conditional_9_Template, 5, 2);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"ion-item\", 7);\n i0.ɵɵtemplate(11, _FmChatModalInput_ng_container_11_Template, 6, 0, \"ng-container\", 8)(12, _FmChatModalInput_ng_container_12_Template, 5, 2, \"ng-container\", 8);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n let tmp_5_0;\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.chat == null ? null : ctx.chat.leftButtons);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.chat == null ? null : ctx.chat.role == null ? null : ctx.chat.role.get(\"buttons\"));\n i0.ɵɵadvance();\n i0.ɵɵconditional(!(ctx.chat == null ? null : ctx.chat.hideShare) ? 4 : -1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"isOpen\", ctx.isShare);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", false);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.chatServ == null ? null : ctx.chatServ.currentModel == null ? null : (tmp_5_0 = ctx.chatServ.currentModel.get(\"config\")) == null ? null : tmp_5_0.imageEnabled);\n i0.ɵɵadvance();\n i0.ɵɵconditional(!(ctx.chat == null ? null : ctx.chat.hideModalSelect) ? 9 : -1);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.chat == null ? null : ctx.chat.isVoiceInputMode);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !(ctx.chat == null ? null : ctx.chat.isVoiceInputMode));\n }\n },\n dependencies: [CommonModule, i2$2.NgClass, i2$2.NgForOf, i2$2.NgIf, i2$2.DatePipe, FormsModule, i7.NgControlStatus, i7.NgModel, ReactiveFormsModule, RouterModule, IonToolbar, IonItem, IonButton, IonList, IonModal, IonIcon, IonTextarea, IonPopover, IonContent, NzModalModule, i3$1.NzModalComponent, i3$1.NzModalContentDirective],\n styles: [\"@charset \\\"UTF-8\\\";body.dark[_nghost-%COMP%] .btn-voice-start[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .btn-voice-start[_ngcontent-%COMP%]{background-color:#222428;color:#fff}body.dark[_nghost-%COMP%] ion-textarea[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] ion-textarea[_ngcontent-%COMP%]{background-color:#222428;color:#fff}ion-toolbar[_ngcontent-%COMP%]{--background:none}ion-toolbar[_ngcontent-%COMP%] .button-item[_ngcontent-%COMP%]{--inner-padding-start:5px;--inner-padding-end:0px;--padding-start:5px;--padding-end:0px}ion-toolbar[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%]{--background:transparent}ion-textarea.custom[_ngcontent-%COMP%]{--background: #373737;--color: #fff;--padding-end: 10px;--padding-start: 10px;--placeholder-color: #ddd;--placeholder-opacity: .8}ion-textarea.custom[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{width:calc(100% - 95px)}ion-textarea.custom[_ngcontent-%COMP%] ion-button[_ngcontent-%COMP%]{position:absolute;right:0}.input-item[_ngcontent-%COMP%]{display:flex;min-height:77px;align-items:center;border:none;--inner-padding-start:0px;--inner-padding-end:0px;--padding-start:0px;--padding-end:0px}.input-item[_ngcontent-%COMP%] ion-textarea[_ngcontent-%COMP%]{background-color:#fff;max-height:400px;padding:0 5px;margin:0 5px;border-radius:20px;overflow-y:auto}.input-item[_ngcontent-%COMP%] .btn-voice-start[_ngcontent-%COMP%]{display:flex;flex:1;justify-content:center;align-items:center;font-weight:700;background:#fff;border-radius:20px;min-height:50px}ion-textarea[_ngcontent-%COMP%]{transition:width .5s ease}ion-textarea[_ngcontent-%COMP%]:hover .btn-input-change[_ngcontent-%COMP%], ion-textarea[_ngcontent-%COMP%]:focus-within .btn-input-change[_ngcontent-%COMP%]{display:none}.input-item[_ngcontent-%COMP%]:hover ion-textarea[_ngcontent-%COMP%], .input-item[_ngcontent-%COMP%]:focus-within ion-textarea[_ngcontent-%COMP%]{border-color:var(--logo-color-primary)} .ant-modal-body{max-height:600px;overflow-y:auto} .ant-modal-footer{display:flex;justify-content:space-around} .ant-btn{width:40%}.popup-content[_ngcontent-%COMP%]{position:relative}.popup-content[_ngcontent-%COMP%] .message-content-user[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.popup-content[_ngcontent-%COMP%] .message-content-role[_ngcontent-%COMP%]{display:flex;justify-content:flex-start}.popup-content[_ngcontent-%COMP%] .message-content-system[_ngcontent-%COMP%]{display:flex;justify-content:center}.popup-content[_ngcontent-%COMP%] .user-message[_ngcontent-%COMP%]{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#e7f8ff}.popup-content[_ngcontent-%COMP%] .role-message[_ngcontent-%COMP%]{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#f6f6f6}.popup-content[_ngcontent-%COMP%] .user-question[_ngcontent-%COMP%]{margin-bottom:5px;display:flex;justify-content:flex-end}.popup-content[_ngcontent-%COMP%] .chat-time[_ngcontent-%COMP%]{margin-bottom:10px;display:flex;justify-content:flex-end;font-size:14px;color:#a3a3a3}.popup-content[_ngcontent-%COMP%] .role-time[_ngcontent-%COMP%]{justify-content:flex-start}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmChatModalInput, [{\n type: Component,\n args: [{\n selector: \"fm-chat-modal-input\",\n standalone: !0,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, RouterModule, IonToolbar, IonItem, IonButton, IonList, IonModal, IonInput, IonIcon, IonTextarea, IonPopover, IonContent, NzModalModule, ModalAudioMessageComponent],\n template: '<ion-toolbar>\\n <ion-item class=\"button-item\" lines=\"none\">\\n \\x3c!-- 设置 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"settings-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n <ng-container *ngFor=\"let button of chat?.leftButtons\">\\n <ion-button style=\"--padding-start:10px;--padding-end:10px;\"\\n shape=\"round\" *ngIf=\"button.show()\" fill=\"outline\" [title]=\"button?.title\" slot=\"start\" (click)=\"button.onClick()\">\\n <ion-icon [name]=\"button?.icon\" [slot]=\"button?.showTitle?\\'start\\':\\'icon-only\\'\"></ion-icon>\\n {{button?.showTitle&&button?.title}}\\n </ion-button>\\n </ng-container>\\n\\n <ng-container *ngFor=\"let button of chat?.role?.get(\\'buttons\\')\">\\n <ion-button shape=\"round\" (click)=\"chatServ.doButtonAction(button)\" fill=\"outline\" slot=\"start\">\\n {{button?.name}}\\n </ion-button>\\n </ng-container>\\n\\n \\x3c!--分享按钮--\\x3e\\n @if(!chat?.hideShare){\\n <ion-button shape=\"round\" *ngIf=\"chat?.messageList?.length>1\" (click)=\"showShare()\" fill=\"outline\" title=\"分享\" slot=\"end\">\\n <ion-icon name=\"share-social-outline\"></ion-icon>\\n </ion-button>\\n }\\n \\x3c!-- <button nz-button *ngIf=\"chat?.messageList?.length>1\"\\n nzType=\"primary\" title=\"分享\" (click)=\"showShare()\" style=\"width: 31.188px;height: 22px;box-shadow: none;background: #fff;border: 1px solid #4588ff;border-radius: 5px;\"> <span class=\"iconfont icon-fenxiang\" style=\"color: #4588ff;\"></span></button>\\n --\\x3e\\n <ion-modal [isOpen]=\"isShare\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"handleCancelShare()\">取消</ion-button>\\n </ion-buttons>\\n <ion-title>对话分享</ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"handleOkShare()\">分享</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ion-content>\\n </ng-template>\\n </ion-modal>\\n\\n <nz-modal *ngIf=\"false\"\\n [(nzVisible)]=\"isShare\"\\n nzTitle=\"问答分享\"\\n nzCentered\\n nzOkText=\"分享\"\\n nzCancelText=\"取消\"\\n (nzOnCancel)=\"handleCancelShare()\"\\n (nzOnOk)=\"handleOkShare()\"\\n >\\n <ng-container *nzModalContent>\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ng-container>\\n </nz-modal>\\n\\n \\x3c!-- 图片 --\\x3e\\n <ion-button shape=\"round\" *ngIf=\"chatServ?.currentModel?.get(\\'config\\')?.imageEnabled\" fill=\"outline\" slot=\"end\" (click)=\"setMessageImage()\">\\n <ion-icon name=\"image-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 模型 --\\x3e\\n @if(!chat?.hideModalSelect){\\n <ion-button shape=\"round\" fill=\"outline\" slot=\"end\" id=\"model-button\">\\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\\n {{chatServ?.currentModel?.get&&chatServ?.currentModel?.get(\"name\")||\"飞码4.0\"}}\\n </ion-button>\\n <ion-popover trigger=\"model-button\" [dismissOnSelect]=\"true\">\\n <ng-template>\\n <ion-content>\\n <ion-list>\\n <ng-container *ngFor=\"let model of chatServ.modelList\">\\n <ion-item (click)=\"chatServ.currentModel = model\" [button]=\"true\" [detail]=\"false\">\\n {{model?.get(\"name\")}}\\n <ion-note slot=\"end\">{{model?.get(\"credit\")}}/k</ion-note>\\n </ion-item>\\n </ng-container>\\n </ion-list>\\n </ion-content>\\n </ng-template>\\n </ion-popover>\\n }\\n\\n </ion-item>\\n\\n <ion-item class=\"input-item\" lines=\"none\">\\n \\x3c!-- 语音消息输入 --\\x3e\\n <ng-container *ngIf=\"chat?.isVoiceInputMode\">\\n \\x3c!-- 切换文本输入 --\\x3e\\n <ion-button class=\"btn-input-change\" color=\"primary\" (click)=\"chat.isVoiceInputMode=false\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"chatbox-ellipses-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n \\n <div class=\"btn-voice-start\" (click)=\"startTalk()\">\\n <span>\\n 点击讲话\\n </span> \\n </div>\\n </ng-container>\\n\\n \\x3c!-- 文本消息输入 --\\x3e\\n <ng-container *ngIf=\"!chat?.isVoiceInputMode\">\\n \\x3c!-- 切换语音输入 --\\x3e\\n <ion-button [style.display]=\"chat.isTexting?\\'none\\':\\'flex\\'\" class=\"btn-input-change\" color=\"primary\" *ngIf=\"chat?.role?.get(\\'voiceConfig\\')\" (click)=\"chat.isVoiceInputMode=true\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"mic-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n\\n \\x3c!-- 文本输入区域 --\\x3e\\n <ion-textarea\\n #userInput\\n *ngIf=\"chat\" (keydown)=\"onKeyDown($event)\"\\n [errorText]=\"errorText\"\\n [(ngModel)]=\"chat.userInput\"\\n (ionFocus)=\"onInputFocus()\"\\n (ionBlur)=\"chat.isTexting=false\"\\n [autoGrow]=\"true\" shape=\"round\" fill=\"outline\"\\n label=\"Ctrl + Enter 发送消息\" placeholder=\"请输入您的提示词\"\\n labelPlacement=\"floating\"></ion-textarea>\\n \\n \\x3c!-- 文本发送按钮 --\\x3e\\n <ion-button color=\"primary\" shape=\"round\" size=\"large\" (click)=\"sendMessage()\">\\n <ion-icon name=\"paper-plane-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n </ng-container>\\n </ion-item>\\n</ion-toolbar>\\n\\n\\n\\x3c!-- 语音消息输入:弹出区域 --\\x3e\\n\\x3c!-- <ion-modal #audioModal [isOpen]=\"isAudioModal\" (willDismiss)=\"closeAudio()\" [initialBreakpoint]=\"audioModalHeightPoint\" [breakpoints]=\"[0, audioModalHeightPoint]\">\\n <ng-template>\\n <fm-modal-audio-message #audioComp *ngIf=\"isAudioModal\" [chat]=\"chat\" [modal]=\"audioModal\"></fm-modal-audio-message>\\n </ng-template>\\n</ion-modal> --\\x3e',\n styles: ['@charset \"UTF-8\";:host-context(body.dark) .btn-voice-start{background-color:#222428;color:#fff}:host-context(body.dark) ion-textarea{background-color:#222428;color:#fff}ion-toolbar{--background:none}ion-toolbar .button-item{--inner-padding-start:5px;--inner-padding-end:0px;--padding-start:5px;--padding-end:0px}ion-toolbar ion-item{--background:transparent}ion-textarea.custom{--background: #373737;--color: #fff;--padding-end: 10px;--padding-start: 10px;--placeholder-color: #ddd;--placeholder-opacity: .8}ion-textarea.custom textarea{width:calc(100% - 95px)}ion-textarea.custom ion-button{position:absolute;right:0}.input-item{display:flex;min-height:77px;align-items:center;border:none;--inner-padding-start:0px;--inner-padding-end:0px;--padding-start:0px;--padding-end:0px}.input-item ion-textarea{background-color:#fff;max-height:400px;padding:0 5px;margin:0 5px;border-radius:20px;overflow-y:auto}.input-item .btn-voice-start{display:flex;flex:1;justify-content:center;align-items:center;font-weight:700;background:#fff;border-radius:20px;min-height:50px}ion-textarea{transition:width .5s ease}ion-textarea:hover .btn-input-change,ion-textarea:focus-within .btn-input-change{display:none}.input-item:hover ion-textarea,.input-item:focus-within ion-textarea{border-color:var(--logo-color-primary)}::ng-deep .ant-modal-body{max-height:600px;overflow-y:auto}::ng-deep .ant-modal-footer{display:flex;justify-content:space-around}::ng-deep .ant-btn{width:40%}.popup-content{position:relative}.popup-content .message-content-user{display:flex;justify-content:flex-end}.popup-content .message-content-role{display:flex;justify-content:flex-start}.popup-content .message-content-system{display:flex;justify-content:center}.popup-content .user-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#e7f8ff}.popup-content .role-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#f6f6f6}.popup-content .user-question{margin-bottom:5px;display:flex;justify-content:flex-end}.popup-content .chat-time{margin-bottom:10px;display:flex;justify-content:flex-end;font-size:14px;color:#a3a3a3}.popup-content .role-time{justify-content:flex-start}\\n']\n }]\n }], () => [{\n type: i2.ToastController\n }, {\n type: i2.AlertController\n }, {\n type: i2$3.ModalController\n }, {\n type: i2.NavController\n }, {\n type: i1$1.Router\n }, {\n type: ImagineService\n }, {\n type: ChatService\n }, {\n type: i1$1.ActivatedRoute\n }, {\n type: i4.NzMessageService\n }], {\n audioComp: [{\n type: ViewChild,\n args: [ModalAudioMessageComponent]\n }],\n userInputComp: [{\n type: ViewChild,\n args: [\"userInput\"]\n }],\n chat: [{\n type: Input\n }],\n message: [{\n type: Input\n }],\n role: [{\n type: Input\n }]\n });\n})();\nclass ChatPanelComponent {\n constructor(e, t, n) {\n var _window$location$path;\n this.route = e, this.router = t, this.chatServ = n, this.isDirect = !1, this.showInputModal = !0, this.showMessageArea = !0, this.showHeaderArea = !0, this.hideShare = !1, this.hideModalSelect = !1, this.hideInputPreview = !1, ((_window$location$path = window.location.pathname) === null || _window$location$path === void 0 ? void 0 : _window$location$path.indexOf(\"chat/session\")) > -1 && document.body.classList.add(\"dark\");\n }\n listenDivChange() {\n var _this$contentComp, _this$contentComp2;\n let e = new MutationObserver(() => {\n this.fmodeChat.scrollComp = this.contentComp;\n }),\n t = {\n childList: !0,\n subtree: !0,\n attributes: !0\n };\n ((_this$contentComp = this.contentComp) === null || _this$contentComp === void 0 ? void 0 : _this$contentComp.nativeElement) && e.observe((_this$contentComp2 = this.contentComp) === null || _this$contentComp2 === void 0 ? void 0 : _this$contentComp2.nativeElement, t);\n }\n ngAfterViewInit() {}\n ngOnInit() {\n var _this97 = this;\n combineLatest([this.route.params, this.route.queryParams]).subscribe( /*#__PURE__*/function () {\n var _ref20 = _asyncToGenerator(function* (e) {\n var _window$location$path2;\n let t = e[0];\n e[1];\n if (_this97.chatId = (t === null || t === void 0 ? void 0 : t.chatId) || _this97.chatId || null, _this97.chatId && (yield _this97.chatServ.initChatMap(_this97.chatId)), _this97.roleId = (t === null || t === void 0 ? void 0 : t.roleId) || _this97.roleId || null, _this97.roleId) {\n let e = yield _this97.chatServ.createNewRoleChat(_this97.roleId);\n _this97.fmodeChat = e;\n }\n _this97.chatId && (_this97.fmodeChat = _this97.chatServ.chatMap[_this97.chatId], _this97.fmodeChat || _this97.router.navigate([\"/chat/pro/mask\"], {\n queryParams: {\n type: \"employee\"\n }\n }), _this97.fmodeChat = _this97.chatServ.chatMap[_this97.chatId]), _this97.leftButtons && (_this97.fmodeChat.leftButtons = _this97.leftButtons), ((_window$location$path2 = window.location.pathname) === null || _window$location$path2 === void 0 ? void 0 : _window$location$path2.indexOf(\"chat/session\")) > -1 ? _this97.fmodeChat.isVoiceInputMode = !0 : _this97.fmodeChat.isVoiceInputMode = !1, _this97.modelList && (_this97.chatServ.modelList = _this97.modelList, _this97.chatServ.currentModel = _this97.modelList[0]), _this97.isDirect && (_this97.fmodeChat.isDirect = _this97.isDirect), _this97.hideShare && (_this97.fmodeChat.hideShare = _this97.hideShare), _this97.hideModalSelect && (_this97.fmodeChat.hideModalSelect = _this97.hideModalSelect), _this97.hideInputPreview && (_this97.fmodeChat.hideInputPreview = _this97.hideInputPreview), setTimeout(() => {\n _this97.fmodeChat.scrollComp = _this97.contentComp, _this97.listenDivChange();\n }, 1e3), _this97.sayWelcome();\n });\n return function (_x26) {\n return _ref20.apply(this, arguments);\n };\n }());\n }\n sayWelcome() {\n var _this$fmodeChat$voice;\n ((_this$fmodeChat$voice = this.fmodeChat.voiceConfig) === null || _this$fmodeChat$voice === void 0 || (_this$fmodeChat$voice = _this$fmodeChat$voice.welcome) === null || _this$fmodeChat$voice === void 0 ? void 0 : _this$fmodeChat$voice.enabled) && this.fmodeChat.welcome();\n }\n loadMask() {}\n}\n_ChatPanelComponent = ChatPanelComponent;\n_ChatPanelComponent.ɵfac = function _ChatPanelComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ChatPanelComponent)(i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(ChatService));\n};\n_ChatPanelComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ChatPanelComponent,\n selectors: [[\"app-chat-panel\"]],\n viewQuery: function _ChatPanelComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c15, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentComp = _t.first);\n }\n },\n inputs: {\n chatId: \"chatId\",\n maskId: \"maskId\",\n roleId: \"roleId\",\n leftButtons: \"leftButtons\",\n modelList: \"modelList\",\n isDirect: \"isDirect\",\n showInputModal: \"showInputModal\",\n showMessageArea: \"showMessageArea\",\n showHeaderArea: \"showHeaderArea\",\n hideShare: \"hideShare\",\n hideModalSelect: \"hideModalSelect\",\n hideInputPreview: \"hideInputPreview\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n ngContentSelectors: _c17,\n decls: 1,\n vars: 1,\n consts: [[\"contentComp\", \"\"], [\"class\", \"chat-page\", 4, \"ngIf\"], [1, \"chat-page\"], [1, \"header\"], [3, \"chat\", 4, \"ngIf\"], [1, \"content\"], [1, \"footer\"], [3, \"chat\"]],\n template: function _ChatPanelComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojectionDef(_c16);\n i0.ɵɵtemplate(0, _ChatPanelComponent_div_0_Template, 11, 5, \"div\", 1);\n }\n if (rf & 2) {\n i0.ɵɵproperty(\"ngIf\", ctx.fmodeChat);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, FmChatHeaderArea, FmChatMesssageArea, FmChatModalInput],\n styles: [\".chat-page[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;background:#f3f3f3}.chat-page[_ngcontent-%COMP%] .content[_ngcontent-%COMP%], .chat-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%], .chat-page[_ngcontent-%COMP%] .footer[_ngcontent-%COMP%]{justify-content:center;align-items:center}.chat-page[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{flex-grow:1;flex:1;overflow-y:auto}.chat-page[_ngcontent-%COMP%] .avatarHeader[_ngcontent-%COMP%]{height:35vh!important;overflow:hidden}.chat-page[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{height:44px;margin-bottom:-1px}.chat-page[_ngcontent-%COMP%] .footer[_ngcontent-%COMP%]{height:auto;min-height:130px}body.dark[_nghost-%COMP%] .chat-page[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .chat-page[_ngcontent-%COMP%]{background:#000}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ChatPanelComponent, [{\n type: Component,\n args: [{\n selector: \"app-chat-panel\",\n standalone: !0,\n imports: [CommonModule, FmChatHeaderArea, FmChatMesssageArea, FmChatModalInput],\n template: '\\n\\x3c!-- <ion-header></ion-header> --\\x3e\\n\\x3c!-- <ion-content class=\"ion-padding\"> --\\x3e\\n <div class=\"chat-page\" *ngIf=\"fmodeChat\">\\n <div class=\"header\" [class.avatarHeader]=\"fmodeChat?.isAvatarShow\">\\n <ng-content select=\"[chat-header]\"></ng-content>\\n <fm-chat-header-area *ngIf=\"showHeaderArea\" [chat]=\"fmodeChat\"></fm-chat-header-area>\\n </div>\\n \\n <div class=\"content\" #contentComp>\\n <ng-content select=\"[chat-content]\"></ng-content>\\n <fm-chat-message-area *ngIf=\"showMessageArea\" [chat]=\"fmodeChat\"></fm-chat-message-area>\\n </div>\\n \\n <div class=\"footer\">\\n <ng-content select=\"[chat-footer]\"></ng-content>\\n <fm-chat-modal-input *ngIf=\"showInputModal\" [chat]=\"fmodeChat\"></fm-chat-modal-input>\\n </div>\\n </div>\\n\\n\\x3c!-- </ion-content> --\\x3e',\n styles: [\".chat-page{display:flex;flex-direction:column;height:100%;background:#f3f3f3}.chat-page .content,.chat-page .header,.chat-page .footer{justify-content:center;align-items:center}.chat-page .content{flex-grow:1;flex:1;overflow-y:auto}.chat-page .avatarHeader{height:35vh!important;overflow:hidden}.chat-page .header{height:44px;margin-bottom:-1px}.chat-page .footer{height:auto;min-height:130px}:host-context(body.dark) .chat-page{background:#000}\\n\"]\n }]\n }], () => [{\n type: i1$1.ActivatedRoute\n }, {\n type: i1$1.Router\n }, {\n type: ChatService\n }], {\n chatId: [{\n type: Input\n }],\n maskId: [{\n type: Input\n }],\n roleId: [{\n type: Input\n }],\n leftButtons: [{\n type: Input\n }],\n modelList: [{\n type: Input\n }],\n isDirect: [{\n type: Input\n }],\n showInputModal: [{\n type: Input\n }],\n showMessageArea: [{\n type: Input\n }],\n showHeaderArea: [{\n type: Input\n }],\n hideShare: [{\n type: Input\n }],\n hideModalSelect: [{\n type: Input\n }],\n hideInputPreview: [{\n type: Input\n }],\n contentComp: [{\n type: ViewChild,\n args: [\"contentComp\"]\n }]\n });\n})(), window._AMapSecurityConfig = {\n securityJsCode: \"32aa3f4ab0fa0061de03edd4eafdd50a\"\n};\nclass PageMapStartComponent {\n constructor() {\n this.placeList = [{\n name: \"江财蛟桥校区\",\n location: [115.855125, 28.744335]\n }, {\n name: \"江财枫林校区\",\n location: [115.835639, 28.734119]\n }, {\n name: \"江财麦庐校区\",\n location: [115.816717, 28.728899]\n }];\n }\n ngAfterViewInit() {\n this.initMap();\n }\n initMap() {\n var _this98 = this;\n return _asyncToGenerator(function* () {\n yield _this98.createMap(), _this98.goAndMarkPlace(_this98.placeList[1]);\n })();\n }\n createMap() {\n var _this99 = this;\n return _asyncToGenerator(function* () {\n _this99.AMap = yield AMapLoader.load({\n key: \"473b52010df7d3a32db0a2f5db245c8e\",\n version: \"2.0\"\n }), _this99.map = new _this99.AMap.Map(\"container\");\n })();\n }\n addMarks() {\n var _this100 = this;\n return _asyncToGenerator(function* () {\n let e = new _this100.AMap.Marker({\n position: [115.835639, 28.734119]\n });\n _this100.map.add(e);\n })();\n }\n goAndMarkPlace(e) {\n this.map.setCenter(e.location), this.map.setZoom(18), console.log(this.placeList), e.marker || (e.marker = new this.AMap.Marker({\n position: e.location\n }), this.map.add(e.marker));\n }\n clearMark(e) {\n var _e$marker;\n e === null || e === void 0 || (_e$marker = e.marker) === null || _e$marker === void 0 || _e$marker.remove();\n }\n planRoute(e, t) {\n let n;\n this.map.plugin([\"AMap.Transfer\"], () => {\n let o = {\n map: this.map,\n city: \"南昌市\",\n panel: \"panel\",\n policy: this.AMap.TransferPolicy.LEAST_TIME\n };\n console.log(this.AMap), console.log(this.AMap.TransferPolicy), n = new this.AMap.Transfer(o), n.search(new this.AMap.LngLat(e.location[0], e.location[1]), new this.AMap.LngLat(t.location[0], t.location[1]), (e, t) => {\n \"complete\" === e ? (console.log(\"绘制公交路线完成:\"), console.log(t)) : console.error(\"公交路线数据查询失败\" + t);\n });\n });\n }\n}\n_PageMapStartComponent = PageMapStartComponent;\n_PageMapStartComponent.ɵfac = function _PageMapStartComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _PageMapStartComponent)();\n};\n_PageMapStartComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _PageMapStartComponent,\n selectors: [[\"app-page-map\", 8, \"start\"]],\n attrs: _c18,\n decls: 5,\n vars: 1,\n consts: [[\"id\", \"container\"], [1, \"place-list\"], [4, \"ngFor\", \"ngForOf\"], [3, \"click\"], [1, \"place-item\", 3, \"click\"]],\n template: function _PageMapStartComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n i0.ɵɵelementStart(1, \"div\", 1);\n i0.ɵɵtemplate(2, _PageMapStartComponent_ng_container_2_Template, 5, 1, \"ng-container\", 2);\n i0.ɵɵelementStart(3, \"button\", 3);\n i0.ɵɵlistener(\"click\", function _PageMapStartComponent_Template_button_click_3_listener() {\n return ctx.planRoute(ctx.placeList[0], ctx.placeList[1]);\n });\n i0.ɵɵtext(4, \"\\u4ECE\\u86DF\\u6865\\u5230\\u67AB\\u6797\");\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngForOf\", ctx.placeList);\n }\n },\n dependencies: [i2$2.NgForOf],\n styles: [\"#container[_ngcontent-%COMP%]{width:100%;height:100%;position:fixed}.place-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;position:fixed;justify-content:center;align-items:center;height:80%;width:200px}.place-list[_ngcontent-%COMP%] .place-item[_ngcontent-%COMP%]{background-color:#ffffff4d;height:100px;width:90%}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PageMapStartComponent, [{\n type: Component,\n args: [{\n selector: \"app-page-map.start\",\n template: '\\x3c!-- 全屏地图 --\\x3e\\n<div id=\"container\"></div>\\n\\n\\x3c!-- 右侧地点 --\\x3e\\n<div class=\"place-list\">\\n <ng-container *ngFor=\"let place of placeList\">\\n <div class=\"place-item\" (click)=\"goAndMarkPlace(place)\">\\n {{place.name}}\\n <button (click)=\"clearMark(place)\">清除标记</button>\\n </div>\\n </ng-container>\\n\\n <button (click)=\"planRoute(placeList[0],placeList[1])\">从蛟桥到枫林</button>\\n \\n</div>',\n styles: [\"#container{width:100%;height:100%;position:fixed}.place-list{display:flex;flex-direction:column;position:fixed;justify-content:center;align-items:center;height:80%;width:200px}.place-list .place-item{background-color:#ffffff4d;height:100px;width:90%}\\n\"]\n }]\n }], null, null);\n})(), window._AMapSecurityConfig = {\n securityJsCode: \"32aa3f4ab0fa0061de03edd4eafdd50a\"\n};\nclass CompPoiPickerComponent {\n get name() {\n return this._name;\n }\n set name(e) {\n this._name = e, this.nameChange.emit(e);\n }\n get address() {\n return this._address;\n }\n set address(e) {\n this._address = e, this.addressChange.emit(e);\n }\n get location() {\n return this._location;\n }\n set location(e) {\n this._location = e, this.locationChange.emit(e);\n }\n constructor() {\n this.nameChange = new EventEmitter(), this.addressChange = new EventEmitter(), this.locationChange = new EventEmitter(), this.isModalOpen = !1;\n }\n cancel() {\n this.isModalOpen = !1, this.modal.dismiss(null, \"cancel\");\n }\n confirm() {\n this.isModalOpen = !1, this.modal.dismiss(this.address, \"confirm\");\n }\n onWillDismiss(e) {\n \"confirm\" === e.detail.role && console.log(\"确认\");\n }\n openModal() {\n this.isModalOpen = !0, setTimeout(() => {\n this.initMap();\n }, 800);\n }\n ngAfterViewInit() {}\n initMap() {\n this.createMap();\n }\n createMap() {\n var _this101 = this;\n return _asyncToGenerator(function* () {\n _this101.AMap = yield AMapLoader.load({\n key: \"473b52010df7d3a32db0a2f5db245c8e\",\n version: \"2.0\"\n });\n let e = _this101.container.nativeElement;\n _this101.map = new _this101.AMap.Map(e), _this101.goCurrentCenter();\n })();\n }\n goCurrentCenter() {\n this.AMap.plugin([\"AMap.Geolocation\"], () => {\n let e = new this.AMap.Geolocation({\n enableHighAccuracy: !0,\n timeout: 1e4,\n maximumAge: 0,\n convert: !0,\n showButton: !0,\n buttonPosition: \"RB\",\n buttonOffset: new this.AMap.Pixel(10, 10),\n showMarker: !1,\n showCircle: !1,\n panToLocation: !0,\n zoomToAccuracy: !1\n });\n this.map.addControl(e), e.getCurrentPosition(function (e, t) {\n \"complete\" === e ? (console.log(\"当前位置经度:\" + t.position.getLng()), console.log(\"当前位置纬度:\" + t.position.getLat())) : console.log(\"定位失败:\" + t.message);\n });\n });\n }\n searchByAddress() {\n let e = this.panel.nativeElement;\n this.AMap.plugin([\"AMap.PlaceSearch\"], () => {\n let t = new this.AMap.PlaceSearch({\n pageSize: 3,\n pageIndex: 1,\n map: this.map,\n panel: e,\n autoFitView: !0\n });\n t.on(\"selectChanged\", e => {\n this.name = e.selected.data.name, this.address = e.selected.data.address, this.location = new Parse__default.GeoPoint({\n latitude: e.selected.data.location.lat,\n longitude: e.selected.data.location.lng\n }), this.createCenterMarker();\n }), t.search(this.address);\n });\n }\n createCenterMarker() {\n this.centerMarker || (this.centerMarker = new this.AMap.Marker({\n position: this.map.getCenter(),\n offset: new this.AMap.Pixel(-15, -15)\n }), this.map.add(this.centerMarker), this.map.on(\"dragging\", () => {\n this.centerMarker.setPosition(this.map.getCenter());\n }), this.map.on(\"dragend\", () => {\n let e = this.centerMarker.getPosition();\n this.location = new Parse__default.GeoPoint({\n latitude: e.lat,\n longitude: e.lng\n });\n }));\n }\n}\n_CompPoiPickerComponent = CompPoiPickerComponent;\n_CompPoiPickerComponent.ɵfac = function _CompPoiPickerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompPoiPickerComponent)();\n};\n_CompPoiPickerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CompPoiPickerComponent,\n selectors: [[\"fm-map-poi-picker\"]],\n viewQuery: function _CompPoiPickerComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c19, 5);\n i0.ɵɵviewQuery(_c20, 5);\n i0.ɵɵviewQuery(IonModal$1, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.container = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panel = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.modal = _t.first);\n }\n },\n inputs: {\n _name: [0, \"name\", \"_name\"],\n _address: [0, \"address\", \"_address\"],\n _location: [0, \"location\", \"_location\"]\n },\n outputs: {\n nameChange: \"nameChange\",\n addressChange: \"addressChange\",\n locationChange: \"locationChange\"\n },\n decls: 4,\n vars: 1,\n consts: [[\"container\", \"\"], [\"panel\", \"\"], [\"expand\", \"block\", 3, \"click\"], [3, \"willDismiss\", \"isOpen\"], [\"slot\", \"start\"], [3, \"click\"], [4, \"ngIf\"], [\"slot\", \"end\"], [3, \"click\", \"strong\"], [1, \"ion-padding\", 2, \"height\", \"100%\"], [\"label\", \"\\u8BF7\\u8F93\\u5165\\u8BE6\\u7EC6\\u5730\\u5740\", \"labelPlacement\", \"stacked\", \"type\", \"text\", \"placeholder\", \"\\u7CBE\\u786E\\u5230\\u95E8\\u724C\\u53F7\", 3, \"ngModelChange\", \"ngModel\"], [\"slot\", \"end\", 3, \"click\"], [1, \"container\"], [1, \"panel\"]],\n template: function _CompPoiPickerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-button\", 2);\n i0.ɵɵlistener(\"click\", function _CompPoiPickerComponent_Template_ion_button_click_0_listener() {\n return ctx.openModal();\n });\n i0.ɵɵtext(1, \"\\u5F00\\u59CB\\u9009\\u70B9\");\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(2, \"ion-modal\", 3);\n i0.ɵɵlistener(\"willDismiss\", function _CompPoiPickerComponent_Template_ion_modal_willDismiss_2_listener($event) {\n return ctx.onWillDismiss($event);\n });\n i0.ɵɵtemplate(3, _CompPoiPickerComponent_ng_template_3_Template, 20, 3, \"ng-template\");\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"isOpen\", ctx.isModalOpen);\n }\n },\n dependencies: [i2$2.NgIf, i7.NgControlStatus, i7.NgModel, i2.IonButton, i2.IonButtons, i2.IonContent, i2.IonHeader, i2.IonInput, i2.IonItem, i2.IonTitle, i2.IonToolbar, i2.IonModal, i2.TextValueAccessor],\n styles: [\".container[_ngcontent-%COMP%]{width:100%;height:100%}.panel[_ngcontent-%COMP%]{position:absolute;background-color:#fff;max-height:50%;overflow-y:auto;top:12%;right:10px;width:45%}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompPoiPickerComponent, [{\n type: Component,\n args: [{\n selector: \"fm-map-poi-picker\",\n template: '\\x3c!-- 未选点 --\\x3e\\n<ion-button (click)=\"openModal()\" expand=\"block\">开始选点</ion-button>\\n\\n\\x3c!-- 已选点 --\\x3e\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"onWillDismiss($event)\">\\n<ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"cancel()\">Cancel</ion-button>\\n </ion-buttons>\\n <ion-title>地图选点<ng-container *ngIf=\"location\">({{location.latitude}},{{location.longitude}})</ng-container></ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"confirm()\" [strong]=\"true\">Confirm</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\" style=\"height:100%\">\\n \\x3c!-- 详细地址 --\\x3e\\n <ion-item>\\n <ion-input\\n label=\"请输入详细地址\"\\n labelPlacement=\"stacked\"\\n type=\"text\"\\n placeholder=\"精确到门牌号\"\\n [(ngModel)]=\"address\"\\n ></ion-input>\\n <ion-button slot=\"end\" (click)=\"searchByAddress()\">搜索</ion-button>\\n </ion-item>\\n \\n \\x3c!-- 地图选点 --\\x3e\\n <div #container class=\"container\"></div>\\n <div #panel class=\"panel\"></div>\\n\\n </ion-content>\\n</ng-template>\\n</ion-modal>\\n\\n',\n styles: [\".container{width:100%;height:100%}.panel{position:absolute;background-color:#fff;max-height:50%;overflow-y:auto;top:12%;right:10px;width:45%}\\n\"]\n }]\n }], () => [], {\n container: [{\n type: ViewChild,\n args: [\"container\"]\n }],\n panel: [{\n type: ViewChild,\n args: [\"panel\"]\n }],\n _name: [{\n type: Input,\n args: [\"name\"]\n }],\n nameChange: [{\n type: Output\n }],\n _address: [{\n type: Input,\n args: [\"address\"]\n }],\n addressChange: [{\n type: Output\n }],\n _location: [{\n type: Input,\n args: [\"location\"]\n }],\n locationChange: [{\n type: Output\n }],\n modal: [{\n type: ViewChild,\n args: [IonModal$1]\n }]\n });\n})();\nclass CompPoiPickerModule {}\n_CompPoiPickerModule = CompPoiPickerModule;\n_CompPoiPickerModule.ɵfac = function _CompPoiPickerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CompPoiPickerModule)();\n};\n_CompPoiPickerModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _CompPoiPickerModule\n});\n_CompPoiPickerModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, FormsModule, ReactiveFormsModule, IonicModule.forRoot({\n mode: \"ios\"\n })]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CompPoiPickerModule, [{\n type: NgModule,\n args: [{\n declarations: [CompPoiPickerComponent],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, IonicModule.forRoot({\n mode: \"ios\"\n })],\n exports: [CompPoiPickerComponent]\n }]\n }], null, null);\n})(), window._AMapSecurityConfig = {\n securityJsCode: \"32aa3f4ab0fa0061de03edd4eafdd50a\"\n};\nclass PagePlanRouteComponent {\n constructor() {\n this.placeList = [], this.currentTab = \"place\", this.addNewPlace(), this.addNewPlace(), this.currentTab = \"plan\";\n }\n addNewPlace() {\n var _this$placeList;\n ((_this$placeList = this.placeList) === null || _this$placeList === void 0 ? void 0 : _this$placeList.length) >= 1 ? this.placeList.push({\n name: \"秋水广场\",\n address: \"南昌市秋水广场\",\n location: new Parse__default.GeoPoint({\n latitude: 28.682634,\n longitude: 115.86273\n })\n }) : this.placeList.push({\n name: \"八一广场\",\n address: \"南昌市八一广场\",\n location: new Parse__default.GeoPoint({\n latitude: 28.673856,\n longitude: 115.904477\n })\n });\n }\n ngAfterViewInit() {}\n initMap() {\n var _this102 = this;\n return _asyncToGenerator(function* () {\n yield _this102.createMap(), _this102.goAndMarkPlace(_this102.placeList[0]);\n })();\n }\n createMap() {\n var _this103 = this;\n return _asyncToGenerator(function* () {\n _this103.AMap = yield AMapLoader.load({\n key: \"473b52010df7d3a32db0a2f5db245c8e\",\n version: \"2.0\"\n }), _this103.map = new _this103.AMap.Map(\"container-plan\");\n })();\n }\n goAndMarkPlace(e) {\n this.map.setCenter([e.location.latitude, e.location.longitude]), this.map.setZoom(18), e.marker || (e.marker = new this.AMap.Marker({\n position: [e.location.latitude, e.location.longitude]\n }), this.map.add(e.marker));\n }\n clearMark(e) {\n var _e$marker2;\n e === null || e === void 0 || (_e$marker2 = e.marker) === null || _e$marker2 === void 0 || _e$marker2.remove();\n }\n planRoute(e, t) {\n let n;\n this.map.plugin([\"AMap.Transfer\"], () => {\n let o = {\n map: this.map,\n city: \"南昌市\",\n panel: \"panel\",\n policy: this.AMap.TransferPolicy.LEAST_TIME\n };\n n = new this.AMap.Transfer(o);\n let i = new this.AMap.LngLat(e.location.longitude, e.location.latitude),\n a = new this.AMap.LngLat(t.location.longitude, t.location.latitude);\n n.search(i, a, (e, t) => {\n \"complete\" === e ? (console.log(\"绘制公交路线完成:\"), console.log(t)) : console.error(\"公交路线数据查询失败\" + t);\n });\n });\n }\n createPlan() {\n var _this104 = this;\n return _asyncToGenerator(function* () {\n yield _this104.initMap(), _this104.planRoute(_this104.placeList[0], _this104.placeList[1]);\n })();\n }\n}\n_PagePlanRouteComponent = PagePlanRouteComponent;\n_PagePlanRouteComponent.ɵfac = function _PagePlanRouteComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _PagePlanRouteComponent)();\n};\n_PagePlanRouteComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _PagePlanRouteComponent,\n selectors: [[\"app-page-plan-route\"]],\n decls: 9,\n vars: 2,\n consts: [[\"value\", \"place\"], [\"value\", \"place\", 3, \"click\"], [\"value\", \"plan\", 3, \"click\"], [4, \"ngIf\"], [4, \"ngFor\", \"ngForOf\"], [\"expand\", \"block\", 3, \"click\"], [3, \"nameChange\", \"addressChange\", \"locationChange\", \"name\", \"address\", \"location\"], [\"id\", \"container-plan\"], [\"id\", \"panel\"]],\n template: function _PagePlanRouteComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-segment\", 0)(1, \"ion-segment-button\", 1);\n i0.ɵɵlistener(\"click\", function _PagePlanRouteComponent_Template_ion_segment_button_click_1_listener() {\n return ctx.currentTab = \"place\";\n });\n i0.ɵɵelementStart(2, \"ion-label\");\n i0.ɵɵtext(3, \"\\u666F\\u70B9\\u9009\\u62E9\");\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(4, \"ion-segment-button\", 2);\n i0.ɵɵlistener(\"click\", function _PagePlanRouteComponent_Template_ion_segment_button_click_4_listener() {\n return ctx.currentTab = \"plan\";\n });\n i0.ɵɵelementStart(5, \"ion-label\");\n i0.ɵɵtext(6, \"\\u8DEF\\u7EBF\\u89C4\\u5212\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(7, _PagePlanRouteComponent_ng_container_7_Template, 6, 1, \"ng-container\", 3)(8, _PagePlanRouteComponent_ng_container_8_Template, 5, 0, \"ng-container\", 3);\n }\n if (rf & 2) {\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"ngIf\", ctx.currentTab == \"place\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.currentTab == \"plan\");\n }\n },\n dependencies: [i2$2.NgForOf, i2$2.NgIf, i2.IonButton, i2.IonCard, i2.IonLabel, i2.IonSegment, i2.IonSegmentButton, i2.SelectValueAccessor, CompPoiPickerComponent],\n styles: [\"#container-plan[_ngcontent-%COMP%]{width:100%;height:40%}#panel[_ngcontent-%COMP%]{width:100%;height:50%}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PagePlanRouteComponent, [{\n type: Component,\n args: [{\n selector: \"app-page-plan-route\",\n template: '<ion-segment value=\"place\">\\n <ion-segment-button (click)=\"currentTab=\\'place\\'\" value=\"place\">\\n <ion-label>景点选择</ion-label>\\n </ion-segment-button>\\n <ion-segment-button (click)=\"currentTab=\\'plan\\'\" value=\"plan\">\\n <ion-label>路线规划</ion-label>\\n </ion-segment-button>\\n </ion-segment>\\n \\n\\n<ng-container *ngIf=\"currentTab==\\'place\\'\">\\n <h1>选择旅游计划景点</h1>\\n\\n <ng-container *ngFor=\"let place of placeList\">\\n <ion-card>\\n <h2>{{place?.name}}</h2>\\n <span *ngIf=\"place.address\">详细地址:{{place.address}}</span>\\n <span *ngIf=\"place.location\">地图坐标:{{place.location.latitude}},{{place.location.longitude}}</span>\\n <fm-map-poi-picker [(name)]=\"place.name\" [(address)]=\"place.address\" [(location)]=\"place.location\"></fm-map-poi-picker>\\n </ion-card>\\n </ng-container>\\n <ion-button (click)=\"addNewPlace()\" expand=\"block\">添加新景点</ion-button>\\n</ng-container>\\n\\n<ng-container *ngIf=\"currentTab==\\'plan\\'\">\\n <ion-button (click)=\"createPlan()\" expand=\"block\">创建规划路线</ion-button>\\n\\n <div id=\"container-plan\"></div>\\n <div id=\"panel\"></div>\\n</ng-container>\\n\\n',\n styles: [\"#container-plan{width:100%;height:40%}#panel{width:100%;height:50%}\\n\"]\n }]\n }], () => [], null);\n})(), window._AMapSecurityConfig = {\n securityJsCode: \"32aa3f4ab0fa0061de03edd4eafdd50a\"\n};\nclass PageLocaScatterComponent {\n ngAfterViewInit() {\n this.initMap();\n }\n initMap() {\n var _this105 = this;\n return _asyncToGenerator(function* () {\n yield _this105.createMap(), yield _this105.createLoca();\n })();\n }\n createLoca() {\n var _this106 = this;\n return _asyncToGenerator(function* () {\n let e = window.loca = new Loca.Container({\n map: _this106.map\n }),\n t = new Loca.GeoJSONSource({\n url: \"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road.json\"\n }),\n n = new Loca.ScatterLayer({\n zIndex: 111,\n opacity: 1,\n visible: !0,\n zooms: [2, 22]\n });\n n.setSource(t), n.setStyle({\n color: \"rgba(43,156,75,1)\",\n unit: \"meter\",\n size: [150, 150],\n borderWidth: 0\n }), e.add(n);\n let o = new Loca.GeoJSONSource({\n url: \"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road_F.json\"\n }),\n i = new Loca.ScatterLayer({\n loca: e,\n zIndex: 113,\n opacity: 1,\n visible: !0,\n zooms: [2, 22]\n });\n i.setSource(o), i.setStyle({\n unit: \"meter\",\n size: [2600, 2600],\n borderWidth: 0,\n texture: \"https://a.amap.com/Loca/static/loca-v2/demos/images/breath_red.png\",\n duration: 500,\n animate: !0\n });\n let a = new Loca.GeoJSONSource({\n url: \"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road_E.json\"\n }),\n r = new Loca.ScatterLayer({\n loca: e,\n zIndex: 112,\n opacity: 1,\n visible: !0,\n zooms: [2, 22]\n });\n r.setSource(a), r.setStyle({\n unit: \"meter\",\n size: [1e3, 1e3],\n borderWidth: 0,\n texture: \"https://a.amap.com/Loca/static/loca-v2/demos/images/breath_yellow.png\",\n duration: 1e3,\n animate: !0\n }), e.animate.start();\n let s = new Loca.Dat();\n s.addLayer(n, \" 贴地\"), s.addLayer(i, \"红色\"), s.addLayer(r, \"黄色\");\n })();\n }\n createMap() {\n var _this107 = this;\n return _asyncToGenerator(function* () {\n _this107.AMap = yield AMapLoader.load({\n key: \"473b52010df7d3a32db0a2f5db245c8e\",\n version: \"2.0\",\n Loca: {\n version: \"2.0.0\"\n }\n }), _this107.map = new _this107.AMap.Map(\"container\", {\n zoom: 11.7,\n center: [113.97199630737305, 22.5807295363949],\n pitch: 40,\n showLabel: !1,\n mapStyle: \"amap://styles/dark\",\n viewMode: \"3D\"\n });\n })();\n }\n}\n_PageLocaScatterComponent = PageLocaScatterComponent;\n_PageLocaScatterComponent.ɵfac = function _PageLocaScatterComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _PageLocaScatterComponent)();\n};\n_PageLocaScatterComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _PageLocaScatterComponent,\n selectors: [[\"app-page-loca-scatter\"]],\n decls: 1,\n vars: 0,\n consts: [[\"id\", \"container\"]],\n template: function _PageLocaScatterComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"div\", 0);\n }\n },\n styles: [\"#container[_ngcontent-%COMP%]{width:100%;height:100%;position:fixed}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(PageLocaScatterComponent, [{\n type: Component,\n args: [{\n selector: \"app-page-loca-scatter\",\n template: '<div id=\"container\"></div>',\n styles: [\"#container{width:100%;height:100%;position:fixed}\\n\"]\n }]\n }], null, null);\n})();\nconst routes = [{\n path: \"start\",\n component: PageMapStartComponent\n}, {\n path: \"plan/route\",\n component: PagePlanRouteComponent\n}, {\n path: \"loca/scatter\",\n component: PageLocaScatterComponent\n}];\nclass FmodeMapModule {}\n_FmodeMapModule = FmodeMapModule;\n_FmodeMapModule.ɵfac = function _FmodeMapModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmodeMapModule)();\n};\n_FmodeMapModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _FmodeMapModule\n});\n_FmodeMapModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, RouterModule.forChild(routes), IonicModule.forRoot({\n mode: \"ios\"\n }), CompPoiPickerModule, CompPoiPickerModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmodeMapModule, [{\n type: NgModule,\n args: [{\n declarations: [PageMapStartComponent, PagePlanRouteComponent, PageLocaScatterComponent],\n imports: [CommonModule, RouterModule.forChild(routes), IonicModule.forRoot({\n mode: \"ios\"\n }), CompPoiPickerModule],\n exports: [CompPoiPickerModule]\n }]\n }], null, null);\n})();\nclass HwobsService {\n constructor() {\n this.Attachment = Parse__default.Object.extend(\"Attachment\"), this.host = \"https://web3-test.obs.cn-south-1.myhuaweicloud.com/\", this.bucketName = \"web3-test\", this.obsClient = new ObsClient({\n access_key_id: \"6UIET20WHUI5TLXWOVNA\",\n secret_access_key: \"YaoY8Kj3TeGZHEcBzplTMZiPGNL13Y3frEavC1kF\",\n server: \"https://obs.cn-south-1.myhuaweicloud.com\"\n });\n }\n listDir(e) {\n return new Promise((t, n) => {\n this.obsClient.listObjects({\n Bucket: this.bucketName,\n Prefix: e,\n Delimiter: \"/\"\n }, (e, o) => {\n if (e) console.error(\"Error--\\x3e\" + e), n(e);else {\n if (console.log(\"Status--\\x3e\" + o.CommonMsg.Status), console.log(o), o.CommonMsg.Status < 300 && o.InterfaceResult) for (var i in o.InterfaceResult.Contents) console.log(\"Contents[\" + i + \"]:\"), console.log(\"Key--\\x3e\" + o.InterfaceResult.Contents[i].Key), console.log(\"Owner[ID]--\\x3e\" + o.InterfaceResult.Contents[i].Owner.ID);\n let e = o.InterfaceResult.CommonPrefixes,\n n = o.InterfaceResult.Contents;\n t({\n dirs: e,\n files: n\n });\n }\n });\n });\n }\n uploadFile(e, t) {\n var _this108 = this;\n return _asyncToGenerator(function* () {\n let n = yield _this108.checkFileExists(e);\n return n !== null && n !== void 0 && n.id ? n : new Promise((n, o) => {\n _this108.obsClient.putObject({\n Bucket: _this108.bucketName,\n Key: t,\n SourceFile: e\n }, /*#__PURE__*/function () {\n var _ref21 = _asyncToGenerator(function* (i, a) {\n if (i) console.error(\"Error--\\x3e\" + i), o(i);else {\n console.log(\"Status--\\x3e\" + a.CommonMsg.Status);\n let o = yield _this108.saveAttachment(e, t);\n n(o);\n }\n });\n return function (_x27, _x28) {\n return _ref21.apply(this, arguments);\n };\n }());\n });\n })();\n }\n checkFileExists(e) {\n var _this109 = this;\n return _asyncToGenerator(function* () {\n var _i4;\n let t,\n n = yield _this109.getFileHash(e),\n o = new Parse__default.Query(\"Attachment\");\n o.equalTo(\"hash\", n), o.equalTo(\"size\", e.size);\n let i = yield o.first();\n return (_i4 = i) !== null && _i4 !== void 0 && _i4.id || (i = new _this109.Attachment()), t = i, t;\n })();\n }\n saveAttachment(e, t) {\n var _this110 = this;\n return _asyncToGenerator(function* () {\n let n = yield _this110.getFileHash(e),\n o = yield _this110.checkFileExists(e);\n return o.set(\"name\", e.name), o.set(\"size\", e.size), o.set(\"mime\", e.type), o.set(\"url\", _this110.host + t), o.set(\"hash\", n), o = yield o.save(), o;\n })();\n }\n getFileHash(e) {\n return _asyncToGenerator(function* () {\n return new Promise((t, n) => {\n const o = new FileReader();\n o.onload = /*#__PURE__*/function () {\n var _ref22 = _asyncToGenerator(function* (e) {\n const n = e.target.result,\n o = yield crypto.subtle.digest(\"SHA-256\", n),\n i = Array.from(new Uint8Array(o)).map(e => e.toString(16).padStart(2, \"0\")).join(\"\");\n t(i);\n });\n return function (_x29) {\n return _ref22.apply(this, arguments);\n };\n }(), o.onerror = e => {\n n(e.target.error);\n }, o.readAsArrayBuffer(e);\n });\n })();\n }\n}\n_HwobsService = HwobsService;\n_HwobsService.ɵfac = function _HwobsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _HwobsService)();\n};\n_HwobsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _HwobsService,\n factory: _HwobsService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HwobsService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [], null);\n})();\nclass HwobsManagerComponent {\n openFile(e) {\n console.log(\"Opening file:\", e);\n }\n openDir(e, t = \"pre\") {\n if (e) this.prefix = e.Prefix, this.listDir(e.Prefix);else if (\"pre\" == t) {\n let e = this.prefix.split(\"/\");\n if (e.length > 1) {\n let t = e.splice(0, e.length - 1).join(\"/\");\n console.log(t), this.prefix = t, this.listDir(t);\n }\n }\n }\n showName(e) {\n return e.replaceAll(this.prefix, \"\");\n }\n constructor(e) {\n this.hwobs = e, this.dirs = [], this.files = [], this.prefix = \"storage/\", this.listDir(this.prefix);\n }\n listDir(e) {\n var _this111 = this;\n return _asyncToGenerator(function* () {\n let {\n dirs: t,\n files: n\n } = yield _this111.hwobs.listDir(e);\n _this111.dirs = t, _this111.files = n;\n })();\n }\n}\n_HwobsManagerComponent = HwobsManagerComponent;\n_HwobsManagerComponent.ɵfac = function _HwobsManagerComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _HwobsManagerComponent)(i0.ɵɵdirectiveInject(HwobsService));\n};\n_HwobsManagerComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _HwobsManagerComponent,\n selectors: [[\"fm-storage-hwobs-manager\"]],\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 12,\n vars: 3,\n consts: [[3, \"click\"], [\"slot\", \"start\", 3, \"name\"], [3, \"click\", 4, \"ngFor\", \"ngForOf\"]],\n template: function _HwobsManagerComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"ion-header\")(1, \"ion-toolbar\")(2, \"ion-title\");\n i0.ɵɵtext(3, \" File Manager \");\n i0.ɵɵelementEnd()()();\n i0.ɵɵelementStart(4, \"ion-content\")(5, \"ion-list\")(6, \"ion-item\", 0);\n i0.ɵɵlistener(\"click\", function _HwobsManagerComponent_Template_ion_item_click_6_listener() {\n return ctx.openDir(null, \"pre\");\n });\n i0.ɵɵelement(7, \"ion-icon\", 1);\n i0.ɵɵelementStart(8, \"ion-label\");\n i0.ɵɵtext(9, \"../\");\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(10, _HwobsManagerComponent_ion_item_10_Template, 4, 2, \"ion-item\", 2)(11, _HwobsManagerComponent_ion_item_11_Template, 4, 2, \"ion-item\", 2);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(7);\n i0.ɵɵproperty(\"name\", \"folder\");\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngForOf\", ctx.dirs);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngForOf\", ctx.files);\n }\n },\n dependencies: [CommonModule, i2$2.NgForOf, FormsModule, ReactiveFormsModule, IonicModule, i2.IonContent, i2.IonHeader, i2.IonIcon, i2.IonItem, i2.IonLabel, i2.IonList, i2.IonTitle, i2.IonToolbar],\n styles: [\"ion-list[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%]{font-size:24px;margin-right:8px}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HwobsManagerComponent, [{\n type: Component,\n args: [{\n standalone: !0,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, IonicModule],\n selector: \"fm-storage-hwobs-manager\",\n template: '<ion-header>\\n <ion-toolbar>\\n <ion-title>\\n File Manager\\n </ion-title>\\n </ion-toolbar>\\n </ion-header>\\n \\n <ion-content>\\n <ion-list>\\n <ion-item (click)=\"openDir(null,\\'pre\\')\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>../</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of dirs\" (click)=\"openDir(item)\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Prefix) }}</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of files\" (click)=\"openFile(item)\">\\n <ion-icon [name]=\"\\'document\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Key) }}</ion-label>\\n </ion-item>\\n </ion-list>\\n </ion-content>',\n styles: [\"ion-list ion-item ion-icon{font-size:24px;margin-right:8px}\\n\"]\n }]\n }], () => [{\n type: HwobsService\n }], null);\n})();\nclass FmodeStorgeModule {}\n_FmodeStorgeModule = FmodeStorgeModule;\n_FmodeStorgeModule.ɵfac = function _FmodeStorgeModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _FmodeStorgeModule)();\n};\n_FmodeStorgeModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _FmodeStorgeModule\n});\n_FmodeStorgeModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [Diagnostic, NovaUploadService],\n imports: [CommonModule, IonicModule.forRoot({\n mode: \"ios\"\n }), HwobsManagerComponent]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(FmodeStorgeModule, [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [CommonModule, IonicModule.forRoot({\n mode: \"ios\"\n }), HwobsManagerComponent],\n exports: [HwobsManagerComponent],\n providers: [Diagnostic, NovaUploadService]\n }]\n }], null, null);\n})();\nclass WechatJssdkService {\n constructor(e, t) {\n this.http = e, this.authServ = t, this.isInit = !1, this.isWechat = !1, this.wechatAccountId = localStorage.getItem(\"WECHAT_APP_ID\") || \"wxb4193c93ae9aa696\";\n let n = -1 !== navigator.userAgent.toLowerCase().indexOf(\"micromessenger\");\n this.isWechat = n, this.company = this.authServ.company || localStorage.getItem(\"company\");\n }\n setCurrentPageShareInfo(e = {\n title: \"飞码AI\",\n desc: \"解放创意引领未来|国际前沿的AIGC平台\",\n link: location.href,\n type: \"link\",\n imgUrl: \"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png\",\n success: () => {\n console.log(\"分享成功\");\n },\n error: () => {\n console.log(\"分享失败\");\n },\n cancel: () => {\n console.log(\"取消分享\");\n }\n }) {\n var _this112 = this;\n return _asyncToGenerator(function* () {\n const t = yield _this112.getWXSignPackageInWechat();\n wx.config({\n debug: !1,\n appId: t.appid,\n timestamp: t.timestamp,\n nonceStr: t.nonceStr,\n signature: t.signature,\n jsApiList: [\"chooseWXPay\", \"onMenuShareTimeline\", \"onMenuShareAppMessage\", \"onMenuShareQQ\", \"onMenuShareQZone\", \"updateAppMessageShareData\", \"updateTimelineShareData\"]\n }), \"link\" == (e === null || e === void 0 ? void 0 : e.type) && (e.link = _this112.getInviteUrl(e.link)), wx.ready(() => {\n wx.updateAppMessageShareData(e), wx.updateTimelineShareData(e);\n }), wx.error(() => {});\n })();\n }\n getInviteUrl(e) {\n var _Parse__default$User3;\n let t = new URL(e),\n n = (_Parse__default$User3 = Parse__default.User) === null || _Parse__default$User3 === void 0 || (_Parse__default$User3 = _Parse__default$User3.current()) === null || _Parse__default$User3 === void 0 ? void 0 : _Parse__default$User3.id;\n return n && t.searchParams.set(\"invite\", n), t.href;\n }\n getWXSignPackageInWechat() {\n let e = {\n company: this.company,\n href: encodeURIComponent(location.href)\n };\n return new Promise(t => {\n this.http.post(\"https://server.fmode.cn/api/wechat/getconfig\", e).subscribe(e => {\n let n = e.data;\n t(n);\n });\n });\n }\n initUserOpenid() {\n var _this113 = this;\n return _asyncToGenerator(function* () {\n yield _this113.init();\n let e = _this113.getQueryStringByName(\"code\"),\n t = localStorage.getItem(\"openid\");\n if (!t) {\n var _Parse__default$User4;\n if (!Parse__default.User.current()) return;\n if (t = Parse__default === null || Parse__default === void 0 || (_Parse__default$User4 = Parse__default.User) === null || _Parse__default$User4 === void 0 || (_Parse__default$User4 = _Parse__default$User4.current()) === null || _Parse__default$User4 === void 0 || (_Parse__default$User4 = _Parse__default$User4.get(\"wechat\")) === null || _Parse__default$User4 === void 0 || (_Parse__default$User4 = _Parse__default$User4[_this113.wechatAccountId]) === null || _Parse__default$User4 === void 0 ? void 0 : _Parse__default$User4.openid, _this113.isWechat && !t) {\n let t = window.location.pathname;\n e ? yield _this113.getwechat(e, t) : _this113.authWechat(t);\n } else _this113.openid = t;\n }\n })();\n }\n authWechat(e = \"/account/billing\") {\n if (!localStorage.getItem(\"openid\")) {\n let t = \"https://ai.fmode.cn\" + e;\n return t = encodeURIComponent(t), void (window.location.href = \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=\" + this.wechatAccountId + \"&redirect_uri=\" + t + \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\");\n }\n }\n getQueryStringByName(e) {\n let t = location.search.match(new RegExp(\"[?&]\" + e + \"=([^&]+)\", \"i\"));\n return null == t || t.length < 1 ? \"\" : t[1];\n }\n getwechat(e, t = \"/account/billing\") {\n var _this114 = this;\n return _asyncToGenerator(function* () {\n return new Promise( /*#__PURE__*/function () {\n var _ref23 = _asyncToGenerator(function* (n, o) {\n _this114.http.post(\"https://server.fmode.cn/api/wechat/get_wx\", {\n company: _this114.company,\n code: e\n }).subscribe( /*#__PURE__*/function () {\n var _ref24 = _asyncToGenerator(function* (e) {\n if (console.log(e), e && 200 == e.code && e.data.openid) {\n let t = e.data.openid;\n localStorage.setItem(\"openid\", t), localStorage.removeItem(\"code\");\n let o = {};\n o[_this114.wechatAccountId] = {\n openid: t\n }, Parse__default.User.current().set(\"wechat\", o), yield Parse__default.User.current().save(), n(!0);\n }\n });\n return function (_x32) {\n return _ref24.apply(this, arguments);\n };\n }(), /*#__PURE__*/function () {\n var _ref25 = _asyncToGenerator(function* (e) {\n console.log(\"Error updating items\", e), _this114.authWechat(t), o(!1);\n });\n return function (_x33) {\n return _ref25.apply(this, arguments);\n };\n }());\n });\n return function (_x30, _x31) {\n return _ref23.apply(this, arguments);\n };\n }());\n })();\n }\n init() {\n return new Promise(e => {\n this.isWechat || e(!1), this.isInit && e(!0), wx && e(!0), this.loadScript(\"https://res.wx.qq.com/open/js/jweixin-1.6.0.js\", () => {\n this.isInit = !0, this.wx = wx, e(!0);\n }, () => {\n e(!1);\n });\n });\n }\n loadScript(e, t, n) {\n var o = document.createElement(\"script\");\n o.src = e, o.onload = () => {\n t && t();\n }, o.onerror = () => {\n n && n();\n }, document.body.appendChild(o);\n }\n}\n_WechatJssdkService = WechatJssdkService;\n_WechatJssdkService.ɵfac = function _WechatJssdkService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _WechatJssdkService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(AuthService));\n};\n_WechatJssdkService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _WechatJssdkService,\n factory: _WechatJssdkService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(WechatJssdkService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1.HttpClient\n }, {\n type: AuthService\n }], null);\n})();\nclass LoginComponent {\n drawCode(e) {\n this.canvas = document.getElementById(\"verifyCanvas\");\n var t = this.canvas.getContext(\"2d\");\n t.fillStyle = \"white\", t.fillRect(0, 0, this.canvas.width, this.canvas.height), t.fillStyle = \"cornflowerblue\", t.font = \"25px Arial\";\n for (var n = new Array(), o = new Array(), i = new Array(), a = 0; a < 4; a++) n.push(n[a]), n[a] = this.nums[a], o[a] = 20 * a + 10, i[a] = 20 * Math.random() + 20, t.fillText(n[a], o[a], i[a]);\n e = n.join(\"\").toUpperCase();\n for (a = 0; a < 3; a++) this.drawline(this.canvas, t);\n for (a = 0; a < 30; a++) this.drawDot(this.canvas, t);\n return this.convertCanvasToImage(this.canvas), e;\n }\n drawline(e, t) {\n t.moveTo(Math.floor(Math.random() * e.width), Math.floor(Math.random() * e.height)), t.lineTo(Math.floor(Math.random() * e.width), Math.floor(Math.random() * e.height)), t.lineWidth = .5, t.strokeStyle = \"rgba(50,50,50,0.3)\", t.stroke();\n }\n drawDot(e, t) {\n var n = Math.floor(Math.random() * e.width),\n o = Math.floor(Math.random() * e.height);\n t.moveTo(n, o), t.lineTo(n + 1, o + 1), t.lineWidth = .2, t.stroke();\n }\n convertCanvasToImage(e) {\n return document.getElementById(\"verifyCanvas\").style.display = \"none\", this.image = document.getElementById(\"code_img\"), this.image.src = e.toDataURL(\"image/png\"), this.image;\n }\n sendSMSCode() {\n var _this$validateSMSForm;\n if (!this.codeVerified) return void this.message.create(\"error\", \"请先核对验证码\");\n let e = (_this$validateSMSForm = this.validateSMSForm.value) === null || _this$validateSMSForm === void 0 ? void 0 : _this$validateSMSForm.mobile;\n if (console.log(this.validateSMSForm.value), e) {\n let t = localStorage.getItem(\"NOVA_APIG_SERVER\");\n t = decodeURIComponent(atob(t));\n let n = t + \"message\";\n this.http.post(n, {\n company: this.companyId,\n mobile: e,\n action: \"login\"\n }).subscribe(e => {\n this.countDownSMS(), this.message.info(\"已发送,请查收验证码\");\n }, e => {\n var _e$error;\n this.message.error((e === null || e === void 0 || (_e$error = e.error) === null || _e$error === void 0 ? void 0 : _e$error.mess) || \"系统繁忙中,请稍后重试\");\n });\n } else this.message.error(\"请正确输入手机号\");\n }\n countDownSMS() {\n this.isSended = !0, this.isSending = !0, this.smsTimeCount = 60;\n let e = setInterval(() => {\n this.smsTimeCount--;\n }, 1e3);\n setTimeout(() => {\n clearInterval(e), this.isSending = !1;\n }, 6e4);\n }\n submitFormMobileSMS(e) {\n for (const e in this.validateSMSForm.controls) this.validateSMSForm.controls[e].markAsDirty(), this.validateSMSForm.controls[e].updateValueAndValidity();\n console.log(e), this.username = e.mobile, this.smsCode = e.smsCode, console.log(\"smslogin\"), this.loginSMS();\n }\n submitFormMobilePassword(e) {\n for (const e in this.validateForm.controls) this.validateForm.controls[e].markAsDirty(), this.validateForm.controls[e].updateValueAndValidity();\n this.username = e.mobile || e.username, this.password = e.password;\n let t = e.checkCode,\n n = this.code.toLowerCase(),\n o = t.toLowerCase();\n console.log(n, o), n != o ? (console.log(n, o), this.message.create(\"error\", \"验证码错误\")) : this.loginMobilePassword();\n }\n submitFormUserPassword(e) {\n for (const e in this.validateForm.controls) this.validateForm.controls[e].markAsDirty(), this.validateForm.controls[e].updateValueAndValidity();\n this.username = e.mobile || e.username, this.password = e.password;\n let t = e.checkCode,\n n = this.code.toLowerCase(),\n o = t.toLowerCase();\n console.log(n, o), n != o ? (console.log(n, o), this.message.create(\"error\", \"验证码错误\")) : this.authServ.login(this.username, this.password).then( /*#__PURE__*/function () {\n var _ref26 = _asyncToGenerator(function* (e) {});\n return function (_x34) {\n return _ref26.apply(this, arguments);\n };\n }()).catch(e => {\n console.log(e), this.message.create(\"error\", \"错误的用户名或密码\");\n });\n }\n forgetFormFun(e) {\n var _this115 = this;\n return _asyncToGenerator(function* () {\n var _Parse__default$serve3;\n for (const e in _this115.forgetForm.controls) _this115.forgetForm.controls[e].markAsDirty(), _this115.forgetForm.controls[e].updateValueAndValidity();\n if (console.log(e.forgetusername, e.forgetPassword, e.forgetConfirmpassword), e.forgetPassword != e.forgetConfirmpassword) return void _this115.message.create(\"error\", \"两次密码不一致\");\n if (!e.forgerphoneCode) return void _this115.message.create(\"error\", \"请输入验证码\");\n let t = (((_Parse__default$serve3 = Parse__default.serverURL) === null || _Parse__default$serve3 === void 0 || (_Parse__default$serve3 = _Parse__default$serve3.split(\"parse\")) === null || _Parse__default$serve3 === void 0 ? void 0 : _Parse__default$serve3[0]) || \"https://server.fmode.cn/\") + \"api/auth/reset_password\";\n _this115.http.post(t, {\n company: _this115.companyId,\n mobile: e.forgetusername,\n code: e.forgerphoneCode,\n password: e.forgetConfirmpassword\n }).subscribe(e => {\n 200 == e.code ? (_this115.message.create(\"success\", e.msg), _this115.type = \"login\") : _this115.message.create(\"error\", \"验证码错误\");\n }, e => {\n console.log(e.error), _this115.message.create(\"error\", e.error.mess);\n });\n })();\n }\n registSubmitForm(e) {\n var _this116 = this;\n return _asyncToGenerator(function* () {\n for (const e in _this116.registForm.controls) _this116.registForm.controls[e].markAsDirty(), _this116.registForm.controls[e].updateValueAndValidity();\n _this116.registName = e.registName, _this116.registIdcard = e.registIdcard, _this116.registPhone = e.registPhone, _this116.phoneCode = e.phoneCode, _this116.regpassword = e.regpassword, _this116.confirmPassword = e.confirmPassword;\n let t = yield _this116.verifyCode(_this116.registPhone, _this116.phoneCode);\n t && 200 != t.code ? _this116.message.create(\"error\", t.mess) : _this116.queryUser();\n })();\n }\n getSelectEducation() {\n this.loginMobilePassword(), this.iseducation = !1;\n }\n loginSMS() {\n var _Parse__default$serve4;\n let e = (((_Parse__default$serve4 = Parse__default.serverURL) === null || _Parse__default$serve4 === void 0 || (_Parse__default$serve4 = _Parse__default$serve4.split(\"parse\")) === null || _Parse__default$serve4 === void 0 ? void 0 : _Parse__default$serve4[0]) || \"https://server.fmode.cn/\") + `api/auth/mobile?company=${this.companyId}&mobile=${this.username}&code=${this.smsCode}`;\n this.http.get(e).subscribe(e => {\n if (console.log(e), 200 == e.code) {\n this.message.create(\"success\", \"登录成功\");\n let t = e.data.token;\n Parse__default.User.become(t).then(e => {\n this.router.navigate([decodeURIComponent(this.rootPage)]);\n });\n } else this.message.create(\"error\", \"验证码错误\");\n }, e => {\n console.log(e.error), this.message.create(\"error\", e.error.mess);\n });\n }\n loginMobilePassword() {\n var _this117 = this;\n return _asyncToGenerator(function* () {\n let e = yield _this117.getMobileUser(_this117.username);\n e ? _this117.authServ.login(e, _this117.password).then( /*#__PURE__*/function () {\n var _ref27 = _asyncToGenerator(function* (e) {});\n return function (_x35) {\n return _ref27.apply(this, arguments);\n };\n }()).catch(e => {\n console.log(e), _this117.message.create(\"error\", \"错误的用户名或密码\");\n }) : _this117.message.create(\"error\", \"用户不存在,请尝试其他登录方式\");\n })();\n }\n queryUser() {\n var _this118 = this;\n return _asyncToGenerator(function* () {\n let e = new Parse__default.Query(\"_User\");\n e.contains(\"username\", _this118.registPhone), e.equalTo(\"company\", _this118.companyId);\n let t = yield e.first();\n t !== null && t !== void 0 && t.id ? _this118.message.info(\"该账户已激活,使用手机号密码直接登录\") : Parse__default.User.signUp(_this118.companyId + \"-\" + _this118.registPhone, _this118.regpassword, \"\").then( /*#__PURE__*/function () {\n var _ref28 = _asyncToGenerator(function* (e) {\n e.id && (console.log(e), e.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: _this118.companyId\n }), e.set(\"mobile\", _this118.registPhone), e.set(\"type\", \"user\"), e.save(), _this118.username = _this118.registPhone, _this118.password = _this118.regpassword);\n });\n return function (_x36) {\n return _ref28.apply(this, arguments);\n };\n }());\n })();\n }\n getMobileUser(e) {\n var _this119 = this;\n return _asyncToGenerator(function* () {\n if (_this119.mobileUserMap[e]) return _this119.mobileUserMap[e];\n let t = yield _this119.novaCloud.api(\"/auth/getusername\", {\n company: _this119.companyId,\n mobile: e\n });\n return console.log(t), t !== null && t !== void 0 && t.username && (_this119.mobileUserMap[e] = t === null || t === void 0 ? void 0 : t.username), _this119.mobileUserMap[e];\n })();\n }\n forget() {\n this.type = \"forget\";\n }\n backLogin() {\n this.type = \"login\";\n }\n handleCancel() {\n this.isVisible = !1;\n }\n handleOk() {\n var _this120 = this;\n Parse__default.User.signUp(this.registPhone, this.regpassword, \"\").then( /*#__PURE__*/function () {\n var _ref29 = _asyncToGenerator(function* (e) {\n e.id && (console.log(e), e.set(\"company\", {\n __type: \"Pointer\",\n className: \"Company\",\n objectId: _this120.companyId\n }), e.save(), _this120.username = _this120.registPhone, _this120.password = _this120.regpassword);\n });\n return function (_x37) {\n return _ref29.apply(this, arguments);\n };\n }());\n }\n getCode() {\n var _this121 = this;\n return _asyncToGenerator(function* () {\n if (null == _this121.registPhone || \"\" == _this121.registPhone.trim()) return void _this121.message.info(\"请输入注册手机号\");\n if (!_this121.registPhone.match(/^1[3456789]\\d{9}$/)) return void _this121.message.info(\"请输入正确的手机号\");\n let e = new Parse__default.Query(\"User\");\n e.equalTo(\"username\", _this121.registPhone), e.equalTo(\"company\", _this121.companyId);\n let t = yield e.first();\n if (t && t.id) return void _this121.message.info(\"该手机号已注册,请使用账号密码登录\");\n let n = localStorage.getItem(\"NOVA_APIG_SERVER\");\n n = decodeURIComponent(atob(n));\n let o = n + \"message\";\n _this121.http.post(o, {\n company: _this121.companyId,\n mobile: _this121.registPhone,\n action: \"regist\"\n }).subscribe(e => {\n _this121.vCode = e.data.code, _this121.countDownFun();\n }, e => {\n _this121.message.info(\"系统繁忙中,请稍后重试\"), console.log(e);\n });\n })();\n }\n getCode2() {\n var _this122 = this;\n return _asyncToGenerator(function* () {\n if (null == _this122.forgetusername || \"\" == _this122.forgetusername.trim()) return void _this122.message.info(\"请输入账号\");\n if (!_this122.forgetusername.match(/^1[3456789]\\d{9}$/)) return void _this122.message.info(\"请输入正确的手机号\");\n console.log(_this122.forgetusername);\n let e = new Parse__default.Query(\"User\");\n if (e.equalTo(\"username\", _this122.companyId + \"-\" + _this122.forgetusername), e.equalTo(\"company\", _this122.companyId), !(yield e.first())) return void _this122.message.info(\"账号不存在\");\n let t = localStorage.getItem(\"NOVA_APIG_SERVER\");\n t = decodeURIComponent(atob(t));\n let n = t + \"message\";\n _this122.http.post(n, {\n company: _this122.companyId,\n mobile: _this122.forgetusername,\n action: \"resetPassword\"\n }).subscribe(e => {\n console.log(e), _this122.vCode = e.data.code, _this122.countDownFun();\n }, e => {\n _this122.message.info(\"系统繁忙中,请稍后重试\"), console.log(e);\n });\n })();\n }\n verifyCode(e, t) {\n var _this123 = this;\n return _asyncToGenerator(function* () {\n let n = localStorage.getItem(\"NOVA_APIG_SERVER\");\n n = decodeURIComponent(atob(n));\n let o = n + \"verifyCode\";\n return new Promise( /*#__PURE__*/function () {\n var _ref30 = _asyncToGenerator(function* (n, i) {\n _this123.http.post(o, {\n mobile: e,\n code: t\n }).subscribe(e => {\n n(e);\n }, e => {\n console.log(e), n(e.error);\n });\n });\n return function (_x38, _x39) {\n return _ref30.apply(this, arguments);\n };\n }());\n })();\n }\n countDownFun() {\n if (this.isCountDown = !0, 0 == this.countDown) return;\n let e = setInterval(() => {\n this.countDown = this.countDown - 1, 0 == this.countDown && (clearInterval(e), this.countDown = 60, this.isCountDown = !1);\n }, 1e3);\n }\n constructor(e, t, n, o, i, a, r, s) {\n var _this124 = this;\n this.authServ = e, this.novaCloud = t, this.fb = n, this.message = o, this.router = i, this.route = a, this.activatedRoute = r, this.http = s, this.nums = [\"C\", \"6\", \"Z\", \"t\"], this.str = \"\", this.tabIndex = 0, this.codeVerified = !1, this.passwordVisible = !1, this.passwordVisible2 = !1, this.passwordVisible3 = !1, this.iseducation = !1, this.redirectUrl = localStorage.getItem(\"redirectUrl\"), this.isSended = !1, this.isSending = !1, this.smsTimeCount = 60, this.loading = !0, this.Lesson = [], this.myDate = new Date(), this.isVisible = !1, this.type = \"login\", this.mobileUserMap = {}, this.isOkLoading = !1, this.countDown = 60, this.isCountDown = !1, this.mobileLogin = !1, this.logo = \"https://www.fmode.cn/images/ewm1.png\", this.qrcode = \"https://www.fmode.cn/images/logo_main.png\", this.userNameAsyncValidator = e => new Observable(t => {\n let n = /^1[3456789]\\d{9}$/,\n o = e.value;\n setTimeout(() => null == o || \"\" == o.trim() ? (this.userErrorTip = \"请输入登录账号\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : o.match(n) ? (t.next(null), void t.complete()) : (this.userErrorTip = \"请输入正确的登录账号\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()), 1e3);\n }), this.smsAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n if (null == n || \"\" == n.trim()) return this.smsCodeErrorTip = \"请输入短信验证码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete();\n t.next(null), t.complete();\n }, 1e3);\n }), this.passwordAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.passwordErrorTip = \"请输入密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length < 6 ? (this.passwordErrorTip = \"密码长度不得小于6位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (t.next(null), void t.complete());\n }, 1e3);\n }), this.codeAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.codeVerified = !1, this.codeErrorTip = \"请输入验证码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length < 4 ? (this.codeVerified = !1, this.codeErrorTip = \"验证码长度不得小于4位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : this.code.toLowerCase() != n.toLowerCase() ? (this.codeVerified = !1, this.codeErrorTip = \"验证码输入错误\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (this.codeVerified = !0, t.next(null), void t.complete());\n }, 1e3);\n }), this.registIdcardAsyncValidator = e => new Observable(t => {\n let n = e.value;\n setTimeout(() => null == n || \"\" == n.trim() || !1 === /^\\d{17}(\\d|X|x)$/.test(n) ? (this.registIdcardErrorTip = \"请输入正确的身份证号码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (t.next(null), void t.complete()), 1e3);\n }), this.forgetNameAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n if (null == n || \"\" == n.trim()) return this.registNameErrorTip = \"请输入账户账号或者手机号\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete();\n this.forgetusername = n, t.next(null), t.complete();\n }, 1e3);\n }), this.forgetPasswordAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.passwordErrorTip = \"请输入新密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length < 6 ? (this.passwordErrorTip = \"密码长度不得小于6位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (this.forgetPassword = n, t.next(null), void t.complete());\n }, 1e3);\n }), this.forgetConfirmPasswordAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.forgetphoneCodesErrorTip = \"请确认新密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length < 6 ? (this.forgetphoneCodesErrorTip = \"密码长度不得小于6位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (this.forgetConfirmpassword = n, t.next(null), void t.complete());\n }, 1e3);\n }), this.forgetCodeAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n if (null == n || \"\" == n.trim()) return this.phoneCodesErrorTip = \"请输入新密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete();\n this.forgerphoneCode = n, t.next(null), t.complete();\n }, 1e3);\n }), this.registNameAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n if (null == n || \"\" == n.trim()) return this.registNameErrorTip = \"请输入姓名\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete();\n this.registName = n, t.next(null), t.complete();\n }, 1e3);\n }), this.registPhoneAsyncValidator = e => new Observable(t => {\n let n = e.value;\n setTimeout(() => null == n || \"\" == n.trim() ? (this.registIdcardErrorTip = \"请输入正确的身份证号码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : !1 === /^1[3456789]\\d{9}$/.test(n) ? (this.phoneErrorTip = \"请输入正确的手机号\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (t.next(null), void t.complete()), 1e3);\n }), this.registCodeAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n if (null == n || \"\" == n.trim()) return this.phoneCodesErrorTip = \"请输入验证码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete();\n t.next(null), t.complete();\n }, 1e3);\n }), this.regpasswordAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.regpasswordErrorTip = \"请输入密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length < 6 ? (this.regpasswordErrorTip = \"密码长度不得小于6位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n.length > 12 ? (this.regpasswordErrorTip = \"密码长度不得大于12位\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (this.regpassword = n, t.next(null), void t.complete());\n }, 1e3);\n }), this.confirmPasswordAsyncValidator = e => new Observable(t => {\n setTimeout(() => {\n let n = e.value;\n return null == n || \"\" == n.trim() ? (this.confirmPasswordErrorTip = \"请确认密码\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : n != this.regpassword ? (this.confirmPasswordErrorTip = \"两次输入密码不一致,请重新输入\", t.next({\n error: !0,\n duplicated: !0\n }), void t.complete()) : (this.confirmPassword = n, t.next(null), void t.complete());\n }, 1e3);\n }), this.code = \"\", this.initLoginForm(), this.route.paramMap.subscribe( /*#__PURE__*/function () {\n var _ref31 = _asyncToGenerator(function* (e) {\n console.log(e), _this124.appId = e.get(\"appId\"), (yield _this124.initAppConfig()) || (_this124.companyId = e.get(\"companyId\"), _this124.companyId || (_this124.companyId = localStorage.getItem(\"company\") || \"Q0DryNYA8g\"), yield _this124.initCompanyConfig());\n });\n return function (_x40) {\n return _ref31.apply(this, arguments);\n };\n }());\n }\n initCompanyConfig() {\n var _this125 = this;\n return _asyncToGenerator(function* () {\n var _this125$company, _this125$company2, _this125$company3, _this125$company4;\n if (!_this125.companyId) return;\n let e = new Parse__default.Query(\"Company\");\n _this125.company = yield e.get(_this125.companyId), _this125.logo = ((_this125$company = _this125.company) === null || _this125$company === void 0 ? void 0 : _this125$company.get(\"logo\")) || _this125.logo, _this125.qrcode = ((_this125$company2 = _this125.company) === null || _this125$company2 === void 0 ? void 0 : _this125$company2.get(\"qrcode\")) || _this125.qrcode, _this125.mobileLogin = ((_this125$company3 = _this125.company) === null || _this125$company3 === void 0 || (_this125$company3 = _this125$company3.get(\"jpush\")) === null || _this125$company3 === void 0 ? void 0 : _this125$company3.appkey) || !1, _this125.rootPage = (_this125$company4 = _this125.company) === null || _this125$company4 === void 0 ? void 0 : _this125$company4.get(\"rootPage\");\n })();\n }\n initAppConfig() {\n var _this126 = this;\n return _asyncToGenerator(function* () {\n var _this126$app, _this126$app2, _this126$app3, _this126$app4, _this126$app5;\n if (!_this126.appId) return !1;\n let e = new Parse__default.Query(\"App\");\n return e.include(\"company\"), _this126.app = yield e.get(_this126.appId), console.log(_this126.app), _this126.logo = ((_this126$app = _this126.app) === null || _this126$app === void 0 ? void 0 : _this126$app.get(\"logo\")) || _this126.logo, _this126.qrcode = ((_this126$app2 = _this126.app) === null || _this126$app2 === void 0 ? void 0 : _this126$app2.get(\"qrcode\")) || _this126.qrcode, _this126.mobileLogin = ((_this126$app3 = _this126.app) === null || _this126$app3 === void 0 || (_this126$app3 = _this126$app3.get(\"jpush\")) === null || _this126$app3 === void 0 ? void 0 : _this126$app3.appkey) || !1, _this126.companyId = (_this126$app4 = _this126.app) === null || _this126$app4 === void 0 ? void 0 : _this126$app4.get(\"company\").id, _this126.rootPage = (_this126$app5 = _this126.app) === null || _this126$app5 === void 0 ? void 0 : _this126$app5.get(\"rootPage\"), !0;\n })();\n }\n initLoginForm() {\n this.validateForm = this.fb.group({\n mobile: [\"\", [Validators.required], [this.userNameAsyncValidator]],\n password: [\"\", [Validators.required], [this.passwordAsyncValidator]],\n checkCode: [\"\", [Validators.required], [this.codeAsyncValidator]]\n }), this.validateUserForm = this.fb.group({\n username: [\"\", [Validators.required], []],\n password: [\"\", [Validators.required], [this.passwordAsyncValidator]],\n checkCode: [\"\", [Validators.required], [this.codeAsyncValidator]]\n }), this.validateSMSForm = this.fb.group({\n mobile: [\"\", [Validators.required], [this.userNameAsyncValidator]],\n password: [\"\"],\n smsCode: [\"\", [Validators.required], [this.smsAsyncValidator]],\n checkCode: [\"\", [Validators.required], [this.codeAsyncValidator]]\n }), this.registForm = this.fb.group({\n registName: [\"\", [Validators.required], [this.registNameAsyncValidator]],\n registIdcard: [\"\", [Validators.required], [this.registIdcardAsyncValidator]],\n registPhone: [\"\", [Validators.required], [this.registPhoneAsyncValidator]],\n phoneCode: [\"\", [Validators.required], [this.registCodeAsyncValidator]],\n regpassword: [\"\", [Validators.required], [this.regpasswordAsyncValidator]],\n confirmPassword: [\"\", [Validators.required], [this.confirmPasswordAsyncValidator]]\n }), this.forgetForm = this.fb.group({\n forgetusername: [\"\", [Validators.required], [this.forgetNameAsyncValidator]],\n forgetPassword: [\"\", [Validators.required], [this.forgetPasswordAsyncValidator]],\n forgetConfirmpassword: [\"\", [Validators.required], [this.forgetConfirmPasswordAsyncValidator]],\n forgerphoneCode: [\"\", [Validators.required], [this.registCodeAsyncValidator]]\n });\n }\n ngOnInit() {\n this.activatedRoute.paramMap.subscribe(e => {\n e.get(\"p\") ? localStorage.setItem(\"pid\", e.get(\"p\")) : localStorage.setItem(\"company\", this.companyId);\n }), this.creatCode();\n }\n creatCode() {\n this.code = \"\";\n let e = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\"];\n for (let t = 0; t < 4; t++) {\n let t = Math.floor(52 * Math.random());\n this.code += e[t];\n }\n }\n}\n_LoginComponent = LoginComponent;\n_LoginComponent.ɵfac = function _LoginComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _LoginComponent)(i0.ɵɵdirectiveInject(AuthService), i0.ɵɵdirectiveInject(NovaCloudService), i0.ɵɵdirectiveInject(i7.FormBuilder), i0.ɵɵdirectiveInject(i4.NzMessageService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.HttpClient));\n};\n_LoginComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _LoginComponent,\n selectors: [[\"app-pcuser-login\"]],\n decls: 23,\n vars: 12,\n consts: [[\"suffixTemplate\", \"\"], [\"suffixTemplate2\", \"\"], [\"suffixTemplate3\", \"\"], [1, \"student-login-layout\"], [1, \"nav_center\"], [\"alt\", \"\", 1, \"login_img\", 3, \"src\"], [1, \"nav_login\"], [3, \"nzSelectedIndex\", \"nzTabPosition\"], [\"nzTitle\", \"\\u624B\\u673A\\u5BC6\\u7801\", 2, \"color\", \"#000000\"], [4, \"ngIf\"], [\"nzTitle\", \"\\u5E10\\u53F7\\u5BC6\\u7801\", 2, \"color\", \"#000000\"], [\"nzTitle\", \"\\u77ED\\u4FE1\\u9A8C\\u8BC1\", 2, \"color\", \"#000000\"], [\"nzTitle\", \"\\u5F00\\u901A\", \"style\", \"color: #000000;\", \"class\", \"activation\", 4, \"ngIf\"], [1, \"nav_login_right\"], [1, \"login_right_title\"], [\"alt\", \"\\u516C\\u4F17\\u53F7\\u4E8C\\u7EF4\\u7801\", 3, \"src\"], [\"class\", \"loadWrap\", \"style\", \"display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;\", 4, \"ngIf\"], [\"nzTitle\", \"\\u624B\\u673A\\u53F7\\u9519\\u8BEF\", 3, \"nzVisibleChange\", \"nzOnCancel\", \"nzOnOk\", \"nzVisible\"], [4, \"nzModalContent\"], [\"nz-form\", \"\", 3, \"ngSubmit\", \"formGroup\"], [\"nzRequired\", \"\", 3, \"nzSpan\"], [3, \"nzSpan\", \"nzErrorTip\"], [\"nz-input\", \"\", \"formControlName\", \"mobile\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\"], [3, \"nzSuffix\"], [\"nz-input\", \"\", \"formControlName\", \"password\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u5BC6\\u7801\", 3, \"type\"], [1, \"form-control-contain\"], [\"nzRequired\", \"\", 1, \"contain_yanzm\", 3, \"nzSpan\"], [1, \"contain_input_yanzm\", 3, \"nzSpan\", \"nzErrorTip\"], [\"title\", \"\\u8BF7\\u8F93\\u5165\\u9A8C\\u8BC1\\u7801\", \"nz-input\", \"\", \"type\", \"text\", \"formControlName\", \"checkCode\", \"placeholder\", \"\\u533A\\u5206\\u5927\\u5C0F\\u5199\", 2, \"font-size\", \"14px\"], [1, \"codeText\", 3, \"nzSpan\"], [2, \"height\", \"100%\", \"margin\", \"0 4px\", \"text-align\", \"center\", \"letter-spacing\", \"2px\"], [1, \"switch\", 3, \"nzSpan\"], [2, \"background-color\", \"#40a9ff\", \"color\", \"#fff\", \"padding\", \"5px\", \"text-align\", \"center\", 3, \"click\"], [1, \"login_btn\"], [\"nz-button\", \"\", \"nzType\", \"primary\", 3, \"nzSize\", \"disabled\"], [1, \"forget\"], [3, \"click\"], [\"nz-icon\", \"\", 3, \"click\", \"nzType\"], [\"nz-input\", \"\", \"formControlName\", \"forgetusername\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\"], [\"nz-input\", \"\", \"formControlName\", \"forgetPassword\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u5BC6\\u7801\", 3, \"type\"], [\"nz-input\", \"\", \"formControlName\", \"forgetConfirmpassword\", \"placeholder\", \"\\u8BF7\\u518D\\u6B21\\u8F93\\u5165\\u5BC6\\u7801\", 3, \"type\"], [1, \"forget_contain\"], [\"nzHasFeedback\", \"\", 1, \"codeInput\", 3, \"nzSpan\", \"nzErrorTip\"], [\"nz-input\", \"\", \"type\", \"text\", \"formControlName\", \"forgerphoneCode\", \"placeholder\", \"\\u624B\\u673A\\u9A8C\\u8BC1\\u7801\", 2, \"font-size\", \"18px\"], [1, \"getCode\", 3, \"nzSpan\"], [\"class\", \"get_code\", \"style\", \"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\", 3, \"click\", 4, \"ngIf\"], [\"style\", \"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\", 4, \"ngIf\"], [\"nz-button\", \"\", \"nzType\", \"primary\", 2, \"width\", \"348px\", 3, \"nzSize\", \"disabled\"], [1, \"get_code\", 2, \"background-color\", \"#40a9ff\", \"cursor\", \"pointer\", \"color\", \"#fff\", \"padding\", \"5px\", \"text-align\", \"center\", \"font-size\", \"18px\", 3, \"click\"], [2, \"background-color\", \"#40a9ff\", \"color\", \"#fff\", \"padding\", \"5px\", \"text-align\", \"center\", \"font-size\", \"18px\"], [\"nz-input\", \"\", \"formControlName\", \"username\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u5E10\\u53F7\"], [\"nz-input\", \"\", \"formControlName\", \"smsCode\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u77ED\\u4FE1\\u9A8C\\u8BC1\\u7801\", 3, \"type\", \"disabled\"], [\"style\", \"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\", 3, \"click\", 4, \"ngIf\"], [\"style\", \"background-color:#eff5f9; color: rgb(118, 117, 117); padding: 5px; text-align: center;\", 4, \"ngIf\"], [2, \"background-color\", \"#eff5f9\", \"color\", \"rgb(118, 117, 117)\", \"padding\", \"5px\", \"text-align\", \"center\"], [\"nzTitle\", \"\\u5F00\\u901A\", 1, \"activation\", 2, \"color\", \"#000000\"], [\"nzHasFeedback\", \"\", \"nzValidatingTip\", \"\\u9A8C\\u8BC1\\u4E2D...\", 3, \"nzSpan\", \"nzErrorTip\"], [\"title\", \"\\u8BF7\\u8F93\\u5165\\u8EAB\\u4EFD\\u8BC1\\u53F7\\u7801\", \"nz-input\", \"\", \"formControlName\", \"registIdcard\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u8EAB\\u4EFD\\u8BC1\\u53F7\\u7801\"], [\"nzHasFeedback\", \"\", 3, \"nzSpan\", \"nzErrorTip\"], [\"nz-input\", \"\", \"type\", \"text\", \"formControlName\", \"registName\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u59D3\\u540D\"], [\"nz-input\", \"\", \"type\", \"text\", \"formControlName\", \"registPhone\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\", 2, \"font-size\", \"18px\", 3, \"ngModelChange\", \"ngModel\"], [1, \"verifyCode\"], [\"nzHasFeedback\", \"\", 1, \"code_input\", 3, \"nzSpan\", \"nzErrorTip\"], [\"nz-input\", \"\", \"type\", \"text\", \"formControlName\", \"phoneCode\", \"placeholder\", \"\\u624B\\u673A\\u9A8C\\u8BC1\\u7801\", 2, \"font-size\", \"18px\"], [1, \"codeContain\", 3, \"nzSpan\"], [\"class\", \"get_code\", \"style\", \"background-color:#40a9ff; cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\", 3, \"click\", 4, \"ngIf\"], [\"nz-input\", \"\", \"formControlName\", \"regpassword\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u5BC6\\u7801\", 3, \"type\"], [\"nz-input\", \"\", \"formControlName\", \"confirmPassword\", \"placeholder\", \"\\u8BF7\\u786E\\u8BA4\\u5BC6\\u7801\", 3, \"type\"], [\"nz-button\", \"\", \"nzType\", \"primary\", 3, \"disabled\"], [1, \"loadWrap\", 2, \"display\", \"flex\", \"align-items\", \"center\", \"justify-content\", \"center\", \"width\", \"100%\", \"height\", \"100%\"], [\"nzTip\", \"\\u52A0\\u8F7D\\u4E2D\\uFF0C\\u8BF7\\u7A0D\\u540E...\"], [\"nzType\", \"info\", \"nzMessage\", \"\\u8BFE\\u7A0B\\u52A0\\u8F7D\\u4E2D\\uFF0C\\u8BF7\\u7A0D\\u540E...\"]],\n template: function _LoginComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 3)(1, \"div\", 4);\n i0.ɵɵelement(2, \"img\", 5);\n i0.ɵɵelementStart(3, \"div\", 6)(4, \"nz-tabset\", 7)(5, \"nz-tab\", 8);\n i0.ɵɵtemplate(6, _LoginComponent_ng_container_6_Template, 32, 17, \"ng-container\", 9)(7, _LoginComponent_ng_container_7_Template, 37, 22, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(8, \"nz-tab\", 10);\n i0.ɵɵtemplate(9, _LoginComponent_ng_container_9_Template, 29, 17, \"ng-container\", 9)(10, _LoginComponent_ng_container_10_Template, 37, 22, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(11, \"nz-tab\", 11);\n i0.ɵɵtemplate(12, _LoginComponent_ng_container_12_Template, 30, 20, \"ng-container\", 9);\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(13, _LoginComponent_nz_tab_13_Template, 44, 28, \"nz-tab\", 12);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(14, \"div\", 13)(15, \"p\", 14);\n i0.ɵɵtext(16, \"\\u4E8C\\u7EF4\\u7801\");\n i0.ɵɵelementEnd();\n i0.ɵɵelement(17, \"img\", 15);\n i0.ɵɵelementStart(18, \"p\");\n i0.ɵɵtext(19, \"\\u626B\\u7801\\u8FDB\\u5165\\u5FAE\\u4FE1\\u7AEF\");\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(20, _LoginComponent_div_20_Template, 3, 0, \"div\", 16);\n i0.ɵɵelementStart(21, \"nz-modal\", 17);\n i0.ɵɵtwoWayListener(\"nzVisibleChange\", function _LoginComponent_Template_nz_modal_nzVisibleChange_21_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.isVisible, $event) || (ctx.isVisible = $event);\n return $event;\n });\n i0.ɵɵlistener(\"nzOnCancel\", function _LoginComponent_Template_nz_modal_nzOnCancel_21_listener() {\n return ctx.handleCancel();\n })(\"nzOnOk\", function _LoginComponent_Template_nz_modal_nzOnOk_21_listener() {\n return ctx.handleOk();\n });\n i0.ɵɵtemplate(22, _LoginComponent_ng_container_22_Template, 3, 0, \"ng-container\", 18);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"src\", ctx.logo, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"nzSelectedIndex\", ctx.tabIndex)(\"nzTabPosition\", \"top\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"login\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"forget\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"login\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"forget\");\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"login\");\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.mobileLogin);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"src\", ctx.qrcode, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx.loading2);\n i0.ɵɵadvance();\n i0.ɵɵtwoWayProperty(\"nzVisible\", ctx.isVisible);\n }\n },\n dependencies: [i2$2.NgIf, i7.ɵNgNoValidate, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgControlStatusGroup, i7.FormGroupDirective, i7.FormControlName, i8.NzInputDirective, i8.NzInputGroupComponent, i8.NzInputGroupWhitSuffixOrPrefixDirective, i9.NzButtonComponent, i10.ɵNzTransitionPatchDirective, i11.NzWaveDirective, i3$1.NzModalComponent, i3$1.NzModalContentDirective, i13.NzSpinComponent, i14.NzTabSetComponent, i14.NzTabComponent, i15.NzColDirective, i15.NzRowDirective, i16.NzFormDirective, i16.NzFormItemComponent, i16.NzFormLabelComponent, i16.NzFormControlComponent],\n styles: [\".student-login-layout[_ngcontent-%COMP%]{position:fixed;top:0;left:0;background:#fff;width:100%;height:100%;z-index:100;overflow:auto;background:url(https://cloud.fmode.cn/assets/bg-login.jpg) no-repeat;background-size:100% 100%}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%]{width:800px;min-height:450px;margin:0 auto;top:50%;left:50%;transform:translate(-50%,-50%);background-size:inherit;position:absolute;padding:30px;text-align:center}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .login_img[_ngcontent-%COMP%]{max-width:70%;max-height:100px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%]{background:#ffffff1a}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-tab-btn{font-size:22px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-tab-btn[_ngcontent-%COMP%]{border-bottom:2px solid #1890ff}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-nav{height:55px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-nav-list{width:100%;display:flex;justify-content:center;color:#000}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-form-item-required{font-size:18px;font-weight:700}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ng-invalid{font-size:18px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ng-valid{font-size:18px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ng-pending{font-size:18px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-form-item{display:flex;justify-content:center}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-nav:before{border:none}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%]{display:flex;flex-direction:inherit;align-items:center;justify-content:center;width:100%;border-radius:2px;background-color:#fff;margin:0 auto;min-height:500px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login-form[_ngcontent-%COMP%]{max-width:300px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] [nz-form][_ngcontent-%COMP%]{width:440px;max-width:500px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login_btn[_ngcontent-%COMP%]{width:400px;margin:0 auto;display:flex;justify-content:center}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login_btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:85%}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .forget[_ngcontent-%COMP%]{margin:10px 40px 0 auto;display:flex;justify-content:flex-end}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .forget[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{font-size:14px;color:#40a9ff}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login-form-margin[_ngcontent-%COMP%]{margin-bottom:16px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login-form-forgot[_ngcontent-%COMP%]{float:right}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .login-form-button[_ngcontent-%COMP%]{width:100%}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .nav_login_right[_ngcontent-%COMP%]{height:100%;flex:2;border-left:2px dashed #e5e5e5;font-size:16px;display:flex;flex-direction:column;color:#626262;align-items:center;justify-content:center}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .nav_login_right[_ngcontent-%COMP%] .login_right_bottom[_ngcontent-%COMP%]{margin:40px 0 50px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] .nav_login_right[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:160px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .iseducation[_ngcontent-%COMP%]{position:absolute;top:159px;background:#fff;width:90%;flex-direction:column;line-height:50px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .iseducation[_ngcontent-%COMP%] .login_btn[_ngcontent-%COMP%]{margin-top:30px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .iseducation[_ngcontent-%COMP%] .close_education[_ngcontent-%COMP%]{width:30px;height:30px;position:absolute;top:20px;right:10px;font-size:24px;background-color:#dddddddb;border-radius:15px;line-height:28px;cursor:pointer}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .loadWrap[_ngcontent-%COMP%]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width: 960px){.nav_center[_ngcontent-%COMP%]{width:90%}}@media (max-width: 760px){.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%]{width:100%}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-form-item-explain{text-align:left!important}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ng-invalid{font-size:13px!important}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .ant-tabs-tab-btn{font-size:18px}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .login_btn[_ngcontent-%COMP%]{width:100%!important;margin:10px auto!important}.student-login-layout[_ngcontent-%COMP%] .nav_center[_ngcontent-%COMP%] .login_btn[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%!important}.student-login-layout[_ngcontent-%COMP%] .nav_login[_ngcontent-%COMP%] [nz-form][_ngcontent-%COMP%]{width:100%!important;max-width:auto;padding:0 30px;display:flex;justify-content:center;flex-direction:column}.student-login-layout[_ngcontent-%COMP%] .ant-form-item[_ngcontent-%COMP%]{margin-bottom:5px}.student-login-layout[_ngcontent-%COMP%] .ant-form-item-required{font-size:12px!important;padding-bottom:0!important}.student-login-layout[_ngcontent-%COMP%] .ant-form-item-label[_ngcontent-%COMP%]{padding:0}.student-login-layout[_ngcontent-%COMP%] .form-control-contain[_ngcontent-%COMP%]{display:flex!important;justify-content:space-between!important;flex-wrap:wrap;margin-top:10px}.student-login-layout[_ngcontent-%COMP%] .form-control-contain[_ngcontent-%COMP%] .contain_yanzm[_ngcontent-%COMP%]{flex:0 0 30%}.student-login-layout[_ngcontent-%COMP%] .form-control-contain[_ngcontent-%COMP%] .contain_input_yanzm[_ngcontent-%COMP%]{flex:0 0 40%}.student-login-layout[_ngcontent-%COMP%] .form-control-contain[_ngcontent-%COMP%] .codeText[_ngcontent-%COMP%]{flex:0 0 30%}.student-login-layout[_ngcontent-%COMP%] .form-control-contain[_ngcontent-%COMP%] .switch[_ngcontent-%COMP%]{flex:0 0 100%}.verifyCode[_ngcontent-%COMP%] .code_input[_ngcontent-%COMP%]{flex:0 0 50%}.verifyCode[_ngcontent-%COMP%] .codeContain[_ngcontent-%COMP%]{margin-left:10px;flex:0 0 45%}.verifyCode[_ngcontent-%COMP%] .get_code[_ngcontent-%COMP%]{font-size:14px!important}.forget_contain[_ngcontent-%COMP%] .codeInput[_ngcontent-%COMP%]{flex:0 0 50%}.forget_contain[_ngcontent-%COMP%] .getCode[_ngcontent-%COMP%]{margin-left:10px;flex:0 0 45%}.get_code[_ngcontent-%COMP%]{font-size:14px!important}.iseducation[_ngcontent-%COMP%]{top:110px!important}.iseducation[_ngcontent-%COMP%] .close_education[_ngcontent-%COMP%] #login_btn[_ngcontent-%COMP%]{width:50%!important}}@media (max-width: 460px){.form-control-contain[_ngcontent-%COMP%] .switch[_ngcontent-%COMP%]{margin-top:10px!important}}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(LoginComponent, [{\n type: Component,\n args: [{\n selector: \"app-pcuser-login\",\n template: '<div class=\"student-login-layout\">\\n <div class=\"nav_center\">\\n <img [src]=\"logo\" alt=\"\" class=\"login_img\">\\n <div class=\"nav_login\">\\n <nz-tabset [nzSelectedIndex]=\"tabIndex\" [nzTabPosition]=\"\\'top\\'\">\\n\\n \\x3c!-- 登录:手机号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"手机密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateForm\" (ngSubmit)=\"submitFormMobilePassword(validateForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateForm.valid\">登录</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"forget()\">忘记密码</h6>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n\\n \\x3c!-- 登录:帐号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"帐号密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateUserForm\" (ngSubmit)=\"submitFormUserPassword(validateUserForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>帐 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"username\" placeholder=\"请输入帐号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateUserForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n \\x3c!-- 登录:手机号+验证码登入 --\\x3e\\n <nz-tab nzTitle=\"短信验证\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateSMSForm\" (ngSubmit)=\"submitFormMobileSMS(validateSMSForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手 机 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>短信码</nz-form-label>\\n <nz-form-control [nzSpan]=\"10\" nzErrorTip=\"{{smsCodeErrorTip}}\">\\n <nz-input-group>\\n <input nz-input [type]=\"\\'text\\'\" [disabled]=\"!isSended || !codeVerified\" formControlName=\"smsCode\" placeholder=\"请输入短信验证码\" />\\n </nz-input-group>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div *ngIf=\"!isSending\" (click)=\"sendSMSCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isSending\"\\n style=\"background-color:#eff5f9; color: rgb(118, 117, 117); padding: 5px; text-align: center;\">\\n {{smsTimeCount}}\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n \\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateSMSForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n </nz-tab>\\n\\n \\x3c!-- 注册:企业用户Profile开通 --\\x3e\\n <nz-tab *ngIf=\"mobileLogin\" nzTitle=\"开通\" style=\"color: #000000;\" class=\"activation\">\\n <form nz-form [formGroup]=\"registForm\" (ngSubmit)=\"registSubmitForm(registForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通证件</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzValidatingTip=\"验证中...\"\\n nzErrorTip=\"{{registIdcardErrorTip}}\">\\n <input title=\"请输入身份证号码\" nz-input formControlName=\"registIdcard\" placeholder=\"请输入身份证号码\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通姓名</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{registNameErrorTip}}\">\\n <input nz-input type=\"text\" formControlName=\"registName\" placeholder=\"请输入姓名\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>绑定手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{phoneErrorTip}}\">\\n <input [(ngModel)]=\"registPhone\" nz-input style=\"font-size: 18px;\" type=\"text\"\\n formControlName=\"registPhone\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"verifyCode\">\\n <nz-form-label [nzSpan]=\"7\" nzRequired>手机验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" class=\"code_input\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"phoneCode\" placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"codeContain\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode()\"\\n class=\"get_code\"\\n style=\"background-color:#40a9ff; cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{regpasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate2\">\\n <input nz-input [type]=\"passwordVisible2 ? \\'text\\' : \\'password\\'\" formControlName=\"regpassword\"\\n placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate2>\\n <i nz-icon [nzType]=\"passwordVisible2 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible2 = !passwordVisible2\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{confirmPasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate3\">\\n <input nz-input [type]=\"passwordVisible3 ? \\'text\\' : \\'password\\'\" formControlName=\"confirmPassword\"\\n placeholder=\"请确认密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate3>\\n <i nz-icon [nzType]=\"passwordVisible3 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible3 = !passwordVisible3\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [disabled]=\"!registForm.valid\">申请开通</button>\\n </div>\\n </form>\\n </nz-tab>\\n </nz-tabset>\\n <div class=\"nav_login_right\">\\n <p class=\"login_right_title\">二维码</p>\\n <img [src]=\"qrcode\" alt=\"公众号二维码\">\\n <p>扫码进入微信端</p>\\n \\x3c!-- <p class=\"login_right_bottom\">首次登录有惊喜</p> --\\x3e\\n </div>\\n </div>\\n\\n <div class=\"loadWrap\" style=\"display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;\"\\n *ngIf=\"loading2\">\\n <nz-spin nzTip=\"加载中,请稍后...\">\\n <nz-alert nzType=\"info\" nzMessage=\"课程加载中,请稍后...\"></nz-alert>\\n </nz-spin>\\n </div>\\n\\n \\x3c!-- 注销 --\\x3e\\n <nz-modal [(nzVisible)]=\"isVisible\" nzTitle=\"手机号错误\" (nzOnCancel)=\"handleCancel()\" (nzOnOk)=\"handleOk()\">\\n <ng-container *nzModalContent>\\n <p>手机号错误, 联系管理员核对信息</p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n</div>\\n',\n styles: [\".student-login-layout{position:fixed;top:0;left:0;background:#fff;width:100%;height:100%;z-index:100;overflow:auto;background:url(https://cloud.fmode.cn/assets/bg-login.jpg) no-repeat;background-size:100% 100%}.student-login-layout .nav_center{width:800px;min-height:450px;margin:0 auto;top:50%;left:50%;transform:translate(-50%,-50%);background-size:inherit;position:absolute;padding:30px;text-align:center}.student-login-layout .nav_center .login_img{max-width:70%;max-height:100px}.student-login-layout .nav_center .nav_login{background:#ffffff1a}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:22px}.student-login-layout .nav_center .ant-tabs-tab-btn{border-bottom:2px solid #1890ff}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav{height:55px}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav-list{width:100%;display:flex;justify-content:center;color:#000}.student-login-layout .nav_center ::ng-deep .ant-form-item-required{font-size:18px;font-weight:700}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-valid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-pending{font-size:18px}.student-login-layout .nav_center ::ng-deep .ant-form-item{display:flex;justify-content:center}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav:before{border:none}.student-login-layout .nav_center .nav_login{display:flex;flex-direction:inherit;align-items:center;justify-content:center;width:100%;border-radius:2px;background-color:#fff;margin:0 auto;min-height:500px}.student-login-layout .nav_center .nav_login .login-form{max-width:300px}.student-login-layout .nav_center .nav_login [nz-form]{width:440px;max-width:500px}.student-login-layout .nav_center .nav_login .login_btn{width:400px;margin:0 auto;display:flex;justify-content:center}.student-login-layout .nav_center .nav_login .login_btn button{width:85%}.student-login-layout .nav_center .nav_login .forget{margin:10px 40px 0 auto;display:flex;justify-content:flex-end}.student-login-layout .nav_center .nav_login .forget h6{font-size:14px;color:#40a9ff}.student-login-layout .nav_center .nav_login .login-form-margin{margin-bottom:16px}.student-login-layout .nav_center .nav_login .login-form-forgot{float:right}.student-login-layout .nav_center .nav_login .login-form-button{width:100%}.student-login-layout .nav_center .nav_login .nav_login_right{height:100%;flex:2;border-left:2px dashed #e5e5e5;font-size:16px;display:flex;flex-direction:column;color:#626262;align-items:center;justify-content:center}.student-login-layout .nav_center .nav_login .nav_login_right .login_right_bottom{margin:40px 0 50px}.student-login-layout .nav_center .nav_login .nav_login_right img{width:160px}.student-login-layout .nav_center .iseducation{position:absolute;top:159px;background:#fff;width:90%;flex-direction:column;line-height:50px}.student-login-layout .nav_center .iseducation .login_btn{margin-top:30px}.student-login-layout .nav_center .iseducation .close_education{width:30px;height:30px;position:absolute;top:20px;right:10px;font-size:24px;background-color:#dddddddb;border-radius:15px;line-height:28px;cursor:pointer}.student-login-layout .nav_center .loadWrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width: 960px){.nav_center{width:90%}}@media (max-width: 760px){.student-login-layout .nav_center{width:100%}.student-login-layout .nav_center ::ng-deep .ant-form-item-explain{text-align:left!important}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:13px!important}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:18px}.student-login-layout .nav_center .login_btn{width:100%!important;margin:10px auto!important}.student-login-layout .nav_center .login_btn button{width:100%!important}.student-login-layout .nav_login [nz-form]{width:100%!important;max-width:auto;padding:0 30px;display:flex;justify-content:center;flex-direction:column}.student-login-layout .ant-form-item{margin-bottom:5px}.student-login-layout ::ng-deep .ant-form-item-required{font-size:12px!important;padding-bottom:0!important}.student-login-layout .ant-form-item-label{padding:0}.student-login-layout .form-control-contain{display:flex!important;justify-content:space-between!important;flex-wrap:wrap;margin-top:10px}.student-login-layout .form-control-contain .contain_yanzm{flex:0 0 30%}.student-login-layout .form-control-contain .contain_input_yanzm{flex:0 0 40%}.student-login-layout .form-control-contain .codeText{flex:0 0 30%}.student-login-layout .form-control-contain .switch{flex:0 0 100%}.verifyCode .code_input{flex:0 0 50%}.verifyCode .codeContain{margin-left:10px;flex:0 0 45%}.verifyCode .get_code{font-size:14px!important}.forget_contain .codeInput{flex:0 0 50%}.forget_contain .getCode{margin-left:10px;flex:0 0 45%}.get_code{font-size:14px!important}.iseducation{top:110px!important}.iseducation .close_education #login_btn{width:50%!important}}@media (max-width: 460px){.form-control-contain .switch{margin-top:10px!important}}\\n\"]\n }]\n }], () => [{\n type: AuthService\n }, {\n type: NovaCloudService\n }, {\n type: i7.FormBuilder\n }, {\n type: i4.NzMessageService\n }, {\n type: i1$1.Router\n }, {\n type: i1$1.ActivatedRoute\n }, {\n type: i1$1.ActivatedRoute\n }, {\n type: i1.HttpClient\n }], null);\n})();\nclass ModalUserLoginComponent {\n constructor(e, t, n, o, i) {\n this.msg = e, this.authServ = t, this.router = n, this.http = o, this.toastCtrl = i, this.isUserRuleChecked = !1, this.loginInfo = {\n mobile: \"\",\n code: \"\"\n }, this.localCodeNum = \"\", this.countdown = 60, this.buttonText = \"获取验证码\", this.isCountingdown = !1, this.drawCode = [];\n }\n ngOnInit() {\n this.close();\n }\n ngAfterViewInit() {\n this.setActiveButton(this.authServ.activeButton);\n }\n signMobilePassword() {\n this.mobile && this.password ? this.password == this.password2 ? this.authServ.signMobilePassword(this.mobile, this.password).then(e => {\n (e === null || e === void 0 ? void 0 : e.id) && this.setActiveButton(\"账号密码\");\n }).catch(e => {\n this.msg.error(\"注册失败,请更换手机号注册\");\n }) : this.msg.error(\"两次输入密码不同,请检查\") : this.msg.error(\"请输入完整手机号和密码\");\n }\n loginMobilePassword() {\n this.mobile && this.password ? this.authServ.loginMobilePassword(this.mobile, this.password, this.msg) : this.msg.error(\"请输入完整手机号和密码\");\n }\n close() {\n let e = this.authServ.isGuardLock(this.router.url);\n this.authServ.isModalShow = e;\n }\n goHome() {\n let e = this.router.url;\n return e !== null && e !== void 0 && e.indexOf(\"yuban\") && this.router.navigateByUrl(\"/app/home\"), e.indexOf(\"chat\") > -1 ? (this.router.navigateByUrl(\"/chat/home\"), void (this.authServ.isModalShow = !1)) : e.indexOf(\"imagine\") > -1 ? (this.router.navigateByUrl(\"/imagine/home\"), void (this.authServ.isModalShow = !1)) : (this.router.navigateByUrl(\"/\"), void (this.authServ.isModalShow = !1));\n }\n handleEscapeKey(e) {\n this.close();\n }\n setActiveButton(e) {\n this.authServ.activeButton = e, console.log(this.authServ.activeButton), this.updateDrawCode();\n }\n smsAutoLogin() {\n var _this$loginInfo$code;\n 6 == ((_this$loginInfo$code = this.loginInfo.code) === null || _this$loginInfo$code === void 0 ? void 0 : _this$loginInfo$code.length) && this.login();\n }\n startCountdown() {\n var _Parse__default$serve5;\n if (!String(this.loginInfo.mobile).match(/^1[3456789]\\d{9}$/)) return void this.msg.error(\"请填写正确手机号\");\n let e = this.drawCode.join(\"\");\n if (this.authServ.enabledLocalCode && this.localCodeNum.toLowerCase() != e.toLowerCase()) return void this.msg.error(\"校验码不正确\");\n let t = ((_Parse__default$serve5 = Parse__default.serverURL) === null || _Parse__default$serve5 === void 0 || (_Parse__default$serve5 = _Parse__default$serve5.split(\"parse\")) === null || _Parse__default$serve5 === void 0 ? void 0 : _Parse__default$serve5[0]) || \"https://server.fmode.cn/\";\n this.http.post(t + \"api/apig/message\", {\n company: this.authServ.company,\n mobile: this.loginInfo.mobile\n }).subscribe(e => {\n console.log(e), this.msg.success(\"发送成功\"), this.isCountingdown = !0, this.time(), this.updateDrawCode(), this.focusSmsCodeInput();\n });\n }\n focusSmsCodeInput() {\n this.smsCodeInput.nativeElement.focus();\n }\n time() {\n this.isCountingdown = !0, this.buttonText = `${this.countdown}秒`;\n let e = setInterval(() => {\n this.countdown--, this.buttonText = `${this.countdown}秒`, (0 === this.countdown || this.countdown < 0) && (clearInterval(e), this.buttonText = \"重新发送\", this.isCountingdown = !1, this.countdown = 0);\n }, 1e3);\n }\n login() {\n var _this127 = this;\n return _asyncToGenerator(function* () {\n var _this127$loginInfo$co;\n let e;\n if (!String(_this127.loginInfo.mobile).match(/^1[3456789]\\d{9}$/)) return void _this127.msg.error(\"请填写正确手机号\");\n if (!_this127.loginInfo.code) return void _this127.msg.error(\"请输入短信验证码\");\n _this127.loginInfo.code = (_this127$loginInfo$co = _this127.loginInfo.code) === null || _this127$loginInfo$co === void 0 ? void 0 : _this127$loginInfo$co.slice(0, 6);\n try {\n e = yield _this127.authServ.loginCode(_this127.loginInfo.mobile, _this127.loginInfo.code, _this127.msg);\n } catch (e) {}\n let t = Parse__default.User.current();\n (e || (t === null || t === void 0 ? void 0 : t.id)) && (console.log(e, t === null || t === void 0 ? void 0 : t.id, \"close\"), _this127.close(), _this127.loginInfo = {\n mobile: \"\",\n code: \"\"\n }, _this127.localCodeNum = \"\", _this127.toast({\n color: \"success\",\n message: \"登录成功\"\n }));\n })();\n }\n toast(e) {\n var _this128 = this;\n return _asyncToGenerator(function* () {\n e.position = (e === null || e === void 0 ? void 0 : e.position) || \"top\", e.duration = (e === null || e === void 0 ? void 0 : e.duration) || 1500, e.color = (e === null || e === void 0 ? void 0 : e.color) || \"primary\", (yield _this128.toastCtrl.create(e)).present();\n })();\n }\n updateDrawCode() {\n if (!this.authServ.enabledLocalCode) return;\n let e = 100,\n t = document.getElementById(\"canvas\");\n t && this.canvasDom.nativeElement.removeChild(t), this.canvasDom.nativeElement;\n let n = document.createElement(\"canvas\");\n n.width = 100, n.height = 44, n.className = \"canvas\", n.setAttribute(\"id\", \"canvas\"), n.addEventListener(\"click\", () => {\n this.updateDrawCode();\n });\n let o = n.getContext(\"2d\");\n n.width = e, n.height = 44;\n let i = \"A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m\".split(\",\"),\n a = i.length;\n for (let e = 0; e <= 3; e++) {\n let t = Math.floor(Math.random() * a),\n n = 30 * Math.random() * Math.PI / 180,\n r = i[t];\n this.drawCode[e] = r;\n let s = 10 + 20 * e,\n l = 20 + 8 * Math.random();\n o.font = \"bold 23px 微软雅黑\", o.translate(s, l), o.rotate(n), o.fillStyle = this.randomColor(), o.fillText(r, 0, 0), o.rotate(-n), o.translate(-s, -l);\n }\n for (let t = 0; t <= 5; t++) o.strokeStyle = this.randomColor(), o.beginPath(), o.moveTo(Math.random() * e, 44 * Math.random()), o.lineTo(Math.random() * e, 44 * Math.random()), o.stroke();\n for (let t = 0; t <= 30; t++) {\n o.strokeStyle = this.randomColor(), o.beginPath();\n let t = Math.random() * e,\n n = 44 * Math.random();\n o.moveTo(t, n), o.lineTo(t + 1, n + 1), o.stroke();\n }\n this.canvasDom.nativeElement.appendChild(n);\n }\n randomColor() {\n return \"rgb(\" + Math.floor(256 * Math.random()) + \",\" + Math.floor(256 * Math.random()) + \",\" + Math.floor(256 * Math.random()) + \")\";\n }\n}\n_ModalUserLoginComponent = ModalUserLoginComponent;\n_ModalUserLoginComponent.ɵfac = function _ModalUserLoginComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ModalUserLoginComponent)(i0.ɵɵdirectiveInject(i4.NzMessageService), i0.ɵɵdirectiveInject(AuthService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1.HttpClient), i0.ɵɵdirectiveInject(i2$3.ToastController));\n};\n_ModalUserLoginComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ModalUserLoginComponent,\n selectors: [[\"fm-modal-user-login\"]],\n viewQuery: function _ModalUserLoginComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c21, 5);\n i0.ɵɵviewQuery(_c22, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.canvasDom = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.smsCodeInput = _t.first);\n }\n },\n hostBindings: function _ModalUserLoginComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"keydown.escape\", function _ModalUserLoginComponent_keydown_escape_HostBindingHandler($event) {\n return ctx.handleEscapeKey($event);\n }, false, i0.ɵɵresolveDocument);\n }\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 23,\n vars: 19,\n consts: [[\"smsCodeInput\", \"\"], [\"canvasDom\", \"\"], [1, \"popup\", 3, \"click\"], [1, \"popup-content\", 3, \"click\"], [1, \"popup-box\"], [1, \"popup-box-content\"], [1, \"logo-img-login\"], [\"alt\", \"fmode\", 3, \"src\"], [1, \"close-icon-box\"], [1, \"iconfont\", \"icon-shanchu2\", 3, \"click\"], [\"class\", \"button-box\", 4, \"ngIf\"], [\"class\", \"message-form\", 3, \"active\", 4, \"ngIf\"], [\"class\", \"mobile-form\", 3, \"active\", 4, \"ngIf\"], [1, \"mobile-form\"], [1, \"login-input-box\"], [\"type\", \"text\", \"required\", \"required\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\", 1, \"popup-input-itemnomal\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [\"type\", \"password\", \"required\", \"required\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u5BC6\\u7801\", 1, \"popup-input-itemnomal\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [\"type\", \"password\", \"required\", \"required\", \"placeholder\", \"\\u8BF7\\u518D\\u6B21\\u8F93\\u5165\\u5BC6\\u7801\", 1, \"popup-input-itemnomal\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [1, \"login-submit-box\"], [\"type\", \"submit\", 1, \"login-submit-button\", 3, \"click\"], [\"class\", \"wechat-form\", 3, \"active\", 4, \"ngIf\"], [\"class\", \"back-home-box\", 4, \"ngIf\"], [1, \"button-box\"], [1, \"button-group\"], [\"class\", \"login-select-button\", 3, \"active\", \"click\", 4, \"ngIf\"], [1, \"login-select-button\", 3, \"click\"], [1, \"message-form\"], [1, \"popup-input-frontnumber\"], [\"type\", \"text\", \"required\", \"required\", \"maxlength\", \"12\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\", 1, \"popup-input-itemone\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [\"class\", \"login-input-box local-code\", 4, \"ngIf\"], [\"type\", \"text\", \"required\", \"required\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u77ED\\u4FE1\\u9A8C\\u8BC1\\u7801\", \"maxlength\", \"6\", 1, \"popup-input-itemtwo\", 3, \"ngModelChange\", \"change\", \"ngModel\", \"ngModelOptions\"], [\"type\", \"submit\", 1, \"checknumber-button\", 3, \"click\", \"value\", \"disabled\"], [1, \"rule-box\"], [1, \"login-input-box\", \"local-code\"], [\"type\", \"text\", \"required\", \"required\", \"maxlength\", \"4\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u6821\\u9A8C\\u7801\", 1, \"popup-input-itemtwo\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [\"maxlength\", \"12\", \"type\", \"text\", \"required\", \"required\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u624B\\u673A\\u53F7\", 1, \"popup-input-itemnomal\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [1, \"passwprd-box\"], [1, \"remember-password-box\"], [\"type\", \"checkbox\", \"id\", \"remember-password\"], [1, \"password-forget\", 3, \"click\"], [\"type\", \"checkbox\", 2, \"margin-right\", \"5px\", 3, \"ngModelChange\", \"ngModel\", \"ngModelOptions\"], [3, \"click\"], [1, \"wechat-form\"], [1, \"wechat-login-box\"], [\"alt\", \"\\u5FAE\\u4FE1\\u626B\\u7801\\u767B\\u9646\\u4E8C\\u7EF4\\u7801\", 1, \"login-erweima-img\", 3, \"src\"], [1, \"wechat-explain\"], [1, \"back-home-box\"], [1, \"back-homepage-button\", 3, \"click\"]],\n template: function _ModalUserLoginComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 2);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_Template_div_click_0_listener() {\n return ctx.close();\n });\n i0.ɵɵelementStart(1, \"div\", 3);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_Template_div_click_1_listener($event) {\n return $event.stopPropagation();\n });\n i0.ɵɵelementStart(2, \"div\", 4)(3, \"div\", 5)(4, \"div\", 6);\n i0.ɵɵelement(5, \"img\", 7);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(6, \"div\", 8)(7, \"div\", 9);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_Template_div_click_7_listener() {\n return ctx.close();\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵtemplate(8, _ModalUserLoginComponent_div_8_Template, 5, 3, \"div\", 10)(9, _ModalUserLoginComponent_form_9_Template, 17, 14, \"form\", 11)(10, _ModalUserLoginComponent_form_10_Template, 21, 11, \"form\", 12);\n i0.ɵɵelementStart(11, \"form\", 13)(12, \"div\", 14)(13, \"input\", 15);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_Template_input_ngModelChange_13_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.mobile, $event) || (ctx.mobile = $event);\n return $event;\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(14, \"div\", 14)(15, \"input\", 16);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_Template_input_ngModelChange_15_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.password, $event) || (ctx.password = $event);\n return $event;\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(16, \"div\", 14)(17, \"input\", 17);\n i0.ɵɵtwoWayListener(\"ngModelChange\", function _ModalUserLoginComponent_Template_input_ngModelChange_17_listener($event) {\n i0.ɵɵtwoWayBindingSet(ctx.password2, $event) || (ctx.password2 = $event);\n return $event;\n });\n i0.ɵɵelementEnd()();\n i0.ɵɵelementStart(18, \"div\", 18)(19, \"button\", 19);\n i0.ɵɵlistener(\"click\", function _ModalUserLoginComponent_Template_button_click_19_listener() {\n return ctx.signMobilePassword();\n });\n i0.ɵɵtext(20, \" \\u6CE8\\u518C \");\n i0.ɵɵelementEnd()()();\n i0.ɵɵtemplate(21, _ModalUserLoginComponent_form_21_Template, 5, 3, \"form\", 20)(22, _ModalUserLoginComponent_div_22_Template, 3, 0, \"div\", 21);\n i0.ɵɵelementEnd()()()();\n }\n if (rf & 2) {\n i0.ɵɵstyleProp(\"display\", ctx.authServ.isModalShow ? \"block\" : \"none\");\n i0.ɵɵadvance(5);\n i0.ɵɵproperty(\"src\", ctx.authServ.logoUrl, i0.ɵɵsanitizeUrl);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", (ctx.authServ == null ? null : ctx.authServ.loginTypeCount) > 1);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.authServ == null ? null : ctx.authServ.loginOptions == null ? null : ctx.authServ.loginOptions.mobilecode);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.authServ == null ? null : ctx.authServ.loginOptions == null ? null : ctx.authServ.loginOptions.userpwd);\n i0.ɵɵadvance();\n i0.ɵɵclassProp(\"active\", ctx.authServ.activeButton === \"\\u6CE8\\u518C\\u5E10\\u53F7\");\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.mobile);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(16, _c23));\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.password);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(17, _c23));\n i0.ɵɵadvance(2);\n i0.ɵɵtwoWayProperty(\"ngModel\", ctx.password2);\n i0.ɵɵproperty(\"ngModelOptions\", i0.ɵɵpureFunction0(18, _c23));\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngIf\", ctx.authServ == null ? null : ctx.authServ.loginOptions == null ? null : ctx.authServ.loginOptions.wechat);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx.authServ.showBackHome);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, FormsModule, i7.ɵNgNoValidate, i7.DefaultValueAccessor, i7.CheckboxControlValueAccessor, i7.NgControlStatus, i7.NgControlStatusGroup, i7.RequiredValidator, i7.MaxLengthValidator, i7.NgModel, i7.NgForm, ReactiveFormsModule],\n styles: [\"@charset \\\"UTF-8\\\";[_nghost-%COMP%]{--fmode-color-primary: #0199f9;--fmode-background-primary: #FFF}body.dark[_nghost-%COMP%] .popup[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .popup[_ngcontent-%COMP%]{--fmode-color-primary: #7974ff;--fmode-background-primary: #000000}body.dark[_nghost-%COMP%] .popup[_ngcontent-%COMP%] .remember-password-box[_ngcontent-%COMP%], body.dark [_nghost-%COMP%] .popup[_ngcontent-%COMP%] .remember-password-box[_ngcontent-%COMP%]{color:#fff}.popup[_ngcontent-%COMP%]{display:flex;position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0006;z-index:10000}@media screen and (max-width: 800px){.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%]{position:fixed!important;left:0!important;top:0!important;height:100vh!important;width:100vw!important;border-radius:0!important}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%]{padding-top:35%;border-radius:50px!important}}.popup-content[_ngcontent-%COMP%]{margin:7% auto;display:flex;width:500px;height:600px;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%]{width:500px;height:600px;position:relative;border-radius:50px 5px;background-color:#1e90ff;overflow:hidden}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%]{position:absolute;border-radius:50px 5px;inset:4px;background-color:var(--fmode-background-primary);z-index:1}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .logo-img-login[_ngcontent-%COMP%]{margin-top:35px;position:relative;width:100%;display:flex;justify-content:center;z-index:2}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .logo-img-login[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:auto;max-width:150px}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .close-icon-box[_ngcontent-%COMP%]{position:relative;top:20px;right:20px;float:right;font-size:20px;cursor:pointer;z-index:2}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .button-box[_ngcontent-%COMP%]{display:flex;justify-content:center;padding-top:32px;padding-right:59px;padding-left:59px;border-radius:10px;width:100%;height:72px}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .button-box[_ngcontent-%COMP%] .button-group[_ngcontent-%COMP%]{position:relative;display:flex;width:100%;line-height:40px;border-radius:10px;background-color:plum;z-index:2}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .button-box[_ngcontent-%COMP%] .login-select-button[_ngcontent-%COMP%]{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#fff;background-color:inherit;transition:background-color .3s}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .button-box[_ngcontent-%COMP%] .login-select-button[_ngcontent-%COMP%]:hover{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#000;background-color:inherit;transition:background-color .3s}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .button-box[_ngcontent-%COMP%] .login-select-button.active[_ngcontent-%COMP%]{background-color:var(--fmode-color-primary);border-radius:10px}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{color:#000}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%], .popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%], .popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .wechat-form[_ngcontent-%COMP%]{display:none}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .message-form.active[_ngcontent-%COMP%], .popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .mobile-form.active[_ngcontent-%COMP%], .popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%] .popup-box-content[_ngcontent-%COMP%] .wechat-form.active[_ngcontent-%COMP%]{display:block}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%]:before{content:\\\"\\\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#f902ff,#f902ff);transform-origin:bottom right;animation:_ngcontent-%COMP%_animate 6s linear infinite}.popup-content[_ngcontent-%COMP%] .popup-box[_ngcontent-%COMP%]:after{content:\\\"\\\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#00dbde,#00dbde);transform-origin:bottom right;animation:_ngcontent-%COMP%_animate 6s linear infinite;animation-delay:-3s}@keyframes _ngcontent-%COMP%_animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popup-content[_ngcontent-%COMP%] .login-submit-box[_ngcontent-%COMP%]{position:relative}.popup-content[_ngcontent-%COMP%] .login-submit-button[_ngcontent-%COMP%]{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content[_ngcontent-%COMP%] .login-submit-button[_ngcontent-%COMP%]:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\\\"\\\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content[_ngcontent-%COMP%] .login-submit-button[_ngcontent-%COMP%]:hover{color:var(--fmode-color-primary)}.popup-content[_ngcontent-%COMP%] .login-submit-button[_ngcontent-%COMP%]:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content[_ngcontent-%COMP%] .login-submit-button[_ngcontent-%COMP%]:active{transform:scale(.9)}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%]{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .login-input-box[_ngcontent-%COMP%]{display:flex;align-items:center;padding-top:10px}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .login-input-box[_ngcontent-%COMP%] .popup-input-frontnumber[_ngcontent-%COMP%]{padding:6px 12px;position:relative;border-radius:10px 0 0 10px;line-height:40px;font-size:18px;color:#4d4d4d;background-color:#ededed}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .popup-input-itemone[_ngcontent-%COMP%]{padding:6px 12px;position:relative;line-height:40px;border-radius:0 10px 10px 0;border:0;width:93%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .popup-input-itemtwo[_ngcontent-%COMP%]{padding:6px 12px 6px 16px;position:relative;line-height:40px;border-radius:10px;border:0;width:55%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .checknumber-button[_ngcontent-%COMP%]{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;color:#fff;background:var(--fmode-color-primary)}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .checknumber-button[_ngcontent-%COMP%]:hover{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;background:#4bace9}.popup-content[_ngcontent-%COMP%] .message-form[_ngcontent-%COMP%] .checknumber-button.active[_ngcontent-%COMP%]{background:#c7c7c7}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%]{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .login-input-box[_ngcontent-%COMP%]{padding-top:10px}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .login-input-box[_ngcontent-%COMP%] .popup-input-itemnomal[_ngcontent-%COMP%]{margin-top:20px;padding:6px 12px 6px 14px;position:relative;line-height:40px;border-radius:10px;border:0;width:100%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .rule-box[_ngcontent-%COMP%]{display:flex;padding-top:4px;padding-left:15px;padding-right:10px;justify-content:space-between;font-size:15px}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .rule-box[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .rule-box[_ngcontent-%COMP%] ion-checkbox[_ngcontent-%COMP%]{font-size:15px;color:var(--fmode-color-primary)}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .passwprd-box[_ngcontent-%COMP%]{display:flex;padding-top:4px;justify-content:space-between}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .passwprd-box[_ngcontent-%COMP%] .remember-password-box[_ngcontent-%COMP%]{margin:10px 0 0 15px;font-size:15px}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .passwprd-box[_ngcontent-%COMP%] .password-forget[_ngcontent-%COMP%]{margin-top:10px;margin-right:15px;font-size:15px;color:gray;cursor:pointer}.popup-content[_ngcontent-%COMP%] .mobile-form[_ngcontent-%COMP%] .passwprd-box[_ngcontent-%COMP%] .password-forget[_ngcontent-%COMP%]:hover{margin-top:10px;margin-right:15px;font-size:15px;color:#000;cursor:pointer}.popup-content[_ngcontent-%COMP%] .wechat-form[_ngcontent-%COMP%]{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content[_ngcontent-%COMP%] .wechat-form[_ngcontent-%COMP%] .wechat-login-box[_ngcontent-%COMP%]{display:flex;justify-content:center}.popup-content[_ngcontent-%COMP%] .wechat-form[_ngcontent-%COMP%] .wechat-login-box[_ngcontent-%COMP%] .login-erweima-img[_ngcontent-%COMP%]{margin-top:30px;width:210px}.popup-content[_ngcontent-%COMP%] .wechat-form[_ngcontent-%COMP%] .wechat-explain[_ngcontent-%COMP%]{padding-top:20px;font-size:16px;text-align:center}.popup-content[_ngcontent-%COMP%] .back-home-box[_ngcontent-%COMP%]{display:flex;justify-content:center;padding:6px 55px}.popup-content[_ngcontent-%COMP%] .back-homepage-button[_ngcontent-%COMP%]{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content[_ngcontent-%COMP%] .back-homepage-button[_ngcontent-%COMP%]:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\\\"\\\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content[_ngcontent-%COMP%] .back-homepage-button[_ngcontent-%COMP%]:hover{color:var(--fmode-color-primary)}.popup-content[_ngcontent-%COMP%] .back-homepage-button[_ngcontent-%COMP%]:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content[_ngcontent-%COMP%] .local-code[_ngcontent-%COMP%]{justify-content:space-between}.popup-content[_ngcontent-%COMP%] .local-code[_ngcontent-%COMP%] .canvas[_ngcontent-%COMP%]{border:1px solid #c2def5;border-radius:5px;width:100px;height:44px}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ModalUserLoginComponent, [{\n type: Component,\n args: [{\n standalone: !0,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, IonCheckbox],\n selector: \"fm-modal-user-login\",\n template: '\\x3c!--登录弹出框设置--\\x3e\\n\\x3c!--背景灰色蒙版--\\x3e\\n<div\\n class=\"popup\"\\n [style.display]=\"authServ.isModalShow ? \\'block\\' : \\'none\\'\"\\n (click)=\"close()\"\\n>\\n <div class=\"popup-content\" (click)=\"$event.stopPropagation()\">\\n <div class=\"popup-box\">\\n \\x3c!--弹框内设置position:absolute,规范排版,后续只需position:relative增减内容--\\x3e\\n <div class=\"popup-box-content\">\\n <div class=\"logo-img-login\">\\n <img\\n [src]=\"authServ.logoUrl\"\\n alt=\"fmode\"\\n />\\n </div>\\n\\n \\x3c!--关闭图标按钮--\\x3e\\n <div class=\"close-icon-box\">\\n <div class=\"iconfont icon-shanchu2\" (click)=\"close()\"></div>\\n </div>\\n\\n \\x3c!--按钮切换登录方式--\\x3e\\n <div class=\"button-box\" *ngIf=\"authServ?.loginTypeCount>1\">\\n <div class=\"button-group\">\\n <button *ngIf=\"authServ?.loginOptions?.userpwd\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'账号密码\\'\"\\n (click)=\"setActiveButton(\\'账号密码\\')\"\\n >\\n 账号密码\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.mobilecode\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'短信验证\\'\"\\n (click)=\"setActiveButton(\\'短信验证\\')\"\\n >\\n 短信验证\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.wechat\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'微信扫码\\'\"\\n (click)=\"setActiveButton(\\'微信扫码\\')\"\\n >\\n 微信扫码\\n </button>\\n </div>\\n </div>\\n\\n \\x3c!--手机验证码--\\x3e\\n <form class=\"message-form\" [class.active]=\"authServ.activeButton === \\'短信验证\\'\" *ngIf=\"authServ?.loginOptions?.mobilecode\">\\n <div class=\"login-input-box\">\\n <div class=\"popup-input-frontnumber\">+86</div>\\n <input\\n class=\"popup-input-itemone\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"loginInfo.mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"12\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n <div *ngIf=\"authServ?.enabledLocalCode\"\\n class=\"login-input-box local-code\" #canvasDom>\\n <input\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"localCodeNum\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"4\"\\n placeholder=\"请输入校验码\"\\n />\\n \\x3c!-- <canvas\\n #canvas\\n width=\"100\"\\n height=\"44\"\\n (click)=\"updateDrawCode()\"\\n class=\"canvas\"\\n ></canvas> --\\x3e\\n </div>\\n <div class=\"login-input-box\">\\n <input #smsCodeInput\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入短信验证码\"\\n [(ngModel)]=\"loginInfo.code\"\\n (change)=\"smsAutoLogin()\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"6\"\\n />\\n <button\\n class=\"checknumber-button\"\\n type=\"submit\"\\n [value]=\"buttonText\"\\n [disabled]=\"isCountingdown\"\\n (click)=\"startCountdown()\"\\n [class.active]=\"isCountingdown\"\\n >\\n {{buttonText}}\\n </button>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>未注册的手机号,将自动创建帐号并登录。</span>\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button class=\"login-submit-button\" type=\"submit\" (click)=\"login()\">\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--账号密码登录--\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'账号密码\\'\" *ngIf=\"authServ?.loginOptions?.userpwd\">\\n <div class=\"login-input-box\">\\n <input\\n maxlength=\"12\"\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n \\x3c!-- 记住密码 --\\x3e\\n <div class=\"passwprd-box\">\\n <div class=\"remember-password-box\">\\n <input type=\"checkbox\" id=\"remember-password\" />\\n 记住密码\\n </div>\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n <div class=\"password-forget\" (click)=\"setActiveButton(\\'注册帐号\\')\">\\n 注册帐号\\n </div>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>\\n <input type=\"checkbox\" [(ngModel)]=\"isUserRuleChecked\" [ngModelOptions]=\"{ standalone: true }\" style=\"margin-right:5px\"/>\\n <span (click)=\"isUserRuleChecked=true\">同意</span></span>\\n <span (click)=\"isUserRuleChecked=true\">《用户协议及隐私条款》</span>\\n </div>\\n\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n \\x3c!-- <div class=\"password-forget\">忘记密码?</div>\\n </div> --\\x3e\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"loginMobilePassword()\"\\n >\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!-- 帐号密码注册 --\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'注册帐号\\'\">\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password2\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请再次输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"signMobilePassword()\"\\n >\\n 注册\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--微信扫码登陆--\\x3e\\n <form class=\"wechat-form\" [class.active]=\"authServ.activeButton === \\'微信扫码\\'\" *ngIf=\"authServ?.loginOptions?.wechat\">\\n <div class=\"wechat-login-box\">\\n <img\\n class=\"login-erweima-img\"\\n [src]=\"authServ.wechatUrl\"\\n alt=\"微信扫码登陆二维码\"\\n />\\n </div>\\n <div class=\"wechat-explain\">使用微信扫一扫,扫码登录 \"飞码AI\"</div>\\n </form>\\n\\n \\x3c!--返回首页--\\x3e\\n <div class=\"back-home-box\" *ngIf=\"authServ.showBackHome\">\\n <button class=\"back-homepage-button\" (click)=\"goHome()\">\\n 返回首页\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n',\n styles: ['@charset \"UTF-8\";:host{--fmode-color-primary: #0199f9;--fmode-background-primary: #FFF}:host-context(body.dark) .popup{--fmode-color-primary: #7974ff;--fmode-background-primary: #000000}:host-context(body.dark) .popup .remember-password-box{color:#fff}.popup{display:flex;position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0006;z-index:10000}@media screen and (max-width: 800px){.popup-content .popup-box{position:fixed!important;left:0!important;top:0!important;height:100vh!important;width:100vw!important;border-radius:0!important}.popup-content .popup-box .popup-box-content{padding-top:35%;border-radius:50px!important}}.popup-content{margin:7% auto;display:flex;width:500px;height:600px;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .popup-box{width:500px;height:600px;position:relative;border-radius:50px 5px;background-color:#1e90ff;overflow:hidden}.popup-content .popup-box .popup-box-content{position:absolute;border-radius:50px 5px;inset:4px;background-color:var(--fmode-background-primary);z-index:1}.popup-content .popup-box .popup-box-content .logo-img-login{margin-top:35px;position:relative;width:100%;display:flex;justify-content:center;z-index:2}.popup-content .popup-box .popup-box-content .logo-img-login img{height:auto;max-width:150px}.popup-content .popup-box .popup-box-content .close-icon-box{position:relative;top:20px;right:20px;float:right;font-size:20px;cursor:pointer;z-index:2}.popup-content .popup-box .popup-box-content .button-box{display:flex;justify-content:center;padding-top:32px;padding-right:59px;padding-left:59px;border-radius:10px;width:100%;height:72px}.popup-content .popup-box .popup-box-content .button-box .button-group{position:relative;display:flex;width:100%;line-height:40px;border-radius:10px;background-color:plum;z-index:2}.popup-content .popup-box .popup-box-content .button-box .login-select-button{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#fff;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button:hover{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#000;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button.active{background-color:var(--fmode-color-primary);border-radius:10px}.popup-content .popup-box .popup-box-content input{color:#000}.popup-content .popup-box .popup-box-content .message-form,.popup-content .popup-box .popup-box-content .mobile-form,.popup-content .popup-box .popup-box-content .wechat-form{display:none}.popup-content .popup-box .popup-box-content .message-form.active,.popup-content .popup-box .popup-box-content .mobile-form.active,.popup-content .popup-box .popup-box-content .wechat-form.active{display:block}.popup-content .popup-box:before{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#f902ff,#f902ff);transform-origin:bottom right;animation:animate 6s linear infinite}.popup-content .popup-box:after{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#00dbde,#00dbde);transform-origin:bottom right;animation:animate 6s linear infinite;animation-delay:-3s}@keyframes animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popup-content .login-submit-box{position:relative}.popup-content .login-submit-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .login-submit-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .login-submit-button:hover{color:var(--fmode-color-primary)}.popup-content .login-submit-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .login-submit-button:active{transform:scale(.9)}.popup-content .message-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .message-form .login-input-box{display:flex;align-items:center;padding-top:10px}.popup-content .message-form .login-input-box .popup-input-frontnumber{padding:6px 12px;position:relative;border-radius:10px 0 0 10px;line-height:40px;font-size:18px;color:#4d4d4d;background-color:#ededed}.popup-content .message-form .popup-input-itemone{padding:6px 12px;position:relative;line-height:40px;border-radius:0 10px 10px 0;border:0;width:93%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .popup-input-itemtwo{padding:6px 12px 6px 16px;position:relative;line-height:40px;border-radius:10px;border:0;width:55%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .checknumber-button{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;color:#fff;background:var(--fmode-color-primary)}.popup-content .message-form .checknumber-button:hover{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;background:#4bace9}.popup-content .message-form .checknumber-button.active{background:#c7c7c7}.popup-content .mobile-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .mobile-form .login-input-box{padding-top:10px}.popup-content .mobile-form .login-input-box .popup-input-itemnomal{margin-top:20px;padding:6px 12px 6px 14px;position:relative;line-height:40px;border-radius:10px;border:0;width:100%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .mobile-form .rule-box{display:flex;padding-top:4px;padding-left:15px;padding-right:10px;justify-content:space-between;font-size:15px}.popup-content .mobile-form .rule-box span,.popup-content .mobile-form .rule-box ion-checkbox{font-size:15px;color:var(--fmode-color-primary)}.popup-content .mobile-form .passwprd-box{display:flex;padding-top:4px;justify-content:space-between}.popup-content .mobile-form .passwprd-box .remember-password-box{margin:10px 0 0 15px;font-size:15px}.popup-content .mobile-form .passwprd-box .password-forget{margin-top:10px;margin-right:15px;font-size:15px;color:gray;cursor:pointer}.popup-content .mobile-form .passwprd-box .password-forget:hover{margin-top:10px;margin-right:15px;font-size:15px;color:#000;cursor:pointer}.popup-content .wechat-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .wechat-form .wechat-login-box{display:flex;justify-content:center}.popup-content .wechat-form .wechat-login-box .login-erweima-img{margin-top:30px;width:210px}.popup-content .wechat-form .wechat-explain{padding-top:20px;font-size:16px;text-align:center}.popup-content .back-home-box{display:flex;justify-content:center;padding:6px 55px}.popup-content .back-homepage-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .back-homepage-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .back-homepage-button:hover{color:var(--fmode-color-primary)}.popup-content .back-homepage-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .local-code{justify-content:space-between}.popup-content .local-code .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:44px}\\n']\n }]\n }], () => [{\n type: i4.NzMessageService\n }, {\n type: AuthService\n }, {\n type: i1$1.Router\n }, {\n type: i1.HttpClient\n }, {\n type: i2$3.ToastController\n }], {\n canvasDom: [{\n type: ViewChild,\n args: [\"canvasDom\"]\n }],\n smsCodeInput: [{\n type: ViewChild,\n args: [\"smsCodeInput\"]\n }],\n handleEscapeKey: [{\n type: HostListener,\n args: [\"document:keydown.escape\", [\"$event\"]]\n }]\n });\n})();\nclass CaptchaComponent {\n constructor() {\n this.type = \"input\", this.canvas_id = \"canvasCode\", this.drawCode = [], this.vCode = \"\", this.changeVal = new EventEmitter(), this.onEnter = new EventEmitter(), this.code = \"\";\n }\n ngOnInit() {}\n ngAfterViewInit() {\n this.updateDrawCode();\n }\n updateDrawCode() {\n let e = 100,\n t = document.getElementById(this.canvas_id);\n t && this.canvasDom.nativeElement.removeChild(t);\n let n = document.getElementById(this.canvas_id + \"_a\");\n n && this.canvasDom.nativeElement.removeChild(n), this.canvasDom.nativeElement;\n let o = document.createElement(\"canvas\");\n o.className = \"canvas\", o.setAttribute(\"id\", this.canvas_id), o.addEventListener(\"click\", () => {\n this.updateDrawCode();\n });\n let i = o.getContext(\"2d\");\n o.width = e, o.height = 38;\n let a = \"A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m\".split(\",\"),\n r = a.length;\n for (let e = 0; e <= 3; e++) {\n let t = Math.floor(Math.random() * r),\n n = 30 * Math.random() * Math.PI / 180,\n o = a[t];\n this.drawCode[e] = o;\n let s = 10 + 20 * e,\n l = 20 + 8 * Math.random();\n i.font = \"bold 23px 微软雅黑\", i.translate(s, l), i.rotate(n), i.fillStyle = this.randomColor(), i.fillText(o, 0, 0), i.rotate(-n), i.translate(-s, -l);\n }\n for (let t = 0; t <= 5; t++) i.strokeStyle = this.randomColor(), i.beginPath(), i.moveTo(Math.random() * e, 38 * Math.random()), i.lineTo(Math.random() * e, 38 * Math.random()), i.stroke();\n for (let t = 0; t <= 30; t++) {\n i.strokeStyle = this.randomColor(), i.beginPath();\n let t = Math.random() * e,\n n = 38 * Math.random();\n i.moveTo(t, n), i.lineTo(t + 1, n + 1), i.stroke();\n }\n this.code = this.drawCode.join(\"\"), this.changeVal.emit({\n code: this.code,\n vCode: this.vCode\n }), this.canvasDom.nativeElement.appendChild(o);\n let s = document.createElement(\"a\");\n s.setAttribute(\"id\", this.canvas_id + \"_a\"), s.innerText = \"看不清,换一张\", s.addEventListener(\"click\", () => {\n this.updateDrawCode();\n }), this.canvasDom.nativeElement.appendChild(s);\n }\n randomColor() {\n return \"rgb(\" + Math.floor(256 * Math.random()) + \",\" + Math.floor(256 * Math.random()) + \",\" + Math.floor(256 * Math.random()) + \")\";\n }\n enter(e) {\n 13 == e.keyCode && (this.changeVal.emit({\n code: this.code,\n vCode: this.vCode\n }), this.onEnter.emit());\n }\n onChange() {\n this.changeVal.emit({\n code: this.code,\n vCode: this.vCode\n });\n }\n}\n_CaptchaComponent = CaptchaComponent;\n_CaptchaComponent.ɵfac = function _CaptchaComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _CaptchaComponent)();\n};\n_CaptchaComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _CaptchaComponent,\n selectors: [[\"fm-captcha\"]],\n viewQuery: function _CaptchaComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c21, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.canvasDom = _t.first);\n }\n },\n inputs: {\n type: \"type\",\n canvas_id: \"canvas_id\",\n drawCode: \"drawCode\",\n vCode: \"vCode\"\n },\n outputs: {\n changeVal: \"changeVal\",\n onEnter: \"onEnter\"\n },\n standalone: true,\n features: [i0.ɵɵStandaloneFeature],\n decls: 3,\n vars: 2,\n consts: [[\"elseTemplate\", \"\"], [\"canvasDom\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"captcha\"], [\"nz-input\", \"\", \"type\", \"text\", \"maxlength\", \"4\", \"placeholder\", \"\\u9A8C\\u8BC1\\u7801\", 1, \"code-input\", 3, \"ngModelChange\", \"keydown\", \"change\", \"ngModel\", \"nzStatus\"], [1, \"code-card\"]],\n template: function _CaptchaComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _CaptchaComponent_ng_container_0_Template, 5, 2, \"ng-container\", 2)(1, _CaptchaComponent_ng_template_1_Template, 3, 0, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const elseTemplate_r3 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", ctx.type == \"input\")(\"ngIfElse\", elseTemplate_r3);\n }\n },\n dependencies: [CommonModule, i2$2.NgIf, FormsModule, i7.DefaultValueAccessor, i7.NgControlStatus, i7.MaxLengthValidator, i7.NgModel],\n styles: [\".code-card[_ngcontent-%COMP%]{display:flex;align-items:center}.code-card[_ngcontent-%COMP%] .canvas[_ngcontent-%COMP%]{border:1px solid #c2def5;border-radius:5px;width:100px;height:38px}.code-input[_ngcontent-%COMP%]{width:90px;padding:4px;height:38px;border:1px solid #cdcdcd}.code-input[_ngcontent-%COMP%]:focus{outline:1px solid #40a9ff}.captcha[_ngcontent-%COMP%]{display:flex;align-items:center}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CaptchaComponent, [{\n type: Component,\n args: [{\n imports: [CommonModule, FormsModule],\n standalone: !0,\n selector: \"fm-captcha\",\n template: '<ng-container *ngIf=\"type == \\'input\\'; else elseTemplate\">\\n <div class=\"captcha\">\\n <input\\n nz-input\\n class=\"code-input\"\\n type=\"text\"\\n [(ngModel)]=\"vCode\"\\n maxlength=\"4\"\\n placeholder=\"验证码\"\\n [nzStatus]=\"vCode.length == 4 ? \\'\\' : \\'error\\'\"\\n (keydown)=\"enter($event)\"\\n (change)=\"onChange()\"\\n />\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"captcha\">\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-template>\\n',\n styles: [\".code-card{display:flex;align-items:center}.code-card .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:38px}.code-input{width:90px;padding:4px;height:38px;border:1px solid #cdcdcd}.code-input:focus{outline:1px solid #40a9ff}.captcha{display:flex;align-items:center}\\n\"]\n }]\n }], () => [], {\n canvasDom: [{\n type: ViewChild,\n args: [\"canvasDom\"]\n }],\n type: [{\n type: Input\n }],\n canvas_id: [{\n type: Input\n }],\n drawCode: [{\n type: Input\n }],\n vCode: [{\n type: Input\n }],\n changeVal: [{\n type: Output\n }],\n onEnter: [{\n type: Output\n }]\n });\n})();\nclass UserNamePipe {\n transform(e, ...t) {\n var _n, _n2, _n3, _n4, _n5;\n let n = e;\n if ((_n = n) !== null && _n !== void 0 && _n.mobile || (n = e === null || e === void 0 ? void 0 : e.toJSON()), console.log(n), (_n2 = n) !== null && _n2 !== void 0 && _n2.nickname) return (_n3 = n) === null || _n3 === void 0 ? void 0 : _n3.nickname;\n let o = (_n4 = n) === null || _n4 === void 0 ? void 0 : _n4.name;\n if (o) return o.substr(0, 1) + \"*\".repeat((o === null || o === void 0 ? void 0 : o.length) - 1);\n let i = (_n5 = n) === null || _n5 === void 0 ? void 0 : _n5.mobile;\n return i ? i.substr(0, 3) + \"*\".repeat((i === null || i === void 0 ? void 0 : i.length) - 6) + i.substr((i === null || i === void 0 ? void 0 : i.length) - 3) : \"\";\n }\n}\n_UserNamePipe = UserNamePipe;\n_UserNamePipe.ɵfac = function _UserNamePipe_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _UserNamePipe)();\n};\n_UserNamePipe.ɵpipe = /* @__PURE__ */i0.ɵɵdefinePipe({\n name: \"userName\",\n type: _UserNamePipe,\n pure: true\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UserNamePipe, [{\n type: Pipe,\n args: [{\n name: \"userName\"\n }]\n }], null, null);\n})();\nconst UserRoutes = [{\n path: \"login\",\n component: LoginComponent,\n runGuardsAndResolvers: \"always\"\n}, {\n path: \":companyId/login\",\n component: LoginComponent,\n runGuardsAndResolvers: \"always\"\n}, {\n path: \"app/:appId/login\",\n component: LoginComponent,\n runGuardsAndResolvers: \"always\"\n}];\nclass UserModule {}\n_UserModule = UserModule;\n_UserModule.ɵfac = function _UserModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _UserModule)();\n};\n_UserModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _UserModule\n});\n_UserModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, FormsModule, HttpClientModule, ReactiveFormsModule, RouterModule.forChild(UserRoutes), NzInputModule, NzButtonModule, NzModalModule, NzRadioModule, NzSpinModule, NzTabsModule, NzFormModule, NzMessageModule, ModalUserLoginComponent, CaptchaComponent]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(UserModule, [{\n type: NgModule,\n args: [{\n declarations: [LoginComponent, UserNamePipe],\n imports: [CommonModule, FormsModule, HttpClientModule, ReactiveFormsModule, RouterModule.forChild(UserRoutes), NzInputModule, NzButtonModule, NzModalModule, NzRadioModule, NzSpinModule, NzTabsModule, NzFormModule, NzMessageModule, ModalUserLoginComponent, CaptchaComponent],\n exports: [LoginComponent, ModalUserLoginComponent, UserNamePipe, CaptchaComponent]\n }]\n }], null, null);\n})();\nclass StaffModule {}\n_StaffModule = StaffModule;\n_StaffModule.ɵfac = function _StaffModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _StaffModule)();\n};\n_StaffModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _StaffModule\n});\n_StaffModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StaffModule, [{\n type: NgModule,\n args: [{\n declarations: [],\n imports: [CommonModule]\n }]\n }], null, null);\n})();\nclass StaffService {\n constructor(e) {\n this.router = e, this.isPeiZhu = !1, this.checkIsPeiZhu();\n }\n checkStaff() {\n var _this129 = this;\n return _asyncToGenerator(function* () {\n var _this129$staff, _this129$staff2;\n if ((_this129$staff = _this129.staff) !== null && _this129$staff !== void 0 && _this129$staff.id || (_this129.staff = yield _this129.loadStaffByUser()), (_this129$staff2 = _this129.staff) !== null && _this129$staff2 !== void 0 && _this129$staff2.id) return !0;\n console.log(_this129.staff);\n let e = _this129.redirectURL;\n return e && (e = encodeURIComponent(e)), e = e || \"/store/home\", _this129.router.navigate([e]), !1;\n })();\n }\n loadStaffByUser(e = !1) {\n var _this130 = this;\n return _asyncToGenerator(function* () {\n var _o, _o2, _o3;\n let t = Parse__default.User.current();\n if (!(t !== null && t !== void 0 && t.id)) return;\n let n = localStorage.getItem(\"staffid\");\n e && (n = null);\n let o,\n i = new Parse__default.Query(\"UserStaff\");\n return i.include(\"job\", \"shopStore\"), n && (i.equalTo(\"objectId\", n), o = yield i.first()), (_o = o) !== null && _o !== void 0 && _o.id || (i.equalTo(\"user\", t === null || t === void 0 ? void 0 : t.id), o = yield i.first()), (_o2 = o) !== null && _o2 !== void 0 && _o2.id && localStorage.setItem(\"staffid\", (_o3 = o) === null || _o3 === void 0 ? void 0 : _o3.id), e && (_this130.realStaff = o), o;\n })();\n }\n checkIsPeiZhu() {\n var _this131 = this;\n return _asyncToGenerator(function* () {\n var _this131$realStaff;\n _this131.realStaff || (_this131.realStaff = yield _this131.loadStaffByUser(!0)), \"配件助理\" != ((_this131$realStaff = _this131.realStaff) === null || _this131$realStaff === void 0 || (_this131$realStaff = _this131$realStaff.get(\"job\")) === null || _this131$realStaff === void 0 ? void 0 : _this131$realStaff.get(\"title\")) ? _this131.isPeiZhu = !1 : _this131.isPeiZhu = !0;\n })();\n }\n peizhuJob(e) {\n var _e$jobs;\n return !this.isPeiZhu || !!(this.isPeiZhu && ((_e$jobs = e.jobs) === null || _e$jobs === void 0 ? void 0 : _e$jobs.indexOf(\"配件助理\")) > -1);\n }\n}\n_StaffService = StaffService;\n_StaffService.ɵfac = function _StaffService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _StaffService)(i0.ɵɵinject(i1$1.Router));\n};\n_StaffService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _StaffService,\n factory: _StaffService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(StaffService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1$1.Router\n }], null);\n})();\nclass AuthStaffGuard {\n constructor(e) {\n this.staffServ = e;\n }\n canActivate(e, t) {\n return this.staffServ.checkStaff();\n }\n}\n_AuthStaffGuard = AuthStaffGuard;\n_AuthStaffGuard.ɵfac = function _AuthStaffGuard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AuthStaffGuard)(i0.ɵɵinject(StaffService));\n};\n_AuthStaffGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AuthStaffGuard,\n factory: _AuthStaffGuard.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AuthStaffGuard, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: StaffService\n }], null);\n})();\nclass AuthProfileService {\n get profileId() {\n return this._profileId ? this._profileId : localStorage.getItem(\"Parse/ProfileId\");\n }\n set profileId(e) {\n this._profileId = e, localStorage.setItem(\"Parse/ProfileId\", e);\n }\n get profilePointer() {\n return {\n __type: \"Pointer\",\n className: \"Profile\",\n objectId: this.companyId\n };\n }\n get companyId() {\n return this._companyId ? this._companyId : localStorage.getItem(\"Parse/CompanyId\");\n }\n set companyId(e) {\n this._companyId = e, localStorage.setItem(\"Parse/CompanyId\", e);\n }\n get companyPointer() {\n return {\n __type: \"Pointer\",\n className: \"company\",\n objectId: this.companyId\n };\n }\n get user() {\n return this._user || Parse__default.User.current();\n }\n set user(e) {\n this._user = e;\n }\n constructor(e) {\n this.router = e, this.user = Parse__default.User.current();\n }\n getProfile() {\n var _this132 = this;\n return _asyncToGenerator(function* () {\n var _this132$profile;\n if ((_this132$profile = _this132.profile) !== null && _this132$profile !== void 0 && _this132$profile.id) return _this132.profile;\n if (_this132.profileId) {\n let e = new Parse__default.Query(\"Profile\");\n return e.include(\"company\"), _this132.profile = yield e.get(_this132.profileId), _this132.profile;\n }\n return _this132.profile;\n })();\n }\n bindProfile(e) {\n var _this133 = this;\n return _asyncToGenerator(function* () {\n var _e$get11, _e$get12, _this133$user, _e$get13, _e$get14;\n _this133.profile = e, _this133.profileId = e.id, e !== null && e !== void 0 && (_e$get11 = e.get(\"company\")) !== null && _e$get11 !== void 0 && _e$get11.id && (_this133.companyId = e === null || e === void 0 || (_e$get12 = e.get(\"company\")) === null || _e$get12 === void 0 ? void 0 : _e$get12.id), console.log(e, _this133.user), _this133.profile.set(\"user\", (_this133$user = _this133.user) === null || _this133$user === void 0 ? void 0 : _this133$user.toPointer()), yield _this133.profile.save(), console.log(localStorage.getItem(\"homePath\")), console.log(e === null || e === void 0 || (_e$get13 = e.get(\"company\")) === null || _e$get13 === void 0 ? void 0 : _e$get13.get(\"rootPage\"));\n let t = localStorage.getItem(\"homePath\") || (e === null || e === void 0 || (_e$get14 = e.get(\"company\")) === null || _e$get14 === void 0 ? void 0 : _e$get14.get(\"rootPage\")) || _this133.redirectUrl || \"/\";\n t = decodeURIComponent(t), _this133.router.navigate([t]);\n })();\n }\n checkProfile(e) {\n var _this134 = this;\n return _asyncToGenerator(function* () {\n var _t12;\n let t = _this134.profile;\n if ((_t12 = t) !== null && _t12 !== void 0 && _t12.id) return _this134.setCurrentProfileLocalStorage(t), !0;\n if (_this134.profileId) {\n var _t13;\n let e = new Parse__default.Query(\"Profile\");\n return e.include(\"company\"), t = yield e.get(_this134.profileId), (_t13 = t) !== null && _t13 !== void 0 && _t13.id && (_this134.profile = t, _this134.setCurrentProfileLocalStorage(t)), !0;\n }\n return _this134.redirectUrl = e, _this134.router.navigate([\"/profile/bind\"]), !1;\n })();\n }\n setCurrentProfileLocalStorage(e) {\n var _this135 = this;\n return _asyncToGenerator(function* () {\n let t = Parse__default.Query.fromJSON(\"Department\", {\n where: {\n $or: [{\n leader: e.toPointer()\n }]\n }\n });\n (yield t.find()).forEach(e => {\n (e === null || e === void 0 ? void 0 : e.id) && (_this135.isManager = !0, _this135.isLeader = !0);\n });\n })();\n }\n}\n_AuthProfileService = AuthProfileService;\n_AuthProfileService.ɵfac = function _AuthProfileService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AuthProfileService)(i0.ɵɵinject(i1$1.Router));\n};\n_AuthProfileService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AuthProfileService,\n factory: _AuthProfileService.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AuthProfileService, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: i1$1.Router\n }], null);\n})();\nclass AuthProfileGuard {\n constructor(e, t) {\n this.authProfileServ = e, this.router = t;\n }\n canActivate(e, t) {\n let n = t.url;\n return this.authProfileServ.checkProfile(n);\n }\n}\n_AuthProfileGuard = AuthProfileGuard;\n_AuthProfileGuard.ɵfac = function _AuthProfileGuard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AuthProfileGuard)(i0.ɵɵinject(AuthProfileService), i0.ɵɵinject(i1$1.Router));\n};\n_AuthProfileGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AuthProfileGuard,\n factory: _AuthProfileGuard.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AuthProfileGuard, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: AuthProfileService\n }, {\n type: i1$1.Router\n }], null);\n})();\nclass ProfileBindComponent {\n onResize() {\n this.cross.onResizeScreen();\n }\n constructor(e, t, n, o, i) {\n this.authProfile = e, this.router = t, this.modal = n, this.message = o, this.cross = i, this.pdata = {\n name: null,\n mobile: null\n }, this.now = new Date(), this.isVisible = !1, this.profile = this.authProfile.profile, this.currentProfile = localStorage.getItem(\"Parse/ProfileId\"), this.user = Parse__default.User.current(), this.loadProfiles();\n }\n loadProfiles() {\n var _this136 = this;\n return _asyncToGenerator(function* () {\n var _this136$profile;\n let e = new Parse__default.Query(\"Profile\");\n e.include(\"company\"), e.notEqualTo(\"isDeleted\", !0), (_this136$profile = _this136.profile) !== null && _this136$profile !== void 0 && _this136$profile.id ? (e.equalTo(\"mobile\", _this136.profile.get(\"mobile\")), e.equalTo(\"name\", _this136.profile.get(\"name\"))) : e.equalTo(\"user\", _this136.user.id), _this136.profileList = yield e.find();\n })();\n }\n bindProfile(e) {\n var _e20, _e21;\n (_e20 = e) !== null && _e20 !== void 0 && _e20.id || (e = this.profileSearched), ((_e21 = e) === null || _e21 === void 0 ? void 0 : _e21.id) && (this.isVisible = !1, this.authProfile.bindProfile(e));\n }\n searchProfile() {\n var _this137 = this;\n return _asyncToGenerator(function* () {\n var _this137$profileList;\n if (_this137.profileList = [], !_this137.pdata.name || !_this137.pdata.mobile) return void _this137.message.warning(\"请填写完成信息,以查询您的身份。\");\n let e = new Parse__default.Query(\"Profile\");\n e.include(\"company\"), e.equalTo(\"name\", _this137.pdata.name), e.equalTo(\"mobile\", _this137.pdata.mobile), _this137.profileList = yield e.find(), ((_this137$profileList = _this137.profileList) === null || _this137$profileList === void 0 ? void 0 : _this137$profileList.length) < 1 && _this137.message.warning(\"该身份不存在,无法绑定!\");\n })();\n }\n selectProfile(e) {\n (e === null || e === void 0 ? void 0 : e.id) && (this.profileSearched = e, this.isVisible = !0);\n }\n goProfileManage() {\n this.router.navigate([\"/common/manage/Profile\", {\n rid: \"x6xybaLWIC\"\n }]);\n }\n onShowModal() {\n this.modal.create({\n nzTitle: \"<div>团队成员管理</div>\",\n nzContent: \"<b>您是企业管理员,可进入添加团队成员身份</b>\",\n nzOnOk: () => this.goProfileManage()\n });\n }\n}\n_ProfileBindComponent = ProfileBindComponent;\n_ProfileBindComponent.ɵfac = function _ProfileBindComponent_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ProfileBindComponent)(i0.ɵɵdirectiveInject(AuthProfileService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i3$1.NzModalService), i0.ɵɵdirectiveInject(i4.NzMessageService), i0.ɵɵdirectiveInject(CrossService));\n};\n_ProfileBindComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: _ProfileBindComponent,\n selectors: [[\"fm-profile-bind\"]],\n hostBindings: function _ProfileBindComponent_HostBindings(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵlistener(\"resize\", function _ProfileBindComponent_resize_HostBindingHandler($event) {\n return ctx.onResize($event);\n }, false, i0.ɵɵresolveWindow);\n }\n },\n decls: 3,\n vars: 2,\n consts: [[\"elseTemplate\", \"\"], [\"prefixTemplateUser\", \"\"], [\"prefixTemplateMobile\", \"\"], [4, \"ngIf\", \"ngIfElse\"], [1, \"tips-block\"], [\"src\", \"https://file-cloud.fmode.cn/CCuWCEM24z/20231213/45hm71034653179.png\", \"alt\", \"\"], [1, \"profile-page\"], [1, \"title\"], [1, \"date\"], [\"class\", \"com-tips\", 3, \"click\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"tips\"], [\"nz-icon\", \"\", \"nzType\", \"exclamation-circle\", \"nzTheme\", \"outline\"], [1, \"user-input\"], [3, \"nzPrefix\"], [\"type\", \"text\", \"nz-input\", \"\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u60A8\\u7684\\u59D3\\u540D\", 3, \"ngModelChange\", \"ngModel\"], [\"type\", \"text\", \"nz-input\", \"\", \"placeholder\", \"\\u8BF7\\u8F93\\u5165\\u60A8\\u624B\\u673A\\u53F7\", 3, \"ngModelChange\", \"ngModel\"], [\"nz-button\", \"\", \"nzType\", \"primary\", \"nzBlock\", \"\", 3, \"click\", \"nzSize\"], [\"nzTitle\", \"\\u7ED1\\u5B9A\\u8EAB\\u4EFD\", 3, \"nzVisibleChange\", \"nzOnCancel\", \"nzOnOk\", \"nzVisible\"], [4, \"nzModalContent\"], [1, \"com-tips\", 3, \"click\"], [\"nz-icon\", \"\", \"nzType\", \"user\", \"nzTheme\", \"outline\"], [1, \"com-title\"], [1, \"com-list\"], [\"class\", \"com-li\", 3, \"ngClass\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"com-li\", 3, \"click\", \"ngClass\"], [1, \"com-name\"], [\"nz-icon\", \"\", \"nzType\", \"signal\", \"nzTheme\", \"fill\"], [\"nz-icon\", \"\", \"nzType\", \"check\", \"nzTheme\", \"outline\", 4, \"ngIf\"], [\"nz-icon\", \"\", \"nzType\", \"check\", \"nzTheme\", \"outline\"], [\"nz-icon\", \"\", \"nzType\", \"user\"], [\"nz-icon\", \"\", \"nzType\", \"mobile\", \"nzTheme\", \"outline\"]],\n template: function _ProfileBindComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, _ProfileBindComponent_ng_container_0_Template, 6, 0, \"ng-container\", 3)(1, _ProfileBindComponent_ng_template_1_Template, 30, 14, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n }\n if (rf & 2) {\n const elseTemplate_r9 = i0.ɵɵreference(2);\n i0.ɵɵproperty(\"ngIf\", (ctx.cross == null ? null : ctx.cross.navMenuType) == \"mobile\")(\"ngIfElse\", elseTemplate_r9);\n }\n },\n dependencies: [i2$2.NgClass, i2$2.NgForOf, i2$2.NgIf, i7.DefaultValueAccessor, i7.NgControlStatus, i7.NgModel, i8.NzInputDirective, i8.NzInputGroupComponent, i8.NzInputGroupWhitSuffixOrPrefixDirective, i9.NzButtonComponent, i10.ɵNzTransitionPatchDirective, i11.NzWaveDirective, i3$1.NzModalComponent, i3$1.NzModalContentDirective, i5.NzIconDirective, i2$2.DatePipe],\n styles: [\".profile-page[_ngcontent-%COMP%]{width:400px;margin:60px auto;font-family:auto}.profile-page[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:24px;font-weight:700;text-align:center;margin-bottom:40px}.profile-page[_ngcontent-%COMP%] .date[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-page[_ngcontent-%COMP%] .date[_ngcontent-%COMP%] .com-tips[_ngcontent-%COMP%]{display:flex;align-items:center;border-bottom:1px solid;color:#1890ff;cursor:pointer}.profile-page[_ngcontent-%COMP%] .date[_ngcontent-%COMP%] .com-tips[_ngcontent-%COMP%] .com-title[_ngcontent-%COMP%]{padding-left:4px}.profile-page[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-family:auto}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin:20px auto}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%] .com-li[_ngcontent-%COMP%]{margin-right:6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;min-width:200px;background:#fbfbfb;padding:6px 10px;border-radius:4px;cursor:pointer}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%] .com-li[_ngcontent-%COMP%] .com-name[_ngcontent-%COMP%]{display:flex;align-items:center;margin-right:20px}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%] .com-li[_ngcontent-%COMP%] .com-name[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:10px}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%] .com-li[_ngcontent-%COMP%]:hover{background:#edf7ff}.profile-page[_ngcontent-%COMP%] .com-list[_ngcontent-%COMP%] .active-radio[_ngcontent-%COMP%]{color:#1890ff;font-weight:700}.profile-page[_ngcontent-%COMP%] .tips[_ngcontent-%COMP%]{font-size:16px;color:#999;font-family:auto}.profile-page[_ngcontent-%COMP%] .user-input[_ngcontent-%COMP%]{margin:20px auto 40px}.tips-block[_ngcontent-%COMP%]{margin-top:60px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.tips-block[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:220px;margin-bottom:10px}\"]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProfileBindComponent, [{\n type: Component,\n args: [{\n selector: \"fm-profile-bind\",\n template: '<ng-container\\n *ngIf=\"cross?.navMenuType == \\'mobile\\'; else elseTemplate\"\\n>\\n <ion-content>\\n <div class=\"tips-block\">\\n <img src=\"https://file-cloud.fmode.cn/CCuWCEM24z/20231213/45hm71034653179.png\" alt=\"\" />\\n <div>请使用电脑浏览器打开</div>\\n </div>\\n </ion-content>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"profile-page\">\\n <div class=\"title\">企业项目管理系统</div>\\n <div class=\"date\">\\n {{ now | date : \"yyyy年MM月dd日\" }}\\n <div\\n class=\"com-tips\"\\n *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\"\\n (click)=\"onShowModal()\"\\n >\\n <span nz-icon nzType=\"user\" nzTheme=\"outline\"></span>\\n <div class=\"com-title\">企业管理员</div>\\n </div>\\n </div>\\n <ng-container *ngIf=\"profileList?.length > 0; else elseTemplate\">\\n <h2>\\n 欢迎您:{{\\n profile?.get(\"name\") ||\\n this.profileList[0]?.get(\"name\") ||\\n user?.get(\"nickname\") ||\\n user?.get(\"name\") ||\\n user?.get(\"username\")\\n }},请选择您的企业身份:\\n </h2>\\n </ng-container>\\n <ng-template #elseTemplate>\\n <h2>您还未绑定企业,请先联系管理员绑定!</h2>\\n </ng-template>\\n\\n <ng-container *ngIf=\"profileList?.length > 0\">\\n <div class=\"com-list\">\\n <div\\n class=\"com-li\"\\n *ngFor=\"let p of profileList\"\\n [ngClass]=\"{ \\'active-radio\\': currentProfile == p.id }\"\\n (click)=\"selectProfile(p)\"\\n >\\n <div class=\"com-name\">\\n <span nz-icon nzType=\"signal\" nzTheme=\"fill\"></span>\\n {{ p.get(\"name\") }} @ 企业\\n {{\\n p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\")\\n }}\\n </div>\\n <span\\n nz-icon\\n nzType=\"check\"\\n nzTheme=\"outline\"\\n *ngIf=\"currentProfile == p.id\"\\n ></span>\\n \\x3c!-- <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button> --\\x3e\\n </div>\\n </div>\\n \\x3c!-- <ul>\\n <li *ngFor=\"let p of profileList\">\\n {{ p.get(\"name\") }} @ 企业\\n {{ p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\") }}\\n <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button>\\n </li>\\n </ul> --\\x3e\\n </ng-container>\\n <div class=\"tips\">\\n <span nz-icon nzType=\"exclamation-circle\" nzTheme=\"outline\"></span>\\n 若无帐套信息,请输入企业身份验证绑定\\n </div>\\n <div>\\n <div class=\"user-input\">\\n <nz-input-group [nzPrefix]=\"prefixTemplateUser\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.name\"\\n nz-input\\n placeholder=\"请输入您的姓名\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateUser\\n ><span nz-icon nzType=\"user\"></span\\n ></ng-template>\\n <br />\\n <br />\\n <nz-input-group [nzPrefix]=\"prefixTemplateMobile\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.mobile\"\\n nz-input\\n placeholder=\"请输入您手机号\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateMobile\\n ><span nz-icon nzType=\"mobile\" nzTheme=\"outline\"></span\\n ></ng-template>\\n </div>\\n <button\\n nz-button\\n nzType=\"primary\"\\n [nzSize]=\"\\'large\\'\"\\n (click)=\"searchProfile()\"\\n nzBlock\\n >\\n 查询身份\\n </button>\\n <nz-modal\\n [(nzVisible)]=\"isVisible\"\\n nzTitle=\"绑定身份\"\\n (nzOnCancel)=\"isVisible = false\"\\n (nzOnOk)=\"bindProfile()\"\\n >\\n <ng-container *nzModalContent>\\n <p>您确认绑定并切换至该身份吗?</p>\\n <p>姓名:{{ profileSearched.get(\"name\") }}</p>\\n <p>\\n 帐套:{{\\n profileSearched?.get(\"company\")?.get(\"name\") ||\\n profileSearched?.get(\"company\")?.get(\"title\")\\n }}\\n </p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n\\n \\x3c!-- <ng-container *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\">\\n <h2>您是企业管理员,可进入添加团队成员身份:</h2>\\n <button\\n nz-button\\n nzType=\"primary\"\\n nzDanger=\"true\"\\n (click)=\"goProfileManage()\"\\n >\\n 团队成员管理\\n </button>\\n </ng-container> --\\x3e\\n </div>\\n</ng-template>\\n',\n styles: [\".profile-page{width:400px;margin:60px auto;font-family:auto}.profile-page .title{font-size:24px;font-weight:700;text-align:center;margin-bottom:40px}.profile-page .date{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-page .date .com-tips{display:flex;align-items:center;border-bottom:1px solid;color:#1890ff;cursor:pointer}.profile-page .date .com-tips .com-title{padding-left:4px}.profile-page h2{font-family:auto}.profile-page .com-list{display:flex;flex-wrap:wrap;margin:20px auto}.profile-page .com-list .com-li{margin-right:6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;min-width:200px;background:#fbfbfb;padding:6px 10px;border-radius:4px;cursor:pointer}.profile-page .com-list .com-li .com-name{display:flex;align-items:center;margin-right:20px}.profile-page .com-list .com-li .com-name span{margin-right:10px}.profile-page .com-list .com-li:hover{background:#edf7ff}.profile-page .com-list .active-radio{color:#1890ff;font-weight:700}.profile-page .tips{font-size:16px;color:#999;font-family:auto}.profile-page .user-input{margin:20px auto 40px}.tips-block{margin-top:60px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.tips-block img{width:220px;margin-bottom:10px}\\n\"]\n }]\n }], () => [{\n type: AuthProfileService\n }, {\n type: i1$1.Router\n }, {\n type: i3$1.NzModalService\n }, {\n type: i4.NzMessageService\n }, {\n type: CrossService\n }], {\n onResize: [{\n type: HostListener,\n args: [\"window:resize\", [\"$event\"]]\n }]\n });\n})();\nclass AuthPcuserGuard {\n constructor(e, t) {\n this.authService = e, this.router = t;\n }\n canActivate(e, t) {\n let n = t.url;\n return this.authService.redirectUrl = n, this.authService.checkLogin(n);\n }\n}\n_AuthPcuserGuard = AuthPcuserGuard;\n_AuthPcuserGuard.ɵfac = function _AuthPcuserGuard_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _AuthPcuserGuard)(i0.ɵɵinject(AuthService), i0.ɵɵinject(i1$1.Router));\n};\n_AuthPcuserGuard.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: _AuthPcuserGuard,\n factory: _AuthPcuserGuard.ɵfac,\n providedIn: \"root\"\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(AuthPcuserGuard, [{\n type: Injectable,\n args: [{\n providedIn: \"root\"\n }]\n }], () => [{\n type: AuthService\n }, {\n type: i1$1.Router\n }], null);\n})();\nconst ProfileRoutes = [{\n path: \"bind\",\n canActivate: [AuthPcuserGuard],\n component: ProfileBindComponent,\n runGuardsAndResolvers: \"always\"\n}];\nclass ProfileModule {}\n_ProfileModule = ProfileModule;\n_ProfileModule.ɵfac = function _ProfileModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || _ProfileModule)();\n};\n_ProfileModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: _ProfileModule\n});\n_ProfileModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, FormsModule, RouterModule.forChild(ProfileRoutes), NzInputModule, NzButtonModule, NzModalModule, NzMessageModule, NzIconModule]\n});\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(ProfileModule, [{\n type: NgModule,\n args: [{\n declarations: [ProfileBindComponent],\n imports: [CommonModule, FormsModule, RouterModule.forChild(ProfileRoutes), NzInputModule, NzButtonModule, NzModalModule, NzMessageModule, NzIconModule]\n }]\n }], null, null);\n})();\nexport { AccountService, AgentPrompt, AudioPlayer, AuthPcuserGuard, AuthProfileGuard, AuthProfileService, AuthService, AuthStaffGuard, AvatarModule, AvatarRoutes, CaptchaComponent, ChatContentPipe, ChatListComponent, ChatPanelComponent, ChatService, ClipboardService, CompAvatarParticleComponent, CompAvatarRoleImageComponent, CompAvatarRoleVideoComponent, CompAvatarTalkComponent, CompPoiPickerComponent, CompPoiPickerModule, CompRolePromptComponent, CompUserAvatarComponent, CrossService, DurationStrPipe, FmChatHeaderArea, FmChatMessageCard, FmChatMesssageArea, FmChatModalInput, FmVideoComponent, FmaiService, FmodeChat, FmodeChatCompletion, FmodeMapModule, FmodeStorgeModule, FmodeVoiceService, HidexmlPipe, HwobsManagerComponent, HwobsService, ImagineService, ImagineWork, LoginComponent, MASK_LIST, MarkdownMathJax, MarkdownParse, MarkdownPreviewComponent, MarkdownPreviewModule, ModalChatVoiceInputComponent, ModalUserLoginComponent, NovaCloudService, NovaUploadService, ProfileBindComponent, ProfileModule, ProfileRoutes, StaffModule, StaffService, UserModule, UserNamePipe, UserRoutes, UtilnowPipe, WechatJssdkService, apig, drawDalle, getMessageContentText, getMessageImageUrl, ncloudApi, novaql };\nvar MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9mZXNtMjAyMi9mbW9kZS1uZy5tanM=`;","map":{"version":3,"names":["i0","ɵɵelement","_MarkdownPreviewComponent_div_2_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate1","content","_c1","_c2","_ModalChatVoiceInputComponent_ng_container_0_div_1_Template","ɵɵtextInterpolate","talkTips","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template","_r2","ɵɵgetCurrentView","ɵɵlistener","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_1_listener","ɵɵrestoreView","ɵɵresetView","voiceServ","toggleRecord","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_4_listener","playRecord","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_7_listener","playBuffers","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_9_listener","testTTS","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_11_listener","startASR","_ModalChatVoiceInputComponent_ng_container_0_div_4_Template_button_click_13_listener","testXunfeiTTS","ɵɵtextInterpolate2","connStatus","btnStatus","_ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template","_r3","ɵɵelementContainerStart","_ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template_ion_fab_button_click_1_listener","_ModalChatVoiceInputComponent_ng_container_0_ng_container_6_Template_ion_fab_button_click_4_listener","cancelTalk","ɵɵelementContainerEnd","ɵɵclassMap","_ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template","_r4","_ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template_ion_fab_button_touchstart_1_listener","_ModalChatVoiceInputComponent_ng_container_0_ng_container_7_Template_ion_fab_button_touchend_1_listener","_ModalChatVoiceInputComponent_ng_container_0_Template","ɵɵtemplate","ɵɵproperty","fmodeChat","userInput","talkMode","_c3","_c4","_CompAvatarTalkComponent_ion_item_17_Template","ctx_r1","avatarRole","get","_CompAvatarTalkComponent_ion_item_18_Template","_CompAvatarTalkComponent_ion_chip_36_Template","_CompAvatarTalkComponent_fm_avatar_role_image_41_Template","_CompAvatarTalkComponent_fm_modal_chat_voice_input_46_Template","_c5","_ChatListComponent_ng_container_1_ion_item_1_Template","_r1","_ChatListComponent_ng_container_1_ion_item_1_Template_ion_item_click_0_listener","$event","chat_r2","$implicit","ctx_r2","onItemClick","_ChatListComponent_ng_container_1_ion_item_1_Template_ion_icon_click_11_listener","presentEditTitle","session","_ChatListComponent_ng_container_1_ion_item_1_Template_ion_icon_click_12_listener","presentDeleteTItle","ɵɵpipe","thumb","avatar","ɵɵsanitizeUrl","truncateString","title","ɵɵpipeBind2","latest","message","_ChatListComponent_ng_container_1_Template","isHidden","_FmChatHeaderArea_ion_toolbar_0_img_7_Template","chat","role","_FmChatHeaderArea_ion_toolbar_0_ion_icon_8_Template","_FmChatHeaderArea_ion_toolbar_0_Template","_FmChatHeaderArea_ion_toolbar_0_Template_ion_button_click_2_listener","goBack","_FmChatHeaderArea_ion_toolbar_0_Template_div_click_6_listener","showAvatar","_FmChatHeaderArea_ion_toolbar_0_Template_span_click_9_listener","_FmChatHeaderArea_ion_toolbar_0_Template_ion_button_click_12_listener","isModalOpen","_FmChatHeaderArea_div_1_fm_avatar_role_image_1_Template","_FmChatHeaderArea_div_1_fm_avatar_role_video_2_Template","_FmChatHeaderArea_div_1_Template","avatarMode","_FmChatHeaderArea_ng_template_3_ion_item_18_Template","_FmChatHeaderArea_ng_template_3_ion_item_19_Template","_FmChatHeaderArea_ng_template_3_Template","_FmChatHeaderArea_ng_template_3_Template_ion_button_click_3_listener","tmp_9_0","join","_c6","backgroundColor","_CompUserAvatarComponent_ng_container_0_nz_avatar_2_Template","ɵɵstyleMap","ɵɵpureFunction0","_CompUserAvatarComponent_ng_container_0_nz_avatar_4_Template","user","_CompUserAvatarComponent_ng_container_0_img_5_Template","identity","_CompUserAvatarComponent_ng_container_0_nz_avatar_6_Template","text","_CompUserAvatarComponent_ng_container_0_Template","type","_FmChatMessageCard_div_1_div_5_span_4_Template","ɵɵpipeBind1","voice","duration","_FmChatMessageCard_div_1_div_5_span_5_Template","_FmChatMessageCard_div_1_div_5_Template","_FmChatMessageCard_div_1_div_5_Template_div_click_0_listener","toggleVoicePlay","ɵɵclassProp","tts","isPlaying","_FmChatMessageCard_div_1_nz_avatar_6_Template","_FmChatMessageCard_div_1_app_comp_user_avatar_7_Template","_FmChatMessageCard_div_1_Template","_FmChatMessageCard_div_1_Template_ion_button_click_3_listener","copy","tmp_1_0","_FmChatMessageCard_div_2_Template","_FmChatMessageCard_fm_markdown_preview_5_Template","_FmChatMessageCard_fm_markdown_preview_6_Template","_FmChatMessageCard_div_7_Template","_FmChatMessageCard_div_8_Template","createdAt","_c7","_CompRolePromptComponent_ng_container_0_div_1_ng_container_1_ng_container_7_Template","_CompRolePromptComponent_ng_container_0_div_1_ng_container_1_ng_container_7_Template_div_click_1_listener","message_r2","applyPrompt","_CompRolePromptComponent_ng_container_0_div_1_ng_container_1_Template","content_r4","img","_CompRolePromptComponent_ng_container_0_div_1_Template","promptList","_CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_div_1_Template","_r5","_CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_div_1_Template_div_click_0_listener","message_r6","_CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_ng_container_7_Template","idx_r7","index","_CompRolePromptComponent_ng_container_0_ng_container_2_ng_container_2_Template","content_r8","_CompRolePromptComponent_ng_container_0_ng_container_2_div_3_Template","_r9","_CompRolePromptComponent_ng_container_0_ng_container_2_div_3_Template_button_click_1_listener","isPromptModalOpen","_CompRolePromptComponent_ng_container_0_ng_container_2_Template","length","_CompRolePromptComponent_ng_container_0_Template","cross","navMenuType","_CompRolePromptComponent_ng_template_2_ng_container_4_Template","_r10","_CompRolePromptComponent_ng_template_2_ng_container_4_Template_ion_button_click_1_listener","i_r11","checkCate","prompt_r12","cateIndex","_CompRolePromptComponent_ng_template_2_ng_container_6_Template","_r13","_CompRolePromptComponent_ng_template_2_ng_container_6_Template_div_click_1_listener","message_r14","ɵɵstyleProp","isDarkMode","_CompRolePromptComponent_ng_template_2_Template","_c8","a0","_c9","_c10","url","_c11","image_url","_c12","a1","_FmChatMesssageArea_ng_container_2_fm_chat_message_card_1_Template","index_r3","ctx_r3","_FmChatMesssageArea_ng_container_2_Template","hidden","_FmChatMesssageArea_Conditional_3_ng_container_0_Template","ɵɵpureFunction1","_FmChatMesssageArea_Conditional_3_ng_container_1_Template","ɵɵpureFunction2","userImage","_FmChatMesssageArea_Conditional_3_Template","_ModalAudioMessageComponent_ng_container_1_Template","_ModalAudioMessageComponent_ng_container_2_Template","_ModalAudioMessageComponent_ng_container_2_Template_ion_button_click_2_listener","cancel","_ModalAudioMessageComponent_ng_container_2_Template_ion_button_click_14_listener","send","durationStr","_c13","_c14","_FmChatModalInput_ng_container_2_ion_button_1_Template","_FmChatModalInput_ng_container_2_ion_button_1_Template_ion_button_click_0_listener","button_r2","onClick","icon","showTitle","_FmChatModalInput_ng_container_2_Template","show","_FmChatModalInput_ng_container_3_Template","_FmChatModalInput_ng_container_3_Template_ion_button_click_1_listener","button_r4","ctx_r4","chatServ","doButtonAction","name","_FmChatModalInput_Conditional_4_ion_button_0_Template","_r6","_FmChatModalInput_Conditional_4_ion_button_0_Template_ion_button_click_0_listener","showShare","_FmChatModalInput_Conditional_4_Template","messageList","_FmChatModalInput_ng_template_6_div_12_div_1_nz_avatar_2_Template","_FmChatModalInput_ng_template_6_div_12_div_1_app_comp_user_avatar_4_Template","_FmChatModalInput_ng_template_6_div_12_div_1_Template","message_r8","_FmChatModalInput_ng_template_6_div_12_div_4_fm_markdown_preview_2_Template","_FmChatModalInput_ng_template_6_div_12_div_4_Template","complete","_FmChatModalInput_ng_template_6_div_12_div_6_fm_markdown_preview_2_Template","_FmChatModalInput_ng_template_6_div_12_div_6_Template","_FmChatModalInput_ng_template_6_div_12_div_8_fm_markdown_preview_2_Template","_FmChatModalInput_ng_template_6_div_12_div_8_Template","_FmChatModalInput_ng_template_6_div_12_div_9_Template","_FmChatModalInput_ng_template_6_div_12_Template","_FmChatModalInput_ng_template_6_Template","_r7","_FmChatModalInput_ng_template_6_Template_ion_button_click_3_listener","handleCancelShare","_FmChatModalInput_ng_template_6_Template_ion_button_click_8_listener","handleOkShare","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_nz_avatar_2_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_app_comp_user_avatar_4_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_1_Template","message_r10","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_fm_markdown_preview_2_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_4_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_fm_markdown_preview_2_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_6_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_fm_markdown_preview_2_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_8_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_div_9_Template","_FmChatModalInput_nz_modal_7_ng_container_1_div_2_Template","_FmChatModalInput_nz_modal_7_ng_container_1_Template","_FmChatModalInput_nz_modal_7_Template","ɵɵtwoWayListener","_FmChatModalInput_nz_modal_7_Template_nz_modal_nzVisibleChange_0_listener","ɵɵtwoWayBindingSet","isShare","_FmChatModalInput_nz_modal_7_Template_nz_modal_nzOnCancel_0_listener","_FmChatModalInput_nz_modal_7_Template_nz_modal_nzOnOk_0_listener","ɵɵtwoWayProperty","_FmChatModalInput_ion_button_8_Template","_r11","_FmChatModalInput_ion_button_8_Template_ion_button_click_0_listener","setMessageImage","_FmChatModalInput_Conditional_9_ng_template_4_ng_container_2_Template","_r12","_FmChatModalInput_Conditional_9_ng_template_4_ng_container_2_Template_ion_item_click_1_listener","model_r13","currentModel","_FmChatModalInput_Conditional_9_ng_template_4_Template","modelList","_FmChatModalInput_Conditional_9_Template","_FmChatModalInput_ng_container_11_Template","_r14","_FmChatModalInput_ng_container_11_Template_ion_button_click_1_listener","isVoiceInputMode","_FmChatModalInput_ng_container_11_Template_div_click_3_listener","startTalk","_FmChatModalInput_ng_container_12_ion_button_1_Template","_r16","_FmChatModalInput_ng_container_12_ion_button_1_Template_ion_button_click_0_listener","isTexting","_FmChatModalInput_ng_container_12_ion_textarea_2_Template","_r17","_FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_keydown_0_listener","onKeyDown","_FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ngModelChange_0_listener","_FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ionFocus_0_listener","onInputFocus","_FmChatModalInput_ng_container_12_ion_textarea_2_Template_ion_textarea_ionBlur_0_listener","errorText","_FmChatModalInput_ng_container_12_Template","_r15","_FmChatModalInput_ng_container_12_Template_ion_button_click_3_listener","sendMessage","_c15","_c16","_c17","_ChatPanelComponent_div_0_fm_chat_header_area_3_Template","_ChatPanelComponent_div_0_fm_chat_message_area_7_Template","_ChatPanelComponent_div_0_fm_chat_modal_input_10_Template","_ChatPanelComponent_div_0_Template","ɵɵprojection","isAvatarShow","showHeaderArea","showMessageArea","showInputModal","_c18","_PageMapStartComponent_ng_container_2_Template","_PageMapStartComponent_ng_container_2_Template_div_click_1_listener","place_r2","goAndMarkPlace","_PageMapStartComponent_ng_container_2_Template_button_click_3_listener","clearMark","_c19","_c20","_CompPoiPickerComponent_ng_template_3_ng_container_7_Template","location","latitude","longitude","_CompPoiPickerComponent_ng_template_3_Template","_CompPoiPickerComponent_ng_template_3_Template_ion_button_click_3_listener","_CompPoiPickerComponent_ng_template_3_Template_ion_button_click_9_listener","confirm","_CompPoiPickerComponent_ng_template_3_Template_ion_input_ngModelChange_13_listener","address","_CompPoiPickerComponent_ng_template_3_Template_ion_button_click_14_listener","searchByAddress","_PagePlanRouteComponent_ng_container_7_ng_container_3_span_4_Template","place_r3","_PagePlanRouteComponent_ng_container_7_ng_container_3_span_5_Template","_PagePlanRouteComponent_ng_container_7_ng_container_3_Template","_PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_nameChange_6_listener","_PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_addressChange_6_listener","_PagePlanRouteComponent_ng_container_7_ng_container_3_Template_fm_map_poi_picker_locationChange_6_listener","_PagePlanRouteComponent_ng_container_7_Template","_PagePlanRouteComponent_ng_container_7_Template_ion_button_click_4_listener","addNewPlace","placeList","_PagePlanRouteComponent_ng_container_8_Template","_PagePlanRouteComponent_ng_container_8_Template_ion_button_click_1_listener","createPlan","_HwobsManagerComponent_ion_item_10_Template","_HwobsManagerComponent_ion_item_10_Template_ion_item_click_0_listener","item_r2","openDir","showName","Prefix","_HwobsManagerComponent_ion_item_11_Template","_HwobsManagerComponent_ion_item_11_Template_ion_item_click_0_listener","item_r5","openFile","Key","_LoginComponent_ng_container_6_ng_template_13_Template","_LoginComponent_ng_container_6_ng_template_13_Template_i_click_0_listener","passwordVisible","_LoginComponent_ng_container_6_Template","_LoginComponent_ng_container_6_Template_form_ngSubmit_1_listener","submitFormMobilePassword","validateForm","value","ɵɵtemplateRefExtractor","_LoginComponent_ng_container_6_Template_div_click_24_listener","creatCode","_LoginComponent_ng_container_6_Template_h6_click_30_listener","forget","suffixTemplate_r4","ɵɵreference","ɵɵpropertyInterpolate","userErrorTip","passwordErrorTip","codeErrorTip","code","valid","_LoginComponent_ng_container_7_ng_template_13_Template","_LoginComponent_ng_container_7_ng_template_13_Template_i_click_0_listener","_LoginComponent_ng_container_7_ng_template_21_Template","_LoginComponent_ng_container_7_ng_template_21_Template_i_click_0_listener","_LoginComponent_ng_container_7_div_29_Template","_r8","_LoginComponent_ng_container_7_div_29_Template_div_click_0_listener","getCode2","_LoginComponent_ng_container_7_div_30_Template","countDown","_LoginComponent_ng_container_7_Template","_LoginComponent_ng_container_7_Template_form_ngSubmit_1_listener","forgetFormFun","forgetForm","_LoginComponent_ng_container_7_Template_h6_click_35_listener","backLogin","suffixTemplate_r9","forgetphoneCodesErrorTip","phoneCodesErrorTip","isCountDown","_LoginComponent_ng_container_9_ng_template_13_Template","_LoginComponent_ng_container_9_ng_template_13_Template_i_click_0_listener","_LoginComponent_ng_container_9_Template","_LoginComponent_ng_container_9_Template_form_ngSubmit_1_listener","submitFormUserPassword","validateUserForm","_LoginComponent_ng_container_9_Template_div_click_24_listener","suffixTemplate_r12","_LoginComponent_ng_container_10_ng_template_13_Template","_LoginComponent_ng_container_10_ng_template_13_Template_i_click_0_listener","_LoginComponent_ng_container_10_ng_template_21_Template","_LoginComponent_ng_container_10_ng_template_21_Template_i_click_0_listener","_LoginComponent_ng_container_10_div_29_Template","_LoginComponent_ng_container_10_div_29_Template_div_click_0_listener","_LoginComponent_ng_container_10_div_30_Template","_LoginComponent_ng_container_10_Template","_LoginComponent_ng_container_10_Template_form_ngSubmit_1_listener","_LoginComponent_ng_container_10_Template_h6_click_35_listener","suffixTemplate_r17","_LoginComponent_ng_container_12_div_25_Template","_r19","_LoginComponent_ng_container_12_div_25_Template_div_click_0_listener","sendSMSCode","_LoginComponent_ng_container_12_div_26_Template","smsTimeCount","_LoginComponent_ng_container_12_Template","_r18","_LoginComponent_ng_container_12_Template_form_ngSubmit_1_listener","submitFormMobileSMS","validateSMSForm","_LoginComponent_ng_container_12_Template_div_click_16_listener","smsCodeErrorTip","isSended","codeVerified","isSending","_LoginComponent_nz_tab_13_div_23_Template","_r21","_LoginComponent_nz_tab_13_div_23_Template_div_click_0_listener","getCode","_LoginComponent_nz_tab_13_div_24_Template","_LoginComponent_nz_tab_13_ng_template_31_Template","_r22","_LoginComponent_nz_tab_13_ng_template_31_Template_i_click_0_listener","passwordVisible2","_LoginComponent_nz_tab_13_ng_template_39_Template","_r23","_LoginComponent_nz_tab_13_ng_template_39_Template_i_click_0_listener","passwordVisible3","_LoginComponent_nz_tab_13_Template","_r20","_LoginComponent_nz_tab_13_Template_form_ngSubmit_1_listener","registSubmitForm","registForm","_LoginComponent_nz_tab_13_Template_input_ngModelChange_16_listener","registPhone","suffixTemplate2_r24","suffixTemplate3_r25","registIdcardErrorTip","registNameErrorTip","phoneErrorTip","regpasswordErrorTip","confirmPasswordErrorTip","_LoginComponent_div_20_Template","_LoginComponent_ng_container_22_Template","_c21","_c22","_c23","standalone","_ModalUserLoginComponent_div_8_button_2_Template","_ModalUserLoginComponent_div_8_button_2_Template_button_click_0_listener","setActiveButton","authServ","activeButton","_ModalUserLoginComponent_div_8_button_3_Template","_ModalUserLoginComponent_div_8_button_3_Template_button_click_0_listener","_ModalUserLoginComponent_div_8_button_4_Template","_ModalUserLoginComponent_div_8_button_4_Template_button_click_0_listener","_ModalUserLoginComponent_div_8_Template","loginOptions","userpwd","mobilecode","wechat","_ModalUserLoginComponent_form_9_div_5_Template","_ModalUserLoginComponent_form_9_div_5_Template_input_ngModelChange_2_listener","localCodeNum","_ModalUserLoginComponent_form_9_Template","_ModalUserLoginComponent_form_9_Template_input_ngModelChange_4_listener","loginInfo","mobile","_ModalUserLoginComponent_form_9_Template_input_ngModelChange_7_listener","_ModalUserLoginComponent_form_9_Template_input_change_7_listener","smsAutoLogin","_ModalUserLoginComponent_form_9_Template_button_click_9_listener","startCountdown","_ModalUserLoginComponent_form_9_Template_button_click_15_listener","login","enabledLocalCode","isCountingdown","buttonText","_ModalUserLoginComponent_form_10_Template","_ModalUserLoginComponent_form_10_Template_input_ngModelChange_2_listener","_ModalUserLoginComponent_form_10_Template_input_ngModelChange_4_listener","password","_ModalUserLoginComponent_form_10_Template_div_click_9_listener","_ModalUserLoginComponent_form_10_Template_input_ngModelChange_13_listener","isUserRuleChecked","_ModalUserLoginComponent_form_10_Template_span_click_14_listener","_ModalUserLoginComponent_form_10_Template_span_click_16_listener","_ModalUserLoginComponent_form_10_Template_button_click_19_listener","loginMobilePassword","_ModalUserLoginComponent_form_21_Template","wechatUrl","_ModalUserLoginComponent_div_22_Template","_ModalUserLoginComponent_div_22_Template_button_click_1_listener","goHome","_CaptchaComponent_ng_container_0_Template","_CaptchaComponent_ng_container_0_Template_input_ngModelChange_2_listener","vCode","_CaptchaComponent_ng_container_0_Template_input_keydown_2_listener","enter","_CaptchaComponent_ng_container_0_Template_input_change_2_listener","onChange","_CaptchaComponent_ng_template_1_Template","_c24","_ProfileBindComponent_ng_container_0_Template","_ProfileBindComponent_ng_template_1_div_6_Template","_ProfileBindComponent_ng_template_1_div_6_Template_div_click_0_listener","onShowModal","_ProfileBindComponent_ng_template_1_ng_container_7_Template","profile","profileList","_ProfileBindComponent_ng_template_1_ng_template_8_Template","_ProfileBindComponent_ng_template_1_ng_container_10_div_2_span_4_Template","_ProfileBindComponent_ng_template_1_ng_container_10_div_2_Template","_ProfileBindComponent_ng_template_1_ng_container_10_div_2_Template_div_click_0_listener","p_r5","selectProfile","currentProfile","id","_ProfileBindComponent_ng_template_1_ng_container_10_Template","_ProfileBindComponent_ng_template_1_ng_template_18_Template","_ProfileBindComponent_ng_template_1_ng_template_24_Template","_ProfileBindComponent_ng_template_1_ng_container_29_Template","tmp_7_0","profileSearched","_ProfileBindComponent_ng_template_1_Template","_ProfileBindComponent_ng_template_1_Template_input_ngModelChange_17_listener","pdata","_ProfileBindComponent_ng_template_1_Template_input_ngModelChange_23_listener","_ProfileBindComponent_ng_template_1_Template_button_click_26_listener","searchProfile","_ProfileBindComponent_ng_template_1_Template_nz_modal_nzVisibleChange_28_listener","isVisible","_ProfileBindComponent_ng_template_1_Template_nz_modal_nzOnCancel_28_listener","_ProfileBindComponent_ng_template_1_Template_nz_modal_nzOnOk_28_listener","bindProfile","elseTemplate_r6","prefixTemplateUser_r7","prefixTemplateMobile_r8","now","Injectable","Pipe","Component","Input","ViewChild","NgModule","EventEmitter","Output","HostListener","i1$1","RouterModule","finalize","Subject","Observable","bufferTime","concatMap","delay","combineLatest","Parse","Parse__default","PromptTemplate","SpeechSynthesizer","SpeechConfig","ResultReason","AudioConfig","PushAudioOutputStreamCallback","bufferWhen","takeUntil","filter","i1","HttpClientModule","i2","IonicModule","ModalController","IonModal","IonModal$1","i2$2","DatePipe","CommonModule","Camera","CameraSource","CameraResultType","Capacitor","Filesystem","FilesystemWeb","qiniu","i2$1","Diagnostic","CryptoJS","MediaCapture","SparkMD5","mathjax","TeX","SVG","CHTML","AllPackages","liteAdaptor","RegisterHTMLHandler","hljs","MarkdownIt","$","abbr","footnote","deflist","mark","ins","sub","sup","ruby","plantumlEncoder","i1$2","Clipboard","Recorder","i7","FormsModule","ReactiveFormsModule","Validators","BABYLON","i2$3","IonIcon","IonToolbar","IonButtons","IonButton","IonList","IonLabel","IonNote","IonAvatar","IonItem","IonText","IonTitle","IonHeader","IonCard","ModalController$1","IonSegment","IonSpinner","IonTextarea","IonPopover","IonContent","IonInput","IonCheckbox","i3","NzAvatarModule","i5","NzIconModule","NzSanitizerPipe","i4","NzMessageModule","i3$1","NzModalModule","AMapLoader","ObsClient","i8","NzInputModule","i9","NzButtonModule","NzRadioModule","i13","NzSpinModule","i14","NzTabsModule","i16","NzFormModule","i10","i11","i15","AgentPrompt","constructor","jsonCompletion","e","t","n","o","FmodeChatCompletion","model","sendCompletion","isDirect","pipe","console","log","json","extractAndParseJson","indexOf","i","slice","JSON","parse","error","extractMarkdownToMultiArray","split","trim","startsWith","replace","push","search","pop","getFormatTpl","_this","_asyncToGenerator","getPromptTpl","format","Query","equalTo","first","fromTemplate","templateFormat","getTokens","_e","AudioPlayer","audio","Audio","getInstance","instance","setAudioEvent","src","stop","pause","play","_this2","Promise","then","catch","paused","_AudioPlayer","FmPushAudioOutputStreamCallback","audioDataSubject","playedSubject","isClosed","audioBufferQueue","maxBufferSize","writeCount","audioContext","window","AudioContext","webkitAudioContext","subscribe","playAudio","write","_this3","next","_this4","mergeArrayBuffers","decodeAudioData","createBufferSource","buffer","connect","destination","start","onended","reduce","byteLength","Uint8Array","set","_this5","unsubscribe","close","_this6","FmodeTTS","_this$audioPlayer","_this$audioStream","audioPlayer","audioStream","uploadServ","subscriptionKey","authorizationToken","token","region","speechConfig","fromSubscription","fromAuthorizationToken","audioConfig","fromStreamOutput","synthesizer","extractTextFromXML","exec","extractSSMLContent","match","speakAsync","_this7","_t","_t4","_t5","_Parse__default$User$","Object","extend","localStorage","getItem","__type","className","objectId","User","current","toPointer","_t2","_t3","ssml","fromJSON","include","where","$or","playAudioData","_e2","_this7$eventMap","_this7$eventMap2","a","Date","r","fixMarkdownChar","eventMap","onSpeakBefore","reason","SynthesizingAudioStarted","SynthesizingAudioCompleted","_this7$eventMap3","_this7$eventMap4","onAudioCompleted","audioData","Number","audioDuration","setTimeout","onStop","errorDetails","onBreak","replaceAll","_this8","Blob","URL","createObjectURL","uploadAndSaveVoice","onStart","save","onLoaded","_this9","_t6","_this9$uploadServ","_t7","_t8","genMd5","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","File","upload","s","API_BASE","agentPrompt","PromptTplTalkSSMLOutputCode","PromptTplTalkTextSSMLCode","getMessageContentText","_e$find","find","getMessageImageUrl","_e$find2","FmodeChat","_this$role","_this$avatarConfig","_this$role2","_this$role3","_this$avatarConfig2","avatarConfig","image","waiting","video","scrollToBottom","_e3","scrollComp","nativeElement","scrollHeight","scrollTop","_this10","_this$role5","_this$role6","_this$voiceConfig","ChatSession","latestAIResponse","hideShare","hideModalSelect","hideInputPreview","isPromptMessageAreaShow","focusUserInput","leftButtons","_this$promptList","_this$navCtrl","navCtrl","navigateRoot","_this$chatServ","callRole","_this$role4","isTalkMode","SSMLRoleVoice","playAnimation","welcome","_this10$messageList","_n$get","_n$get2","_n$get3","_this10$role$get","_this10$role$get2","loadSelf","prompt","_this10$role$get3","Math","floor","random","userName","personName","timeOfDay","getTimeOfDay","l","getVoiceByContentText","c","voiceMap","playChatVoice","self","VoiceTTSMap","sessionId","ncloud","chatSession","voiceConfig","autoTalk","_this11","loadTalkSystemPrompt","_this12","_e$get","_this12$messageList","_this12$messageList2","map","findIndex","splice","loadRolePrompt","_this$role7","_this$messageList","_this$messageList2","_this13","_this13$chatServ","fixMessageList","onComplete","_this13$messageList$a","indexOfList","onSSMLComplete","_this13$chatSession","_this13$messageList","getContentText","saveChatSession","_this$role8","_this14","_ref3","resolveChatVoice","_ref4","_Parse__default$User$2","_this14$chatSession","_this14$chatSession2","_i","_i2","apply","arguments","_this14$chatServ","_ref5","_x3","_x","_x2","_e$","initTTS","_this15","apig","company","stopPlayingVoice","values","forEach","_this16","_this17","_this17$role","_Parse__default$User$3","_this17$chatSession","genTitle","_window$location","_this17$chatSession2","_this17$role2","_this17$role3","_this17$chatSession3","_this17$chatSession4","_this17$chatSession5","_this17$chatServ","_this17$chatServ2","_this17$chatServ3","origin","pathname","getInviteUrl","history","replaceState","sid","rid","chatList","unshift","_Parse__default$User","searchParams","href","_this$messageList$fin","_e$find3","nowStr","contentBuffer","isCompleted","messages","intTime","stream","temperature","presence_penalty","frequency_penalty","RequestFmodeChatApi","String","_t$choices","chunkToJson","choices","delta","cid","contentPusher","setInterval","_this$contentBuffer","_this$contentBuffer2","_this$contentBuffer3","clearInterval","shift","_Parse__default$User$4","getSessionToken","stringify","fetch","headers","body","method","credentials","mode","_e$body","getReader","TextDecoder","ReadableStream","read","done","enqueue","processStream","processData","decode","JsonToFormData","FormData","appendFormData","Array","isArray","keys","append","ncloudApi","_x4","_x5","_ncloudApi","data","novaql","_x6","_x7","_x8","_novaql","sql","params","_x9","_x10","_apig","setItem","decodeURIComponent","atob","Authorization","ok","Error","status","NovaCloudService","http","serverURL","apigTest","api","searchParse","_NovaCloudService","ɵfac","_NovaCloudService_Factory","__ngFactoryType__","ɵɵinject","HttpClient","ɵprov","ɵɵdefineInjectable","factory","providedIn","ngDevMode","ɵsetClassMetadata","args","CrossService","getMenuType","clientWidth","document","onResizeScreen","platform","mobileWidth","updateWidth","dismisModalTop","getTop","preventDefault","dismiss","isOpen","fixInterval","leftMenuMode","_CrossService","_CrossService_Factory","Platform","NavController","calcFileMd5","FileReader","onload","_e$target","target","result","ArrayBuffer","end","onerror","readAsArrayBuffer","NovaUploadService","diagnostic","maxSize","getUptoken","requestPermission","queryDomain","_this18","_e$name","_r","_s","_s2","fileToBlob","saveQiniuImageFile","saveQiniuMediaFile","md5","qiniuDomain","saveAttachment","getCompanyId","isCapacitor","is","_this19","requestStoagePermission","requestCameraPermission","_this20","isExternalStorageAuthorized","requestExternalStorageAuthorization","_this21","isCameraAuthorized","requestCameraAuthorization","_this22","qiniuConf","Cloud","run","genFileKey","transform","substr","_this23","domain","size","captureVideo","_this24","cameraCaptureVideoFile","getMediaFileDataString","limit","fullPath","stat","path","convertFileSrc","uri","blob","takePicture","_this25","cameraTakePictureDataUrl","dataUrl","base64ToBlob","_this26","getPhoto","quality","allowEditing","source","resultType","DataUrl","_this27","fname","mimeType","useCdnDomain","forceDirect","p","_this27$qiniuConf","uptoken","_ref6","_x11","_this27$qiniuConf2","_this27$qiniuConf3","key","_this28","_this28$qiniuConf","_ref7","_x12","_this28$qiniuConf2","base64ToBlobType","MD5","toString","_NovaUploadService","_NovaUploadService_Factory","ChatService","router","alertCtrl","chatMap","platformMap","pc","loadModelList","_this29","_this29$modelList","_this29$modelList2","notEqualTo","addAscending","_this30","_e$platform","_e$platform2","_e$platform3","create","header","subHeader","buttons","present","initChatMap","_this31","getChatSession","_this32","_Parse__default$User2","addDescending","_e$get2","_e$get3","_e$get4","_e$get5","_e$get6","_e$get7","getChatSessionDistinct","_this33","_Parse__default$User$5","_e$messageList","_e$messageList2","createChatPanel","_t9","navigate","createNewRoleChat","_this34","restoreChatPanel","_this35","_this36","classList","add","_ChatService","_ChatService_Factory","Router","AlertController","drawDalle","_x13","_drawDalle","_e$prompt","style","response_format","ImagineService","taskDetailMap","newWorkList","myWorkList","_this37","priceDalle","credit","priceStableDiffusion","_e$imgOptions","_e$imgOptions2","_e$imgOptions3","_e$imgOptions4","_e$controlnet","width","height","steps","upscale","hrSteps","hrScale","faceFix","imgOptions","removeBackground","redrawBackground","facePreservation","genderDetect","controlnet","units","batchSize","b64DataToBase64Image","onloadend","readAsDataURL","draw","_this38","paintingSign","taskDetail","_this39","taskId","getMyWorkQuery","getWorkQuery","getTime","$lte","progress","$ne","$gt","doesNotExist","getimg","_this40","createElement","click","handleChange","_ref9","removeEventListener","files","total","percent","toFixed","addEventListener","_ImagineService","_ImagineService_Factory","FmaiService","imagine","_FmaiService","_FmaiService_Factory","ImagineWork","task","images","fetchTask","_this41","_this41$images","_this$task","colorMap","MASK_LIST","desc","color","cover","UtilnowPipe","enLocale","handleArgs","_n$constructor","getDefaultLang","unit","_UtilnowPipe","_UtilnowPipe_Factory","ɵpipe","ɵɵdefinePipe","pure","ChatContentPipe","_ChatContentPipe","_ChatContentPipe_Factory","HidexmlPipe","hideXmlTags","_HidexmlPipe","_HidexmlPipe_Factory","MarkdownMathJax","options","adaptor","text_to_mathjax","_e4","_e5","_t10","fontCache","output","skipHtmlTags","InputJax","processEscapes","packages","OutputJax","em","ex","containerWidth","convert","innerHTML","md","html","xhtmlOut","breaks","linkify","typographer","quotes","highlight","getLanguage","language","use","mditConfig","plantumlServer","makePlantumlURL","encode","renderer","rules","plantuml","core","ruler","tokens","info","spaceregex","notinhtmltagregex","coloregex","RegExp","nameregex","timeregex","nameandtimeregex","replaceExtraTags","finishView","parseHTML","removeClass","each","attr","closest","css","MarkdownParse","parseToHTML","_e6","_e7","render","MarkdownPreviewComponent","domSan","ngAfterViewInit","renderMdToHTML","safeHTML","bypassSecurityTrustHtml","appendChild","mdContent","_MarkdownPreviewComponent","_MarkdownPreviewComponent_Factory","ɵɵdirectiveInject","DomSanitizer","Renderer2","ɵcmp","ɵɵdefineComponent","selectors","viewQuery","_MarkdownPreviewComponent_Query","ɵɵviewQuery","_c0","ɵɵqueryRefresh","ɵɵloadQuery","inputs","decls","vars","consts","template","_MarkdownPreviewComponent_Template","_MarkdownPreviewComponent_div_1_Template","dependencies","NgIf","styles","selector","MarkdownPreviewModule","_MarkdownPreviewModule","_MarkdownPreviewModule_Factory","ɵmod","ɵɵdefineNgModule","ɵinj","ɵɵdefineInjector","imports","declarations","exports","ClipboardService","toastCtrl","copyToClipboard","_this42","string","copySuccess","_navigator","navigator","clipboard","isSecureContext","writeText","position","left","top","focus","select","_document","execCommand","removeChild","_this43","_ClipboardService","_ClipboardService_Factory","ToastController","pcmtoWav","chunkId","chunkSize","subChunk1Id","subChunk1Size","audioFormat","numChannels","sampleRate","byteRate","blockAlign","bitsPerSample","subChunk2Id","subChunk2Size","u32ToArray","u16ToArray","concat","resampleAudio","convertFrameBufferToBase64","btoa","fromCharCode","resampleBuffer","round","Int16Array","SpeechRecognition","webkitSpeechRecognition","SpeechGrammarList","webkitSpeechGrammarList","WebSpeech","startRecognition","recognition","continuous","addFromString","grammars","onresult","_t$","_t$2","_t$3","results","transcript","onend","speak","speakWithEdge","SpeechSynthesisUtterance","getVoiceByName","rate","pitch","volume","speechSynthesis","getVoices","FmodeVoiceService","webSpeech","isUserFinish","recordWavBlob","recordPcmBlob","recordDuration","recordType","encodingType","resultText","resultTextTemp","APPID","API_SECRET","API_KEY","finishTalk","onBeforeFinishTalk","recordStop","_this44","_event","onBeforeStartTalk","event","openWithPriviledge","connectWebSocket","onAfterStartTalk","_this$iatWS","onBeforeCancelTalk","iatWS","onAfterCancelTalk","recordStart","_this45","createRecorder","recorder","changeBtnStatus","onAfterRecordStart","_this46","_this$recorder","countdownInterval","_ref10","_this46$recorder","encoding","webkitURL","pcmBlobToWavBlob","onAfterFinishTalk","_x14","_x15","playPCM","_this47","_this48","BuffersToBlob","buffers","splitAudioData","ceil","BufferToBlob","bitRate","onProcess","_this$waveClient","readyState","OPEN","disableASR","waveClient","input","_this49","IsOpen","open","querySelector","WaveView","elem","getWebSocketUrl","toUTCString","HmacSHA256","enc","Base64","toBase64","countTimer","parseInt","padStart","onDurationStrChange","durationInterval","renderResult","ws","cw","w","pgs","onInputChange","getUserInput","_this50","WebSocket","alert","onopen","common","app_id","business","accent","vad_eos","dwa","onmessage","onclose","_ref11","reconnectWebsocket","_x16","_this51","_this52","requestMicPermission","requestRecordAudioPermission","_this53","requestRuntimePermissions","permission","RECORD_AUDIO","_this54","isMicrophoneAuthorized","requestMicrophoneAuthorization","_this55","_this56","_FmodeVoiceService","_FmodeVoiceService_Factory","RolePointsCloud","offsetPosition","Vector3","animationGroup","AnimationGroup","AnimMap","idle","scene","engine","init","_this57","Mesh","loadMesh","loadIdleAnim","playAnim","beginDirectAnimation","MeshBuilder","CreateSphere","diameter","addInPlace","visibility","material","StandardMaterial","wireframe","scaling","Animation","ANIMATIONTYPE_VECTOR3","ANIMATIONLOOPMODE_CYCLE","frame","setKeys","animations","addTargetedAnimation","CompAvatarParticleComponent","elementRef","isWebVR","animMap","canvas","renderCanvas","Engine","createScene","runRenderLoop","_this$scene","_this$engine","resize","_this$engine2","_this58","_this58$engine","Scene","clearColor","Color4","mainCamera","createCamera","currentRole","createCloudPoints","HemisphericLight","VRDeviceOrientationArcRotateCamera","ArcRotateCamera","setPosition","beta","PI","alpha","radius","_this59","pointsMesh","pointsCloud","PointsCloudSystem","Color3","Texture","PBRMaterial","emissiveTexture","emissiveColor","addVolumePoints","PointColor","Color","buildMeshAsync","registerAfterRender","setParticles","cloudAnim","rotateSpeed","breathing","talking","updateParticle","_this$currentRole$Mes","_this$currentRole$Mes2","getBoundingInfo","boundingSphere","radiusWorld","centerWorld","idx","rotation","y","initpos","subtract","x","z","createSphere","One","talk","createParticle","_this60","ParticleSystem","particleTexture","emitter","minEmitBox","maxEmitBox","color1","color2","colorDead","minSize","minLifeTime","maxLifeTime","minAngularSpeed","maxAngularSpeed","minInitialRotation","maxInitialRotation","minEmitPower","maxEmitPower","emitRate","updateSpeed","blendMode","BLENDMODE_ONEONE","direction1","direction2","createSphereEmitter","radiusRange","directionRandomizer","gravity","disposeOnStop","updateFunction","_e$getBoundingInfo","normalize","scale","age","getEngine","getDeltaTime","lifeTime","recycleParticle","worldOffset","setCameraToMeshCenter","computeWorldMatrix","minimum","maximum","boundingBox","center","_CompAvatarParticleComponent","_CompAvatarParticleComponent_Factory","ElementRef","_CompAvatarParticleComponent_Query","features","ɵɵStandaloneFeature","_CompAvatarParticleComponent_Template","CompAvatarRoleImageComponent","animClass","imageMap","playWave","wave","keep","generatePowerLevel","waveInterval","generateSampleRate","generatePcmData","stopWave","ngOnInit","_this$fmodeChat$avata","_this$imageMap","avatarImage","animationPlayState","_CompAvatarRoleImageComponent","_CompAvatarRoleImageComponent_Factory","_CompAvatarRoleImageComponent_Query","_CompAvatarRoleImageComponent_Template","ModalChatVoiceInputComponent","player","initVoiceSevice","initVoiceASR","_this61","startASRAwake","_this62","playMusic","_this$voiceServ","_this63","_this63$fmodeChat","_ModalChatVoiceInputComponent","_ModalChatVoiceInputComponent_Factory","ɵɵProvidersFeature","_ModalChatVoiceInputComponent_Template","IonFab","IonFabButton","IonFabList","providers","CompAvatarTalkComponent","route","paramMap","roleId","loadAvatarRole","ngOnDestroy","remove","_this$avatarRole","_this64","listenDivChange","MutationObserver","aiRespComp","observe","childList","subtree","attributes","_e$nativeElement","_CompAvatarTalkComponent","_CompAvatarTalkComponent_Factory","ActivatedRoute","_CompAvatarTalkComponent_Query","avatarComp","_CompAvatarTalkComponent_Template","_CompAvatarTalkComponent_Template_ion_button_click_33_listener","_CompAvatarTalkComponent_Template_ion_button_click_39_listener","menu_r3","toggle","tmp_10_0","IonCardContent","IonCardHeader","IonCardSubtitle","IonCardTitle","IonChip","IonMenu","AvatarRoutes","component","runGuardsAndResolvers","AvatarModule","_AvatarModule","_AvatarModule_Factory","forChild","FmVideoComponent","canvasStyle","crossOrigin","ngOnChanges","currentValue","muted","loop","controls","playsInline","load","canvasRef","getContext","videoWidth","videoHeight","drawFrame","ended","drawImage","requestAnimationFrame","_FmVideoComponent","_FmVideoComponent_Factory","_FmVideoComponent_Query","ɵɵNgOnChangesFeature","_FmVideoComponent_Template","static","CompAvatarRoleVideoComponent","onClose","videoMap","emit","back","_this$fmodeChat$avata2","_this$videoMap","playVideo","avatarVideo","_CompAvatarRoleVideoComponent","_CompAvatarRoleVideoComponent_Factory","_CompAvatarRoleVideoComponent_Query","outputs","_CompAvatarRoleVideoComponent_Template","_CompAvatarRoleVideoComponent_Template_ion_button_click_3_listener","_CompAvatarRoleVideoComponent_Template_ion_button_click_6_listener","ChatListComponent","stopPropagation","goSession","isPreventGo","_this65","handler","_this66","placeholder","_this67","_ChatListComponent","_ChatListComponent_Factory","_ChatListComponent_Template","NgForOf","FmChatHeaderArea","_FmChatHeaderArea","_FmChatHeaderArea_Factory","_FmChatHeaderArea_Template","_FmChatHeaderArea_Template_ion_modal_willDismiss_2_listener","applicationId","initialize","_Parse__default$serve","AuthService","isGuardLock","guardMap","loginTypeCount","_Object$values","logoUrl","_logoUrl","novaCloud","isModalShow","showBackHome","mobilepwd","isLoggedIn","LoginPage","mobileUserMap","toast","_this68","guardType","saveParamsInvite","checkLoginLock","checkLogin","setAccount","redirectUrl","_this69","_this69$account","_i3","account","_this70","logIn","_ref12","_e$get8","bindInvite","setCurrentUserLocalStorage","refreshPage","_x17","_Parse__default$User$6","navigateByUrl","skipLocationChange","_e$get9","_e$get10","logout","clear","logOut","_this71","getMobileUser","_ref13","_x18","signMobilePassword","_this72","_ref14","signUpAndUpdate","_x19","_x20","_this73","username","_this74","signUp","_ref15","_x21","getMobileCodeToken","_this75","_Parse__default$serve2","toPromise","loginCode","_this76","become","_n$error","_n$error2","mess","_this77","_e8","_e9","_e10","invite","_AuthService","_AuthService_Factory","AccountService","billing","usedDetail","wxAppId","wxpayEnabled","appid","getBilling","getProfile","getUserOpenid","_this78","_Parse__default$User$7","_this79","_Parse__default$User$8","_e11","_this80","userAgent","toLowerCase","getQueryStringByName","_o$_this80$appid","openid","getwechat","authWechat","encodeURIComponent","_this81","_ref16","post","_ref17","removeItem","_x24","_ref18","_x25","_x22","_x23","getWXSignPackageInWechat","_Parse__default$User$9","wx","config","debug","appId","timestamp","nonceStr","signature","jsApiList","shareInfo","link","imgUrl","success","ready","updateAppMessageShareData","updateTimelineShareData","saveAccountLog","_this82","uid","orderid","warn","_AccountService","_AccountService_Factory","CompUserAvatarComponent","novaAccount","getType","refresh","_this83","_this$user","_this$user2","_this$user3","_this$user4","_CompUserAvatarComponent","_CompUserAvatarComponent_Factory","_CompUserAvatarComponent_Template","NzAvatarComponent","DurationStrPipe","_DurationStrPipe","_DurationStrPipe_Factory","FmChatMessageCard","copyServ","_this84","_this84$message","_this84$message2","_this84$message3","_this84$tts","_this84$tts2","_this84$message4","_e12","_this84$message7","_e15","_e18","_this84$message5","_this84$message6","_e13","_e14","saveSession","_e16","updateVoiceDuration","_e17","_this$message","_this$chat","_this85","_this85$message","_FmChatMessageCard","_FmChatMessageCard_Factory","_FmChatMessageCard_Template","tmp_4_0","bubble","fontSize","NzIconDirective","CompRolePromptComponent","modalController","showModal","getChatPrompt","contains","_this$cross","_this86","_CompRolePromptComponent","_CompRolePromptComponent_Factory","_CompRolePromptComponent_Template","_CompRolePromptComponent_Template_ion_modal_willDismiss_1_listener","FmChatMesssageArea","_this$chatServ$chatMa","chatId","ngDoCheck","_FmChatMesssageArea","_FmChatMesssageArea_Factory","_FmChatMesssageArea_Template","ɵɵconditional","ModalAudioMessageComponent","isRecording","_this$player","_this87","_this87$voiceServ","_this87$voiceServ2","_this87$voiceServ3","_this87$voiceServ4","_this87$chat","saveChatVoice","_this88","_Parse__default$User$10","_this88$chatVoice","_this88$uploadServ","_this88$chatVoice2","_this88$chatVoice3","chatVoice","_this89","_this89$chat","_this89$chat2","_this89$chat3","_this89$chatVoice","_this89$chatVoice2","_this$modal","modal","_this$modal2","_ModalAudioMessageComponent","_ModalAudioMessageComponent_Factory","_ModalAudioMessageComponent_Template","FmChatModalInput","closeAudio","_this$audioComp","audioComp","isAudioModal","_this90","clientHeight","audioModalHeightPoint","modalCtrl","componentProps","onBreakPointSet","_e19","setCurrentBreakpoint","breakpoints","initialBreakpoint","imagineServ","loadModel","userInputComp","setFocus","_this91","_this91$chat","_this92","_this92$chat","ctrlKey","_this93","_this93$chat","_this93$chat2","_this93$chat3","checkBalance","_this94","_this94$chatServ","_e$credit","balance","getChatShare","_this95","_this95$chat","toggleChatShare","_this96","_this96$chat","_this96$chat2","_t11","_this96$chat3","_Parse__default$User$11","_this96$chat4","_this96$chat5","_this96$chat6","chatShareSuccessMessage","_FmChatModalInput","_FmChatModalInput_Factory","NzMessageService","_FmChatModalInput_Query","_FmChatModalInput_Template","tmp_5_0","imageEnabled","NgClass","NgControlStatus","NgModel","NzModalComponent","NzModalContentDirective","ChatPanelComponent","_window$location$path","_this$contentComp","_this$contentComp2","contentComp","_this97","queryParams","_ref20","_window$location$path2","sayWelcome","_x26","_this$fmodeChat$voice","enabled","loadMask","_ChatPanelComponent","_ChatPanelComponent_Factory","_ChatPanelComponent_Query","maskId","ngContentSelectors","_ChatPanelComponent_Template","ɵɵprojectionDef","_AMapSecurityConfig","securityJsCode","PageMapStartComponent","initMap","_this98","createMap","_this99","AMap","version","Map","addMarks","_this100","Marker","setCenter","setZoom","marker","_e$marker","planRoute","plugin","city","panel","policy","TransferPolicy","LEAST_TIME","Transfer","LngLat","_PageMapStartComponent","_PageMapStartComponent_Factory","attrs","_PageMapStartComponent_Template","_PageMapStartComponent_Template_button_click_3_listener","CompPoiPickerComponent","_name","nameChange","_address","addressChange","_location","locationChange","onWillDismiss","detail","openModal","_this101","container","goCurrentCenter","Geolocation","enableHighAccuracy","timeout","maximumAge","showButton","buttonPosition","buttonOffset","Pixel","showMarker","showCircle","panToLocation","zoomToAccuracy","addControl","getCurrentPosition","getLng","getLat","PlaceSearch","pageSize","pageIndex","autoFitView","on","selected","GeoPoint","lat","lng","createCenterMarker","centerMarker","getCenter","offset","getPosition","_CompPoiPickerComponent","_CompPoiPickerComponent_Factory","_CompPoiPickerComponent_Query","_CompPoiPickerComponent_Template","_CompPoiPickerComponent_Template_ion_button_click_0_listener","_CompPoiPickerComponent_Template_ion_modal_willDismiss_2_listener","TextValueAccessor","CompPoiPickerModule","_CompPoiPickerModule","_CompPoiPickerModule_Factory","forRoot","PagePlanRouteComponent","currentTab","_this$placeList","_this102","_this103","_e$marker2","_this104","_PagePlanRouteComponent","_PagePlanRouteComponent_Factory","_PagePlanRouteComponent_Template","_PagePlanRouteComponent_Template_ion_segment_button_click_1_listener","_PagePlanRouteComponent_Template_ion_segment_button_click_4_listener","IonSegmentButton","SelectValueAccessor","PageLocaScatterComponent","_this105","createLoca","_this106","loca","Loca","Container","GeoJSONSource","ScatterLayer","zIndex","opacity","visible","zooms","setSource","setStyle","borderWidth","texture","animate","Dat","addLayer","_this107","zoom","showLabel","mapStyle","viewMode","_PageLocaScatterComponent","_PageLocaScatterComponent_Factory","_PageLocaScatterComponent_Template","routes","FmodeMapModule","_FmodeMapModule","_FmodeMapModule_Factory","HwobsService","Attachment","host","bucketName","obsClient","access_key_id","secret_access_key","server","listDir","listObjects","Bucket","Delimiter","CommonMsg","Status","InterfaceResult","Contents","Owner","ID","CommonPrefixes","dirs","uploadFile","_this108","checkFileExists","putObject","SourceFile","_ref21","_x27","_x28","_this109","_i4","getFileHash","_this110","_ref22","crypto","subtle","digest","from","_x29","_HwobsService","_HwobsService_Factory","HwobsManagerComponent","prefix","hwobs","_this111","_HwobsManagerComponent","_HwobsManagerComponent_Factory","_HwobsManagerComponent_Template","_HwobsManagerComponent_Template_ion_item_click_6_listener","FmodeStorgeModule","_FmodeStorgeModule","_FmodeStorgeModule_Factory","WechatJssdkService","isInit","isWechat","wechatAccountId","setCurrentPageShareInfo","_this112","_Parse__default$User3","initUserOpenid","_this113","_Parse__default$User4","_this114","_ref23","_ref24","_x32","_ref25","_x33","_x30","_x31","loadScript","_WechatJssdkService","_WechatJssdkService_Factory","LoginComponent","drawCode","getElementById","fillStyle","fillRect","font","nums","fillText","toUpperCase","drawline","drawDot","convertCanvasToImage","moveTo","lineTo","lineWidth","strokeStyle","stroke","display","toDataURL","_this$validateSMSForm","companyId","action","countDownSMS","_e$error","markAsDirty","updateValueAndValidity","smsCode","loginSMS","checkCode","_ref26","_x34","_this115","_Parse__default$serve3","forgetusername","forgetPassword","forgetConfirmpassword","forgerphoneCode","msg","_this116","registName","registIdcard","phoneCode","regpassword","confirmPassword","verifyCode","queryUser","getSelectEducation","iseducation","_Parse__default$serve4","rootPage","_this117","_ref27","_x35","_this118","_ref28","_x36","_this119","handleCancel","handleOk","_this120","_ref29","_x37","_this121","countDownFun","_this122","_this123","_ref30","_x38","_x39","_this124","fb","activatedRoute","str","tabIndex","loading","Lesson","myDate","isOkLoading","mobileLogin","logo","qrcode","userNameAsyncValidator","duplicated","smsAsyncValidator","passwordAsyncValidator","codeAsyncValidator","registIdcardAsyncValidator","test","forgetNameAsyncValidator","forgetPasswordAsyncValidator","forgetConfirmPasswordAsyncValidator","forgetCodeAsyncValidator","registNameAsyncValidator","registPhoneAsyncValidator","registCodeAsyncValidator","regpasswordAsyncValidator","confirmPasswordAsyncValidator","initLoginForm","_ref31","initAppConfig","initCompanyConfig","_x40","_this125","_this125$company","_this125$company2","_this125$company3","_this125$company4","appkey","_this126","_this126$app","_this126$app2","_this126$app3","_this126$app4","_this126$app5","app","group","required","_LoginComponent","_LoginComponent_Factory","FormBuilder","_LoginComponent_Template","_LoginComponent_Template_nz_modal_nzVisibleChange_21_listener","_LoginComponent_Template_nz_modal_nzOnCancel_21_listener","_LoginComponent_Template_nz_modal_nzOnOk_21_listener","loading2","ɵNgNoValidate","DefaultValueAccessor","NgControlStatusGroup","FormGroupDirective","FormControlName","NzInputDirective","NzInputGroupComponent","NzInputGroupWhitSuffixOrPrefixDirective","NzButtonComponent","ɵNzTransitionPatchDirective","NzWaveDirective","NzSpinComponent","NzTabSetComponent","NzTabComponent","NzColDirective","NzRowDirective","NzFormDirective","NzFormItemComponent","NzFormLabelComponent","NzFormControlComponent","ModalUserLoginComponent","countdown","password2","handleEscapeKey","updateDrawCode","_this$loginInfo$code","_Parse__default$serve5","time","focusSmsCodeInput","smsCodeInput","_this127","_this127$loginInfo$co","_this128","canvasDom","setAttribute","translate","rotate","randomColor","beginPath","_ModalUserLoginComponent","_ModalUserLoginComponent_Factory","_ModalUserLoginComponent_Query","hostBindings","_ModalUserLoginComponent_HostBindings","_ModalUserLoginComponent_keydown_escape_HostBindingHandler","ɵɵresolveDocument","_ModalUserLoginComponent_Template","_ModalUserLoginComponent_Template_div_click_0_listener","_ModalUserLoginComponent_Template_div_click_1_listener","_ModalUserLoginComponent_Template_div_click_7_listener","_ModalUserLoginComponent_Template_input_ngModelChange_13_listener","_ModalUserLoginComponent_Template_input_ngModelChange_15_listener","_ModalUserLoginComponent_Template_input_ngModelChange_17_listener","_ModalUserLoginComponent_Template_button_click_19_listener","CheckboxControlValueAccessor","RequiredValidator","MaxLengthValidator","NgForm","CaptchaComponent","canvas_id","changeVal","onEnter","innerText","keyCode","_CaptchaComponent","_CaptchaComponent_Factory","_CaptchaComponent_Query","_CaptchaComponent_Template","elseTemplate_r3","UserNamePipe","_n","_n2","_n3","_n4","_n5","toJSON","nickname","repeat","_UserNamePipe","_UserNamePipe_Factory","UserRoutes","UserModule","_UserModule","_UserModule_Factory","StaffModule","_StaffModule","_StaffModule_Factory","StaffService","isPeiZhu","checkIsPeiZhu","checkStaff","_this129","_this129$staff","_this129$staff2","staff","loadStaffByUser","redirectURL","_this130","_o","_o2","_o3","realStaff","_this131","_this131$realStaff","peizhuJob","_e$jobs","jobs","_StaffService","_StaffService_Factory","AuthStaffGuard","staffServ","canActivate","_AuthStaffGuard","_AuthStaffGuard_Factory","AuthProfileService","profileId","_profileId","profilePointer","_companyId","companyPointer","_user","_this132","_this132$profile","_this133","_e$get11","_e$get12","_this133$user","_e$get13","_e$get14","checkProfile","_this134","_t12","setCurrentProfileLocalStorage","_t13","_this135","leader","isManager","isLeader","_AuthProfileService","_AuthProfileService_Factory","AuthProfileGuard","authProfileServ","_AuthProfileGuard","_AuthProfileGuard_Factory","ProfileBindComponent","onResize","authProfile","loadProfiles","_this136","_this136$profile","_e20","_e21","_this137","_this137$profileList","warning","goProfileManage","nzTitle","nzContent","nzOnOk","_ProfileBindComponent","_ProfileBindComponent_Factory","NzModalService","_ProfileBindComponent_HostBindings","_ProfileBindComponent_resize_HostBindingHandler","ɵɵresolveWindow","_ProfileBindComponent_Template","elseTemplate_r9","AuthPcuserGuard","authService","_AuthPcuserGuard","_AuthPcuserGuard_Factory","ProfileRoutes","ProfileModule","_ProfileModule","_ProfileModule_Factory","MODULE_PATH_NEED"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/fmode-ng/fesm2022/fmode-ng.mjs"],"sourcesContent":["\n /**\n * @copyright © 未来飞马 © 未来全栈 www.fmode.cn \n * 版权所有 © 未来飞马 © 江西脑控科技有限公司 Copyright © Fmode Technology Co., Ltd.\n * 保留所有权利 All Rights Reserved.\n * /home/ryan/workspace/nova/nova-admin/dist/fmode-ng/fesm2022/fmode-ng.mjs\n */\n import*as i0 from\"@angular/core\";import{Injectable,Pipe,Component,Input,ViewChild,NgModule,EventEmitter,Output,HostListener}from\"@angular/core\";import*as i1$1 from\"@angular/router\";import{RouterModule}from\"@angular/router\";import{finalize,Subject,Observable,bufferTime,concatMap,delay,combineLatest}from\"rxjs\";import*as Parse from\"parse\";import Parse__default from\"parse\";import{PromptTemplate}from\"@langchain/core/prompts\";import{SpeechSynthesizer}from\"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/SpeechSynthesizer\";import{SpeechConfig}from\"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/SpeechConfig\";import{ResultReason}from\"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/ResultReason\";import{AudioConfig}from\"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Audio/AudioConfig\";import{PushAudioOutputStreamCallback}from\"microsoft-cognitiveservices-speech-sdk/distrib/lib/src/sdk/Audio/PushAudioOutputStreamCallback\";import{bufferWhen,takeUntil,filter}from\"rxjs/operators\";import*as i1 from\"@angular/common/http\";import{HttpClientModule}from\"@angular/common/http\";import*as i2 from\"@ionic/angular\";import{IonicModule,ModalController,IonModal as IonModal$1}from\"@ionic/angular\";import*as i2$2 from\"@angular/common\";import{DatePipe,CommonModule}from\"@angular/common\";import{Camera,CameraSource,CameraResultType}from\"@capacitor/camera\";import{Capacitor}from\"@capacitor/core\";import{Filesystem}from\"@capacitor/filesystem\";import{FilesystemWeb}from\"@capacitor/filesystem/dist/esm/web.js\";import*as qiniu from\"qiniu-js\";import*as i2$1 from\"@awesome-cordova-plugins/diagnostic/ngx\";import{Diagnostic}from\"@awesome-cordova-plugins/diagnostic/ngx\";import CryptoJS from\"crypto-js\";import{MediaCapture}from\"@awesome-cordova-plugins/media-capture\";import SparkMD5 from\"spark-md5\";import{mathjax}from\"mathjax-full/js/mathjax\";import{TeX}from\"mathjax-full/js/input/tex\";import{SVG}from\"mathjax-full/js/output/svg\";import{CHTML}from\"mathjax-full/js/output/chtml\";import{AllPackages}from\"mathjax-full/js/input/tex/AllPackages\";import{liteAdaptor}from\"mathjax-full/js/adaptors/liteAdaptor\";import{RegisterHTMLHandler}from\"mathjax-full/js/handlers/html\";import hljs from\"highlight.js\";import MarkdownIt from\"markdown-it\";import $ from\"jquery\";import abbr from\"markdown-it-abbr\";import footnote from\"markdown-it-footnote\";import deflist from\"markdown-it-deflist\";import mark from\"markdown-it-mark\";import ins from\"markdown-it-ins\";import sub from\"markdown-it-sub\";import sup from\"markdown-it-sup\";import ruby from\"markdown-it-ruby\";import plantumlEncoder from\"plantuml-encoder\";import*as i1$2 from\"@angular/platform-browser\";import{Clipboard}from\"@capacitor/clipboard\";import Recorder from\"recorder-core\";import\"recorder-core/src/engine/pcm\";import\"recorder-core/src/engine/wav\";import\"recorder-core/src/extensions/waveview\";import*as i7 from\"@angular/forms\";import{FormsModule,ReactiveFormsModule,Validators}from\"@angular/forms\";import*as BABYLON from\"@babylonjs/core\";import\"@babylonjs/loaders\";import*as i2$3 from\"@ionic/angular/standalone\";import{IonIcon,IonToolbar,IonButtons,IonButton,IonList,IonLabel,IonNote,IonAvatar,IonItem,IonText,IonModal,IonTitle,IonHeader,IonCard,ModalController as ModalController$1,IonSegment,IonSpinner,IonTextarea,IonPopover,IonContent,IonInput,IonCheckbox}from\"@ionic/angular/standalone\";import*as i3 from\"ng-zorro-antd/avatar\";import{NzAvatarModule}from\"ng-zorro-antd/avatar\";import*as i5 from\"ng-zorro-antd/icon\";import{NzIconModule}from\"ng-zorro-antd/icon\";import{NzSanitizerPipe}from\"ng-zorro-antd/pipes\";import*as i4 from\"ng-zorro-antd/message\";import{NzMessageModule}from\"ng-zorro-antd/message\";import*as i3$1 from\"ng-zorro-antd/modal\";import{NzModalModule}from\"ng-zorro-antd/modal\";import*as AMapLoader from\"@amap/amap-jsapi-loader\";import ObsClient from\"esdk-obs-browserjs\";import*as i8 from\"ng-zorro-antd/input\";import{NzInputModule}from\"ng-zorro-antd/input\";import*as i9 from\"ng-zorro-antd/button\";import{NzButtonModule}from\"ng-zorro-antd/button\";import{NzRadioModule}from\"ng-zorro-antd/radio\";import*as i13 from\"ng-zorro-antd/spin\";import{NzSpinModule}from\"ng-zorro-antd/spin\";import*as i14 from\"ng-zorro-antd/tabs\";import{NzTabsModule}from\"ng-zorro-antd/tabs\";import*as i16 from\"ng-zorro-antd/form\";import{NzFormModule}from\"ng-zorro-antd/form\";import*as i10 from\"ng-zorro-antd/core/transition-patch\";import*as i11 from\"ng-zorro-antd/core/wave\";import*as i15 from\"ng-zorro-antd/grid\";class AgentPrompt{constructor(){}jsonCompletion(e,t){let n,o=new FmodeChatCompletion([{role:\"user\",content:e}]);return o.model=t||\"fmode-4.5-128k\",o.sendCompletion({isDirect:!0}).pipe(finalize((()=>{let e;console.log(n),n.json=this.extractAndParseJson(e),n.complete=!0})))}extractAndParseJson(e){let t=e.indexOf(\"{\");if(-1===t)return{};let n=0,o=t;for(let i=t;i<e.length;i++)if(\"{\"===e[i]?n++:\"}\"===e[i]&&n--,0===n){o=i;break}if(0!==n)return{};const i=e.slice(t,o+1);try{return JSON.parse(i)}catch(e){return console.error(\"Failed to parse JSON:\",e),{}}}extractMarkdownToMultiArray(e){let t=e.split(\"\\n\"),n=[],o=n,i=[n];for(let e of t){if(!e.trim())continue;if(e.startsWith(\"#\")){let t=e.replace(/^#+\\s*/,\"\");o.push([t]);continue}let t=e.search(/\\S/)/2,n=e.trim().replace(/^-+\\s*/,\"\");for(;t<i.length-1;)i.pop();for(;t>i.length-1;){let e=[];i[i.length-1].push(e),i.push(e)}o=i[i.length-1],o.push(n)}return n}async getFormatTpl(e,t){let n=await this.getPromptTpl(e);return await n.format(t)}async getPromptTpl(e){let t=new Parse__default.Query(\"PromptTemplate\");t.equalTo(\"code\",e);let n=await t.first();return PromptTemplate.fromTemplate(n?.get(\"template\"),{templateFormat:\"mustache\"})}getTokens(e){return e=e||\"\",2*e?.length}}class AudioPlayer{static{this.instance=null}constructor(){this.audio=new Audio}static getInstance(){return AudioPlayer.instance||(AudioPlayer.instance=new AudioPlayer),AudioPlayer.instance}setAudioEvent(e,t){this.audio[e]=t}get duration(){return this.audio.duration}get src(){return this.audio.src}stop(){this.audio.pause()}async play(e){return new Promise(((t,n)=>{this.audio.src!==e?(this.audio.src=e,this.audio.play().then((()=>{t()})).catch((()=>{n()}))):this.audio.paused?this.audio.play().then((()=>{t()})).catch((()=>{n()})):this.audio.pause()}))}}class FmPushAudioOutputStreamCallback extends PushAudioOutputStreamCallback{constructor(){super(),this.audioDataSubject=new Subject,this.playedSubject=new Subject,this.isPlaying=!1,this.isClosed=!1,this.audioBufferQueue=[],this.maxBufferSize=10,this.writeCount=0,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.audioDataSubject.pipe(bufferWhen((()=>this.playedSubject)),takeUntil(this.audioDataSubject.pipe(filter((()=>this.isClosed))))).subscribe((e=>{this.playAudio(e)}))}async write(e){this.writeCount++,10==this.writeCount&&this.playedSubject.next(!0),this.audioDataSubject.next(e)}async playAudio(e){this.isPlaying=!0;const t=this.mergeArrayBuffers(e);let n;try{n=await this.audioContext.decodeAudioData(t)}catch(e){}if(n){const e=this.audioContext.createBufferSource();e.buffer=n,e.connect(this.audioContext.destination),e.start(),await new Promise((t=>{e.onended=t})),this.playedSubject.next(!0)}this.isPlaying=!1}mergeArrayBuffers(e){const t=e.reduce(((e,t)=>e+t.byteLength),0),n=new Uint8Array(t);let o=0;for(const t of e){const e=new Uint8Array(t);n.set(e,o),o+=e.length}return n.buffer}async stop(){this.isClosed=!0,this.audioDataSubject&&this.audioDataSubject.unsubscribe(),this.playedSubject&&this.playedSubject.unsubscribe(),this.audioContext&&this.audioContext.close()}async close(){console.log(\"close 数据加载完成\"),this.isClosed=!0}}class FmodeTTS{stop(){this.audioPlayer&&this.audioPlayer?.stop(),this.audioStream&&this.audioStream?.stop()}constructor(e,t){this.isPlaying=!1,this.uploadServ=t,this.subscriptionKey=e?.subscriptionKey,this.authorizationToken=e?.token,this.region=e?.region,this.subscriptionKey&&(this.speechConfig=SpeechConfig.fromSubscription(this.subscriptionKey,this.region)),this.authorizationToken&&(this.speechConfig=SpeechConfig.fromAuthorizationToken(this.authorizationToken,this.region)),this.audioStream=new FmPushAudioOutputStreamCallback,this.audioConfig=AudioConfig.fromStreamOutput(this.audioStream),this.synthesizer=new SpeechSynthesizer(this.speechConfig,this.audioConfig),this.audioPlayer=AudioPlayer.getInstance()}extractTextFromXML(e){const t=/>([^<]+)</g;let n,o=[];for(;null!==(n=t.exec(e));){const e=n[1].trim();e&&o.push(e)}return o.join(\" \")}extractSSMLContent(e){var t=e.match(/<speak.*?<\\/speak>/s);return t?t[0]:e}async speakAsync(e,t,n){if(!t){let n=Parse__default.Object.extend(\"ChatVoice\");(t=new n).set(\"ssml\",e),t.set(\"content\",this.extractTextFromXML(e));let o=localStorage.getItem(\"company\");o&&t.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:o}),Parse__default.User.current()?.id&&t.set(\"user\",Parse__default.User.current().toPointer())}if(!t?.get(\"voiceFile\")){let n=[];t?.get(\"content\")&&n.push({content:t?.get(\"content\")}),e&&n.push({ssml:e});let o=Parse__default.Query.fromJSON(\"ChatVoice\",{include:\"voiceFile\",where:{$or:n}}),i=await o.first();t.set(\"voiceFile\",i?.get(\"voiceFile\"))}return t?.get(\"voiceFile\")?(this.playAudioData(t?.get(\"voiceFile\")?.get(\"url\"),t,n),t):(e=this.extractSSMLContent(e),this.isPlaying=!0,new Promise(((o,i)=>{const a=Date.now();let r=\"speakTextAsync\";e?.indexOf(\"<\")>-1&&(r=\"speakSsmlAsync\"),e=this.fixMarkdownChar(e),this.eventMap?.onSpeakBefore&&this.eventMap?.onSpeakBefore(),this.synthesizer[r](e,(e=>{if(console.log(e),e.reason===ResultReason.SynthesizingAudioStarted&&(this.isPlaying=!0),e.reason===ResultReason.SynthesizingAudioCompleted){this.eventMap?.onAudioCompleted&&this.eventMap?.onAudioCompleted();const i=Date.now();let r=e?.audioData;t.set(\"duration\",Number(e?.audioDuration)/1e4),this.playAudioData(r,t,n),console.log(`Audio synthesis finished. Duration: ${i-a} ms`),setTimeout((()=>{this.isPlaying=!1,n?.onStop()&&n?.onStop()}),2e3),o(t)}else i(`Speech synthesis failed. Reason: ${e.errorDetails}`)}),(e=>{i(`Error occurred during synthesis: ${e}`)}))})))}onBreak(e){}fixMarkdownChar(e){return e.replaceAll(\"*\",\"\")}async playAudioData(e,t,n){let o;if(console.log(\"audioData\",e),!(e?.indexOf&&e?.indexOf(\"http\")>=-1)){let n=new Blob([e],{type:\"audio/wav\"});return o=URL.createObjectURL(n),void this.uploadAndSaveVoice(n,t)}o=e;let i=this.audioPlayer;n?.onStart&&n?.onStart(t),this.isPlaying=!0,i.setAudioEvent(\"onloadeddata\",(()=>{let e=1e3*i.duration;console.log(\"duration\",e),t?.get(\"duration\")||(t?.set(\"duration\",e),t?.save()),n?.onLoaded&&n?.onLoaded(i)})),console.log(\"event setting\"),i.setAudioEvent(\"onabort\",(()=>{this.isPlaying=!1,n?.onStop&&n?.onStop()})),i.setAudioEvent(\"onerror\",(()=>{this.isPlaying=!1,n?.onStop&&n?.onStop()})),i.setAudioEvent(\"onpause\",(()=>{this.isPlaying=!1,n?.onStop&&n?.onStop()})),i.setAudioEvent(\"onended\",(()=>{this.isPlaying=!1,n?.onStop&&n?.onStop()})),i.setAudioEvent(\"onclose\",(()=>{this.isPlaying=!1,n?.onStop&&n?.onStop()})),console.log(\"playAudio\",o);let playAudio=()=>{i.play(o).then((()=>{})).catch((()=>{setTimeout((()=>{console.log(\"playAudio\"),playAudio()}),200)}))};playAudio()}async uploadAndSaveVoice(e,t){if(console.log(\"blob\",e),this.uploadServ){let n=t?.id||this.uploadServ?.genMd5(t?.get(\"content\")||t?.get(\"ssml\")),o=new Date,i=n+o.getFullYear()+(o.getMonth()+1)+o.getDate()+o.getHours()+o.getMinutes()+o.getSeconds()+\".wav\",a=new File([e],i,{type:\"audio/wav\"}),r=await this.uploadServ.upload(a,(e=>{console.log(e)})),s={__type:\"Pointer\",className:\"Attachment\",objectId:r?.id};return s?.objectId&&(t.set(\"voiceFile\",s),t=await t.save()),r?.url}return null}}const API_BASE=\"https://server.fmode.cn/api/apig/aigc/gpt\",agentPrompt=new AgentPrompt,PromptTplTalkSSMLOutputCode=\"talk-ssml-output-tpl\",PromptTplTalkTextSSMLCode=\"talk-text-ssml-tpl\";function getMessageContentText(e){let t=\"\";return\"string\"==typeof e&&(t=e),\"object\"==typeof e&&(t=e?.find((e=>e?.text))?.text||\"\"),t}function getMessageImageUrl(e){return\"object\"==typeof e?e?.find((e=>e?.image_url))?.image_url?.url||\"\":null}class FmodeChat{showAvatar(){this.avatarConfig=this.role?.get(\"avatarConfig\"),this.avatarConfig&&(this.isAvatarShow=!0,this.avatarConfig?.image&&(this.avatarConfig.image.waiting=this.avatarConfig.image.waiting||this.role?.get(\"thumb\")||this.role?.get(\"avatar\"),this.avatarMode=\"image\"),this.avatarConfig?.video&&(this.avatarConfig.video.waiting=this.avatarConfig.video.waiting,this.avatarMode=\"video\"))}scrollToBottom(e){e=e||this.scrollComp,e?.nativeElement?.scrollHeight&&(e.nativeElement.scrollTop=e.nativeElement.scrollHeight)}constructor(e,t,n,o,i,a,r){this.ChatSession=Parse__default.Object.extend(\"ChatSession\"),this.messageList=[{role:\"system\",content:\"系统提示:AI仅供参考\"}],this.latestAIResponse=\"\",this.userInput=\"\",this.userImage=\"\",this.isDirect=!1,this.hideShare=!1,this.hideModalSelect=!1,this.hideInputPreview=!1,this.isAvatarShow=!1,this.avatarMode=\"\",this.isPromptModalOpen=!1,this.isPromptMessageAreaShow=!0,this.promptList=[],this.focusUserInput=()=>{},this.leftButtons=[{title:\"灵感\",icon:\"color-wand-outline\",onClick:()=>{this.isPromptModalOpen=!0},show:()=>this?.promptList?.length},{title:\"角色\",icon:\"people-outline\",onClick:()=>{this.navCtrl?.navigateRoot(\"/chat/pro/mask\")},show:()=>!0},{title:\"呼叫\",icon:\"call-outline\",onClick:()=>{this.chatServ?.callRole(this.role)},show:()=>this?.role?.get(\"voiceConfig\")}],this.isVoiceInputMode=!1,this.isTexting=!1,this.isTalkMode=!1,this.SSMLRoleVoice=\"zh-CN-XiaoxiaoNeural\",this.playAnimation=e=>{console.log(e)},this.welcome=async()=>{let e=this.messageList?.filter((e=>\"assistant\"==e?.role));if(e?.length)return;let t=Parse__default.User.current(),n=await this.loadSelf(\"Person\",\"userVerify\"),o=await this.loadSelf(\"Profile\",\"user\"),i=t?.get(\"nickname\")||o?.get(\"name\")||t?.get(\"realname\")||t?.get(\"name\"),a=n?.get(\"name\")||n?.get(\"userVefiry\")?.get(\"realname\")||n?.get(\"userVefiry\")?.get(\"nickname\");n?.get(\"userVerify\")?.id==t?.id&&(a=\"您\");let r=this.role.get(\"voiceConfig\")?.welcome?.prompt;if(this.role.get(\"voiceConfig\")?.welcome?.promptList?.length){let e=this.role.get(\"voiceConfig\")?.welcome?.promptList;r=e[Math.floor(Math.random()*e.length)]}if(!r)return;let s=await PromptTemplate.fromTemplate(r,{templateFormat:\"mustache\"}).format({name:i,userName:i,personName:a,timeOfDay:this.getTimeOfDay()}),l=await this.getVoiceByContentText(s),c={role:\"assistant\",voice:l,content:s,complete:!0};this.voiceMap[l?.id],this.playChatVoice(this.voiceMap[l?.id]),this.messageList.push(c)},this.self={},this.voiceMap={},this.VoiceTTSMap={},this.chatServ=o,this.role=t,this.sessionId=e,this.navCtrl=i,this.ncloud=a,this.uploadServ=r,n?.id&&(this.chatSession=n,this.messageList=this.chatSession.get(\"messageList\"),this.sessionId=n?.id),this.role?.id&&(this.voiceConfig=this.role?.get(\"voiceConfig\"),this.voiceConfig?.autoTalk&&(this.isTalkMode=!0,this.isDirect=!0))}getTimeOfDay(){const e=(new Date).getHours();return e>=5&&e<12?\"早上\":e>=12&&e<14?\"中午\":e>=14&&e<18?\"下午\":\"晚上\"}async loadSelf(e,t){if(this.self[e])return this.self[e];let n=Parse__default.User.current(),o=new Parse__default.Query(e);return o.include(t),o.equalTo(t,n?.id),this.self[e]=await o.first(),this.self[e]}async loadTalkSystemPrompt(e){if(!this.isTalkMode)return;if(!e)return;\"男\"==e?.get(\"gender\")?this.SSMLRoleVoice=\"zh-CN-YunyeNeural\":this.SSMLRoleVoice=\"zh-CN-XiaoxiaoNeural\",this.SSMLRoleVoice=e?.get(\"voiceConfig\")?.voice||this.SSMLRoleVoice;let t=await agentPrompt.getFormatTpl(\"talk-ssml-output-tpl\",{SSMLRoleVoice:this.SSMLRoleVoice}),n=e.get(\"prompt\")||\"请你扮演飞码AI的人工智能专家。\";n+=t;let o={role:\"user\",content:n,hidden:!0},i=this.messageList?.map((e=>e?.content)).join();if(i.indexOf(n)>-1)return;let a=this.messageList?.findIndex((e=>\"system\"==e?.role)),r=a+1;this.messageList.splice(r,0,o)}loadRolePrompt(){let e=this.role?.get(\"prompt\"),t={role:\"user\",content:e,hidden:!0};if(!e)return;let n=this.messageList?.map((e=>e?.content)).join();if(n.indexOf(e)>-1)return;let o=this.messageList?.findIndex((e=>\"system\"==e?.role)),i=o+1;this.messageList.splice(i,0,t)}async sendMessage(e=\"FmodeAiTest测试问题\",t,n,o,i){if(this.scrollToBottom&&this.scrollToBottom(),this.isPromptMessageAreaShow=!1,this.loadRolePrompt(),t){let n={role:\"user\",content:[{type:\"image_url\",image_url:{url:t}},{type:\"text\",text:e}],complete:!0,createdAt:new Date};i&&(n.voice={id:i?.id}),this.messageList.push({role:\"user\",content:[{type:\"image_url\",image_url:{url:t}},{type:\"text\",text:e}],complete:!0,createdAt:new Date})}else{let t={role:\"user\",content:e,complete:!0,createdAt:new Date};i&&(t.voice={id:i?.id,duration:i?.duration}),this.messageList.push(t)}let a=new FmodeChatCompletion(this.fixMessageList(this.messageList),{model:this.chatServ?.currentModel?.get(\"code\")||\"fmode-4.5-128k\"});this.userInput=\"\",this.userImage=\"\";let r=this.isDirect||!1;this.isTalkMode&&(r=!0);let s=a.sendCompletion({isDirect:r,onComplete:n||null}).pipe(finalize((async()=>{if(this.isTalkMode){let e=this.messageList[a.indexOfList]?.content,t=await this.getVoiceByContentText(e,o);o?.onSSMLComplete&&o?.onSSMLComplete(t),this.messageList[a.indexOfList].voice=t,this.playChatVoice(this.voiceMap[t?.id])}this.messageList[a.indexOfList].complete=!0}))).subscribe((e=>{this.messageList[a.indexOfList]=e,this.latestAIResponse=this.getContentText(e?.content);let t=this.chatSession?.get(\"messageList\")?.length;this.messageList?.length>t&&this.saveChatSession(),e?.complete&&(this.saveChatSession(),s.unsubscribe()),this.scrollToBottom&&this.scrollToBottom()}))}getVoiceByContentText(e,t,n=!1){let o=this.getContentText(e),i=new(Parse__default.Object.extend(\"ChatVoice\")),a=\"\";return this.SSMLRoleVoice=this.role?.get(\"voiceConfig\")?.voice||this.SSMLRoleVoice,new Promise((async(e,t)=>{let resolveChatVoice=async()=>{i.set(\"content\",o),i.set(\"ssml\",a),i.set(\"role\",\"assistant\");let t=localStorage.getItem(\"company\");t&&i.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:t}),Parse__default.User.current()?.id&&i.set(\"user\",Parse__default.User.current().toPointer()),this.chatSession?.id&&i.set(\"session\",this.chatSession?.toPointer()),i=await i.save(),this.voiceMap[i?.id]=i,e({id:i?.id})};if(0==n&&(a=`<speak xmlns=\"http://www.w3.org/2001/10/synthesis\" xmlns:mstts=\"http://www.w3.org/2001/mstts\" xmlns:emo=\"http://www.w3.org/2009/10/emotionml\" version=\"1.0\" xml:lang=\"zh-CN\"><voice name=\"${this.SSMLRoleVoice}\">${o}</voice></speak>`,resolveChatVoice()),1==n){let e=await agentPrompt.getFormatTpl(\"talk-text-ssml-tpl\",{content:o,SSMLRoleVoice:this.SSMLRoleVoice});new FmodeChatCompletion(this.fixMessageList([{role:\"user\",content:e}]),{model:this.chatServ?.currentModel?.get(\"code\")||\"fmode-4.5-128k\"}).sendCompletion({isDirect:!0}).subscribe((async e=>{e?.complete&&(a=this.getContentText(e?.content),resolveChatVoice())}))}}))}getContentText(e){return\"string\"==typeof e?e:e?.[0]?.text||\"\"}async initTTS(){let e=await this.ncloud.apig(\"voice/tts/token\",{company:localStorage.getItem(\"company\")});if(console.log(e),e?.token){return new FmodeTTS(e,this.uploadServ)}return null}stopPlayingVoice(){Object.values(this.VoiceTTSMap).forEach((e=>{e?.isPlaying&&e?.stop()}))}async playChatVoice(e,t){let n=await this.initTTS();if(n){try{this.playAnimation(\"talking\"),n.speakAsync(e?.get(\"ssml\"),e,{onStart:e=>{t?.onStart&&t?.onStart(e)},onLoaded:e=>{t?.onLoaded&&t?.onLoaded(e)},onStop:()=>{t?.onStop&&t?.onStop(),this.playAnimation(\"waiting\")}})}catch(e){console.error(e)}return this.VoiceTTSMap[e.id]=n,n}return null}async saveChatSession(){if(\"new\"==this.sessionId&&(this.chatSession=new this.ChatSession),this.chatSession.set(\"title\",this.genTitle()),this.chatSession.set(\"role\",this.role?.toPointer()),this.chatSession.set(\"messageList\",this.messageList),this.chatSession.set(\"user\",Parse__default.User.current()?.toPointer()),this.chatSession=await this.chatSession.save(),this.sessionId=this.chatSession?.id,this.sessionId){let e=`${window.location.origin}/chat/pro/chat/${this.sessionId}`;window.location?.pathname?.indexOf(\"chat/session\")>-1&&(e=`${window.location.origin}/chat/session/chat/${this.sessionId}`),e=this.getInviteUrl(e),window.history.replaceState(null,null,e+window.location.search);let t={sid:this.chatSession?.id,rid:this.role?.id,name:this.role?.get(\"name\"),message:this.chatSession?.get(\"messageList\")?.[this.chatSession?.get(\"messageList\")?.length-1]?.content?.slice(0,20),latest:this.chatSession?.createdAt};this.chatServ?.chatList?.length||(this.chatServ.chatList=[]);let n=this.chatServ?.chatList?.find((e=>e?.sid==t?.sid));n>-1?this.chatServ.chatList[n]=t:this.chatServ?.chatList.unshift(t)}}getInviteUrl(e){let t=new URL(e),n=Parse__default.User?.current()?.id;return t.searchParams.set(\"invite\",n),t.href}genTitle(){if(this.title)return this.title;let e=this.messageList.find((e=>\"user\"==e.role))?.content;return\"string\"==typeof e&&(this.title=e?.slice(0,15)||\"\"),\"object\"==typeof e&&(this.title=e?.find((e=>e?.text))?.text||\"\"),this.title}fixMessageList(e){return e.map((e=>({role:e.role,content:e.content})))}nowStr(){let e=new Date;return`${e.getFullYear()}/${e.getMonth()+1}/${e.getDate()} ${e.getHours()}:${e.getMinutes()}:${e.getSeconds()}`}}class FmodeChatCompletion{constructor(e,t){this.content=\"\",this.contentBuffer=[],this.isCompleted=!1,this.indexOfList=Number(e.length),this.messages=e,this.model=t?.model||\"fmode-4.5-128k\"}sendCompletion(e={}){e.intTime=e?.intTime||50,e.isDirect=e?.isDirect||!1,e?.isDirect&&(e.intTime=1);let t={messages:this.messages,stream:!0,model:this.model,temperature:.5,presence_penalty:0,frequency_penalty:0};return new Observable((n=>{let o=RequestFmodeChatApi(\"/v1/chat/completions\",t).subscribe((t=>{let i=String(t);if(\"data: [DONE]\"==i&&(this.isCompleted=!0,e?.isDirect&&this.isCompleted&&(n.next({role:\"assistant\",content:this.content,complete:!0,createdAt:new Date}),o.unsubscribe(),e?.onComplete&&e.onComplete({role:\"assistant\",content:this.content,complete:!0,createdAt:new Date}),n.complete())),i.indexOf(\"data: {\")>-1){let t=chunkToJson(i),a=t?.choices?.[0]?.delta?.content||\"\";this.contentBuffer.push(a),e?.isDirect&&(this.content+=a||\"\",this.isCompleted||n.next({role:\"assistant\",cid:t?.id,content:this.content,createdAt:new Date})),e?.isDirect||this.contentPusher||(this.contentPusher=setInterval((()=>{this.isCompleted&&0==this.contentBuffer?.length&&(n.next({role:\"assistant\",cid:t?.id,content:this.content,complete:!0,createdAt:new Date}),o.unsubscribe(),clearInterval(this.contentPusher),n.complete()),this.contentBuffer?.length>=0&&(this.contentBuffer?.length>0&&(this.content+=this.contentBuffer.shift()),n.next({role:\"assistant\",cid:t?.id,content:this.content,createdAt:new Date}))}),e?.intTime))}}))})).pipe(bufferTime(100),concatMap((e=>e)),delay(200))}}function chunkToJson(e){let t;try{t=JSON.parse(e.replaceAll(\"data: \",\"\"))}catch(e){console.error(e)}return t||{}}function RequestFmodeChatApi(e,t,n=\"POST\"){return new Observable((o=>{let i=API_BASE+e,a=`Bearer ${Parse__default.User.current()?.getSessionToken()||localStorage.getItem(\"FMODE_AI_TOKEN\")}`;return t.token=a,t&&(t=JSON.stringify(t)),fetch(i,{headers:{\"Content-Type\":\"text/plain; charset=utf-8\",\"Cache-Control\":\"no-cache\"},body:t||null,method:n,credentials:\"omit\",mode:\"cors\"}).then((e=>{let t=\"\";{let n=e.body?.getReader();const i=new TextDecoder;let a=new ReadableStream({start(e){!function read(){n.read().then((({done:t,value:n})=>{if(t)return e.close(),void o.complete();e.enqueue(n),read()}))}()}}).getReader();a.read().then((function processStream({done:e,value:n}){if(e)return;!function processData(e){let n=(t+e).split(\"\\n\");if(n?.length>1){for(let e=0;e<n.length-1;e++){let t=n[e];o.next(t)}t=n[n.length-1]}}(i.decode(n)),a.read().then(processStream)}))}})).catch((e=>o.error(e))),()=>{}}))}function JsonToFormData(e){const t=new FormData;return function appendFormData(e,n=\"\"){Array.isArray(e)?e.forEach(((e,t)=>{appendFormData(e,`${n}[${t}]`)})):\"object\"==typeof e&&null!==e?Object.keys(e).forEach((t=>{const o=n?`${n}.${t}`:t;appendFormData(e[t],o)})):t.append(n,e)}(e),t}async function ncloudApi(e,t,n=\"POST\",o){e=o+e;try{const o=await fetch(e,{method:n,headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(t),mode:\"cors\",credentials:\"omit\"}),i=await o.json();return!i||200!==i.code&&1!==i.code?null:i.data}catch(e){throw e}}async function novaql(e,t,n){const o=n+\"/novaql/select\";let i={sql:e};t&&t.length>0&&(i.params=JSON.stringify(t));try{const e=await fetch(o,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify(i),mode:\"cors\",credentials:\"omit\"}),t=await e.json();if(t&&200===t.code)return t.data}catch(e){throw e}}async function apig(e,t,n=\"POST\",o){localStorage.setItem(\"NOVA_APIG_SERVER\",\"aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG\"),o||(o=localStorage.getItem(\"NOVA_APIG_SERVER\"),o=decodeURIComponent(atob(o))),e=o+e;let i=Parse__default.User.current(),a={\"Content-Type\":\"application/json\",Authorization:`Bearer ${i?.getSessionToken()}`};try{let o=await fetch(e,{method:n,headers:a,body:t?JSON.stringify(t):null,mode:\"cors\",credentials:\"omit\"});if(!o.ok)throw new Error(`HTTP error! status: ${o.status}`);let i=await o.json();return!i||200!==i.code&&1!==i.code&&0!==i.code?null:i.data}catch(e){throw console.error(\"请求出错\",e),e}}class NovaCloudService{constructor(e){this.http=e,this.serverURL=\"https://server.fmode.cn/api\",localStorage.setItem(\"NOVA_APIG_SERVER\",\"aHR0cHMlM0ElMkYlMkZzZXJ2ZXIuZm1vZGUuY24lMkZhcGklMkZhcGlnJTJG\")}novaql(e,t){return novaql(e,t,this.serverURL)}apig(e,t,n=\"post\"){return apig(e,t,n)}apigTest(e,t,n=\"post\"){return apig(e,t,n,\"https://test.fmode.cn/api/apig/\")}api(e,t,n=\"post\"){return ncloudApi(e,t,n,this.serverURL)}searchParse(e){return e=e||location.href,new URL(e).searchParams}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaCloudService,deps:[{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaCloudService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaCloudService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1.HttpClient}]});class CrossService{getMenuType(){return this.clientWidth=document.body.clientWidth,this.onResizeScreen(),this.navMenuType}constructor(e,t){this.platform=e,this.navCtrl=t,this.mobileWidth=915,this.clientWidth=document.body.clientWidth,this.clientWidth=document.body.clientWidth,this.updateWidth(),this.onResizeScreen()}async dismisModalTop(e,t){let n=await(e?.getTop());n&&(t?.preventDefault&&t?.preventDefault(),n.dismiss(),n.isOpen=!1)}updateWidth(){this.fixInterval=setInterval((()=>{if(this.clientWidth)return clearInterval(this.fixInterval),void delete this.fixInterval;console.log(document.body.clientWidth),this.clientWidth=document.body.clientWidth}),200)}onResizeScreen(e){this.clientWidth=document.body.clientWidth,this.clientWidth>=this.mobileWidth?(this.leftMenuMode=\"horizontal\",this.navMenuType=\"pc\"):(this.leftMenuMode=\"inline\",this.navMenuType=\"mobile\")}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CrossService,deps:[{token:i2.Platform},{token:i2.NavController}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CrossService,providedIn:\"root\"})}}function calcFileMd5(e){return new Promise(((t,n)=>{const o=new FileReader;o.onload=e=>{try{const o=e.target?.result;if(o){const e=new SparkMD5.ArrayBuffer;e.append(o);const n=e.end();t(n)}else n(new Error(\"Failed to load file\"))}catch(e){n(e)}},o.onerror=e=>{n(e)},o.readAsArrayBuffer(e)}))}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CrossService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i2.Platform},{type:i2.NavController}]});class NovaUploadService{constructor(e,t){this.platform=e,this.diagnostic=t,this.maxSize=5242880,this.getUptoken(!0),this.requestPermission(),this.queryDomain()}async upload(e,t){let n,o=e.type,i=e.name?.split(\".\"),a=i[i.length-1];try{n=await calcFileMd5(e)}catch(e){}let r,s,l=this.fileToBlob(e);return r=o.indexOf(\"image\")>-1?await this.saveQiniuImageFile(l,a,null,t):await this.saveQiniuMediaFile(e,l,null,t),r.md5=n,r?.url?.indexOf(\"undefined\")>-1&&(r.url=(this.qiniuDomain||\"https://file-cloud.fmode.cn/\")+r.url.replace(\"undefined/\",\"\")),r?.url&&(s=await this.saveAttachment(r,this.qiniuDomain,null,this.getCompanyId())),s?.id&&(r.id=s?.id),r}isCapacitor(){return this.platform.is(\"capacitor\")||this.platform.is(\"cordova\")}async requestPermission(){this.isCapacitor()&&(await this.requestStoagePermission(),await this.requestCameraPermission())}async requestStoagePermission(){let e=await this.diagnostic.isExternalStorageAuthorized();if(console.log(\"permisson_STORAGE:\",e),!e){await this.diagnostic.requestExternalStorageAuthorization()}}async requestCameraPermission(){let e=await this.diagnostic.isCameraAuthorized();if(console.log(\"permisson_Camera:\",e),!e){await this.diagnostic.requestCameraAuthorization()}}async getUptoken(e=!1){if(console.log(\"getUptoken\"),this.qiniuConf||e)try{console.log(this.getCompanyId());let e=await Parse__default.Cloud.run(\"qiniu_uptoken\",{company:this.getCompanyId()});console.log(e),this.qiniuConf=e}catch(e){console.error(e)}}genFileKey(e,t){let n=new Date,o=new DatePipe(\"en\");return t||(t=this.getCompanyId()),t+\"/\"+o.transform(n,\"yMMdd\")+\"/\"+String(e.id).substr(20,6)+o.transform(n,\"hhmmssSSS\")+/\\.[^\\.]+/.exec(e.name)}getCompanyId(){if(this.company)return this.company;return localStorage.getItem(\"company\")}async queryDomain(){let e=new Parse__default.Query(\"Company\"),t=await e.get(this.getCompanyId());t.get(\"configQiniu\")&&t.get(\"configQiniu\").domain?(console.log(t.get(\"configQiniu\").domain),this.qiniuDomain=t.get(\"configQiniu\").domain):this.qiniuDomain=\"https://file-cloud.fmode.cn\"}async saveAttachment(e,t,n,o){let i=e.url;i.startsWith(\"http\")||(i=t+i),i=i.replace(/undefined\\//,\"\"),o||(o=localStorage.getItem(\"company\"));let a=Parse__default.User.current(),r=new Parse__default.Query(\"Attachment\");r.equalTo(\"url\",i);let s=await r.first();if(s&&s.id)return console.error(\"该文件已存在,无需重复上传\"),s;return s=new(Parse__default.Object.extend(\"Attachment\")),s.set(\"size\",e.size),s.set(\"url\",i),s.set(\"name\",e.name),s.set(\"mime\",e.type),s.set(\"md5\",e?.md5),a?.id&&s.set(\"user\",a.toPointer()),o&&s.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:localStorage.getItem(\"company\")}),n&&s.set(\"category\",{__type:\"Pointer\",className:\"Category\",objectId:n}),await s.save()}async captureVideo(e){if(this.qiniuConf=e,!this.isCapacitor())return;let t=await this.cameraCaptureVideoFile(),n=await this.getMediaFileDataString(t);return await this.saveQiniuMediaFile(t,n)}async cameraCaptureVideoFile(){let e=MediaCapture,t=await e.captureVideo({limit:1});return t?.length>0?t[0]:null}async getMediaFileDataString(e){new FilesystemWeb,e.fullPath.replaceAll(\"///\",\"//\");let t=await Filesystem.stat({path:e.fullPath}),n=Capacitor.convertFileSrc(t.uri),o=await fetch(n),i=await o.blob();if(console.log(i.size),console.log(JSON.stringify(t)),console.log(JSON.stringify(o)),console.log(JSON.stringify(Object.keys(o))),i)return i;throw\"读取文件失败\"}async takePicture(e){if(this.qiniuConf=e,!this.isCapacitor())return;await this.getUptoken();let t=await this.cameraTakePictureDataUrl();if(!t?.dataUrl)return;let n=await this.base64ToBlob(t?.dataUrl),o=await this.saveQiniuImageFile(n,t?.format);return console.log(JSON.stringify(o)),o}async cameraTakePictureDataUrl(){if(!this.isCapacitor())return;return await Camera.getPhoto({quality:90,allowEditing:!1,source:CameraSource.Camera,resultType:CameraResultType.DataUrl})}async saveQiniuImageFile(e,t,n,o){let i=this.maxSize;if(e.size>i)throw await console.log(\"照片过大,超出限制5MB\"),\"超出文件大小\";let a=new DatePipe(\"en\").transform(new Date,\"yyyyMMddHHmmss\"),r=`${a}.${t}`,s=`image/${t}`,l={fname:r,params:{},mimeType:\"image/*\"},c={useCdnDomain:!0,forceDirect:!0};console.log(this.qiniuConf);let p=this.genFileKey({id:a,name:r});return console.log(\"图片上传前\"),new Promise(((t,n)=>{console.log(\"进入了上传\"),qiniu.upload(e,p,this.qiniuConf?.uptoken,l,c).subscribe({next:e=>{console.log(e),o&&o(e)},error:async e=>{console.log(e)},complete:n=>{console.log(\"上传完成\"),console.log(`${this.qiniuConf?.domain}${n.key}`),n.url=`${this.qiniuConf?.domain}${n.key}`,n.name=r,n.type=s,n.size=e.size,t(n)}})}))}async saveQiniuMediaFile(e,t,n,o){let i=e.name,a=e.type;if(e.size>104857600)throw console.log(\"视频过大,超出限制100MB\"),\"超出文件大小\";let r=new DatePipe(\"en\").transform(new Date,\"yyyyMMddHHmmss\"),s={fname:i,params:{},mimeType:a},l={useCdnDomain:!0,forceDirect:!0},c=this.genFileKey({id:r,name:i});return console.log(\"图片上传前\"),console.log(e.name,t.size),console.log(t.size),console.log(t.size/1024/1024),new Promise(((n,i)=>{console.log(\"进入了上传\"),qiniu.upload(t,c,this.qiniuConf?.uptoken,s,l).subscribe({next:e=>{console.log(\"主要用来展示进度\"),o&&o(e),console.log(JSON.stringify(e))},error:async e=>{console.log(\"上传失败\"),console.log(JSON.stringify(e))},complete:t=>{console.log(\"上传完成\"),console.log(JSON.stringify(t)),e.key=t.key,console.log(e.type),e.url=`${this.qiniuConf?.domain}${t.key}`,console.log(e.url),n(e)}})}))}async base64ToBlobType(e,t){let n=await fetch(`data:${t};base64,${e}`);return await n.blob()}async base64ToBlob(e){let t=await fetch(e);return await t.blob()}fileToBlob(e){const t=e.slice(0,e.size,e.type);return new Blob([t],{type:e.type})}genMd5(e){return CryptoJS.MD5(e).toString()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaUploadService,deps:[{token:i2.Platform},{token:i2$1.Diagnostic}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaUploadService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:NovaUploadService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i2.Platform},{type:i2$1.Diagnostic}]});class ChatService{constructor(e,t,n,o,i,a,r){this.router=e,this.ncloud=t,this.platform=n,this.alertCtrl=o,this.navCtrl=i,this.cross=a,this.uploadServ=r,this.chatMap={},this.isCapacitor=!1,this.platformMap={pc:\"电脑端\",mobile:\"移动端\"},this.isCapacitor=this.platform.is(\"capacitor\")}async loadModelList(e){if(this.modelList?.length)return;let t=new Parse__default.Query(\"ChatModel\");t.notEqualTo(\"isDeleted\",!0),t.equalTo(\"isEnabled\",!0),t.addAscending(\"index\"),this.modelList=await t.find(),this.currentModel=e||this.modelList?.find((e=>\"fmode-4.5-128k\"==e.get(\"code\")))}async doButtonAction(e){let t=this.cross.navMenuType,n=e?.platform?.map((e=>this.platformMap[e])).join(\"、\");if(e?.platform?.length>0&&-1==e?.platform?.indexOf(t)){(await this.alertCtrl.create({header:\"注意\",subHeader:\"终端不符\",message:`请您使用${n}开启本功能。`,buttons:[{role:\"ok\",text:\"知道了\"}]})).present()}else e?.path&&this.navCtrl.navigateRoot(e?.path)}async initChatMap(e){if(this.chatMap[e])return this.chatMap[e];let t=new Parse__default.Query(\"ChatSession\");t.include(\"user\",\"role\",\"role.model\",\"story\",\"story.person\",\"person\",\"person.userVerify\");let n=await t.get(e),o=new FmodeChat(n?.id,n?.get(\"role\"),n,this,this.navCtrl,this.ncloud,this.uploadServ);return this.chatMap[e]=o,this.chatMap[e]}async getChatSession(e){if(!Parse__default?.User?.current()?.id)return;let t=new Parse__default.Query(\"ChatSession\");e&&(t=Parse__default.Query.fromJSON(\"ChatSession\",e)),t.include(\"user\",\"role\",\"role.model\",\"story\",\"story.person\",\"story.person.userVerify\",\"person\",\"person.userVerify\"),t.addDescending(\"updatedAt\"),t.equalTo(\"user\",Parse__default.User.current().toPointer()),t.notEqualTo(\"isDeleted\",!0),t.limit(30);let n=await t.find();this.chatList=n.map((e=>(this.chatMap[e?.id]=new FmodeChat(e?.id,e?.get(\"role\"),e,this,this.navCtrl,this.ncloud,this.uploadServ),{session:e,sid:e?.id,isHidden:!1,rid:e?.get(\"role\")?.id,name:e?.get(\"role\")?.get(\"name\"),thumb:e?.get(\"role\")?.get(\"thumb\"),title:e?.get(\"title\")||e?.get(\"role\")?.get(\"name\"),message:e?.get(\"messageList\")?.[e?.get(\"messageList\")?.length-1]?.content?.slice(0,20),latest:e?.createdAt})))}async getChatSessionDistinct(){let e=await this.ncloud.novaql('SELECT t1.\"objectId\" as sid , \"AvatarRole\".\"objectId\" as rid, * FROM (\\n SELECT *,ROW_NUMBER() OVER (PARTITION BY \"user\", \"role\" ORDER BY \"createdAt\" DESC) AS rn\\n FROM \"ChatSession\" WHERE \"user\"=$1\\n ) as t1\\n LEFT JOIN \"AvatarRole\" ON \"AvatarRole\".\"objectId\" = t1.\"role\"\\n WHERE t1.rn=1\\n LIMIT $2\\n ;',[Parse__default.User.current()?.id,10]),t=e?.map((e=>({sid:e?.sid,rid:e?.rid,name:e?.name,message:e?.messageList?.[e?.messageList?.length-1]?.content?.slice(0,20),latest:e?.createdAt})));return this.chatList=t,this.chatList}createChatPanel(e,t){let n=t?.id||\"new\";t=new FmodeChat(n,e,t,this,this.navCtrl,this.ncloud,this.uploadServ),this.chatMap[n]=t,this.router.navigate([\"/chat/pro/chat/\"+n])}async createNewRoleChat(e){let t=new Parse__default.Query(\"AvatarRole\");t.include(\"model\");let n=await t.get(e);return new FmodeChat(\"new\",n,null,this,this.navCtrl,this.ncloud,this.uploadServ)}async restoreChatPanel(e){let t=new Parse__default.Query(\"AvatarRole\"),n=new Parse__default.Query(\"ChatSession\"),o=await t.get(e?.rid),i=await n.get(e?.sid),a=new FmodeChat(e?.sid,o,i,this,this.navCtrl,this.ncloud,this.uploadServ);this.chatMap[e?.sid]=a,this.router.navigate([\"/chat/pro/chat/\"+e?.sid])}async callRole(e){document.body.classList.add(\"dark\"),this.router.navigate([`/avatar/role/${e.id}`,{type:\"phone\"}])}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatService,deps:[{token:i1$1.Router},{token:NovaCloudService},{token:i2.Platform},{token:i2.AlertController},{token:i2.NavController},{token:CrossService},{token:NovaUploadService}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatService,providedIn:\"root\"})}}async function drawDalle(e){e.size=e?.size||\"1024x1024\",e.style=e?.style||\"natural\",e.quality=e?.quality||null;let t={model:\"dall-e-3\",prompt:e.prompt,n:1,quality:e.quality,response_format:\"url\",size:e.size,style:e.style};if(e.prompt?.length>3e3)throw\"prompt maximum < 4000 characters\";let n,o=await apig(\"aigc/gpt/v1/images/generations\",t);if(console.log(o),o?.id){let e=new Parse__default.Query(\"ImagineWork\");e.get(o?.id),n=await e.first(),console.log(n)}return n}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1$1.Router},{type:NovaCloudService},{type:i2.Platform},{type:i2.AlertController},{type:i2.NavController},{type:CrossService},{type:NovaUploadService}]});class ImagineService{constructor(e,t,n){this.http=e,this.ncloud=t,this.uploadServ=n,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,n=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 n=.3*n*e.batchSize,n}b64DataToBase64Image(e){let t=atob(e),n=new Blob([t],{type:\"image/webp\"});new Promise((e=>{let t=new FileReader;t.onloadend=function(){let n=t.result;console.log(n),e(n)},t.readAsDataURL(n)}))}async draw(e){let t=await this.ncloud.apig(\"aigc/sdapi/v1/draw\",e),n=t?.paintingSign;return n&&setTimeout((async()=>{let e=new Parse__default.Query(\"ImagineWork\");e.equalTo(\"taskId\",n);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__default.User.current();if(!e?.id)return;let t=this.getWorkQuery();return t.include(\"model\",\"module\",\"user\"),t.equalTo(\"user\",e.toPointer()),t}getWorkQuery(){let e=new Date((new Date).getTime()-6e4),t=Parse__default.Query.fromJSON(\"ImagineWork\",{where:{$or:[{createdAt:{$lte:e},progress:{$ne:0}},{createdAt:{$gt:e}}]}});return t.include(\"model\",\"module\",\"user\"),t.notEqualTo(\"isDeleted\",!0),t.notEqualTo(\"isFailed\",!0),t.doesNotExist(\"respData.error\"),t.doesNotExist(\"respData.data.taskLimitCount\"),t.addDescending(\"createdAt\"),t}getimg(){return new Promise(((e,t)=>{let n=document.createElement(\"input\");n.type=\"file\",n.click();let handleChange=async()=>{if(n.removeEventListener(\"change\",handleChange),n.files&&n.files.length>0){let t=n.files[0],o=await this.uploadServ.upload(t,(e=>{console.log(e),e.total.percent.toFixed(2)}));e(o.url)}else t(\"未选择文件\")};n.addEventListener(\"change\",handleChange)}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ImagineService,deps:[{token:i1.HttpClient},{token:NovaCloudService},{token:NovaUploadService}],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:NovaCloudService},{type:NovaUploadService}]});class FmaiService{constructor(e,t){this.imagine=e,this.chat=t}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmaiService,deps:[{token:ImagineService},{token:ChatService}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmaiService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmaiService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:ImagineService},{type:ChatService}]});class ImagineWork{constructor(e){this.task=null,this.progress=0,this.images=[],this.id=e,this.fetchTask()}async fetchTask(){if(this.id){const e=new Parse__default.Query(\"ImagineWork\");try{let t=await e.get(this.id);this.task=t,t.id&&(this.progress=this.task.get(\"progress\"),this.images=this.task.get(\"images\"),this.images?.length&&(this.progress=1))}catch(e){console.error(\"Error fetching task:\",e)}}return this.task}draw(e){return new Observable((t=>{if(this.task)return t.next(this.task),void t.complete();drawDalle(e).then((e=>{this.id=e.id,this.fetchTask();const n=new Parse__default.Query(\"ImagineWork\"),o=setInterval((()=>{n.get(this.id).then((e=>{this.progress+=.01,this.task=e,t.next(e),this.task?.get(\"images\")?.length&&(this.progress=1,clearInterval(o),t.complete())})).catch((e=>{clearInterval(o),t.error(e)}))}),1e3)})).catch((e=>{t.error(e)}))}))}}let colorMap=[\"primary\",\"secondary\",\"tertiary\",\"success\",\"warning\",\"danger\",\"light\",\"medium\",\"dark\"];const MASK_LIST=[{name:\"执行李\",type:\"employee\",title:\"首席执行官\",desc:\"一位富有远见和领导才能的创业新秀。她具备战略思维和决策能力,能够为公司设定长期目标并领导团队实现这些目标。\",color:colorMap[0],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_48766.jpg?e=1695974629&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:oPkQSsyQLLD08R_J4SMeO1f1RdM=\"},{name:\"技术刘\",type:\"employee\",title:\"首席技术官\",desc:\"一位技术专家,拥有广泛的技术知识和经验。他善于解决复杂的技术问题,并能够领导开发团队实施创新的技术解决方案。\",color:colorMap[1],cover:[\"https://imgsource.huashi6.com/images/ai/2023/9/29/9_619877.jpg?e=1695952672&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:LDuSg8_n5g4Rj_8F5PKrGzV4T54=\",\"https://imgsource.huashi6.com/images/ai/2023/9/27/20_17767.jpg?e=1695819037&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:a9uOeeJMN2oopK-3WQZzldPXfH0=\"]},{name:\"点子王\",type:\"employee\",title:\"首席运营官\",desc:\"一位富有创意和市场洞察力的市场营销专家。她擅长制定营销策略,了解目标受众,并能够利用各种渠道和工具推广公司的产品或服务。\",color:colorMap[2],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/9_186291.jpg?e=1695952125&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:EhEUtwnC9hpu-SXXsBrp2Q-rcJk=\"},{title:\"设计总监\",name:\"李欣\",type:\"employee\",desc:\"一位富有创造力和用户导向思维的设计师。她能够理解用户需求,并通过设计直观、易用且吸引人的用户界面来提供出色的用户体验。\",color:colorMap[3],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/9_18099.jpg?e=1695952201&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:G_a60v52iTTqvJgeTSa_8zJUY2w=\"},{title:\"运营经理\",name:\"刘洁\",type:\"employee\",desc:\"一位组织能力强、注重细节并擅长解决问题的运营专家。她能够协调各个部门的工作,并确保公司的运营流程高效运行。\",color:colorMap[4],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/9_842519.jpg?e=1695952125&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:FM_kKZDzkcLQ1EX4266dXU46cRc=\"},{title:\"销售经理\",name:\"张伟\",type:\"employee\",desc:\"一位富有销售天赋和人际交往能力的销售专家。他善于与客户建立良好的关系,并能够推动销售团队实现业绩目标。\",color:colorMap[5],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_739110.jpg?e=1695974920&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:vg_sn-qn67MJS-7j2o7mWzOCUSk=\"},{title:\"数据分析师\",name:\"杨晨\",type:\"employee\",desc:\"一位善于解读数据和提供商业洞察的数据分析专家。她能够收集、分析和解释数据,为公司的决策制定提供有力的支持。\",color:colorMap[6],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_204321.jpg?e=1695974779&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:dC2sGmJekSPBTCycPF76BkQPBoo=\"},{title:\"财务经理\",name:\"赵晓\",type:\"employee\",desc:\"一位精通财务管理和分析的专业人士。她能够制定财务战略、管理公司的财务流程,并提供准确的财务报告和预测。\",color:colorMap[7],cover:\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_947878.jpg?e=1695974779&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:TFGn0_l2PqhUTe9G4A3it769hcU=\"},{title:\"品牌专员\",name:\"王雅\",type:\"employee\",desc:\"一位富有创意和品牌意识的专业人士。她能够塑造和管理公司的品牌形象,制定品牌营销策略,并与内部和外部利益相关者建立良好的合作关系。\",color:colorMap[8],cover:[\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_129581.jpg?e=1695975151&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:YQrpiv1hBKRPIdaEbDDDkLFuPG8=\",\"https://imgsource.huashi6.com/images/ai/2023/9/29/15_912136.jpg?e=1695975151&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:8SVMU1rdKD8eaJ1gH_qGQzcrMhM=\"]},{title:\"全科\",name:\"孔博\",type:\"teacher\",desc:\"擅长全科教学的金牌教师,知识面广泛,博古通今,因材施教,耐心稳重。\",color:colorMap[0],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_40958.jpg?e=1697604189&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:U7r1Td30lXdf9mE1TMVAnDhBP6c=\"]},{title:\"语文\",name:\"王明\",type:\"teacher\",desc:\"激发学生对文学的热爱,引导他们成为优秀的作家和沟通者。\",color:colorMap[1],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_698893.jpg?e=1697602689&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:hK_AuY7BA1pp33QVeUue5QjIg4o=\"]},{title:\"数学\",name:\"万红\",type:\"teacher\",desc:\"以清晰的逻辑和耐心的指导,帮助学生掌握数学的基础知识和解题技巧。\",color:colorMap[2],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_256253.jpg?e=1697603314&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:K2iqp_ZzHYzXNu_0VJlywyANHp8=\"]},{title:\"英语\",name:\"张瑞\",type:\"teacher\",desc:\"激发学生对英语学习的兴趣,培养他们的听、说、读、写能力,让他们自信地运用英语。\",color:colorMap[3],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_266171.jpg?e=1697603707&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:uhpxBbT-jlSt_KjAnj0SFsFAjWU=\"]},{title:\"物理\",name:\"金晓\",type:\"teacher\",desc:\"通过实验和案例,帮助学生理解物理原理,培养他们的科学思维和实验技能。\",color:colorMap[4],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_694925.jpg?e=1697603071&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:FznZxhkYUrZ-BzX05dvNt8acTUw=\"]},{title:\"化学\",name:\"陈华\",type:\"teacher\",desc:\"激发学生对化学的好奇心,教授他们化学知识和实验技巧,培养他们的实验和分析能力。\",color:colorMap[5],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_942234.jpg?e=1697603169&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:__2T8cxLl4J0AwMR9MJdDiooDF0=\"]},{title:\"生物\",name:\"杨婷\",type:\"teacher\",desc:\"引导学生探索生命的奥秘,培养他们的科学观察和实验能力,让他们热爱生物科学。\",color:colorMap[6],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_330738.jpg?e=1697603491&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:2K5-DHPnUQ-R9GGxtWKiEG68QlE=\"]},{title:\"历史\",name:\"赵亮\",type:\"teacher\",desc:\"帮助学生了解历史事件和文化背景,培养他们的历史意识和批判思维。\",color:colorMap[7],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/11_256302.jpg?e=1697602689&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:YP7ffC1YKO-Pb0C3ks4caT0QqZk=\"]},{title:\"地理\",name:\"林丽\",type:\"teacher\",desc:\"引导学生探索地球的奥秘,培养他们的地理观察和分析能力,让他们热爱地理科学。\",color:colorMap[8],cover:[\"https://imgsource.huashi6.com/images/ai/2023/10/18/12_555804.jpg?e=1697604054&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:xLN4QW0x9jx9lEB4EFHWvI_gEsI=\"]}];class UtilnowPipe{constructor(){this.enLocale={\"秒钟前\":\" seconds ago\",\"分钟前\":\" minutes ago\",\"小时前\":\" hours ago\",\"天前\":\" days ago\"}}transform(e,t){let n=((new Date).getTime()-e.getTime())/1e3;if(n<=60)return this.handleArgs(n.toFixed(0),\"秒钟前\",t);let o=n/60;if(o<60)return this.handleArgs(o.toFixed(0),\"分钟前\",t);let i=o/60;if(i<24)return this.handleArgs(i.toFixed(0),\"小时前\",t);let a=i/24;return a<7?this.handleArgs(a.toFixed(0),\"天前\",t):`${e?.getFullYear()}-${e?.getMonth()+1}-${e?.getDate()}`}handleArgs(e,t,n){return\"en\"==n&&(t=this.enLocale[t]),\"TranslateService\"==n?.constructor?.name&&(console.log(t),\"en\"==n?.getDefaultLang()&&(t=this.enLocale[t])),\"json\"==n?{unit:t,value:e}:e+t}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UtilnowPipe,deps:[],target:i0.ɵɵFactoryTarget.Pipe})}static{this.ɵpipe=i0.ɵɵngDeclarePipe({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:UtilnowPipe,isStandalone:!0,name:\"utilnow\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UtilnowPipe,decorators:[{type:Pipe,args:[{name:\"utilnow\",standalone:!0}]}]});class ChatContentPipe{transform(e,...t){let n=t?.[0]||\"text\";return\"text\"==n?getMessageContentText(e):\"image_url\"==n?getMessageImageUrl(e):e}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatContentPipe,deps:[],target:i0.ɵɵFactoryTarget.Pipe})}static{this.ɵpipe=i0.ɵɵngDeclarePipe({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatContentPipe,isStandalone:!0,name:\"chatContent\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatContentPipe,decorators:[{type:Pipe,args:[{name:\"chatContent\",pure:!0,standalone:!0}]}]});class HidexmlPipe{transform(e,...t){return e?this.hideXmlTags(e):\"\"}hideXmlTags(e){return e.replace(/<[^>]*>/g,\"\")}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HidexmlPipe,deps:[],target:i0.ɵɵFactoryTarget.Pipe})}static{this.ɵpipe=i0.ɵɵngDeclarePipe({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:HidexmlPipe,isStandalone:!0,name:\"hidexml\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HidexmlPipe,decorators:[{type:Pipe,args:[{name:\"hidexml\",standalone:!0}]}]});class MarkdownMathJax{constructor(e){this.options=e,this.adaptor=liteAdaptor(),RegisterHTMLHandler(this.adaptor)}text_to_mathjax(e,t){if(!e?.length)return\"\";if(!e?.replace)return\"\";t=t||this.options;let n=new SVG({fontCache:\"local\"});\"chtml\"==t?.output&&(n=new CHTML);const o=mathjax.document(\"\",{skipHtmlTags:[\"script\",\"noscript\",\"style\",\"textarea\",\"pre\",\"code\",\"annotation\",\"annotation-xml\"],InputJax:new TeX({processEscapes:!0,packages:AllPackages}),OutputJax:n}),i={em:16,ex:8,containerWidth:1280};return[/\\$\\$\\ (.+?)\\ \\$\\$/g,/\\$\\$(.+?)\\$\\$/g,/\\$\\$\\n(.+?)\\n\\$\\$/g,/\\$(.+?)\\$/g,/\\\\\\((.+?)\\\\\\)/g,/\\\\\\[(.+?)\\\\\\]/g].forEach((t=>{e=e.replace(t,((e,n)=>{let a;console.log(t,e,n);try{a=o.convert(`${n}`,i)}catch(e){}if(a){return`<span class=\"mathjax raw\" style=\"margin-left:10px;margin-right:10px;\">${this.adaptor.innerHTML(a)}</span>`}return n}))})),e}}let md=new MarkdownIt({html:!0,xhtmlOut:!0,breaks:!1,linkify:!1,typographer:!1,quotes:\"“”‘’\",highlight:function(e,t){if(t&&hljs.getLanguage(t))try{return`<pre style=\"position:relative;padding:10px;\" class=\"hljs lang-${t}\"><code>${hljs.highlight(e,{language:t}).value}</code><small class=\"hljs-lang\"><span class=\"sr-only\">Language:</span>${t}</small></pre>`}catch(e){}return\"\"}});md.use(abbr),md.use(footnote),md.use(deflist),md.use(mark),md.use(ins),md.use(sub),md.use(sup),md.use(ruby);const mditConfig={plantumlServer:\"https://www.plantuml.com/plantuml\"};function makePlantumlURL(e){const t=plantumlEncoder.encode(e);return`${mditConfig.plantumlServer}/svg/${t}`}md.renderer.rules.plantuml=(e,t,n,o,i)=>{const a=e[t];if(\"plantuml\"!==a.type)return e[t].content;return`\\n <img src=\"${makePlantumlURL(a.content)}\" />\\n <pre style=\"position:relative;padding:10px;\" class=\"hljs lang-plantuml\"><code>${a.content}</code><small class=\"hljs-lang\"><span class=\"sr-only\">Language:</span>plantuml</small></pre>\\n `},md.core.ruler.push(\"plantuml\",(e=>{const t=e.tokens;for(const e of t)\"fence\"===e.type&&\"plantuml\"===e.info&&(e.type=\"plantuml\")}));const spaceregex=/\\s*/,notinhtmltagregex=/(?![^<]*>|[^<>]*<\\/)/;let coloregex=/\\[color=([#|(|)|\\s|,|\\w]*?)\\]/;coloregex=new RegExp(coloregex.source+notinhtmltagregex.source,\"g\");let nameregex=/\\[name=(.*?)\\]/,timeregex=/\\[time=([:|,|+|-|(|)|\\s|\\w]*?)\\]/;const nameandtimeregex=new RegExp(nameregex.source+spaceregex.source+timeregex.source+notinhtmltagregex.source,\"g\");function replaceExtraTags(e){return console.log(\"replaceExtraTags\",e),e=(e=(e=(e=e.replace(coloregex,'<span class=\"color\" data-color=\"$1\"></span>')).replace(nameandtimeregex,'<small><i class=\"fa fa-user\"></i> $1 <i class=\"fa fa-clock-o\"></i> $2</small>')).replace(nameregex,'<small><i class=\"fa fa-user\"></i> $1</small>')).replace(timeregex,'<small><i class=\"fa fa-clock-o\"></i> $1</small>'),console.log(\"replaceExtraTags\",e),e}function finishView(e){let t=$.parseHTML(`<html><body><div id=\"topmd\">${e}</div></body></html>`)[0],n=$(t),o=n.find(\"blockquote.raw\").removeClass(\"raw\");o=n.find(\"blockquote\");let i=$(o).find(\"p\");i.each(((e,t)=>{let n=$(t).html();n=replaceExtraTags(n),t.innerHTML=n,$(t).html(n),i[e].innerHTML=n,$(i[e]).html(n)})),o.find(\".color\").each(((e,t)=>{let n=$(t).attr(\"data-color\");$(t).closest(\"blockquote\").css(\"border-left-color\",n)}));let a=\"<style>\\n .markdown-section {\\n color: black;\\n text-align: left;\\n }\\n .markdown-section pre .hljs-lang{\\n text-transform: uppercase;\\n font-weight: 700;\\n font-size: .75rem;\\n line-height: 1rem;\\n padding-top: .25rem;\\n padding-bottom: .25rem;\\n padding-left: .5rem;\\n padding-right: .5rem;\\n background-color: rgba(0,0,0,.3);\\n border-bottom-left-radius: .375rem;\\n top:0;\\n right:0;\\n position:absolute;\\n}\\n\\n }\\n .markdown-section pre .hljs {\\n position:relative!important;\\n background: #272822!important;\\n padding:10px!important;\\n color: #ddd;\\n text-shadow: none!important;\\n }\\n\\n .markdown-section blockquote {\\n margin: 0;\\n margin-bottom: 0px;\\n margin-bottom: .85em;\\n padding: 0 15px;\\n color: #858585;\\n border-left: 4px solid #e5e5e5;\\n border-left-color: rgb(229, 229, 229);\\n }\\n .markdown-section img {\\n max-width:100%;\\n }\\n </style>\"+(n.html()||e);return a=a.replaceAll('src=\"/uploads/','src=\"https://md.fmode.cn/uploads/'),a}nameregex=new RegExp(nameregex.source+notinhtmltagregex.source,\"g\"),timeregex=new RegExp(timeregex.source+notinhtmltagregex.source,\"g\");class MarkdownParse{constructor(){}parseToHTML(e){if(!e?.length)return\"\";if(!e?.replace)return\"\";let t=new MarkdownMathJax;e=e.split(\"```\").map(((e,n)=>n%2==0?e=t.text_to_mathjax(e,{output:\"svg\"}):e)).join(\"```\");let n=md.render(e);return n=finishView(n),n}info(...e){}}class MarkdownPreviewComponent{constructor(e,t){this.domSan=e,this.renderer=t,this.content=\"\",this.render=!0}ngAfterViewInit(){this.renderMdToHTML()}renderMdToHTML(){if(!this.render)return;let e=(new MarkdownParse).parseToHTML(this.content);this.safeHTML=this.domSan.bypassSecurityTrustHtml(e);let t=this.renderer.createElement(\"div\");t.innerHTML=e,this.renderer.appendChild(this.mdContent.nativeElement,t)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewComponent,deps:[{token:i1$2.DomSanitizer},{token:i0.Renderer2}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:MarkdownPreviewComponent,selector:\"fm-markdown-preview\",inputs:{content:\"content\",render:\"render\"},viewQueries:[{propertyName:\"mdContent\",first:!0,predicate:[\"mdContent\"],descendants:!0}],ngImport:i0,template:'<div class=\"message-body\">\\n <div *ngIf=\"render\" #mdContent class=\"markdown-section\">\\n </div>\\n <div *ngIf=\"!render\" class=\"pre-section\">\\n {{content}}\\n </div>\\n</div>',styles:[\":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewComponent,decorators:[{type:Component,args:[{selector:\"fm-markdown-preview\",template:'<div class=\"message-body\">\\n <div *ngIf=\"render\" #mdContent class=\"markdown-section\">\\n </div>\\n <div *ngIf=\"!render\" class=\"pre-section\">\\n {{content}}\\n </div>\\n</div>',styles:[\":host{overflow-x:auto}.message-body div{text-align:left;overflow-x:auto}.message-body .pre-section{white-space:pre-wrap}.markdown-section blockquote{margin:0 0 .85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5;border-left-color:#e5e5e5}\\n\"]}]}],ctorParameters:()=>[{type:i1$2.DomSanitizer},{type:i0.Renderer2}],propDecorators:{content:[{type:Input}],mdContent:[{type:ViewChild,args:[\"mdContent\"]}],render:[{type:Input}]}});class MarkdownPreviewModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewModule,declarations:[MarkdownPreviewComponent],imports:[CommonModule],exports:[MarkdownPreviewComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewModule,imports:[CommonModule]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:MarkdownPreviewModule,decorators:[{type:NgModule,args:[{declarations:[MarkdownPreviewComponent],imports:[CommonModule],exports:[MarkdownPreviewComponent]}]}]});class ClipboardService{constructor(e){this.toastCtrl=e}async copyToClipboard(e){try{return await Clipboard.write({string:e}),void this.copySuccess()}catch(t){try{if(navigator.clipboard&&window.isSecureContext)return await(navigator?.clipboard?.writeText(e)),void this.copySuccess();throw!1}catch(t){let n=document.createElement(\"textarea\");n.value=e,n.style.position=\"fixed\",n.style.left=\"-9999px\",n.style.top=\"-9999px\",document.body.appendChild(n),n.focus(),n.select();try{let e=document?.execCommand(\"copy\");e?this.copySuccess():console.error(\"无法复制文本\")}catch(e){console.error(\"无法复制文本: \",e)}document.body.removeChild(n)}}}async copySuccess(){(await this.toastCtrl.create({duration:1e3,message:\"复制成功\",color:\"primary\",icon:\"information-circle\",position:\"top\"})).present()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ClipboardService,deps:[{token:i2.ToastController}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ClipboardService,providedIn:\"root\"})}}function pcmtoWav(e,t,n,o){let i={chunkId:[82,73,70,70],chunkSize:0,format:[87,65,86,69],subChunk1Id:[102,109,116,32],subChunk1Size:16,audioFormat:1,numChannels:n||1,sampleRate:t||16e3,byteRate:0,blockAlign:0,bitsPerSample:o||16,subChunk2Id:[100,97,116,97],subChunk2Size:0};function u32ToArray(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function u16ToArray(e){return[255&e,e>>8&255]}let a=new Uint8Array(e);i.blockAlign=i.numChannels*i.bitsPerSample>>3,i.byteRate=i.blockAlign*i.sampleRate,i.subChunk2Size=a.length*(i.bitsPerSample>>3),i.chunkSize=36+i.subChunk2Size;let r=i.chunkId.concat(u32ToArray(i.chunkSize),i.format,i.subChunk1Id,u32ToArray(i.subChunk1Size),u16ToArray(i.audioFormat),u16ToArray(i.numChannels),u32ToArray(i.sampleRate),u32ToArray(i.byteRate),u16ToArray(i.blockAlign),u16ToArray(i.bitsPerSample),i.subChunk2Id,u32ToArray(i.subChunk2Size)),s=new Uint8Array(r),l=new Uint8Array(s.length+a.length);return l.set(s),l.set(a,s.length),new Blob([l],{type:\"audio/wav\"})}function resampleAudio(e,t,n){let o=e.length,i=Math.floor(o/t*n),a=[];for(let o=0;o<i;o++){let i=Math.floor(o*(t/n));a[o]=e[i]}return a}function convertFrameBufferToBase64(e){const t=new Uint8Array(2*e.length);for(let n=0;n<e.length;n++){const o=e[n];t[2*n]=255&o,t[2*n+1]=o>>8&255}return btoa(String.fromCharCode.apply(null,t))}function resampleBuffer(e,t,n){const o=t/n,i=Math.round(e.length/o),a=new Int16Array(i);for(let t=0;t<i;t++){const n=Math.floor(t*o);a[t]=e[n]}return a}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ClipboardService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i2.ToastController}]});const SpeechRecognition=window.SpeechRecognition||window.webkitSpeechRecognition,SpeechGrammarList=window.SpeechGrammarList||window.webkitSpeechGrammarList;class WebSpeech{constructor(e){this.platform=e}startRecognition(e=\"Nihao | Hello\"){if(!SpeechRecognition)return;if(this.recognition&&this.recognition.stop(),console.log(\"startRecognition\"),this.recognition=new SpeechRecognition,!this.recognition)return;this.recognition.continuous=!0;let t=`#JSGF V1.0; grammar words; public <word> = ${e} ;`;this.recognition=new SpeechRecognition;let n=new SpeechGrammarList;n.addFromString(t,1),this.recognition.grammars=n,this.recognition.start(),this.recognition.onresult=e=>{let t=e.results||[];console.log(t),console.log(t[0]?.[0]),t[0]?.[0]?.transcript?.indexOf(\"Nihao\")>-1&&console.log(\"Nihao成功唤醒\"),t[0]?.[0]?.transcript?.indexOf(\"Hello\")>-1&&console.log(\"Hello成功唤醒\"),this.startRecognition()},this.recognition.onend=e=>{console.log(e)},this.recognition.onerror=e=>{console.error(e)}}speak(e,t=1,n=1.2,o=.8){this.platform.is(\"capacitor\")||this.speakWithEdge(e,1,1.2,.8)}speakWithEdge(e,t=1,n=1.2,o=.8){let i=new SpeechSynthesisUtterance(e),a=this.getVoiceByName(\"Yaoyao\");console.log(a),a&&(i.voice=a),i.rate=n,i.pitch=t,i.volume=10,window.speechSynthesis.speak(i)}getVoiceByName(e){return window.speechSynthesis.getVoices().find((t=>t.name.indexOf(e)>-1))}}class FmodeVoiceService{constructor(e,t){this.platform=e,this.diagnostic=t,this.webSpeech=WebSpeech,this.isUserFinish=!1,this.recordWavBlob=null,this.recordPcmBlob=null,this.recordDuration=0,this.recordType=\"pcm\",this.encodingType=\"raw\",this.connStatus=\"\",this.btnStatus=\"UNDEFINED\",this.resultText=\"\",this.resultTextTemp=\"\",this.APPID=\"50f4a46c\",this.API_SECRET=\"NzFlNmFhZDJjMDNkZGM3NzI0Mzg2OGNm\",this.API_KEY=\"106ddc40dfd4b9ca6d7b47c70fada749\",this.durationStr=\"00:00\",this.duration=0,this.requestPermission()}toggleRecord(){console.log(this.btnStatus),\"UNDEFINED\"===this.btnStatus||\"CLOSED\"===this.btnStatus?this.startTalk():\"CONNECTING\"!==this.btnStatus&&\"OPEN\"!==this.btnStatus||this.finishTalk()}finishTalk(){this.isUserFinish=!0,this.onBeforeFinishTalk&&this.onBeforeFinishTalk(),this.recordStop()}async startTalk(e){this.resultText=\"\",this.resultTextTemp=\"\",this.onBeforeStartTalk&&this.onBeforeStartTalk(),event?.preventDefault(),await this.openWithPriviledge(),setTimeout((()=>{this.connectWebSocket()}),100),this.startCountdown(),this.onAfterStartTalk&&this.onAfterStartTalk()}cancelTalk(){this.onBeforeCancelTalk&&this.onBeforeCancelTalk(),this.recordStop(),this.iatWS?.close(),this.resultText=null,this.onAfterCancelTalk&&this.onAfterCancelTalk()}async recordStart(){this.createRecorder(),await this.openWithPriviledge(),this.recorder.start(),this.changeBtnStatus(\"OPEN\"),this.onAfterRecordStart&&this.onAfterRecordStart()}recordStop(){return new Promise((e=>{clearInterval(this.countdownInterval),this.changeBtnStatus(\"CLOSED\"),this.recorder?.stop((async(t,n)=>{try{this.iatWS.send(JSON.stringify({data:{status:2,format:\"audio/L16;rate=16000\",encoding:this.encodingType,audio:\"\"}}))}catch(e){}let o=(window.URL||webkitURL).createObjectURL(t);console.log(t,o,\"时长:\"+n+\"ms\"),this.recordPcmBlob=t,this.recordWavBlob=await this.pcmBlobToWavBlob(t,44100),console.log(\"this.recordWavBlob\",this.recordWavBlob),setTimeout((()=>{this.isUserFinish&&(this.onAfterFinishTalk&&this.onAfterFinishTalk(),this.isUserFinish=!1)}),2e3),this.recorder?.close(),this.recorder=null,console.log(\"localUrl\",o),e(!0)}),(t=>{console.log(\"录音失败:\"+t),this.recorder.close(),this.recorder=null,e(null)}))}))}playRecord(){this.playPCM(this.recordPcmBlob,44100)}async pcmBlobToWavBlob(e,t){return new Promise((n=>{let o=new FileReader;o.onload=function(e){let o=pcmtoWav(e.target.result,t,1,16);n(o)},o.readAsArrayBuffer(e)}))}async playPCM(e,t){let n=await this.pcmBlobToWavBlob(e,t),o=window.URL.createObjectURL(n),i=new Audio;i.src=o,i.play()}async playBuffers(){let e=await this.BuffersToBlob(this.buffers);this.playPCM(e,44100)}BuffersToBlob(e){let t=[];return e.forEach((e=>{e.forEach((e=>{t.push(e)}))})),new Blob([t],{type:\"audio/pcm\"})}splitAudioData(e){const t=1280,n=Math.ceil(e.length/t),o=[];for(let i=0;i<n;i++){const n=i*t,a=n+t,r=e.slice(n,a);o.push(r)}return o}BufferToBlob(e){return new Blob([e],{type:\"audio/pcm\"})}createRecorder(){this.recorder||(this.recorder=Recorder({type:this.recordType,sampleRate:44100,bitRate:16,onProcess:(e,t,n,o,i,a)=>{let r=e.length&&e[e.length-1];if(this.buffers=e,r=resampleBuffer(r,44100,16e3),this.iatWS.readyState===this.iatWS.OPEN){if(this.disableASR)return;this.iatWS.send(JSON.stringify({data:{status:1,format:\"audio/L16;rate=16000\",encoding:this.encodingType,audio:convertFrameBufferToBase64(r)}}))}this.waveClient?.input(e[e.length-1],t,o)}}))}async openWithPriviledge(){return console.log(this.btnStatus),await this.requestPermission(),this.createRecorder(),!!Recorder.IsOpen()||new Promise((e=>{this.recorder.open((()=>{let t=document.querySelector(\".record-wave\");t&&(console.log(t),Recorder.WaveView&&(this.waveClient=Recorder.WaveView({elem:\".record-wave\"}))),e(!0)}),((e,t)=>{console.log((t?\"UserNotAllow,\":\"\")+\"无法录音:\"+e)}))}))}getWebSocketUrl(){let e=\"wss://iat-api.xfyun.cn/v2/iat\",t=\"iat-api.xfyun.cn\",n=this.API_KEY,o=this.API_SECRET,i=(new Date).toUTCString(),a=`host: ${t}\\ndate: ${i}\\nGET /v2/iat HTTP/1.1`,r=CryptoJS.HmacSHA256(a,o),s=CryptoJS.enc.Base64.stringify(r);return e=`${e}?authorization=${btoa(`api_key=\"${n}\", algorithm=\"hmac-sha256\", headers=\"host date request-line\", signature=\"${s}\"`)}&date=${i}&host=${t}`,e}toBase64(e){for(var t=\"\",n=new Uint8Array(e),o=n.byteLength,i=0;i<o;i++)t+=String.fromCharCode(n[i]);return window.btoa(t)}countTimer(){this.duration++;let e=String(parseInt(String(this.duration/60))).padStart(2,\"0\"),t=String((this.duration%60).toFixed(0)).padStart(2,\"0\"),n=e+\":\"+t;this.durationStr=n,this.connStatus=`录音中(${this.durationStr})`,console.log(this.duration,e,t),console.log(this.duration),console.log(n),this.onDurationStrChange&&this.onDurationStrChange(n)}startCountdown(){this.recordDuration=0,this.durationInterval&&clearInterval(this.durationInterval),this.countdownInterval=setInterval((()=>{this.recordDuration+=100}),100),this.now=new Date,this.duration=0,this.countdownInterval&&clearInterval(this.countdownInterval),this.countdownInterval=setInterval((()=>{this.countTimer()}),1e3)}changeBtnStatus(e){this.btnStatus=e,\"CONNECTING\"===e?this.connStatus=\"建立连接中\":\"OPEN\"===e||(\"CLOSING\"===e?this.connStatus=\"关闭连接中\":\"CLOSED\"===e&&(this.connStatus=\"开始录音\"))}renderResult(e){let t=JSON.parse(e);if(t.data&&t.data.result){let e=t.data.result,n=\"\",o=e.ws;for(let e=0;e<o.length;e++)n+=o[e].cw[0].w,console.log(n);e.pgs?(\"apd\"===e.pgs&&(this.resultText=this.resultTextTemp),this.resultTextTemp=this.resultText+n):this.resultText=this.resultText+n,this.resultTextTemp||this.resultText,console.log(\"diff temp\",this.resultTextTemp),console.log(\"diff result\",this.resultText),this.onInputChange&&this.onInputChange(this.getUserInput())}0===t.code&&2===t.data.status&&this.iatWS.close(),0!==t.code&&(this.iatWS.close(),console.error(t))}getUserInput(){return\"\"+(this.resultTextTemp||this.resultText)}connectWebSocket(){console.log(\"connectWebSocket\");const e=this.getWebSocketUrl();if(\"WebSocket\"in window)this.iatWS=new WebSocket(e);else if(!(\"MozWebSocket\"in window))return void alert(\"浏览器不支持WebSocket\");console.log(\"connectWebSocket\",this.btnStatus),this.changeBtnStatus(\"CONNECTING\"),this.iatWS.onopen=e=>{this.recordStart();var t={common:{app_id:this.APPID},business:{language:\"zh_cn\",domain:\"iat\",accent:\"mandarin\",vad_eos:5e3,dwa:\"wpgs\"},data:{status:0,format:\"audio/L16;rate=16000\",encoding:this.encodingType}};this.iatWS.send(JSON.stringify(t))},this.iatWS.onmessage=e=>{console.log(\"onmessage\"+this.resultText),this.renderResult(e.data)},this.iatWS.onerror=e=>{console.error(\"error\",e),this.recordStop(),this.changeBtnStatus(\"CLOSED\")},this.iatWS.onclose=async e=>{console.log(\"onclose\"+this.resultText),this.reconnectWebsocket()}}async reconnectWebsocket(){this.isUserFinish||this.connectWebSocket()}isCapacitor(){return this.platform.is(\"capacitor\")||this.platform.is(\"cordova\")}async requestPermission(){if(this.isCapacitor())try{await this.requestStoagePermission(),await this.requestCameraPermission(),await this.requestMicPermission(),await this.requestRecordAudioPermission()}catch(e){console.error(e)}}async requestRecordAudioPermission(){let e=await this.diagnostic.requestRuntimePermissions([this.diagnostic.permission.RECORD_AUDIO]);console.log(\"record permission request:\",e)}async requestMicPermission(){let e=await this.diagnostic.isMicrophoneAuthorized();if(console.log(\"permisson_MIC:\",e),!e){await this.diagnostic.requestMicrophoneAuthorization()}}async requestStoagePermission(){let e=await this.diagnostic.isExternalStorageAuthorized();if(console.log(\"permisson_STORAGE:\",e),!e){await this.diagnostic.requestExternalStorageAuthorization()}}async requestCameraPermission(){let e=await this.diagnostic.isCameraAuthorized();if(console.log(\"permisson_Camera:\",e),!e){await this.diagnostic.requestCameraAuthorization()}}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeVoiceService,deps:[{token:i2.Platform},{token:i2$1.Diagnostic}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeVoiceService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeVoiceService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i2.Platform},{type:i2$1.Diagnostic}]});class RolePointsCloud{constructor(e,t,n){this.offsetPosition=new BABYLON.Vector3(0,1.25,0),this.animationGroup=new BABYLON.AnimationGroup(\"RoleAnimGroup\"),this.AnimMap={idle:null},this.scene=e,this.engine=this.engine}async init(){this.Mesh=this.loadMesh(),this.loadIdleAnim()}playAnim(e){this.scene.beginDirectAnimation(this.Mesh,[this.AnimMap[e]],0,120,!0)}loadMesh(){let e=BABYLON.MeshBuilder.CreateSphere(\"sphere\",{diameter:2},this.scene);return e.position.addInPlace(this.offsetPosition),e.visibility=1,e.material=new BABYLON.StandardMaterial(\"mat\",this.scene),e.material.wireframe=!0,e.scaling=new BABYLON.Vector3(1,1,1),e}loadIdleAnim(){let e=new BABYLON.Animation(\"idle\",\"scaling\",30,BABYLON.Animation.ANIMATIONTYPE_VECTOR3,BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE),t=[];t.push({frame:0,value:new BABYLON.Vector3(1,1,1)}),t.push({frame:60,value:new BABYLON.Vector3(1.5,1.5,1.5)}),t.push({frame:120,value:new BABYLON.Vector3(1,1,1)}),e.setKeys(t),this.Mesh.animations.push(this.AnimMap.idle),this.AnimMap.idle=e,this.animationGroup.addTargetedAnimation(this.AnimMap.idle,this.Mesh)}}class CompAvatarParticleComponent{constructor(e){this.elementRef=e,this.isWebVR=!1,this.animMap={}}ngAfterViewInit(){if(this.canvas=this.renderCanvas.nativeElement,console.log(this.canvas),this.canvas){let e={};this.engine=new BABYLON.Engine(this.canvas,!0,e),console.log(this.engine),this.createScene(),this.engine.runRenderLoop((()=>{this.scene?.render(),this.engine?.resize()})),window.addEventListener(\"resize\",(()=>{this.engine?.resize()}))}}async createScene(){this.scene=new BABYLON.Scene(this.engine),this.scene.clearColor=new BABYLON.Color4(0,0,0,1),this.mainCamera=this.createCamera(),console.log(this.mainCamera),this.currentRole=new RolePointsCloud(this.scene,this.engine,this.mainCamera),await this.currentRole.init(),this.currentRole.playAnim(\"idle\"),this.currentRole.Mesh.visibility=0,await this.createCloudPoints();new BABYLON.HemisphericLight(\"light1\",new BABYLON.Vector3(0,1,0),this.scene);this.engine?.resize()}createCamera(){let e=new(this.isWebVR?BABYLON.VRDeviceOrientationArcRotateCamera:BABYLON.ArcRotateCamera)(\"Camera\",0,0,30,new BABYLON.Vector3(0,.5,0),this.scene);return e.setPosition(new BABYLON.Vector3(0,0,5)),e.beta=Math.PI/3,e.alpha=Math.PI/1.2,e.radius=15,e}async createCloudPoints(){this.pointsMesh=this.currentRole.Mesh,this.pointsCloud=new BABYLON.PointsCloudSystem(\"pcs\",1,this.scene);let e=new BABYLON.Color3(.7,.8,1),t=new BABYLON.Color4(.7,.8,1),n=(new BABYLON.Color4(.2,.5,1),new BABYLON.Color4(0,0,.2,0),new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\",this.scene)),o=new BABYLON.PBRMaterial(\"material\",this.scene);o.emissiveTexture=n,o.emissiveColor=e,this.pointsCloud.addVolumePoints(this.currentRole.Mesh,5e3,BABYLON.PointColor.Color,t),this.pointsCloud.buildMeshAsync().then((()=>{this.playAnimation(\"waiting\")})),this.scene.registerAfterRender((()=>{this.pointsCloud.setParticles()})),this.engine.runRenderLoop((()=>{this.scene.render()}))}playAnimation(e){switch(e){case\"waiting\":this.cloudAnim();break;case\"listening\":this.cloudAnim({rotateSpeed:.01,breathing:!1});break;case\"thinking\":this.cloudAnim({rotateSpeed:.2,breathing:!1});break;case\"talking\":this.animMap.idle&&this.scene.beginDirectAnimation(this.pointsMesh,[this.animMap.talking],0,20,!0)}}cloudAnim(e={breathing:!0,rotateSpeed:.002}){this.animMap.idle&&this.scene.beginDirectAnimation(this.pointsMesh,[this.animMap.idle],0,120,!0);let t=new BABYLON.Color4(1,1,1,1),n=(new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\",this.scene),0);this.pointsCloud.updateParticle=o=>{let i=this.currentRole.Mesh.getBoundingInfo()?.boundingSphere?.radiusWorld,a=this.currentRole.Mesh.getBoundingInfo()?.boundingSphere?.centerWorld;o.idx;if(o.color=t,o.rotation.y+=e.rotateSpeed,o&&n<3&&(console.log(this.currentRole.Mesh.getBoundingInfo()),console.log(o),n++),o.initpos||(o.initpos=o.position),e.breathing){let e=o.initpos.subtract(a);o.position=new BABYLON.Vector3(e.x*i,e.y*i,e.z*i).add(this.currentRole.offsetPosition)}return o}}createSphere(){let e=BABYLON.MeshBuilder.CreateSphere(\"sphere\",{diameter:2},this.scene);e.visibility=1,e.material=new BABYLON.StandardMaterial(\"mat\",this.scene),e.material.wireframe=!0,e.scaling=new BABYLON.Vector3(1,1,1),this.pointsMesh=e;let t=new BABYLON.Animation(\"breathingAnimation\",\"scaling\",30,BABYLON.Animation.ANIMATIONTYPE_VECTOR3,BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE),n=[];n.push({frame:0,value:new BABYLON.Vector3(.3,.3,.3)}),n.push({frame:60,value:new BABYLON.Vector3(.5,.5,.5)}),n.push({frame:120,value:new BABYLON.Vector3(.3,.3,.3)}),t.setKeys(n),this.animMap.idle=t;let o=[{frame:0,value:BABYLON.Vector3.One()},{frame:10,value:new BABYLON.Vector3(1.2,.8,1.2)},{frame:20,value:BABYLON.Vector3.One()}],i=new BABYLON.Animation(\"talkAnimation\",\"scaling\",30,BABYLON.Animation.ANIMATIONTYPE_VECTOR3,BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE);return i.setKeys(o),this.animMap.talk=i,this.scene.beginDirectAnimation(e,[this.animMap.idle],0,120,!0),e}async createParticle(){let e=this.createSphere(),t=new BABYLON.ParticleSystem(\"particles\",2e3,this.scene);t.particleTexture=new BABYLON.Texture(\"/assets/avatar/particle/textures/flare.png\",this.scene),t.emitter=e,t.minEmitBox=new BABYLON.Vector3(0,0,0),t.maxEmitBox=new BABYLON.Vector3(0,0,0),t.color1=new BABYLON.Color4(.7,.8,1,1),t.color2=new BABYLON.Color4(.2,.5,1,1),t.colorDead=new BABYLON.Color4(0,0,.2,0),t.minSize=.5,t.maxSize=.5,t.minLifeTime=.1,t.maxLifeTime=.1,t.minAngularSpeed=0,t.maxAngularSpeed=Math.PI,t.minInitialRotation=0,t.maxInitialRotation=Math.PI,t.minEmitPower=0,t.maxEmitPower=0,t.emitRate=1500,t.updateSpeed=.01,t.blendMode=BABYLON.ParticleSystem.BLENDMODE_ONEONE,t.direction1=new BABYLON.Vector3(0,0,0),t.direction2=new BABYLON.Vector3(0,0,0),t.start();let n=t.createSphereEmitter();n.radius=2,n.radiusRange=0,n.directionRandomizer=0,t.gravity=new BABYLON.Vector3(0,0,0),t.disposeOnStop=!0,t.updateFunction=n=>{for(let o=0;o<n.length;o++){let i=n[o],a=e.getBoundingInfo()?.boundingSphere?.radiusWorld;i.position=i.position.normalize().scale(a),i.age+=this.scene.getEngine().getDeltaTime()/1e3,i.age>=i.lifeTime&&(t.recycleParticle(i),o--)}},this.engine.runRenderLoop((()=>{this.scene.render(),t.worldOffset=e.position}))}setCameraToMeshCenter(e,t){t.computeWorldMatrix(!0);let n=t.getBoundingInfo(),o=n.minimum,i=n.maximum,a=i.x-o.x,r=i.y-o.y,s=i.z-o.z,l=n.boundingBox.center;console.log(\"宽度:\"+a),console.log(\"高度:\"+r),console.log(\"深度:\"+s),console.log(\"中心点:\"+l)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarParticleComponent,deps:[{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompAvatarParticleComponent,isStandalone:!0,selector:\"fm-avatar-role-particle\",viewQueries:[{propertyName:\"renderCanvas\",first:!0,predicate:[\"renderCanvas\"],descendants:!0}],ngImport:i0,template:'<canvas #renderCanvas class=\"render-canvas\"></canvas>',styles:[\".render-canvas{display:block;width:100%;height:100%;touch-action:none}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"ngmodule\",type:FormsModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarParticleComponent,decorators:[{type:Component,args:[{selector:\"fm-avatar-role-particle\",standalone:!0,imports:[CommonModule,FormsModule],template:'<canvas #renderCanvas class=\"render-canvas\"></canvas>',styles:[\".render-canvas{display:block;width:100%;height:100%;touch-action:none}\\n\"]}]}],ctorParameters:()=>[{type:i0.ElementRef}],propDecorators:{renderCanvas:[{type:ViewChild,args:[\"renderCanvas\"]}]}});class CompAvatarRoleImageComponent{constructor(){this.animClass=\"waiting\",this.imageMap={}}playWave(){!this.wave&&Recorder.WaveView&&(this.wave=Recorder.WaveView({elem:\".record-wave-avatar\",keep:!1}));let e=function generatePowerLevel(){return 100*Math.random()}();this.waveInterval=setInterval((()=>{let t=function generateSampleRate(){const e=[44100,48e3,88200,96e3];return e[Math.floor(Math.random()*e.length)]}(),n=function generatePcmData(e){const t=[];for(let n=0;n<e;n++)t.push(Math.floor(65536*Math.random())-32768);return t}(1e3);this.wave.input(n,e,t)}),40)}stopWave(){clearInterval(this.waveInterval)}ngAfterViewInit(){}ngOnInit(){setTimeout((()=>{this.imageMap=this.fmodeChat.avatarConfig?.image,this.avatarImage.nativeElement.src=this.imageMap?.waiting,this.fmodeChat.playAnimation=this.playAnimation}),1500)}playAnimation(){let e=this;return t=>{let n=e.avatarImage.nativeElement;switch(e.animClass=t,e.stopWave(),t){case\"thinking\":case\"waiting\":n.style.animationPlayState=\"running\";break;case\"talking\":n.style.animationPlayState=\"running\",e.playWave();break;case\"listening\":n.style.animationPlayState=\"pause\";break;default:n.style.animationPlayState=\"paused\"}}}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarRoleImageComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompAvatarRoleImageComponent,isStandalone:!0,selector:\"fm-avatar-role-image\",inputs:{fmodeChat:\"fmodeChat\",role:\"role\"},viewQueries:[{propertyName:\"avatarImage\",first:!0,predicate:[\"avatarImage\"],descendants:!0}],ngImport:i0,template:'<div class=\"page\">\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <img #avatarImage alt=\"\">\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',styles:[\".page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;margin-top:-10vh;width:80%}.avatar .avatar-photo img{border-radius:10px}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}.thinking{animation-name:thinkingAnimation}.waiting{animation-name:waitingAnimation}.listening{animation-name:listeningAnimation}.talking{animation-name:talkingAnimation}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"ngmodule\",type:FormsModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarRoleImageComponent,decorators:[{type:Component,args:[{selector:\"fm-avatar-role-image\",standalone:!0,imports:[CommonModule,FormsModule],template:'<div class=\"page\">\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <img #avatarImage alt=\"\">\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',styles:[\".page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;margin-top:-10vh;width:80%}.avatar .avatar-photo img{border-radius:10px}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}.thinking{animation-name:thinkingAnimation}.waiting{animation-name:waitingAnimation}.listening{animation-name:listeningAnimation}.talking{animation-name:talkingAnimation}\\n\"]}]}],propDecorators:{avatarImage:[{type:ViewChild,args:[\"avatarImage\"]}],fmodeChat:[{type:Input}],role:[{type:Input}]}});class ModalChatVoiceInputComponent{constructor(e,t,n,o,i,a){this.platform=e,this.router=t,this.voiceServ=n,this.toastCtrl=o,this.ncloud=i,this.chatServ=a,this.talkMode=\"click\",this.talkTips=\"点击话筒开始讲话\",this.errorText=\"\",this.player=new Audio}ngOnInit(){\"press\"==this.talkMode&&(this.talkTips=\"轻触底部开始讲话\"),setTimeout((()=>{this.initVoiceSevice(),this.initVoiceASR()}),500)}async initVoiceASR(){this.voiceServ.requestPermission().then((()=>{this.voiceServ.openWithPriviledge(),this.startASRAwake()}))}async startASRAwake(){await this.voiceServ.openWithPriviledge(),new this.voiceServ.webSpeech(this.platform).startRecognition(\"Nihao | Hello\")}playMusic(e){this.player.src=`/assets/avatar/voice/${e}.mp3`,this.player.play()}initVoiceSevice(){this.fmodeChat.userInput=this.voiceServ.resultText,this.voiceServ.requestPermission().then((()=>{this.voiceServ.openWithPriviledge()})),this.voiceServ.onBeforeStartTalk=()=>{this.fmodeChat.playAnimation(\"listening\"),this.playMusic(\"start-talk\")},this.voiceServ.onBeforeCancelTalk=()=>{this.playMusic(\"interupt-talk\"),this.fmodeChat.playAnimation(\"waiting\")},this.voiceServ.onAfterCancelTalk=()=>{this.startASRAwake()},this.voiceServ.onBeforeFinishTalk=()=>{this.fmodeChat.playAnimation(\"thinking\"),this.playMusic(\"stop-talk\")},this.voiceServ.onAfterFinishTalk=()=>{console.log(\"onAfterFinishTalk\"),this.fmodeChat.userInput=this.voiceServ?.resultText,this.sendMessage(),this.startASRAwake()}}async sendMessage(){if(!this.fmodeChat.userInput){return this.errorText=\"内容不能为空\",void(await this.toastCtrl.create({message:this.errorText,position:\"top\",icon:\"alert\",color:\"warning-circle\",duration:1e3})).present()}this.fmodeChat?.sendMessage(this.voiceServ.resultText,null,(e=>{}),{onSSMLComplete:e=>{console.log(e)}}),this.fmodeChat.userInput=\"\",this.fmodeChat.userImage=\"\"}testTTS(e){console.log(e),e=e||\"你好呀,我是飞马小智!很高兴为您介绍脑控科技的发展历程。我们成立于2019年\",new this.voiceServ.webSpeech(this.platform).speak(e)}testXunfeiTTS(){}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalChatVoiceInputComponent,deps:[{token:i2.Platform},{token:i1$1.Router},{token:FmodeVoiceService},{token:i2.ToastController},{token:NovaCloudService},{token:ChatService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ModalChatVoiceInputComponent,isStandalone:!0,selector:\"fm-modal-chat-voice-input\",inputs:{fmodeChat:\"fmodeChat\",talkMode:\"talkMode\"},providers:[FmodeVoiceService],ngImport:i0,template:' \\n <ng-container *ngIf=\"fmodeChat\">\\n\\n \\x3c!-- 用户输入 提示区域 --\\x3e\\n <div class=\"user-asr-input\" style=\"text-align: center;\" *ngIf=\"!fmodeChat?.userInput && voiceServ.btnStatus!=\\'OPEN\\'\">{{talkTips}}</div>\\n <div class=\"user-asr-input\">{{fmodeChat?.userInput}}</div>\\n \\n \\x3c!-- 测试按钮 --\\x3e\\n <div class=\"test-button-group\" *ngIf=\"false\">\\n <button class=\"button-record\" (click)=\"voiceServ.toggleRecord()\">开始录制 {{voiceServ.connStatus}} {{voiceServ.btnStatus}}</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playRecord()\">播放录制结果</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playBuffers()\">播放Buffers结果</button>\\n <button (click)=\"testTTS()\">测试TTS纯WEB</button>\\n <button (click)=\"startASR()\">测试ASR</button> \\n <button (click)=\"testXunfeiTTS()\">测试合成</button> \\n </div>\\n\\n \\n \\n \\x3c!-- 交互按钮 --\\x3e\\n <ion-fab slot=\"fixed\" horizontal=\"center\" vertical=\"bottom\">\\n <ng-container *ngIf=\"talkMode==\\'click\\'\">\\n \\x3c!-- 默认按钮:开始讲话 --\\x3e\\n <ion-fab-button color=\"primary\" closeIcon=\"checkmark\" (click)=\"voiceServ.toggleRecord()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n\\n \\x3c!-- 讲话中:取消发送 --\\x3e\\n <ion-fab-list side=\"end\">\\n <ion-fab-button [class]=\"\\'loading\\'\" (click)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"pause-outline\"></ion-icon>\\n </ion-fab-button>\\n </ion-fab-list>\\n </ng-container>\\n \\n <ng-container *ngIf=\"talkMode==\\'press\\'\">\\n <ion-fab-button color=\"primary\" closeIcon=\"mic-outline\" (touchstart)=\"voiceServ.toggleRecord()\" (touchend)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n </ng-container>\\n </ion-fab>\\n\\n\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave\">\\n </div>\\n</ng-container>\\n',styles:['ion-fab{margin-bottom:10vh}.fab-button-close-active:before{content:\"\";position:absolute;top:-5px;left:-5px;width:66px;height:66px;border-radius:50%;border:5px solid #fff;border-top-color:transparent;animation:spin 2s ease-in-out infinite;animation-fill-mode:both;animation-play-state:running}.record-wave{position:fixed;bottom:0;width:100vw;height:6vh}\\n'],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:IonicModule},{kind:\"component\",type:i2.IonFab,selector:\"ion-fab\",inputs:[\"activated\",\"edge\",\"horizontal\",\"vertical\"]},{kind:\"component\",type:i2.IonFabButton,selector:\"ion-fab-button\",inputs:[\"activated\",\"closeIcon\",\"color\",\"disabled\",\"download\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"show\",\"size\",\"target\",\"translucent\",\"type\"]},{kind:\"component\",type:i2.IonFabList,selector:\"ion-fab-list\",inputs:[\"activated\",\"side\"]},{kind:\"component\",type:i2.IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"ngmodule\",type:RouterModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalChatVoiceInputComponent,decorators:[{type:Component,args:[{selector:\"fm-modal-chat-voice-input\",standalone:!0,imports:[CommonModule,IonicModule,RouterModule],providers:[FmodeVoiceService],template:' \\n <ng-container *ngIf=\"fmodeChat\">\\n\\n \\x3c!-- 用户输入 提示区域 --\\x3e\\n <div class=\"user-asr-input\" style=\"text-align: center;\" *ngIf=\"!fmodeChat?.userInput && voiceServ.btnStatus!=\\'OPEN\\'\">{{talkTips}}</div>\\n <div class=\"user-asr-input\">{{fmodeChat?.userInput}}</div>\\n \\n \\x3c!-- 测试按钮 --\\x3e\\n <div class=\"test-button-group\" *ngIf=\"false\">\\n <button class=\"button-record\" (click)=\"voiceServ.toggleRecord()\">开始录制 {{voiceServ.connStatus}} {{voiceServ.btnStatus}}</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playRecord()\">播放录制结果</button>\\n <br>\\n <button class=\"button-record\" (click)=\"voiceServ.playBuffers()\">播放Buffers结果</button>\\n <button (click)=\"testTTS()\">测试TTS纯WEB</button>\\n <button (click)=\"startASR()\">测试ASR</button> \\n <button (click)=\"testXunfeiTTS()\">测试合成</button> \\n </div>\\n\\n \\n \\n \\x3c!-- 交互按钮 --\\x3e\\n <ion-fab slot=\"fixed\" horizontal=\"center\" vertical=\"bottom\">\\n <ng-container *ngIf=\"talkMode==\\'click\\'\">\\n \\x3c!-- 默认按钮:开始讲话 --\\x3e\\n <ion-fab-button color=\"primary\" closeIcon=\"checkmark\" (click)=\"voiceServ.toggleRecord()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n\\n \\x3c!-- 讲话中:取消发送 --\\x3e\\n <ion-fab-list side=\"end\">\\n <ion-fab-button [class]=\"\\'loading\\'\" (click)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"pause-outline\"></ion-icon>\\n </ion-fab-button>\\n </ion-fab-list>\\n </ng-container>\\n \\n <ng-container *ngIf=\"talkMode==\\'press\\'\">\\n <ion-fab-button color=\"primary\" closeIcon=\"mic-outline\" (touchstart)=\"voiceServ.toggleRecord()\" (touchend)=\"voiceServ.cancelTalk()\">\\n <ion-icon name=\"mic-outline\"></ion-icon>\\n </ion-fab-button>\\n </ng-container>\\n </ion-fab>\\n\\n\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave\">\\n </div>\\n</ng-container>\\n',styles:['ion-fab{margin-bottom:10vh}.fab-button-close-active:before{content:\"\";position:absolute;top:-5px;left:-5px;width:66px;height:66px;border-radius:50%;border:5px solid #fff;border-top-color:transparent;animation:spin 2s ease-in-out infinite;animation-fill-mode:both;animation-play-state:running}.record-wave{position:fixed;bottom:0;width:100vw;height:6vh}\\n']}]}],ctorParameters:()=>[{type:i2.Platform},{type:i1$1.Router},{type:FmodeVoiceService},{type:i2.ToastController},{type:NovaCloudService},{type:ChatService}],propDecorators:{fmodeChat:[{type:Input}],talkMode:[{type:Input}]}});class CompAvatarTalkComponent{constructor(e,t,n,o,i,a,r){this.voiceServ=e,this.platform=t,this.router=n,this.navCtrl=o,this.route=i,this.chatServ=a,this.ncloud=r,this.route.paramMap.subscribe((e=>{this.roleId=e.get(\"roleId\"),this.loadAvatarRole(this.roleId)})),document.body.classList.add(\"dark\")}ngOnInit(){}ngOnDestroy(){document.body.classList.remove(\"dark\"),this.voiceServ.resultText=null,this.fmodeChat&&(this.fmodeChat.latestAIResponse=null)}goBack(){document.body.classList.remove(\"dark\");let e=this.avatarRole?.get(\"backUrl\");try{if(e)return void this.navCtrl.navigateRoot(e);this.navCtrl.navigateRoot(\"/chat/pro/role/\"+this.roleId)}catch(e){this.navCtrl.navigateRoot(\"/chat/pro/role/\"+this.roleId)}}async loadAvatarRole(e){let t=new Parse.Query(\"AvatarRole\");this.avatarRole=await t.get(e);let n=await this.chatServ.createNewRoleChat(this.roleId);n.isTalkMode=!0,this.fmodeChat=n,this.fmodeChat.showAvatar()}ngAfterViewInit(){this.listenDivChange()}listenDivChange(){new MutationObserver((()=>{this.scrollToBottom(this.aiRespComp)})).observe(this.aiRespComp.nativeElement,{childList:!0,subtree:!0,attributes:!0})}scrollToBottom(e){e?.nativeElement?.scrollHeight&&(e.nativeElement.scrollTop=e.nativeElement.scrollHeight)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarTalkComponent,deps:[{token:FmodeVoiceService},{token:i2.Platform},{token:i1$1.Router},{token:i2.NavController},{token:i1$1.ActivatedRoute},{token:ChatService},{token:NovaCloudService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompAvatarTalkComponent,isStandalone:!0,selector:\"app-comp-avatar-talk\",providers:[FmodeVoiceService,NovaCloudService,ChatService,Diagnostic,ModalController],viewQueries:[{propertyName:\"avatarComp\",first:!0,predicate:[\"avatar\"],descendants:!0},{propertyName:\"aiRespComp\",first:!0,predicate:[\"aiRespComp\"],descendants:!0}],ngImport:i0,template:'<ion-menu #menu contentId=\"main-content\" side=\"end\">\\n <ion-header>\\n <ion-toolbar>\\n <ion-title>资料</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{avatarRole?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{avatarRole?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{avatarRole?.get(\"desc\")}}\\n\\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"avatarRole?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{avatarRole?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{avatarRole?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{avatarRole?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{avatarRole?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{avatarRole?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n\\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n \\n \\n \\n </ion-content>\\n</ion-menu>\\n\\n<div class=\"ion-page\" id=\"main-content\">\\n <ion-header class=\"ion-no-border\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\"> <ion-icon name=\"chevron-back-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <ion-chip *ngIf=\"avatarRole?.get(\\'title\\')\">{{avatarRole?.get(\"title\")}}</ion-chip>\\n </ion-title>\\n <ion-buttons slot=\"end\">\\n \\x3c!-- <ion-button (click)=\"playTTSTeting()\">TTS测试</ion-button> --\\x3e\\n {{avatarRole?.get(\"name\")}}\\n <ion-button (click)=\"menu.toggle()\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n\\n \\x3c!-- <ion-segment value=\"voice\">\\n <ion-segment-button (click)=\"chatServ.createChatPanel(avatarRole)\" value=\"chat\">\\n <ion-label>聊天</ion-label>\\n </ion-segment-button>\\n <ion-segment-button routerLink=\"{{\\'/avatar/role/\\'+avatarRole?.id}}\" value=\"voice\">\\n <ion-label>语音</ion-label>\\n </ion-segment-button>\\n </ion-segment> --\\x3e\\n\\n \\x3c!-- 数字形象:动画效果 --\\x3e\\n <fm-avatar-role-image *ngIf=\"avatarRole&&fmodeChat\" [fmodeChat]=\"fmodeChat\" [role]=\"avatarRole\" #avatar class=\"avatar\"></fm-avatar-role-image>\\n \\x3c!-- <fm-avatar-role-particle #avatar class=\"avatar\"></fm-avatar-role-particle> --\\x3e\\n\\n \\x3c!-- AI回复的最新消息 --\\x3e\\n <div class=\"ai-resp-input\" #aiRespComp>{{fmodeChat?.latestAIResponse | hidexml}}</div>\\n\\n <fm-modal-chat-voice-input *ngIf=\"fmodeChat\" [fmodeChat]=\"fmodeChat\"></fm-modal-chat-voice-input>\\n\\n</div>\\n\\n',styles:[\"ion-menu ion-note{color:#ccc;font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.avatar{display:block;width:100%;height:100%}.ai-resp-input{font-size:1rem;color:#fff;position:fixed;top:60px;max-height:15vh;overflow-y:scroll;padding:0 10px}.user-asr-input{font-size:1rem;color:#fff;position:fixed;bottom:6vh;padding:0 10px}.test-button-group{color:#00f;position:fixed;bottom:20vh}.test-button-group button{padding:10px;margin:10px}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:RouterModule},{kind:\"ngmodule\",type:FormsModule},{kind:\"ngmodule\",type:IonicModule},{kind:\"component\",type:i2.IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonButtons,selector:\"ion-buttons\",inputs:[\"collapse\"]},{kind:\"component\",type:i2.IonCard,selector:\"ion-card\",inputs:[\"button\",\"color\",\"disabled\",\"download\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonCardContent,selector:\"ion-card-content\",inputs:[\"mode\"]},{kind:\"component\",type:i2.IonCardHeader,selector:\"ion-card-header\",inputs:[\"color\",\"mode\",\"translucent\"]},{kind:\"component\",type:i2.IonCardSubtitle,selector:\"ion-card-subtitle\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:i2.IonCardTitle,selector:\"ion-card-title\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:i2.IonChip,selector:\"ion-chip\",inputs:[\"color\",\"disabled\",\"mode\",\"outline\"]},{kind:\"component\",type:i2.IonContent,selector:\"ion-content\",inputs:[\"color\",\"fixedSlotPlacement\",\"forceOverscroll\",\"fullscreen\",\"scrollEvents\",\"scrollX\",\"scrollY\"]},{kind:\"component\",type:i2.IonHeader,selector:\"ion-header\",inputs:[\"collapse\",\"mode\",\"translucent\"]},{kind:\"component\",type:i2.IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:i2.IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"component\",type:i2.IonList,selector:\"ion-list\",inputs:[\"inset\",\"lines\",\"mode\"]},{kind:\"component\",type:i2.IonMenu,selector:\"ion-menu\",inputs:[\"contentId\",\"disabled\",\"maxEdgeStart\",\"menuId\",\"side\",\"swipeGesture\",\"type\"]},{kind:\"component\",type:i2.IonNote,selector:\"ion-note\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:i2.IonTitle,selector:\"ion-title\",inputs:[\"color\",\"size\"]},{kind:\"component\",type:i2.IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:CompAvatarRoleImageComponent,selector:\"fm-avatar-role-image\",inputs:[\"fmodeChat\",\"role\"]},{kind:\"component\",type:ModalChatVoiceInputComponent,selector:\"fm-modal-chat-voice-input\",inputs:[\"fmodeChat\",\"talkMode\"]},{kind:\"pipe\",type:HidexmlPipe,name:\"hidexml\"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarTalkComponent,decorators:[{type:Component,args:[{selector:\"app-comp-avatar-talk\",standalone:!0,imports:[CommonModule,RouterModule,FormsModule,IonicModule,CompAvatarParticleComponent,CompAvatarRoleImageComponent,ModalChatVoiceInputComponent,HidexmlPipe],providers:[FmodeVoiceService,NovaCloudService,ChatService,Diagnostic,ModalController],template:'<ion-menu #menu contentId=\"main-content\" side=\"end\">\\n <ion-header>\\n <ion-toolbar>\\n <ion-title>资料</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{avatarRole?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{avatarRole?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{avatarRole?.get(\"desc\")}}\\n\\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"avatarRole?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"avatarRole?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{avatarRole?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{avatarRole?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"avatarRole?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{avatarRole?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{avatarRole?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{avatarRole?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n\\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n \\n \\n \\n </ion-content>\\n</ion-menu>\\n\\n<div class=\"ion-page\" id=\"main-content\">\\n <ion-header class=\"ion-no-border\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\"> <ion-icon name=\"chevron-back-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <ion-chip *ngIf=\"avatarRole?.get(\\'title\\')\">{{avatarRole?.get(\"title\")}}</ion-chip>\\n </ion-title>\\n <ion-buttons slot=\"end\">\\n \\x3c!-- <ion-button (click)=\"playTTSTeting()\">TTS测试</ion-button> --\\x3e\\n {{avatarRole?.get(\"name\")}}\\n <ion-button (click)=\"menu.toggle()\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n\\n \\x3c!-- <ion-segment value=\"voice\">\\n <ion-segment-button (click)=\"chatServ.createChatPanel(avatarRole)\" value=\"chat\">\\n <ion-label>聊天</ion-label>\\n </ion-segment-button>\\n <ion-segment-button routerLink=\"{{\\'/avatar/role/\\'+avatarRole?.id}}\" value=\"voice\">\\n <ion-label>语音</ion-label>\\n </ion-segment-button>\\n </ion-segment> --\\x3e\\n\\n \\x3c!-- 数字形象:动画效果 --\\x3e\\n <fm-avatar-role-image *ngIf=\"avatarRole&&fmodeChat\" [fmodeChat]=\"fmodeChat\" [role]=\"avatarRole\" #avatar class=\"avatar\"></fm-avatar-role-image>\\n \\x3c!-- <fm-avatar-role-particle #avatar class=\"avatar\"></fm-avatar-role-particle> --\\x3e\\n\\n \\x3c!-- AI回复的最新消息 --\\x3e\\n <div class=\"ai-resp-input\" #aiRespComp>{{fmodeChat?.latestAIResponse | hidexml}}</div>\\n\\n <fm-modal-chat-voice-input *ngIf=\"fmodeChat\" [fmodeChat]=\"fmodeChat\"></fm-modal-chat-voice-input>\\n\\n</div>\\n\\n',styles:[\"ion-menu ion-note{color:#ccc;font-weight:700}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.avatar{display:block;width:100%;height:100%}.ai-resp-input{font-size:1rem;color:#fff;position:fixed;top:60px;max-height:15vh;overflow-y:scroll;padding:0 10px}.user-asr-input{font-size:1rem;color:#fff;position:fixed;bottom:6vh;padding:0 10px}.test-button-group{color:#00f;position:fixed;bottom:20vh}.test-button-group button{padding:10px;margin:10px}\\n\"]}]}],ctorParameters:()=>[{type:FmodeVoiceService},{type:i2.Platform},{type:i1$1.Router},{type:i2.NavController},{type:i1$1.ActivatedRoute},{type:ChatService},{type:NovaCloudService}],propDecorators:{avatarComp:[{type:ViewChild,args:[\"avatar\"]}],aiRespComp:[{type:ViewChild,args:[\"aiRespComp\"]}]}});const AvatarRoutes=[{path:\"role/:roleId\",component:CompAvatarTalkComponent,runGuardsAndResolvers:\"always\"}];class AvatarModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AvatarModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:AvatarModule,imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,i1$1.RouterModule,CompAvatarTalkComponent],exports:[CompAvatarTalkComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AvatarModule,imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,RouterModule.forChild(AvatarRoutes),CompAvatarTalkComponent]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AvatarModule,decorators:[{type:NgModule,args:[{declarations:[],imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,RouterModule.forChild(AvatarRoutes),CompAvatarTalkComponent],exports:[CompAvatarTalkComponent]}]}]});class FmVideoComponent{constructor(){this.url=\"\",this.video=document.createElement(\"video\"),this.canvasStyle={},this.video.crossOrigin=\"anonymous\"}ngOnChanges(e){e.url&&e.url.currentValue&&this.play(this.url)}play(e){try{this.video.muted=!0,this.video.loop=!0,this.video.controls=!1,this.video.src=e,this.video.playsInline=!0,this.video.load(),this.video.play().then((()=>{})).catch((()=>{setTimeout((()=>{this.play(e)}),200)}))}catch(t){return void setTimeout((()=>{this.play(e)}),500)}this.ctx||(this.ctx=this.canvasRef.nativeElement.getContext(\"2d\"),this.video.addEventListener(\"loadeddata\",(()=>{this.canvasRef.nativeElement.width=this.video.videoWidth,this.canvasRef.nativeElement.height=this.video.videoHeight,this.drawFrame()})))}drawFrame(){this.video.paused||this.video.ended||(this.ctx.drawImage(this.video,0,0,this.canvasRef.nativeElement.width,this.canvasRef.nativeElement.height),requestAnimationFrame((()=>this.drawFrame())))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmVideoComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:FmVideoComponent,isStandalone:!0,selector:\"fm-video\",inputs:{url:\"url\",canvasStyle:\"canvasStyle\"},viewQueries:[{propertyName:\"canvasRef\",first:!0,predicate:[\"videoCanvas\"],descendants:!0,static:!0}],usesOnChanges:!0,ngImport:i0,template:'<canvas #videoCanvas [style]=\"canvasStyle\"></canvas>',styles:[\":host{display:flex;justify-content:center;align-items:center;overflow:hidden}canvas{max-height:100%;width:auto;height:auto;background:transparent}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmVideoComponent,decorators:[{type:Component,args:[{selector:\"fm-video\",standalone:!0,imports:[CommonModule],template:'<canvas #videoCanvas [style]=\"canvasStyle\"></canvas>',styles:[\":host{display:flex;justify-content:center;align-items:center;overflow:hidden}canvas{max-height:100%;width:auto;height:auto;background:transparent}\\n\"]}]}],ctorParameters:()=>[],propDecorators:{url:[{type:Input}],canvasRef:[{type:ViewChild,args:[\"videoCanvas\",{static:!0}]}],canvasStyle:[{type:Input}]}});class CompAvatarRoleVideoComponent{constructor(e){this.navCtrl=e,this.animClass=\"waiting\",this.onClose=new EventEmitter,this.videoMap={}}close(){this.onClose.emit(!0),this.fmodeChat.isAvatarShow=!1}goBack(){this.navCtrl.back()}playWave(){!this.wave&&Recorder.WaveView&&(this.wave=Recorder.WaveView({elem:\".record-wave-avatar\",keep:!1}));let e=function generatePowerLevel(){return 100*Math.random()}();this.waveInterval=setInterval((()=>{let t=function generateSampleRate(){const e=[44100,48e3,88200,96e3];return e[Math.floor(Math.random()*e.length)]}(),n=function generatePcmData(e){const t=[];for(let n=0;n<e;n++)t.push(Math.floor(65536*Math.random())-32768);return t}(1e3);this.wave.input(n,e,t)}),40)}stopWave(){clearInterval(this.waveInterval)}ngAfterViewInit(){}ngOnInit(){setTimeout((()=>{this.videoMap=this.fmodeChat.avatarConfig?.video,this.playVideo(this.videoMap?.waiting),this.fmodeChat.playAnimation=this.playAnimation}),1500)}playAnimation(){let e=this;return t=>{e.animClass=t,e.stopWave(),e.playVideo(e.videoMap[t])}}playVideo(e){this.avatarVideo.play(e)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarRoleVideoComponent,deps:[{token:i2$3.NavController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompAvatarRoleVideoComponent,isStandalone:!0,selector:\"fm-avatar-role-video\",inputs:{fmodeChat:\"fmodeChat\",role:\"role\"},outputs:{onClose:\"onClose\"},viewQueries:[{propertyName:\"avatarVideo\",first:!0,predicate:FmVideoComponent,descendants:!0}],ngImport:i0,template:'<div class=\"page\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"close()\"> <ion-icon name=\"chevron-collapse-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <fm-video #avatarVideo alt=\"\"></fm-video>\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',styles:[\"ion-toolbar{position:fixed;top:0;left:0;width:100vw;--background:transparent}.page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{height:100%;width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;display:flex;justify-content:center;width:80%;max-height:100%}.avatar .avatar-photo fm-video{border-radius:50%;max-height:100%;max-width:100%}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"ngmodule\",type:FormsModule},{kind:\"component\",type:FmVideoComponent,selector:\"fm-video\",inputs:[\"url\",\"canvasStyle\"]},{kind:\"component\",type:IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:IonButtons,selector:\"ion-buttons\",inputs:[\"collapse\"]},{kind:\"component\",type:IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompAvatarRoleVideoComponent,decorators:[{type:Component,args:[{selector:\"fm-avatar-role-video\",standalone:!0,imports:[CommonModule,FormsModule,FmVideoComponent,IonIcon,IonToolbar,IonButtons,IonButton],template:'<div class=\"page\">\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"close()\"> <ion-icon name=\"chevron-collapse-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n <div class=\"avatar\" [class]=\"animClass\">\\n <div class=\"avatar-photo\">\\n <fm-video #avatarVideo alt=\"\"></fm-video>\\n \\x3c!-- 音频波动 --\\x3e\\n <div class=\"record-wave-avatar\">\\n </div>\\n </div>\\n </div>\\n</div>',styles:[\"ion-toolbar{position:fixed;top:0;left:0;width:100vw;--background:transparent}.page{position:relative;width:100vw;height:100%;top:0;left:0;display:flex;justify-content:center;align-items:center;background-color:#000}.avatar{height:100%;width:100%;display:flex;justify-content:center;align-items:center}.avatar .avatar-photo{position:relative;display:flex;justify-content:center;width:80%;max-height:100%}.avatar .avatar-photo fm-video{border-radius:50%;max-height:100%;max-width:100%}.avatar .record-wave-avatar{height:50px;width:100%;position:absolute;float:left;left:0;bottom:0}.thinking,.listening,.waiting,.talking{animation-duration:2s;animation-play-state:running;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes waitingAnimation{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes thinkingAnimation{0%{transform:rotate(0)}30%{transform:rotate(10deg)}60%{transform:rotate(-10deg)}to{transform:rotate(0)}}\\n\"]}]}],ctorParameters:()=>[{type:i2$3.NavController}],propDecorators:{avatarVideo:[{type:ViewChild,args:[FmVideoComponent]}],fmodeChat:[{type:Input}],role:[{type:Input}],onClose:[{type:Output}]}});class ChatListComponent{constructor(e,t,n){this.chatServ=e,this.alertCtrl=t,this.navCtrl=n,this.chatList=[],this.onItemClick=(e,t)=>{t.stopPropagation(),this.goSession(e)},this.avatar=\"https://ionicframework.com/docs/img/demos/avatar.svg\",this.isPreventGo=!1,this.chatServ.getChatSession().then((()=>{}))}async goSession(e){if(!this.isPreventGo)if(e?.rid||e?.sid)this.chatServ.restoreChatPanel(e);else{(await this.alertCtrl.create({header:\"注意\",subHeader:\"请您选择右侧角色\",message:\"开始对话\",buttons:[{role:\"ok\",text:\"知道了\",handler:()=>{}}]})).present(),this.navCtrl.navigateRoot(\"/chat/pro/mask\")}}async presentEditTitle(e,t,n){n.stopPropagation(),this.isPreventGo=!0,setTimeout((()=>{this.isPreventGo=!1}),500),n.preventDefault();const o=await this.alertCtrl.create({header:\"修改会话标题\",subHeader:\"\",message:\"\",buttons:[{text:\"取消\",role:\"cancel\",handler:()=>{}},{text:\"确定\",role:\"confirm\",handler:n=>{t.title=n.title,e?.set(\"title\",n.title),e?.save()}}],inputs:[{placeholder:\"会话标题\",name:\"title\",value:t?.title||\"\"}]});await o.present()}async presentDeleteTItle(e,t,n){n.stopPropagation(),this.isPreventGo=!0,setTimeout((()=>{this.isPreventGo=!1}),500),n.preventDefault();const o=await this.alertCtrl.create({header:\"确认删除?\",subHeader:\"\",message:\"\",buttons:[{text:\"取消\",role:\"cancel\",handler:()=>{}},{text:\"确定\",role:\"confirm\",handler:()=>{t.isHidden=!0,e?.set(\"isDeleted\",!0),e?.save()}}]});await o.present()}truncateString(e){return e&&e.length>10?e.slice(0,10)+\"...\":e}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatListComponent,deps:[{token:ChatService},{token:i2$3.AlertController},{token:i2$3.NavController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ChatListComponent,isStandalone:!0,selector:\"app-chat-list\",inputs:{onItemClick:\"onItemClick\"},providers:[],ngImport:i0,template:'<ion-list>\\n <ng-container *ngFor=\"let chat of (chatServ?.chatList || chatList)\">\\n <ion-item [button]=\"true\" detail=\"false\" *ngIf=\"!chat?.isHidden\" (click)=\"onItemClick(chat,$event)\">\\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\\n <div class=\"unread-indicator\"></div>\\n </div>\\n <ion-label>\\n <div style=\"display: flex;justify-content: space-between; align-items: center;\">\\n <div style=\"display: flex; flex-direction: row;align-items: center;\">\\n <strong style=\"display: flex;align-items: center;\">\\n <ion-avatar style=\"margin-right: 10px;\">\\n <img [src]=\"chat?.thumb||avatar\" />\\n </ion-avatar>\\n <p style=\"max-width: 7rem;white-space: nowrap;\">{{truncateString(chat?.title)}}</p>\\n </strong>\\n\\n <ion-icon (click)=\"presentEditTitle(chat?.session,chat,$event)\" name=\"brush-sharp\" style=\"margin-left: 1rem;\"></ion-icon>\\n <ion-icon (click)=\"presentDeleteTItle(chat?.session,chat,$event)\" name=\"trash-sharp\" style=\"margin-left: 0.5rem;\"></ion-icon>\\n \\n </div>\\n <div class=\"metadata-end-wrapper\" slot=\"end\">\\n <ion-note color=\"medium\">{{chat?.latest | date:\"HH:mm\"}}</ion-note>\\n <ion-icon color=\"medium\" name=\"chevron-forward\"></ion-icon>\\n </div>\\n </div>\\n <ion-text></ion-text><br />\\n <ion-note color=\"medium\" class=\"ion-text-wrap\">\\n {{chat?.message}}\\n </ion-note>\\n </ion-label>\\n </ion-item>\\n </ng-container>\\n </ion-list>',styles:[\"ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"pipe\",type:i2$2.DatePipe,name:\"date\"},{kind:\"component\",type:IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:IonList,selector:\"ion-list\",inputs:[\"inset\",\"lines\",\"mode\"]},{kind:\"component\",type:IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"component\",type:IonNote,selector:\"ion-note\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:IonAvatar,selector:\"ion-avatar\"},{kind:\"component\",type:IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:IonText,selector:\"ion-text\",inputs:[\"color\",\"mode\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatListComponent,decorators:[{type:Component,args:[{selector:\"app-chat-list\",imports:[CommonModule,IonIcon,IonList,IonLabel,IonNote,IonButton,IonAvatar,IonItem,IonText],providers:[],standalone:!0,template:'<ion-list>\\n <ng-container *ngFor=\"let chat of (chatServ?.chatList || chatList)\">\\n <ion-item [button]=\"true\" detail=\"false\" *ngIf=\"!chat?.isHidden\" (click)=\"onItemClick(chat,$event)\">\\n <div class=\"unread-indicator-wrapper\" slot=\"start\">\\n <div class=\"unread-indicator\"></div>\\n </div>\\n <ion-label>\\n <div style=\"display: flex;justify-content: space-between; align-items: center;\">\\n <div style=\"display: flex; flex-direction: row;align-items: center;\">\\n <strong style=\"display: flex;align-items: center;\">\\n <ion-avatar style=\"margin-right: 10px;\">\\n <img [src]=\"chat?.thumb||avatar\" />\\n </ion-avatar>\\n <p style=\"max-width: 7rem;white-space: nowrap;\">{{truncateString(chat?.title)}}</p>\\n </strong>\\n\\n <ion-icon (click)=\"presentEditTitle(chat?.session,chat,$event)\" name=\"brush-sharp\" style=\"margin-left: 1rem;\"></ion-icon>\\n <ion-icon (click)=\"presentDeleteTItle(chat?.session,chat,$event)\" name=\"trash-sharp\" style=\"margin-left: 0.5rem;\"></ion-icon>\\n \\n </div>\\n <div class=\"metadata-end-wrapper\" slot=\"end\">\\n <ion-note color=\"medium\">{{chat?.latest | date:\"HH:mm\"}}</ion-note>\\n <ion-icon color=\"medium\" name=\"chevron-forward\"></ion-icon>\\n </div>\\n </div>\\n <ion-text></ion-text><br />\\n <ion-note color=\"medium\" class=\"ion-text-wrap\">\\n {{chat?.message}}\\n </ion-note>\\n </ion-label>\\n </ion-item>\\n </ng-container>\\n </ion-list>',styles:[\"ion-icon{color:#fff}ion-list{margin:3px}ion-list ion-item{--inner-padding-bottom:0px;--inner-padding-end:0px;--inner-padding-start:0px;--inner-padding-to:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--padding-to:0px}ion-list ul{width:100%;list-style-type:none;padding:0;margin:0 0 10px;display:flex;flex-wrap:wrap;background-color:#fff;border-radius:10px}ion-list ul .active__{position:relative;padding:5px 15px;font-size:18px;font-weight:700;color:#535353;transition:.3s}ion-list ul .active{color:#2d8af7;background-color:#f2f4ff;border-radius:10px}ion-list ul li{flex:1 1 auto}ion-list ul li div{cursor:pointer;text-align:center}\\n\"]}]}],ctorParameters:()=>[{type:ChatService},{type:i2$3.AlertController},{type:i2$3.NavController}],propDecorators:{onItemClick:[{type:Input}]}});class FmChatHeaderArea{constructor(e){this.navCtrl=e,this.isModalOpen=!1}goBack(){this.navCtrl.back()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatHeaderArea,deps:[{token:i2$3.NavController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:FmChatHeaderArea,isStandalone:!0,selector:\"fm-chat-header-area\",inputs:{chat:\"chat\"},ngImport:i0,template:'<ion-toolbar *ngIf=\"chat?.isAvatarShow==false\">\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <div class=\"title-avatar-area\">\\n <div class=\"avatar-img\" (click)=\"chat.showAvatar()\">\\n <img *ngIf=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" [src]=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" />\\n <ion-icon *ngIf=\"chat?.role?.get(\\'avatarConfig\\')\" name=\"resize-outline\"></ion-icon>\\n </div>\\n <span (click)=\"chat.showAvatar()\">\\n {{chat?.role?.get(\"name\")}}\\n </span>\\n </div>\\n </ion-title>\\n\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"isModalOpen=true\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n</ion-toolbar>\\n\\n<div class=\"avatar-area\" *ngIf=\"chat?.isAvatarShow==true\">\\n <fm-avatar-role-image *ngIf=\"chat?.avatarMode==\\'image\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-image>\\n <fm-avatar-role-video *ngIf=\"chat?.avatarMode==\\'video\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-video>\\n</div>\\n\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"isModalOpen=false\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"isModalOpen=false\">返回</ion-button>\\n </ion-buttons>\\n <ion-title>简介</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{chat?.role?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{chat?.role?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{chat?.role?.get(\"desc\")}}\\n \\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"chat?.role?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{chat?.role?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{chat?.role?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{chat?.role?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{chat?.role?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{chat?.role?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n \\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n </ion-content>\\n </ng-template>\\n </ion-modal>',styles:[\".title-avatar-area{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.title-avatar-area .avatar-img img{width:32px;height:32px;border-radius:50%;margin-right:5px}.title-avatar-area .avatar-img ion-icon{background:#df76dfcc;border-radius:50%;padding:3px;position:absolute;color:#000;margin-left:-20px;font-size:10px;margin-top:18px}.avatar-area{height:100%}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"component\",type:IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:IonButtons,selector:\"ion-buttons\",inputs:[\"collapse\"]},{kind:\"component\",type:IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:IonModal,selector:\"ion-modal\"},{kind:\"component\",type:IonTitle,selector:\"ion-title\",inputs:[\"color\",\"size\"]},{kind:\"component\",type:IonHeader,selector:\"ion-header\",inputs:[\"collapse\",\"mode\",\"translucent\"]},{kind:\"component\",type:IonList,selector:\"ion-list\",inputs:[\"inset\",\"lines\",\"mode\"]},{kind:\"component\",type:IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:IonCard,selector:\"ion-card\",inputs:[\"button\",\"color\",\"disabled\",\"download\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"component\",type:IonNote,selector:\"ion-note\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:CompAvatarRoleImageComponent,selector:\"fm-avatar-role-image\",inputs:[\"fmodeChat\",\"role\"]},{kind:\"component\",type:CompAvatarRoleVideoComponent,selector:\"fm-avatar-role-video\",inputs:[\"fmodeChat\",\"role\"],outputs:[\"onClose\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatHeaderArea,decorators:[{type:Component,args:[{selector:\"fm-chat-header-area\",standalone:!0,imports:[CommonModule,IonToolbar,IonButtons,IonButton,IonIcon,IonModal,IonAvatar,IonTitle,IonHeader,IonList,IonItem,IonCard,IonLabel,IonNote,CompAvatarRoleImageComponent,CompAvatarRoleVideoComponent],template:'<ion-toolbar *ngIf=\"chat?.isAvatarShow==false\">\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"goBack()\">\\n <ion-icon name=\"chevron-back-outline\"></ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>\\n <div class=\"title-avatar-area\">\\n <div class=\"avatar-img\" (click)=\"chat.showAvatar()\">\\n <img *ngIf=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" [src]=\"chat?.role?.get(\\'avatar\\')||chat?.role?.get(\\'thumb\\')\" />\\n <ion-icon *ngIf=\"chat?.role?.get(\\'avatarConfig\\')\" name=\"resize-outline\"></ion-icon>\\n </div>\\n <span (click)=\"chat.showAvatar()\">\\n {{chat?.role?.get(\"name\")}}\\n </span>\\n </div>\\n </ion-title>\\n\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"isModalOpen=true\"> <ion-icon name=\"ellipsis-horizontal-outline\"></ion-icon> </ion-button>\\n </ion-buttons>\\n</ion-toolbar>\\n\\n<div class=\"avatar-area\" *ngIf=\"chat?.isAvatarShow==true\">\\n <fm-avatar-role-image *ngIf=\"chat?.avatarMode==\\'image\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-image>\\n <fm-avatar-role-video *ngIf=\"chat?.avatarMode==\\'video\\'\" [fmodeChat]=\"chat\" [role]=\"avatarRole\"></fm-avatar-role-video>\\n</div>\\n\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"isModalOpen=false\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"isModalOpen=false\">返回</ion-button>\\n </ion-buttons>\\n <ion-title>简介</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n\\n <ion-card style=\"margin: 0px;\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" alt=\"\">\\n <ion-card-header>\\n <ion-card-subtitle>{{chat?.role?.get(\\'tags\\')}}</ion-card-subtitle>\\n <ion-card-title>{{chat?.role?.get(\"name\")}}</ion-card-title>\\n </ion-card-header>\\n \\n <ion-card-content>\\n {{chat?.role?.get(\"desc\")}}\\n \\n <ion-list [inset]=\"true\" style=\"margin:0px;\">\\n \\x3c!-- <ion-item>\\n <ion-avatar *ngIf=\"chat?.role?.get(\\'thumb\\')\" aria-hidden=\"true\" slot=\"start\">\\n <img [src]=\"chat?.role?.get(\\'thumb\\')\" />\\n </ion-avatar>\\n <ion-label>{{chat?.role?.get(\"name\")}}</ion-label>\\n </ion-item> --\\x3e\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'age\\')\">\\n <ion-note slot=\"start\">年龄</ion-note>\\n <ion-label>{{chat?.role?.get(\"age\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\" *ngIf=\"chat?.role?.get(\\'gender\\')\">\\n <ion-note slot=\"start\">性别</ion-note>\\n <ion-label>{{chat?.role?.get(\"gender\")}}</ion-label>\\n </ion-item>\\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">称号</ion-note>\\n <ion-label>{{chat?.role?.get(\"title\")}}</ion-label>\\n </ion-item>\\n \\n <ion-item lines=\"none\">\\n <ion-note slot=\"start\">擅长</ion-note>\\n <ion-label>{{chat?.role?.get(\"tags\")?.join(\\',\\')}}</ion-label>\\n </ion-item>\\n \\n </ion-list>\\n </ion-card-content>\\n </ion-card>\\n </ion-content>\\n </ng-template>\\n </ion-modal>',styles:[\".title-avatar-area{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.title-avatar-area .avatar-img img{width:32px;height:32px;border-radius:50%;margin-right:5px}.title-avatar-area .avatar-img ion-icon{background:#df76dfcc;border-radius:50%;padding:3px;position:absolute;color:#000;margin-left:-20px;font-size:10px;margin-top:18px}.avatar-area{height:100%}\\n\"]}]}],ctorParameters:()=>[{type:i2$3.NavController}],propDecorators:{chat:[{type:Input}]}}),Parse__default.applicationId||(Parse__default.initialize(\"ncloudmaster\"),Parse__default.serverURL=(Parse__default.serverURL?.split(\"parse\")?.[0]||\"https://server.fmode.cn/\")+\"parse\");class AuthService{isGuardLock(e){let t=!0,n=Parse__default.User.current();return t=!n?.id&&this.guardMap[e],t}get loginTypeCount(){return Object.values(this.loginOptions)?.filter((e=>e))?.length}get logoUrl(){return localStorage.getItem(\"LOGO_URL\")||this._logoUrl||\"https://file.yuban.co/img/logo-feima.png\"}set logoUrl(e){localStorage.setItem(\"LOGO_URL\",e),this._logoUrl=this._logoUrl}getCompanyId(){let e=localStorage.getItem(\"company\");return e=this.company||e,e}constructor(e,t,n,o){this.router=e,this.toastCtrl=t,this.novaCloud=n,this.http=o,this.guardMap={},this.isModalShow=!1,this.showBackHome=!0,this.activeButton=\"账号密码\",this.loginOptions={userpwd:!0,mobilepwd:!0,mobilecode:!0,wechat:!0},this._logoUrl=\"https://file.yuban.co/img/logo-feima.png\",this.wechatUrl=\"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/hv1tsm115258608.jpg\",this.isLoggedIn=!1,this.LoginPage=\"/pcuser/login\",this.mobileUserMap={},this.enabledLocalCode=!1}async toast(e){e.position=e?.position||\"top\",e.duration=e?.duration||1500,e.color=e?.color||\"primary\",(await this.toastCtrl.create(e)).present()}init(e){this.company=e.company,this.guardType=e.guardType,this.saveParamsInvite()}checkLoginLock(){let e=Parse__default.User.current();return!!e?.id||(this.isModalShow=!0,this.isLoggedIn=!1,!1)}checkLogin(e){this.guardMap[e]=!0;let t=Parse__default.User.current();return console.log(\"currentUser\",t),t&&t.id?(this.setAccount(t),this.isLoggedIn=!0,!0):this.guardType&&\"page\"!=this.guardType?\"modal\"==this.guardType?(this.isModalShow=!0,this.isLoggedIn=!1,!0):void 0:(this.redirectUrl=e,this.router.navigate([this.LoginPage]),!1)}async setAccount(e){if(this.account?.id)return;let t=Parse__default.Object.extend(\"Account\"),n=e?.get(\"company\")||{__type:\"Pointer\",className:\"Company\",objectId:this.getCompanyId()}||null,o=new Parse__default.Query(\"Account\");o.equalTo(\"user\",e.toPointer());let i=await o.first();return i?.id||(i=new t,i.set({user:e.toPointer(),company:n}),i=await i.save()),this.account=i,i}login(e,t){return new Promise(((n,o)=>{Parse__default.User.logIn(e,t).then((async e=>{if(this.bindInvite(e),this.setCurrentUserLocalStorage(e),\"modal\"==this.guardType)return await this.refreshPage(),void n(!0);let t=new Parse__default.Query(\"Company\");t.select(\"rootPage\"),t.equalTo(\"objectId\",e?.get(\"company\")?.id);let o=await t.first(),i=o?.get(\"rootPage\");this.redirectUrl=this.redirectUrl||i||\"/project/dashboard\";let a=this.redirectUrl;a=decodeURIComponent(a),this.router.navigate([a])})).catch((e=>{console.error(e),o({message:\"无此用户信息,请先在小程序登录\"})}))}))}refreshPage(){return new Promise((e=>{let t=this.router.url;Parse__default.User.current()?.id&&(this.isModalShow=!1),this.router.navigateByUrl(\"/\",{skipLocationChange:!0}).then((()=>{this.router.navigateByUrl(t).then((()=>{e(!0)}))}))}))}setCurrentUserLocalStorage(e){e.get(\"company\")?.id&&localStorage.setItem(\"company\",e.get(\"company\")?.id)}logout(e,t){let n=localStorage.getItem(\"company\"),o=localStorage.getItem(\"WECHAT_APP_ID\"),i=localStorage.getItem(\"LOGO_URL\"),a=localStorage.getItem(\"NOVA_APIG_SERVER\");localStorage.clear(),localStorage.setItem(\"company\",n),localStorage.setItem(\"WECHAT_APP_ID\",o),localStorage.setItem(\"LOGO_URL\",i),localStorage.setItem(\"NOVA_APIG_SERVER\",a),Parse__default.User.logOut().then((e=>{})),this.router.navigate([t||\"/pcuser/login\"])}async loginMobilePassword(e,t,n){let o=await this.getMobileUser(e);o?this.login(o,t).then((async e=>{this.isModalShow=!1})).catch((e=>{console.log(e),n.create(\"error\",\"错误的用户名或密码\")})):n.create(\"error\",\"用户不存在,请尝试其他登录方式\")}signMobilePassword(e,t){return new Promise((async(n,o)=>{n(await this.signUpAndUpdate(e,t))}))}async getMobileUser(e){let t=this.getCompanyId(),n=t+e;if(this.mobileUserMap[n])return this.mobileUserMap[n];let o=await this.novaCloud.api(\"/auth/getusername\",{company:t,mobile:e});return o?.username&&(this.mobileUserMap[n]=o?.username),this.mobileUserMap[n]}signUpAndUpdate(e,t){return t=t||e+\"pwd666\",new Promise((n=>{Parse__default.User.signUp(this.getCompanyId()+\"-\"+e,t,\"\").then((async t=>{t.id&&(console.log(t),t.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:this.getCompanyId()}),t.set(\"mobile\",e),t.set(\"type\",\"user\"),this.bindInvite(t),t=await t.save(),n(t))})).catch((e=>{n(void 0)}))}))}async getMobileCodeToken(e,t){return new Promise(((n,o)=>{let i=Parse__default.serverURL?.split(\"parse\")?.[0]||\"https://server.fmode.cn/\";this.http.get(i+`api/auth/mobile?company=${this.company}&mobile=${e}&code=${t}`).toPromise().then((e=>{n(e)})).catch((e=>{o(e)}))}))}async loginCode(e,t,n,o){if(t)try{let n=await this.getMobileCodeToken(e,t);if(200==n?.code){console.log(200,n);let e=await Parse__default.User.become(n.data.token);if(console.log(e,e?.id),e?.id){console.log(e,e?.id);try{await this.bindInvite(e)}catch(e){console.error(\"bind err b\",e)}return!0}}}catch(n){if(console.log(\"error1\",n),!(n?.error?.mess?.indexOf(\"用户不存在\")>-1))return void this.toast({message:n?.error?.mess});{let n=await this.signUpAndUpdate(e);if(n?.id)return await this.loginCode(e,t)}}else this.toast({color:\"primary\",message:\"请填写有效验证码\"})}saveParamsInvite(){let e=this.novaCloud.searchParse();console.log(\"saveParamsInvite\",e);let t=e?.get(\"invite\");console.log(t),t&&localStorage.setItem(\"invite\",t)}async bindInvite(e){if(!(e=e||Parse__default.User.current()))return;if(e?.get(\"invite\")?.id)return;let t,n=localStorage.getItem(\"invite\");if(n&&e?.id!=n)try{t=await this.novaCloud.api(\"/auth/invite\",{current:e?.id,invite:n,type:\"code\"}),console.log(\"bind\",t)}catch(e){console.error(\"bind err\",e)}}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthService,deps:[{token:i1$1.Router},{token:i2$3.ToastController},{token:NovaCloudService},{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1$1.Router},{type:i2$3.ToastController},{type:NovaCloudService},{type:i1.HttpClient}]});class AccountService{constructor(e,t,n){this.ncloud=e,this.authServ=t,this.http=n,this.company=\"\",this.billing={credit:{usedDetail:{}}},this.wxAppId=\"\",this.wxpayEnabled=!1,this.appid=localStorage.getItem(\"WECHAT_APP_ID\")||\"wxb4193c93ae9aa696\",this.company=this.authServ.company||localStorage.getItem(\"company\"),this.getBilling(),this.getProfile(),this.getUserOpenid()}async getProfile(){let e=Parse__default.User.current()?.id;if(!e)return;let t=new Parse__default.Query(\"Profile\");t.equalTo(\"user\",e),t.equalTo(\"company\",this.company),t.notEqualTo(\"isDeleted\",!0);let n=await t.first();n?.id&&(this.profile=n)}async getBilling(){let e;if(Parse__default.User.current()?.getSessionToken()){try{e=await this.ncloud.apig(\"aigc/account\",null,\"get\")}catch(e){}return e?.credit&&(this.billing=e),e}}async getUserOpenid(){let e=-1!=navigator.userAgent.toLowerCase().indexOf(\"micromessenger\"),t=this.getQueryStringByName(\"code\"),n=localStorage.getItem(\"openid\");if(!n){if(!Parse__default.User.current())return;let o=Parse__default.User.current().get(\"wechat\");n=o?.[this.appid]?.openid,e&&(t?await this.getwechat(t):this.authWechat())}}authWechat(e=\"/account/billing\"){if(!localStorage.getItem(\"openid\")){let e=window.location.href;return e=encodeURIComponent(e),void(window.location.href=\"https://open.weixin.qq.com/connect/oauth2/authorize?appid=\"+this.appid+\"&redirect_uri=\"+e+\"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\")}}getQueryStringByName(e){let t=location.search.match(new RegExp(\"[?&]\"+e+\"=([^&]+)\",\"i\"));return null==t||t.length<1?\"\":t[1]}async getwechat(e,t=\"/account/billing\"){return new Promise((async(n,o)=>{this.http.post(\"https://server.fmode.cn/api/wechat/get_wx\",{company:this.company,code:e}).subscribe((async e=>{if(console.log(e),e&&200==e.code&&e.data.openid){let t=e.data.openid;localStorage.setItem(\"openid\",t),localStorage.removeItem(\"code\");let o={};o[this.appid]={openid:t},Parse__default.User.current().set(\"wechat\",o),await Parse__default.User.current().save(),n(!0)}}),(async e=>{console.log(\"Error updating items\",e),this.authWechat(t),o(!1)}))}))}getWXSignPackageInWechat(){let e={company:this.company,href:encodeURIComponent(location.href.split(\"?\")[0])};this.http.post(\"https://server.fmode.cn/api/wechat/getconfig\",e).subscribe((e=>{const t=e.data;this.wxAppId=t.appid,this.wxpayEnabled=!0,wx.config({debug:!1,appId:t.appid,timestamp:t.timestamp,nonceStr:t.nonceStr,signature:t.signature,jsApiList:[\"chooseWXPay\",\"onMenuShareTimeline\",\"onMenuShareAppMessage\",\"onMenuShareQQ\",\"onMenuShareQZone\",\"updateAppMessageShareData\",\"updateTimelineShareData\"]});let n=\"https://ai.fmode.cn\";location.pathname;Parse__default.User.current()?.id;let o=this.shareInfo||{title:\"飞码AI\",desc:\"解放创意引领未来|国际前沿的AIGC平台\",link:n,type:\"link\",imgUrl:\"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png\",success:function(){console.log(\"分享成功\")},error:function(){console.log(\"分享失败\")},cancel:function(){console.log(\"取消分享\")}};wx.ready((()=>{wx.updateAppMessageShareData(o),wx.updateTimelineShareData(o)})),wx.error((()=>{}))}))}async saveAccountLog(e,t,n,o){return new Promise(((i,a)=>{this.http.post(\"https://test.fmode.cn/api/apig/saveAccountLog\",{company:n,uid:Parse__default.User.current().id,orderid:t,info:e}).subscribe((e=>{console.log(e),i(!0)}),(e=>{console.warn(e),o&&o.error(\"请求超时,请稍后再试\"),a()}))}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AccountService,deps:[{token:NovaCloudService},{token:AuthService},{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AccountService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AccountService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:NovaCloudService},{type:AuthService},{type:i1.HttpClient}]});class CompUserAvatarComponent{constructor(e){this.novaAccount=e,this.type=\"icon\",this.text=\"U\"}ngOnInit(){this.type=this.getType()}ngOnChanges(){this.refresh()}async refresh(){await this.novaAccount.getProfile();let e=this.novaAccount.profile;e?.get(\"type\")&&(\"student\"==e?.get(\"type\")?this.identity=\"https://file-cloud.fmode.cn/khgbeQmvYZ/20231123/k1k4iq103416124.png\":this.identity=\"https://file-cloud.fmode.cn/E4KpGvTEto/20231116/q12c16094638625.png\")}getType(){if(!this.user?.id)return\"icon\";if(this.user?.get(\"avatar\"))return\"avatar\";let e=this.user?.get(\"nickname\")||this.user?.get(\"realname\");return e?(this.text=e?.slice(0,1),\"text\"):\"icon\"}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompUserAvatarComponent,deps:[{token:AccountService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompUserAvatarComponent,isStandalone:!0,selector:\"app-comp-user-avatar\",inputs:{user:\"user\"},usesOnChanges:!0,ngImport:i0,template:'<ng-container *ngIf=\"user?.id || type == \\'icon\\'\">\\n <div class=\"avatar-com\">\\n \\x3c!-- 默认ICON --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'icon\\'\"\\n [style]=\"{ backgroundColor: \\'#222D3A\\' }\"\\n nzIcon=\"user\"\\n ></nz-avatar>\\n \\x3c!-- <div *ngIf=\"type==\\'icon\\'\" class=\"iconfont icon-yonghu-yuan\"></div> --\\x3e\\n \\x3c!-- 头像照片 --\\x3e\\n <div class=\"avatar-com\">\\n <nz-avatar class=\"comp-avatar\"\\n *ngIf=\"type == \\'avatar\\'\"\\n [nzSrc]=\"user?.get(\\'avatar\\')\"\\n ></nz-avatar>\\n <img\\n class=\"auth-icon\"\\n *ngIf=\"identity && type == \\'avatar\\'\"\\n [src]=\"identity\"\\n alt=\"已认证\"\\n />\\n </div>\\n \\x3c!-- 昵称首字符 --\\x3e\\n \\x3c!-- #222D3A --\\x3e\\n \\x3c!-- #0199f9 --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'text\\'\"\\n style=\"background-color: #0199f9\"\\n [nzText]=\"text\"\\n ></nz-avatar>\\n </div>\\n</ng-container>\\n',styles:[\".avatar-com{position:relative;width:32px;height:32px}.avatar-com .auth-icon{width:20px;height:20px;border-radius:50%;position:absolute;right:-6px;bottom:-2px}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:NzAvatarModule},{kind:\"component\",type:i3.NzAvatarComponent,selector:\"nz-avatar\",inputs:[\"nzShape\",\"nzSize\",\"nzGap\",\"nzText\",\"nzSrc\",\"nzSrcSet\",\"nzAlt\",\"nzIcon\"],outputs:[\"nzError\"],exportAs:[\"nzAvatar\"]},{kind:\"ngmodule\",type:NzIconModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompUserAvatarComponent,decorators:[{type:Component,args:[{selector:\"app-comp-user-avatar\",standalone:!0,imports:[CommonModule,NzAvatarModule,NzIconModule],template:'<ng-container *ngIf=\"user?.id || type == \\'icon\\'\">\\n <div class=\"avatar-com\">\\n \\x3c!-- 默认ICON --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'icon\\'\"\\n [style]=\"{ backgroundColor: \\'#222D3A\\' }\"\\n nzIcon=\"user\"\\n ></nz-avatar>\\n \\x3c!-- <div *ngIf=\"type==\\'icon\\'\" class=\"iconfont icon-yonghu-yuan\"></div> --\\x3e\\n \\x3c!-- 头像照片 --\\x3e\\n <div class=\"avatar-com\">\\n <nz-avatar class=\"comp-avatar\"\\n *ngIf=\"type == \\'avatar\\'\"\\n [nzSrc]=\"user?.get(\\'avatar\\')\"\\n ></nz-avatar>\\n <img\\n class=\"auth-icon\"\\n *ngIf=\"identity && type == \\'avatar\\'\"\\n [src]=\"identity\"\\n alt=\"已认证\"\\n />\\n </div>\\n \\x3c!-- 昵称首字符 --\\x3e\\n \\x3c!-- #222D3A --\\x3e\\n \\x3c!-- #0199f9 --\\x3e\\n <nz-avatar\\n *ngIf=\"type == \\'text\\'\"\\n style=\"background-color: #0199f9\"\\n [nzText]=\"text\"\\n ></nz-avatar>\\n </div>\\n</ng-container>\\n',styles:[\".avatar-com{position:relative;width:32px;height:32px}.avatar-com .auth-icon{width:20px;height:20px;border-radius:50%;position:absolute;right:-6px;bottom:-2px}\\n\"]}]}],ctorParameters:()=>[{type:AccountService}],propDecorators:{user:[{type:Input}]}});class DurationStrPipe{transform(e,...t){let n=String(parseInt(String(e/60))),o=\"\";return e/60>1&&(o+=`${n}'`),o+=`${String((e%60).toFixed(0))}\"`,o}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:DurationStrPipe,deps:[],target:i0.ɵɵFactoryTarget.Pipe})}static{this.ɵpipe=i0.ɵɵngDeclarePipe({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:DurationStrPipe,isStandalone:!0,name:\"durationStr\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:DurationStrPipe,decorators:[{type:Pipe,args:[{name:\"durationStr\",standalone:!0}]}]});class FmChatMessageCard{constructor(e){this.copyServ=e,this.user=Parse__default.User.current()}async toggleVoicePlay(){if(this.message?.voice?.id&&this.chat.VoiceTTSMap[this.message?.voice?.id]&&(this.tts=this.chat.VoiceTTSMap[this.message?.voice?.id]),this.tts?.isPlaying)return void this.tts?.stop();let e,t=!1;if(this.message?.voice?.id){let t=new Parse__default.Query(\"ChatVoice\");t.include(\"voiceFile\"),e=await t.get(this.message?.voice?.id)}if(!e?.id){let n=await this.chat.getVoiceByContentText(this.message?.content);e=this.chat.voiceMap[n?.id],this.message.voice={id:e?.id,duration:e?.get(\"duration\")},t=!0}this.message?.voice?.duration||(this.message.voice.duration=e?.get(\"duration\"),t=!0),t&&this.saveSession(),await this.chat.playChatVoice(e,{onStart:t=>{e?.id,t?.id},onLoaded:e=>{this.message.voice.duration=1e3*e.duration,this.updateVoiceDuration(1e3*e.duration)},onStop:t=>{e?.id,t?.id}}),this.tts=this.chat.VoiceTTSMap[e?.id]}updateVoiceDuration(e){this.message?.voice?.duration||(this.message.voice.duration=e,this.saveSession())}saveSession(){(this.index>=2||void 0===this.index)&&this.chat?.saveChatSession()}async copy(){this.copyServ.copyToClipboard(getMessageContentText(this.message?.content))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatMessageCard,deps:[{token:ClipboardService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:FmChatMessageCard,isStandalone:!0,selector:\"fm-chat-message-card\",inputs:{index:\"index\",message:\"message\",role:\"role\",chat:\"chat\"},ngImport:i0,template:'<div class=\"message-card\" [class.right]=\"message?.role==\\'user\\'\" [class.center]=\"message?.role==\\'system\\'\">\\n \\x3c!-- 用户及操作区 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\"> \\x3c!-- 系统消息不显示头像 --\\x3e\\n <div class=\"avatar-row\">\\n <div class=\"actions\">\\n \\x3c!-- 刷新 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"refresh-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n \\x3c!-- 复制 --\\x3e\\n <ion-button size=\"small\" fill=\"outline\" slot=\"start\" (click)=\"copy()\">\\n <ion-icon name=\"copy-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 编辑 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"create-outline\"></ion-icon>\\n </ion-button> --\\x3e\\n </div>\\n \\x3c!-- 音频消息区域 --\\x3e\\n <div *ngIf=\"((message?.role==\\'assistant\\' && chat?.role?.get(\\'voiceConfig\\')?.voice) || (message?.role==\\'user\\'&&message?.voice))\" class=\"play-voice\" (click)=\"toggleVoicePlay()\">\\n <div class=\"voice-button\">\\n <span nz-icon [nzRotate]=\"message?.role==\\'user\\'?-90:90\" nzType=\"wifi\" nzTheme=\"outline\" [class.play-voice-playing]=\"tts?.isPlaying\"></span>\\n </div>\\n <div class=\"voice-info\">\\n <span *ngIf=\"message?.voice?.duration\">\\n {{((message?.voice?.duration||0)/1000) | durationStr}}\\n </span>\\n <span *ngIf=\"!message?.voice?.duration\">\\n \\x3c!-- --\\x3e\\n </span>\\n </div>\\n </div>\\n \\x3c!-- 头像区域 --\\x3e\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\" ></nz-avatar>\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 附件:图片 --\\x3e\\n <div class=\"item-row images\" *ngIf=\"message?.content | chatContent:\\'image_url\\'\">\\n <img [src]=\"message?.content | chatContent:\\'image_url\\'\" alt=\"\">\\n </div>\\n \\x3c!-- 聊天气泡 --\\x3e\\n <div class=\"item-row bubble\" [style.fontSize]=\"role?.get(\\'uiConfig\\')?.message?.bubble?.fontSize || \\'0.8rem\\'\">\\n <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content | chatContent\" [render]=\"false\"></fm-markdown-preview>\\n <fm-markdown-preview *ngIf=\"message?.complete\" [content]=\"message?.content | chatContent\"></fm-markdown-preview>\\n </div>\\n \\x3c!-- 时间显示 --\\x3e\\n <div class=\"item-row loading\" *ngIf=\"message?.role!=\\'system\\' && !message?.complete\">\\n 正在输入<ion-spinner name=\"dots\"></ion-spinner>\\n </div>\\n\\n <div class=\"item-row created\" *ngIf=\"message?.createdAt\">\\n <span>{{message?.createdAt | date:\"dd/MM/yy HH:mm\"}}</span>\\n </div>\\n</div>',styles:['@charset \"UTF-8\";:host-context(body.dark) .message-card .actions .item-native{background:none!important}:host-context(body.dark) .message-card .bubble{color:#0e101d}:host-context(body.dark) .message-card .bubble .content-style{filter:invert(1)!important}:host-context(body.dark) .message-card .bubble fm-markdown-preview{filter:invert(1)!important}:host-context(body.dark) .message-card .play-voice{background-color:#0e101d}:host-context(body.dark) .message-card .play-voice .voice-info{color:#fff}:host-context(body.dark) .message-card .right .bubble{color:#921f8a!important;background:#921f8a!important}:host-context(body.dark) .message-card .right .play-voice{background:#921f8a!important}:host-context(body.dark) .message-card .created span{color:#fff}@media screen and (max-width: 800px){.message-card:focus .actions{opacity:1!important}}.message-card:hover .actions{opacity:1;transition:opacity .3s ease-in-out}.message-card{display:flex;flex-wrap:wrap;justify-content:start;align-items:flex-start}.message-card .avatar-row{width:300px;height:32px;display:flex;flex-direction:row-reverse;justify-content:start;align-items:center}.message-card .actions{display:flex;opacity:0;padding-left:10px;padding-right:10px}.message-card .item-row{display:flex;flex:100%;justify-content:start;margin-bottom:5px}.message-card .images img{max-width:300px}.message-card .bubble{display:flex;justify-content:center;max-width:100%;padding:.5rem .5rem 0rem;color:#333;flex:none;border-radius:0 1.5em 1.5em/0em 1.5em 1.5em;color:#fff;background-color:currentColor}.message-card .bubble .content-style{filter:grayscale(1) contrast(999) invert(1)}.message-card .loading{text-align:right;color:#101010}.message-card .created{display:flex}.message-card .created span{font-size:12px;opacity:.4;white-space:nowrap;transition:all .6s ease;color:var(--black);text-align:center;width:100%;box-sizing:border-box;padding-right:10px;pointer-events:none;z-index:1}.right{justify-content:end;align-items:flex-end}.right .avatar-row{flex-direction:row;justify-content:end;width:auto}.right .actions{position:relative;margin-left:0}.right .item-row{justify-content:end}.right .bubble{color:#bbdefb;border-top-left-radius:1.5em;border-top-right-radius:0}.right .play-voice{flex-direction:row-reverse;background-color:#bbdefb}.center{justify-content:center;align-items:center}.center .item-row{justify-content:center}.center .bubble{color:var(--gray-secondary);border-top-left-radius:1.5em;border-top-right-radius:1.5em;font-size:12px;font-weight:100;padding:5px 20px}.play-voice{min-width:100px;height:32px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-radius:7px}.play-voice .voice-button{width:32px;height:32px;display:flex;justify-content:center;align-items:center}.play-voice .voice-button span{overflow:hidden;font-size:18px;color:#ff69b4}.play-voice .voice-info{height:32px;display:flex;padding:0 10px;justify-content:end;align-items:center;color:#333}.play-voice-playing{animation:play-voice-animation 1s infinite}@keyframes play-voice-animation{0%{width:0}to{width:32px}}\\n'],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"pipe\",type:i2$2.DatePipe,name:\"date\"},{kind:\"component\",type:CompUserAvatarComponent,selector:\"app-comp-user-avatar\",inputs:[\"user\"]},{kind:\"ngmodule\",type:MarkdownPreviewModule},{kind:\"component\",type:MarkdownPreviewComponent,selector:\"fm-markdown-preview\",inputs:[\"content\",\"render\"]},{kind:\"ngmodule\",type:NzAvatarModule},{kind:\"component\",type:i3.NzAvatarComponent,selector:\"nz-avatar\",inputs:[\"nzShape\",\"nzSize\",\"nzGap\",\"nzText\",\"nzSrc\",\"nzSrcSet\",\"nzAlt\",\"nzIcon\"],outputs:[\"nzError\"],exportAs:[\"nzAvatar\"]},{kind:\"ngmodule\",type:NzIconModule},{kind:\"directive\",type:i5.NzIconDirective,selector:\"[nz-icon]\",inputs:[\"nzSpin\",\"nzRotate\",\"nzType\",\"nzTheme\",\"nzTwotoneColor\",\"nzIconfont\"],exportAs:[\"nzIcon\"]},{kind:\"pipe\",type:ChatContentPipe,name:\"chatContent\"},{kind:\"pipe\",type:DurationStrPipe,name:\"durationStr\"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatMessageCard,decorators:[{type:Component,args:[{selector:\"fm-chat-message-card\",standalone:!0,imports:[CommonModule,IonItem,CompUserAvatarComponent,MarkdownPreviewModule,NzAvatarModule,IonAvatar,NzIconModule,ChatContentPipe,NzSanitizerPipe,DurationStrPipe],template:'<div class=\"message-card\" [class.right]=\"message?.role==\\'user\\'\" [class.center]=\"message?.role==\\'system\\'\">\\n \\x3c!-- 用户及操作区 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\"> \\x3c!-- 系统消息不显示头像 --\\x3e\\n <div class=\"avatar-row\">\\n <div class=\"actions\">\\n \\x3c!-- 刷新 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"refresh-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n \\x3c!-- 复制 --\\x3e\\n <ion-button size=\"small\" fill=\"outline\" slot=\"start\" (click)=\"copy()\">\\n <ion-icon name=\"copy-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 编辑 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"create-outline\"></ion-icon>\\n </ion-button> --\\x3e\\n </div>\\n \\x3c!-- 音频消息区域 --\\x3e\\n <div *ngIf=\"((message?.role==\\'assistant\\' && chat?.role?.get(\\'voiceConfig\\')?.voice) || (message?.role==\\'user\\'&&message?.voice))\" class=\"play-voice\" (click)=\"toggleVoicePlay()\">\\n <div class=\"voice-button\">\\n <span nz-icon [nzRotate]=\"message?.role==\\'user\\'?-90:90\" nzType=\"wifi\" nzTheme=\"outline\" [class.play-voice-playing]=\"tts?.isPlaying\"></span>\\n </div>\\n <div class=\"voice-info\">\\n <span *ngIf=\"message?.voice?.duration\">\\n {{((message?.voice?.duration||0)/1000) | durationStr}}\\n </span>\\n <span *ngIf=\"!message?.voice?.duration\">\\n \\x3c!-- --\\x3e\\n </span>\\n </div>\\n </div>\\n \\x3c!-- 头像区域 --\\x3e\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\" ></nz-avatar>\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 附件:图片 --\\x3e\\n <div class=\"item-row images\" *ngIf=\"message?.content | chatContent:\\'image_url\\'\">\\n <img [src]=\"message?.content | chatContent:\\'image_url\\'\" alt=\"\">\\n </div>\\n \\x3c!-- 聊天气泡 --\\x3e\\n <div class=\"item-row bubble\" [style.fontSize]=\"role?.get(\\'uiConfig\\')?.message?.bubble?.fontSize || \\'0.8rem\\'\">\\n <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content | chatContent\" [render]=\"false\"></fm-markdown-preview>\\n <fm-markdown-preview *ngIf=\"message?.complete\" [content]=\"message?.content | chatContent\"></fm-markdown-preview>\\n </div>\\n \\x3c!-- 时间显示 --\\x3e\\n <div class=\"item-row loading\" *ngIf=\"message?.role!=\\'system\\' && !message?.complete\">\\n 正在输入<ion-spinner name=\"dots\"></ion-spinner>\\n </div>\\n\\n <div class=\"item-row created\" *ngIf=\"message?.createdAt\">\\n <span>{{message?.createdAt | date:\"dd/MM/yy HH:mm\"}}</span>\\n </div>\\n</div>',styles:['@charset \"UTF-8\";:host-context(body.dark) .message-card .actions .item-native{background:none!important}:host-context(body.dark) .message-card .bubble{color:#0e101d}:host-context(body.dark) .message-card .bubble .content-style{filter:invert(1)!important}:host-context(body.dark) .message-card .bubble fm-markdown-preview{filter:invert(1)!important}:host-context(body.dark) .message-card .play-voice{background-color:#0e101d}:host-context(body.dark) .message-card .play-voice .voice-info{color:#fff}:host-context(body.dark) .message-card .right .bubble{color:#921f8a!important;background:#921f8a!important}:host-context(body.dark) .message-card .right .play-voice{background:#921f8a!important}:host-context(body.dark) .message-card .created span{color:#fff}@media screen and (max-width: 800px){.message-card:focus .actions{opacity:1!important}}.message-card:hover .actions{opacity:1;transition:opacity .3s ease-in-out}.message-card{display:flex;flex-wrap:wrap;justify-content:start;align-items:flex-start}.message-card .avatar-row{width:300px;height:32px;display:flex;flex-direction:row-reverse;justify-content:start;align-items:center}.message-card .actions{display:flex;opacity:0;padding-left:10px;padding-right:10px}.message-card .item-row{display:flex;flex:100%;justify-content:start;margin-bottom:5px}.message-card .images img{max-width:300px}.message-card .bubble{display:flex;justify-content:center;max-width:100%;padding:.5rem .5rem 0rem;color:#333;flex:none;border-radius:0 1.5em 1.5em/0em 1.5em 1.5em;color:#fff;background-color:currentColor}.message-card .bubble .content-style{filter:grayscale(1) contrast(999) invert(1)}.message-card .loading{text-align:right;color:#101010}.message-card .created{display:flex}.message-card .created span{font-size:12px;opacity:.4;white-space:nowrap;transition:all .6s ease;color:var(--black);text-align:center;width:100%;box-sizing:border-box;padding-right:10px;pointer-events:none;z-index:1}.right{justify-content:end;align-items:flex-end}.right .avatar-row{flex-direction:row;justify-content:end;width:auto}.right .actions{position:relative;margin-left:0}.right .item-row{justify-content:end}.right .bubble{color:#bbdefb;border-top-left-radius:1.5em;border-top-right-radius:0}.right .play-voice{flex-direction:row-reverse;background-color:#bbdefb}.center{justify-content:center;align-items:center}.center .item-row{justify-content:center}.center .bubble{color:var(--gray-secondary);border-top-left-radius:1.5em;border-top-right-radius:1.5em;font-size:12px;font-weight:100;padding:5px 20px}.play-voice{min-width:100px;height:32px;display:flex;justify-content:space-around;align-items:center;background-color:#fff;border-radius:7px}.play-voice .voice-button{width:32px;height:32px;display:flex;justify-content:center;align-items:center}.play-voice .voice-button span{overflow:hidden;font-size:18px;color:#ff69b4}.play-voice .voice-info{height:32px;display:flex;padding:0 10px;justify-content:end;align-items:center;color:#333}.play-voice-playing{animation:play-voice-animation 1s infinite}@keyframes play-voice-animation{0%{width:0}to{width:32px}}\\n']}]}],ctorParameters:()=>[{type:ClipboardService}],propDecorators:{index:[{type:Input}],message:[{type:Input}],role:[{type:Input}],chat:[{type:Input}]}});class CompRolePromptComponent{constructor(e,t){this.cross=e,this.modalController=t,this.role=\"\",this.showModal=!1,this.cateIndex=0,this.isDarkMode=!1,this.company=\"E4KpGvTEto\"}ngOnInit(){this.getChatPrompt(),document.body.classList.contains(\"dark\")&&(this.isDarkMode=!0)}applyPrompt(e){this.chat.userInput=e,this.chat.isVoiceInputMode=!1,this.chat.focusUserInput(),\"mobile\"==this.cross?.navMenuType&&this.modalController.dismiss()}async getChatPrompt(){let e=new Parse.Query(\"ChatPrompt\");e.notEqualTo(\"isDeleted\",!0),e.equalTo(\"company\",this.company),e.equalTo(\"role\",this.role),e.include(\"role\");let t=await e.find();this.chat.promptList=t,this.chat.promptList.forEach((e=>{let t=e.get(\"role\").get(\"promptCates\").filter((t=>t.name==e.get(\"cate\")));e.img=t[0].img})),console.log(this.chat.promptList)}checkCate(e){this.cateIndex=e}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompRolePromptComponent,deps:[{token:CrossService},{token:i2$3.ModalController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompRolePromptComponent,isStandalone:!0,selector:\"app-comp-role-prompt\",inputs:{chat:\"chat\",role:\"role\"},providers:[ModalController$1],ngImport:i0,template:'<ng-container *ngIf=\"chat?.messageList?.length<4 && chat?.isPromptMessageAreaShow && !chat?.userInput\">\\n \\x3c!-- PC端样式 --\\x3e\\n <div class=\"prompt\" *ngIf=\"cross?.navMenuType!=\\'mobile\\'\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\')\">\\n <div class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n \\x3c!-- 手机端样式 --\\x3e\\n <ng-container *ngIf=\"cross?.navMenuType==\\'mobile\\'\">\\n <div class=\"prompt_mobile\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\');let idx = index\">\\n <div *ngIf=\"idx<3\" class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n <div class=\"view_more\" *ngIf=\"chat?.promptList?.length\">\\n <button (click)=\"chat.isPromptModalOpen=true\" expand=\"block\">查看更多<span nz-icon nzType=\"right\" nzTheme=\"outline\"></span></button>\\n </div>\\n </ng-container>\\n</ng-container>\\n\\n <ion-modal [isOpen]=\"chat.isPromptModalOpen\" (willDismiss)=\"chat.isPromptModalOpen=false\" [initialBreakpoint]=\"1\" [breakpoints]=\"[0, 1]\">\\n <ng-template>\\n <div class=\"block\">\\n <ion-label>话题灵感</ion-label>\\n <div class=\"block_cate\">\\n \\x3c!-- <ion-segment [(ngModel)]=\"cateIndex\">\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-segment-button value=\"i\">\\n <ion-label>{{prompt?.get(\"cate\")}}</ion-label>\\n </ion-segment-button>\\n </ng-container>\\n </ion-segment> --\\x3e\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-button [color]=\"i==cateIndex?\\'secondary\\':\\'light\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</ion-button>\\n \\x3c!-- <div [class]=\"i==cateIndex?\\'active_cate\\':\\'\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</div> --\\x3e\\n </ng-container>\\n </div>\\n <div class=\"message_mobile\">\\n <ng-container *ngFor=\"let message of chat?.promptList[cateIndex]?.get(\\'messageList\\')\">\\n <div class=\"message-box\" [style.backgroundColor]=\"isDarkMode?\\'rgba(255,255,255,0.2)\\':\\'white\\'\" [style.color]=\"isDarkMode?\\'rgba(255,255,255,0.5)\\':\\'black\\'\" (click)=\"applyPrompt(message)\">{{message}}</div>\\n </ng-container>\\n </div>\\n </div>\\n </ng-template>\\n </ion-modal>',styles:[\":host-context(body.dark) .prompt_cate .message{background:#fff3;border:1px solid #333;box-shadow:0 2px 8px #333;color:#ffffff80}:host-context(body.dark) .cate_info{color:#fff}:host-context(body.dark) ion-modal .block h4{color:#fff!important}:host-context(body.dark) ion-modal .block .message-box{color:#ccc!important;background-color:#333!important}:host-context(body.dark) .message-box{color:#ccc!important;background-color:#333!important}.prompt{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt .prompt_cate{flex:1;height:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;justify-content:center}.prompt .prompt_cate .cate_info{font-size:1.5em;font-weight:700}.prompt .prompt_cate .cate_info div img{width:58px;height:58px}.prompt .prompt_cate .cate_info .cate_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prompt .prompt_cate .message{padding:1em;margin:1em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 390.4px){.prompt .prompt_cate .message{width:100px;height:64px;padding:unset;margin:.8em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:pre-wrap;text-overflow:ellipsis}}.prompt_mobile{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt_mobile .prompt_cate{flex:1;height:inherit}.prompt_mobile .prompt_cate .cate_info{display:flex;justify-content:center;align-items:center;font-size:1.2em}.prompt_mobile .prompt_cate .cate_info div img{width:48px;height:48px}.prompt_mobile .prompt_cate .cate_info .cate_name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;margin-top:2vw}.prompt_mobile .prompt_cate .message{min-height:48px;padding:0 2vw;margin:4vw 1vw;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.view_more{text-align:center;color:#999;margin:4vw 0}.view_more>button{background-color:transparent}.block{width:100%;height:80vh;padding:2vw}.block .block_cate{display:flex;justify-content:space-evenly}.block .message_mobile{overflow-y:auto;height:65vh;color:#000}.message-box{background-color:#fff;text-align:center;padding:8px 0;margin:8px 0;border-radius:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-modal{--height: auto}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:FormsModule},{kind:\"ngmodule\",type:ReactiveFormsModule},{kind:\"component\",type:IonModal,selector:\"ion-modal\"},{kind:\"component\",type:IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"ngmodule\",type:NzIconModule},{kind:\"directive\",type:i5.NzIconDirective,selector:\"[nz-icon]\",inputs:[\"nzSpin\",\"nzRotate\",\"nzType\",\"nzTheme\",\"nzTwotoneColor\",\"nzIconfont\"],exportAs:[\"nzIcon\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompRolePromptComponent,decorators:[{type:Component,args:[{selector:\"app-comp-role-prompt\",standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonModal,IonButton,IonSegment,IonLabel,NzIconModule],providers:[ModalController$1],template:'<ng-container *ngIf=\"chat?.messageList?.length<4 && chat?.isPromptMessageAreaShow && !chat?.userInput\">\\n \\x3c!-- PC端样式 --\\x3e\\n <div class=\"prompt\" *ngIf=\"cross?.navMenuType!=\\'mobile\\'\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\')\">\\n <div class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n \\x3c!-- 手机端样式 --\\x3e\\n <ng-container *ngIf=\"cross?.navMenuType==\\'mobile\\'\">\\n <div class=\"prompt_mobile\">\\n <ng-container *ngFor=\"let content of chat?.promptList\">\\n <div class=\"prompt_cate\">\\n <div class=\"cate_info\">\\n <div>\\n <img [src]=\"content.img\" alt=\"\">\\n </div>\\n <div class=\"cate_name\">\\n {{content.get(\\'cate\\')}}\\n </div>\\n </div>\\n <ng-container *ngFor=\"let message of content.get(\\'messageList\\');let idx = index\">\\n <div *ngIf=\"idx<3\" class=\"message\" (click)=\"applyPrompt(message)\" nz-tooltip [nzTooltipTitle]=\"message\"\\n nzTooltipColor=\"#108ee9\">\\n {{message}}\\n </div>\\n </ng-container>\\n </div>\\n </ng-container>\\n </div>\\n <div class=\"view_more\" *ngIf=\"chat?.promptList?.length\">\\n <button (click)=\"chat.isPromptModalOpen=true\" expand=\"block\">查看更多<span nz-icon nzType=\"right\" nzTheme=\"outline\"></span></button>\\n </div>\\n </ng-container>\\n</ng-container>\\n\\n <ion-modal [isOpen]=\"chat.isPromptModalOpen\" (willDismiss)=\"chat.isPromptModalOpen=false\" [initialBreakpoint]=\"1\" [breakpoints]=\"[0, 1]\">\\n <ng-template>\\n <div class=\"block\">\\n <ion-label>话题灵感</ion-label>\\n <div class=\"block_cate\">\\n \\x3c!-- <ion-segment [(ngModel)]=\"cateIndex\">\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-segment-button value=\"i\">\\n <ion-label>{{prompt?.get(\"cate\")}}</ion-label>\\n </ion-segment-button>\\n </ng-container>\\n </ion-segment> --\\x3e\\n <ng-container *ngFor=\"let prompt of chat?.promptList;let i = index\">\\n <ion-button [color]=\"i==cateIndex?\\'secondary\\':\\'light\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</ion-button>\\n \\x3c!-- <div [class]=\"i==cateIndex?\\'active_cate\\':\\'\\'\" (click)=\"checkCate(i)\">{{prompt?.get(\"cate\")}}</div> --\\x3e\\n </ng-container>\\n </div>\\n <div class=\"message_mobile\">\\n <ng-container *ngFor=\"let message of chat?.promptList[cateIndex]?.get(\\'messageList\\')\">\\n <div class=\"message-box\" [style.backgroundColor]=\"isDarkMode?\\'rgba(255,255,255,0.2)\\':\\'white\\'\" [style.color]=\"isDarkMode?\\'rgba(255,255,255,0.5)\\':\\'black\\'\" (click)=\"applyPrompt(message)\">{{message}}</div>\\n </ng-container>\\n </div>\\n </div>\\n </ng-template>\\n </ion-modal>',styles:[\":host-context(body.dark) .prompt_cate .message{background:#fff3;border:1px solid #333;box-shadow:0 2px 8px #333;color:#ffffff80}:host-context(body.dark) .cate_info{color:#fff}:host-context(body.dark) ion-modal .block h4{color:#fff!important}:host-context(body.dark) ion-modal .block .message-box{color:#ccc!important;background-color:#333!important}:host-context(body.dark) .message-box{color:#ccc!important;background-color:#333!important}.prompt{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt .prompt_cate{flex:1;height:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;justify-content:center}.prompt .prompt_cate .cate_info{font-size:1.5em;font-weight:700}.prompt .prompt_cate .cate_info div img{width:58px;height:58px}.prompt .prompt_cate .cate_info .cate_name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.prompt .prompt_cate .message{padding:1em;margin:1em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media screen and (max-width: 390.4px){.prompt .prompt_cate .message{width:100px;height:64px;padding:unset;margin:.8em;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;overflow:hidden;white-space:pre-wrap;text-overflow:ellipsis}}.prompt_mobile{color:#000;display:flex;justify-content:space-between;align-items:flex-start}.prompt_mobile .prompt_cate{flex:1;height:inherit}.prompt_mobile .prompt_cate .cate_info{display:flex;justify-content:center;align-items:center;font-size:1.2em}.prompt_mobile .prompt_cate .cate_info div img{width:48px;height:48px}.prompt_mobile .prompt_cate .cate_info .cate_name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;margin-top:2vw}.prompt_mobile .prompt_cate .message{min-height:48px;padding:0 2vw;margin:4vw 1vw;background:#fff;border:1px solid #eef2f2;border-radius:12px;box-shadow:0 2px 8px #f5f6f8;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}.view_more{text-align:center;color:#999;margin:4vw 0}.view_more>button{background-color:transparent}.block{width:100%;height:80vh;padding:2vw}.block .block_cate{display:flex;justify-content:space-evenly}.block .message_mobile{overflow-y:auto;height:65vh;color:#000}.message-box{background-color:#fff;text-align:center;padding:8px 0;margin:8px 0;border-radius:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}ion-modal{--height: auto}\\n\"]}]}],ctorParameters:()=>[{type:CrossService},{type:i2$3.ModalController}],propDecorators:{chat:[{type:Input}],role:[{type:Input}]}});class FmChatMesssageArea{get messageList(){return this.chatServ.chatMap[this.chatId]?.messageList}constructor(e){this.chatServ=e}ngDoCheck(){}ngAfterViewInit(){console.log(\"ng gogogo1\"),console.log(\"ng gogogo2\"),console.log(this.chat)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatMesssageArea,deps:[{token:ChatService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"17.0.0\",version:\"17.3.12\",type:FmChatMesssageArea,isStandalone:!0,selector:\"fm-chat-message-area\",inputs:{chatId:\"chatId\",chat:\"chat\"},ngImport:i0,template:'\\n<div class=\"message-list\">\\n <app-comp-role-prompt [chat]=\"chat\" [role]=\"chat?.role?.id\"></app-comp-role-prompt>\\n <ng-container *ngFor=\"let message of chat?.messageList;let index=index;\">\\n \\x3c!-- 内容格式化区域 --\\x3e\\n <fm-chat-message-card [chat]=\"chat\" *ngIf=\"!message?.hidden\" [index]=\"index\" [message]=\"message\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n\\n @if(!chat?.hideInputPreview){\\n \\x3c!-- 预览无图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userInput&&!chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:chat?.userInput}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n \\n \\x3c!-- 预览有图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:[{type:\\'text\\',text:chat?.userInput},{type:\\'image_url\\',image_url:{url:chat?.userImage}}]}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n }\\n</div>',styles:[\".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"component\",type:FmChatMessageCard,selector:\"fm-chat-message-card\",inputs:[\"index\",\"message\",\"role\",\"chat\"]},{kind:\"component\",type:CompRolePromptComponent,selector:\"app-comp-role-prompt\",inputs:[\"chat\",\"role\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatMesssageArea,decorators:[{type:Component,args:[{selector:\"fm-chat-message-area\",standalone:!0,imports:[CommonModule,FmChatMessageCard,CompRolePromptComponent],template:'\\n<div class=\"message-list\">\\n <app-comp-role-prompt [chat]=\"chat\" [role]=\"chat?.role?.id\"></app-comp-role-prompt>\\n <ng-container *ngFor=\"let message of chat?.messageList;let index=index;\">\\n \\x3c!-- 内容格式化区域 --\\x3e\\n <fm-chat-message-card [chat]=\"chat\" *ngIf=\"!message?.hidden\" [index]=\"index\" [message]=\"message\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n\\n @if(!chat?.hideInputPreview){\\n \\x3c!-- 预览无图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userInput&&!chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:chat?.userInput}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n \\n \\x3c!-- 预览有图消息 --\\x3e\\n <ng-container *ngIf=\"chat?.userImage\">\\n <fm-chat-message-card [chat]=\"chat\" [message]=\"{role:\\'user\\',content:[{type:\\'text\\',text:chat?.userInput},{type:\\'image_url\\',image_url:{url:chat?.userImage}}]}\" [role]=\"chat?.role\"></fm-chat-message-card>\\n </ng-container>\\n }\\n</div>',styles:[\".message-list{padding:5px 20px}:host-context(body.dark) .message-list{background-color:#000!important}\\n\"]}]}],ctorParameters:()=>[{type:ChatService}],propDecorators:{chatId:[{type:Input}],chat:[{type:Input}]}});class ModalAudioMessageComponent{constructor(e,t,n){this.voiceServ=e,this.toastCtrl=t,this.uploadServ=n,this.isRecording=!1,this.player=new Audio,this.durationStr=\"0:00\"}ngOnInit(){this.chat.userInput=\"\",this.initVoiceSevice(),this.voiceServ.startTalk()}playMusic(e){this.player||(this.player=new Audio),this.player.src=`/assets/avatar/voice/${e}.mp3`;try{this.player?.play()}catch(e){}}initVoiceSevice(){this.chat.userInput=this.voiceServ.resultText,this.voiceServ.requestPermission().then((()=>{this.voiceServ.openWithPriviledge()})),this.voiceServ.onBeforeStartTalk=()=>{this.chat.playAnimation(\"listening\"),this.playMusic(\"start-talk\")},this.voiceServ.onAfterRecordStart=()=>{this.isRecording=!0},this.voiceServ.onDurationStrChange=e=>{this.durationStr=e},this.voiceServ.onBeforeCancelTalk=()=>{this.playMusic(\"interupt-talk\"),this.chat.playAnimation(\"waiting\")},this.voiceServ.onAfterCancelTalk=()=>{},this.voiceServ.onBeforeFinishTalk=()=>{this.chat.playAnimation(\"thinking\"),this.playMusic(\"stop-talk\")},this.voiceServ.onAfterFinishTalk=async()=>{console.log(\"onAfterFinishTalk1\",this.voiceServ?.resultText),console.log(\"onAfterFinishTalk2\",this.voiceServ?.resultTextTemp),this.chat.userInput=\"\"+(this.voiceServ?.resultTextTemp||this.voiceServ?.resultText),this.chat?.userInput&&await this.saveChatVoice(),this.sendMessage()}}async saveChatVoice(){let e=this.voiceServ.recordWavBlob,t=this.voiceServ.recordDuration;if(e){let n=Parse__default.Object.extend(\"ChatVoice\");this.chatVoice=new n,this.chatVoice.set(\"content\",this.chat.userInput),this.chatVoice.set(\"role\",\"user\"),this.chatVoice.set(\"duration\",t);let o=localStorage.getItem(\"company\");o&&this.chatVoice.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:o}),Parse__default.User.current()?.id&&this.chatVoice.set(\"user\",Parse__default.User.current().toPointer());let i=this.chatVoice?.id||this.uploadServ?.genMd5(this.chatVoice?.get(\"content\")||this.chatVoice?.get(\"ssml\")),a=new Date,r=i+a.getFullYear()+(a.getMonth()+1)+a.getDate()+a.getHours()+a.getMinutes()+a.getSeconds()+\".wav\",s=new File([e],r,{type:\"audio/wav\"}),l=await this.uploadServ.upload(s,(e=>{console.log(e)})),c={__type:\"Pointer\",className:\"Attachment\",objectId:l?.id};c?.objectId&&(this.chatVoice.set(\"voiceFile\",c),this.chatVoice=await this.chatVoice.save())}}async sendMessage(){if(this.chat.userInput)this.chat?.sendMessage(\"\"+this.chat?.userInput,this.chat?.userImage,(e=>{}),{onSSMLComplete:e=>{console.log(e)}},{id:this.chatVoice?.id,duration:this.chatVoice?.get(\"duration\")});else{(await this.toastCtrl.create({message:\"内容不能为空\",position:\"top\",icon:\"alert\",color:\"warning-circle\",duration:1e3})).present()}}cancel(){this.clear(),this.voiceServ.cancelTalk(),this.modal?.dismiss(null,\"cancel\")}send(){this.clear(),this.voiceServ.finishTalk(),this.modal?.dismiss(null,\"send\")}clear(){this.now=void 0,this.isRecording=!1}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalAudioMessageComponent,deps:[{token:FmodeVoiceService},{token:i2$3.ToastController},{token:NovaUploadService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ModalAudioMessageComponent,isStandalone:!0,selector:\"fm-modal-audio-message\",inputs:{chat:\"chat\",modal:\"modal\"},providers:[ModalController$1],ngImport:i0,template:'\\x3c!-- <div style=\"background:#FFFFFF;color:#000000;width:100%\">\\n {{this.chat.userInput}}\\n</div> --\\x3e\\n<div class=\"modal-area\">\\n\\n \\x3c!-- 加载WebSockets动画 --\\x3e\\n <ng-container *ngIf=\"!isRecording\">\\n <div class=\"row\">\\n <ion-spinner name=\"crescent\" color=\"success\" style=\"width:80px;height:80px;\"></ion-spinner>\\n </div>\\n </ng-container>\\n \\x3c!-- 录音中动画 --\\x3e\\n <ng-container *ngIf=\"isRecording\">\\n <div class=\"actions row\">\\n \\x3c!-- 取消 --\\x3e\\n <ion-button (click)=\"cancel()\" size=\"large\" shape=\"round\" color=\"light\">\\n <ion-icon name=\"close-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 音频 --\\x3e\\n <div class=\"audio-input\">\\n <div class=\"timer row\">\\n {{durationStr || \"00:00\"}}\\n </div>\\n <div class=\"audio-wave row\">\\n <div class=\"audio\">\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n </div>\\n </div>\\n </div>\\n \\x3c!-- 发送 --\\x3e\\n <ion-button (click)=\"send()\" size=\"large\" shape=\"round\" color=\"success\">\\n <ion-icon name=\"send-outline\"></ion-icon>\\n </ion-button>\\n </div>\\n \\n <div class=\"tips row\">\\n 请您讲话,AI会识别!\\n </div>\\n </ng-container>\\n</div>',styles:[\":host-context(body.dark) .modal-area{color:#fff}.modal-area{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:15px}.modal-area .row{margin:10px}.modal-area .tips{padding-top:5px}.modal-area .timer{font-size:1.5rem;font-weight:700}.modal-area .actions{display:flex;justify-content:space-around;width:100%;height:86px}.audio-input{display:flex;flex-direction:column;justify-content:center;align-items:center}.audio{display:flex;justify-content:space-between;align-items:center;gap:8px;width:60px;height:40px}.audio .wave{height:40px;display:block;width:10px;height:6px;border-radius:8px;background:orange}.audio .wave{animation:audio-wave 2s ease-in-out infinite}.audio .wave:nth-child(1){animation-delay:.1s}.audio .wave:nth-child(2){animation-delay:.2s}.audio .wave:nth-child(3){animation-delay:.3s}.audio .wave:nth-child(4){animation-delay:.4s}.audio .wave:nth-child(5){animation-delay:.5s}@keyframes audio-wave{0%{height:6px;transform:translateY(0);background:#ff8e3a}25%{height:6px;transform:translateY(0);background:#9c73f8}50%{height:30px;transform:translateY(-5px) scaleY(1.5);background:#ed509e}75%{height:6px;transform:translateY(0);background:#9c73f8}to{height:6px;transform:translateY(0);background:#0fccce}}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"component\",type:IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:IonSpinner,selector:\"ion-spinner\",inputs:[\"color\",\"duration\",\"name\",\"paused\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalAudioMessageComponent,decorators:[{type:Component,args:[{selector:\"fm-modal-audio-message\",standalone:!0,imports:[CommonModule,IonButton,IonIcon,IonSpinner],providers:[ModalController$1],template:'\\x3c!-- <div style=\"background:#FFFFFF;color:#000000;width:100%\">\\n {{this.chat.userInput}}\\n</div> --\\x3e\\n<div class=\"modal-area\">\\n\\n \\x3c!-- 加载WebSockets动画 --\\x3e\\n <ng-container *ngIf=\"!isRecording\">\\n <div class=\"row\">\\n <ion-spinner name=\"crescent\" color=\"success\" style=\"width:80px;height:80px;\"></ion-spinner>\\n </div>\\n </ng-container>\\n \\x3c!-- 录音中动画 --\\x3e\\n <ng-container *ngIf=\"isRecording\">\\n <div class=\"actions row\">\\n \\x3c!-- 取消 --\\x3e\\n <ion-button (click)=\"cancel()\" size=\"large\" shape=\"round\" color=\"light\">\\n <ion-icon name=\"close-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 音频 --\\x3e\\n <div class=\"audio-input\">\\n <div class=\"timer row\">\\n {{durationStr || \"00:00\"}}\\n </div>\\n <div class=\"audio-wave row\">\\n <div class=\"audio\">\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n <div class=\"wave\"></div>\\n </div>\\n </div>\\n </div>\\n \\x3c!-- 发送 --\\x3e\\n <ion-button (click)=\"send()\" size=\"large\" shape=\"round\" color=\"success\">\\n <ion-icon name=\"send-outline\"></ion-icon>\\n </ion-button>\\n </div>\\n \\n <div class=\"tips row\">\\n 请您讲话,AI会识别!\\n </div>\\n </ng-container>\\n</div>',styles:[\":host-context(body.dark) .modal-area{color:#fff}.modal-area{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:15px}.modal-area .row{margin:10px}.modal-area .tips{padding-top:5px}.modal-area .timer{font-size:1.5rem;font-weight:700}.modal-area .actions{display:flex;justify-content:space-around;width:100%;height:86px}.audio-input{display:flex;flex-direction:column;justify-content:center;align-items:center}.audio{display:flex;justify-content:space-between;align-items:center;gap:8px;width:60px;height:40px}.audio .wave{height:40px;display:block;width:10px;height:6px;border-radius:8px;background:orange}.audio .wave{animation:audio-wave 2s ease-in-out infinite}.audio .wave:nth-child(1){animation-delay:.1s}.audio .wave:nth-child(2){animation-delay:.2s}.audio .wave:nth-child(3){animation-delay:.3s}.audio .wave:nth-child(4){animation-delay:.4s}.audio .wave:nth-child(5){animation-delay:.5s}@keyframes audio-wave{0%{height:6px;transform:translateY(0);background:#ff8e3a}25%{height:6px;transform:translateY(0);background:#9c73f8}50%{height:30px;transform:translateY(-5px) scaleY(1.5);background:#ed509e}75%{height:6px;transform:translateY(0);background:#9c73f8}to{height:6px;transform:translateY(0);background:#0fccce}}\\n\"]}]}],ctorParameters:()=>[{type:FmodeVoiceService},{type:i2$3.ToastController},{type:NovaUploadService}],propDecorators:{chat:[{type:Input}],modal:[{type:Input}]}});class FmChatModalInput{closeAudio(){this.audioComp?.cancel(),this.isAudioModal=!1}async startTalk(){let e,t=document.body.clientHeight||960;this.audioModalHeightPoint=Number((165/t).toFixed(2)),this.chat.stopPlayingVoice(),e=await this.modalCtrl.create({component:ModalAudioMessageComponent,componentProps:{chat:this.chat,modal:e,onBreakPointSet:()=>{e?.setCurrentBreakpoint(this.audioModalHeightPoint)}},breakpoints:[this.audioModalHeightPoint],initialBreakpoint:this.audioModalHeightPoint}),e.present()}constructor(e,t,n,o,i,a,r,s,l){this.toastCtrl=e,this.alertCtrl=t,this.modalCtrl=n,this.navCtrl=o,this.router=i,this.imagineServ=a,this.chatServ=r,this.route=s,this.messages=l,this.errorText=\"\",this.isAudioModal=!1,this.audioModalHeightPoint=.35,this.isShare=!1,this.user=Parse__default.User.current()}ngOnInit(){this.loadModel();let e=this;this.chat.focusUserInput=()=>{e.chat.isVoiceInputMode=!1,e.userInputComp.setFocus()}}async loadModel(){let e=this.chat?.role?.get(\"model\");await this.chatServ.loadModelList(e)}async setMessageImage(){let e=await this.imagineServ.getimg();this.chat.userImage=e,console.log(this.chat?.userImage)}onInputFocus(){this.chat.isTexting=!0,this.chat.scrollToBottom&&this.chat.scrollToBottom()}onKeyDown(e){e.ctrlKey&&\"Enter\"===e.key&&(console.log(\"Ctrl+Enter 被按下\"),this.sendMessage())}async sendMessage(){if(!this.chat.userInput){return this.errorText=\"内容不能为空\",void(await this.toastCtrl.create({message:this.errorText,position:\"top\",icon:\"alert\",color:\"warning-circle\",duration:1e3})).present()}this.chat?.sendMessage(this.chat?.userInput,this.chat?.userImage,(e=>{}),{onSSMLComplete:e=>{console.log(e)}}),this.chat.userInput=\"\",this.chat.userImage=\"\"}async checkBalance(){if(!this.chatServ?.currentModel?.get(\"payLimit\"))return!0;let e=await this.account.getBilling();if(e?.credit?.balance<10){return(await this.alertCtrl.create({header:\"注意\",subHeader:\"您的余额不足,请充值后解锁高级模型\",buttons:[{role:\"cancel\",text:\"取消\"},{role:\"destructive\",text:\"充值\",handler:()=>{this.router.navigateByUrl(\"/account/billing\")}}]})).present(),!1}return!0}async getChatShare(){this.user=Parse__default.User.current();let e=new Parse__default.Query(\"ChatShare\");e.equalTo(\"user\",Parse__default.User.current().id),e.equalTo(\"session\",this.chat?.sessionId);await e.first()}async toggleChatShare(){let e=new Parse__default.Query(\"ChatShare\");e.equalTo(\"user\",Parse__default.User.current().id),e.equalTo(\"role\",this.chat?.role.id),e.equalTo(\"session\",this.chat?.sessionId),e.select(\"objectId\");let t=await e.first();if(t?.id)t.set(\"messageList\",this.chat?.messageList);else{t=new(Parse__default.Object.extend(\"ChatShare\")),t.set(\"user\",{__type:\"Pointer\",className:\"_User\",objectId:Parse__default.User.current()?.id}),t.set(\"session\",{__type:\"Pointer\",className:\"ChatSession\",objectId:this.chat?.sessionId}),t.set(\"role\",{__type:\"Pointer\",className:\"AvatarRole\",objectId:this.chat?.role.id}),t.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:\"E4KpGvTEto\"}),t.set(\"messageList\",this.chat?.messageList)}await t.save(),this.getChatShare()}chatShareSuccessMessage(){this.messages.success(\"分享成功\")}showShare(){this.isShare=!0}handleOkShare(){this.toggleChatShare(),this.chatShareSuccessMessage(),this.isShare=!1}handleCancelShare(){this.isShare=!1}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatModalInput,deps:[{token:i2.ToastController},{token:i2.AlertController},{token:i2$3.ModalController},{token:i2.NavController},{token:i1$1.Router},{token:ImagineService},{token:ChatService},{token:i1$1.ActivatedRoute},{token:i4.NzMessageService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"17.0.0\",version:\"17.3.12\",type:FmChatModalInput,isStandalone:!0,selector:\"fm-chat-modal-input\",inputs:{chat:\"chat\",message:\"message\",role:\"role\"},viewQueries:[{propertyName:\"audioComp\",first:!0,predicate:ModalAudioMessageComponent,descendants:!0},{propertyName:\"userInputComp\",first:!0,predicate:[\"userInput\"],descendants:!0}],ngImport:i0,template:'<ion-toolbar>\\n <ion-item class=\"button-item\" lines=\"none\">\\n \\x3c!-- 设置 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"settings-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n <ng-container *ngFor=\"let button of chat?.leftButtons\">\\n <ion-button style=\"--padding-start:10px;--padding-end:10px;\"\\n shape=\"round\" *ngIf=\"button.show()\" fill=\"outline\" [title]=\"button?.title\" slot=\"start\" (click)=\"button.onClick()\">\\n <ion-icon [name]=\"button?.icon\" [slot]=\"button?.showTitle?\\'start\\':\\'icon-only\\'\"></ion-icon>\\n {{button?.showTitle&&button?.title}}\\n </ion-button>\\n </ng-container>\\n\\n <ng-container *ngFor=\"let button of chat?.role?.get(\\'buttons\\')\">\\n <ion-button shape=\"round\" (click)=\"chatServ.doButtonAction(button)\" fill=\"outline\" slot=\"start\">\\n {{button?.name}}\\n </ion-button>\\n </ng-container>\\n\\n \\x3c!--分享按钮--\\x3e\\n @if(!chat?.hideShare){\\n <ion-button shape=\"round\" *ngIf=\"chat?.messageList?.length>1\" (click)=\"showShare()\" fill=\"outline\" title=\"分享\" slot=\"end\">\\n <ion-icon name=\"share-social-outline\"></ion-icon>\\n </ion-button>\\n }\\n \\x3c!-- <button nz-button *ngIf=\"chat?.messageList?.length>1\"\\n nzType=\"primary\" title=\"分享\" (click)=\"showShare()\" style=\"width: 31.188px;height: 22px;box-shadow: none;background: #fff;border: 1px solid #4588ff;border-radius: 5px;\"> <span class=\"iconfont icon-fenxiang\" style=\"color: #4588ff;\"></span></button>\\n --\\x3e\\n <ion-modal [isOpen]=\"isShare\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"handleCancelShare()\">取消</ion-button>\\n </ion-buttons>\\n <ion-title>对话分享</ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"handleOkShare()\">分享</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ion-content>\\n </ng-template>\\n </ion-modal>\\n\\n <nz-modal *ngIf=\"false\"\\n [(nzVisible)]=\"isShare\"\\n nzTitle=\"问答分享\"\\n nzCentered\\n nzOkText=\"分享\"\\n nzCancelText=\"取消\"\\n (nzOnCancel)=\"handleCancelShare()\"\\n (nzOnOk)=\"handleOkShare()\"\\n >\\n <ng-container *nzModalContent>\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ng-container>\\n </nz-modal>\\n\\n \\x3c!-- 图片 --\\x3e\\n <ion-button shape=\"round\" *ngIf=\"chatServ?.currentModel?.get(\\'config\\')?.imageEnabled\" fill=\"outline\" slot=\"end\" (click)=\"setMessageImage()\">\\n <ion-icon name=\"image-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 模型 --\\x3e\\n @if(!chat?.hideModalSelect){\\n <ion-button shape=\"round\" fill=\"outline\" slot=\"end\" id=\"model-button\">\\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\\n {{chatServ?.currentModel?.get&&chatServ?.currentModel?.get(\"name\")||\"飞码4.0\"}}\\n </ion-button>\\n <ion-popover trigger=\"model-button\" [dismissOnSelect]=\"true\">\\n <ng-template>\\n <ion-content>\\n <ion-list>\\n <ng-container *ngFor=\"let model of chatServ.modelList\">\\n <ion-item (click)=\"chatServ.currentModel = model\" [button]=\"true\" [detail]=\"false\">\\n {{model?.get(\"name\")}}\\n <ion-note slot=\"end\">{{model?.get(\"credit\")}}/k</ion-note>\\n </ion-item>\\n </ng-container>\\n </ion-list>\\n </ion-content>\\n </ng-template>\\n </ion-popover>\\n }\\n\\n </ion-item>\\n\\n <ion-item class=\"input-item\" lines=\"none\">\\n \\x3c!-- 语音消息输入 --\\x3e\\n <ng-container *ngIf=\"chat?.isVoiceInputMode\">\\n \\x3c!-- 切换文本输入 --\\x3e\\n <ion-button class=\"btn-input-change\" color=\"primary\" (click)=\"chat.isVoiceInputMode=false\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"chatbox-ellipses-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n \\n <div class=\"btn-voice-start\" (click)=\"startTalk()\">\\n <span>\\n 点击讲话\\n </span> \\n </div>\\n </ng-container>\\n\\n \\x3c!-- 文本消息输入 --\\x3e\\n <ng-container *ngIf=\"!chat?.isVoiceInputMode\">\\n \\x3c!-- 切换语音输入 --\\x3e\\n <ion-button [style.display]=\"chat.isTexting?\\'none\\':\\'flex\\'\" class=\"btn-input-change\" color=\"primary\" *ngIf=\"chat?.role?.get(\\'voiceConfig\\')\" (click)=\"chat.isVoiceInputMode=true\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"mic-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n\\n \\x3c!-- 文本输入区域 --\\x3e\\n <ion-textarea\\n #userInput\\n *ngIf=\"chat\" (keydown)=\"onKeyDown($event)\"\\n [errorText]=\"errorText\"\\n [(ngModel)]=\"chat.userInput\"\\n (ionFocus)=\"onInputFocus()\"\\n (ionBlur)=\"chat.isTexting=false\"\\n [autoGrow]=\"true\" shape=\"round\" fill=\"outline\"\\n label=\"Ctrl + Enter 发送消息\" placeholder=\"请输入您的提示词\"\\n labelPlacement=\"floating\"></ion-textarea>\\n \\n \\x3c!-- 文本发送按钮 --\\x3e\\n <ion-button color=\"primary\" shape=\"round\" size=\"large\" (click)=\"sendMessage()\">\\n <ion-icon name=\"paper-plane-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n </ng-container>\\n </ion-item>\\n</ion-toolbar>\\n\\n\\n\\x3c!-- 语音消息输入:弹出区域 --\\x3e\\n\\x3c!-- <ion-modal #audioModal [isOpen]=\"isAudioModal\" (willDismiss)=\"closeAudio()\" [initialBreakpoint]=\"audioModalHeightPoint\" [breakpoints]=\"[0, audioModalHeightPoint]\">\\n <ng-template>\\n <fm-modal-audio-message #audioComp *ngIf=\"isAudioModal\" [chat]=\"chat\" [modal]=\"audioModal\"></fm-modal-audio-message>\\n </ng-template>\\n</ion-modal> --\\x3e',styles:['@charset \"UTF-8\";:host-context(body.dark) .btn-voice-start{background-color:#222428;color:#fff}:host-context(body.dark) ion-textarea{background-color:#222428;color:#fff}ion-toolbar{--background:none}ion-toolbar .button-item{--inner-padding-start:5px;--inner-padding-end:0px;--padding-start:5px;--padding-end:0px}ion-toolbar ion-item{--background:transparent}ion-textarea.custom{--background: #373737;--color: #fff;--padding-end: 10px;--padding-start: 10px;--placeholder-color: #ddd;--placeholder-opacity: .8}ion-textarea.custom textarea{width:calc(100% - 95px)}ion-textarea.custom ion-button{position:absolute;right:0}.input-item{display:flex;min-height:77px;align-items:center;border:none;--inner-padding-start:0px;--inner-padding-end:0px;--padding-start:0px;--padding-end:0px}.input-item ion-textarea{background-color:#fff;max-height:400px;padding:0 5px;margin:0 5px;border-radius:20px;overflow-y:auto}.input-item .btn-voice-start{display:flex;flex:1;justify-content:center;align-items:center;font-weight:700;background:#fff;border-radius:20px;min-height:50px}ion-textarea{transition:width .5s ease}ion-textarea:hover .btn-input-change,ion-textarea:focus-within .btn-input-change{display:none}.input-item:hover ion-textarea,.input-item:focus-within ion-textarea{border-color:var(--logo-color-primary)}::ng-deep .ant-modal-body{max-height:600px;overflow-y:auto}::ng-deep .ant-modal-footer{display:flex;justify-content:space-around}::ng-deep .ant-btn{width:40%}.popup-content{position:relative}.popup-content .message-content-user{display:flex;justify-content:flex-end}.popup-content .message-content-role{display:flex;justify-content:flex-start}.popup-content .message-content-system{display:flex;justify-content:center}.popup-content .user-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#e7f8ff}.popup-content .role-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#f6f6f6}.popup-content .user-question{margin-bottom:5px;display:flex;justify-content:flex-end}.popup-content .chat-time{margin-bottom:10px;display:flex;justify-content:flex-end;font-size:14px;color:#a3a3a3}.popup-content .role-time{justify-content:flex-start}\\n'],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgClass,selector:\"[ngClass]\",inputs:[\"class\",\"ngClass\"]},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"pipe\",type:i2$2.DatePipe,name:\"date\"},{kind:\"ngmodule\",type:FormsModule},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.NgModel,selector:\"[ngModel]:not([formControlName]):not([formControl])\",inputs:[\"name\",\"disabled\",\"ngModel\",\"ngModelOptions\"],outputs:[\"ngModelChange\"],exportAs:[\"ngModel\"]},{kind:\"ngmodule\",type:ReactiveFormsModule},{kind:\"ngmodule\",type:RouterModule},{kind:\"component\",type:IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:IonList,selector:\"ion-list\",inputs:[\"inset\",\"lines\",\"mode\"]},{kind:\"component\",type:IonModal,selector:\"ion-modal\"},{kind:\"component\",type:IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:IonTextarea,selector:\"ion-textarea\",inputs:[\"autoGrow\",\"autocapitalize\",\"autofocus\",\"clearOnEdit\",\"color\",\"cols\",\"counter\",\"counterFormatter\",\"debounce\",\"disabled\",\"enterkeyhint\",\"errorText\",\"fill\",\"helperText\",\"inputmode\",\"label\",\"labelPlacement\",\"maxlength\",\"minlength\",\"mode\",\"name\",\"placeholder\",\"readonly\",\"required\",\"rows\",\"shape\",\"spellcheck\",\"value\",\"wrap\"]},{kind:\"component\",type:IonPopover,selector:\"ion-popover\"},{kind:\"component\",type:IonContent,selector:\"ion-content\",inputs:[\"color\",\"fixedSlotPlacement\",\"forceOverscroll\",\"fullscreen\",\"scrollEvents\",\"scrollX\",\"scrollY\"]},{kind:\"ngmodule\",type:NzModalModule},{kind:\"component\",type:i3$1.NzModalComponent,selector:\"nz-modal\",inputs:[\"nzMask\",\"nzMaskClosable\",\"nzCloseOnNavigation\",\"nzVisible\",\"nzClosable\",\"nzOkLoading\",\"nzOkDisabled\",\"nzCancelDisabled\",\"nzCancelLoading\",\"nzKeyboard\",\"nzNoAnimation\",\"nzCentered\",\"nzDraggable\",\"nzContent\",\"nzFooter\",\"nzZIndex\",\"nzWidth\",\"nzWrapClassName\",\"nzClassName\",\"nzStyle\",\"nzTitle\",\"nzCloseIcon\",\"nzMaskStyle\",\"nzBodyStyle\",\"nzOkText\",\"nzCancelText\",\"nzOkType\",\"nzOkDanger\",\"nzIconType\",\"nzModalType\",\"nzAutofocus\",\"nzOnOk\",\"nzOnCancel\"],outputs:[\"nzOnOk\",\"nzOnCancel\",\"nzAfterOpen\",\"nzAfterClose\",\"nzVisibleChange\"],exportAs:[\"nzModal\"]},{kind:\"directive\",type:i3$1.NzModalContentDirective,selector:\"[nzModalContent]\",exportAs:[\"nzModalContent\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmChatModalInput,decorators:[{type:Component,args:[{selector:\"fm-chat-modal-input\",standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,RouterModule,IonToolbar,IonItem,IonButton,IonList,IonModal,IonInput,IonIcon,IonTextarea,IonPopover,IonContent,NzModalModule,ModalAudioMessageComponent],template:'<ion-toolbar>\\n <ion-item class=\"button-item\" lines=\"none\">\\n \\x3c!-- 设置 --\\x3e\\n \\x3c!-- <ion-button fill=\"outline\" slot=\"start\">\\n <ion-icon name=\"settings-outline\"></ion-icon> \\n </ion-button> --\\x3e\\n <ng-container *ngFor=\"let button of chat?.leftButtons\">\\n <ion-button style=\"--padding-start:10px;--padding-end:10px;\"\\n shape=\"round\" *ngIf=\"button.show()\" fill=\"outline\" [title]=\"button?.title\" slot=\"start\" (click)=\"button.onClick()\">\\n <ion-icon [name]=\"button?.icon\" [slot]=\"button?.showTitle?\\'start\\':\\'icon-only\\'\"></ion-icon>\\n {{button?.showTitle&&button?.title}}\\n </ion-button>\\n </ng-container>\\n\\n <ng-container *ngFor=\"let button of chat?.role?.get(\\'buttons\\')\">\\n <ion-button shape=\"round\" (click)=\"chatServ.doButtonAction(button)\" fill=\"outline\" slot=\"start\">\\n {{button?.name}}\\n </ion-button>\\n </ng-container>\\n\\n \\x3c!--分享按钮--\\x3e\\n @if(!chat?.hideShare){\\n <ion-button shape=\"round\" *ngIf=\"chat?.messageList?.length>1\" (click)=\"showShare()\" fill=\"outline\" title=\"分享\" slot=\"end\">\\n <ion-icon name=\"share-social-outline\"></ion-icon>\\n </ion-button>\\n }\\n \\x3c!-- <button nz-button *ngIf=\"chat?.messageList?.length>1\"\\n nzType=\"primary\" title=\"分享\" (click)=\"showShare()\" style=\"width: 31.188px;height: 22px;box-shadow: none;background: #fff;border: 1px solid #4588ff;border-radius: 5px;\"> <span class=\"iconfont icon-fenxiang\" style=\"color: #4588ff;\"></span></button>\\n --\\x3e\\n <ion-modal [isOpen]=\"isShare\">\\n <ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"handleCancelShare()\">取消</ion-button>\\n </ion-buttons>\\n <ion-title>对话分享</ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"handleOkShare()\">分享</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\">\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'avatar\\') || chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ion-content>\\n </ng-template>\\n </ion-modal>\\n\\n <nz-modal *ngIf=\"false\"\\n [(nzVisible)]=\"isShare\"\\n nzTitle=\"问答分享\"\\n nzCentered\\n nzOkText=\"分享\"\\n nzCancelText=\"取消\"\\n (nzOnCancel)=\"handleCancelShare()\"\\n (nzOnOk)=\"handleOkShare()\"\\n >\\n <ng-container *nzModalContent>\\n <div class=\"popup-content\">\\n <div *ngFor=\"let message of chat?.messageList\">\\n \\x3c!-- 头像 --\\x3e\\n <div class=\"item-row user\" *ngIf=\"message?.role!=\\'system\\'\">\\n <div>\\n <nz-avatar *ngIf=\"message?.role!=\\'user\\'\" [nzSrc]=\"(chat?.role?.get(\\'thumb\\') || \\'https://file-cloud.fmode.cn/E4KpGvTEto/20230930/l413e6090731854.png\\')+\\'?\\'+\\'x-image-process=image/resize,m_fixed,w_100\\'+\\'&imageView2/1/w/32/h/32\\'\"></nz-avatar>\\n </div>\\n <div class=\"user-question\">\\n <app-comp-user-avatar [user]=\"user\" *ngIf=\"message?.role==\\'user\\'\"></app-comp-user-avatar>\\n </div>\\n </div>\\n \\x3c!-- 内容 --\\x3e\\n <div class=\"message-wrapper\">\\n <div class=\"message-content-user\">\\n <div class=\"user-message\" *ngIf=\"message?.role === \\'user\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-role\">\\n <div class=\"role-message\" *ngIf=\"message?.role !== \\'user\\' && message?.role !== \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n <div class=\"message-content-system\">\\n <div class=\"system-message\" *ngIf=\"message?.role === \\'system\\'\">\\n <div class=\"item-content\">\\n \\x3c!-- <fm-markdown-preview *ngIf=\"!message?.complete\" class=\"content-style\" [content]=\"message?.content\" [render]=\"false\"></fm-markdown-preview> --\\x3e\\n <fm-markdown-preview *ngIf=\"message?.complete\" class=\"content-style\" [content]=\"message?.content\"></fm-markdown-preview>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\"chat-time\" *ngIf=\"message?.createdAt\" [ngClass]=\"{\\'role-time\\': message?.role !== \\'user\\'}\">\\n <span>{{message?.createdAt | date:\"dd/MM/yyyy, HH/mm/ss a\"}}</span>\\n </div>\\n </div>\\n </div> \\n </ng-container>\\n </nz-modal>\\n\\n \\x3c!-- 图片 --\\x3e\\n <ion-button shape=\"round\" *ngIf=\"chatServ?.currentModel?.get(\\'config\\')?.imageEnabled\" fill=\"outline\" slot=\"end\" (click)=\"setMessageImage()\">\\n <ion-icon name=\"image-outline\"></ion-icon>\\n </ion-button>\\n \\x3c!-- 模型 --\\x3e\\n @if(!chat?.hideModalSelect){\\n <ion-button shape=\"round\" fill=\"outline\" slot=\"end\" id=\"model-button\">\\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\\n {{chatServ?.currentModel?.get&&chatServ?.currentModel?.get(\"name\")||\"飞码4.0\"}}\\n </ion-button>\\n <ion-popover trigger=\"model-button\" [dismissOnSelect]=\"true\">\\n <ng-template>\\n <ion-content>\\n <ion-list>\\n <ng-container *ngFor=\"let model of chatServ.modelList\">\\n <ion-item (click)=\"chatServ.currentModel = model\" [button]=\"true\" [detail]=\"false\">\\n {{model?.get(\"name\")}}\\n <ion-note slot=\"end\">{{model?.get(\"credit\")}}/k</ion-note>\\n </ion-item>\\n </ng-container>\\n </ion-list>\\n </ion-content>\\n </ng-template>\\n </ion-popover>\\n }\\n\\n </ion-item>\\n\\n <ion-item class=\"input-item\" lines=\"none\">\\n \\x3c!-- 语音消息输入 --\\x3e\\n <ng-container *ngIf=\"chat?.isVoiceInputMode\">\\n \\x3c!-- 切换文本输入 --\\x3e\\n <ion-button class=\"btn-input-change\" color=\"primary\" (click)=\"chat.isVoiceInputMode=false\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"chatbox-ellipses-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n \\n <div class=\"btn-voice-start\" (click)=\"startTalk()\">\\n <span>\\n 点击讲话\\n </span> \\n </div>\\n </ng-container>\\n\\n \\x3c!-- 文本消息输入 --\\x3e\\n <ng-container *ngIf=\"!chat?.isVoiceInputMode\">\\n \\x3c!-- 切换语音输入 --\\x3e\\n <ion-button [style.display]=\"chat.isTexting?\\'none\\':\\'flex\\'\" class=\"btn-input-change\" color=\"primary\" *ngIf=\"chat?.role?.get(\\'voiceConfig\\')\" (click)=\"chat.isVoiceInputMode=true\" shape=\"round\" size=\"large\">\\n <ion-icon name=\"mic-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n\\n \\x3c!-- 文本输入区域 --\\x3e\\n <ion-textarea\\n #userInput\\n *ngIf=\"chat\" (keydown)=\"onKeyDown($event)\"\\n [errorText]=\"errorText\"\\n [(ngModel)]=\"chat.userInput\"\\n (ionFocus)=\"onInputFocus()\"\\n (ionBlur)=\"chat.isTexting=false\"\\n [autoGrow]=\"true\" shape=\"round\" fill=\"outline\"\\n label=\"Ctrl + Enter 发送消息\" placeholder=\"请输入您的提示词\"\\n labelPlacement=\"floating\"></ion-textarea>\\n \\n \\x3c!-- 文本发送按钮 --\\x3e\\n <ion-button color=\"primary\" shape=\"round\" size=\"large\" (click)=\"sendMessage()\">\\n <ion-icon name=\"paper-plane-outline\" slot=\"icon-only\"></ion-icon>\\n </ion-button>\\n </ng-container>\\n </ion-item>\\n</ion-toolbar>\\n\\n\\n\\x3c!-- 语音消息输入:弹出区域 --\\x3e\\n\\x3c!-- <ion-modal #audioModal [isOpen]=\"isAudioModal\" (willDismiss)=\"closeAudio()\" [initialBreakpoint]=\"audioModalHeightPoint\" [breakpoints]=\"[0, audioModalHeightPoint]\">\\n <ng-template>\\n <fm-modal-audio-message #audioComp *ngIf=\"isAudioModal\" [chat]=\"chat\" [modal]=\"audioModal\"></fm-modal-audio-message>\\n </ng-template>\\n</ion-modal> --\\x3e',styles:['@charset \"UTF-8\";:host-context(body.dark) .btn-voice-start{background-color:#222428;color:#fff}:host-context(body.dark) ion-textarea{background-color:#222428;color:#fff}ion-toolbar{--background:none}ion-toolbar .button-item{--inner-padding-start:5px;--inner-padding-end:0px;--padding-start:5px;--padding-end:0px}ion-toolbar ion-item{--background:transparent}ion-textarea.custom{--background: #373737;--color: #fff;--padding-end: 10px;--padding-start: 10px;--placeholder-color: #ddd;--placeholder-opacity: .8}ion-textarea.custom textarea{width:calc(100% - 95px)}ion-textarea.custom ion-button{position:absolute;right:0}.input-item{display:flex;min-height:77px;align-items:center;border:none;--inner-padding-start:0px;--inner-padding-end:0px;--padding-start:0px;--padding-end:0px}.input-item ion-textarea{background-color:#fff;max-height:400px;padding:0 5px;margin:0 5px;border-radius:20px;overflow-y:auto}.input-item .btn-voice-start{display:flex;flex:1;justify-content:center;align-items:center;font-weight:700;background:#fff;border-radius:20px;min-height:50px}ion-textarea{transition:width .5s ease}ion-textarea:hover .btn-input-change,ion-textarea:focus-within .btn-input-change{display:none}.input-item:hover ion-textarea,.input-item:focus-within ion-textarea{border-color:var(--logo-color-primary)}::ng-deep .ant-modal-body{max-height:600px;overflow-y:auto}::ng-deep .ant-modal-footer{display:flex;justify-content:space-around}::ng-deep .ant-btn{width:40%}.popup-content{position:relative}.popup-content .message-content-user{display:flex;justify-content:flex-end}.popup-content .message-content-role{display:flex;justify-content:flex-start}.popup-content .message-content-system{display:flex;justify-content:center}.popup-content .user-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#e7f8ff}.popup-content .role-message{padding:10px 10px 0;border-radius:10px;width:fit-content;max-width:100%;background-color:#f6f6f6}.popup-content .user-question{margin-bottom:5px;display:flex;justify-content:flex-end}.popup-content .chat-time{margin-bottom:10px;display:flex;justify-content:flex-end;font-size:14px;color:#a3a3a3}.popup-content .role-time{justify-content:flex-start}\\n']}]}],ctorParameters:()=>[{type:i2.ToastController},{type:i2.AlertController},{type:i2$3.ModalController},{type:i2.NavController},{type:i1$1.Router},{type:ImagineService},{type:ChatService},{type:i1$1.ActivatedRoute},{type:i4.NzMessageService}],propDecorators:{audioComp:[{type:ViewChild,args:[ModalAudioMessageComponent]}],userInputComp:[{type:ViewChild,args:[\"userInput\"]}],chat:[{type:Input}],message:[{type:Input}],role:[{type:Input}]}});class ChatPanelComponent{constructor(e,t,n){this.route=e,this.router=t,this.chatServ=n,this.isDirect=!1,this.showInputModal=!0,this.showMessageArea=!0,this.showHeaderArea=!0,this.hideShare=!1,this.hideModalSelect=!1,this.hideInputPreview=!1,window.location.pathname?.indexOf(\"chat/session\")>-1&&document.body.classList.add(\"dark\")}listenDivChange(){let e=new MutationObserver((()=>{this.fmodeChat.scrollComp=this.contentComp})),t={childList:!0,subtree:!0,attributes:!0};this.contentComp?.nativeElement&&e.observe(this.contentComp?.nativeElement,t)}ngAfterViewInit(){}ngOnInit(){combineLatest([this.route.params,this.route.queryParams]).subscribe((async e=>{let t=e[0];e[1];if(this.chatId=t?.chatId||this.chatId||null,this.chatId&&await this.chatServ.initChatMap(this.chatId),this.roleId=t?.roleId||this.roleId||null,this.roleId){let e=await this.chatServ.createNewRoleChat(this.roleId);this.fmodeChat=e}this.chatId&&(this.fmodeChat=this.chatServ.chatMap[this.chatId],this.fmodeChat||this.router.navigate([\"/chat/pro/mask\"],{queryParams:{type:\"employee\"}}),this.fmodeChat=this.chatServ.chatMap[this.chatId]),this.leftButtons&&(this.fmodeChat.leftButtons=this.leftButtons),window.location.pathname?.indexOf(\"chat/session\")>-1?this.fmodeChat.isVoiceInputMode=!0:this.fmodeChat.isVoiceInputMode=!1,this.modelList&&(this.chatServ.modelList=this.modelList,this.chatServ.currentModel=this.modelList[0]),this.isDirect&&(this.fmodeChat.isDirect=this.isDirect),this.hideShare&&(this.fmodeChat.hideShare=this.hideShare),this.hideModalSelect&&(this.fmodeChat.hideModalSelect=this.hideModalSelect),this.hideInputPreview&&(this.fmodeChat.hideInputPreview=this.hideInputPreview),setTimeout((()=>{this.fmodeChat.scrollComp=this.contentComp,this.listenDivChange()}),1e3),this.sayWelcome()}))}sayWelcome(){this.fmodeChat.voiceConfig?.welcome?.enabled&&this.fmodeChat.welcome()}loadMask(){}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatPanelComponent,deps:[{token:i1$1.ActivatedRoute},{token:i1$1.Router},{token:ChatService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ChatPanelComponent,isStandalone:!0,selector:\"app-chat-panel\",inputs:{chatId:\"chatId\",maskId:\"maskId\",roleId:\"roleId\",leftButtons:\"leftButtons\",modelList:\"modelList\",isDirect:\"isDirect\",showInputModal:\"showInputModal\",showMessageArea:\"showMessageArea\",showHeaderArea:\"showHeaderArea\",hideShare:\"hideShare\",hideModalSelect:\"hideModalSelect\",hideInputPreview:\"hideInputPreview\"},viewQueries:[{propertyName:\"contentComp\",first:!0,predicate:[\"contentComp\"],descendants:!0}],ngImport:i0,template:'\\n\\x3c!-- <ion-header></ion-header> --\\x3e\\n\\x3c!-- <ion-content class=\"ion-padding\"> --\\x3e\\n <div class=\"chat-page\" *ngIf=\"fmodeChat\">\\n <div class=\"header\" [class.avatarHeader]=\"fmodeChat?.isAvatarShow\">\\n <ng-content select=\"[chat-header]\"></ng-content>\\n <fm-chat-header-area *ngIf=\"showHeaderArea\" [chat]=\"fmodeChat\"></fm-chat-header-area>\\n </div>\\n \\n <div class=\"content\" #contentComp>\\n <ng-content select=\"[chat-content]\"></ng-content>\\n <fm-chat-message-area *ngIf=\"showMessageArea\" [chat]=\"fmodeChat\"></fm-chat-message-area>\\n </div>\\n \\n <div class=\"footer\">\\n <ng-content select=\"[chat-footer]\"></ng-content>\\n <fm-chat-modal-input *ngIf=\"showInputModal\" [chat]=\"fmodeChat\"></fm-chat-modal-input>\\n </div>\\n </div>\\n\\n\\x3c!-- </ion-content> --\\x3e',styles:[\".chat-page{display:flex;flex-direction:column;height:100%;background:#f3f3f3}.chat-page .content,.chat-page .header,.chat-page .footer{justify-content:center;align-items:center}.chat-page .content{flex-grow:1;flex:1;overflow-y:auto}.chat-page .avatarHeader{height:35vh!important;overflow:hidden}.chat-page .header{height:44px;margin-bottom:-1px}.chat-page .footer{height:auto;min-height:130px}:host-context(body.dark) .chat-page{background:#000}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"component\",type:FmChatHeaderArea,selector:\"fm-chat-header-area\",inputs:[\"chat\"]},{kind:\"component\",type:FmChatMesssageArea,selector:\"fm-chat-message-area\",inputs:[\"chatId\",\"chat\"]},{kind:\"component\",type:FmChatModalInput,selector:\"fm-chat-modal-input\",inputs:[\"chat\",\"message\",\"role\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ChatPanelComponent,decorators:[{type:Component,args:[{selector:\"app-chat-panel\",standalone:!0,imports:[CommonModule,FmChatHeaderArea,FmChatMesssageArea,FmChatModalInput],template:'\\n\\x3c!-- <ion-header></ion-header> --\\x3e\\n\\x3c!-- <ion-content class=\"ion-padding\"> --\\x3e\\n <div class=\"chat-page\" *ngIf=\"fmodeChat\">\\n <div class=\"header\" [class.avatarHeader]=\"fmodeChat?.isAvatarShow\">\\n <ng-content select=\"[chat-header]\"></ng-content>\\n <fm-chat-header-area *ngIf=\"showHeaderArea\" [chat]=\"fmodeChat\"></fm-chat-header-area>\\n </div>\\n \\n <div class=\"content\" #contentComp>\\n <ng-content select=\"[chat-content]\"></ng-content>\\n <fm-chat-message-area *ngIf=\"showMessageArea\" [chat]=\"fmodeChat\"></fm-chat-message-area>\\n </div>\\n \\n <div class=\"footer\">\\n <ng-content select=\"[chat-footer]\"></ng-content>\\n <fm-chat-modal-input *ngIf=\"showInputModal\" [chat]=\"fmodeChat\"></fm-chat-modal-input>\\n </div>\\n </div>\\n\\n\\x3c!-- </ion-content> --\\x3e',styles:[\".chat-page{display:flex;flex-direction:column;height:100%;background:#f3f3f3}.chat-page .content,.chat-page .header,.chat-page .footer{justify-content:center;align-items:center}.chat-page .content{flex-grow:1;flex:1;overflow-y:auto}.chat-page .avatarHeader{height:35vh!important;overflow:hidden}.chat-page .header{height:44px;margin-bottom:-1px}.chat-page .footer{height:auto;min-height:130px}:host-context(body.dark) .chat-page{background:#000}\\n\"]}]}],ctorParameters:()=>[{type:i1$1.ActivatedRoute},{type:i1$1.Router},{type:ChatService}],propDecorators:{chatId:[{type:Input}],maskId:[{type:Input}],roleId:[{type:Input}],leftButtons:[{type:Input}],modelList:[{type:Input}],isDirect:[{type:Input}],showInputModal:[{type:Input}],showMessageArea:[{type:Input}],showHeaderArea:[{type:Input}],hideShare:[{type:Input}],hideModalSelect:[{type:Input}],hideInputPreview:[{type:Input}],contentComp:[{type:ViewChild,args:[\"contentComp\"]}]}}),window._AMapSecurityConfig={securityJsCode:\"32aa3f4ab0fa0061de03edd4eafdd50a\"};class PageMapStartComponent{constructor(){this.placeList=[{name:\"江财蛟桥校区\",location:[115.855125,28.744335]},{name:\"江财枫林校区\",location:[115.835639,28.734119]},{name:\"江财麦庐校区\",location:[115.816717,28.728899]}]}ngAfterViewInit(){this.initMap()}async initMap(){await this.createMap(),this.goAndMarkPlace(this.placeList[1])}async createMap(){this.AMap=await AMapLoader.load({key:\"473b52010df7d3a32db0a2f5db245c8e\",version:\"2.0\"}),this.map=new this.AMap.Map(\"container\")}async addMarks(){let e=new this.AMap.Marker({position:[115.835639,28.734119]});this.map.add(e)}goAndMarkPlace(e){this.map.setCenter(e.location),this.map.setZoom(18),console.log(this.placeList),e.marker||(e.marker=new this.AMap.Marker({position:e.location}),this.map.add(e.marker))}clearMark(e){e?.marker?.remove()}planRoute(e,t){let n;this.map.plugin([\"AMap.Transfer\"],(()=>{let o={map:this.map,city:\"南昌市\",panel:\"panel\",policy:this.AMap.TransferPolicy.LEAST_TIME};console.log(this.AMap),console.log(this.AMap.TransferPolicy),n=new this.AMap.Transfer(o),n.search(new this.AMap.LngLat(e.location[0],e.location[1]),new this.AMap.LngLat(t.location[0],t.location[1]),((e,t)=>{\"complete\"===e?(console.log(\"绘制公交路线完成:\"),console.log(t)):console.error(\"公交路线数据查询失败\"+t)}))}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PageMapStartComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:PageMapStartComponent,selector:\"app-page-map.start\",ngImport:i0,template:'\\x3c!-- 全屏地图 --\\x3e\\n<div id=\"container\"></div>\\n\\n\\x3c!-- 右侧地点 --\\x3e\\n<div class=\"place-list\">\\n <ng-container *ngFor=\"let place of placeList\">\\n <div class=\"place-item\" (click)=\"goAndMarkPlace(place)\">\\n {{place.name}}\\n <button (click)=\"clearMark(place)\">清除标记</button>\\n </div>\\n </ng-container>\\n\\n <button (click)=\"planRoute(placeList[0],placeList[1])\">从蛟桥到枫林</button>\\n \\n</div>',styles:[\"#container{width:100%;height:100%;position:fixed}.place-list{display:flex;flex-direction:column;position:fixed;justify-content:center;align-items:center;height:80%;width:200px}.place-list .place-item{background-color:#ffffff4d;height:100px;width:90%}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PageMapStartComponent,decorators:[{type:Component,args:[{selector:\"app-page-map.start\",template:'\\x3c!-- 全屏地图 --\\x3e\\n<div id=\"container\"></div>\\n\\n\\x3c!-- 右侧地点 --\\x3e\\n<div class=\"place-list\">\\n <ng-container *ngFor=\"let place of placeList\">\\n <div class=\"place-item\" (click)=\"goAndMarkPlace(place)\">\\n {{place.name}}\\n <button (click)=\"clearMark(place)\">清除标记</button>\\n </div>\\n </ng-container>\\n\\n <button (click)=\"planRoute(placeList[0],placeList[1])\">从蛟桥到枫林</button>\\n \\n</div>',styles:[\"#container{width:100%;height:100%;position:fixed}.place-list{display:flex;flex-direction:column;position:fixed;justify-content:center;align-items:center;height:80%;width:200px}.place-list .place-item{background-color:#ffffff4d;height:100px;width:90%}\\n\"]}]}]}),window._AMapSecurityConfig={securityJsCode:\"32aa3f4ab0fa0061de03edd4eafdd50a\"};class CompPoiPickerComponent{get name(){return this._name}set name(e){this._name=e,this.nameChange.emit(e)}get address(){return this._address}set address(e){this._address=e,this.addressChange.emit(e)}get location(){return this._location}set location(e){this._location=e,this.locationChange.emit(e)}constructor(){this.nameChange=new EventEmitter,this.addressChange=new EventEmitter,this.locationChange=new EventEmitter,this.isModalOpen=!1}cancel(){this.isModalOpen=!1,this.modal.dismiss(null,\"cancel\")}confirm(){this.isModalOpen=!1,this.modal.dismiss(this.address,\"confirm\")}onWillDismiss(e){\"confirm\"===e.detail.role&&console.log(\"确认\")}openModal(){this.isModalOpen=!0,setTimeout((()=>{this.initMap()}),800)}ngAfterViewInit(){}initMap(){this.createMap()}async createMap(){this.AMap=await AMapLoader.load({key:\"473b52010df7d3a32db0a2f5db245c8e\",version:\"2.0\"});let e=this.container.nativeElement;this.map=new this.AMap.Map(e),this.goCurrentCenter()}goCurrentCenter(){this.AMap.plugin([\"AMap.Geolocation\"],(()=>{let e=new this.AMap.Geolocation({enableHighAccuracy:!0,timeout:1e4,maximumAge:0,convert:!0,showButton:!0,buttonPosition:\"RB\",buttonOffset:new this.AMap.Pixel(10,10),showMarker:!1,showCircle:!1,panToLocation:!0,zoomToAccuracy:!1});this.map.addControl(e),e.getCurrentPosition((function(e,t){\"complete\"===e?(console.log(\"当前位置经度:\"+t.position.getLng()),console.log(\"当前位置纬度:\"+t.position.getLat())):console.log(\"定位失败:\"+t.message)}))}))}searchByAddress(){let e=this.panel.nativeElement;this.AMap.plugin([\"AMap.PlaceSearch\"],(()=>{let t=new this.AMap.PlaceSearch({pageSize:3,pageIndex:1,map:this.map,panel:e,autoFitView:!0});t.on(\"selectChanged\",(e=>{this.name=e.selected.data.name,this.address=e.selected.data.address,this.location=new Parse__default.GeoPoint({latitude:e.selected.data.location.lat,longitude:e.selected.data.location.lng}),this.createCenterMarker()})),t.search(this.address)}))}createCenterMarker(){this.centerMarker||(this.centerMarker=new this.AMap.Marker({position:this.map.getCenter(),offset:new this.AMap.Pixel(-15,-15)}),this.map.add(this.centerMarker),this.map.on(\"dragging\",(()=>{this.centerMarker.setPosition(this.map.getCenter())})),this.map.on(\"dragend\",(()=>{let e=this.centerMarker.getPosition();this.location=new Parse__default.GeoPoint({latitude:e.lat,longitude:e.lng})})))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CompPoiPickerComponent,selector:\"fm-map-poi-picker\",inputs:{_name:[\"name\",\"_name\"],_address:[\"address\",\"_address\"],_location:[\"location\",\"_location\"]},outputs:{nameChange:\"nameChange\",addressChange:\"addressChange\",locationChange:\"locationChange\"},viewQueries:[{propertyName:\"container\",first:!0,predicate:[\"container\"],descendants:!0},{propertyName:\"panel\",first:!0,predicate:[\"panel\"],descendants:!0},{propertyName:\"modal\",first:!0,predicate:IonModal$1,descendants:!0}],ngImport:i0,template:'\\x3c!-- 未选点 --\\x3e\\n<ion-button (click)=\"openModal()\" expand=\"block\">开始选点</ion-button>\\n\\n\\x3c!-- 已选点 --\\x3e\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"onWillDismiss($event)\">\\n<ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"cancel()\">Cancel</ion-button>\\n </ion-buttons>\\n <ion-title>地图选点<ng-container *ngIf=\"location\">({{location.latitude}},{{location.longitude}})</ng-container></ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"confirm()\" [strong]=\"true\">Confirm</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\" style=\"height:100%\">\\n \\x3c!-- 详细地址 --\\x3e\\n <ion-item>\\n <ion-input\\n label=\"请输入详细地址\"\\n labelPlacement=\"stacked\"\\n type=\"text\"\\n placeholder=\"精确到门牌号\"\\n [(ngModel)]=\"address\"\\n ></ion-input>\\n <ion-button slot=\"end\" (click)=\"searchByAddress()\">搜索</ion-button>\\n </ion-item>\\n \\n \\x3c!-- 地图选点 --\\x3e\\n <div #container class=\"container\"></div>\\n <div #panel class=\"panel\"></div>\\n\\n </ion-content>\\n</ng-template>\\n</ion-modal>\\n\\n',styles:[\".container{width:100%;height:100%}.panel{position:absolute;background-color:#fff;max-height:50%;overflow-y:auto;top:12%;right:10px;width:45%}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.NgModel,selector:\"[ngModel]:not([formControlName]):not([formControl])\",inputs:[\"name\",\"disabled\",\"ngModel\",\"ngModelOptions\"],outputs:[\"ngModelChange\"],exportAs:[\"ngModel\"]},{kind:\"component\",type:i2.IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonButtons,selector:\"ion-buttons\",inputs:[\"collapse\"]},{kind:\"component\",type:i2.IonContent,selector:\"ion-content\",inputs:[\"color\",\"fixedSlotPlacement\",\"forceOverscroll\",\"fullscreen\",\"scrollEvents\",\"scrollX\",\"scrollY\"]},{kind:\"component\",type:i2.IonHeader,selector:\"ion-header\",inputs:[\"collapse\",\"mode\",\"translucent\"]},{kind:\"component\",type:i2.IonInput,selector:\"ion-input\",inputs:[\"autocapitalize\",\"autocomplete\",\"autocorrect\",\"autofocus\",\"clearInput\",\"clearInputIcon\",\"clearOnEdit\",\"color\",\"counter\",\"counterFormatter\",\"debounce\",\"disabled\",\"enterkeyhint\",\"errorText\",\"fill\",\"helperText\",\"inputmode\",\"label\",\"labelPlacement\",\"max\",\"maxlength\",\"min\",\"minlength\",\"mode\",\"multiple\",\"name\",\"pattern\",\"placeholder\",\"readonly\",\"required\",\"shape\",\"spellcheck\",\"step\",\"type\",\"value\"]},{kind:\"component\",type:i2.IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonTitle,selector:\"ion-title\",inputs:[\"color\",\"size\"]},{kind:\"component\",type:i2.IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]},{kind:\"component\",type:i2.IonModal,selector:\"ion-modal\"},{kind:\"directive\",type:i2.TextValueAccessor,selector:\"ion-input:not([type=number]),ion-textarea,ion-searchbar\"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerComponent,decorators:[{type:Component,args:[{selector:\"fm-map-poi-picker\",template:'\\x3c!-- 未选点 --\\x3e\\n<ion-button (click)=\"openModal()\" expand=\"block\">开始选点</ion-button>\\n\\n\\x3c!-- 已选点 --\\x3e\\n\\n<ion-modal [isOpen]=\"isModalOpen\" (willDismiss)=\"onWillDismiss($event)\">\\n<ng-template>\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\"start\">\\n <ion-button (click)=\"cancel()\">Cancel</ion-button>\\n </ion-buttons>\\n <ion-title>地图选点<ng-container *ngIf=\"location\">({{location.latitude}},{{location.longitude}})</ng-container></ion-title>\\n <ion-buttons slot=\"end\">\\n <ion-button (click)=\"confirm()\" [strong]=\"true\">Confirm</ion-button>\\n </ion-buttons>\\n </ion-toolbar>\\n </ion-header>\\n <ion-content class=\"ion-padding\" style=\"height:100%\">\\n \\x3c!-- 详细地址 --\\x3e\\n <ion-item>\\n <ion-input\\n label=\"请输入详细地址\"\\n labelPlacement=\"stacked\"\\n type=\"text\"\\n placeholder=\"精确到门牌号\"\\n [(ngModel)]=\"address\"\\n ></ion-input>\\n <ion-button slot=\"end\" (click)=\"searchByAddress()\">搜索</ion-button>\\n </ion-item>\\n \\n \\x3c!-- 地图选点 --\\x3e\\n <div #container class=\"container\"></div>\\n <div #panel class=\"panel\"></div>\\n\\n </ion-content>\\n</ng-template>\\n</ion-modal>\\n\\n',styles:[\".container{width:100%;height:100%}.panel{position:absolute;background-color:#fff;max-height:50%;overflow-y:auto;top:12%;right:10px;width:45%}\\n\"]}]}],ctorParameters:()=>[],propDecorators:{container:[{type:ViewChild,args:[\"container\"]}],panel:[{type:ViewChild,args:[\"panel\"]}],_name:[{type:Input,args:[\"name\"]}],nameChange:[{type:Output}],_address:[{type:Input,args:[\"address\"]}],addressChange:[{type:Output}],_location:[{type:Input,args:[\"location\"]}],locationChange:[{type:Output}],modal:[{type:ViewChild,args:[IonModal$1]}]}});class CompPoiPickerModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerModule,declarations:[CompPoiPickerComponent],imports:[CommonModule,FormsModule,ReactiveFormsModule,i2.IonicModule],exports:[CompPoiPickerComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerModule,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonicModule.forRoot({mode:\"ios\"})]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CompPoiPickerModule,decorators:[{type:NgModule,args:[{declarations:[CompPoiPickerComponent],imports:[CommonModule,FormsModule,ReactiveFormsModule,IonicModule.forRoot({mode:\"ios\"})],exports:[CompPoiPickerComponent]}]}]}),window._AMapSecurityConfig={securityJsCode:\"32aa3f4ab0fa0061de03edd4eafdd50a\"};class PagePlanRouteComponent{constructor(){this.placeList=[],this.currentTab=\"place\",this.addNewPlace(),this.addNewPlace(),this.currentTab=\"plan\"}addNewPlace(){this.placeList?.length>=1?this.placeList.push({name:\"秋水广场\",address:\"南昌市秋水广场\",location:new Parse__default.GeoPoint({latitude:28.682634,longitude:115.86273})}):this.placeList.push({name:\"八一广场\",address:\"南昌市八一广场\",location:new Parse__default.GeoPoint({latitude:28.673856,longitude:115.904477})})}ngAfterViewInit(){}async initMap(){await this.createMap(),this.goAndMarkPlace(this.placeList[0])}async createMap(){this.AMap=await AMapLoader.load({key:\"473b52010df7d3a32db0a2f5db245c8e\",version:\"2.0\"}),this.map=new this.AMap.Map(\"container-plan\")}goAndMarkPlace(e){this.map.setCenter([e.location.latitude,e.location.longitude]),this.map.setZoom(18),e.marker||(e.marker=new this.AMap.Marker({position:[e.location.latitude,e.location.longitude]}),this.map.add(e.marker))}clearMark(e){e?.marker?.remove()}planRoute(e,t){let n;this.map.plugin([\"AMap.Transfer\"],(()=>{let o={map:this.map,city:\"南昌市\",panel:\"panel\",policy:this.AMap.TransferPolicy.LEAST_TIME};n=new this.AMap.Transfer(o);let i=new this.AMap.LngLat(e.location.longitude,e.location.latitude),a=new this.AMap.LngLat(t.location.longitude,t.location.latitude);n.search(i,a,((e,t)=>{\"complete\"===e?(console.log(\"绘制公交路线完成:\"),console.log(t)):console.error(\"公交路线数据查询失败\"+t)}))}))}async createPlan(){await this.initMap(),this.planRoute(this.placeList[0],this.placeList[1])}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PagePlanRouteComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:PagePlanRouteComponent,selector:\"app-page-plan-route\",ngImport:i0,template:'<ion-segment value=\"place\">\\n <ion-segment-button (click)=\"currentTab=\\'place\\'\" value=\"place\">\\n <ion-label>景点选择</ion-label>\\n </ion-segment-button>\\n <ion-segment-button (click)=\"currentTab=\\'plan\\'\" value=\"plan\">\\n <ion-label>路线规划</ion-label>\\n </ion-segment-button>\\n </ion-segment>\\n \\n\\n<ng-container *ngIf=\"currentTab==\\'place\\'\">\\n <h1>选择旅游计划景点</h1>\\n\\n <ng-container *ngFor=\"let place of placeList\">\\n <ion-card>\\n <h2>{{place?.name}}</h2>\\n <span *ngIf=\"place.address\">详细地址:{{place.address}}</span>\\n <span *ngIf=\"place.location\">地图坐标:{{place.location.latitude}},{{place.location.longitude}}</span>\\n <fm-map-poi-picker [(name)]=\"place.name\" [(address)]=\"place.address\" [(location)]=\"place.location\"></fm-map-poi-picker>\\n </ion-card>\\n </ng-container>\\n <ion-button (click)=\"addNewPlace()\" expand=\"block\">添加新景点</ion-button>\\n</ng-container>\\n\\n<ng-container *ngIf=\"currentTab==\\'plan\\'\">\\n <ion-button (click)=\"createPlan()\" expand=\"block\">创建规划路线</ion-button>\\n\\n <div id=\"container-plan\"></div>\\n <div id=\"panel\"></div>\\n</ng-container>\\n\\n',styles:[\"#container-plan{width:100%;height:40%}#panel{width:100%;height:50%}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"component\",type:i2.IonButton,selector:\"ion-button\",inputs:[\"buttonType\",\"color\",\"disabled\",\"download\",\"expand\",\"fill\",\"form\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"shape\",\"size\",\"strong\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonCard,selector:\"ion-card\",inputs:[\"button\",\"color\",\"disabled\",\"download\",\"href\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"component\",type:i2.IonSegment,selector:\"ion-segment\",inputs:[\"color\",\"disabled\",\"mode\",\"scrollable\",\"selectOnFocus\",\"swipeGesture\",\"value\"]},{kind:\"component\",type:i2.IonSegmentButton,selector:\"ion-segment-button\",inputs:[\"disabled\",\"layout\",\"mode\",\"type\",\"value\"]},{kind:\"directive\",type:i2.SelectValueAccessor,selector:\"ion-select, ion-radio-group, ion-segment, ion-datetime\"},{kind:\"component\",type:CompPoiPickerComponent,selector:\"fm-map-poi-picker\",inputs:[\"name\",\"address\",\"location\"],outputs:[\"nameChange\",\"addressChange\",\"locationChange\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PagePlanRouteComponent,decorators:[{type:Component,args:[{selector:\"app-page-plan-route\",template:'<ion-segment value=\"place\">\\n <ion-segment-button (click)=\"currentTab=\\'place\\'\" value=\"place\">\\n <ion-label>景点选择</ion-label>\\n </ion-segment-button>\\n <ion-segment-button (click)=\"currentTab=\\'plan\\'\" value=\"plan\">\\n <ion-label>路线规划</ion-label>\\n </ion-segment-button>\\n </ion-segment>\\n \\n\\n<ng-container *ngIf=\"currentTab==\\'place\\'\">\\n <h1>选择旅游计划景点</h1>\\n\\n <ng-container *ngFor=\"let place of placeList\">\\n <ion-card>\\n <h2>{{place?.name}}</h2>\\n <span *ngIf=\"place.address\">详细地址:{{place.address}}</span>\\n <span *ngIf=\"place.location\">地图坐标:{{place.location.latitude}},{{place.location.longitude}}</span>\\n <fm-map-poi-picker [(name)]=\"place.name\" [(address)]=\"place.address\" [(location)]=\"place.location\"></fm-map-poi-picker>\\n </ion-card>\\n </ng-container>\\n <ion-button (click)=\"addNewPlace()\" expand=\"block\">添加新景点</ion-button>\\n</ng-container>\\n\\n<ng-container *ngIf=\"currentTab==\\'plan\\'\">\\n <ion-button (click)=\"createPlan()\" expand=\"block\">创建规划路线</ion-button>\\n\\n <div id=\"container-plan\"></div>\\n <div id=\"panel\"></div>\\n</ng-container>\\n\\n',styles:[\"#container-plan{width:100%;height:40%}#panel{width:100%;height:50%}\\n\"]}]}],ctorParameters:()=>[]}),window._AMapSecurityConfig={securityJsCode:\"32aa3f4ab0fa0061de03edd4eafdd50a\"};class PageLocaScatterComponent{ngAfterViewInit(){this.initMap()}async initMap(){await this.createMap(),await this.createLoca()}async createLoca(){let e=window.loca=new Loca.Container({map:this.map}),t=new Loca.GeoJSONSource({url:\"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road.json\"}),n=new Loca.ScatterLayer({zIndex:111,opacity:1,visible:!0,zooms:[2,22]});n.setSource(t),n.setStyle({color:\"rgba(43,156,75,1)\",unit:\"meter\",size:[150,150],borderWidth:0}),e.add(n);let o=new Loca.GeoJSONSource({url:\"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road_F.json\"}),i=new Loca.ScatterLayer({loca:e,zIndex:113,opacity:1,visible:!0,zooms:[2,22]});i.setSource(o),i.setStyle({unit:\"meter\",size:[2600,2600],borderWidth:0,texture:\"https://a.amap.com/Loca/static/loca-v2/demos/images/breath_red.png\",duration:500,animate:!0});let a=new Loca.GeoJSONSource({url:\"https://a.amap.com/Loca/static/loca-v2/demos/mock_data/sz_road_E.json\"}),r=new Loca.ScatterLayer({loca:e,zIndex:112,opacity:1,visible:!0,zooms:[2,22]});r.setSource(a),r.setStyle({unit:\"meter\",size:[1e3,1e3],borderWidth:0,texture:\"https://a.amap.com/Loca/static/loca-v2/demos/images/breath_yellow.png\",duration:1e3,animate:!0}),e.animate.start();let s=new Loca.Dat;s.addLayer(n,\" 贴地\"),s.addLayer(i,\"红色\"),s.addLayer(r,\"黄色\")}async createMap(){this.AMap=await AMapLoader.load({key:\"473b52010df7d3a32db0a2f5db245c8e\",version:\"2.0\",Loca:{version:\"2.0.0\"}}),this.map=new this.AMap.Map(\"container\",{zoom:11.7,center:[113.97199630737305,22.5807295363949],pitch:40,showLabel:!1,mapStyle:\"amap://styles/dark\",viewMode:\"3D\"})}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PageLocaScatterComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:PageLocaScatterComponent,selector:\"app-page-loca-scatter\",ngImport:i0,template:'<div id=\"container\"></div>',styles:[\"#container{width:100%;height:100%;position:fixed}\\n\"]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:PageLocaScatterComponent,decorators:[{type:Component,args:[{selector:\"app-page-loca-scatter\",template:'<div id=\"container\"></div>',styles:[\"#container{width:100%;height:100%;position:fixed}\\n\"]}]}]});const routes=[{path:\"start\",component:PageMapStartComponent},{path:\"plan/route\",component:PagePlanRouteComponent},{path:\"loca/scatter\",component:PageLocaScatterComponent}];class FmodeMapModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeMapModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeMapModule,declarations:[PageMapStartComponent,PagePlanRouteComponent,PageLocaScatterComponent],imports:[CommonModule,i1$1.RouterModule,i2.IonicModule,CompPoiPickerModule],exports:[CompPoiPickerModule]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeMapModule,imports:[CommonModule,RouterModule.forChild(routes),IonicModule.forRoot({mode:\"ios\"}),CompPoiPickerModule,CompPoiPickerModule]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeMapModule,decorators:[{type:NgModule,args:[{declarations:[PageMapStartComponent,PagePlanRouteComponent,PageLocaScatterComponent],imports:[CommonModule,RouterModule.forChild(routes),IonicModule.forRoot({mode:\"ios\"}),CompPoiPickerModule],exports:[CompPoiPickerModule]}]}]});class HwobsService{constructor(){this.Attachment=Parse__default.Object.extend(\"Attachment\"),this.host=\"https://web3-test.obs.cn-south-1.myhuaweicloud.com/\",this.bucketName=\"web3-test\",this.obsClient=new ObsClient({access_key_id:\"6UIET20WHUI5TLXWOVNA\",secret_access_key:\"YaoY8Kj3TeGZHEcBzplTMZiPGNL13Y3frEavC1kF\",server:\"https://obs.cn-south-1.myhuaweicloud.com\"})}listDir(e){return new Promise(((t,n)=>{this.obsClient.listObjects({Bucket:this.bucketName,Prefix:e,Delimiter:\"/\"},((e,o)=>{if(e)console.error(\"Error--\\x3e\"+e),n(e);else{if(console.log(\"Status--\\x3e\"+o.CommonMsg.Status),console.log(o),o.CommonMsg.Status<300&&o.InterfaceResult)for(var i in o.InterfaceResult.Contents)console.log(\"Contents[\"+i+\"]:\"),console.log(\"Key--\\x3e\"+o.InterfaceResult.Contents[i].Key),console.log(\"Owner[ID]--\\x3e\"+o.InterfaceResult.Contents[i].Owner.ID);let e=o.InterfaceResult.CommonPrefixes,n=o.InterfaceResult.Contents;t({dirs:e,files:n})}}))}))}async uploadFile(e,t){let n=await this.checkFileExists(e);return n?.id?n:new Promise(((n,o)=>{this.obsClient.putObject({Bucket:this.bucketName,Key:t,SourceFile:e},(async(i,a)=>{if(i)console.error(\"Error--\\x3e\"+i),o(i);else{console.log(\"Status--\\x3e\"+a.CommonMsg.Status);let o=await this.saveAttachment(e,t);n(o)}}))}))}async checkFileExists(e){let t,n=await this.getFileHash(e),o=new Parse__default.Query(\"Attachment\");o.equalTo(\"hash\",n),o.equalTo(\"size\",e.size);let i=await o.first();return i?.id||(i=new this.Attachment),t=i,t}async saveAttachment(e,t){let n=await this.getFileHash(e),o=await this.checkFileExists(e);return o.set(\"name\",e.name),o.set(\"size\",e.size),o.set(\"mime\",e.type),o.set(\"url\",this.host+t),o.set(\"hash\",n),o=await o.save(),o}async getFileHash(e){return new Promise(((t,n)=>{const o=new FileReader;o.onload=async e=>{const n=e.target.result,o=await crypto.subtle.digest(\"SHA-256\",n),i=Array.from(new Uint8Array(o)).map((e=>e.toString(16).padStart(2,\"0\"))).join(\"\");t(i)},o.onerror=e=>{n(e.target.error)},o.readAsArrayBuffer(e)}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HwobsService,deps:[],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HwobsService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HwobsService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[]});class HwobsManagerComponent{openFile(e){console.log(\"Opening file:\",e)}openDir(e,t=\"pre\"){if(e)this.prefix=e.Prefix,this.listDir(e.Prefix);else if(\"pre\"==t){let e=this.prefix.split(\"/\");if(e.length>1){let t=e.splice(0,e.length-1).join(\"/\");console.log(t),this.prefix=t,this.listDir(t)}}}showName(e){return e.replaceAll(this.prefix,\"\")}constructor(e){this.hwobs=e,this.dirs=[],this.files=[],this.prefix=\"storage/\",this.listDir(this.prefix)}async listDir(e){let{dirs:t,files:n}=await this.hwobs.listDir(e);this.dirs=t,this.files=n}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HwobsManagerComponent,deps:[{token:HwobsService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:HwobsManagerComponent,isStandalone:!0,selector:\"fm-storage-hwobs-manager\",ngImport:i0,template:'<ion-header>\\n <ion-toolbar>\\n <ion-title>\\n File Manager\\n </ion-title>\\n </ion-toolbar>\\n </ion-header>\\n \\n <ion-content>\\n <ion-list>\\n <ion-item (click)=\"openDir(null,\\'pre\\')\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>../</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of dirs\" (click)=\"openDir(item)\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Prefix) }}</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of files\" (click)=\"openFile(item)\">\\n <ion-icon [name]=\"\\'document\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Key) }}</ion-label>\\n </ion-item>\\n </ion-list>\\n </ion-content>',styles:[\"ion-list ion-item ion-icon{font-size:24px;margin-right:8px}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"ngmodule\",type:FormsModule},{kind:\"ngmodule\",type:ReactiveFormsModule},{kind:\"ngmodule\",type:IonicModule},{kind:\"component\",type:i2.IonContent,selector:\"ion-content\",inputs:[\"color\",\"fixedSlotPlacement\",\"forceOverscroll\",\"fullscreen\",\"scrollEvents\",\"scrollX\",\"scrollY\"]},{kind:\"component\",type:i2.IonHeader,selector:\"ion-header\",inputs:[\"collapse\",\"mode\",\"translucent\"]},{kind:\"component\",type:i2.IonIcon,selector:\"ion-icon\",inputs:[\"color\",\"flipRtl\",\"icon\",\"ios\",\"lazy\",\"md\",\"mode\",\"name\",\"sanitize\",\"size\",\"src\"]},{kind:\"component\",type:i2.IonItem,selector:\"ion-item\",inputs:[\"button\",\"color\",\"detail\",\"detailIcon\",\"disabled\",\"download\",\"href\",\"lines\",\"mode\",\"rel\",\"routerAnimation\",\"routerDirection\",\"target\",\"type\"]},{kind:\"component\",type:i2.IonLabel,selector:\"ion-label\",inputs:[\"color\",\"mode\",\"position\"]},{kind:\"component\",type:i2.IonList,selector:\"ion-list\",inputs:[\"inset\",\"lines\",\"mode\"]},{kind:\"component\",type:i2.IonTitle,selector:\"ion-title\",inputs:[\"color\",\"size\"]},{kind:\"component\",type:i2.IonToolbar,selector:\"ion-toolbar\",inputs:[\"color\",\"mode\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:HwobsManagerComponent,decorators:[{type:Component,args:[{standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonicModule],selector:\"fm-storage-hwobs-manager\",template:'<ion-header>\\n <ion-toolbar>\\n <ion-title>\\n File Manager\\n </ion-title>\\n </ion-toolbar>\\n </ion-header>\\n \\n <ion-content>\\n <ion-list>\\n <ion-item (click)=\"openDir(null,\\'pre\\')\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>../</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of dirs\" (click)=\"openDir(item)\">\\n <ion-icon [name]=\"\\'folder\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Prefix) }}</ion-label>\\n </ion-item>\\n <ion-item *ngFor=\"let item of files\" (click)=\"openFile(item)\">\\n <ion-icon [name]=\"\\'document\\'\" slot=\"start\"></ion-icon>\\n <ion-label>{{ showName(item.Key) }}</ion-label>\\n </ion-item>\\n </ion-list>\\n </ion-content>',styles:[\"ion-list ion-item ion-icon{font-size:24px;margin-right:8px}\\n\"]}]}],ctorParameters:()=>[{type:HwobsService}]});class FmodeStorgeModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeStorgeModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeStorgeModule,imports:[CommonModule,i2.IonicModule,HwobsManagerComponent],exports:[HwobsManagerComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeStorgeModule,providers:[Diagnostic,NovaUploadService],imports:[CommonModule,IonicModule.forRoot({mode:\"ios\"}),HwobsManagerComponent]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:FmodeStorgeModule,decorators:[{type:NgModule,args:[{declarations:[],imports:[CommonModule,IonicModule.forRoot({mode:\"ios\"}),HwobsManagerComponent],exports:[HwobsManagerComponent],providers:[Diagnostic,NovaUploadService]}]}]});class WechatJssdkService{constructor(e,t){this.http=e,this.authServ=t,this.isInit=!1,this.isWechat=!1,this.wechatAccountId=localStorage.getItem(\"WECHAT_APP_ID\")||\"wxb4193c93ae9aa696\";let n=-1!==navigator.userAgent.toLowerCase().indexOf(\"micromessenger\");this.isWechat=n,this.company=this.authServ.company||localStorage.getItem(\"company\")}async setCurrentPageShareInfo(e={title:\"飞码AI\",desc:\"解放创意引领未来|国际前沿的AIGC平台\",link:location.href,type:\"link\",imgUrl:\"https://file-cloud.fmode.cn/E4KpGvTEto/20230822/3mkf41033623275.png\",success:()=>{console.log(\"分享成功\")},error:()=>{console.log(\"分享失败\")},cancel:()=>{console.log(\"取消分享\")}}){const t=await this.getWXSignPackageInWechat();wx.config({debug:!1,appId:t.appid,timestamp:t.timestamp,nonceStr:t.nonceStr,signature:t.signature,jsApiList:[\"chooseWXPay\",\"onMenuShareTimeline\",\"onMenuShareAppMessage\",\"onMenuShareQQ\",\"onMenuShareQZone\",\"updateAppMessageShareData\",\"updateTimelineShareData\"]}),\"link\"==e?.type&&(e.link=this.getInviteUrl(e.link)),wx.ready((()=>{wx.updateAppMessageShareData(e),wx.updateTimelineShareData(e)})),wx.error((()=>{}))}getInviteUrl(e){let t=new URL(e),n=Parse__default.User?.current()?.id;return n&&t.searchParams.set(\"invite\",n),t.href}getWXSignPackageInWechat(){let e={company:this.company,href:encodeURIComponent(location.href)};return new Promise((t=>{this.http.post(\"https://server.fmode.cn/api/wechat/getconfig\",e).subscribe((e=>{let n=e.data;t(n)}))}))}async initUserOpenid(){await this.init();let e=this.getQueryStringByName(\"code\"),t=localStorage.getItem(\"openid\");if(!t){if(!Parse__default.User.current())return;if(t=Parse__default?.User?.current()?.get(\"wechat\")?.[this.wechatAccountId]?.openid,this.isWechat&&!t){let t=window.location.pathname;e?await this.getwechat(e,t):this.authWechat(t)}else this.openid=t}}authWechat(e=\"/account/billing\"){if(!localStorage.getItem(\"openid\")){let t=\"https://ai.fmode.cn\"+e;return t=encodeURIComponent(t),void(window.location.href=\"https://open.weixin.qq.com/connect/oauth2/authorize?appid=\"+this.wechatAccountId+\"&redirect_uri=\"+t+\"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\")}}getQueryStringByName(e){let t=location.search.match(new RegExp(\"[?&]\"+e+\"=([^&]+)\",\"i\"));return null==t||t.length<1?\"\":t[1]}async getwechat(e,t=\"/account/billing\"){return new Promise((async(n,o)=>{this.http.post(\"https://server.fmode.cn/api/wechat/get_wx\",{company:this.company,code:e}).subscribe((async e=>{if(console.log(e),e&&200==e.code&&e.data.openid){let t=e.data.openid;localStorage.setItem(\"openid\",t),localStorage.removeItem(\"code\");let o={};o[this.wechatAccountId]={openid:t},Parse__default.User.current().set(\"wechat\",o),await Parse__default.User.current().save(),n(!0)}}),(async e=>{console.log(\"Error updating items\",e),this.authWechat(t),o(!1)}))}))}init(){return new Promise((e=>{this.isWechat||e(!1),this.isInit&&e(!0),wx&&e(!0),this.loadScript(\"https://res.wx.qq.com/open/js/jweixin-1.6.0.js\",(()=>{this.isInit=!0,this.wx=wx,e(!0)}),(()=>{e(!1)}))}))}loadScript(e,t,n){var o=document.createElement(\"script\");o.src=e,o.onload=()=>{t&&t()},o.onerror=()=>{n&&n()},document.body.appendChild(o)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:WechatJssdkService,deps:[{token:i1.HttpClient},{token:AuthService}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:WechatJssdkService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:WechatJssdkService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1.HttpClient},{type:AuthService}]});class LoginComponent{drawCode(e){this.canvas=document.getElementById(\"verifyCanvas\");var t=this.canvas.getContext(\"2d\");t.fillStyle=\"white\",t.fillRect(0,0,this.canvas.width,this.canvas.height),t.fillStyle=\"cornflowerblue\",t.font=\"25px Arial\";for(var n=new Array,o=new Array,i=new Array,a=0;a<4;a++)n.push(n[a]),n[a]=this.nums[a],o[a]=20*a+10,i[a]=20*Math.random()+20,t.fillText(n[a],o[a],i[a]);e=n.join(\"\").toUpperCase();for(a=0;a<3;a++)this.drawline(this.canvas,t);for(a=0;a<30;a++)this.drawDot(this.canvas,t);return this.convertCanvasToImage(this.canvas),e}drawline(e,t){t.moveTo(Math.floor(Math.random()*e.width),Math.floor(Math.random()*e.height)),t.lineTo(Math.floor(Math.random()*e.width),Math.floor(Math.random()*e.height)),t.lineWidth=.5,t.strokeStyle=\"rgba(50,50,50,0.3)\",t.stroke()}drawDot(e,t){var n=Math.floor(Math.random()*e.width),o=Math.floor(Math.random()*e.height);t.moveTo(n,o),t.lineTo(n+1,o+1),t.lineWidth=.2,t.stroke()}convertCanvasToImage(e){return document.getElementById(\"verifyCanvas\").style.display=\"none\",this.image=document.getElementById(\"code_img\"),this.image.src=e.toDataURL(\"image/png\"),this.image}sendSMSCode(){if(!this.codeVerified)return void this.message.create(\"error\",\"请先核对验证码\");let e=this.validateSMSForm.value?.mobile;if(console.log(this.validateSMSForm.value),e){let t=localStorage.getItem(\"NOVA_APIG_SERVER\");t=decodeURIComponent(atob(t));let n=t+\"message\";this.http.post(n,{company:this.companyId,mobile:e,action:\"login\"}).subscribe((e=>{this.countDownSMS(),this.message.info(\"已发送,请查收验证码\")}),(e=>{this.message.error(e?.error?.mess||\"系统繁忙中,请稍后重试\")}))}else this.message.error(\"请正确输入手机号\")}countDownSMS(){this.isSended=!0,this.isSending=!0,this.smsTimeCount=60;let e=setInterval((()=>{this.smsTimeCount--}),1e3);setTimeout((()=>{clearInterval(e),this.isSending=!1}),6e4)}submitFormMobileSMS(e){for(const e in this.validateSMSForm.controls)this.validateSMSForm.controls[e].markAsDirty(),this.validateSMSForm.controls[e].updateValueAndValidity();console.log(e),this.username=e.mobile,this.smsCode=e.smsCode,console.log(\"smslogin\"),this.loginSMS()}submitFormMobilePassword(e){for(const e in this.validateForm.controls)this.validateForm.controls[e].markAsDirty(),this.validateForm.controls[e].updateValueAndValidity();this.username=e.mobile||e.username,this.password=e.password;let t=e.checkCode,n=this.code.toLowerCase(),o=t.toLowerCase();console.log(n,o),n!=o?(console.log(n,o),this.message.create(\"error\",\"验证码错误\")):this.loginMobilePassword()}submitFormUserPassword(e){for(const e in this.validateForm.controls)this.validateForm.controls[e].markAsDirty(),this.validateForm.controls[e].updateValueAndValidity();this.username=e.mobile||e.username,this.password=e.password;let t=e.checkCode,n=this.code.toLowerCase(),o=t.toLowerCase();console.log(n,o),n!=o?(console.log(n,o),this.message.create(\"error\",\"验证码错误\")):this.authServ.login(this.username,this.password).then((async e=>{})).catch((e=>{console.log(e),this.message.create(\"error\",\"错误的用户名或密码\")}))}async forgetFormFun(e){for(const e in this.forgetForm.controls)this.forgetForm.controls[e].markAsDirty(),this.forgetForm.controls[e].updateValueAndValidity();if(console.log(e.forgetusername,e.forgetPassword,e.forgetConfirmpassword),e.forgetPassword!=e.forgetConfirmpassword)return void this.message.create(\"error\",\"两次密码不一致\");if(!e.forgerphoneCode)return void this.message.create(\"error\",\"请输入验证码\");let t=(Parse__default.serverURL?.split(\"parse\")?.[0]||\"https://server.fmode.cn/\")+\"api/auth/reset_password\";this.http.post(t,{company:this.companyId,mobile:e.forgetusername,code:e.forgerphoneCode,password:e.forgetConfirmpassword}).subscribe((e=>{200==e.code?(this.message.create(\"success\",e.msg),this.type=\"login\"):this.message.create(\"error\",\"验证码错误\")}),(e=>{console.log(e.error),this.message.create(\"error\",e.error.mess)}))}async registSubmitForm(e){for(const e in this.registForm.controls)this.registForm.controls[e].markAsDirty(),this.registForm.controls[e].updateValueAndValidity();this.registName=e.registName,this.registIdcard=e.registIdcard,this.registPhone=e.registPhone,this.phoneCode=e.phoneCode,this.regpassword=e.regpassword,this.confirmPassword=e.confirmPassword;let t=await this.verifyCode(this.registPhone,this.phoneCode);t&&200!=t.code?this.message.create(\"error\",t.mess):this.queryUser()}getSelectEducation(){this.loginMobilePassword(),this.iseducation=!1}loginSMS(){let e=(Parse__default.serverURL?.split(\"parse\")?.[0]||\"https://server.fmode.cn/\")+`api/auth/mobile?company=${this.companyId}&mobile=${this.username}&code=${this.smsCode}`;this.http.get(e).subscribe((e=>{if(console.log(e),200==e.code){this.message.create(\"success\",\"登录成功\");let t=e.data.token;Parse__default.User.become(t).then((e=>{this.router.navigate([decodeURIComponent(this.rootPage)])}))}else this.message.create(\"error\",\"验证码错误\")}),(e=>{console.log(e.error),this.message.create(\"error\",e.error.mess)}))}async loginMobilePassword(){let e=await this.getMobileUser(this.username);e?this.authServ.login(e,this.password).then((async e=>{})).catch((e=>{console.log(e),this.message.create(\"error\",\"错误的用户名或密码\")})):this.message.create(\"error\",\"用户不存在,请尝试其他登录方式\")}async queryUser(){let e=new Parse__default.Query(\"_User\");e.contains(\"username\",this.registPhone),e.equalTo(\"company\",this.companyId);let t=await e.first();t?.id?this.message.info(\"该账户已激活,使用手机号密码直接登录\"):Parse__default.User.signUp(this.companyId+\"-\"+this.registPhone,this.regpassword,\"\").then((async e=>{e.id&&(console.log(e),e.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:this.companyId}),e.set(\"mobile\",this.registPhone),e.set(\"type\",\"user\"),e.save(),this.username=this.registPhone,this.password=this.regpassword)}))}async getMobileUser(e){if(this.mobileUserMap[e])return this.mobileUserMap[e];let t=await this.novaCloud.api(\"/auth/getusername\",{company:this.companyId,mobile:e});return console.log(t),t?.username&&(this.mobileUserMap[e]=t?.username),this.mobileUserMap[e]}forget(){this.type=\"forget\"}backLogin(){this.type=\"login\"}handleCancel(){this.isVisible=!1}handleOk(){Parse__default.User.signUp(this.registPhone,this.regpassword,\"\").then((async e=>{e.id&&(console.log(e),e.set(\"company\",{__type:\"Pointer\",className:\"Company\",objectId:this.companyId}),e.save(),this.username=this.registPhone,this.password=this.regpassword)}))}async getCode(){if(null==this.registPhone||\"\"==this.registPhone.trim())return void this.message.info(\"请输入注册手机号\");if(!this.registPhone.match(/^1[3456789]\\d{9}$/))return void this.message.info(\"请输入正确的手机号\");let e=new Parse__default.Query(\"User\");e.equalTo(\"username\",this.registPhone),e.equalTo(\"company\",this.companyId);let t=await e.first();if(t&&t.id)return void this.message.info(\"该手机号已注册,请使用账号密码登录\");let n=localStorage.getItem(\"NOVA_APIG_SERVER\");n=decodeURIComponent(atob(n));let o=n+\"message\";this.http.post(o,{company:this.companyId,mobile:this.registPhone,action:\"regist\"}).subscribe((e=>{this.vCode=e.data.code,this.countDownFun()}),(e=>{this.message.info(\"系统繁忙中,请稍后重试\"),console.log(e)}))}async getCode2(){if(null==this.forgetusername||\"\"==this.forgetusername.trim())return void this.message.info(\"请输入账号\");if(!this.forgetusername.match(/^1[3456789]\\d{9}$/))return void this.message.info(\"请输入正确的手机号\");console.log(this.forgetusername);let e=new Parse__default.Query(\"User\");if(e.equalTo(\"username\",this.companyId+\"-\"+this.forgetusername),e.equalTo(\"company\",this.companyId),!await e.first())return void this.message.info(\"账号不存在\");let t=localStorage.getItem(\"NOVA_APIG_SERVER\");t=decodeURIComponent(atob(t));let n=t+\"message\";this.http.post(n,{company:this.companyId,mobile:this.forgetusername,action:\"resetPassword\"}).subscribe((e=>{console.log(e),this.vCode=e.data.code,this.countDownFun()}),(e=>{this.message.info(\"系统繁忙中,请稍后重试\"),console.log(e)}))}async verifyCode(e,t){let n=localStorage.getItem(\"NOVA_APIG_SERVER\");n=decodeURIComponent(atob(n));let o=n+\"verifyCode\";return new Promise((async(n,i)=>{this.http.post(o,{mobile:e,code:t}).subscribe((e=>{n(e)}),(e=>{console.log(e),n(e.error)}))}))}countDownFun(){if(this.isCountDown=!0,0==this.countDown)return;let e=setInterval((()=>{this.countDown=this.countDown-1,0==this.countDown&&(clearInterval(e),this.countDown=60,this.isCountDown=!1)}),1e3)}constructor(e,t,n,o,i,a,r,s){this.authServ=e,this.novaCloud=t,this.fb=n,this.message=o,this.router=i,this.route=a,this.activatedRoute=r,this.http=s,this.nums=[\"C\",\"6\",\"Z\",\"t\"],this.str=\"\",this.tabIndex=0,this.codeVerified=!1,this.passwordVisible=!1,this.passwordVisible2=!1,this.passwordVisible3=!1,this.iseducation=!1,this.redirectUrl=localStorage.getItem(\"redirectUrl\"),this.isSended=!1,this.isSending=!1,this.smsTimeCount=60,this.loading=!0,this.Lesson=[],this.myDate=new Date,this.isVisible=!1,this.type=\"login\",this.mobileUserMap={},this.isOkLoading=!1,this.countDown=60,this.isCountDown=!1,this.mobileLogin=!1,this.logo=\"https://www.fmode.cn/images/ewm1.png\",this.qrcode=\"https://www.fmode.cn/images/logo_main.png\",this.userNameAsyncValidator=e=>new Observable((t=>{let n=/^1[3456789]\\d{9}$/,o=e.value;setTimeout((()=>null==o||\"\"==o.trim()?(this.userErrorTip=\"请输入登录账号\",t.next({error:!0,duplicated:!0}),void t.complete()):o.match(n)?(t.next(null),void t.complete()):(this.userErrorTip=\"请输入正确的登录账号\",t.next({error:!0,duplicated:!0}),void t.complete())),1e3)})),this.smsAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;if(null==n||\"\"==n.trim())return this.smsCodeErrorTip=\"请输入短信验证码\",t.next({error:!0,duplicated:!0}),void t.complete();t.next(null),t.complete()}),1e3)})),this.passwordAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.passwordErrorTip=\"请输入密码\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length<6?(this.passwordErrorTip=\"密码长度不得小于6位\",t.next({error:!0,duplicated:!0}),void t.complete()):(t.next(null),void t.complete())}),1e3)})),this.codeAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.codeVerified=!1,this.codeErrorTip=\"请输入验证码\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length<4?(this.codeVerified=!1,this.codeErrorTip=\"验证码长度不得小于4位\",t.next({error:!0,duplicated:!0}),void t.complete()):this.code.toLowerCase()!=n.toLowerCase()?(this.codeVerified=!1,this.codeErrorTip=\"验证码输入错误\",t.next({error:!0,duplicated:!0}),void t.complete()):(this.codeVerified=!0,t.next(null),void t.complete())}),1e3)})),this.registIdcardAsyncValidator=e=>new Observable((t=>{let n=e.value;setTimeout((()=>null==n||\"\"==n.trim()||!1===/^\\d{17}(\\d|X|x)$/.test(n)?(this.registIdcardErrorTip=\"请输入正确的身份证号码\",t.next({error:!0,duplicated:!0}),void t.complete()):(t.next(null),void t.complete())),1e3)})),this.forgetNameAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;if(null==n||\"\"==n.trim())return this.registNameErrorTip=\"请输入账户账号或者手机号\",t.next({error:!0,duplicated:!0}),void t.complete();this.forgetusername=n,t.next(null),t.complete()}),1e3)})),this.forgetPasswordAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.passwordErrorTip=\"请输入新密码\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length<6?(this.passwordErrorTip=\"密码长度不得小于6位\",t.next({error:!0,duplicated:!0}),void t.complete()):(this.forgetPassword=n,t.next(null),void t.complete())}),1e3)})),this.forgetConfirmPasswordAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.forgetphoneCodesErrorTip=\"请确认新密码\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length<6?(this.forgetphoneCodesErrorTip=\"密码长度不得小于6位\",t.next({error:!0,duplicated:!0}),void t.complete()):(this.forgetConfirmpassword=n,t.next(null),void t.complete())}),1e3)})),this.forgetCodeAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;if(null==n||\"\"==n.trim())return this.phoneCodesErrorTip=\"请输入新密码\",t.next({error:!0,duplicated:!0}),void t.complete();this.forgerphoneCode=n,t.next(null),t.complete()}),1e3)})),this.registNameAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;if(null==n||\"\"==n.trim())return this.registNameErrorTip=\"请输入姓名\",t.next({error:!0,duplicated:!0}),void t.complete();this.registName=n,t.next(null),t.complete()}),1e3)})),this.registPhoneAsyncValidator=e=>new Observable((t=>{let n=e.value;setTimeout((()=>null==n||\"\"==n.trim()?(this.registIdcardErrorTip=\"请输入正确的身份证号码\",t.next({error:!0,duplicated:!0}),void t.complete()):!1===/^1[3456789]\\d{9}$/.test(n)?(this.phoneErrorTip=\"请输入正确的手机号\",t.next({error:!0,duplicated:!0}),void t.complete()):(t.next(null),void t.complete())),1e3)})),this.registCodeAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;if(null==n||\"\"==n.trim())return this.phoneCodesErrorTip=\"请输入验证码\",t.next({error:!0,duplicated:!0}),void t.complete();t.next(null),t.complete()}),1e3)})),this.regpasswordAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.regpasswordErrorTip=\"请输入密码\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length<6?(this.regpasswordErrorTip=\"密码长度不得小于6位\",t.next({error:!0,duplicated:!0}),void t.complete()):n.length>12?(this.regpasswordErrorTip=\"密码长度不得大于12位\",t.next({error:!0,duplicated:!0}),void t.complete()):(this.regpassword=n,t.next(null),void t.complete())}),1e3)})),this.confirmPasswordAsyncValidator=e=>new Observable((t=>{setTimeout((()=>{let n=e.value;return null==n||\"\"==n.trim()?(this.confirmPasswordErrorTip=\"请确认密码\",t.next({error:!0,duplicated:!0}),void t.complete()):n!=this.regpassword?(this.confirmPasswordErrorTip=\"两次输入密码不一致,请重新输入\",t.next({error:!0,duplicated:!0}),void t.complete()):(this.confirmPassword=n,t.next(null),void t.complete())}),1e3)})),this.code=\"\",this.initLoginForm(),this.route.paramMap.subscribe((async e=>{console.log(e),this.appId=e.get(\"appId\"),await this.initAppConfig()||(this.companyId=e.get(\"companyId\"),this.companyId||(this.companyId=localStorage.getItem(\"company\")||\"Q0DryNYA8g\"),await this.initCompanyConfig())}))}async initCompanyConfig(){if(!this.companyId)return;let e=new Parse__default.Query(\"Company\");this.company=await e.get(this.companyId),this.logo=this.company?.get(\"logo\")||this.logo,this.qrcode=this.company?.get(\"qrcode\")||this.qrcode,this.mobileLogin=this.company?.get(\"jpush\")?.appkey||!1,this.rootPage=this.company?.get(\"rootPage\")}async initAppConfig(){if(!this.appId)return!1;let e=new Parse__default.Query(\"App\");return e.include(\"company\"),this.app=await e.get(this.appId),console.log(this.app),this.logo=this.app?.get(\"logo\")||this.logo,this.qrcode=this.app?.get(\"qrcode\")||this.qrcode,this.mobileLogin=this.app?.get(\"jpush\")?.appkey||!1,this.companyId=this.app?.get(\"company\").id,this.rootPage=this.app?.get(\"rootPage\"),!0}initLoginForm(){this.validateForm=this.fb.group({mobile:[\"\",[Validators.required],[this.userNameAsyncValidator]],password:[\"\",[Validators.required],[this.passwordAsyncValidator]],checkCode:[\"\",[Validators.required],[this.codeAsyncValidator]]}),this.validateUserForm=this.fb.group({username:[\"\",[Validators.required],[]],password:[\"\",[Validators.required],[this.passwordAsyncValidator]],checkCode:[\"\",[Validators.required],[this.codeAsyncValidator]]}),this.validateSMSForm=this.fb.group({mobile:[\"\",[Validators.required],[this.userNameAsyncValidator]],password:[\"\"],smsCode:[\"\",[Validators.required],[this.smsAsyncValidator]],checkCode:[\"\",[Validators.required],[this.codeAsyncValidator]]}),this.registForm=this.fb.group({registName:[\"\",[Validators.required],[this.registNameAsyncValidator]],registIdcard:[\"\",[Validators.required],[this.registIdcardAsyncValidator]],registPhone:[\"\",[Validators.required],[this.registPhoneAsyncValidator]],phoneCode:[\"\",[Validators.required],[this.registCodeAsyncValidator]],regpassword:[\"\",[Validators.required],[this.regpasswordAsyncValidator]],confirmPassword:[\"\",[Validators.required],[this.confirmPasswordAsyncValidator]]}),this.forgetForm=this.fb.group({forgetusername:[\"\",[Validators.required],[this.forgetNameAsyncValidator]],forgetPassword:[\"\",[Validators.required],[this.forgetPasswordAsyncValidator]],forgetConfirmpassword:[\"\",[Validators.required],[this.forgetConfirmPasswordAsyncValidator]],forgerphoneCode:[\"\",[Validators.required],[this.registCodeAsyncValidator]]})}ngOnInit(){this.activatedRoute.paramMap.subscribe((e=>{e.get(\"p\")?localStorage.setItem(\"pid\",e.get(\"p\")):localStorage.setItem(\"company\",this.companyId)})),this.creatCode()}creatCode(){this.code=\"\";let e=[0,1,2,3,4,5,6,7,8,9,\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G\",\"H\",\"I\",\"J\",\"K\",\"L\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\"];for(let t=0;t<4;t++){let t=Math.floor(52*Math.random());this.code+=e[t]}}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:LoginComponent,deps:[{token:AuthService},{token:NovaCloudService},{token:i7.FormBuilder},{token:i4.NzMessageService},{token:i1$1.Router},{token:i1$1.ActivatedRoute},{token:i1$1.ActivatedRoute},{token:i1.HttpClient}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:LoginComponent,selector:\"app-pcuser-login\",ngImport:i0,template:'<div class=\"student-login-layout\">\\n <div class=\"nav_center\">\\n <img [src]=\"logo\" alt=\"\" class=\"login_img\">\\n <div class=\"nav_login\">\\n <nz-tabset [nzSelectedIndex]=\"tabIndex\" [nzTabPosition]=\"\\'top\\'\">\\n\\n \\x3c!-- 登录:手机号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"手机密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateForm\" (ngSubmit)=\"submitFormMobilePassword(validateForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateForm.valid\">登录</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"forget()\">忘记密码</h6>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n\\n \\x3c!-- 登录:帐号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"帐号密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateUserForm\" (ngSubmit)=\"submitFormUserPassword(validateUserForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>帐 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"username\" placeholder=\"请输入帐号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateUserForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n \\x3c!-- 登录:手机号+验证码登入 --\\x3e\\n <nz-tab nzTitle=\"短信验证\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateSMSForm\" (ngSubmit)=\"submitFormMobileSMS(validateSMSForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手 机 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>短信码</nz-form-label>\\n <nz-form-control [nzSpan]=\"10\" nzErrorTip=\"{{smsCodeErrorTip}}\">\\n <nz-input-group>\\n <input nz-input [type]=\"\\'text\\'\" [disabled]=\"!isSended || !codeVerified\" formControlName=\"smsCode\" placeholder=\"请输入短信验证码\" />\\n </nz-input-group>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div *ngIf=\"!isSending\" (click)=\"sendSMSCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isSending\"\\n style=\"background-color:#eff5f9; color: rgb(118, 117, 117); padding: 5px; text-align: center;\">\\n {{smsTimeCount}}\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n \\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateSMSForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n </nz-tab>\\n\\n \\x3c!-- 注册:企业用户Profile开通 --\\x3e\\n <nz-tab *ngIf=\"mobileLogin\" nzTitle=\"开通\" style=\"color: #000000;\" class=\"activation\">\\n <form nz-form [formGroup]=\"registForm\" (ngSubmit)=\"registSubmitForm(registForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通证件</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzValidatingTip=\"验证中...\"\\n nzErrorTip=\"{{registIdcardErrorTip}}\">\\n <input title=\"请输入身份证号码\" nz-input formControlName=\"registIdcard\" placeholder=\"请输入身份证号码\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通姓名</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{registNameErrorTip}}\">\\n <input nz-input type=\"text\" formControlName=\"registName\" placeholder=\"请输入姓名\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>绑定手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{phoneErrorTip}}\">\\n <input [(ngModel)]=\"registPhone\" nz-input style=\"font-size: 18px;\" type=\"text\"\\n formControlName=\"registPhone\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"verifyCode\">\\n <nz-form-label [nzSpan]=\"7\" nzRequired>手机验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" class=\"code_input\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"phoneCode\" placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"codeContain\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode()\"\\n class=\"get_code\"\\n style=\"background-color:#40a9ff; cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{regpasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate2\">\\n <input nz-input [type]=\"passwordVisible2 ? \\'text\\' : \\'password\\'\" formControlName=\"regpassword\"\\n placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate2>\\n <i nz-icon [nzType]=\"passwordVisible2 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible2 = !passwordVisible2\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{confirmPasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate3\">\\n <input nz-input [type]=\"passwordVisible3 ? \\'text\\' : \\'password\\'\" formControlName=\"confirmPassword\"\\n placeholder=\"请确认密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate3>\\n <i nz-icon [nzType]=\"passwordVisible3 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible3 = !passwordVisible3\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [disabled]=\"!registForm.valid\">申请开通</button>\\n </div>\\n </form>\\n </nz-tab>\\n </nz-tabset>\\n <div class=\"nav_login_right\">\\n <p class=\"login_right_title\">二维码</p>\\n <img [src]=\"qrcode\" alt=\"公众号二维码\">\\n <p>扫码进入微信端</p>\\n \\x3c!-- <p class=\"login_right_bottom\">首次登录有惊喜</p> --\\x3e\\n </div>\\n </div>\\n\\n <div class=\"loadWrap\" style=\"display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;\"\\n *ngIf=\"loading2\">\\n <nz-spin nzTip=\"加载中,请稍后...\">\\n <nz-alert nzType=\"info\" nzMessage=\"课程加载中,请稍后...\"></nz-alert>\\n </nz-spin>\\n </div>\\n\\n \\x3c!-- 注销 --\\x3e\\n <nz-modal [(nzVisible)]=\"isVisible\" nzTitle=\"手机号错误\" (nzOnCancel)=\"handleCancel()\" (nzOnOk)=\"handleOk()\">\\n <ng-container *nzModalContent>\\n <p>手机号错误, 联系管理员核对信息</p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n</div>\\n',styles:[\".student-login-layout{position:fixed;top:0;left:0;background:#fff;width:100%;height:100%;z-index:100;overflow:auto;background:url(https://cloud.fmode.cn/assets/bg-login.jpg) no-repeat;background-size:100% 100%}.student-login-layout .nav_center{width:800px;min-height:450px;margin:0 auto;top:50%;left:50%;transform:translate(-50%,-50%);background-size:inherit;position:absolute;padding:30px;text-align:center}.student-login-layout .nav_center .login_img{max-width:70%;max-height:100px}.student-login-layout .nav_center .nav_login{background:#ffffff1a}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:22px}.student-login-layout .nav_center .ant-tabs-tab-btn{border-bottom:2px solid #1890ff}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav{height:55px}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav-list{width:100%;display:flex;justify-content:center;color:#000}.student-login-layout .nav_center ::ng-deep .ant-form-item-required{font-size:18px;font-weight:700}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-valid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-pending{font-size:18px}.student-login-layout .nav_center ::ng-deep .ant-form-item{display:flex;justify-content:center}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav:before{border:none}.student-login-layout .nav_center .nav_login{display:flex;flex-direction:inherit;align-items:center;justify-content:center;width:100%;border-radius:2px;background-color:#fff;margin:0 auto;min-height:500px}.student-login-layout .nav_center .nav_login .login-form{max-width:300px}.student-login-layout .nav_center .nav_login [nz-form]{width:440px;max-width:500px}.student-login-layout .nav_center .nav_login .login_btn{width:400px;margin:0 auto;display:flex;justify-content:center}.student-login-layout .nav_center .nav_login .login_btn button{width:85%}.student-login-layout .nav_center .nav_login .forget{margin:10px 40px 0 auto;display:flex;justify-content:flex-end}.student-login-layout .nav_center .nav_login .forget h6{font-size:14px;color:#40a9ff}.student-login-layout .nav_center .nav_login .login-form-margin{margin-bottom:16px}.student-login-layout .nav_center .nav_login .login-form-forgot{float:right}.student-login-layout .nav_center .nav_login .login-form-button{width:100%}.student-login-layout .nav_center .nav_login .nav_login_right{height:100%;flex:2;border-left:2px dashed #e5e5e5;font-size:16px;display:flex;flex-direction:column;color:#626262;align-items:center;justify-content:center}.student-login-layout .nav_center .nav_login .nav_login_right .login_right_bottom{margin:40px 0 50px}.student-login-layout .nav_center .nav_login .nav_login_right img{width:160px}.student-login-layout .nav_center .iseducation{position:absolute;top:159px;background:#fff;width:90%;flex-direction:column;line-height:50px}.student-login-layout .nav_center .iseducation .login_btn{margin-top:30px}.student-login-layout .nav_center .iseducation .close_education{width:30px;height:30px;position:absolute;top:20px;right:10px;font-size:24px;background-color:#dddddddb;border-radius:15px;line-height:28px;cursor:pointer}.student-login-layout .nav_center .loadWrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width: 960px){.nav_center{width:90%}}@media (max-width: 760px){.student-login-layout .nav_center{width:100%}.student-login-layout .nav_center ::ng-deep .ant-form-item-explain{text-align:left!important}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:13px!important}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:18px}.student-login-layout .nav_center .login_btn{width:100%!important;margin:10px auto!important}.student-login-layout .nav_center .login_btn button{width:100%!important}.student-login-layout .nav_login [nz-form]{width:100%!important;max-width:auto;padding:0 30px;display:flex;justify-content:center;flex-direction:column}.student-login-layout .ant-form-item{margin-bottom:5px}.student-login-layout ::ng-deep .ant-form-item-required{font-size:12px!important;padding-bottom:0!important}.student-login-layout .ant-form-item-label{padding:0}.student-login-layout .form-control-contain{display:flex!important;justify-content:space-between!important;flex-wrap:wrap;margin-top:10px}.student-login-layout .form-control-contain .contain_yanzm{flex:0 0 30%}.student-login-layout .form-control-contain .contain_input_yanzm{flex:0 0 40%}.student-login-layout .form-control-contain .codeText{flex:0 0 30%}.student-login-layout .form-control-contain .switch{flex:0 0 100%}.verifyCode .code_input{flex:0 0 50%}.verifyCode .codeContain{margin-left:10px;flex:0 0 45%}.verifyCode .get_code{font-size:14px!important}.forget_contain .codeInput{flex:0 0 50%}.forget_contain .getCode{margin-left:10px;flex:0 0 45%}.get_code{font-size:14px!important}.iseducation{top:110px!important}.iseducation .close_education #login_btn{width:50%!important}}@media (max-width: 460px){.form-control-contain .switch{margin-top:10px!important}}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"directive\",type:i7.ɵNgNoValidate,selector:\"form:not([ngNoForm]):not([ngNativeValidate])\"},{kind:\"directive\",type:i7.DefaultValueAccessor,selector:\"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\"},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.NgControlStatusGroup,selector:\"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\"},{kind:\"directive\",type:i7.FormGroupDirective,selector:\"[formGroup]\",inputs:[\"formGroup\"],outputs:[\"ngSubmit\"],exportAs:[\"ngForm\"]},{kind:\"directive\",type:i7.FormControlName,selector:\"[formControlName]\",inputs:[\"formControlName\",\"disabled\",\"ngModel\"],outputs:[\"ngModelChange\"]},{kind:\"directive\",type:i8.NzInputDirective,selector:\"input[nz-input],textarea[nz-input]\",inputs:[\"nzBorderless\",\"nzSize\",\"nzStepperless\",\"nzStatus\",\"disabled\"],exportAs:[\"nzInput\"]},{kind:\"component\",type:i8.NzInputGroupComponent,selector:\"nz-input-group\",inputs:[\"nzAddOnBeforeIcon\",\"nzAddOnAfterIcon\",\"nzPrefixIcon\",\"nzSuffixIcon\",\"nzAddOnBefore\",\"nzAddOnAfter\",\"nzPrefix\",\"nzStatus\",\"nzSuffix\",\"nzSize\",\"nzSearch\",\"nzCompact\"],exportAs:[\"nzInputGroup\"]},{kind:\"directive\",type:i8.NzInputGroupWhitSuffixOrPrefixDirective,selector:\"nz-input-group[nzSuffix], nz-input-group[nzPrefix]\"},{kind:\"component\",type:i9.NzButtonComponent,selector:\"button[nz-button], a[nz-button]\",inputs:[\"nzBlock\",\"nzGhost\",\"nzSearch\",\"nzLoading\",\"nzDanger\",\"disabled\",\"tabIndex\",\"nzType\",\"nzShape\",\"nzSize\"],exportAs:[\"nzButton\"]},{kind:\"directive\",type:i10.ɵNzTransitionPatchDirective,selector:\"[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group\",inputs:[\"hidden\"]},{kind:\"directive\",type:i11.NzWaveDirective,selector:'[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])',inputs:[\"nzWaveExtraNode\"],exportAs:[\"nzWave\"]},{kind:\"component\",type:i3$1.NzModalComponent,selector:\"nz-modal\",inputs:[\"nzMask\",\"nzMaskClosable\",\"nzCloseOnNavigation\",\"nzVisible\",\"nzClosable\",\"nzOkLoading\",\"nzOkDisabled\",\"nzCancelDisabled\",\"nzCancelLoading\",\"nzKeyboard\",\"nzNoAnimation\",\"nzCentered\",\"nzDraggable\",\"nzContent\",\"nzFooter\",\"nzZIndex\",\"nzWidth\",\"nzWrapClassName\",\"nzClassName\",\"nzStyle\",\"nzTitle\",\"nzCloseIcon\",\"nzMaskStyle\",\"nzBodyStyle\",\"nzOkText\",\"nzCancelText\",\"nzOkType\",\"nzOkDanger\",\"nzIconType\",\"nzModalType\",\"nzAutofocus\",\"nzOnOk\",\"nzOnCancel\"],outputs:[\"nzOnOk\",\"nzOnCancel\",\"nzAfterOpen\",\"nzAfterClose\",\"nzVisibleChange\"],exportAs:[\"nzModal\"]},{kind:\"directive\",type:i3$1.NzModalContentDirective,selector:\"[nzModalContent]\",exportAs:[\"nzModalContent\"]},{kind:\"component\",type:i13.NzSpinComponent,selector:\"nz-spin\",inputs:[\"nzIndicator\",\"nzSize\",\"nzTip\",\"nzDelay\",\"nzSimple\",\"nzSpinning\"],exportAs:[\"nzSpin\"]},{kind:\"component\",type:i14.NzTabSetComponent,selector:\"nz-tabset\",inputs:[\"nzSelectedIndex\",\"nzTabPosition\",\"nzTabBarExtraContent\",\"nzCanDeactivate\",\"nzAddIcon\",\"nzTabBarStyle\",\"nzType\",\"nzSize\",\"nzAnimated\",\"nzTabBarGutter\",\"nzHideAdd\",\"nzCentered\",\"nzHideAll\",\"nzLinkRouter\",\"nzLinkExact\"],outputs:[\"nzSelectChange\",\"nzSelectedIndexChange\",\"nzTabListScroll\",\"nzClose\",\"nzAdd\"],exportAs:[\"nzTabset\"]},{kind:\"component\",type:i14.NzTabComponent,selector:\"nz-tab\",inputs:[\"nzTitle\",\"nzClosable\",\"nzCloseIcon\",\"nzDisabled\",\"nzForceRender\"],outputs:[\"nzSelect\",\"nzDeselect\",\"nzClick\",\"nzContextmenu\"],exportAs:[\"nzTab\"]},{kind:\"directive\",type:i15.NzColDirective,selector:\"[nz-col],nz-col,nz-form-control,nz-form-label\",inputs:[\"nzFlex\",\"nzSpan\",\"nzOrder\",\"nzOffset\",\"nzPush\",\"nzPull\",\"nzXs\",\"nzSm\",\"nzMd\",\"nzLg\",\"nzXl\",\"nzXXl\"],exportAs:[\"nzCol\"]},{kind:\"directive\",type:i15.NzRowDirective,selector:\"[nz-row],nz-row,nz-form-item\",inputs:[\"nzAlign\",\"nzJustify\",\"nzGutter\"],exportAs:[\"nzRow\"]},{kind:\"directive\",type:i16.NzFormDirective,selector:\"[nz-form]\",inputs:[\"nzLayout\",\"nzNoColon\",\"nzAutoTips\",\"nzDisableAutoTips\",\"nzTooltipIcon\",\"nzLabelAlign\",\"nzLabelWrap\"],exportAs:[\"nzForm\"]},{kind:\"component\",type:i16.NzFormItemComponent,selector:\"nz-form-item\",exportAs:[\"nzFormItem\"]},{kind:\"component\",type:i16.NzFormLabelComponent,selector:\"nz-form-label\",inputs:[\"nzFor\",\"nzRequired\",\"nzNoColon\",\"nzTooltipTitle\",\"nzTooltipIcon\",\"nzLabelAlign\",\"nzLabelWrap\"],exportAs:[\"nzFormLabel\"]},{kind:\"component\",type:i16.NzFormControlComponent,selector:\"nz-form-control\",inputs:[\"nzSuccessTip\",\"nzWarningTip\",\"nzErrorTip\",\"nzValidatingTip\",\"nzExtra\",\"nzAutoTips\",\"nzDisableAutoTips\",\"nzHasFeedback\",\"nzValidateStatus\"],exportAs:[\"nzFormControl\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:LoginComponent,decorators:[{type:Component,args:[{selector:\"app-pcuser-login\",template:'<div class=\"student-login-layout\">\\n <div class=\"nav_center\">\\n <img [src]=\"logo\" alt=\"\" class=\"login_img\">\\n <div class=\"nav_login\">\\n <nz-tabset [nzSelectedIndex]=\"tabIndex\" [nzTabPosition]=\"\\'top\\'\">\\n\\n \\x3c!-- 登录:手机号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"手机密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateForm\" (ngSubmit)=\"submitFormMobilePassword(validateForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateForm.valid\">登录</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"forget()\">忘记密码</h6>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n\\n \\x3c!-- 登录:帐号+密码登入 --\\x3e\\n <nz-tab nzTitle=\"帐号密码\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateUserForm\" (ngSubmit)=\"submitFormUserPassword(validateUserForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>帐 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"username\" placeholder=\"请输入帐号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"password\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码 </nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateUserForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n <ng-container *ngIf=\"type == \\'forget\\'\">\\n <form nz-form [formGroup]=\"forgetForm\" (ngSubmit)=\"forgetFormFun(forgetForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>登录账号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"forgetusername\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>新 密 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{passwordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetPassword\" placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{forgetphoneCodesErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate\">\\n <input nz-input [type]=\"passwordVisible ? \\'text\\' : \\'password\\'\" formControlName=\"forgetConfirmpassword\" placeholder=\"请再次输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate>\\n <i nz-icon [nzType]=\"passwordVisible ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible = !passwordVisible\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"forget_contain\">\\n <nz-form-label [nzSpan]=\"5\" nzRequired >验 证 码</nz-form-label>\\n <nz-form-control [nzSpan]=\"8\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\" class=\"codeInput\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"forgerphoneCode\"\\n placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"getCode\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode2()\" class=\"get_code\"\\n style=\"background-color:#40a9ff;cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button style=\"width: 348px;\" nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\"\\n [disabled]=\"!forgetForm.valid\">重置密码</button>\\n </div>\\n <div class=\"forget\">\\n <h6 (click)=\"backLogin()\">返回登录</h6>\\n </div>\\n </form>\\n </ng-container>\\n\\n </nz-tab>\\n \\x3c!-- 登录:手机号+验证码登入 --\\x3e\\n <nz-tab nzTitle=\"短信验证\" style=\"color: #000000;\">\\n <ng-container *ngIf=\"type == \\'login\\'\">\\n <form nz-form [formGroup]=\"validateSMSForm\" (ngSubmit)=\"submitFormMobileSMS(validateSMSForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>手 机 号</nz-form-label>\\n <nz-form-control [nzSpan]=\"14\" nzErrorTip=\"{{userErrorTip}}\">\\n <input nz-input formControlName=\"mobile\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item class=\"form-control-contain\">\\n <nz-form-label [nzSpan]=\"5\" class=\"contain_yanzm\" nzRequired >验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" nzErrorTip=\"{{codeErrorTip}}\" class=\"contain_input_yanzm\">\\n <input style=\"font-size:14px\" title=\"请输入验证码\" nz-input type=\"text\" formControlName=\"checkCode\"\\n placeholder=\"区分大小写\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"codeText\">\\n <div style=\" height: 100%; margin: 0 4px; text-align: center; letter-spacing: 2px;\">{{code}}</div>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div (click)=\"creatCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 换一个\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"5\" nzRequired>短信码</nz-form-label>\\n <nz-form-control [nzSpan]=\"10\" nzErrorTip=\"{{smsCodeErrorTip}}\">\\n <nz-input-group>\\n <input nz-input [type]=\"\\'text\\'\" [disabled]=\"!isSended || !codeVerified\" formControlName=\"smsCode\" placeholder=\"请输入短信验证码\" />\\n </nz-input-group>\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"4\" class=\"switch\">\\n <div *ngIf=\"!isSending\" (click)=\"sendSMSCode()\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center;\">\\n 获取验证码\\n </div>\\n <div *ngIf=\"isSending\"\\n style=\"background-color:#eff5f9; color: rgb(118, 117, 117); padding: 5px; text-align: center;\">\\n {{smsTimeCount}}\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n \\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [nzSize]=\"\\'large\\'\" [disabled]=\"!validateSMSForm.valid\">登录</button>\\n </div>\\n </form>\\n </ng-container>\\n </nz-tab>\\n\\n \\x3c!-- 注册:企业用户Profile开通 --\\x3e\\n <nz-tab *ngIf=\"mobileLogin\" nzTitle=\"开通\" style=\"color: #000000;\" class=\"activation\">\\n <form nz-form [formGroup]=\"registForm\" (ngSubmit)=\"registSubmitForm(registForm.value)\">\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通证件</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzValidatingTip=\"验证中...\"\\n nzErrorTip=\"{{registIdcardErrorTip}}\">\\n <input title=\"请输入身份证号码\" nz-input formControlName=\"registIdcard\" placeholder=\"请输入身份证号码\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通姓名</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{registNameErrorTip}}\">\\n <input nz-input type=\"text\" formControlName=\"registName\" placeholder=\"请输入姓名\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>绑定手机号</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{phoneErrorTip}}\">\\n <input [(ngModel)]=\"registPhone\" nz-input style=\"font-size: 18px;\" type=\"text\"\\n formControlName=\"registPhone\" placeholder=\"请输入手机号\" />\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item class=\"verifyCode\">\\n <nz-form-label [nzSpan]=\"7\" nzRequired>手机验证码</nz-form-label>\\n <nz-form-control [nzSpan]=\"6\" class=\"code_input\" nzHasFeedback nzErrorTip=\"{{phoneCodesErrorTip}}\">\\n <input style=\"font-size: 18px;\" nz-input type=\"text\" formControlName=\"phoneCode\" placeholder=\"手机验证码\" />\\n </nz-form-control>\\n <nz-form-control [nzSpan]=\"6\" class=\"codeContain\">\\n <div *ngIf=\"!isCountDown\" (click)=\"getCode()\"\\n class=\"get_code\"\\n style=\"background-color:#40a9ff; cursor: pointer; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n 获验证码\\n </div>\\n <div *ngIf=\"isCountDown\"\\n style=\"background-color:#40a9ff; color: #fff; padding: 5px; text-align: center; font-size: 18px;\">\\n {{countDown}}/秒\\n </div>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>开通密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{regpasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate2\">\\n <input nz-input [type]=\"passwordVisible2 ? \\'text\\' : \\'password\\'\" formControlName=\"regpassword\"\\n placeholder=\"请输入密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate2>\\n <i nz-icon [nzType]=\"passwordVisible2 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible2 = !passwordVisible2\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <nz-form-item>\\n <nz-form-label [nzSpan]=\"7\" nzRequired>确认密码</nz-form-label>\\n <nz-form-control [nzSpan]=\"12\" nzHasFeedback nzErrorTip=\"{{confirmPasswordErrorTip}}\">\\n <nz-input-group [nzSuffix]=\"suffixTemplate3\">\\n <input nz-input [type]=\"passwordVisible3 ? \\'text\\' : \\'password\\'\" formControlName=\"confirmPassword\"\\n placeholder=\"请确认密码\" />\\n </nz-input-group>\\n <ng-template #suffixTemplate3>\\n <i nz-icon [nzType]=\"passwordVisible3 ? \\'eye-invisible\\' : \\'eye\\'\"\\n (click)=\"passwordVisible3 = !passwordVisible3\"></i>\\n </ng-template>\\n </nz-form-control>\\n </nz-form-item>\\n <div class=\"login_btn\">\\n <button nz-button nzType=\"primary\" [disabled]=\"!registForm.valid\">申请开通</button>\\n </div>\\n </form>\\n </nz-tab>\\n </nz-tabset>\\n <div class=\"nav_login_right\">\\n <p class=\"login_right_title\">二维码</p>\\n <img [src]=\"qrcode\" alt=\"公众号二维码\">\\n <p>扫码进入微信端</p>\\n \\x3c!-- <p class=\"login_right_bottom\">首次登录有惊喜</p> --\\x3e\\n </div>\\n </div>\\n\\n <div class=\"loadWrap\" style=\"display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;\"\\n *ngIf=\"loading2\">\\n <nz-spin nzTip=\"加载中,请稍后...\">\\n <nz-alert nzType=\"info\" nzMessage=\"课程加载中,请稍后...\"></nz-alert>\\n </nz-spin>\\n </div>\\n\\n \\x3c!-- 注销 --\\x3e\\n <nz-modal [(nzVisible)]=\"isVisible\" nzTitle=\"手机号错误\" (nzOnCancel)=\"handleCancel()\" (nzOnOk)=\"handleOk()\">\\n <ng-container *nzModalContent>\\n <p>手机号错误, 联系管理员核对信息</p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n</div>\\n',styles:[\".student-login-layout{position:fixed;top:0;left:0;background:#fff;width:100%;height:100%;z-index:100;overflow:auto;background:url(https://cloud.fmode.cn/assets/bg-login.jpg) no-repeat;background-size:100% 100%}.student-login-layout .nav_center{width:800px;min-height:450px;margin:0 auto;top:50%;left:50%;transform:translate(-50%,-50%);background-size:inherit;position:absolute;padding:30px;text-align:center}.student-login-layout .nav_center .login_img{max-width:70%;max-height:100px}.student-login-layout .nav_center .nav_login{background:#ffffff1a}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:22px}.student-login-layout .nav_center .ant-tabs-tab-btn{border-bottom:2px solid #1890ff}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav{height:55px}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav-list{width:100%;display:flex;justify-content:center;color:#000}.student-login-layout .nav_center ::ng-deep .ant-form-item-required{font-size:18px;font-weight:700}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-valid{font-size:18px}.student-login-layout .nav_center ::ng-deep .ng-pending{font-size:18px}.student-login-layout .nav_center ::ng-deep .ant-form-item{display:flex;justify-content:center}.student-login-layout .nav_center ::ng-deep .ant-tabs-nav:before{border:none}.student-login-layout .nav_center .nav_login{display:flex;flex-direction:inherit;align-items:center;justify-content:center;width:100%;border-radius:2px;background-color:#fff;margin:0 auto;min-height:500px}.student-login-layout .nav_center .nav_login .login-form{max-width:300px}.student-login-layout .nav_center .nav_login [nz-form]{width:440px;max-width:500px}.student-login-layout .nav_center .nav_login .login_btn{width:400px;margin:0 auto;display:flex;justify-content:center}.student-login-layout .nav_center .nav_login .login_btn button{width:85%}.student-login-layout .nav_center .nav_login .forget{margin:10px 40px 0 auto;display:flex;justify-content:flex-end}.student-login-layout .nav_center .nav_login .forget h6{font-size:14px;color:#40a9ff}.student-login-layout .nav_center .nav_login .login-form-margin{margin-bottom:16px}.student-login-layout .nav_center .nav_login .login-form-forgot{float:right}.student-login-layout .nav_center .nav_login .login-form-button{width:100%}.student-login-layout .nav_center .nav_login .nav_login_right{height:100%;flex:2;border-left:2px dashed #e5e5e5;font-size:16px;display:flex;flex-direction:column;color:#626262;align-items:center;justify-content:center}.student-login-layout .nav_center .nav_login .nav_login_right .login_right_bottom{margin:40px 0 50px}.student-login-layout .nav_center .nav_login .nav_login_right img{width:160px}.student-login-layout .nav_center .iseducation{position:absolute;top:159px;background:#fff;width:90%;flex-direction:column;line-height:50px}.student-login-layout .nav_center .iseducation .login_btn{margin-top:30px}.student-login-layout .nav_center .iseducation .close_education{width:30px;height:30px;position:absolute;top:20px;right:10px;font-size:24px;background-color:#dddddddb;border-radius:15px;line-height:28px;cursor:pointer}.student-login-layout .nav_center .loadWrap{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width: 960px){.nav_center{width:90%}}@media (max-width: 760px){.student-login-layout .nav_center{width:100%}.student-login-layout .nav_center ::ng-deep .ant-form-item-explain{text-align:left!important}.student-login-layout .nav_center ::ng-deep .ng-invalid{font-size:13px!important}.student-login-layout .nav_center ::ng-deep .ant-tabs-tab-btn{font-size:18px}.student-login-layout .nav_center .login_btn{width:100%!important;margin:10px auto!important}.student-login-layout .nav_center .login_btn button{width:100%!important}.student-login-layout .nav_login [nz-form]{width:100%!important;max-width:auto;padding:0 30px;display:flex;justify-content:center;flex-direction:column}.student-login-layout .ant-form-item{margin-bottom:5px}.student-login-layout ::ng-deep .ant-form-item-required{font-size:12px!important;padding-bottom:0!important}.student-login-layout .ant-form-item-label{padding:0}.student-login-layout .form-control-contain{display:flex!important;justify-content:space-between!important;flex-wrap:wrap;margin-top:10px}.student-login-layout .form-control-contain .contain_yanzm{flex:0 0 30%}.student-login-layout .form-control-contain .contain_input_yanzm{flex:0 0 40%}.student-login-layout .form-control-contain .codeText{flex:0 0 30%}.student-login-layout .form-control-contain .switch{flex:0 0 100%}.verifyCode .code_input{flex:0 0 50%}.verifyCode .codeContain{margin-left:10px;flex:0 0 45%}.verifyCode .get_code{font-size:14px!important}.forget_contain .codeInput{flex:0 0 50%}.forget_contain .getCode{margin-left:10px;flex:0 0 45%}.get_code{font-size:14px!important}.iseducation{top:110px!important}.iseducation .close_education #login_btn{width:50%!important}}@media (max-width: 460px){.form-control-contain .switch{margin-top:10px!important}}\\n\"]}]}],ctorParameters:()=>[{type:AuthService},{type:NovaCloudService},{type:i7.FormBuilder},{type:i4.NzMessageService},{type:i1$1.Router},{type:i1$1.ActivatedRoute},{type:i1$1.ActivatedRoute},{type:i1.HttpClient}]});class ModalUserLoginComponent{constructor(e,t,n,o,i){this.msg=e,this.authServ=t,this.router=n,this.http=o,this.toastCtrl=i,this.isUserRuleChecked=!1,this.loginInfo={mobile:\"\",code:\"\"},this.localCodeNum=\"\",this.countdown=60,this.buttonText=\"获取验证码\",this.isCountingdown=!1,this.drawCode=[]}ngOnInit(){this.close()}ngAfterViewInit(){this.setActiveButton(this.authServ.activeButton)}signMobilePassword(){this.mobile&&this.password?this.password==this.password2?this.authServ.signMobilePassword(this.mobile,this.password).then((e=>{e?.id&&this.setActiveButton(\"账号密码\")})).catch((e=>{this.msg.error(\"注册失败,请更换手机号注册\")})):this.msg.error(\"两次输入密码不同,请检查\"):this.msg.error(\"请输入完整手机号和密码\")}loginMobilePassword(){this.mobile&&this.password?this.authServ.loginMobilePassword(this.mobile,this.password,this.msg):this.msg.error(\"请输入完整手机号和密码\")}close(){let e=this.authServ.isGuardLock(this.router.url);this.authServ.isModalShow=e}goHome(){let e=this.router.url;return e?.indexOf(\"yuban\")&&this.router.navigateByUrl(\"/app/home\"),e.indexOf(\"chat\")>-1?(this.router.navigateByUrl(\"/chat/home\"),void(this.authServ.isModalShow=!1)):e.indexOf(\"imagine\")>-1?(this.router.navigateByUrl(\"/imagine/home\"),void(this.authServ.isModalShow=!1)):(this.router.navigateByUrl(\"/\"),void(this.authServ.isModalShow=!1))}handleEscapeKey(e){this.close()}setActiveButton(e){this.authServ.activeButton=e,console.log(this.authServ.activeButton),this.updateDrawCode()}smsAutoLogin(){6==this.loginInfo.code?.length&&this.login()}startCountdown(){if(!String(this.loginInfo.mobile).match(/^1[3456789]\\d{9}$/))return void this.msg.error(\"请填写正确手机号\");let e=this.drawCode.join(\"\");if(this.authServ.enabledLocalCode&&this.localCodeNum.toLowerCase()!=e.toLowerCase())return void this.msg.error(\"校验码不正确\");let t=Parse__default.serverURL?.split(\"parse\")?.[0]||\"https://server.fmode.cn/\";this.http.post(t+\"api/apig/message\",{company:this.authServ.company,mobile:this.loginInfo.mobile}).subscribe((e=>{console.log(e),this.msg.success(\"发送成功\"),this.isCountingdown=!0,this.time(),this.updateDrawCode(),this.focusSmsCodeInput()}))}focusSmsCodeInput(){this.smsCodeInput.nativeElement.focus()}time(){this.isCountingdown=!0,this.buttonText=`${this.countdown}秒`;let e=setInterval((()=>{this.countdown--,this.buttonText=`${this.countdown}秒`,(0===this.countdown||this.countdown<0)&&(clearInterval(e),this.buttonText=\"重新发送\",this.isCountingdown=!1,this.countdown=0)}),1e3)}async login(){let e;if(!String(this.loginInfo.mobile).match(/^1[3456789]\\d{9}$/))return void this.msg.error(\"请填写正确手机号\");if(!this.loginInfo.code)return void this.msg.error(\"请输入短信验证码\");this.loginInfo.code=this.loginInfo.code?.slice(0,6);try{e=await this.authServ.loginCode(this.loginInfo.mobile,this.loginInfo.code,this.msg)}catch(e){}let t=Parse__default.User.current();(e||t?.id)&&(console.log(e,t?.id,\"close\"),this.close(),this.loginInfo={mobile:\"\",code:\"\"},this.localCodeNum=\"\",this.toast({color:\"success\",message:\"登录成功\"}))}async toast(e){e.position=e?.position||\"top\",e.duration=e?.duration||1500,e.color=e?.color||\"primary\",(await this.toastCtrl.create(e)).present()}updateDrawCode(){if(!this.authServ.enabledLocalCode)return;let e=100,t=document.getElementById(\"canvas\");t&&this.canvasDom.nativeElement.removeChild(t),this.canvasDom.nativeElement;let n=document.createElement(\"canvas\");n.width=100,n.height=44,n.className=\"canvas\",n.setAttribute(\"id\",\"canvas\"),n.addEventListener(\"click\",(()=>{this.updateDrawCode()}));let o=n.getContext(\"2d\");n.width=e,n.height=44;let i=\"A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m\".split(\",\"),a=i.length;for(let e=0;e<=3;e++){let t=Math.floor(Math.random()*a),n=30*Math.random()*Math.PI/180,r=i[t];this.drawCode[e]=r;let s=10+20*e,l=20+8*Math.random();o.font=\"bold 23px 微软雅黑\",o.translate(s,l),o.rotate(n),o.fillStyle=this.randomColor(),o.fillText(r,0,0),o.rotate(-n),o.translate(-s,-l)}for(let t=0;t<=5;t++)o.strokeStyle=this.randomColor(),o.beginPath(),o.moveTo(Math.random()*e,44*Math.random()),o.lineTo(Math.random()*e,44*Math.random()),o.stroke();for(let t=0;t<=30;t++){o.strokeStyle=this.randomColor(),o.beginPath();let t=Math.random()*e,n=44*Math.random();o.moveTo(t,n),o.lineTo(t+1,n+1),o.stroke()}this.canvasDom.nativeElement.appendChild(n)}randomColor(){return\"rgb(\"+Math.floor(256*Math.random())+\",\"+Math.floor(256*Math.random())+\",\"+Math.floor(256*Math.random())+\")\"}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalUserLoginComponent,deps:[{token:i4.NzMessageService},{token:AuthService},{token:i1$1.Router},{token:i1.HttpClient},{token:i2$3.ToastController}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ModalUserLoginComponent,isStandalone:!0,selector:\"fm-modal-user-login\",host:{listeners:{\"document:keydown.escape\":\"handleEscapeKey($event)\"}},viewQueries:[{propertyName:\"canvasDom\",first:!0,predicate:[\"canvasDom\"],descendants:!0},{propertyName:\"smsCodeInput\",first:!0,predicate:[\"smsCodeInput\"],descendants:!0}],ngImport:i0,template:'\\x3c!--登录弹出框设置--\\x3e\\n\\x3c!--背景灰色蒙版--\\x3e\\n<div\\n class=\"popup\"\\n [style.display]=\"authServ.isModalShow ? \\'block\\' : \\'none\\'\"\\n (click)=\"close()\"\\n>\\n <div class=\"popup-content\" (click)=\"$event.stopPropagation()\">\\n <div class=\"popup-box\">\\n \\x3c!--弹框内设置position:absolute,规范排版,后续只需position:relative增减内容--\\x3e\\n <div class=\"popup-box-content\">\\n <div class=\"logo-img-login\">\\n <img\\n [src]=\"authServ.logoUrl\"\\n alt=\"fmode\"\\n />\\n </div>\\n\\n \\x3c!--关闭图标按钮--\\x3e\\n <div class=\"close-icon-box\">\\n <div class=\"iconfont icon-shanchu2\" (click)=\"close()\"></div>\\n </div>\\n\\n \\x3c!--按钮切换登录方式--\\x3e\\n <div class=\"button-box\" *ngIf=\"authServ?.loginTypeCount>1\">\\n <div class=\"button-group\">\\n <button *ngIf=\"authServ?.loginOptions?.userpwd\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'账号密码\\'\"\\n (click)=\"setActiveButton(\\'账号密码\\')\"\\n >\\n 账号密码\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.mobilecode\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'短信验证\\'\"\\n (click)=\"setActiveButton(\\'短信验证\\')\"\\n >\\n 短信验证\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.wechat\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'微信扫码\\'\"\\n (click)=\"setActiveButton(\\'微信扫码\\')\"\\n >\\n 微信扫码\\n </button>\\n </div>\\n </div>\\n\\n \\x3c!--手机验证码--\\x3e\\n <form class=\"message-form\" [class.active]=\"authServ.activeButton === \\'短信验证\\'\" *ngIf=\"authServ?.loginOptions?.mobilecode\">\\n <div class=\"login-input-box\">\\n <div class=\"popup-input-frontnumber\">+86</div>\\n <input\\n class=\"popup-input-itemone\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"loginInfo.mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"12\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n <div *ngIf=\"authServ?.enabledLocalCode\"\\n class=\"login-input-box local-code\" #canvasDom>\\n <input\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"localCodeNum\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"4\"\\n placeholder=\"请输入校验码\"\\n />\\n \\x3c!-- <canvas\\n #canvas\\n width=\"100\"\\n height=\"44\"\\n (click)=\"updateDrawCode()\"\\n class=\"canvas\"\\n ></canvas> --\\x3e\\n </div>\\n <div class=\"login-input-box\">\\n <input #smsCodeInput\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入短信验证码\"\\n [(ngModel)]=\"loginInfo.code\"\\n (change)=\"smsAutoLogin()\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"6\"\\n />\\n <button\\n class=\"checknumber-button\"\\n type=\"submit\"\\n [value]=\"buttonText\"\\n [disabled]=\"isCountingdown\"\\n (click)=\"startCountdown()\"\\n [class.active]=\"isCountingdown\"\\n >\\n {{buttonText}}\\n </button>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>未注册的手机号,将自动创建帐号并登录。</span>\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button class=\"login-submit-button\" type=\"submit\" (click)=\"login()\">\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--账号密码登录--\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'账号密码\\'\" *ngIf=\"authServ?.loginOptions?.userpwd\">\\n <div class=\"login-input-box\">\\n <input\\n maxlength=\"12\"\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n \\x3c!-- 记住密码 --\\x3e\\n <div class=\"passwprd-box\">\\n <div class=\"remember-password-box\">\\n <input type=\"checkbox\" id=\"remember-password\" />\\n 记住密码\\n </div>\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n <div class=\"password-forget\" (click)=\"setActiveButton(\\'注册帐号\\')\">\\n 注册帐号\\n </div>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>\\n <input type=\"checkbox\" [(ngModel)]=\"isUserRuleChecked\" [ngModelOptions]=\"{ standalone: true }\" style=\"margin-right:5px\"/>\\n <span (click)=\"isUserRuleChecked=true\">同意</span></span>\\n <span (click)=\"isUserRuleChecked=true\">《用户协议及隐私条款》</span>\\n </div>\\n\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n \\x3c!-- <div class=\"password-forget\">忘记密码?</div>\\n </div> --\\x3e\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"loginMobilePassword()\"\\n >\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!-- 帐号密码注册 --\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'注册帐号\\'\">\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password2\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请再次输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"signMobilePassword()\"\\n >\\n 注册\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--微信扫码登陆--\\x3e\\n <form class=\"wechat-form\" [class.active]=\"authServ.activeButton === \\'微信扫码\\'\" *ngIf=\"authServ?.loginOptions?.wechat\">\\n <div class=\"wechat-login-box\">\\n <img\\n class=\"login-erweima-img\"\\n [src]=\"authServ.wechatUrl\"\\n alt=\"微信扫码登陆二维码\"\\n />\\n </div>\\n <div class=\"wechat-explain\">使用微信扫一扫,扫码登录 \"飞码AI\"</div>\\n </form>\\n\\n \\x3c!--返回首页--\\x3e\\n <div class=\"back-home-box\" *ngIf=\"authServ.showBackHome\">\\n <button class=\"back-homepage-button\" (click)=\"goHome()\">\\n 返回首页\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n',styles:['@charset \"UTF-8\";:host{--fmode-color-primary: #0199f9;--fmode-background-primary: #FFF}:host-context(body.dark) .popup{--fmode-color-primary: #7974ff;--fmode-background-primary: #000000}:host-context(body.dark) .popup .remember-password-box{color:#fff}.popup{display:flex;position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0006;z-index:10000}@media screen and (max-width: 800px){.popup-content .popup-box{position:fixed!important;left:0!important;top:0!important;height:100vh!important;width:100vw!important;border-radius:0!important}.popup-content .popup-box .popup-box-content{padding-top:35%;border-radius:50px!important}}.popup-content{margin:7% auto;display:flex;width:500px;height:600px;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .popup-box{width:500px;height:600px;position:relative;border-radius:50px 5px;background-color:#1e90ff;overflow:hidden}.popup-content .popup-box .popup-box-content{position:absolute;border-radius:50px 5px;inset:4px;background-color:var(--fmode-background-primary);z-index:1}.popup-content .popup-box .popup-box-content .logo-img-login{margin-top:35px;position:relative;width:100%;display:flex;justify-content:center;z-index:2}.popup-content .popup-box .popup-box-content .logo-img-login img{height:auto;max-width:150px}.popup-content .popup-box .popup-box-content .close-icon-box{position:relative;top:20px;right:20px;float:right;font-size:20px;cursor:pointer;z-index:2}.popup-content .popup-box .popup-box-content .button-box{display:flex;justify-content:center;padding-top:32px;padding-right:59px;padding-left:59px;border-radius:10px;width:100%;height:72px}.popup-content .popup-box .popup-box-content .button-box .button-group{position:relative;display:flex;width:100%;line-height:40px;border-radius:10px;background-color:plum;z-index:2}.popup-content .popup-box .popup-box-content .button-box .login-select-button{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#fff;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button:hover{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#000;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button.active{background-color:var(--fmode-color-primary);border-radius:10px}.popup-content .popup-box .popup-box-content input{color:#000}.popup-content .popup-box .popup-box-content .message-form,.popup-content .popup-box .popup-box-content .mobile-form,.popup-content .popup-box .popup-box-content .wechat-form{display:none}.popup-content .popup-box .popup-box-content .message-form.active,.popup-content .popup-box .popup-box-content .mobile-form.active,.popup-content .popup-box .popup-box-content .wechat-form.active{display:block}.popup-content .popup-box:before{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#f902ff,#f902ff);transform-origin:bottom right;animation:animate 6s linear infinite}.popup-content .popup-box:after{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#00dbde,#00dbde);transform-origin:bottom right;animation:animate 6s linear infinite;animation-delay:-3s}@keyframes animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popup-content .login-submit-box{position:relative}.popup-content .login-submit-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .login-submit-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .login-submit-button:hover{color:var(--fmode-color-primary)}.popup-content .login-submit-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .login-submit-button:active{transform:scale(.9)}.popup-content .message-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .message-form .login-input-box{display:flex;align-items:center;padding-top:10px}.popup-content .message-form .login-input-box .popup-input-frontnumber{padding:6px 12px;position:relative;border-radius:10px 0 0 10px;line-height:40px;font-size:18px;color:#4d4d4d;background-color:#ededed}.popup-content .message-form .popup-input-itemone{padding:6px 12px;position:relative;line-height:40px;border-radius:0 10px 10px 0;border:0;width:93%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .popup-input-itemtwo{padding:6px 12px 6px 16px;position:relative;line-height:40px;border-radius:10px;border:0;width:55%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .checknumber-button{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;color:#fff;background:var(--fmode-color-primary)}.popup-content .message-form .checknumber-button:hover{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;background:#4bace9}.popup-content .message-form .checknumber-button.active{background:#c7c7c7}.popup-content .mobile-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .mobile-form .login-input-box{padding-top:10px}.popup-content .mobile-form .login-input-box .popup-input-itemnomal{margin-top:20px;padding:6px 12px 6px 14px;position:relative;line-height:40px;border-radius:10px;border:0;width:100%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .mobile-form .rule-box{display:flex;padding-top:4px;padding-left:15px;padding-right:10px;justify-content:space-between;font-size:15px}.popup-content .mobile-form .rule-box span,.popup-content .mobile-form .rule-box ion-checkbox{font-size:15px;color:var(--fmode-color-primary)}.popup-content .mobile-form .passwprd-box{display:flex;padding-top:4px;justify-content:space-between}.popup-content .mobile-form .passwprd-box .remember-password-box{margin:10px 0 0 15px;font-size:15px}.popup-content .mobile-form .passwprd-box .password-forget{margin-top:10px;margin-right:15px;font-size:15px;color:gray;cursor:pointer}.popup-content .mobile-form .passwprd-box .password-forget:hover{margin-top:10px;margin-right:15px;font-size:15px;color:#000;cursor:pointer}.popup-content .wechat-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .wechat-form .wechat-login-box{display:flex;justify-content:center}.popup-content .wechat-form .wechat-login-box .login-erweima-img{margin-top:30px;width:210px}.popup-content .wechat-form .wechat-explain{padding-top:20px;font-size:16px;text-align:center}.popup-content .back-home-box{display:flex;justify-content:center;padding:6px 55px}.popup-content .back-homepage-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .back-homepage-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .back-homepage-button:hover{color:var(--fmode-color-primary)}.popup-content .back-homepage-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .local-code{justify-content:space-between}.popup-content .local-code .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:44px}\\n'],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:FormsModule},{kind:\"directive\",type:i7.ɵNgNoValidate,selector:\"form:not([ngNoForm]):not([ngNativeValidate])\"},{kind:\"directive\",type:i7.DefaultValueAccessor,selector:\"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\"},{kind:\"directive\",type:i7.CheckboxControlValueAccessor,selector:\"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\"},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.NgControlStatusGroup,selector:\"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\"},{kind:\"directive\",type:i7.RequiredValidator,selector:\":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]\",inputs:[\"required\"]},{kind:\"directive\",type:i7.MaxLengthValidator,selector:\"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\",inputs:[\"maxlength\"]},{kind:\"directive\",type:i7.NgModel,selector:\"[ngModel]:not([formControlName]):not([formControl])\",inputs:[\"name\",\"disabled\",\"ngModel\",\"ngModelOptions\"],outputs:[\"ngModelChange\"],exportAs:[\"ngModel\"]},{kind:\"directive\",type:i7.NgForm,selector:\"form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]\",inputs:[\"ngFormOptions\"],outputs:[\"ngSubmit\"],exportAs:[\"ngForm\"]},{kind:\"ngmodule\",type:ReactiveFormsModule}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ModalUserLoginComponent,decorators:[{type:Component,args:[{standalone:!0,imports:[CommonModule,FormsModule,ReactiveFormsModule,IonCheckbox],selector:\"fm-modal-user-login\",template:'\\x3c!--登录弹出框设置--\\x3e\\n\\x3c!--背景灰色蒙版--\\x3e\\n<div\\n class=\"popup\"\\n [style.display]=\"authServ.isModalShow ? \\'block\\' : \\'none\\'\"\\n (click)=\"close()\"\\n>\\n <div class=\"popup-content\" (click)=\"$event.stopPropagation()\">\\n <div class=\"popup-box\">\\n \\x3c!--弹框内设置position:absolute,规范排版,后续只需position:relative增减内容--\\x3e\\n <div class=\"popup-box-content\">\\n <div class=\"logo-img-login\">\\n <img\\n [src]=\"authServ.logoUrl\"\\n alt=\"fmode\"\\n />\\n </div>\\n\\n \\x3c!--关闭图标按钮--\\x3e\\n <div class=\"close-icon-box\">\\n <div class=\"iconfont icon-shanchu2\" (click)=\"close()\"></div>\\n </div>\\n\\n \\x3c!--按钮切换登录方式--\\x3e\\n <div class=\"button-box\" *ngIf=\"authServ?.loginTypeCount>1\">\\n <div class=\"button-group\">\\n <button *ngIf=\"authServ?.loginOptions?.userpwd\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'账号密码\\'\"\\n (click)=\"setActiveButton(\\'账号密码\\')\"\\n >\\n 账号密码\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.mobilecode\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'短信验证\\'\"\\n (click)=\"setActiveButton(\\'短信验证\\')\"\\n >\\n 短信验证\\n </button>\\n <button *ngIf=\"authServ?.loginOptions?.wechat\"\\n class=\"login-select-button\"\\n [class.active]=\"authServ.activeButton === \\'微信扫码\\'\"\\n (click)=\"setActiveButton(\\'微信扫码\\')\"\\n >\\n 微信扫码\\n </button>\\n </div>\\n </div>\\n\\n \\x3c!--手机验证码--\\x3e\\n <form class=\"message-form\" [class.active]=\"authServ.activeButton === \\'短信验证\\'\" *ngIf=\"authServ?.loginOptions?.mobilecode\">\\n <div class=\"login-input-box\">\\n <div class=\"popup-input-frontnumber\">+86</div>\\n <input\\n class=\"popup-input-itemone\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"loginInfo.mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"12\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n <div *ngIf=\"authServ?.enabledLocalCode\"\\n class=\"login-input-box local-code\" #canvasDom>\\n <input\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n [(ngModel)]=\"localCodeNum\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"4\"\\n placeholder=\"请输入校验码\"\\n />\\n \\x3c!-- <canvas\\n #canvas\\n width=\"100\"\\n height=\"44\"\\n (click)=\"updateDrawCode()\"\\n class=\"canvas\"\\n ></canvas> --\\x3e\\n </div>\\n <div class=\"login-input-box\">\\n <input #smsCodeInput\\n class=\"popup-input-itemtwo\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入短信验证码\"\\n [(ngModel)]=\"loginInfo.code\"\\n (change)=\"smsAutoLogin()\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n maxlength=\"6\"\\n />\\n <button\\n class=\"checknumber-button\"\\n type=\"submit\"\\n [value]=\"buttonText\"\\n [disabled]=\"isCountingdown\"\\n (click)=\"startCountdown()\"\\n [class.active]=\"isCountingdown\"\\n >\\n {{buttonText}}\\n </button>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>未注册的手机号,将自动创建帐号并登录。</span>\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button class=\"login-submit-button\" type=\"submit\" (click)=\"login()\">\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--账号密码登录--\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'账号密码\\'\" *ngIf=\"authServ?.loginOptions?.userpwd\">\\n <div class=\"login-input-box\">\\n <input\\n maxlength=\"12\"\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n \\x3c!-- 记住密码 --\\x3e\\n <div class=\"passwprd-box\">\\n <div class=\"remember-password-box\">\\n <input type=\"checkbox\" id=\"remember-password\" />\\n 记住密码\\n </div>\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n <div class=\"password-forget\" (click)=\"setActiveButton(\\'注册帐号\\')\">\\n 注册帐号\\n </div>\\n </div>\\n\\n \\x3c!-- 用户协议 --\\x3e\\n <div class=\"rule-box\">\\n <span>\\n <input type=\"checkbox\" [(ngModel)]=\"isUserRuleChecked\" [ngModelOptions]=\"{ standalone: true }\" style=\"margin-right:5px\"/>\\n <span (click)=\"isUserRuleChecked=true\">同意</span></span>\\n <span (click)=\"isUserRuleChecked=true\">《用户协议及隐私条款》</span>\\n </div>\\n\\n\\n \\x3c!-- 忘记密码 --\\x3e\\n \\x3c!-- <div class=\"password-forget\">忘记密码?</div>\\n </div> --\\x3e\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"loginMobilePassword()\"\\n >\\n 登录\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!-- 帐号密码注册 --\\x3e\\n <form class=\"mobile-form\" [class.active]=\"authServ.activeButton === \\'注册帐号\\'\">\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"mobile\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"text\"\\n required=\"required\"\\n placeholder=\"请输入手机号\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-input-box\">\\n <input\\n [(ngModel)]=\"password2\"\\n [ngModelOptions]=\"{ standalone: true }\"\\n class=\"popup-input-itemnomal\"\\n type=\"password\"\\n required=\"required\"\\n placeholder=\"请再次输入密码\"\\n />\\n </div>\\n\\n <div class=\"login-submit-box\">\\n <button\\n class=\"login-submit-button\"\\n type=\"submit\"\\n (click)=\"signMobilePassword()\"\\n >\\n 注册\\n </button>\\n </div>\\n </form>\\n\\n \\x3c!--微信扫码登陆--\\x3e\\n <form class=\"wechat-form\" [class.active]=\"authServ.activeButton === \\'微信扫码\\'\" *ngIf=\"authServ?.loginOptions?.wechat\">\\n <div class=\"wechat-login-box\">\\n <img\\n class=\"login-erweima-img\"\\n [src]=\"authServ.wechatUrl\"\\n alt=\"微信扫码登陆二维码\"\\n />\\n </div>\\n <div class=\"wechat-explain\">使用微信扫一扫,扫码登录 \"飞码AI\"</div>\\n </form>\\n\\n \\x3c!--返回首页--\\x3e\\n <div class=\"back-home-box\" *ngIf=\"authServ.showBackHome\">\\n <button class=\"back-homepage-button\" (click)=\"goHome()\">\\n 返回首页\\n </button>\\n </div>\\n </div>\\n </div>\\n </div>\\n</div>\\n',styles:['@charset \"UTF-8\";:host{--fmode-color-primary: #0199f9;--fmode-background-primary: #FFF}:host-context(body.dark) .popup{--fmode-color-primary: #7974ff;--fmode-background-primary: #000000}:host-context(body.dark) .popup .remember-password-box{color:#fff}.popup{display:flex;position:fixed;left:0;top:0;width:100%;height:100%;background-color:#0006;z-index:10000}@media screen and (max-width: 800px){.popup-content .popup-box{position:fixed!important;left:0!important;top:0!important;height:100vh!important;width:100vw!important;border-radius:0!important}.popup-content .popup-box .popup-box-content{padding-top:35%;border-radius:50px!important}}.popup-content{margin:7% auto;display:flex;width:500px;height:600px;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .popup-box{width:500px;height:600px;position:relative;border-radius:50px 5px;background-color:#1e90ff;overflow:hidden}.popup-content .popup-box .popup-box-content{position:absolute;border-radius:50px 5px;inset:4px;background-color:var(--fmode-background-primary);z-index:1}.popup-content .popup-box .popup-box-content .logo-img-login{margin-top:35px;position:relative;width:100%;display:flex;justify-content:center;z-index:2}.popup-content .popup-box .popup-box-content .logo-img-login img{height:auto;max-width:150px}.popup-content .popup-box .popup-box-content .close-icon-box{position:relative;top:20px;right:20px;float:right;font-size:20px;cursor:pointer;z-index:2}.popup-content .popup-box .popup-box-content .button-box{display:flex;justify-content:center;padding-top:32px;padding-right:59px;padding-left:59px;border-radius:10px;width:100%;height:72px}.popup-content .popup-box .popup-box-content .button-box .button-group{position:relative;display:flex;width:100%;line-height:40px;border-radius:10px;background-color:plum;z-index:2}.popup-content .popup-box .popup-box-content .button-box .login-select-button{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#fff;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button:hover{flex:1;outline:none;border:none;border-radius:10px;font-size:16px;cursor:pointer;color:#000;background-color:inherit;transition:background-color .3s}.popup-content .popup-box .popup-box-content .button-box .login-select-button.active{background-color:var(--fmode-color-primary);border-radius:10px}.popup-content .popup-box .popup-box-content input{color:#000}.popup-content .popup-box .popup-box-content .message-form,.popup-content .popup-box .popup-box-content .mobile-form,.popup-content .popup-box .popup-box-content .wechat-form{display:none}.popup-content .popup-box .popup-box-content .message-form.active,.popup-content .popup-box .popup-box-content .mobile-form.active,.popup-content .popup-box .popup-box-content .wechat-form.active{display:block}.popup-content .popup-box:before{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#f902ff,#f902ff);transform-origin:bottom right;animation:animate 6s linear infinite}.popup-content .popup-box:after{content:\"\";position:absolute;top:-50%;left:-50%;width:500px;height:600px;background:linear-gradient(0deg,transparent,#00dbde,#00dbde);transform-origin:bottom right;animation:animate 6s linear infinite;animation-delay:-3s}@keyframes animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.popup-content .login-submit-box{position:relative}.popup-content .login-submit-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .login-submit-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .login-submit-button:hover{color:var(--fmode-color-primary)}.popup-content .login-submit-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .login-submit-button:active{transform:scale(.9)}.popup-content .message-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .message-form .login-input-box{display:flex;align-items:center;padding-top:10px}.popup-content .message-form .login-input-box .popup-input-frontnumber{padding:6px 12px;position:relative;border-radius:10px 0 0 10px;line-height:40px;font-size:18px;color:#4d4d4d;background-color:#ededed}.popup-content .message-form .popup-input-itemone{padding:6px 12px;position:relative;line-height:40px;border-radius:0 10px 10px 0;border:0;width:93%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .popup-input-itemtwo{padding:6px 12px 6px 16px;position:relative;line-height:40px;border-radius:10px;border:0;width:55%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .message-form .checknumber-button{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;color:#fff;background:var(--fmode-color-primary)}.popup-content .message-form .checknumber-button:hover{margin-left:46px;padding:6px;border-radius:10px;line-height:40px;font-size:18px;width:124px;border:none;outline:none;cursor:pointer;background:#4bace9}.popup-content .message-form .checknumber-button.active{background:#c7c7c7}.popup-content .mobile-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .mobile-form .login-input-box{padding-top:10px}.popup-content .mobile-form .login-input-box .popup-input-itemnomal{margin-top:20px;padding:6px 12px 6px 14px;position:relative;line-height:40px;border-radius:10px;border:0;width:100%;outline:none;box-shadow:none;font-size:18px;letter-spacing:.03em;background-color:#ededed;transition:.5s}.popup-content .mobile-form .rule-box{display:flex;padding-top:4px;padding-left:15px;padding-right:10px;justify-content:space-between;font-size:15px}.popup-content .mobile-form .rule-box span,.popup-content .mobile-form .rule-box ion-checkbox{font-size:15px;color:var(--fmode-color-primary)}.popup-content .mobile-form .passwprd-box{display:flex;padding-top:4px;justify-content:space-between}.popup-content .mobile-form .passwprd-box .remember-password-box{margin:10px 0 0 15px;font-size:15px}.popup-content .mobile-form .passwprd-box .password-forget{margin-top:10px;margin-right:15px;font-size:15px;color:gray;cursor:pointer}.popup-content .mobile-form .passwprd-box .password-forget:hover{margin-top:10px;margin-right:15px;font-size:15px;color:#000;cursor:pointer}.popup-content .wechat-form{padding:6px 55px;display:flex;position:relative;border-radius:50px 5px;background-color:var(--fmode-background-primary)}.popup-content .wechat-form .wechat-login-box{display:flex;justify-content:center}.popup-content .wechat-form .wechat-login-box .login-erweima-img{margin-top:30px;width:210px}.popup-content .wechat-form .wechat-explain{padding-top:20px;font-size:16px;text-align:center}.popup-content .back-home-box{display:flex;justify-content:center;padding:6px 55px}.popup-content .back-homepage-button{margin-top:15px;padding:6px;width:100%;line-height:40px;border-radius:10px;border:0;position:relative;box-shadow:0 2px 10px #00000029,0 3px 6px #0000001a;text-decoration:none;font-size:18px;font-weight:700;letter-spacing:2px;text-align:center;color:#fff;background-color:var(--fmode-color-primary);transition:.3s ease all;cursor:pointer;z-index:1}.popup-content .back-homepage-button:before{transition:.5s all ease;position:absolute;inset:0 50%;opacity:0;content:\"\";background-color:var(--fmode-background-primary);z-index:-1}.popup-content .back-homepage-button:hover{color:var(--fmode-color-primary)}.popup-content .back-homepage-button:hover:before{border-radius:10px;border:3px solid var(--fmode-color-primary);box-sizing:border-box;transition:.5s all ease;left:0;right:0;opacity:1}.popup-content .local-code{justify-content:space-between}.popup-content .local-code .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:44px}\\n']}]}],ctorParameters:()=>[{type:i4.NzMessageService},{type:AuthService},{type:i1$1.Router},{type:i1.HttpClient},{type:i2$3.ToastController}],propDecorators:{canvasDom:[{type:ViewChild,args:[\"canvasDom\"]}],smsCodeInput:[{type:ViewChild,args:[\"smsCodeInput\"]}],handleEscapeKey:[{type:HostListener,args:[\"document:keydown.escape\",[\"$event\"]]}]}});class CaptchaComponent{constructor(){this.type=\"input\",this.canvas_id=\"canvasCode\",this.drawCode=[],this.vCode=\"\",this.changeVal=new EventEmitter,this.onEnter=new EventEmitter,this.code=\"\"}ngOnInit(){}ngAfterViewInit(){this.updateDrawCode()}updateDrawCode(){let e=100,t=document.getElementById(this.canvas_id);t&&this.canvasDom.nativeElement.removeChild(t);let n=document.getElementById(this.canvas_id+\"_a\");n&&this.canvasDom.nativeElement.removeChild(n),this.canvasDom.nativeElement;let o=document.createElement(\"canvas\");o.className=\"canvas\",o.setAttribute(\"id\",this.canvas_id),o.addEventListener(\"click\",(()=>{this.updateDrawCode()}));let i=o.getContext(\"2d\");o.width=e,o.height=38;let a=\"A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m\".split(\",\"),r=a.length;for(let e=0;e<=3;e++){let t=Math.floor(Math.random()*r),n=30*Math.random()*Math.PI/180,o=a[t];this.drawCode[e]=o;let s=10+20*e,l=20+8*Math.random();i.font=\"bold 23px 微软雅黑\",i.translate(s,l),i.rotate(n),i.fillStyle=this.randomColor(),i.fillText(o,0,0),i.rotate(-n),i.translate(-s,-l)}for(let t=0;t<=5;t++)i.strokeStyle=this.randomColor(),i.beginPath(),i.moveTo(Math.random()*e,38*Math.random()),i.lineTo(Math.random()*e,38*Math.random()),i.stroke();for(let t=0;t<=30;t++){i.strokeStyle=this.randomColor(),i.beginPath();let t=Math.random()*e,n=38*Math.random();i.moveTo(t,n),i.lineTo(t+1,n+1),i.stroke()}this.code=this.drawCode.join(\"\"),this.changeVal.emit({code:this.code,vCode:this.vCode}),this.canvasDom.nativeElement.appendChild(o);let s=document.createElement(\"a\");s.setAttribute(\"id\",this.canvas_id+\"_a\"),s.innerText=\"看不清,换一张\",s.addEventListener(\"click\",(()=>{this.updateDrawCode()})),this.canvasDom.nativeElement.appendChild(s)}randomColor(){return\"rgb(\"+Math.floor(256*Math.random())+\",\"+Math.floor(256*Math.random())+\",\"+Math.floor(256*Math.random())+\")\"}enter(e){13==e.keyCode&&(this.changeVal.emit({code:this.code,vCode:this.vCode}),this.onEnter.emit())}onChange(){this.changeVal.emit({code:this.code,vCode:this.vCode})}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CaptchaComponent,deps:[],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:CaptchaComponent,isStandalone:!0,selector:\"fm-captcha\",inputs:{type:\"type\",canvas_id:\"canvas_id\",drawCode:\"drawCode\",vCode:\"vCode\"},outputs:{changeVal:\"changeVal\",onEnter:\"onEnter\"},viewQueries:[{propertyName:\"canvasDom\",first:!0,predicate:[\"canvasDom\"],descendants:!0}],ngImport:i0,template:'<ng-container *ngIf=\"type == \\'input\\'; else elseTemplate\">\\n <div class=\"captcha\">\\n <input\\n nz-input\\n class=\"code-input\"\\n type=\"text\"\\n [(ngModel)]=\"vCode\"\\n maxlength=\"4\"\\n placeholder=\"验证码\"\\n [nzStatus]=\"vCode.length == 4 ? \\'\\' : \\'error\\'\"\\n (keydown)=\"enter($event)\"\\n (change)=\"onChange()\"\\n />\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"captcha\">\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-template>\\n',styles:[\".code-card{display:flex;align-items:center}.code-card .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:38px}.code-input{width:90px;padding:4px;height:38px;border:1px solid #cdcdcd}.code-input:focus{outline:1px solid #40a9ff}.captcha{display:flex;align-items:center}\\n\"],dependencies:[{kind:\"ngmodule\",type:CommonModule},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"ngmodule\",type:FormsModule},{kind:\"directive\",type:i7.DefaultValueAccessor,selector:\"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\"},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.MaxLengthValidator,selector:\"[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]\",inputs:[\"maxlength\"]},{kind:\"directive\",type:i7.NgModel,selector:\"[ngModel]:not([formControlName]):not([formControl])\",inputs:[\"name\",\"disabled\",\"ngModel\",\"ngModelOptions\"],outputs:[\"ngModelChange\"],exportAs:[\"ngModel\"]}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:CaptchaComponent,decorators:[{type:Component,args:[{imports:[CommonModule,FormsModule],standalone:!0,selector:\"fm-captcha\",template:'<ng-container *ngIf=\"type == \\'input\\'; else elseTemplate\">\\n <div class=\"captcha\">\\n <input\\n nz-input\\n class=\"code-input\"\\n type=\"text\"\\n [(ngModel)]=\"vCode\"\\n maxlength=\"4\"\\n placeholder=\"验证码\"\\n [nzStatus]=\"vCode.length == 4 ? \\'\\' : \\'error\\'\"\\n (keydown)=\"enter($event)\"\\n (change)=\"onChange()\"\\n />\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"captcha\">\\n <div class=\"code-card\" #canvasDom></div>\\n </div>\\n</ng-template>\\n',styles:[\".code-card{display:flex;align-items:center}.code-card .canvas{border:1px solid #c2def5;border-radius:5px;width:100px;height:38px}.code-input{width:90px;padding:4px;height:38px;border:1px solid #cdcdcd}.code-input:focus{outline:1px solid #40a9ff}.captcha{display:flex;align-items:center}\\n\"]}]}],ctorParameters:()=>[],propDecorators:{canvasDom:[{type:ViewChild,args:[\"canvasDom\"]}],type:[{type:Input}],canvas_id:[{type:Input}],drawCode:[{type:Input}],vCode:[{type:Input}],changeVal:[{type:Output}],onEnter:[{type:Output}]}});class UserNamePipe{transform(e,...t){let n=e;if(n?.mobile||(n=e?.toJSON()),console.log(n),n?.nickname)return n?.nickname;let o=n?.name;if(o)return o.substr(0,1)+\"*\".repeat(o?.length-1);let i=n?.mobile;return i?i.substr(0,3)+\"*\".repeat(i?.length-6)+i.substr(i?.length-3):\"\"}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UserNamePipe,deps:[],target:i0.ɵɵFactoryTarget.Pipe})}static{this.ɵpipe=i0.ɵɵngDeclarePipe({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:UserNamePipe,name:\"userName\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UserNamePipe,decorators:[{type:Pipe,args:[{name:\"userName\"}]}]});const UserRoutes=[{path:\"login\",component:LoginComponent,runGuardsAndResolvers:\"always\"},{path:\":companyId/login\",component:LoginComponent,runGuardsAndResolvers:\"always\"},{path:\"app/:appId/login\",component:LoginComponent,runGuardsAndResolvers:\"always\"}];class UserModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UserModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:UserModule,declarations:[LoginComponent,UserNamePipe],imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,i1$1.RouterModule,NzInputModule,NzButtonModule,NzModalModule,NzRadioModule,NzSpinModule,NzTabsModule,NzFormModule,NzMessageModule,ModalUserLoginComponent,CaptchaComponent],exports:[LoginComponent,ModalUserLoginComponent,UserNamePipe,CaptchaComponent]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UserModule,imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,RouterModule.forChild(UserRoutes),NzInputModule,NzButtonModule,NzModalModule,NzRadioModule,NzSpinModule,NzTabsModule,NzFormModule,NzMessageModule,ModalUserLoginComponent,CaptchaComponent]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:UserModule,decorators:[{type:NgModule,args:[{declarations:[LoginComponent,UserNamePipe],imports:[CommonModule,FormsModule,HttpClientModule,ReactiveFormsModule,RouterModule.forChild(UserRoutes),NzInputModule,NzButtonModule,NzModalModule,NzRadioModule,NzSpinModule,NzTabsModule,NzFormModule,NzMessageModule,ModalUserLoginComponent,CaptchaComponent],exports:[LoginComponent,ModalUserLoginComponent,UserNamePipe,CaptchaComponent]}]}]});class StaffModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffModule,imports:[CommonModule]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffModule,imports:[CommonModule]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffModule,decorators:[{type:NgModule,args:[{declarations:[],imports:[CommonModule]}]}]});class StaffService{constructor(e){this.router=e,this.isPeiZhu=!1,this.checkIsPeiZhu()}async checkStaff(){if(this.staff?.id||(this.staff=await this.loadStaffByUser()),this.staff?.id)return!0;console.log(this.staff);let e=this.redirectURL;return e&&(e=encodeURIComponent(e)),e=e||\"/store/home\",this.router.navigate([e]),!1}async loadStaffByUser(e=!1){let t=Parse__default.User.current();if(!t?.id)return;let n=localStorage.getItem(\"staffid\");e&&(n=null);let o,i=new Parse__default.Query(\"UserStaff\");return i.include(\"job\",\"shopStore\"),n&&(i.equalTo(\"objectId\",n),o=await i.first()),o?.id||(i.equalTo(\"user\",t?.id),o=await i.first()),o?.id&&localStorage.setItem(\"staffid\",o?.id),e&&(this.realStaff=o),o}async checkIsPeiZhu(){this.realStaff||(this.realStaff=await this.loadStaffByUser(!0)),\"配件助理\"!=this.realStaff?.get(\"job\")?.get(\"title\")?this.isPeiZhu=!1:this.isPeiZhu=!0}peizhuJob(e){return!this.isPeiZhu||!!(this.isPeiZhu&&e.jobs?.indexOf(\"配件助理\")>-1)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffService,deps:[{token:i1$1.Router}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:StaffService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1$1.Router}]});class AuthStaffGuard{constructor(e){this.staffServ=e}canActivate(e,t){return this.staffServ.checkStaff()}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthStaffGuard,deps:[{token:StaffService}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthStaffGuard,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthStaffGuard,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:StaffService}]});class AuthProfileService{get profileId(){return this._profileId?this._profileId:localStorage.getItem(\"Parse/ProfileId\")}set profileId(e){this._profileId=e,localStorage.setItem(\"Parse/ProfileId\",e)}get profilePointer(){return{__type:\"Pointer\",className:\"Profile\",objectId:this.companyId}}get companyId(){return this._companyId?this._companyId:localStorage.getItem(\"Parse/CompanyId\")}set companyId(e){this._companyId=e,localStorage.setItem(\"Parse/CompanyId\",e)}get companyPointer(){return{__type:\"Pointer\",className:\"company\",objectId:this.companyId}}get user(){return this._user||Parse__default.User.current()}set user(e){this._user=e}constructor(e){this.router=e,this.user=Parse__default.User.current()}async getProfile(){if(this.profile?.id)return this.profile;if(this.profileId){let e=new Parse__default.Query(\"Profile\");return e.include(\"company\"),this.profile=await e.get(this.profileId),this.profile}return this.profile}async bindProfile(e){this.profile=e,this.profileId=e.id,e?.get(\"company\")?.id&&(this.companyId=e?.get(\"company\")?.id),console.log(e,this.user),this.profile.set(\"user\",this.user?.toPointer()),await this.profile.save(),console.log(localStorage.getItem(\"homePath\")),console.log(e?.get(\"company\")?.get(\"rootPage\"));let t=localStorage.getItem(\"homePath\")||e?.get(\"company\")?.get(\"rootPage\")||this.redirectUrl||\"/\";t=decodeURIComponent(t),this.router.navigate([t])}async checkProfile(e){let t=this.profile;if(t?.id)return this.setCurrentProfileLocalStorage(t),!0;if(this.profileId){let e=new Parse__default.Query(\"Profile\");return e.include(\"company\"),t=await e.get(this.profileId),t?.id&&(this.profile=t,this.setCurrentProfileLocalStorage(t)),!0}return this.redirectUrl=e,this.router.navigate([\"/profile/bind\"]),!1}async setCurrentProfileLocalStorage(e){let t=Parse__default.Query.fromJSON(\"Department\",{where:{$or:[{leader:e.toPointer()}]}});(await t.find()).forEach((e=>{e?.id&&(this.isManager=!0,this.isLeader=!0)}))}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileService,deps:[{token:i1$1.Router}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileService,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileService,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:i1$1.Router}]});class AuthProfileGuard{constructor(e,t){this.authProfileServ=e,this.router=t}canActivate(e,t){let n=t.url;return this.authProfileServ.checkProfile(n)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileGuard,deps:[{token:AuthProfileService},{token:i1$1.Router}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileGuard,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthProfileGuard,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:AuthProfileService},{type:i1$1.Router}]});class ProfileBindComponent{onResize(){this.cross.onResizeScreen()}constructor(e,t,n,o,i){this.authProfile=e,this.router=t,this.modal=n,this.message=o,this.cross=i,this.pdata={name:null,mobile:null},this.now=new Date,this.isVisible=!1,this.profile=this.authProfile.profile,this.currentProfile=localStorage.getItem(\"Parse/ProfileId\"),this.user=Parse__default.User.current(),this.loadProfiles()}async loadProfiles(){let e=new Parse__default.Query(\"Profile\");e.include(\"company\"),e.notEqualTo(\"isDeleted\",!0),this.profile?.id?(e.equalTo(\"mobile\",this.profile.get(\"mobile\")),e.equalTo(\"name\",this.profile.get(\"name\"))):e.equalTo(\"user\",this.user.id),this.profileList=await e.find()}bindProfile(e){e?.id||(e=this.profileSearched),e?.id&&(this.isVisible=!1,this.authProfile.bindProfile(e))}async searchProfile(){if(this.profileList=[],!this.pdata.name||!this.pdata.mobile)return void this.message.warning(\"请填写完成信息,以查询您的身份。\");let e=new Parse__default.Query(\"Profile\");e.include(\"company\"),e.equalTo(\"name\",this.pdata.name),e.equalTo(\"mobile\",this.pdata.mobile),this.profileList=await e.find(),this.profileList?.length<1&&this.message.warning(\"该身份不存在,无法绑定!\")}selectProfile(e){e?.id&&(this.profileSearched=e,this.isVisible=!0)}goProfileManage(){this.router.navigate([\"/common/manage/Profile\",{rid:\"x6xybaLWIC\"}])}onShowModal(){this.modal.create({nzTitle:\"<div>团队成员管理</div>\",nzContent:\"<b>您是企业管理员,可进入添加团队成员身份</b>\",nzOnOk:()=>this.goProfileManage()})}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileBindComponent,deps:[{token:AuthProfileService},{token:i1$1.Router},{token:i3$1.NzModalService},{token:i4.NzMessageService},{token:CrossService}],target:i0.ɵɵFactoryTarget.Component})}static{this.ɵcmp=i0.ɵɵngDeclareComponent({minVersion:\"14.0.0\",version:\"17.3.12\",type:ProfileBindComponent,selector:\"fm-profile-bind\",host:{listeners:{\"window:resize\":\"onResize($event)\"}},ngImport:i0,template:'<ng-container\\n *ngIf=\"cross?.navMenuType == \\'mobile\\'; else elseTemplate\"\\n>\\n <ion-content>\\n <div class=\"tips-block\">\\n <img src=\"https://file-cloud.fmode.cn/CCuWCEM24z/20231213/45hm71034653179.png\" alt=\"\" />\\n <div>请使用电脑浏览器打开</div>\\n </div>\\n </ion-content>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"profile-page\">\\n <div class=\"title\">企业项目管理系统</div>\\n <div class=\"date\">\\n {{ now | date : \"yyyy年MM月dd日\" }}\\n <div\\n class=\"com-tips\"\\n *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\"\\n (click)=\"onShowModal()\"\\n >\\n <span nz-icon nzType=\"user\" nzTheme=\"outline\"></span>\\n <div class=\"com-title\">企业管理员</div>\\n </div>\\n </div>\\n <ng-container *ngIf=\"profileList?.length > 0; else elseTemplate\">\\n <h2>\\n 欢迎您:{{\\n profile?.get(\"name\") ||\\n this.profileList[0]?.get(\"name\") ||\\n user?.get(\"nickname\") ||\\n user?.get(\"name\") ||\\n user?.get(\"username\")\\n }},请选择您的企业身份:\\n </h2>\\n </ng-container>\\n <ng-template #elseTemplate>\\n <h2>您还未绑定企业,请先联系管理员绑定!</h2>\\n </ng-template>\\n\\n <ng-container *ngIf=\"profileList?.length > 0\">\\n <div class=\"com-list\">\\n <div\\n class=\"com-li\"\\n *ngFor=\"let p of profileList\"\\n [ngClass]=\"{ \\'active-radio\\': currentProfile == p.id }\"\\n (click)=\"selectProfile(p)\"\\n >\\n <div class=\"com-name\">\\n <span nz-icon nzType=\"signal\" nzTheme=\"fill\"></span>\\n {{ p.get(\"name\") }} @ 企业\\n {{\\n p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\")\\n }}\\n </div>\\n <span\\n nz-icon\\n nzType=\"check\"\\n nzTheme=\"outline\"\\n *ngIf=\"currentProfile == p.id\"\\n ></span>\\n \\x3c!-- <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button> --\\x3e\\n </div>\\n </div>\\n \\x3c!-- <ul>\\n <li *ngFor=\"let p of profileList\">\\n {{ p.get(\"name\") }} @ 企业\\n {{ p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\") }}\\n <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button>\\n </li>\\n </ul> --\\x3e\\n </ng-container>\\n <div class=\"tips\">\\n <span nz-icon nzType=\"exclamation-circle\" nzTheme=\"outline\"></span>\\n 若无帐套信息,请输入企业身份验证绑定\\n </div>\\n <div>\\n <div class=\"user-input\">\\n <nz-input-group [nzPrefix]=\"prefixTemplateUser\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.name\"\\n nz-input\\n placeholder=\"请输入您的姓名\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateUser\\n ><span nz-icon nzType=\"user\"></span\\n ></ng-template>\\n <br />\\n <br />\\n <nz-input-group [nzPrefix]=\"prefixTemplateMobile\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.mobile\"\\n nz-input\\n placeholder=\"请输入您手机号\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateMobile\\n ><span nz-icon nzType=\"mobile\" nzTheme=\"outline\"></span\\n ></ng-template>\\n </div>\\n <button\\n nz-button\\n nzType=\"primary\"\\n [nzSize]=\"\\'large\\'\"\\n (click)=\"searchProfile()\"\\n nzBlock\\n >\\n 查询身份\\n </button>\\n <nz-modal\\n [(nzVisible)]=\"isVisible\"\\n nzTitle=\"绑定身份\"\\n (nzOnCancel)=\"isVisible = false\"\\n (nzOnOk)=\"bindProfile()\"\\n >\\n <ng-container *nzModalContent>\\n <p>您确认绑定并切换至该身份吗?</p>\\n <p>姓名:{{ profileSearched.get(\"name\") }}</p>\\n <p>\\n 帐套:{{\\n profileSearched?.get(\"company\")?.get(\"name\") ||\\n profileSearched?.get(\"company\")?.get(\"title\")\\n }}\\n </p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n\\n \\x3c!-- <ng-container *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\">\\n <h2>您是企业管理员,可进入添加团队成员身份:</h2>\\n <button\\n nz-button\\n nzType=\"primary\"\\n nzDanger=\"true\"\\n (click)=\"goProfileManage()\"\\n >\\n 团队成员管理\\n </button>\\n </ng-container> --\\x3e\\n </div>\\n</ng-template>\\n',styles:[\".profile-page{width:400px;margin:60px auto;font-family:auto}.profile-page .title{font-size:24px;font-weight:700;text-align:center;margin-bottom:40px}.profile-page .date{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-page .date .com-tips{display:flex;align-items:center;border-bottom:1px solid;color:#1890ff;cursor:pointer}.profile-page .date .com-tips .com-title{padding-left:4px}.profile-page h2{font-family:auto}.profile-page .com-list{display:flex;flex-wrap:wrap;margin:20px auto}.profile-page .com-list .com-li{margin-right:6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;min-width:200px;background:#fbfbfb;padding:6px 10px;border-radius:4px;cursor:pointer}.profile-page .com-list .com-li .com-name{display:flex;align-items:center;margin-right:20px}.profile-page .com-list .com-li .com-name span{margin-right:10px}.profile-page .com-list .com-li:hover{background:#edf7ff}.profile-page .com-list .active-radio{color:#1890ff;font-weight:700}.profile-page .tips{font-size:16px;color:#999;font-family:auto}.profile-page .user-input{margin:20px auto 40px}.tips-block{margin-top:60px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.tips-block img{width:220px;margin-bottom:10px}\\n\"],dependencies:[{kind:\"directive\",type:i2$2.NgClass,selector:\"[ngClass]\",inputs:[\"class\",\"ngClass\"]},{kind:\"directive\",type:i2$2.NgForOf,selector:\"[ngFor][ngForOf]\",inputs:[\"ngForOf\",\"ngForTrackBy\",\"ngForTemplate\"]},{kind:\"directive\",type:i2$2.NgIf,selector:\"[ngIf]\",inputs:[\"ngIf\",\"ngIfThen\",\"ngIfElse\"]},{kind:\"directive\",type:i7.DefaultValueAccessor,selector:\"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\"},{kind:\"directive\",type:i7.NgControlStatus,selector:\"[formControlName],[ngModel],[formControl]\"},{kind:\"directive\",type:i7.NgModel,selector:\"[ngModel]:not([formControlName]):not([formControl])\",inputs:[\"name\",\"disabled\",\"ngModel\",\"ngModelOptions\"],outputs:[\"ngModelChange\"],exportAs:[\"ngModel\"]},{kind:\"directive\",type:i8.NzInputDirective,selector:\"input[nz-input],textarea[nz-input]\",inputs:[\"nzBorderless\",\"nzSize\",\"nzStepperless\",\"nzStatus\",\"disabled\"],exportAs:[\"nzInput\"]},{kind:\"component\",type:i8.NzInputGroupComponent,selector:\"nz-input-group\",inputs:[\"nzAddOnBeforeIcon\",\"nzAddOnAfterIcon\",\"nzPrefixIcon\",\"nzSuffixIcon\",\"nzAddOnBefore\",\"nzAddOnAfter\",\"nzPrefix\",\"nzStatus\",\"nzSuffix\",\"nzSize\",\"nzSearch\",\"nzCompact\"],exportAs:[\"nzInputGroup\"]},{kind:\"directive\",type:i8.NzInputGroupWhitSuffixOrPrefixDirective,selector:\"nz-input-group[nzSuffix], nz-input-group[nzPrefix]\"},{kind:\"component\",type:i9.NzButtonComponent,selector:\"button[nz-button], a[nz-button]\",inputs:[\"nzBlock\",\"nzGhost\",\"nzSearch\",\"nzLoading\",\"nzDanger\",\"disabled\",\"tabIndex\",\"nzType\",\"nzShape\",\"nzSize\"],exportAs:[\"nzButton\"]},{kind:\"directive\",type:i10.ɵNzTransitionPatchDirective,selector:\"[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group\",inputs:[\"hidden\"]},{kind:\"directive\",type:i11.NzWaveDirective,selector:'[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])',inputs:[\"nzWaveExtraNode\"],exportAs:[\"nzWave\"]},{kind:\"component\",type:i3$1.NzModalComponent,selector:\"nz-modal\",inputs:[\"nzMask\",\"nzMaskClosable\",\"nzCloseOnNavigation\",\"nzVisible\",\"nzClosable\",\"nzOkLoading\",\"nzOkDisabled\",\"nzCancelDisabled\",\"nzCancelLoading\",\"nzKeyboard\",\"nzNoAnimation\",\"nzCentered\",\"nzDraggable\",\"nzContent\",\"nzFooter\",\"nzZIndex\",\"nzWidth\",\"nzWrapClassName\",\"nzClassName\",\"nzStyle\",\"nzTitle\",\"nzCloseIcon\",\"nzMaskStyle\",\"nzBodyStyle\",\"nzOkText\",\"nzCancelText\",\"nzOkType\",\"nzOkDanger\",\"nzIconType\",\"nzModalType\",\"nzAutofocus\",\"nzOnOk\",\"nzOnCancel\"],outputs:[\"nzOnOk\",\"nzOnCancel\",\"nzAfterOpen\",\"nzAfterClose\",\"nzVisibleChange\"],exportAs:[\"nzModal\"]},{kind:\"directive\",type:i3$1.NzModalContentDirective,selector:\"[nzModalContent]\",exportAs:[\"nzModalContent\"]},{kind:\"directive\",type:i5.NzIconDirective,selector:\"[nz-icon]\",inputs:[\"nzSpin\",\"nzRotate\",\"nzType\",\"nzTheme\",\"nzTwotoneColor\",\"nzIconfont\"],exportAs:[\"nzIcon\"]},{kind:\"pipe\",type:i2$2.DatePipe,name:\"date\"}]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileBindComponent,decorators:[{type:Component,args:[{selector:\"fm-profile-bind\",template:'<ng-container\\n *ngIf=\"cross?.navMenuType == \\'mobile\\'; else elseTemplate\"\\n>\\n <ion-content>\\n <div class=\"tips-block\">\\n <img src=\"https://file-cloud.fmode.cn/CCuWCEM24z/20231213/45hm71034653179.png\" alt=\"\" />\\n <div>请使用电脑浏览器打开</div>\\n </div>\\n </ion-content>\\n</ng-container>\\n<ng-template #elseTemplate>\\n <div class=\"profile-page\">\\n <div class=\"title\">企业项目管理系统</div>\\n <div class=\"date\">\\n {{ now | date : \"yyyy年MM月dd日\" }}\\n <div\\n class=\"com-tips\"\\n *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\"\\n (click)=\"onShowModal()\"\\n >\\n <span nz-icon nzType=\"user\" nzTheme=\"outline\"></span>\\n <div class=\"com-title\">企业管理员</div>\\n </div>\\n </div>\\n <ng-container *ngIf=\"profileList?.length > 0; else elseTemplate\">\\n <h2>\\n 欢迎您:{{\\n profile?.get(\"name\") ||\\n this.profileList[0]?.get(\"name\") ||\\n user?.get(\"nickname\") ||\\n user?.get(\"name\") ||\\n user?.get(\"username\")\\n }},请选择您的企业身份:\\n </h2>\\n </ng-container>\\n <ng-template #elseTemplate>\\n <h2>您还未绑定企业,请先联系管理员绑定!</h2>\\n </ng-template>\\n\\n <ng-container *ngIf=\"profileList?.length > 0\">\\n <div class=\"com-list\">\\n <div\\n class=\"com-li\"\\n *ngFor=\"let p of profileList\"\\n [ngClass]=\"{ \\'active-radio\\': currentProfile == p.id }\"\\n (click)=\"selectProfile(p)\"\\n >\\n <div class=\"com-name\">\\n <span nz-icon nzType=\"signal\" nzTheme=\"fill\"></span>\\n {{ p.get(\"name\") }} @ 企业\\n {{\\n p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\")\\n }}\\n </div>\\n <span\\n nz-icon\\n nzType=\"check\"\\n nzTheme=\"outline\"\\n *ngIf=\"currentProfile == p.id\"\\n ></span>\\n \\x3c!-- <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button> --\\x3e\\n </div>\\n </div>\\n \\x3c!-- <ul>\\n <li *ngFor=\"let p of profileList\">\\n {{ p.get(\"name\") }} @ 企业\\n {{ p.get(\"company\")?.get(\"name\") || p.get(\"company\")?.get(\"title\") }}\\n <button nz-button nzType=\"primary\" (click)=\"selectProfile(p)\">\\n 进入\\n </button>\\n </li>\\n </ul> --\\x3e\\n </ng-container>\\n <div class=\"tips\">\\n <span nz-icon nzType=\"exclamation-circle\" nzTheme=\"outline\"></span>\\n 若无帐套信息,请输入企业身份验证绑定\\n </div>\\n <div>\\n <div class=\"user-input\">\\n <nz-input-group [nzPrefix]=\"prefixTemplateUser\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.name\"\\n nz-input\\n placeholder=\"请输入您的姓名\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateUser\\n ><span nz-icon nzType=\"user\"></span\\n ></ng-template>\\n <br />\\n <br />\\n <nz-input-group [nzPrefix]=\"prefixTemplateMobile\">\\n <input\\n type=\"text\"\\n [(ngModel)]=\"pdata.mobile\"\\n nz-input\\n placeholder=\"请输入您手机号\"\\n />\\n </nz-input-group>\\n <ng-template #prefixTemplateMobile\\n ><span nz-icon nzType=\"mobile\" nzTheme=\"outline\"></span\\n ></ng-template>\\n </div>\\n <button\\n nz-button\\n nzType=\"primary\"\\n [nzSize]=\"\\'large\\'\"\\n (click)=\"searchProfile()\"\\n nzBlock\\n >\\n 查询身份\\n </button>\\n <nz-modal\\n [(nzVisible)]=\"isVisible\"\\n nzTitle=\"绑定身份\"\\n (nzOnCancel)=\"isVisible = false\"\\n (nzOnOk)=\"bindProfile()\"\\n >\\n <ng-container *nzModalContent>\\n <p>您确认绑定并切换至该身份吗?</p>\\n <p>姓名:{{ profileSearched.get(\"name\") }}</p>\\n <p>\\n 帐套:{{\\n profileSearched?.get(\"company\")?.get(\"name\") ||\\n profileSearched?.get(\"company\")?.get(\"title\")\\n }}\\n </p>\\n </ng-container>\\n </nz-modal>\\n </div>\\n\\n \\x3c!-- <ng-container *ngIf=\"user?.get(\\'type\\') == \\'admin\\'\">\\n <h2>您是企业管理员,可进入添加团队成员身份:</h2>\\n <button\\n nz-button\\n nzType=\"primary\"\\n nzDanger=\"true\"\\n (click)=\"goProfileManage()\"\\n >\\n 团队成员管理\\n </button>\\n </ng-container> --\\x3e\\n </div>\\n</ng-template>\\n',styles:[\".profile-page{width:400px;margin:60px auto;font-family:auto}.profile-page .title{font-size:24px;font-weight:700;text-align:center;margin-bottom:40px}.profile-page .date{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.profile-page .date .com-tips{display:flex;align-items:center;border-bottom:1px solid;color:#1890ff;cursor:pointer}.profile-page .date .com-tips .com-title{padding-left:4px}.profile-page h2{font-family:auto}.profile-page .com-list{display:flex;flex-wrap:wrap;margin:20px auto}.profile-page .com-list .com-li{margin-right:6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;min-width:200px;background:#fbfbfb;padding:6px 10px;border-radius:4px;cursor:pointer}.profile-page .com-list .com-li .com-name{display:flex;align-items:center;margin-right:20px}.profile-page .com-list .com-li .com-name span{margin-right:10px}.profile-page .com-list .com-li:hover{background:#edf7ff}.profile-page .com-list .active-radio{color:#1890ff;font-weight:700}.profile-page .tips{font-size:16px;color:#999;font-family:auto}.profile-page .user-input{margin:20px auto 40px}.tips-block{margin-top:60px;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.tips-block img{width:220px;margin-bottom:10px}\\n\"]}]}],ctorParameters:()=>[{type:AuthProfileService},{type:i1$1.Router},{type:i3$1.NzModalService},{type:i4.NzMessageService},{type:CrossService}],propDecorators:{onResize:[{type:HostListener,args:[\"window:resize\",[\"$event\"]]}]}});class AuthPcuserGuard{constructor(e,t){this.authService=e,this.router=t}canActivate(e,t){let n=t.url;return this.authService.redirectUrl=n,this.authService.checkLogin(n)}static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthPcuserGuard,deps:[{token:AuthService},{token:i1$1.Router}],target:i0.ɵɵFactoryTarget.Injectable})}static{this.ɵprov=i0.ɵɵngDeclareInjectable({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthPcuserGuard,providedIn:\"root\"})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:AuthPcuserGuard,decorators:[{type:Injectable,args:[{providedIn:\"root\"}]}],ctorParameters:()=>[{type:AuthService},{type:i1$1.Router}]});const ProfileRoutes=[{path:\"bind\",canActivate:[AuthPcuserGuard],component:ProfileBindComponent,runGuardsAndResolvers:\"always\"}];class ProfileModule{static{this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileModule,deps:[],target:i0.ɵɵFactoryTarget.NgModule})}static{this.ɵmod=i0.ɵɵngDeclareNgModule({minVersion:\"14.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileModule,declarations:[ProfileBindComponent],imports:[CommonModule,FormsModule,i1$1.RouterModule,NzInputModule,NzButtonModule,NzModalModule,NzMessageModule,NzIconModule]})}static{this.ɵinj=i0.ɵɵngDeclareInjector({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileModule,imports:[CommonModule,FormsModule,RouterModule.forChild(ProfileRoutes),NzInputModule,NzButtonModule,NzModalModule,NzMessageModule,NzIconModule]})}}i0.ɵɵngDeclareClassMetadata({minVersion:\"12.0.0\",version:\"17.3.12\",ngImport:i0,type:ProfileModule,decorators:[{type:NgModule,args:[{declarations:[ProfileBindComponent],imports:[CommonModule,FormsModule,RouterModule.forChild(ProfileRoutes),NzInputModule,NzButtonModule,NzModalModule,NzMessageModule,NzIconModule]}]}]});export{AccountService,AgentPrompt,AudioPlayer,AuthPcuserGuard,AuthProfileGuard,AuthProfileService,AuthService,AuthStaffGuard,AvatarModule,AvatarRoutes,CaptchaComponent,ChatContentPipe,ChatListComponent,ChatPanelComponent,ChatService,ClipboardService,CompAvatarParticleComponent,CompAvatarRoleImageComponent,CompAvatarRoleVideoComponent,CompAvatarTalkComponent,CompPoiPickerComponent,CompPoiPickerModule,CompRolePromptComponent,CompUserAvatarComponent,CrossService,DurationStrPipe,FmChatHeaderArea,FmChatMessageCard,FmChatMesssageArea,FmChatModalInput,FmVideoComponent,FmaiService,FmodeChat,FmodeChatCompletion,FmodeMapModule,FmodeStorgeModule,FmodeVoiceService,HidexmlPipe,HwobsManagerComponent,HwobsService,ImagineService,ImagineWork,LoginComponent,MASK_LIST,MarkdownMathJax,MarkdownParse,MarkdownPreviewComponent,MarkdownPreviewModule,ModalChatVoiceInputComponent,ModalUserLoginComponent,NovaCloudService,NovaUploadService,ProfileBindComponent,ProfileModule,ProfileRoutes,StaffModule,StaffService,UserModule,UserNamePipe,UserRoutes,UtilnowPipe,WechatJssdkService,apig,drawDalle,getMessageContentText,getMessageImageUrl,ncloudApi,novaql};\nvar MODULE_PATH_NEED = `6K+l5paH5Lu25piv5pys6aG555uu55qE5LiA6YOo5YiGIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBDb21wb25lbnRzIGluIEZtb2RlIEluYy4KICAgIOeJiOadg+aJgOaciSDCqSDmnKrmnaXpo57pqawgwqkg5rGf6KW/6ISR5o6n56eR5oqA5pyJ6ZmQ5YWs5Y+4IENvcHlyaWdodCDCqSBGbW9kZSBUZWNobm9sb2d5IENvLiwgTHRkLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCiAgICDkuKXnpoHlnKjmnKrnu4/mjojmnYPnmoTmg4XlhrXkuIvvvIzpgJrov4fku7vkvZXlqpLku4vlpI3liLbmraTmlofku7YgVW5hdXRob3JpemVkIGNvcHlpbmcgb2YgdGhpcyBmaWxlLCB2aWEgYW55IG1lZGl1bSBpcyBzdHJpY3RseSBwcm9oaWJpdGVkCiAgICDor6Xmlofku7bmmK/kuJPmnInnmoTmnLrlr4bmlofku7YgUHJvcHJpZXRhcnkgYW5kIGNvbmZpZGVudGlhbAogICAKICAgIENvcHlyaWdodCAyMDIxLW5vdyBGbW9kZSBJbmMuIHN1cHBvcnRAZm1vZGUuY24uIDE4NjA3MDA3MDczLgogICAg5L+d55WZ5omA5pyJ5p2D5YipIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgogICAgUEFUSDovaG9tZS9yeWFuL3dvcmtzcGFjZS9ub3ZhL25vdmEtYWRtaW4vZGlzdC9mbW9kZS1uZy9mZXNtMjAyMi9mbW9kZS1uZy5tanM=`\n \n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|