Commit a89eeef6f3a0b9863d28cf516b126a938eed7361
1 parent
fab7a6c5
feat(time): added time compoennt close #285
Showing
22 changed files
with
313 additions
and
75 deletions
.env.development
... | ... | @@ -7,7 +7,8 @@ VITE_USE_MOCK = true |
7 | 7 | VITE_PUBLIC_PATH = / |
8 | 8 | |
9 | 9 | # Cross-domain proxy, you can configure multiple |
10 | -VITE_PROXY=[["/basic-api","http://localhost:3000"],["/upload","http://localhost:3001/upload"]] | |
10 | +# Please note that no line breaks | |
11 | +VITE_PROXY = [["/basic-api","http://localhost:3000"],["/upload","http://localhost:3001/upload"]] | |
11 | 12 | # VITE_PROXY=[["/api","https://vvbin.cn/test"]] |
12 | 13 | |
13 | 14 | # Delete console | ... | ... |
.vscode/settings.json
... | ... | @@ -6,18 +6,18 @@ |
6 | 6 | //============= Editor ====================== |
7 | 7 | //=========================================== |
8 | 8 | "explorer.openEditors.visible": 0, |
9 | + "editor.tabSize": 2, | |
10 | + "editor.renderControlCharacters": true, | |
11 | + "window.zoomLevel": -1, | |
9 | 12 | "editor.minimap.renderCharacters": false, |
10 | 13 | "editor.minimap.maxColumn": 300, |
11 | 14 | "editor.minimap.showSlider": "always", |
12 | - "editor.smoothScrolling": true, | |
13 | 15 | "editor.cursorBlinking": "phase", |
14 | 16 | "editor.cursorSmoothCaretAnimation": true, |
15 | 17 | "editor.detectIndentation": false, |
16 | 18 | "editor.defaultFormatter": "esbenp.prettier-vscode", |
17 | 19 | "diffEditor.ignoreTrimWhitespace": false, |
18 | 20 | "javascript.format.insertSpaceBeforeFunctionParenthesis": true, |
19 | - "editor.formatOnPaste": true, | |
20 | - "editor.formatOnSave": true, | |
21 | 21 | "editor.suggestSelection": "first", |
22 | 22 | "editor.trimAutoWhitespace": true, |
23 | 23 | "editor.quickSuggestions": { |
... | ... | @@ -39,7 +39,6 @@ |
39 | 39 | "emmet.syntaxProfiles": { |
40 | 40 | "vue-html": "html", |
41 | 41 | "vue": "html", |
42 | - "javascript": "javascriptreact", | |
43 | 42 | "xml": { |
44 | 43 | "attr_quotes": "single" |
45 | 44 | } |
... | ... | @@ -80,7 +79,6 @@ |
80 | 79 | "files.exclude": { |
81 | 80 | "**/bower_components": true, |
82 | 81 | "**/.idea": true, |
83 | - "**/yarn.lock": true, | |
84 | 82 | "**/tmp": true, |
85 | 83 | "**/.git": true, |
86 | 84 | "**/.svn": true, |
... | ... | @@ -89,7 +87,6 @@ |
89 | 87 | "**/.DS_Store": true |
90 | 88 | }, |
91 | 89 | "files.watcherExclude": { |
92 | - // 文件监视排除 | |
93 | 90 | "**/.git/objects/**": true, |
94 | 91 | "**/.git/subtree-cache/**": true, |
95 | 92 | "**/.vscode/**": true, |
... | ... | @@ -99,10 +96,6 @@ |
99 | 96 | "**/dist/**": true, |
100 | 97 | "**/yarn.lock": true |
101 | 98 | }, |
102 | - "files.associations": { | |
103 | - "*.vue": "vue", | |
104 | - "*.wxss": "css" | |
105 | - }, | |
106 | 99 | "stylelint.enable": true, |
107 | 100 | "stylelint.packageManager": "yarn", |
108 | 101 | // ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ | ... | ... |
CHANGELOG.zh_CN.md
build/vite/optimizer.ts
1 | 1 | // TODO |
2 | -import type { GetManualChunk, GetManualChunkApi } from 'rollup'; | |
2 | +import type { GetManualChunk } from 'rollup'; | |
3 | 3 | |
4 | 4 | // |
5 | 5 | const vendorLibs: { match: string[]; output: string }[] = [ |
... | ... | @@ -10,8 +10,7 @@ const vendorLibs: { match: string[]; output: string }[] = [ |
10 | 10 | ]; |
11 | 11 | |
12 | 12 | // @ts-ignore |
13 | -export const configManualChunk: GetManualChunk = (id: string, api: GetManualChunkApi) => { | |
14 | - console.log(api); | |
13 | +export const configManualChunk: GetManualChunk = (id: string) => { | |
15 | 14 | if (/[\\/]node_modules[\\/]/.test(id)) { |
16 | 15 | const matchItem = vendorLibs.find((item) => { |
17 | 16 | const reg = new RegExp(`[\\/]node_modules[\\/]_?(${item.match.join('|')})(.*)`, 'ig'); | ... | ... |
package.json
... | ... | @@ -49,7 +49,7 @@ |
49 | 49 | "vditor": "^3.8.2", |
50 | 50 | "vue": "^3.0.7", |
51 | 51 | "vue-i18n": "^9.0.0", |
52 | - "vue-router": "^4.0.4", | |
52 | + "vue-router": "^4.0.5", | |
53 | 53 | "vue-types": "^3.0.2", |
54 | 54 | "vuex": "^4.0.0", |
55 | 55 | "vuex-module-decorators": "^1.0.1", |
... | ... | @@ -118,7 +118,7 @@ |
118 | 118 | "vite-plugin-style-import": "^0.8.1", |
119 | 119 | "vite-plugin-svg-icons": "^0.3.4", |
120 | 120 | "vite-plugin-theme": "^0.4.8", |
121 | - "vite-plugin-windicss": "0.7.2", | |
121 | + "vite-plugin-windicss": "0.8.2", | |
122 | 122 | "vue-eslint-parser": "^7.6.0", |
123 | 123 | "yargs": "^16.2.0" |
124 | 124 | }, | ... | ... |
src/components/Time/index.ts
0 → 100644
1 | +export { default as Time } from './src/index.vue'; | ... | ... |
src/components/Time/src/index.vue
0 → 100644
1 | +<template> | |
2 | + <span>{{ date }}</span> | |
3 | +</template> | |
4 | +<script lang="ts"> | |
5 | + import { defineComponent, ref, watch } from 'vue'; | |
6 | + | |
7 | + import { useI18n } from '/@/hooks/web/useI18n'; | |
8 | + import { useIntervalFn } from '@vueuse/core'; | |
9 | + | |
10 | + import { formatToDateTime, formatToDate, dateUtil } from '/@/utils/dateUtil'; | |
11 | + import { isNumber, isObject, isString } from '/@/utils/is'; | |
12 | + import { propTypes } from '/@/utils/propTypes'; | |
13 | + | |
14 | + const ONE_SECONDS = 1000; | |
15 | + const ONE_MINUTES = ONE_SECONDS * 60; | |
16 | + const ONE_HOUR = ONE_MINUTES * 60; | |
17 | + const ONE_DAY = ONE_HOUR * 24; | |
18 | + export default defineComponent({ | |
19 | + name: 'Time', | |
20 | + props: { | |
21 | + value: propTypes.oneOfType([propTypes.number, propTypes.instanceOf(Date), propTypes.string]) | |
22 | + .isRequired, | |
23 | + step: propTypes.number.def(60), | |
24 | + mode: propTypes.oneOf(['date', 'datetime', 'relative']).def('relative'), | |
25 | + }, | |
26 | + setup(props) { | |
27 | + const date = ref(''); | |
28 | + | |
29 | + const { t } = useI18n(); | |
30 | + | |
31 | + useIntervalFn(setTime, props.step * ONE_SECONDS); | |
32 | + | |
33 | + watch( | |
34 | + () => props.value, | |
35 | + () => { | |
36 | + setTime(); | |
37 | + }, | |
38 | + { immediate: true } | |
39 | + ); | |
40 | + | |
41 | + function getTime() { | |
42 | + const { value } = props; | |
43 | + let time: number = 0; | |
44 | + if (isNumber(value)) { | |
45 | + const timestamp = value.toString().length > 10 ? value : value * 1000; | |
46 | + time = new Date(timestamp).getTime(); | |
47 | + } else if (isString(value)) { | |
48 | + time = new Date(value).getTime(); | |
49 | + } else if (isObject(value)) { | |
50 | + time = value.getTime(); | |
51 | + } | |
52 | + return time; | |
53 | + } | |
54 | + | |
55 | + function setTime() { | |
56 | + const { mode, value } = props; | |
57 | + const time = getTime(); | |
58 | + if (mode === 'relative') { | |
59 | + date.value = getRelativeTime(time); | |
60 | + } else { | |
61 | + if (mode === 'datetime') { | |
62 | + date.value = formatToDateTime(value); | |
63 | + } else if (mode === 'date') { | |
64 | + date.value = formatToDate(value); | |
65 | + } | |
66 | + } | |
67 | + } | |
68 | + | |
69 | + function getRelativeTime(timeStamp: number) { | |
70 | + const currentTime = new Date().getTime(); | |
71 | + | |
72 | + // Determine whether the incoming timestamp is earlier than the current timestamp | |
73 | + const isBefore = dateUtil(timeStamp).isBefore(currentTime); | |
74 | + | |
75 | + let diff = currentTime - timeStamp; | |
76 | + if (!isBefore) { | |
77 | + diff = -diff; | |
78 | + } | |
79 | + | |
80 | + let resStr = ''; | |
81 | + let dirStr = isBefore ? t('component.time.before') : t('component.time.after'); | |
82 | + | |
83 | + if (diff < ONE_SECONDS) { | |
84 | + resStr = t('component.time.just'); | |
85 | + // Less than or equal to 59 seconds | |
86 | + } else if (diff < ONE_MINUTES) { | |
87 | + resStr = parseInt(diff / ONE_SECONDS) + t('component.time.seconds') + dirStr; | |
88 | + // More than 59 seconds, less than or equal to 59 minutes and 59 seconds | |
89 | + } else if (diff >= ONE_MINUTES && diff < ONE_HOUR) { | |
90 | + resStr = Math.floor(diff / ONE_MINUTES) + t('component.time.minutes') + dirStr; | |
91 | + // More than 59 minutes and 59 seconds, less than or equal to 23 hours, 59 minutes and 59 seconds | |
92 | + } else if (diff >= ONE_HOUR && diff < ONE_DAY) { | |
93 | + resStr = Math.floor(diff / ONE_HOUR) + t('component.time.hours') + dirStr; | |
94 | + // More than 23 hours, 59 minutes and 59 seconds, less than or equal to 29 days, 59 minutes and 59 seconds | |
95 | + } else if (diff >= ONE_DAY && diff < 2623860000) { | |
96 | + resStr = Math.floor(diff / ONE_DAY) + t('component.time.days') + dirStr; | |
97 | + // More than 29 days, 59 minutes, 59 seconds, less than 364 days, 23 hours, 59 minutes, 59 seconds, and the incoming timestamp is earlier than the current | |
98 | + } else if (diff >= 2623860000 && diff <= 31567860000 && isBefore) { | |
99 | + resStr = dateUtil(timeStamp).format('MM-DD-HH-mm'); | |
100 | + } else { | |
101 | + resStr = dateUtil(timeStamp).format('YYYY'); | |
102 | + } | |
103 | + return resStr; | |
104 | + } | |
105 | + | |
106 | + return { date }; | |
107 | + }, | |
108 | + }); | |
109 | +</script> | ... | ... |
src/hooks/core/useContext.ts
... | ... | @@ -4,7 +4,7 @@ import { |
4 | 4 | inject, |
5 | 5 | reactive, |
6 | 6 | readonly as defineReadonly, |
7 | - defineComponent, | |
7 | + // defineComponent, | |
8 | 8 | UnwrapRef, |
9 | 9 | } from 'vue'; |
10 | 10 | |
... | ... | @@ -29,18 +29,21 @@ export function createContext<T>( |
29 | 29 | const provideData = readonly ? defineReadonly(state) : state; |
30 | 30 | !createProvider && provide(key, native ? context : provideData); |
31 | 31 | |
32 | - const Provider = createProvider | |
33 | - ? defineComponent({ | |
34 | - name: 'Provider', | |
35 | - inheritAttrs: false, | |
36 | - setup(_, { slots }) { | |
37 | - provide(key, provideData); | |
38 | - return () => slots.default?.(); | |
39 | - }, | |
40 | - }) | |
41 | - : null; | |
42 | - | |
43 | - return { Provider, state }; | |
32 | + // const Provider = createProvider | |
33 | + // ? defineComponent({ | |
34 | + // name: 'Provider', | |
35 | + // inheritAttrs: false, | |
36 | + // setup(_, { slots }) { | |
37 | + // provide(key, provideData); | |
38 | + // return () => slots.default?.(); | |
39 | + // }, | |
40 | + // }) | |
41 | + // : null; | |
42 | + | |
43 | + return { | |
44 | + // Provider, | |
45 | + state, | |
46 | + }; | |
44 | 47 | } |
45 | 48 | |
46 | 49 | export function useContext<T>(key: InjectionKey<T>, native?: boolean): T; | ... | ... |
src/layouts/default/content/index.vue
1 | 1 | <template> |
2 | - <div :class="[prefixCls, getLayoutContentMode]"> | |
3 | - <transition name="fade"> | |
4 | - <Loading | |
5 | - v-if="getOpenPageLoading" | |
6 | - :loading="getPageLoading" | |
7 | - background="rgba(240, 242, 245, 0.6)" | |
8 | - absolute | |
9 | - :class="`${prefixCls}-loading`" | |
10 | - /> | |
11 | - </transition> | |
2 | + <div :class="[prefixCls, getLayoutContentMode]" v-loading="getOpenPageLoading && getPageLoading"> | |
12 | 3 | <PageLayout /> |
13 | 4 | </div> |
14 | 5 | </template> |
15 | 6 | <script lang="ts"> |
16 | 7 | import { defineComponent } from 'vue'; |
17 | 8 | |
9 | + import PageLayout from '/@/layouts/page/index.vue'; | |
10 | + | |
18 | 11 | import { useDesign } from '/@/hooks/web/useDesign'; |
19 | 12 | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; |
20 | 13 | import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'; |
21 | - import PageLayout from '/@/layouts/page/index.vue'; | |
22 | 14 | import { useContentViewHeight } from './useContentViewHeight'; |
23 | - import { Loading } from '/@/components/Loading'; | |
24 | 15 | |
25 | 16 | export default defineComponent({ |
26 | 17 | name: 'LayoutContent', |
27 | - components: { PageLayout, Loading }, | |
18 | + components: { PageLayout }, | |
28 | 19 | setup() { |
29 | 20 | const { prefixCls } = useDesign('layout-content'); |
30 | 21 | const { getOpenPageLoading } = useTransitionSetting(); | ... | ... |
src/layouts/default/footer/index.vue
... | ... | @@ -2,7 +2,9 @@ |
2 | 2 | <Footer :class="prefixCls" v-if="getShowLayoutFooter"> |
3 | 3 | <div :class="`${prefixCls}__links`"> |
4 | 4 | <a @click="openWindow(SITE_URL)">{{ t('layout.footer.onlinePreview') }}</a> |
5 | + | |
5 | 6 | <GithubFilled @click="openWindow(GITHUB_URL)" :class="`${prefixCls}__github`" /> |
7 | + | |
6 | 8 | <a @click="openWindow(DOC_URL)">{{ t('layout.footer.onlineDocument') }}</a> |
7 | 9 | </div> |
8 | 10 | <div>Copyright ©2020 Vben Admin</div> | ... | ... |
src/layouts/default/index.vue
... | ... | @@ -2,13 +2,9 @@ |
2 | 2 | <Layout :class="prefixCls"> |
3 | 3 | <LayoutFeatures /> |
4 | 4 | <LayoutHeader fixed v-if="getShowFullHeaderRef" /> |
5 | - <Layout | |
6 | - :class="{ | |
7 | - 'ant-layout-has-sider': getIsMixSidebar, | |
8 | - }" | |
9 | - > | |
5 | + <Layout :class="layoutClass"> | |
10 | 6 | <LayoutSideBar v-if="getShowSidebar || getIsMobile" /> |
11 | - <Layout :class="`${prefixCls}__main`"> | |
7 | + <Layout :class="`${prefixCls}-main`"> | |
12 | 8 | <LayoutMultipleHeader /> |
13 | 9 | <LayoutContent /> |
14 | 10 | <LayoutFooter /> |
... | ... | @@ -18,7 +14,7 @@ |
18 | 14 | </template> |
19 | 15 | |
20 | 16 | <script lang="ts"> |
21 | - import { defineComponent } from 'vue'; | |
17 | + import { defineComponent, computed, unref } from 'vue'; | |
22 | 18 | import { Layout } from 'ant-design-vue'; |
23 | 19 | import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; |
24 | 20 | |
... | ... | @@ -53,12 +49,15 @@ |
53 | 49 | |
54 | 50 | const { getShowSidebar, getIsMixSidebar } = useMenuSetting(); |
55 | 51 | |
52 | + const layoutClass = computed(() => ({ 'ant-layout-has-sider': unref(getIsMixSidebar) })); | |
53 | + | |
56 | 54 | return { |
57 | 55 | getShowFullHeaderRef, |
58 | 56 | getShowSidebar, |
59 | 57 | prefixCls, |
60 | 58 | getIsMobile, |
61 | 59 | getIsMixSidebar, |
60 | + layoutClass, | |
62 | 61 | }; |
63 | 62 | }, |
64 | 63 | }); |
... | ... | @@ -77,7 +76,7 @@ |
77 | 76 | min-height: 100%; |
78 | 77 | } |
79 | 78 | |
80 | - &__main { | |
79 | + &-main { | |
81 | 80 | margin-left: 1px; |
82 | 81 | } |
83 | 82 | } | ... | ... |
src/layouts/default/trigger/HeaderTrigger.vue
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | import { propTypes } from '/@/utils/propTypes'; |
12 | 12 | |
13 | 13 | export default defineComponent({ |
14 | - name: 'SiderTrigger', | |
14 | + name: 'HeaderTrigger', | |
15 | 15 | components: { MenuUnfoldOutlined, MenuFoldOutlined }, |
16 | 16 | props: { |
17 | 17 | theme: propTypes.oneOf(['light', 'dark']), | ... | ... |
src/locales/lang/en/component/time.ts
0 → 100644
src/locales/lang/en/routes/demo/comp.ts
src/locales/lang/zh_CN/component/time.ts
0 → 100644
src/locales/lang/zh_CN/routes/demo/comp.ts
src/router/index.ts
... | ... | @@ -2,7 +2,6 @@ import type { RouteRecordRaw } from 'vue-router'; |
2 | 2 | import type { App } from 'vue'; |
3 | 3 | |
4 | 4 | import { createRouter, createWebHashHistory } from 'vue-router'; |
5 | - | |
6 | 5 | import { basicRoutes, LoginRoute } from './routes'; |
7 | 6 | import { REDIRECT_NAME } from './constant'; |
8 | 7 | ... | ... |
src/router/menus/modules/demo/comp.ts
... | ... | @@ -122,6 +122,13 @@ const menu: MenuModule = { |
122 | 122 | name: t('routes.demo.comp.countTo'), |
123 | 123 | }, |
124 | 124 | { |
125 | + path: 'timestamp', | |
126 | + name: t('routes.demo.comp.time'), | |
127 | + tag: { | |
128 | + content: 'new', | |
129 | + }, | |
130 | + }, | |
131 | + { | |
125 | 132 | path: 'transition', |
126 | 133 | name: t('routes.demo.comp.transition'), |
127 | 134 | }, | ... | ... |
src/router/routes/modules/demo/comp.ts
... | ... | @@ -233,6 +233,14 @@ const comp: AppRouteModule = { |
233 | 233 | }, |
234 | 234 | }, |
235 | 235 | { |
236 | + path: 'timestamp', | |
237 | + name: 'TimeDemo', | |
238 | + component: () => import('/@/views/demo/comp/time/index.vue'), | |
239 | + meta: { | |
240 | + title: t('routes.demo.comp.time'), | |
241 | + }, | |
242 | + }, | |
243 | + { | |
236 | 244 | path: 'countTo', |
237 | 245 | name: 'CountTo', |
238 | 246 | component: () => import('/@/views/demo/comp/count-to/index.vue'), | ... | ... |
src/utils/dateUtil.ts
src/views/demo/comp/time/index.vue
0 → 100644
1 | +<template> | |
2 | + <PageWrapper title="时间组件示例"> | |
3 | + <CollapseContainer title="基础示例"> | |
4 | + <Time :value="time1" /> | |
5 | + <br /> | |
6 | + <Time :value="time2" /> | |
7 | + </CollapseContainer> | |
8 | + | |
9 | + <CollapseContainer title="定时更新" class="my-4"> | |
10 | + <Time :value="now" :step="1" /> | |
11 | + <br /> | |
12 | + <Time :value="now" :step="5" /> | |
13 | + </CollapseContainer> | |
14 | + | |
15 | + <CollapseContainer title="定时更新"> | |
16 | + <Time :value="now" mode="date" /> | |
17 | + <br /> | |
18 | + <Time :value="now" mode="datetime" /> | |
19 | + <br /> | |
20 | + <Time :value="now" /> | |
21 | + </CollapseContainer> | |
22 | + </PageWrapper> | |
23 | +</template> | |
24 | +<script lang="ts"> | |
25 | + import { defineComponent, reactive, toRefs } from 'vue'; | |
26 | + import { PageWrapper } from '/@/components/Page'; | |
27 | + import { Time } from '/@/components/Time'; | |
28 | + import { CollapseContainer } from '/@/components/Container/index'; | |
29 | + | |
30 | + export default defineComponent({ | |
31 | + components: { PageWrapper, Time, CollapseContainer }, | |
32 | + setup() { | |
33 | + const now = new Date().getTime(); | |
34 | + const state = reactive({ | |
35 | + time1: now - 60 * 3 * 1000, | |
36 | + time2: now - 86400 * 3 * 1000, | |
37 | + }); | |
38 | + return { | |
39 | + ...toRefs(state), | |
40 | + now, | |
41 | + }; | |
42 | + }, | |
43 | + }); | |
44 | +</script> | ... | ... |
yarn.lock
... | ... | @@ -1790,16 +1790,15 @@ |
1790 | 1790 | dependencies: |
1791 | 1791 | vue-demi latest |
1792 | 1792 | |
1793 | -"@windicss/plugin-utils@0.7.2": | |
1794 | - version "0.7.2" | |
1795 | - resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.7.2.tgz#c43c89a2f51110eb6f49da565dc235fb2af30269" | |
1796 | - integrity sha512-4znRERKhhStIOFy1/eB0rJXnXs+NyumBREjh0GZVMoHVmUB9up08tNUpbbq3tlJC96t27VsD4vdfv00T+It/IA== | |
1793 | +"@windicss/plugin-utils@0.8.2": | |
1794 | + version "0.8.2" | |
1795 | + resolved "https://registry.npmjs.org/@windicss/plugin-utils/-/plugin-utils-0.8.2.tgz#032b21a79ff5af5031bf29bc3faeb0efcce73afb" | |
1796 | + integrity sha512-jBv9w3VrUF5BjkP/WjY5Brf6CzJYeFMwcZFfOYiSPGuK+4+a/UmYX8B0/bISp5GnY9plVYr5aibTY9PTbt597Q== | |
1797 | 1797 | dependencies: |
1798 | - esbuild "^0.8.57" | |
1799 | - esbuild-register "^2.2.0" | |
1800 | 1798 | fast-glob "^3.2.5" |
1801 | 1799 | micromatch "^4.0.2" |
1802 | - windicss "^2.3.0" | |
1800 | + sucrase "^3.17.1" | |
1801 | + windicss "^2.4.0" | |
1803 | 1802 | |
1804 | 1803 | "@zxcvbn-ts/core@^0.3.0": |
1805 | 1804 | version "0.3.0" |
... | ... | @@ -1944,6 +1943,11 @@ ant-design-vue@2.0.1: |
1944 | 1943 | vue-types "^3.0.0" |
1945 | 1944 | warning "^4.0.0" |
1946 | 1945 | |
1946 | +any-promise@^1.0.0: | |
1947 | + version "1.3.0" | |
1948 | + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" | |
1949 | + integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= | |
1950 | + | |
1947 | 1951 | anymatch@~3.1.1: |
1948 | 1952 | version "3.1.1" |
1949 | 1953 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" |
... | ... | @@ -2745,7 +2749,7 @@ commander@^2.16.0, commander@^2.20.0, commander@^2.20.3, commander@^2.8.1: |
2745 | 2749 | resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" |
2746 | 2750 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== |
2747 | 2751 | |
2748 | -commander@^4.1.1: | |
2752 | +commander@^4.0.0, commander@^4.1.1: | |
2749 | 2753 | version "4.1.1" |
2750 | 2754 | resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" |
2751 | 2755 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== |
... | ... | @@ -4741,7 +4745,7 @@ glob@7.1.4: |
4741 | 4745 | once "^1.3.0" |
4742 | 4746 | path-is-absolute "^1.0.0" |
4743 | 4747 | |
4744 | -glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: | |
4748 | +glob@7.1.6, glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: | |
4745 | 4749 | version "7.1.6" |
4746 | 4750 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" |
4747 | 4751 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== |
... | ... | @@ -6588,6 +6592,15 @@ mute-stream@0.0.8: |
6588 | 6592 | resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" |
6589 | 6593 | integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== |
6590 | 6594 | |
6595 | +mz@^2.7.0: | |
6596 | + version "2.7.0" | |
6597 | + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" | |
6598 | + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== | |
6599 | + dependencies: | |
6600 | + any-promise "^1.0.0" | |
6601 | + object-assign "^4.0.1" | |
6602 | + thenify-all "^1.0.0" | |
6603 | + | |
6591 | 6604 | nanoid@^3.0.1, nanoid@^3.1.20: |
6592 | 6605 | version "3.1.20" |
6593 | 6606 | resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" |
... | ... | @@ -6652,6 +6665,11 @@ node-fetch@2.6.1: |
6652 | 6665 | resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" |
6653 | 6666 | integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== |
6654 | 6667 | |
6668 | +node-modules-regexp@^1.0.0: | |
6669 | + version "1.0.0" | |
6670 | + resolved "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" | |
6671 | + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= | |
6672 | + | |
6655 | 6673 | node-releases@^1.1.69: |
6656 | 6674 | version "1.1.70" |
6657 | 6675 | resolved "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz#66e0ed0273aa65666d7fe78febe7634875426a08" |
... | ... | @@ -7267,6 +7285,13 @@ pinkie@^2.0.0: |
7267 | 7285 | resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" |
7268 | 7286 | integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= |
7269 | 7287 | |
7288 | +pirates@^4.0.1: | |
7289 | + version "4.0.1" | |
7290 | + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" | |
7291 | + integrity sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA== | |
7292 | + dependencies: | |
7293 | + node-modules-regexp "^1.0.0" | |
7294 | + | |
7270 | 7295 | please-upgrade-node@^3.2.0: |
7271 | 7296 | version "3.2.0" |
7272 | 7297 | resolved "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942" |
... | ... | @@ -8799,6 +8824,18 @@ stylus-lookup@^3.0.1: |
8799 | 8824 | commander "^2.8.1" |
8800 | 8825 | debug "^4.1.0" |
8801 | 8826 | |
8827 | +sucrase@^3.17.1: | |
8828 | + version "3.17.1" | |
8829 | + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.17.1.tgz#b5e35ca7d99db2cc82b3e942934c3746b41ff8e2" | |
8830 | + integrity sha512-04cNLFAhS4NBG2Z/MTkLY6HdoBsqErv3wCncymFlfFtnpMthurlWYML2RlID4M2BbiJSu1eZdQnE8Lcz4PCe2g== | |
8831 | + dependencies: | |
8832 | + commander "^4.0.0" | |
8833 | + glob "7.1.6" | |
8834 | + lines-and-columns "^1.1.6" | |
8835 | + mz "^2.7.0" | |
8836 | + pirates "^4.0.1" | |
8837 | + ts-interface-checker "^0.1.9" | |
8838 | + | |
8802 | 8839 | sugarss@^2.0.0: |
8803 | 8840 | version "2.0.0" |
8804 | 8841 | resolved "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d" |
... | ... | @@ -9053,6 +9090,20 @@ text-table@^0.2.0: |
9053 | 9090 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" |
9054 | 9091 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= |
9055 | 9092 | |
9093 | +thenify-all@^1.0.0: | |
9094 | + version "1.6.0" | |
9095 | + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" | |
9096 | + integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= | |
9097 | + dependencies: | |
9098 | + thenify ">= 3.1.0 < 4" | |
9099 | + | |
9100 | +"thenify@>= 3.1.0 < 4": | |
9101 | + version "3.3.1" | |
9102 | + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" | |
9103 | + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== | |
9104 | + dependencies: | |
9105 | + any-promise "^1.0.0" | |
9106 | + | |
9056 | 9107 | through2@^2.0.0, through2@^2.0.2: |
9057 | 9108 | version "2.0.5" |
9058 | 9109 | resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" |
... | ... | @@ -9171,6 +9222,11 @@ trough@^1.0.0: |
9171 | 9222 | resolved "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" |
9172 | 9223 | integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== |
9173 | 9224 | |
9225 | +ts-interface-checker@^0.1.9: | |
9226 | + version "0.1.13" | |
9227 | + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" | |
9228 | + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== | |
9229 | + | |
9174 | 9230 | ts-node@^9.1.1: |
9175 | 9231 | version "9.1.1" |
9176 | 9232 | resolved "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d" |
... | ... | @@ -9626,13 +9682,13 @@ vite-plugin-theme@^0.4.8: |
9626 | 9682 | es-module-lexer "^0.3.26" |
9627 | 9683 | tinycolor2 "^1.4.2" |
9628 | 9684 | |
9629 | -vite-plugin-windicss@0.7.2: | |
9630 | - version "0.7.2" | |
9631 | - resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.7.2.tgz#1647ee3765edb0f993b81206f35310a63b25c1f9" | |
9632 | - integrity sha512-U6N8ljy7meqLkq8aENb3VXKr93Vzp1pU5zwhJr7HmGi+42Wv4i8r7+7BW6WRS4Ght4SAMzFuzIGq9RLPzoZ2Jg== | |
9685 | +vite-plugin-windicss@0.8.2: | |
9686 | + version "0.8.2" | |
9687 | + resolved "https://registry.npmjs.org/vite-plugin-windicss/-/vite-plugin-windicss-0.8.2.tgz#cb7a4e03ed218007425be60e54cd4f21cca836d1" | |
9688 | + integrity sha512-eeHmCAbmeKg1k0r5moPEQrVPFebfsCCGkKUSb8MYWkglLfpcBZfCHyTTdpn/PONy/JcvWrdpbND2/tsy30it3g== | |
9633 | 9689 | dependencies: |
9634 | - "@windicss/plugin-utils" "0.7.2" | |
9635 | - windicss "^2.3.0" | |
9690 | + "@windicss/plugin-utils" "0.8.2" | |
9691 | + windicss "^2.4.0" | |
9636 | 9692 | |
9637 | 9693 | vite@^2.0.5: |
9638 | 9694 | version "2.0.5" |
... | ... | @@ -9672,10 +9728,10 @@ vue-i18n@^9.0.0: |
9672 | 9728 | "@intlify/shared" "9.0.0" |
9673 | 9729 | "@vue/devtools-api" "^6.0.0-beta.5" |
9674 | 9730 | |
9675 | -vue-router@^4.0.4: | |
9676 | - version "4.0.4" | |
9677 | - resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.4.tgz#ad9b4b7bbdad622407b4ff189b1646f48c1e9053" | |
9678 | - integrity sha512-uN6PDEaYdU9aRO7mU+Dkr1uaY49hV3fucEDG/Vre/Qj8ct3RoJS16vcPrvKVzn69zDDjBV5b9Xw7fZA9r6b/Iw== | |
9731 | +vue-router@^4.0.5: | |
9732 | + version "4.0.5" | |
9733 | + resolved "https://registry.npmjs.org/vue-router/-/vue-router-4.0.5.tgz#dd0a4134bc950c37aef64b973e9ee1008428d8fa" | |
9734 | + integrity sha512-AQq+pllb6FCc7rS6vh4PPcce3XA1jgK3hKNkQ4hXHwoVN7jOeAOMKCnX7XAX3etV9rmN7iNW8iIwgPk95ckBjw== | |
9679 | 9735 | |
9680 | 9736 | vue-types@^3.0.0: |
9681 | 9737 | version "3.0.1" |
... | ... | @@ -9771,10 +9827,10 @@ which@^2.0.1: |
9771 | 9827 | dependencies: |
9772 | 9828 | isexe "^2.0.0" |
9773 | 9829 | |
9774 | -windicss@^2.3.0: | |
9775 | - version "2.3.0" | |
9776 | - resolved "https://registry.npmjs.org/windicss/-/windicss-2.3.0.tgz#76f10017169df195d95042b7101d2e2586e8ebd1" | |
9777 | - integrity sha512-OR/ULZmcVhtEJDIFnkz4S4v4efpZ8DuvDtzBwXNgbtiPQIxN0Zhpo59q0rfF0i3tfwjKw2KCQXNxL5E98bMuVA== | |
9830 | +windicss@^2.4.0: | |
9831 | + version "2.4.0" | |
9832 | + resolved "https://registry.npmjs.org/windicss/-/windicss-2.4.0.tgz#9aa0108399d5d3925d5ad5860e76c80299de0cab" | |
9833 | + integrity sha512-EcGkGnZpuoH0r/hNuj4GLheb9Lg3P+s5KOHUZU63zkl6yoMQNAwTvNXai7OjylbXLFDEWii7SAJbwQIFxE56qQ== | |
9778 | 9834 | |
9779 | 9835 | wmf@~1.0.1: |
9780 | 9836 | version "1.0.2" | ... | ... |