chore: 加回 loading 、修复聊天 Shift + Enter 换行

This commit is contained in:
adams549659584 2023-05-16 07:41:30 +08:00
parent 0854a9ce83
commit 07eb07ede4
14 changed files with 1365 additions and 1251 deletions

View File

@ -21,8 +21,24 @@ tasks:
build_web:
dir: frontend
cmds:
# 修订号,例如 0.0.1
- npm version patch
# - pnpm build
- pnpm install && pnpm build
build_web_minor:
dir: frontend
cmds:
# 次版本号,例如 0.1.0
- npm version minor
# - pnpm build
- pnpm install && pnpm build
build_web_major:
dir: frontend
cmds:
# 主版本号,例如 1.0.0
- npm version major
# - pnpm build
- pnpm install && pnpm build
build_tpl:
label: build-{{.TASK}}
cmds:

View File

@ -1 +1 @@
VITE_BASE_API_URL=https://devbing.vcanbb.top
VITE_BASE_API_URL=https://bing.vcanbb.top

View File

@ -1,6 +1,6 @@
{
"name": "go-proxy-bingai",
"version": "1.6.3",
"version": "1.6.4",
"private": true,
"scripts": {
"dev": "vite",

110
frontend/pnpm-lock.yaml generated
View File

@ -29,7 +29,7 @@ devDependencies:
version: 18.16.9
'@vitejs/plugin-vue':
specifier: ^4.2.3
version: 4.2.3(vite@4.3.5)(vue@3.3.2)
version: 4.2.3(vite@4.3.6)(vue@3.3.2)
'@vue/eslint-config-prettier':
specifier: ^7.1.0
version: 7.1.0(eslint@8.40.0)(prettier@2.8.8)
@ -71,10 +71,10 @@ devDependencies:
version: 5.0.4
vite:
specifier: ^4.3.5
version: 4.3.5(@types/node@18.16.9)
version: 4.3.6(@types/node@18.16.9)
vite-plugin-pwa:
specifier: ^0.14.7
version: 0.14.7(vite@4.3.5)(workbox-build@6.5.4)(workbox-window@6.5.4)
version: 0.14.7(vite@4.3.6)(workbox-build@6.5.4)(workbox-window@6.5.4)
vue-tsc:
specifier: ^1.6.4
version: 1.6.5(typescript@5.0.4)
@ -1736,8 +1736,8 @@ packages:
resolution: {integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==}
dev: true
/@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==}
/@typescript-eslint/eslint-plugin@5.59.6(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/parser': ^5.0.0
@ -1748,10 +1748,10 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.5.1
'@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/scope-manager': 5.59.5
'@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/scope-manager': 5.59.6
'@typescript-eslint/type-utils': 5.59.6(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.6(eslint@8.40.0)(typescript@5.0.4)
debug: 4.3.4
eslint: 8.40.0
grapheme-splitter: 1.0.4
@ -1764,8 +1764,8 @@ packages:
- supports-color
dev: true
/@typescript-eslint/parser@5.59.5(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==}
/@typescript-eslint/parser@5.59.6(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@ -1774,9 +1774,9 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/scope-manager': 5.59.5
'@typescript-eslint/types': 5.59.5
'@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
'@typescript-eslint/scope-manager': 5.59.6
'@typescript-eslint/types': 5.59.6
'@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4)
debug: 4.3.4
eslint: 8.40.0
typescript: 5.0.4
@ -1784,16 +1784,16 @@ packages:
- supports-color
dev: true
/@typescript-eslint/scope-manager@5.59.5:
resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==}
/@typescript-eslint/scope-manager@5.59.6:
resolution: {integrity: sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.59.5
'@typescript-eslint/visitor-keys': 5.59.5
'@typescript-eslint/types': 5.59.6
'@typescript-eslint/visitor-keys': 5.59.6
dev: true
/@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==}
/@typescript-eslint/type-utils@5.59.6(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
@ -1802,8 +1802,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4)
'@typescript-eslint/utils': 5.59.6(eslint@8.40.0)(typescript@5.0.4)
debug: 4.3.4
eslint: 8.40.0
tsutils: 3.21.0(typescript@5.0.4)
@ -1812,13 +1812,13 @@ packages:
- supports-color
dev: true
/@typescript-eslint/types@5.59.5:
resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==}
/@typescript-eslint/types@5.59.6:
resolution: {integrity: sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4):
resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==}
/@typescript-eslint/typescript-estree@5.59.6(typescript@5.0.4):
resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@ -1826,8 +1826,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/types': 5.59.5
'@typescript-eslint/visitor-keys': 5.59.5
'@typescript-eslint/types': 5.59.6
'@typescript-eslint/visitor-keys': 5.59.6
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@ -1838,8 +1838,8 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils@5.59.5(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==}
/@typescript-eslint/utils@5.59.6(eslint@8.40.0)(typescript@5.0.4):
resolution: {integrity: sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@ -1847,9 +1847,9 @@ packages:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0)
'@types/json-schema': 7.0.11
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 5.59.5
'@typescript-eslint/types': 5.59.5
'@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
'@typescript-eslint/scope-manager': 5.59.6
'@typescript-eslint/types': 5.59.6
'@typescript-eslint/typescript-estree': 5.59.6(typescript@5.0.4)
eslint: 8.40.0
eslint-scope: 5.1.1
semver: 7.5.1
@ -1858,22 +1858,22 @@ packages:
- typescript
dev: true
/@typescript-eslint/visitor-keys@5.59.5:
resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==}
/@typescript-eslint/visitor-keys@5.59.6:
resolution: {integrity: sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
'@typescript-eslint/types': 5.59.5
'@typescript-eslint/types': 5.59.6
eslint-visitor-keys: 3.4.1
dev: true
/@vitejs/plugin-vue@4.2.3(vite@4.3.5)(vue@3.3.2):
/@vitejs/plugin-vue@4.2.3(vite@4.3.6)(vue@3.3.2):
resolution: {integrity: sha512-R6JDUfiZbJA9cMiguQ7jxALsgiprjBeHL5ikpXfJCH62pPHtI+JdJ5xWj6Ev73yXSlYl86+blXn1kZHQ7uElxw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
vite: 4.3.5(@types/node@18.16.9)
vite: 4.3.6(@types/node@18.16.9)
vue: 3.3.2
dev: true
@ -1983,8 +1983,8 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/eslint-plugin': 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/eslint-plugin': 5.59.6(@typescript-eslint/parser@5.59.6)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser': 5.59.6(eslint@8.40.0)(typescript@5.0.4)
eslint: 8.40.0
eslint-plugin-vue: 9.12.0(eslint@8.40.0)
typescript: 5.0.4
@ -2228,7 +2228,7 @@ packages:
hasBin: true
dependencies:
caniuse-lite: 1.0.30001487
electron-to-chromium: 1.4.394
electron-to-chromium: 1.4.395
node-releases: 2.0.10
update-browserslist-db: 1.0.11(browserslist@4.21.5)
dev: true
@ -2464,11 +2464,11 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
dependencies:
jake: 10.8.5
jake: 10.8.6
dev: true
/electron-to-chromium@1.4.394:
resolution: {integrity: sha512-0IbC2cfr8w5LxTz+nmn2cJTGafsK9iauV2r5A5scfzyovqLrxuLoxOHE5OBobP3oVIggJT+0JfKnw9sm87c8Hw==}
/electron-to-chromium@1.4.395:
resolution: {integrity: sha512-r8IgVPlJsCs7yezgmuBTaOMuu8lgU0mzg+wcLLo0xVy5s+rpuFTI9tEKhHVaMIPgeJPjxwTDHUZqoBEsNMDbCQ==}
dev: true
/error-ex@1.3.2:
@ -2616,7 +2616,7 @@ packages:
eslint: 8.40.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.12
postcss-selector-parser: 6.0.13
semver: 7.5.1
vue-eslint-parser: 9.3.0(eslint@8.40.0)
xml-name-validator: 4.0.0
@ -3226,8 +3226,8 @@ packages:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
/jake@10.8.5:
resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
/jake@10.8.6:
resolution: {integrity: sha512-G43Ub9IYEFfu72sua6rzooi8V8Gz2lkfk48rW20vEWCGizeaEPlKB1Kh8JIA84yQbiAEfqlPmSpGgCKKxH3rDA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@ -3766,11 +3766,11 @@ packages:
postcss: ^8.2.14
dependencies:
postcss: 8.4.23
postcss-selector-parser: 6.0.12
postcss-selector-parser: 6.0.13
dev: true
/postcss-selector-parser@6.0.12:
resolution: {integrity: sha512-NdxGCAZdRrwVI1sy59+Wzrh+pMMHxapGnpfenDVlMEXoOcvt4pGE0JLK9YY2F5dLxcFYA/YbVQKhcGU+FtSYQg==}
/postcss-selector-parser@6.0.13:
resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
engines: {node: '>=4'}
dependencies:
cssesc: 3.0.0
@ -4287,7 +4287,7 @@ packages:
postcss-js: 4.0.1(postcss@8.4.23)
postcss-load-config: 4.0.1(postcss@8.4.23)
postcss-nested: 6.0.1(postcss@8.4.23)
postcss-selector-parser: 6.0.12
postcss-selector-parser: 6.0.13
postcss-value-parser: 4.2.0
resolve: 1.22.2
sucrase: 3.32.0
@ -4493,7 +4493,7 @@ packages:
vue: 3.3.2
dev: true
/vite-plugin-pwa@0.14.7(vite@4.3.5)(workbox-build@6.5.4)(workbox-window@6.5.4):
/vite-plugin-pwa@0.14.7(vite@4.3.6)(workbox-build@6.5.4)(workbox-window@6.5.4):
resolution: {integrity: sha512-dNJaf0fYOWncmjxv9HiSa2xrSjipjff7IkYE5oIUJ2x5HKu3cXgA8LRgzOwTc5MhwyFYRSU0xyN0Phbx3NsQYw==}
peerDependencies:
vite: ^3.1.0 || ^4.0.0
@ -4505,15 +4505,15 @@ packages:
fast-glob: 3.2.12
pretty-bytes: 6.1.0
rollup: 3.21.7
vite: 4.3.5(@types/node@18.16.9)
vite: 4.3.6(@types/node@18.16.9)
workbox-build: 6.5.4
workbox-window: 6.5.4
transitivePeerDependencies:
- supports-color
dev: true
/vite@4.3.5(@types/node@18.16.9):
resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==}
/vite@4.3.6(@types/node@18.16.9):
resolution: {integrity: sha512-cqIyLSbA6gornMS659AXTVKF7cvSHMdKmJJwQ9DXq3lwsT1uZSdktuBRlpHQ8VnOWx0QHtjDwxPpGtyo9Fh/Qg==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:

View File

@ -3,7 +3,7 @@ import { usePromptStore, type IPrompt } from '@/stores/modules/prompt';
import { NThing, NTag, NButton, NEllipsis, useMessage } from 'naive-ui';
import { storeToRefs } from 'pinia';
const props = defineProps<{
defineProps<{
index: number;
source: IPrompt;
}>();
@ -29,12 +29,12 @@ const showEditPromptPop = (item: IPrompt) => {
<template>
<NThing class="hover:bg-gray-100 cursor-pointer p-5">
<template #description>
<NTag class="max-w-[150px] xl:max-w-[680px] overflow-ellipsis overflow-hidden" type="info"> {{ props.source.act }} </NTag>
<NTag class="max-w-[150px] xl:max-w-[680px] overflow-ellipsis overflow-hidden" type="info"> {{ source.act }} </NTag>
<div class="float-right">
<NButton secondary type="info" size="small" @click="showEditPromptPop(props.source)">编辑</NButton>
<NButton secondary class="ml-2" type="error" size="small" @click="delPrompt(props.source)">删除</NButton>
<NButton secondary type="info" size="small" @click="showEditPromptPop(source)">编辑</NButton>
<NButton secondary class="ml-2" type="error" size="small" @click="delPrompt(source)">删除</NButton>
</div>
</template>
<NEllipsis :tooltip="false" :line-clamp="2">{{ props.source.prompt }}</NEllipsis>
<NEllipsis :tooltip="false" :line-clamp="2">{{ source.prompt }}</NEllipsis>
</NThing>
</template>

View File

@ -0,0 +1,90 @@
<script setup lang="ts">
import { onMounted } from 'vue';
import { ref } from 'vue';
defineProps<{
isShow: boolean;
}>();
const isRemoveLoading = ref(false);
const loadingRef = ref<HTMLDivElement>();
onMounted(() => {
if (loadingRef.value) {
loadingRef.value.addEventListener('transitionend', () => {
isRemoveLoading.value = true;
});
}
});
</script>
<template>
<div v-if="!isRemoveLoading" ref="loadingRef" class="loading-spinner" :class="{ hidden: !isShow }">
<div class="bounce1"></div>
<div class="bounce2"></div>
<div class="bounce3"></div>
</div>
</template>
<style scoped>
.loading-spinner {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
opacity: 1;
transition: opacity 2s ease-out;
}
.loading-spinner.hidden {
opacity: 0;
}
.loading-spinner > div {
width: 30px;
height: 30px;
background: linear-gradient(90deg, #2870ea 10.79%, #1b4aef 87.08%);
border-radius: 100%;
display: inline-block;
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
}
.loading-spinner .bounce1 {
-webkit-animation-delay: -0.32s;
animation-delay: -0.32s;
}
.loading-spinner .bounce2 {
-webkit-animation-delay: -0.16s;
animation-delay: -0.16s;
}
@-webkit-keyframes sk-bouncedelay {
0%,
80%,
100% {
-webkit-transform: scale(0);
}
40% {
-webkit-transform: scale(1);
}
}
@keyframes sk-bouncedelay {
0%,
80%,
100% {
-webkit-transform: scale(0);
transform: scale(0);
}
40% {
-webkit-transform: scale(1);
transform: scale(1);
}
}
</style>

View File

@ -8,6 +8,9 @@ import VirtualList from 'vue3-virtual-scroll-list';
import ChatPromptItem from './ChatPromptItem.vue';
import { sleep } from '@/utils/utils';
import cookies from '@/utils/cookies';
import LoadingSpinner from '@/components/LoadingSpinner/LoadingSpinner.vue';
const isShowLoading = ref(true);
const promptStore = usePromptStore();
const { isShowPromptSotre, isShowChatPrompt, keyword, promptList, searchPromptList, selectedPromptIndex } = storeToRefs(promptStore);
@ -29,6 +32,9 @@ onMounted(async () => {
await initChat();
// show
SydneyFullScreenConv.initWithWaitlistUpdate({ cookLoc: {} }, 10);
isShowLoading.value = false;
checkUserToken();
hackStyle();
initChatPrompt();
@ -182,7 +188,7 @@ const handleInputTextKey = (ev: KeyboardEvent) => {
case 'Tab':
case 'Enter':
{
ev.preventDefault();
// ev.preventDefault();
if (!CIB.vm.actionBar.inputText || !CIB.vm.actionBar.inputText.startsWith('/')) {
return;
}
@ -216,6 +222,7 @@ const handlePromptListScroll = () => {
</script>
<template>
<LoadingSpinner :is-show="isShowLoading" />
<main>
<div v-if="isShowChatPrompt" class="box-border fixed bottom-[110px] w-full flex justify-center px-[14px] md:px-[170px] xl:px-[220px] z-999">
<div class="w-0 md:w-[60px]"></div>

View File

@ -3,7 +3,7 @@ import { usePromptStore, type IPrompt } from '@/stores/modules/prompt';
import { NThing, NTag, NEllipsis } from 'naive-ui';
import { storeToRefs } from 'pinia';
const props = defineProps<{
defineProps<{
index: number;
source: IPrompt;
}>();
@ -29,11 +29,11 @@ const selectPrompt = (item: IPrompt) => {
:class="{
'bg-gray-100': index === selectedPromptIndex,
}"
@click="selectPrompt(props.source)"
@click="selectPrompt(source)"
>
<template #description>
<NTag type="info"> {{ props.source.act }} </NTag>
<NTag type="info"> {{ source.act }} </NTag>
</template>
<NEllipsis :tooltip="false" :line-clamp="2">{{ props.source.prompt }}</NEllipsis>
<NEllipsis :tooltip="false" :line-clamp="2">{{ source.prompt }}</NEllipsis>
</NThing>
</template>

View File

@ -0,0 +1 @@
.loading-spinner[data-v-aff729bc]{display:flex;justify-content:center;align-items:center;height:100vh;opacity:1;transition:opacity 2s ease-out}.loading-spinner.hidden[data-v-aff729bc]{opacity:0}.loading-spinner>div[data-v-aff729bc]{width:30px;height:30px;background:linear-gradient(90deg,#2870ea 10.79%,#1b4aef 87.08%);border-radius:100%;display:inline-block;animation:sk-bouncedelay-aff729bc 1.4s infinite ease-in-out both}.loading-spinner .bounce1[data-v-aff729bc]{animation-delay:-.32s}.loading-spinner .bounce2[data-v-aff729bc]{animation-delay:-.16s}@keyframes sk-bouncedelay-aff729bc{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}

File diff suppressed because one or more lines are too long

1160
web/assets/index-aec03a9e.js Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -37,7 +37,7 @@
<script src="/web/js/bing/chat/global.js"></script>
<script src="/web/js/bing/chat/amd.js"></script>
<script src="/web/js/bing/chat/config.js"></script>
<script type="module" crossorigin src="/web/assets/index-7ad4613d.js"></script>
<script type="module" crossorigin src="/web/assets/index-fb0759db.js"></script>
<link rel="stylesheet" href="/web/assets/index-2128d00b.css">
<link rel="manifest" href="/web/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="/web/registerSW.js"></script></head>

View File

@ -1 +1 @@
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didnt register its module`);return e})));self.define=(n,a)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let r={};const o=e=>i(e,c),f={module:{uri:c},exports:r,require:o};s[c]=Promise.all(n.map((e=>f[e]||o(e)))).then((e=>(a(...e),r)))}}define(["./workbox-118fddf1"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-2128d00b.css",revision:null},{url:"assets/index-53586e03.js",revision:null},{url:"assets/index-7ad4613d.js",revision:null},{url:"assets/setting-c6ca7b14.svg",revision:null},{url:"compose.html",revision:"2c3f93033c3f4cef8136ff5a993a087b"},{url:"favicon.ico",revision:"1272c70e1b86b8956598a0349d2f193c"},{url:"img/compose.svg",revision:"4242b76bb8f4da0baf7a75edab0c6754"},{url:"img/logo.svg",revision:"1da58864f14c1a8c28f8587d6dcbc5d0"},{url:"img/pwa/logo-192.png",revision:"be40443731d9d4ead5e9b1f1a6070135"},{url:"img/pwa/logo-512.png",revision:"1217f1c90acb9f231e3135fa44af7efc"},{url:"index.html",revision:"da61b7a23e43ff9f312aeeb3068e9aed"},{url:"js/bing/chat/amd.js",revision:"8d773dc8f2e78b9d29e990aed7821774"},{url:"js/bing/chat/config.js",revision:"3bd7b84479a1f1dcc850abdd4d383a3c"},{url:"js/bing/chat/core.js",revision:"8c11521fd9f049b6ac91e5ad415c2db1"},{url:"js/bing/chat/global.js",revision:"2b5db148d13525a415ecf4e2c929ec43"},{url:"js/bing/chat/lib.js",revision:"1a0f8f43cc025b7b5995e885fed1a3e6"},{url:"registerSW.js",revision:"bf6c2f29aef95e09b1f72cf59f427a55"},{url:"./img/pwa/logo-192.png",revision:"be40443731d9d4ead5e9b1f1a6070135"},{url:"./img/pwa/logo-512.png",revision:"1217f1c90acb9f231e3135fa44af7efc"},{url:"manifest.webmanifest",revision:"ae4ef030ae5d2d4894669fd82aac028d"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"))),e.registerRoute(/(.*?)\.(js|css|ts)/,new e.CacheFirst({cacheName:"js-css-cache",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET"),e.registerRoute(/(.*?)\.(png|jpe?g|svg|gif|bmp|psd|tiff|tga|eps|ico)/,new e.CacheFirst({cacheName:"image-cache",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")}));
if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didnt register its module`);return e})));self.define=(n,a)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let r={};const o=e=>i(e,c),f={module:{uri:c},exports:r,require:o};s[c]=Promise.all(n.map((e=>f[e]||o(e)))).then((e=>(a(...e),r)))}}define(["./workbox-118fddf1"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"assets/index-0e8bf8a6.css",revision:null},{url:"assets/index-2128d00b.css",revision:null},{url:"assets/index-aec03a9e.js",revision:null},{url:"assets/index-fb0759db.js",revision:null},{url:"assets/setting-c6ca7b14.svg",revision:null},{url:"compose.html",revision:"2c3f93033c3f4cef8136ff5a993a087b"},{url:"favicon.ico",revision:"1272c70e1b86b8956598a0349d2f193c"},{url:"img/compose.svg",revision:"4242b76bb8f4da0baf7a75edab0c6754"},{url:"img/logo.svg",revision:"1da58864f14c1a8c28f8587d6dcbc5d0"},{url:"img/pwa/logo-192.png",revision:"be40443731d9d4ead5e9b1f1a6070135"},{url:"img/pwa/logo-512.png",revision:"1217f1c90acb9f231e3135fa44af7efc"},{url:"index.html",revision:"8a8710d2fb269fa86faada35ba164118"},{url:"js/bing/chat/amd.js",revision:"8d773dc8f2e78b9d29e990aed7821774"},{url:"js/bing/chat/config.js",revision:"3bd7b84479a1f1dcc850abdd4d383a3c"},{url:"js/bing/chat/core.js",revision:"8c11521fd9f049b6ac91e5ad415c2db1"},{url:"js/bing/chat/global.js",revision:"2b5db148d13525a415ecf4e2c929ec43"},{url:"js/bing/chat/lib.js",revision:"1a0f8f43cc025b7b5995e885fed1a3e6"},{url:"registerSW.js",revision:"bf6c2f29aef95e09b1f72cf59f427a55"},{url:"./img/pwa/logo-192.png",revision:"be40443731d9d4ead5e9b1f1a6070135"},{url:"./img/pwa/logo-512.png",revision:"1217f1c90acb9f231e3135fa44af7efc"},{url:"manifest.webmanifest",revision:"ae4ef030ae5d2d4894669fd82aac028d"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html"))),e.registerRoute(/(.*?)\.(js|css|ts)/,new e.CacheFirst({cacheName:"js-css-cache",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET"),e.registerRoute(/(.*?)\.(png|jpe?g|svg|gif|bmp|psd|tiff|tga|eps|ico)/,new e.CacheFirst({cacheName:"image-cache",plugins:[new e.ExpirationPlugin({maxEntries:100,maxAgeSeconds:604800}),new e.CacheableResponsePlugin({statuses:[0,200]})]}),"GET")}));