diff --git a/.env b/.env index 7d95f6fb..0b851bbf 100644 --- a/.env +++ b/.env @@ -1,2 +1,5 @@ # 机器学习模块接口地址,此处配合 proxy -VITE_MACHINELEARNING_URL="/ml" \ No newline at end of file +VITE_MACHINELEARNING_URL="/ml" + +VITE_ENABLE_GRAPH=true +VITE_ENABLE_ML=true diff --git a/helm/clickcat/.helmignore b/helm/clickcat/.helmignore new file mode 100644 index 00000000..0e8a0eb3 --- /dev/null +++ b/helm/clickcat/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/helm/clickcat/Chart.yaml b/helm/clickcat/Chart.yaml new file mode 100644 index 00000000..5ec0e147 --- /dev/null +++ b/helm/clickcat/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v2 +name: clickcat +description: A friendly user interface that lets you search,explore and visualize your ClickHouse Data. + +type: application + +version: 0.1.0 + +appVersion: "latest" diff --git a/helm/clickcat/templates/NOTES.txt b/helm/clickcat/templates/NOTES.txt new file mode 100644 index 00000000..35d66ed9 --- /dev/null +++ b/helm/clickcat/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "clickcat.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "clickcat.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "clickcat.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "clickcat.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/helm/clickcat/templates/_helpers.tpl b/helm/clickcat/templates/_helpers.tpl new file mode 100644 index 00000000..721663e8 --- /dev/null +++ b/helm/clickcat/templates/_helpers.tpl @@ -0,0 +1,51 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "clickcat.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "clickcat.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "clickcat.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "clickcat.labels" -}} +helm.sh/chart: {{ include "clickcat.chart" . }} +{{ include "clickcat.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "clickcat.selectorLabels" -}} +app.kubernetes.io/name: {{ include "clickcat.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} \ No newline at end of file diff --git a/helm/clickcat/templates/deployment.yaml b/helm/clickcat/templates/deployment.yaml new file mode 100644 index 00000000..69b0dc8d --- /dev/null +++ b/helm/clickcat/templates/deployment.yaml @@ -0,0 +1,58 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "clickcat.fullname" . }} + labels: + {{- include "clickcat.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "clickcat.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "clickcat.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm/clickcat/templates/ingress.yaml b/helm/clickcat/templates/ingress.yaml new file mode 100644 index 00000000..903c45dc --- /dev/null +++ b/helm/clickcat/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "clickcat.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "clickcat.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/helm/clickcat/templates/service.yaml b/helm/clickcat/templates/service.yaml new file mode 100644 index 00000000..baa0eb06 --- /dev/null +++ b/helm/clickcat/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "clickcat.fullname" . }} + labels: + {{- include "clickcat.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "clickcat.selectorLabels" . | nindent 4 }} diff --git a/helm/clickcat/templates/tests/test-connection.yaml b/helm/clickcat/templates/tests/test-connection.yaml new file mode 100644 index 00000000..8972cc2f --- /dev/null +++ b/helm/clickcat/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "clickcat.fullname" . }}-test-connection" + labels: + {{- include "clickcat.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "clickcat.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/helm/clickcat/values.yaml b/helm/clickcat/values.yaml new file mode 100644 index 00000000..ff02a4f7 --- /dev/null +++ b/helm/clickcat/values.yaml @@ -0,0 +1,65 @@ +# Default values for clickcat. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. +replicaCount: 1 + +image: + repository: nginx + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +podAnnotations: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +nodeSelector: {} + +tolerations: [] + +affinity: {} diff --git a/package.json b/package.json index 2429e2b8..b3a042bf 100644 --- a/package.json +++ b/package.json @@ -23,9 +23,10 @@ "butterfly-dag": "4.3.6", "dayjs": "1.11.3", "echarts": "5.3.3", - "element-plus": "2.2.6", + "element-plus": "2.2.16", "jquery": "3.6.0", "lodash": "4.17.21", + "moment": "^2.29.4", "monaco-editor": "0.29.x", "pinia": "2.0.14", "pinia-plugin-persist": "1.0.0", @@ -38,6 +39,7 @@ "uuidjs": "4.2.11", "vite-plugin-svg-icons": "2.0.1", "vue": "3.2.25", + "vue-global-events": "^2.1.1", "vue-i18n": "9.2.0-beta.40", "vue-router": "4" }, @@ -59,11 +61,11 @@ "eslint-plugin-vue": "9.1.1", "husky": "8.0.0", "lint-staged": "13.0.2", + "rollup": "1.20.0", "sass": "1.52.3", "typescript": "4.5.4", "vite": "2.9.9", "vite-plugin-monaco-editor": "1.0.10", - "vue-tsc": "0.34.7", - "rollup": "1.20.0" + "vue-tsc": "0.34.7" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 83dfc1dd..c7901e89 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: 5.3 +lockfileVersion: 5.4 specifiers: 3d-force-graph: 1.67.7 @@ -13,7 +13,7 @@ specifiers: cross-env: 7.0.3 dayjs: 1.11.3 echarts: 5.3.3 - element-plus: 2.2.6 + element-plus: 2.2.16 eslint: 8.17.0 eslint-config-standard: 17.0.0 eslint-define-config: 1.5.1 @@ -25,6 +25,7 @@ specifiers: jquery: 3.6.0 lint-staged: 13.0.2 lodash: 4.17.21 + moment: ^2.29.4 monaco-editor: 0.29.x pinia: 2.0.14 pinia-plugin-persist: 1.0.0 @@ -42,20 +43,22 @@ specifiers: vite-plugin-monaco-editor: 1.0.10 vite-plugin-svg-icons: 2.0.1 vue: 3.2.25 + vue-global-events: ^2.1.1 vue-i18n: 9.2.0-beta.40 vue-router: '4' vue-tsc: 0.34.7 dependencies: '@element-plus/icons-vue': 2.0.6_vue@3.2.25 - butterfly-dag: 4.3.6_jquery@3.6.0+lodash@4.17.21 + butterfly-dag: 4.3.6_dq5gpbql4sccvlqrt6xudehxa4 dayjs: 1.11.3 echarts: 5.3.3 - element-plus: 2.2.6_vue@3.2.25 + element-plus: 2.2.16_vue@3.2.25 jquery: 3.6.0 lodash: 4.17.21 + moment: 2.29.4 monaco-editor: 0.29.1 - pinia: 2.0.14_typescript@4.5.4+vue@3.2.25 + pinia: 2.0.14_rvwc7kfd64xpiqorn3aa5sklme pinia-plugin-persist: 1.0.0_pinia@2.0.14+vue@3.2.25 randomcolor: 0.6.2 sql-limiter: 3.0.0 @@ -66,6 +69,7 @@ dependencies: uuidjs: 4.2.11 vite-plugin-svg-icons: 2.0.1_vite@2.9.9 vue: 3.2.25 + vue-global-events: 2.1.1_vue@3.2.25 vue-i18n: 9.2.0-beta.40_vue@3.2.25 vue-router: 4.1.4_vue@3.2.25 @@ -74,14 +78,14 @@ devDependencies: '@commitlint/cli': 17.0.2 '@commitlint/config-conventional': 17.0.2 '@types/jquery': 3.5.14 - '@typescript-eslint/eslint-plugin': 5.28.0_e31b29f1fecf005ba924419e2b988db8 - '@typescript-eslint/parser': 5.28.0_eslint@8.17.0+typescript@4.5.4 + '@typescript-eslint/eslint-plugin': 5.28.0_4mnst4p6z4afxkjeigpcxgenxa + '@typescript-eslint/parser': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u '@vitejs/plugin-vue': 2.3.3_vite@2.9.9+vue@3.2.25 cross-env: 7.0.3 eslint: 8.17.0 - eslint-config-standard: 17.0.0_e06a80ed3e0e8d52f93dc737cf677d38 + eslint-config-standard: 17.0.0_4bvib3j6b2gvf6j5y4346z35ha eslint-define-config: 1.5.1 - eslint-plugin-import: 2.26.0_eslint@8.17.0 + eslint-plugin-import: 2.26.0_wyrfqmvemfacbroyi3ypviy7f4 eslint-plugin-n: 15.0.0_eslint@8.17.0 eslint-plugin-promise: 6.0.0_eslint@8.17.0 eslint-plugin-vue: 9.1.1_eslint@8.17.0 @@ -134,10 +138,13 @@ packages: '@babel/highlight': 7.18.6 dev: true + /@babel/helper-string-parser/7.18.10: + resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} + engines: {node: '>=6.9.0'} + /@babel/helper-validator-identifier/7.18.6: resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} engines: {node: '>=6.9.0'} - dev: true /@babel/highlight/7.18.6: resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} @@ -152,6 +159,8 @@ packages: resolution: {integrity: sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==} engines: {node: '>=6.0.0'} hasBin: true + dependencies: + '@babel/types': 7.19.0 /@babel/runtime/7.18.9: resolution: {integrity: sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==} @@ -160,6 +169,14 @@ packages: regenerator-runtime: 0.13.9 dev: true + /@babel/types/7.19.0: + resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.18.10 + '@babel/helper-validator-identifier': 7.18.6 + to-fast-properties: 2.0.0 + /@commitlint/cli/17.0.2: resolution: {integrity: sha512-Axe89Js0YzGGd4gxo3JLlF7yIdjOVpG1LbOorGc6PfYF+drBh14PvarSDLzyd2TNqdylUCq9wb9/A88ZjIdyhA==} engines: {node: '>=v14'} @@ -245,7 +262,7 @@ packages: '@types/node': 18.7.11 chalk: 4.1.2 cosmiconfig: 7.0.1 - cosmiconfig-typescript-loader: 2.0.2_c532c1b383b0670bfdc8e007fab27648 + cosmiconfig-typescript-loader: 2.0.2_yuzmdm4dwbtqx7oi4ad7vmtwja lodash: 4.17.21 resolve-from: 5.0.0 typescript: 4.7.4 @@ -346,7 +363,6 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true - dev: true optional: true /@eslint/eslintrc/1.3.0: @@ -366,14 +382,14 @@ packages: - supports-color dev: true - /@floating-ui/core/0.7.3: - resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} + /@floating-ui/core/1.0.1: + resolution: {integrity: sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==} dev: false - /@floating-ui/dom/0.5.4: - resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} + /@floating-ui/dom/1.0.1: + resolution: {integrity: sha512-wBDiLUKWU8QNPNOTAFHiIAkBv1KlHauG2AhqjSeh2H+wR8PX+AArXfz8NkRexH5PgMJMmSOS70YS89AbWYh5dA==} dependencies: - '@floating-ui/core': 0.7.3 + '@floating-ui/core': 1.0.1 dev: false /@humanwhocodes/config-array/0.9.5: @@ -552,11 +568,11 @@ packages: '@types/node': 18.7.11 dev: false - /@types/web-bluetooth/0.0.14: - resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==} + /@types/web-bluetooth/0.0.15: + resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} dev: false - /@typescript-eslint/eslint-plugin/5.28.0_e31b29f1fecf005ba924419e2b988db8: + /@typescript-eslint/eslint-plugin/5.28.0_4mnst4p6z4afxkjeigpcxgenxa: resolution: {integrity: sha512-DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -567,10 +583,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.28.0_eslint@8.17.0+typescript@4.5.4 + '@typescript-eslint/parser': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u '@typescript-eslint/scope-manager': 5.28.0 - '@typescript-eslint/type-utils': 5.28.0_eslint@8.17.0+typescript@4.5.4 - '@typescript-eslint/utils': 5.28.0_eslint@8.17.0+typescript@4.5.4 + '@typescript-eslint/type-utils': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u + '@typescript-eslint/utils': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u debug: 4.3.4 eslint: 8.17.0 functional-red-black-tree: 1.0.1 @@ -583,7 +599,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/5.28.0_eslint@8.17.0+typescript@4.5.4: + /@typescript-eslint/parser/5.28.0_pn4c2euezwjqh4cpvwz4zteq6u: resolution: {integrity: sha512-ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -611,7 +627,7 @@ packages: '@typescript-eslint/visitor-keys': 5.28.0 dev: true - /@typescript-eslint/type-utils/5.28.0_eslint@8.17.0+typescript@4.5.4: + /@typescript-eslint/type-utils/5.28.0_pn4c2euezwjqh4cpvwz4zteq6u: resolution: {integrity: sha512-SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -621,7 +637,7 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.28.0_eslint@8.17.0+typescript@4.5.4 + '@typescript-eslint/utils': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u debug: 4.3.4 eslint: 8.17.0 tsutils: 3.21.0_typescript@4.5.4 @@ -656,7 +672,7 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.28.0_eslint@8.17.0+typescript@4.5.4: + /@typescript-eslint/utils/5.28.0_pn4c2euezwjqh4cpvwz4zteq6u: resolution: {integrity: sha512-E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -730,7 +746,6 @@ packages: '@vue/shared': 3.2.25 estree-walker: 2.0.2 source-map: 0.6.1 - dev: false /@vue/compiler-core/3.2.37: resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} @@ -746,7 +761,6 @@ packages: dependencies: '@vue/compiler-core': 3.2.25 '@vue/shared': 3.2.25 - dev: false /@vue/compiler-dom/3.2.37: resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} @@ -768,7 +782,6 @@ packages: magic-string: 0.25.9 postcss: 8.4.16 source-map: 0.6.1 - dev: false /@vue/compiler-sfc/3.2.37: resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} @@ -790,7 +803,6 @@ packages: dependencies: '@vue/compiler-dom': 3.2.25 '@vue/shared': 3.2.25 - dev: false /@vue/compiler-ssr/3.2.37: resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} @@ -811,7 +823,6 @@ packages: '@vue/shared': 3.2.25 estree-walker: 2.0.2 magic-string: 0.25.9 - dev: false /@vue/reactivity-transform/3.2.37: resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} @@ -827,7 +838,6 @@ packages: resolution: {integrity: sha512-Dxc/u/dxoneIDqyfmuwPVBR0G3OQJqe3Dtz4z3NGt+CGj4UuOZQfN5raJPmp6xGYgrtC6PAWoCgHhyrgr1qCtg==} dependencies: '@vue/shared': 3.2.25 - dev: false /@vue/reactivity/3.2.37: resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} @@ -840,7 +850,6 @@ packages: dependencies: '@vue/reactivity': 3.2.25 '@vue/shared': 3.2.25 - dev: false /@vue/runtime-dom/3.2.25: resolution: {integrity: sha512-3gGeyHnygn4yG6bssRKhQIxnE8vgB8FtYUUwoYoA/Pm0vZ+bGPoZax4TbtZD9eW9rvs8CY8boNp4t/sJaPJrRQ==} @@ -848,7 +857,6 @@ packages: '@vue/runtime-core': 3.2.25 '@vue/shared': 3.2.25 csstype: 2.6.20 - dev: false /@vue/server-renderer/3.2.25_vue@3.2.25: resolution: {integrity: sha512-qFRmcyeyyhWbnTPn6cbCZ4bjeuPLSkUpFa98p4LEJtFBFbxjGnrHXHOjYxCY3Lznmxe0kMM3qG4t3GnjcXP12w==} @@ -858,51 +866,37 @@ packages: '@vue/compiler-ssr': 3.2.25 '@vue/shared': 3.2.25 vue: 3.2.25 - dev: false /@vue/shared/3.2.25: resolution: {integrity: sha512-DkHJFV2gw9WBRmUCa21eyG0WvlF0l1QFOgTkWj29O4mt2Tv3BSE5PQOKhUruZIym4bBYCqx9ZGtoD1WohDprow==} - dev: false /@vue/shared/3.2.37: resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} dev: true - /@vueuse/core/8.9.4_vue@3.2.25: - resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/core/9.2.0_vue@3.2.25: + resolution: {integrity: sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==} dependencies: - '@types/web-bluetooth': 0.0.14 - '@vueuse/metadata': 8.9.4 - '@vueuse/shared': 8.9.4_vue@3.2.25 - vue: 3.2.25 + '@types/web-bluetooth': 0.0.15 + '@vueuse/metadata': 9.2.0 + '@vueuse/shared': 9.2.0_vue@3.2.25 vue-demi: 0.13.10_vue@3.2.25 + transitivePeerDependencies: + - '@vue/composition-api' + - vue dev: false - /@vueuse/metadata/8.9.4: - resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==} + /@vueuse/metadata/9.2.0: + resolution: {integrity: sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==} dev: false - /@vueuse/shared/8.9.4_vue@3.2.25: - resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==} - peerDependencies: - '@vue/composition-api': ^1.1.0 - vue: ^2.6.0 || ^3.2.0 - peerDependenciesMeta: - '@vue/composition-api': - optional: true - vue: - optional: true + /@vueuse/shared/9.2.0_vue@3.2.25: + resolution: {integrity: sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==} dependencies: - vue: 3.2.25 vue-demi: 0.13.10_vue@3.2.25 + transitivePeerDependencies: + - '@vue/composition-api' + - vue dev: false /JSONStream/1.3.5: @@ -1020,7 +1014,6 @@ packages: dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 - dev: true /arg/4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -1129,7 +1122,6 @@ packages: /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} - dev: true /bluebird/3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} @@ -1159,6 +1151,8 @@ packages: snapdragon-node: 2.1.1 split-string: 3.1.0 to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color dev: false /braces/3.0.2: @@ -1166,9 +1160,8 @@ packages: engines: {node: '>=8'} dependencies: fill-range: 7.0.1 - dev: true - /butterfly-dag/4.3.6_jquery@3.6.0+lodash@4.17.21: + /butterfly-dag/4.3.6_dq5gpbql4sccvlqrt6xudehxa4: resolution: {integrity: sha512-PFQzyY2Vb+sz1v9bnh+hwkAi+iJg03nRJEKapKcemRVxUrlVIARewLp+p6zJaVZKVuKio7oGCZHeWvsF4IU/+w==} peerDependencies: jquery: '>=2.0.0' @@ -1267,7 +1260,6 @@ packages: readdirp: 3.6.0 optionalDependencies: fsevents: 2.3.2 - dev: true /class-utils/0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} @@ -1400,8 +1392,8 @@ packages: engines: {node: '>=10'} hasBin: true dependencies: - is-text-path: 1.0.1 JSONStream: 1.3.5 + is-text-path: 1.0.1 lodash: 4.17.21 meow: 8.1.2 split2: 3.2.2 @@ -1421,7 +1413,7 @@ packages: vary: 1.1.2 dev: false - /cosmiconfig-typescript-loader/2.0.2_c532c1b383b0670bfdc8e007fab27648: + /cosmiconfig-typescript-loader/2.0.2_yuzmdm4dwbtqx7oi4ad7vmtwja: resolution: {integrity: sha512-KmE+bMjWMXJbkWCeY4FJX/npHuZPNr9XF9q9CIQ/bpFwi1qHfCmSiKarrCcRa0LO4fWjk93pVoeRtJAkTGcYNw==} engines: {node: '>=12', npm: '>=6'} peerDependencies: @@ -1430,7 +1422,7 @@ packages: dependencies: '@types/node': 18.7.11 cosmiconfig: 7.0.1 - ts-node: 10.9.1_c532c1b383b0670bfdc8e007fab27648 + ts-node: 10.9.1_yuzmdm4dwbtqx7oi4ad7vmtwja typescript: 4.7.4 transitivePeerDependencies: - '@swc/core' @@ -1507,7 +1499,6 @@ packages: /csstype/2.6.20: resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} - dev: false /csstype/3.1.0: resolution: {integrity: sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==} @@ -1652,11 +1643,21 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 dev: true @@ -1823,24 +1824,24 @@ packages: zrender: 5.3.2 dev: false - /element-plus/2.2.6_vue@3.2.25: - resolution: {integrity: sha512-N9G4yWSxDt1YtreCJgt7UaSsXKuR4Fzb3ThzlBjbGDYDhcHijsrLL3qkdLZgeoSB13LRyr9pgP1ljNXdaYGa+g==} + /element-plus/2.2.16_vue@3.2.25: + resolution: {integrity: sha512-rvaTMFIujec9YDC5lyaiQv2XVUCHuhVDq2k+9vQxP78N8Wd07iEOGa9pvEVOO2uYc75l4rSl2RE/IWPH/6Mdzw==} peerDependencies: vue: ^3.2.0 dependencies: '@ctrl/tinycolor': 3.4.1 '@element-plus/icons-vue': 2.0.6_vue@3.2.25 - '@floating-ui/dom': 0.5.4 + '@floating-ui/dom': 1.0.1 '@popperjs/core': /@sxzz/popperjs-es/2.11.7 '@types/lodash': 4.14.184 '@types/lodash-es': 4.17.6 - '@vueuse/core': 8.9.4_vue@3.2.25 + '@vueuse/core': 9.2.0_vue@3.2.25 async-validator: 4.2.5 dayjs: 1.11.3 escape-html: 1.0.3 lodash: 4.17.21 lodash-es: 4.17.21 - lodash-unified: 1.0.2_da03a4540fbd16bbaafbb96724306afd + lodash-unified: 1.0.2_3ib2ivapxullxkx3xftsimdk7u memoize-one: 6.0.0 normalize-wheel-es: 1.2.0 vue: 3.2.25 @@ -1925,7 +1926,6 @@ packages: cpu: [x64] os: [android] requiresBuild: true - dev: true optional: true /esbuild-android-arm64/0.14.54: @@ -1934,7 +1934,6 @@ packages: cpu: [arm64] os: [android] requiresBuild: true - dev: true optional: true /esbuild-darwin-64/0.14.54: @@ -1943,7 +1942,6 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-darwin-arm64/0.14.54: @@ -1952,7 +1950,6 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true - dev: true optional: true /esbuild-freebsd-64/0.14.54: @@ -1961,7 +1958,6 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-freebsd-arm64/0.14.54: @@ -1970,7 +1966,6 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true - dev: true optional: true /esbuild-linux-32/0.14.54: @@ -1979,7 +1974,6 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-64/0.14.54: @@ -1988,7 +1982,6 @@ packages: cpu: [x64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm/0.14.54: @@ -1997,7 +1990,6 @@ packages: cpu: [arm] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-arm64/0.14.54: @@ -2006,7 +1998,6 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-mips64le/0.14.54: @@ -2015,7 +2006,6 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-ppc64le/0.14.54: @@ -2024,7 +2014,6 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-riscv64/0.14.54: @@ -2033,7 +2022,6 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-linux-s390x/0.14.54: @@ -2042,7 +2030,6 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true - dev: true optional: true /esbuild-netbsd-64/0.14.54: @@ -2051,7 +2038,6 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true - dev: true optional: true /esbuild-openbsd-64/0.14.54: @@ -2060,7 +2046,6 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true - dev: true optional: true /esbuild-sunos-64/0.14.54: @@ -2069,7 +2054,6 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true - dev: true optional: true /esbuild-windows-32/0.14.54: @@ -2078,7 +2062,6 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-64/0.14.54: @@ -2087,7 +2070,6 @@ packages: cpu: [x64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild-windows-arm64/0.14.54: @@ -2096,7 +2078,6 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true - dev: true optional: true /esbuild/0.14.54: @@ -2126,7 +2107,6 @@ packages: esbuild-windows-32: 0.14.54 esbuild-windows-64: 0.14.54 esbuild-windows-arm64: 0.14.54 - dev: true /escalade/3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2146,7 +2126,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/17.0.0_e06a80ed3e0e8d52f93dc737cf677d38: + /eslint-config-standard/17.0.0_4bvib3j6b2gvf6j5y4346z35ha: resolution: {integrity: sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==} peerDependencies: eslint: ^8.0.1 @@ -2155,7 +2135,7 @@ packages: eslint-plugin-promise: ^6.0.0 dependencies: eslint: 8.17.0 - eslint-plugin-import: 2.26.0_eslint@8.17.0 + eslint-plugin-import: 2.26.0_wyrfqmvemfacbroyi3ypviy7f4 eslint-plugin-n: 15.0.0_eslint@8.17.0 eslint-plugin-promise: 6.0.0_eslint@8.17.0 dev: true @@ -2170,19 +2150,37 @@ packages: dependencies: debug: 3.2.7 resolve: 1.22.1 + transitivePeerDependencies: + - supports-color dev: true - /eslint-module-utils/2.7.4_eslint@8.17.0: + /eslint-module-utils/2.7.4_pudgocv7lvbqrxvvlp5wdogo2e: resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true eslint: optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: + '@typescript-eslint/parser': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u debug: 3.2.7 eslint: 8.17.0 + eslint-import-resolver-node: 0.3.6 + transitivePeerDependencies: + - supports-color dev: true /eslint-plugin-es/4.1.0_eslint@8.17.0: @@ -2196,19 +2194,24 @@ packages: regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.26.0_eslint@8.17.0: + /eslint-plugin-import/2.26.0_wyrfqmvemfacbroyi3ypviy7f4: resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: + '@typescript-eslint/parser': 5.28.0_pn4c2euezwjqh4cpvwz4zteq6u array-includes: 3.1.5 array.prototype.flat: 1.3.0 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.17.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4_eslint@8.17.0 + eslint-module-utils: 2.7.4_pudgocv7lvbqrxvvlp5wdogo2e has: 1.0.3 is-core-module: 2.10.0 is-glob: 4.0.3 @@ -2216,6 +2219,10 @@ packages: object.values: 1.1.5 resolve: 1.22.1 tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: true /eslint-plugin-n/15.0.0_eslint@8.17.0: @@ -2444,6 +2451,8 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color dev: false /extend-shallow/2.0.1: @@ -2473,6 +2482,8 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color dev: false /fast-deep-equal/3.1.3: @@ -2526,7 +2537,6 @@ packages: engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 - dev: true /find-up/4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} @@ -2585,12 +2595,10 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true - dev: true optional: true /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true /function.prototype.name/1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} @@ -2662,7 +2670,6 @@ packages: engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 - dev: true /glob-parent/6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} @@ -2802,7 +2809,6 @@ packages: engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - dev: true /he/1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} @@ -2860,7 +2866,6 @@ packages: /immutable/4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - dev: true /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} @@ -2945,7 +2950,6 @@ packages: engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 - dev: true /is-boolean-object/1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} @@ -2968,7 +2972,6 @@ packages: resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 - dev: true /is-data-descriptor/0.1.4: resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==} @@ -3024,7 +3027,6 @@ packages: /is-extglob/2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - dev: true /is-fullwidth-code-point/3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} @@ -3041,7 +3043,6 @@ packages: engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 - dev: true /is-negative-zero/2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} @@ -3065,7 +3066,6 @@ packages: /is-number/7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - dev: true /is-obj/2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} @@ -3327,7 +3327,7 @@ packages: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false - /lodash-unified/1.0.2_da03a4540fbd16bbaafbb96724306afd: + /lodash-unified/1.0.2_3ib2ivapxullxkx3xftsimdk7u: resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==} peerDependencies: '@types/lodash-es': '*' @@ -3452,6 +3452,8 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color dev: false /micromatch/4.0.5: @@ -3530,9 +3532,12 @@ packages: ml-array-rescale: 1.3.7 dev: false + /moment/2.29.4: + resolution: {integrity: sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==} + dev: false + /monaco-editor/0.29.1: resolution: {integrity: sha512-rguaEG/zrPQSaKzQB7IfX/PpNa0qxF1FY8ZXRkN4WIl8qZdTQRSRJCtRto7IMcSgrU6H53RXI+fTcywOBC4aVw==} - dev: false /moo/0.5.1: resolution: {integrity: sha512-I1mnb5xn4fO80BH9BLcF0yLypy2UKl+Cb01Fu0hJRkJjlCRtxZMWkTdAtDd5ZqCOxtCkhmRwyI57vWT+1iZ67w==} @@ -3568,6 +3573,8 @@ packages: regex-not: 1.0.2 snapdragon: 0.8.2 to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color dev: false /natural-compare/1.4.0: @@ -3622,7 +3629,6 @@ packages: /normalize-path/3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - dev: true /normalize-wheel-es/1.2.0: resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} @@ -3819,7 +3825,6 @@ packages: /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true /path-type/4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -3836,7 +3841,6 @@ packages: /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - dev: true /pidtree/0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} @@ -3854,12 +3858,12 @@ packages: '@vue/composition-api': optional: true dependencies: - pinia: 2.0.14_typescript@4.5.4+vue@3.2.25 + pinia: 2.0.14_rvwc7kfd64xpiqorn3aa5sklme vue: 3.2.25 vue-demi: 0.12.5_vue@3.2.25 dev: false - /pinia/2.0.14_typescript@4.5.4+vue@3.2.25: + /pinia/2.0.14_rvwc7kfd64xpiqorn3aa5sklme: resolution: {integrity: sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==} peerDependencies: '@vue/composition-api': ^1.4.0 @@ -4026,7 +4030,6 @@ packages: engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 - dev: true /redent/3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -4111,7 +4114,6 @@ packages: is-core-module: 2.10.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - dev: true /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -4157,7 +4159,6 @@ packages: hasBin: true optionalDependencies: fsevents: 2.3.2 - dev: true /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -4188,7 +4189,6 @@ packages: chokidar: 3.5.3 immutable: 4.1.0 source-map-js: 1.0.2 - dev: true /semver/5.7.1: resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} @@ -4301,6 +4301,8 @@ packages: source-map: 0.5.7 source-map-resolve: 0.5.3 use: 3.1.1 + transitivePeerDependencies: + - supports-color dev: false /source-map-js/1.0.2: @@ -4515,7 +4517,6 @@ packages: /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - dev: true /svg-baker/1.7.0: resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==} @@ -4533,6 +4534,8 @@ packages: posthtml-svg-mode: 1.0.3 query-string: 4.3.4 traverse: 0.6.6 + transitivePeerDependencies: + - supports-color dev: false /svgo/2.8.0: @@ -4626,6 +4629,10 @@ packages: resolution: {integrity: sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==} dev: true + /to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + /to-object-path/0.3.0: resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} engines: {node: '>=0.10.0'} @@ -4646,7 +4653,6 @@ packages: engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 - dev: true /to-regex/3.0.2: resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} @@ -4667,7 +4673,7 @@ packages: engines: {node: '>=8'} dev: true - /ts-node/10.9.1_c532c1b383b0670bfdc8e007fab27648: + /ts-node/10.9.1_yuzmdm4dwbtqx7oi4ad7vmtwja: resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -4764,7 +4770,6 @@ packages: resolution: {integrity: sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==} engines: {node: '>=4.2.0'} hasBin: true - dev: true /typescript/4.7.4: resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} @@ -4901,7 +4906,6 @@ packages: sass: 1.52.3 optionalDependencies: fsevents: 2.3.2 - dev: true /vue-demi/0.12.5_vue@3.2.25: resolution: {integrity: sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==} @@ -4951,6 +4955,14 @@ packages: - supports-color dev: true + /vue-global-events/2.1.1_vue@3.2.25: + resolution: {integrity: sha512-iYgBmtbj/yLPADpB86p7MMjMEsiR/G/sYMbl9F85irjVBK7Q1TdqLRR10IfnZ6llNVrH/u91lGvNbE6s7u729Q==} + peerDependencies: + vue: ^3.0.0-beta.20 + dependencies: + vue: 3.2.25 + dev: false + /vue-i18n/9.2.0-beta.40_vue@3.2.25: resolution: {integrity: sha512-UwcGsbTTaDJry6BbFFzt115EVHN/bXi07DyUIZ4zrYeGMBPp2QAptMwVaGUQid1gaMmUreAKarGIqw46oCQEvg==} engines: {node: '>= 14'} @@ -4991,7 +5003,6 @@ packages: '@vue/runtime-dom': 3.2.25 '@vue/server-renderer': 3.2.25_vue@3.2.25 '@vue/shared': 3.2.25 - dev: false /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} diff --git a/src/assets/icons/svg/open_in_new.svg b/src/assets/icons/svg/open_in_new.svg new file mode 100644 index 00000000..955d5c2b --- /dev/null +++ b/src/assets/icons/svg/open_in_new.svg @@ -0,0 +1,63 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index 36ffbdf0..00000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,72 +0,0 @@ - - - - - diff --git a/src/components/sql/EditorTabPane.vue b/src/components/sql/EditorTabPane.vue index 7516d1d8..639a4e5d 100644 --- a/src/components/sql/EditorTabPane.vue +++ b/src/components/sql/EditorTabPane.vue @@ -9,6 +9,7 @@ import { useSqlStore } from '@/store' import { query } from '@/utils/http' import { Statistics } from './types' import { ExportData } from './ExportData' + const sqlStore = useSqlStore() const props = defineProps<{ @@ -83,7 +84,8 @@ const queryTableData = (rows = 100) => { statistics.value = { bytes_read: +(bytes_read / 1024).toFixed(1), elapsed: elapsed.toFixed(2), - rows_read + rows_read, + timestamp: new Date() } } else { queryTableDataErrorMsg.value = 'Completed' diff --git a/src/components/sql/EditorTabPaneTable.vue b/src/components/sql/EditorTabPaneTable.vue index 50492a68..eff83cea 100644 --- a/src/components/sql/EditorTabPaneTable.vue +++ b/src/components/sql/EditorTabPaneTable.vue @@ -3,6 +3,7 @@ import { ref, toRaw, toRefs, nextTick } from 'vue' import { ArrowDown, Download, FullScreen } from '@element-plus/icons-vue' import { Statistics } from './types' import Empty from '../metrics/Empty.vue' +import moment from 'moment' const props = defineProps<{ columns: any[], @@ -68,6 +69,11 @@ const entryEditMode = (row:any, column:any, cell:any) => { defineExpose({ getDragElement }) + +function formatTimestamp(val: Date) { + return moment(val).format() + +} - - + @@ -364,10 +303,15 @@ defineExpose({ border-bottom-right-radius: 4px; border-top-right-radius: 4px; } +.search-checkbox { + display: flex; + justify-content: left; + align-items: left; + height: 32px; +} .custom-tree-node { position: relative; font-size: 16px; - line-height: 56px; z-index: 2; } .tree-content { @@ -375,14 +319,12 @@ defineExpose({ overflow-y: auto; :deep(.el-tree-node__content) { - position: relative; - height: 56px; background-color: unset; } .suffix { position: absolute; - top: 17px; - right: 10px; + top: 0px; + right: 0px; color: rgba(255, 255, 255, 0.45); z-index: 2; } @@ -393,8 +335,8 @@ defineExpose({ .root-btn { position: absolute; - top: 17px; - right: 10px; + top: 5px; + right: 0px; display: flex; z-index: 2; @@ -417,5 +359,12 @@ defineExpose({ position: relative; z-index: 2; } + .open-btn { + margin-left: 2px; + + *:hover { + color: var(--el-color-primary) !important; + } + } } diff --git a/src/components/sql/SimpleEditor.vue b/src/components/sql/SimpleEditor.vue index 6fedae31..591d22c3 100644 --- a/src/components/sql/SimpleEditor.vue +++ b/src/components/sql/SimpleEditor.vue @@ -100,8 +100,15 @@ defineExpose({ registerTable, getSelectionValue }) + +function runQuery() { + emit('queryAction') +}