inl-ui 0.1.14 → 0.1.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,6 @@ var qiankun = require('qiankun');
14
14
  require('vite-plugin-qiankun');
15
15
  var renderWithQiankun = require('vite-plugin-qiankun/dist/helper');
16
16
  var mobile = require('@sszj-temp/mobile');
17
- var marked = require('marked');
18
17
 
19
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
19
 
@@ -11238,568 +11237,6 @@ const SszComment = vue.defineComponent({
11238
11237
  });
11239
11238
  var index = installComponent(SszComment, "ssz-comment");
11240
11239
 
11241
- function formatDataString(str) {
11242
- const lines = str.split("\n");
11243
- const result = lines.filter(line => !!line.trim()).map(line => {
11244
- const data = JSON.parse(line.replace(/^data: /, ""));
11245
- return data.text;
11246
- }).filter(line => line !== void 0).join("");
11247
- return result;
11248
- }
11249
- function request(question, streamCallback, doneCallback) {
11250
- const controller = new AbortController();
11251
- const signal = controller.signal;
11252
- fetch("/mt_cpp_gpt/chat", {
11253
- signal,
11254
- method: "POST",
11255
- headers: {
11256
- "Content-Type": "application/json"
11257
- },
11258
- body: JSON.stringify({
11259
- query: question,
11260
- conversation_id: ""
11261
- })
11262
- }).then(res => {
11263
- const stream = res.body;
11264
- const decoder = new TextDecoder();
11265
- const reader = stream.getReader();
11266
- let result = "";
11267
- function processText() {
11268
- return reader.read().then(({
11269
- done,
11270
- value
11271
- }) => {
11272
- if (done) {
11273
- doneCallback();
11274
- return;
11275
- }
11276
- try {
11277
- const dataString = decoder.decode(value, {
11278
- stream: true
11279
- });
11280
- const str = formatDataString(dataString);
11281
- result += str;
11282
- streamCallback(result);
11283
- } catch (e) {}
11284
- return processText();
11285
- }).catch(() => {
11286
- doneCallback();
11287
- });
11288
- }
11289
- return processText();
11290
- }).catch(() => {
11291
- doneCallback();
11292
- });
11293
- return function stop() {
11294
- controller.abort();
11295
- };
11296
- }
11297
- function useQA() {
11298
- const context = vue.ref([]);
11299
- const answerLoading = vue.ref(false);
11300
- const answer = vue.ref("");
11301
- let abort = null;
11302
- setTimeout(() => {
11303
- const questionItem = {
11304
- type: "answer",
11305
- content: "",
11306
- id: /* @__PURE__ */new Date().getTime(),
11307
- timestamp: /* @__PURE__ */new Date().getTime(),
11308
- answers: [{
11309
- content: "\u4F60\u597D\uFF0C\u6211\u662F\u4F60\u7684\u5DE5\u4F5C\u4F19\u4F34 \u7F8E\u5C0F\u817E! \u6211\u53EF\u4EE5\u8F85\u52A9\u4F60\u5FEB\u901F\u83B7\u53D6\u4FE1\u606F\uFF0C\u76D1\u63A7\u3001\u67E5\u770B\u751F\u4EA7\u6307\u6807\uFF0C\u56DE\u7B54\u60A8\u7684\u9009\u7164\u4E13\u4E1A\u95EE\u9898\uFF0C\u5FEB\u8BD5\u8BD5\u4E0B\u9762\u5BF9\u8BDD\u5427\u3002",
11310
- timestamp: /* @__PURE__ */new Date().getTime(),
11311
- hideOperates: true,
11312
- id: /* @__PURE__ */new Date().getTime()
11313
- }]
11314
- };
11315
- context.value.push(questionItem);
11316
- }, 1e3);
11317
- function sendQuestion(question, questionId) {
11318
- if (answerLoading.value) return;
11319
- answerLoading.value = true;
11320
- let questionItem = context.value.find(item => item.id === questionId);
11321
- question = questionItem?.content || question;
11322
- if (!questionId) {
11323
- questionItem = {
11324
- id: /* @__PURE__ */new Date().getTime(),
11325
- timestamp: /* @__PURE__ */new Date().getTime(),
11326
- content: question,
11327
- answers: []
11328
- };
11329
- context.value.push(questionItem);
11330
- }
11331
- const answerItem = vue.ref({
11332
- content: "\u6B63\u5728\u601D\u8003\u4E2D...",
11333
- timestamp: /* @__PURE__ */new Date().getTime(),
11334
- parentId: questionItem.id,
11335
- id: /* @__PURE__ */new Date().getTime()
11336
- });
11337
- questionItem.answers.push(answerItem.value);
11338
- abort = request(question, data => {
11339
- answer.value = data;
11340
- answerItem.value.content = data;
11341
- }, () => {
11342
- answerLoading.value = false;
11343
- answerItem.value.loadEnd = true;
11344
- abort = null;
11345
- });
11346
- }
11347
- function abortRequest() {
11348
- if (abort) {
11349
- abort();
11350
- abort = null;
11351
- }
11352
- }
11353
- return {
11354
- context,
11355
- answerLoading,
11356
- answer,
11357
- sendQuestion,
11358
- abortRequest
11359
- };
11360
- }
11361
-
11362
- const Input = vue.defineComponent({
11363
- emits: ["send"],
11364
- setup(props, {
11365
- emit,
11366
- expose
11367
- }) {
11368
- const abortRequest = vue.inject("abortRequest");
11369
- const loading = vue.inject("answerLoading");
11370
- const value = vue.ref("");
11371
- const isFocus = vue.ref(false);
11372
- const send = () => {
11373
- if (loading.value) return;
11374
- if (value.value.length === 0) {
11375
- antDesignVue.message.warn("\u8BF7\u8F93\u5165\u95EE\u9898");
11376
- return;
11377
- }
11378
- emit("send", value.value);
11379
- value.value = "";
11380
- };
11381
- const handleAbord = () => {
11382
- abortRequest();
11383
- };
11384
- const handleMicClick = () => {
11385
- antDesignVue.message.info("\u6682\u4E0D\u652F\u6301\u8BED\u97F3\u8F93\u5165");
11386
- };
11387
- const clear = () => value.value = "";
11388
- expose({
11389
- clear
11390
- });
11391
- return () => vue.createVNode("div", {
11392
- "class": ["chat-box-input", {
11393
- focus: isFocus.value
11394
- }]
11395
- }, [vue.createVNode("img", {
11396
- "class": "img img-mic",
11397
- "src": "/micro-assets/largeLanguageModel/mic.png",
11398
- "alt": "",
11399
- "onClick": handleMicClick
11400
- }, null), vue.createVNode(vue.resolveComponent("a-input"), {
11401
- "value": value.value,
11402
- "onUpdate:value": $event => value.value = $event,
11403
- "bordered": false,
11404
- "placeholder": "\u5982: \u67E5\u770BXXX\u76AE\u5E26\u673A\u5934\u7535\u6D41\u7B49",
11405
- "onFocus": () => isFocus.value = true,
11406
- "onBlur": () => isFocus.value = false,
11407
- "onPressEnter": send
11408
- }, null), loading.value ? vue.createVNode("img", {
11409
- "class": "btn-abort",
11410
- "title": "\u4E2D\u6B62\u56DE\u7B54",
11411
- "src": "/micro-assets/largeLanguageModel/btn-abort.png",
11412
- "onClick": handleAbord
11413
- }, null) : vue.createVNode("img", {
11414
- "class": "img img-send",
11415
- "src": "/micro-assets/largeLanguageModel/send.png",
11416
- "onClick": send
11417
- }, null)]);
11418
- }
11419
- });
11420
-
11421
- const tips = ["\u8BBE\u5907\u5DE5\u4F5C\u539F\u7406", "\u8BBE\u5907\u7EF4\u4FDD\u624B\u518C"];
11422
- const Bottom = vue.defineComponent({
11423
- emits: ["send"],
11424
- setup(props, {
11425
- emit
11426
- }) {
11427
- const inputRef = vue.ref();
11428
- const handleSend = msg => {
11429
- inputRef.value.clear();
11430
- emit("send", msg);
11431
- };
11432
- return () => {
11433
- tips.map(tip => vue.createVNode("div", {
11434
- "class": "tip",
11435
- "onClick": () => handleSend(tip)
11436
- }, [tip]));
11437
- return vue.createVNode("div", {
11438
- "class": "bottom"
11439
- }, [vue.createVNode(Input, {
11440
- "ref": inputRef,
11441
- "onSend": handleSend
11442
- }, null), vue.createVNode("div", {
11443
- "class": "exemption"
11444
- }, ["\u5185\u5BB9\u7531\u7F8E\u817E\u5927\u6A21\u578B\u751F\u6210\uFF0C\u4EC5\u4F5C\u4E3A\u53C2\u8003"])]);
11445
- };
11446
- }
11447
- });
11448
-
11449
- const Avatar = vue.defineComponent({
11450
- props: {
11451
- avatar: {
11452
- type: String,
11453
- required: true
11454
- },
11455
- name: {
11456
- type: String,
11457
- required: true
11458
- },
11459
- reverse: Boolean
11460
- },
11461
- setup(props, {
11462
- emit
11463
- }) {
11464
- return () => vue.createVNode("div", {
11465
- "class": ["chat-avatar", {
11466
- "chat-avatar-reverse": props.reverse
11467
- }]
11468
- }, [vue.createVNode(vue.resolveComponent("a-avatar"), {
11469
- "class": "avatar",
11470
- "alt": "\u5934\u50CF",
11471
- "src": props.avatar
11472
- }, null), vue.createVNode("div", {
11473
- "class": "chat-avatar-name"
11474
- }, [props.name])]);
11475
- }
11476
- });
11477
-
11478
- const QuestionBubble = vue.defineComponent({
11479
- props: {
11480
- content: {
11481
- type: String,
11482
- default: ""
11483
- }
11484
- },
11485
- setup(props) {
11486
- const userinfo = JSON.parse(sessionStorage.getItem("userinfo") || "{}");
11487
- const avatar = userinfo.photo || "/micro-assets/platform_app/avatar.png";
11488
- const name = userinfo.employeeName || userinfo.userName || "\u7528\u6237";
11489
- return () => vue.createVNode("div", {
11490
- "class": "question-bubble chat-bubble"
11491
- }, [vue.createVNode(Avatar, {
11492
- "reverse": true,
11493
- "avatar": avatar,
11494
- "name": name
11495
- }, null), vue.createVNode("div", {
11496
- "class": "bubble question"
11497
- }, [props.content]), vue.createVNode("div", {
11498
- "class": "operates"
11499
- }, null)]);
11500
- }
11501
- });
11502
-
11503
- const commonStyle = `
11504
- :host > p {
11505
- margin: 0;
11506
- }
11507
- :host {
11508
- font-size: 14px;
11509
- }
11510
- `;
11511
- const styleDark = `
11512
- <style>
11513
- ${commonStyle}
11514
-
11515
- * {
11516
- color: #fff;
11517
- }
11518
- strong {
11519
- color: #f3c142;
11520
- }
11521
- </style>
11522
- `;
11523
- const styleLight = `
11524
- <style>
11525
- ${commonStyle}
11526
-
11527
- * {
11528
- color: #20242B;
11529
- }
11530
- strong {
11531
- color: #4b7ff7;
11532
- }
11533
- </style>
11534
- `;
11535
-
11536
- const suggestionList = ["\u7F8E\u5C0F\u817E\u80FD\u5E2E\u6211\u505A\u4EC0\u4E48\uFF1F", "\u8FD1\u4E00\u4E2A\u6708\u7684\u4ECB\u8017\u60C5\u51B5\u5982\u4F55\uFF1F", "\u5C3E\u77FF\u8DD1\u7C97\u7684\u6392\u67E5\u5904\u7406\u65B9\u6CD5\u6709\u54EA\u4E9B\uFF1F\u5C3E\u77FF\u8DD1\u7C97\u7684\u6392\u67E5\u5904\u7406\u65B9\u6CD5\u6709\u54EA\u4E9B\u5C3E\u77FF\u8DD1\u7C97\u7684\u6392\u67E5\u5904\u7406\u65B9\u6CD5\u6709\u54EA\u4E9B\u5C3E\u77FF\u8DD1\u7C97\u7684\u6392\u67E5\u5904\u7406\u65B9\u6CD5\u6709\u54EA\u4E9B"];
11537
- const AnswerBubble = vue.defineComponent({
11538
- emits: ["send", "render", "delete", "regenerate"],
11539
- props: {
11540
- content: {
11541
- type: Array,
11542
- default: () => []
11543
- }
11544
- },
11545
- setup(props, {
11546
- emit
11547
- }) {
11548
- const chatTheme = vue.inject("chat-theme");
11549
- const {
11550
- copy
11551
- } = core.useClipboard({
11552
- legacy: true
11553
- });
11554
- const bubbleRef = vue.ref();
11555
- const activeAnswerIndex = vue.ref(0);
11556
- const activeAnswer = vue.computed(() => props.content[activeAnswerIndex.value]);
11557
- let shadowRoot;
11558
- const trasformMd = mdString => {
11559
- return marked.marked(mdString);
11560
- };
11561
- vue.onMounted(() => {
11562
- shadowRoot = bubbleRef.value.attachShadow({
11563
- mode: "open"
11564
- });
11565
- renderText();
11566
- });
11567
- const renderText = () => {
11568
- if (!shadowRoot) return;
11569
- vue.nextTick(() => {
11570
- emit("render", activeAnswer.value.content);
11571
- });
11572
- const themeStyle = chatTheme === "dark" ? styleDark : styleLight;
11573
- const html = `
11574
- ${trasformMd(activeAnswer.value.content)}
11575
-
11576
- ${themeStyle}
11577
- `;
11578
- shadowRoot.innerHTML = html;
11579
- };
11580
- vue.watch([activeAnswer, activeAnswerIndex], renderText, {
11581
- deep: true
11582
- });
11583
- const switchAnswer = step => {
11584
- activeAnswerIndex.value += step;
11585
- };
11586
- const operateList = vue.reactive([{
11587
- title: "\u590D\u5236",
11588
- key: "copy",
11589
- isActive: false
11590
- }, {
11591
- title: "\u6709\u7528",
11592
- key: "like",
11593
- isActive: vue.computed(() => activeAnswer.value.isLike)
11594
- }, {
11595
- title: "\u65E0\u7528",
11596
- key: "dislike",
11597
- isActive: vue.computed(() => activeAnswer.value.isDislike)
11598
- }, {
11599
- title: "\u8BC4\u8BBA",
11600
- key: "comment",
11601
- isActive: false
11602
- }, {
11603
- title: "\u91CD\u65B0\u751F\u6210",
11604
- key: "regenerate",
11605
- isActive: false
11606
- }, {
11607
- ttile: "\u5220\u9664",
11608
- key: "delete",
11609
- isActive: false
11610
- }]);
11611
- const handleOperate = key => {
11612
- switch (key) {
11613
- case "like":
11614
- if (!activeAnswer.value.isLike && !activeAnswer.value.isDislike) {
11615
- activeAnswer.value.isLike = !activeAnswer.value.isLike;
11616
- }
11617
- break;
11618
- case "dislike":
11619
- if (!activeAnswer.value.isLike && !activeAnswer.value.isDislike) {
11620
- activeAnswer.value.isDislike = !activeAnswer.value.isDislike;
11621
- }
11622
- break;
11623
- case "copy":
11624
- copy(activeAnswer.value.content);
11625
- antDesignVue.message.success("\u590D\u5236\u6210\u529F");
11626
- break;
11627
- case "delete":
11628
- antDesignVue.Modal.confirm({
11629
- title: "\u786E\u5B9A\u5220\u9664\u8FD9\u4E2A\u56DE\u7B54\u5417\uFF1F",
11630
- onOk: () => {
11631
- emit("delete", activeAnswer.value.id);
11632
- if (activeAnswerIndex.value > 0 && activeAnswerIndex.value === props.content.length - 1) {
11633
- activeAnswerIndex.value--;
11634
- }
11635
- }
11636
- });
11637
- break;
11638
- case "comment":
11639
- antDesignVue.message.info("\u6682\u672A\u5F00\u653E");
11640
- break;
11641
- case "regenerate":
11642
- if (props.content.length >= 5) {
11643
- antDesignVue.message.info("\u6700\u591A\u652F\u6301\u751F\u62105\u6761\u56DE\u7B54");
11644
- return;
11645
- }
11646
- emit("regenerate", activeAnswer.value.id);
11647
- vue.nextTick(() => {
11648
- activeAnswerIndex.value = props.content.length - 1;
11649
- });
11650
- break;
11651
- }
11652
- };
11653
- return () => {
11654
- suggestionList.map(item => vue.createVNode("div", {
11655
- "class": "suggestion-item",
11656
- "onClick": () => emit("send", item)
11657
- }, [item]));
11658
- const showOperates = !activeAnswer.value.hideOperates && activeAnswer.value.loadEnd;
11659
- const operateDom = operateList.map(item => vue.createVNode(vue.resolveComponent("a-tooltip"), {
11660
- "title": item.title
11661
- }, {
11662
- default: () => [vue.createVNode("div", {
11663
- "class": ["operate-item", item.key, {
11664
- active: item.isActive
11665
- }],
11666
- "onClick": () => handleOperate(item.key)
11667
- }, null)]
11668
- }));
11669
- const prevDisabled = activeAnswerIndex.value === 0;
11670
- const nextDisabled = activeAnswerIndex.value === props.content.length - 1;
11671
- const answerNav = vue.createVNode("div", {
11672
- "class": "operate-item operate-nav"
11673
- }, [vue.createVNode("span", {
11674
- "class": ["nav", {
11675
- disabled: prevDisabled
11676
- }],
11677
- "onClick": () => switchAnswer(-1)
11678
- }, ["<"]), vue.createVNode("span", null, [activeAnswerIndex.value + 1]), " ", vue.createVNode("span", null, [vue.createTextVNode("/")]), vue.createVNode("span", null, [props.content.length]), vue.createVNode("span", {
11679
- "class": ["nav", {
11680
- disabled: nextDisabled
11681
- }],
11682
- "onClick": () => switchAnswer(1)
11683
- }, [">"])]);
11684
- return vue.createVNode("div", {
11685
- "class": "answer-bubble chat-bubble"
11686
- }, [vue.createVNode(Avatar, {
11687
- "avatar": "/micro-assets/largeLanguageModel/robot-avatar.png",
11688
- "name": "\u7F8E\u5C0F\u817E"
11689
- }, null), vue.createVNode("div", {
11690
- "ref": bubbleRef,
11691
- "class": "bubble answer"
11692
- }, null), vue.createVNode("div", {
11693
- "class": "operates"
11694
- }, [props.content.length > 1 && answerNav, showOperates && operateDom])]);
11695
- };
11696
- }
11697
- });
11698
-
11699
- const QaContext = vue.defineComponent({
11700
- emits: ["regenerate"],
11701
- props: {
11702
- list: {
11703
- type: Array,
11704
- default: () => []
11705
- }
11706
- },
11707
- setup(props, {
11708
- emit
11709
- }) {
11710
- const containerRef = vue.ref();
11711
- const onAnswerRender = text => {
11712
- containerRef.value.scrollTo({
11713
- top: containerRef.value.scrollHeight,
11714
- behavior: "smooth"
11715
- });
11716
- };
11717
- const handleDeleteAnswer = (questionId, answerId) => {
11718
- const question = props.list.find(item => item.id === questionId);
11719
- if (question) {
11720
- question.answers = question.answers.filter(item => item.id !== answerId);
11721
- }
11722
- };
11723
- return () => {
11724
- const contextList = [];
11725
- for (let i = 0; i < props.list.length; i++) {
11726
- const questionItem = props.list[i];
11727
- const prevItem = props.list[i - 1];
11728
- const currentTime = questionItem.timestamp;
11729
- let timeDiff = 0;
11730
- if (prevItem) {
11731
- const prevTime = prevItem.timestamp;
11732
- timeDiff = currentTime - prevTime;
11733
- }
11734
- if (!prevItem || timeDiff > 1e3 * 60 * 5) {
11735
- contextList.push(vue.createVNode("div", {
11736
- "class": "time-line"
11737
- }, [dayjs__default["default"](currentTime).format("MM/DD HH:mm")]));
11738
- }
11739
- if (questionItem.content) {
11740
- contextList.push(vue.createVNode(QuestionBubble, {
11741
- "content": questionItem.content
11742
- }, null));
11743
- }
11744
- if (questionItem.answers.length > 0) {
11745
- contextList.push(vue.createVNode(AnswerBubble, {
11746
- "onRender": onAnswerRender,
11747
- "content": questionItem.answers,
11748
- "onDelete": answerId => handleDeleteAnswer(questionItem.id, answerId),
11749
- "onRegenerate": () => emit("regenerate", questionItem.id)
11750
- }, null));
11751
- }
11752
- }
11753
- return vue.createVNode("div", {
11754
- "class": "qa-context",
11755
- "ref": containerRef
11756
- }, [contextList]);
11757
- };
11758
- }
11759
- });
11760
-
11761
- const ChatBox = vue.defineComponent({
11762
- props: {
11763
- theme: {
11764
- type: String,
11765
- default: "light"
11766
- },
11767
- // 语音输入 TODO
11768
- withSpeech: {
11769
- type: Boolean,
11770
- default: false
11771
- }
11772
- },
11773
- setup(props, {
11774
- emit
11775
- }) {
11776
- vue.provide("chat-theme", props.theme);
11777
- const {
11778
- context,
11779
- answerLoading,
11780
- sendQuestion,
11781
- abortRequest
11782
- } = useQA();
11783
- vue.provide("answerLoading", answerLoading);
11784
- vue.provide("abortRequest", abortRequest);
11785
- const handleSend = (msg, questionId) => {
11786
- sendQuestion(msg, questionId);
11787
- };
11788
- return () => {
11789
- return vue.createVNode("div", {
11790
- "class": ["inl-chat-box", `inl-chat-box-${props.theme}`]
11791
- }, [vue.createVNode(QaContext, {
11792
- "list": context.value,
11793
- "onRegenerate": qId => handleSend("", qId)
11794
- }, null), vue.createVNode(Bottom, {
11795
- "onSend": handleSend
11796
- }, null)]);
11797
- };
11798
- }
11799
- });
11800
-
11801
- const LlmChatBox = installComponent(ChatBox, "llm-chat-box");
11802
-
11803
11240
  exports.AlarmVideo = alarmVideo;
11804
11241
  exports.ChangeThemeSelect = index$6;
11805
11242
  exports.ChildLayout = childLayout;
@@ -11811,7 +11248,6 @@ exports.IconSelect = icons;
11811
11248
  exports.ImportModal = ImportModal;
11812
11249
  exports.Layout = index$8;
11813
11250
  exports.LayoutTable = table;
11814
- exports.LlmChatBox = LlmChatBox;
11815
11251
  exports.Login = index$7;
11816
11252
  exports.ParamManager = index$2;
11817
11253
  exports.ParamManagerV2 = ParamManagerV2;
@@ -1045,30 +1045,4 @@ declare const _default: vue.DefineComponent<{
1045
1045
  commentHeight: string;
1046
1046
  }, {}>;
1047
1047
 
1048
- /**
1049
- * 大语言模型组件 - 对话框
1050
- */
1051
- declare const LlmChatBox: vue.DefineComponent<{
1052
- theme: {
1053
- type: StringConstructor;
1054
- default: string;
1055
- };
1056
- withSpeech: {
1057
- type: BooleanConstructor;
1058
- default: boolean;
1059
- };
1060
- }, () => vue_jsx_runtime.JSX.Element, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
1061
- theme: {
1062
- type: StringConstructor;
1063
- default: string;
1064
- };
1065
- withSpeech: {
1066
- type: BooleanConstructor;
1067
- default: boolean;
1068
- };
1069
- }>>, {
1070
- theme: string;
1071
- withSpeech: boolean;
1072
- }, {}>;
1073
-
1074
- export { _default$b as AlarmVideo, _default$d as ChangeThemeSelect, _default$e as ChildLayout, _default$j as Demo, _default$1 as FontSelect, _default$6 as HeaderMenu, _default$i as IconFont, _default$5 as IconSelect, ImportModal, _default$h as Layout, _default$f as LayoutTable, LlmChatBox, _default$g as Login, _default$2 as ParamManager, ParamManagerV2, _default$3 as PeopleSelect, _default$c as PollingPlay, _default$4 as QueryFormContainer, _default as SszComment, _default$8 as VideoBox, _default$7 as VideoBoxV2, _default$9 as VideoPlayerV1, _default$a as VideoPlayerV2, getDetailContainer, getMenuDetail };
1048
+ export { _default$b as AlarmVideo, _default$d as ChangeThemeSelect, _default$e as ChildLayout, _default$j as Demo, _default$1 as FontSelect, _default$6 as HeaderMenu, _default$i as IconFont, _default$5 as IconSelect, ImportModal, _default$h as Layout, _default$f as LayoutTable, _default$g as Login, _default$2 as ParamManager, ParamManagerV2, _default$3 as PeopleSelect, _default$c as PollingPlay, _default$4 as QueryFormContainer, _default as SszComment, _default$8 as VideoBox, _default$7 as VideoBoxV2, _default$9 as VideoPlayerV1, _default$a as VideoPlayerV2, getDetailContainer, getMenuDetail };