From fcc4f61f0765ce8f9ce41ba776de79ca5423314e Mon Sep 17 00:00:00 2001 From: Paolo Arena Date: Sat, 4 Sep 2021 15:05:34 +0200 Subject: [PATCH] other components... --- docs/nuovo_componente.ts.old | 43 ++ package.json | 18 +- src-pwa/pwa-flag.d.ts.off | 10 - src/components/BannerCookies/BannerCookies.ts | 4 +- src/components/CCard/CCard.scss | 66 +++ src/components/CCard/CCard.ts | 58 ++ src/components/CCard/CCard.vue | 80 +++ src/components/CCard/index.ts | 1 + .../CCardCarousel/CCardCarousel.scss | 12 + src/components/CCardCarousel/CCardCarousel.ts | 25 + .../CCardCarousel/CCardCarousel.vue | 96 ++++ src/components/CCardCarousel/index.ts | 1 + .../CCardDiscipline/CCardDiscipline.scss | 91 +++ .../CCardDiscipline/CCardDiscipline.ts | 85 +++ .../CCardDiscipline/CCardDiscipline.vue | 46 ++ src/components/CCardDiscipline/index.ts | 1 + .../CCardOperator/CCardOperator.scss | 0 src/components/CCardOperator/CCardOperator.ts | 24 + .../CCardOperator/CCardOperator.vue | 14 + src/components/CCardOperator/index.ts | 1 + src/components/CCardStat/CCardStat.scss | 13 + src/components/CCardStat/CCardStat.ts | 37 ++ src/components/CCardStat/CCardStat.vue | 19 + src/components/CCardStat/index.ts | 1 + src/components/CCardState/CCardState.scss | 34 ++ src/components/CCardState/CCardState.ts | 83 +++ src/components/CCardState/CCardState.vue | 36 ++ src/components/CCardState/index.ts | 1 + src/components/CCopyBtn/CCopyBtn.scss | 47 ++ src/components/CCopyBtn/CCopyBtn.ts | 37 ++ src/components/CCopyBtn/CCopyBtn.vue | 22 + src/components/CCopyBtn/index.ts | 1 + src/components/CDate/CDate.scss | 33 ++ src/components/CDate/CDate.ts | 67 +++ src/components/CDate/CDate.vue | 22 + src/components/CDate/index.ts | 1 + src/components/CDateTime/CDateTime.scss | 10 + src/components/CDateTime/CDateTime.ts | 130 +++++ src/components/CDateTime/CDateTime.vue | 71 +++ src/components/CDateTime/index.ts | 1 + src/components/CImgText/CImgText.ts | 2 +- src/components/CMyCart/CMyCart.ts | 57 ++ src/components/CMyCart/CMyCart.ts.old | 55 -- .../CMyCart/{CMyCart.vue.old => CMyCart.vue} | 6 +- src/components/CMyFieldDb/CMyFieldDb.scss | 17 + src/components/CMyFieldDb/CMyFieldDb.ts | 164 ++++++ src/components/CMyFieldDb/CMyFieldDb.vue | 274 +++++++++ src/components/CMyFieldDb/index.ts | 1 + src/components/CMyTeacher/CMyTeacher.scss | 92 ++++ src/components/CMyTeacher/CMyTeacher.ts | 58 ++ src/components/CMyTeacher/CMyTeacher.vue | 84 +++ src/components/CMyTeacher/index.ts | 1 + src/components/CProfile/CProfile.scss | 5 + src/components/CProfile/CProfile.ts | 22 + src/components/CProfile/CProfile.vue | 16 + src/components/CProfile/index.ts | 1 + src/components/CSignIn/CSignIn-validate.ts | 17 + src/components/CSignIn/CSignIn.scss | 5 + src/components/CSignIn/CSignIn.ts | 172 ++++++ src/components/CSignIn/CSignIn.vue | 79 +++ src/components/CSignIn/index.ts | 1 + src/components/CSignUp/CSignUp-validate.ts | 39 ++ src/components/CSignUp/CSignUp.scss | 34 ++ src/components/CSignUp/CSignUp.ts | 246 +++++++++ src/components/CSignUp/CSignUp.vue | 195 +++++++ src/components/CSignUp/index.ts | 1 + src/components/CSigninNoreg/CSigninNoreg.scss | 0 src/components/CSigninNoreg/CSigninNoreg.ts | 37 ++ src/components/CSigninNoreg/CSigninNoreg.vue | 18 + src/components/CSigninNoreg/index.ts | 1 + src/components/CSingleCart/CSingleCart.scss | 16 + src/components/CSingleCart/CSingleCart.ts | 72 +++ src/components/CSingleCart/CSingleCart.vue | 48 ++ src/components/CSingleCart/index.ts | 1 + src/components/CTitleBanner/CTitleBanner.scss | 9 + src/components/CTitleBanner/CTitleBanner.ts | 93 ++++ src/components/CTitleBanner/CTitleBanner.vue | 37 ++ src/components/CTitleBanner/index.ts | 1 + src/components/Footer/Footer.ts | 4 +- src/components/Footer/Footer.vue | 298 +++++----- .../FormNewsletter/FormNewsletter.ts | 4 +- src/components/index.ts | 7 + src/components/testpao/testpao.ts | 6 - src/mixins/mixin-base.ts | 51 +- src/mixins/mixin-operator.ts | 46 ++ src/model/GlobalStore.ts | 2 +- src/root/mypage/mypage.ts | 54 +- src/root/mypage/mypage.vue | 40 +- src/root/mypage/mypage.vue.orig | 47 -- src/store/Modules/tools.ts | 8 +- src/store/Products.ts | 2 +- src/store/Projects.ts | 17 +- src/store/UserStore.ts | 58 +- src/views/admin/TableOnlyView/index.ts | 1 + .../admin/TableOnlyView/tableOnlyView.scss | 0 .../admin/TableOnlyView/tableOnlyView.ts | 59 ++ .../admin/TableOnlyView/tableOnlyView.vue | 29 + src/views/admin/cfgServer/cfgServer.scss | 0 src/views/admin/cfgServer/cfgServer.ts | 104 ++++ src/views/admin/cfgServer/cfgServer.vue | 52 ++ src/views/admin/cfgServer/index.ts | 1 + src/views/admin/dbop/dbop.scss | 0 src/views/admin/dbop/dbop.ts | 80 +++ src/views/admin/dbop/dbop.vue | 229 ++++++++ src/views/admin/dbop/index.ts | 1 + src/views/admin/extralist/extralist.scss | 0 src/views/admin/extralist/extralist.ts | 74 +++ src/views/admin/extralist/extralist.vue | 46 ++ src/views/admin/extralist/index.ts | 1 + yarn.lock | 518 +++++++++++------- 110 files changed, 4592 insertions(+), 566 deletions(-) create mode 100644 docs/nuovo_componente.ts.old delete mode 100755 src-pwa/pwa-flag.d.ts.off create mode 100755 src/components/CCard/CCard.scss create mode 100755 src/components/CCard/CCard.ts create mode 100755 src/components/CCard/CCard.vue create mode 100755 src/components/CCard/index.ts create mode 100755 src/components/CCardCarousel/CCardCarousel.scss create mode 100755 src/components/CCardCarousel/CCardCarousel.ts create mode 100755 src/components/CCardCarousel/CCardCarousel.vue create mode 100755 src/components/CCardCarousel/index.ts create mode 100755 src/components/CCardDiscipline/CCardDiscipline.scss create mode 100755 src/components/CCardDiscipline/CCardDiscipline.ts create mode 100755 src/components/CCardDiscipline/CCardDiscipline.vue create mode 100755 src/components/CCardDiscipline/index.ts create mode 100755 src/components/CCardOperator/CCardOperator.scss create mode 100755 src/components/CCardOperator/CCardOperator.ts create mode 100755 src/components/CCardOperator/CCardOperator.vue create mode 100755 src/components/CCardOperator/index.ts create mode 100755 src/components/CCardStat/CCardStat.scss create mode 100755 src/components/CCardStat/CCardStat.ts create mode 100755 src/components/CCardStat/CCardStat.vue create mode 100755 src/components/CCardStat/index.ts create mode 100644 src/components/CCardState/CCardState.scss create mode 100644 src/components/CCardState/CCardState.ts create mode 100644 src/components/CCardState/CCardState.vue create mode 100644 src/components/CCardState/index.ts create mode 100755 src/components/CCopyBtn/CCopyBtn.scss create mode 100755 src/components/CCopyBtn/CCopyBtn.ts create mode 100755 src/components/CCopyBtn/CCopyBtn.vue create mode 100755 src/components/CCopyBtn/index.ts create mode 100755 src/components/CDate/CDate.scss create mode 100755 src/components/CDate/CDate.ts create mode 100755 src/components/CDate/CDate.vue create mode 100755 src/components/CDate/index.ts create mode 100755 src/components/CDateTime/CDateTime.scss create mode 100755 src/components/CDateTime/CDateTime.ts create mode 100755 src/components/CDateTime/CDateTime.vue create mode 100755 src/components/CDateTime/index.ts create mode 100755 src/components/CMyCart/CMyCart.ts delete mode 100755 src/components/CMyCart/CMyCart.ts.old rename src/components/CMyCart/{CMyCart.vue.old => CMyCart.vue} (87%) create mode 100755 src/components/CMyFieldDb/CMyFieldDb.scss create mode 100755 src/components/CMyFieldDb/CMyFieldDb.ts create mode 100755 src/components/CMyFieldDb/CMyFieldDb.vue create mode 100755 src/components/CMyFieldDb/index.ts create mode 100755 src/components/CMyTeacher/CMyTeacher.scss create mode 100755 src/components/CMyTeacher/CMyTeacher.ts create mode 100755 src/components/CMyTeacher/CMyTeacher.vue create mode 100755 src/components/CMyTeacher/index.ts create mode 100755 src/components/CProfile/CProfile.scss create mode 100755 src/components/CProfile/CProfile.ts create mode 100755 src/components/CProfile/CProfile.vue create mode 100755 src/components/CProfile/index.ts create mode 100755 src/components/CSignIn/CSignIn-validate.ts create mode 100755 src/components/CSignIn/CSignIn.scss create mode 100755 src/components/CSignIn/CSignIn.ts create mode 100755 src/components/CSignIn/CSignIn.vue create mode 100755 src/components/CSignIn/index.ts create mode 100755 src/components/CSignUp/CSignUp-validate.ts create mode 100755 src/components/CSignUp/CSignUp.scss create mode 100755 src/components/CSignUp/CSignUp.ts create mode 100755 src/components/CSignUp/CSignUp.vue create mode 100755 src/components/CSignUp/index.ts create mode 100755 src/components/CSigninNoreg/CSigninNoreg.scss create mode 100755 src/components/CSigninNoreg/CSigninNoreg.ts create mode 100755 src/components/CSigninNoreg/CSigninNoreg.vue create mode 100755 src/components/CSigninNoreg/index.ts create mode 100755 src/components/CSingleCart/CSingleCart.scss create mode 100755 src/components/CSingleCart/CSingleCart.ts create mode 100755 src/components/CSingleCart/CSingleCart.vue create mode 100755 src/components/CSingleCart/index.ts create mode 100755 src/components/CTitleBanner/CTitleBanner.scss create mode 100755 src/components/CTitleBanner/CTitleBanner.ts create mode 100755 src/components/CTitleBanner/CTitleBanner.vue create mode 100755 src/components/CTitleBanner/index.ts create mode 100755 src/mixins/mixin-operator.ts delete mode 100755 src/root/mypage/mypage.vue.orig create mode 100755 src/views/admin/TableOnlyView/index.ts create mode 100755 src/views/admin/TableOnlyView/tableOnlyView.scss create mode 100755 src/views/admin/TableOnlyView/tableOnlyView.ts create mode 100755 src/views/admin/TableOnlyView/tableOnlyView.vue create mode 100755 src/views/admin/cfgServer/cfgServer.scss create mode 100755 src/views/admin/cfgServer/cfgServer.ts create mode 100755 src/views/admin/cfgServer/cfgServer.vue create mode 100755 src/views/admin/cfgServer/index.ts create mode 100755 src/views/admin/dbop/dbop.scss create mode 100755 src/views/admin/dbop/dbop.ts create mode 100755 src/views/admin/dbop/dbop.vue create mode 100755 src/views/admin/dbop/index.ts create mode 100755 src/views/admin/extralist/extralist.scss create mode 100755 src/views/admin/extralist/extralist.ts create mode 100755 src/views/admin/extralist/extralist.vue create mode 100755 src/views/admin/extralist/index.ts diff --git a/docs/nuovo_componente.ts.old b/docs/nuovo_componente.ts.old new file mode 100644 index 00000000..d1cf6fb9 --- /dev/null +++ b/docs/nuovo_componente.ts.old @@ -0,0 +1,43 @@ +import { defineComponent, PropType } from "vue" +import { useI18n } from '../src/boot/i18n' +import { useUserStore } from '../src/store/UserStore' +import { useGlobalStore } from '../src/store/globalStore' +import { useQuasar } from 'quasar' + +export default defineComponent({ + name: '', + props: { + mystr: { + type: String, + required: true, + default: '', + }, + myval: { + type: Number, + required: true, + default: 0, + }, + mybool: { + type: Boolean, + required: true, + default: false, + }, + op: { + type: Object as PropType, + required: true, + }, + }, + components: { + + }, + setup() { + const $q = useQuasar() + const { t } = useI18n() + const userStore = useUserStore() + const globalStore = useGlobalStore() + + return { + + } + } +}) diff --git a/package.json b/package.json index bfec1b97..ec020605 100755 --- a/package.json +++ b/package.json @@ -20,18 +20,18 @@ "@quasar/extras": "^1.10.12", "@types/googlemaps": "^3.43.3", "@types/vuelidate": "^0.7.15", - "@vue/compat": "^3.2.7", - "@vue/compiler-sfc": "^3.2.7", + "@vue/compat": "^3.2.8", + "@vue/compiler-sfc": "^3.2.8", "@vue/eslint-config-standard": "^6.1.0", "acorn": "^8.4.1", - "autoprefixer": "^10.3.3", - "axios": "^0.21.1", + "autoprefixer": "^10.3.4", + "axios": "^0.21.2", "bcrypt-nodejs": "0.0.3", "bcryptjs": "^2.4.3", - "core-js": "^3.17.1", + "core-js": "^3.17.2", "date-fns": "^2.23.0", "dotenv": "^10.0.0", - "element-ui": "^2.15.5", + "element-ui": "^2.15.6", "eslint-plugin-quasar": "^1.0.0", "graphql": "^15.5.2", "graphql-tag": "^2.12.5", @@ -41,7 +41,7 @@ "localforage": "^1.10.0", "lodash": "^4.17.21", "normalize.css": "^8.0.1", - "npm": "^7.21.1", + "npm": "^7.22.0", "nprogress": "^0.2.0", "pinia": "^2.0.0-rc.6", "prerender-spa-plugin": "^3.4.0", @@ -67,7 +67,7 @@ "workbox": "0.0.0" }, "devDependencies": { - "@babel/eslint-parser": "^7.15.0", + "@babel/eslint-parser": "^7.15.4", "@quasar/app": "^3.1.0", "@types/dotenv": "^8.2.0", "@types/jest": "^27.0.1", @@ -88,7 +88,7 @@ "jest": "^27.1.0", "json-loader": "^0.5.7", "node-sass": "^6.0.1", - "npm-check-updates": "^11.8.3", + "npm-check-updates": "^11.8.5", "optimize-css-assets-webpack-plugin": "^6.0.1", "postcss-loader": "^6.1.1", "sass-loader": "^12.1.0", diff --git a/src-pwa/pwa-flag.d.ts.off b/src-pwa/pwa-flag.d.ts.off deleted file mode 100755 index cda1c0ec..00000000 --- a/src-pwa/pwa-flag.d.ts.off +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-disable */ -// THIS FEATURE-FLAG FILE IS AUTOGENERATED, -// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING -import "quasar/dist/types/feature-flag"; - -declare module "quasar/dist/types/feature-flag" { - interface QuasarFeatureFlags { - pwa: true; - } -} diff --git a/src/components/BannerCookies/BannerCookies.ts b/src/components/BannerCookies/BannerCookies.ts index 10237ed2..143742ef 100755 --- a/src/components/BannerCookies/BannerCookies.ts +++ b/src/components/BannerCookies/BannerCookies.ts @@ -1,6 +1,5 @@ -import { useQuasar } from 'quasar' import { - defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRefs, watch, + defineComponent, onMounted, ref, } from 'vue' import { useI18n } from '@src/boot/i18n' @@ -17,7 +16,6 @@ export default defineComponent({ }, setup(props, context) { - const $q = useQuasar() const { t } = useI18n(); const elementId = ref('id'); diff --git a/src/components/CCard/CCard.scss b/src/components/CCard/CCard.scss new file mode 100755 index 00000000..8b6ae01f --- /dev/null +++ b/src/components/CCard/CCard.scss @@ -0,0 +1,66 @@ +$heightBtn: 100%; +$grayshadow: #555; + +.text-subtitle-carica { + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; +} + +.text-subtitle-certificato { + font-size: 0.75rem; + line-height: 1rem; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .text-subtitle-carica { + font-size: 1rem; + } +} + +.op { + text-align: center !important; + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; + + &__cell { + font-size: 1rem; + color: red; + } + + &__email { + font-size: 1rem; + color: #3b5998; + } + + &__email a { + text-decoration: none; + } + + &__facebook a { + font-size: 1rem; + text-decoration: none; + } + + &__storia { + margin-top: 1rem; + margin-bottom: 1rem; + text-align: justify; + } +} + +.myimg { + border-radius: 300px !important; +} + +.q-img { + &__image { + border-radius: 300px !important; + } +} diff --git a/src/components/CCard/CCard.ts b/src/components/CCard/CCard.ts new file mode 100755 index 00000000..f022e690 --- /dev/null +++ b/src/components/CCard/CCard.ts @@ -0,0 +1,58 @@ +import { computed, defineComponent, PropType, ref } from 'vue' + +import { IOperators } from '../../model' +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'CCard', + props: { + tab: { + type: String, + required: true, + default: 'one', + }, + op: { + type: Object as PropType, + required: true, + }, + }, + setup(props) { + + const mytab = ref(props.tab) + + function clicca() { + mytab.value = 'two' + } + + const myop = computed(() => { + if (!!props.op) { + return props.op + } else { + return { + tab: '', + username: '', + name: '', + surname: '', + qualification: '', + usertelegram: '', + disciplines: '', + certifications: '', + img: '', + cell: '', + email: '', + paginaweb: '', + paginafb: '', + intro: '', + info: '', + } + } + }) + + return { + mytab, + myop, + tools, + clicca, + } + }, +}) diff --git a/src/components/CCard/CCard.vue b/src/components/CCard/CCard.vue new file mode 100755 index 00000000..24f3fad4 --- /dev/null +++ b/src/components/CCard/CCard.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/components/CCard/index.ts b/src/components/CCard/index.ts new file mode 100755 index 00000000..6c5c840a --- /dev/null +++ b/src/components/CCard/index.ts @@ -0,0 +1 @@ +export {default as CCard} from './CCard.vue' diff --git a/src/components/CCardCarousel/CCardCarousel.scss b/src/components/CCardCarousel/CCardCarousel.scss new file mode 100755 index 00000000..d88f04d1 --- /dev/null +++ b/src/components/CCardCarousel/CCardCarousel.scss @@ -0,0 +1,12 @@ +.landing__swirl-bg { + background-repeat: no-repeat !important; + background-position: top; + background-size: contain !important; + background-image: url(../../statics/images/landing_first_section.png) !important +} + +.landing__features { + opacity: .9; + font-size: 1rem; + line-height: 1.5; +} diff --git a/src/components/CCardCarousel/CCardCarousel.ts b/src/components/CCardCarousel/CCardCarousel.ts new file mode 100755 index 00000000..0d8c8cd8 --- /dev/null +++ b/src/components/CCardCarousel/CCardCarousel.ts @@ -0,0 +1,25 @@ +import { defineComponent, ref } from 'vue' + +import { CCardDiscipline } from '../CCardDiscipline' +import { useGlobalStore } from '@store/globalStore' + +export default defineComponent({ + name: 'CCardCarousel', + components: { CCardDiscipline }, + props: { + myarr: { + type: Array, + required: true, + }, + }, + setup() { + + const globalStore = useGlobalStore() + const slidedisc = ref(0) + + return { + slidedisc, + globalStore, + } + }, +}) diff --git a/src/components/CCardCarousel/CCardCarousel.vue b/src/components/CCardCarousel/CCardCarousel.vue new file mode 100755 index 00000000..65d07250 --- /dev/null +++ b/src/components/CCardCarousel/CCardCarousel.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/src/components/CCardCarousel/index.ts b/src/components/CCardCarousel/index.ts new file mode 100755 index 00000000..9162173f --- /dev/null +++ b/src/components/CCardCarousel/index.ts @@ -0,0 +1 @@ +export {default as CCardCarousel} from './CCardCarousel.vue' diff --git a/src/components/CCardDiscipline/CCardDiscipline.scss b/src/components/CCardDiscipline/CCardDiscipline.scss new file mode 100755 index 00000000..036969ea --- /dev/null +++ b/src/components/CCardDiscipline/CCardDiscipline.scss @@ -0,0 +1,91 @@ +$heightBtn: 100%; +$grayshadow: #555; + +.text-subtitle-carica { + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; +} + +.text-subtitle-certificato { + font-size: 0.75rem; + line-height: 1rem; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .text-subtitle-carica { + font-size: 1rem; + } +} + +.my-card-discipline { + width: 100%; + max-width: 350px; + min-width: 300px; + padding: 0; + + box-shadow: none; + border-radius: 30px; +} + +.yes_shadow { + -webkit-box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16); + box-shadow: 0 0 24px 0 rgba(0, 0, 0, 0.16); +} + + +.disc { + text-align: center !important; + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; + + &__title { + //color: white; + text-shadow: .125rem .125rem .125rem #2d2260; + } + + &__cell { + font-size: 1rem; + color: red; + } + + &__email { + font-size: 1rem; + color: #3b5998; + } + + &__description { + font-size: 1rem; + color: #000000; + height: 150px; + overflow: hidden; + text-overflow: ellipsis; + } + + &__email a { + text-decoration: none; + } + +} + +.myimg { + height: 200px; + border-radius: 30px !important; +} + +.q-img { + &__image { + border-radius: 30px !important; + } +} + + +.q-card__section{ + padding: 4px !important; +} diff --git a/src/components/CCardDiscipline/CCardDiscipline.ts b/src/components/CCardDiscipline/CCardDiscipline.ts new file mode 100755 index 00000000..c86f6164 --- /dev/null +++ b/src/components/CCardDiscipline/CCardDiscipline.ts @@ -0,0 +1,85 @@ +import { computed, defineComponent, PropType, ref, toRef, watch } from 'vue' + +import { tools } from '@store/Modules/tools' +import { IDiscipline, IEvents } from 'model' + +import { useCalendarStore } from '@store/CalendarStore' + +import CMyTeacher from '@/components/CMyTeacher/CMyTeacher' + +// @ts-ignore +import MixinOperator from '../../mixins/mixin-operator' +import MixinUsers from '@/mixins/mixin-users' + +export default defineComponent({ + name: 'CCardDiscipline', + components: { CMyTeacher }, + props: { + discipline: { + Type: Object as PropType, + required: true, + }, + mystyle: { + type: String, + required: false, + default: '', + }, + autoplay: { + type: Boolean, + required: false, + default: false, + }, + }, + + setup(props) { + + const nextlesson = ref() + const calendarStore = useCalendarStore() + + const { getImgTeacherByUsername } = MixinOperator() + const { isValidUsername } = MixinUsers() + + // const mydiscipline = toRef(props, 'discipline'); + + const getLinkEvent = computed(() => `event/${nextlesson.value.typol}/${nextlesson.value._id}`) + + function getNextLesson(typol: any): IEvents | undefined { + // Get next lesson + const datenow = tools.addDays(tools.getDateNow(), -1) + return calendarStore.eventlist.find((myevent: IEvents) => (myevent.typol === typol) && (new Date(myevent.dateTimeEnd!) >= datenow)) + } + + function disciplinechanged(myrec: IDiscipline | any) { + nextlesson.value = getNextLesson(myrec.typol_code) + // console.log('nextlesson', this.nextlesson) + } + + watch(() => props.discipline, (value: any, oldval: any) => { + nextlesson.value = getNextLesson(value.typol_code) + }, + ) + + function ExistLesson() { + return !!nextlesson.value + } + + function NextEventDate() { + return tools.getstrDateTimeEventSimple(nextlesson.value) + } + + function created() { + disciplinechanged(props.discipline) + } + + created() + + return { + ExistLesson, + NextEventDate, + tools, + getImgTeacherByUsername, + getLinkEvent, + isValidUsername, + } + }, +}) diff --git a/src/components/CCardDiscipline/CCardDiscipline.vue b/src/components/CCardDiscipline/CCardDiscipline.vue new file mode 100755 index 00000000..1dc1cbbc --- /dev/null +++ b/src/components/CCardDiscipline/CCardDiscipline.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/src/components/CCardDiscipline/index.ts b/src/components/CCardDiscipline/index.ts new file mode 100755 index 00000000..df98f1c2 --- /dev/null +++ b/src/components/CCardDiscipline/index.ts @@ -0,0 +1 @@ +export {default as CCardDiscipline} from './CCardDiscipline.vue' diff --git a/src/components/CCardOperator/CCardOperator.scss b/src/components/CCardOperator/CCardOperator.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CCardOperator/CCardOperator.ts b/src/components/CCardOperator/CCardOperator.ts new file mode 100755 index 00000000..c7e0421a --- /dev/null +++ b/src/components/CCardOperator/CCardOperator.ts @@ -0,0 +1,24 @@ +import { CCard } from '@components' +import MixinOperator from '../../mixins/mixin-operator' +import { defineComponent, ref } from 'vue' + +export default defineComponent({ + name: 'CCardOperator', + components: { CCard }, + props:{ + username: { + type: String, + required: true, + }, + }, + setup(props) { + const tab = ref('one') + + const { getOperatorByUsername } = MixinOperator() + + return { + tab, + getOperatorByUsername, + } + }, +}) diff --git a/src/components/CCardOperator/CCardOperator.vue b/src/components/CCardOperator/CCardOperator.vue new file mode 100755 index 00000000..d58eb0c4 --- /dev/null +++ b/src/components/CCardOperator/CCardOperator.vue @@ -0,0 +1,14 @@ + + + + + diff --git a/src/components/CCardOperator/index.ts b/src/components/CCardOperator/index.ts new file mode 100755 index 00000000..2effd97a --- /dev/null +++ b/src/components/CCardOperator/index.ts @@ -0,0 +1 @@ +export {default as CCardOperator} from './CCardOperator.vue' diff --git a/src/components/CCardStat/CCardStat.scss b/src/components/CCardStat/CCardStat.scss new file mode 100755 index 00000000..0a37bb07 --- /dev/null +++ b/src/components/CCardStat/CCardStat.scss @@ -0,0 +1,13 @@ +.my-card-stat { + width: 100%; + max-width: 200px; + min-width: 120px; + padding: 1rem 1rem; + @media (max-width: 718px) { + // PER VERSIONE MOBILE + max-width: 150px; + padding: 0; + } + + box-shadow: none; +} diff --git a/src/components/CCardStat/CCardStat.ts b/src/components/CCardStat/CCardStat.ts new file mode 100755 index 00000000..9bba4d9c --- /dev/null +++ b/src/components/CCardStat/CCardStat.ts @@ -0,0 +1,37 @@ +import { defineComponent } from 'vue' + +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'CCardStat', + props: { + mytext: { + type: String, + required: true, + default: '', + }, + myval: { + type: Number, + required: true, + default: 0, + }, + mycol: { + type: String, + required: false, + default: '', + }, + }, + + setup() { + function getsize() { + if (tools.isMobile()) + return '130px' + else + return '150px' + } + + return { + getsize, + } + }, +}) diff --git a/src/components/CCardStat/CCardStat.vue b/src/components/CCardStat/CCardStat.vue new file mode 100755 index 00000000..3c09bf66 --- /dev/null +++ b/src/components/CCardStat/CCardStat.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/components/CCardStat/index.ts b/src/components/CCardStat/index.ts new file mode 100755 index 00000000..d457c1e6 --- /dev/null +++ b/src/components/CCardStat/index.ts @@ -0,0 +1 @@ +export {default as CCardStat} from './CCardStat.vue' diff --git a/src/components/CCardState/CCardState.scss b/src/components/CCardState/CCardState.scss new file mode 100644 index 00000000..7b8641de --- /dev/null +++ b/src/components/CCardState/CCardState.scss @@ -0,0 +1,34 @@ +.my-card-stat { + width: 100%; + max-width: 200px; + min-width: 120px; + padding: 1rem 1rem; + @media (max-width: 718px) { + // PER VERSIONE MOBILE + max-width: 150px; + padding: 0; + } + + box-shadow: none; +} + +.my-card-small-stat { + width: 100%; + max-width: 60px; + min-width: 40px; + @media (max-width: 718px) { + // PER VERSIONE MOBILE + max-width: 50px; + min-width: 40px; + } + + box-shadow: none; +} + + +.text-h5-short { + line-height: 1.25rem !important; + @media (max-width: 718px) { + line-height: 1rem !important; + } +} diff --git a/src/components/CCardState/CCardState.ts b/src/components/CCardState/CCardState.ts new file mode 100644 index 00000000..4d8373a3 --- /dev/null +++ b/src/components/CCardState/CCardState.ts @@ -0,0 +1,83 @@ +import { defineComponent } from 'vue' + +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'CCardState', + props: { + myperc: { + type: Number, + required: true, + default: 0, + }, + mytext: { + type: String, + required: false, + default: '', + }, + myval: { + type: Number, + required: false, + default: 0, + }, + imgsrc: { + type: String, + required: false, + default: '', + }, + isperc: { + type: Boolean, + required: false, + default: false, + }, + textadd: { + type: String, + required: false, + default: '', + }, + mycolor: { + type: String, + required: false, + default: 'green', + }, + size: { + type: String, + required: false, + default: '150px', + }, + size_mob: { + type: String, + required: false, + default: '130px', + }, + fontsize: { + type: String, + required: false, + default: '1rem', + }, + mystyle: { + type: String, + required: false, + default: '', + }, + myclass: { + type: String, + required: false, + default: 'my-card-stat', + }, + }, + components: {}, + setup(props) { + + function getsize() { + if (tools.isMobile()) + return props.size_mob + else + return props.size + } + + return { + getsize, + } + }, +}) diff --git a/src/components/CCardState/CCardState.vue b/src/components/CCardState/CCardState.vue new file mode 100644 index 00000000..489e884f --- /dev/null +++ b/src/components/CCardState/CCardState.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/components/CCardState/index.ts b/src/components/CCardState/index.ts new file mode 100644 index 00000000..10071491 --- /dev/null +++ b/src/components/CCardState/index.ts @@ -0,0 +1 @@ +export {default as CCardState} from './CCardState.vue' diff --git a/src/components/CCopyBtn/CCopyBtn.scss b/src/components/CCopyBtn/CCopyBtn.scss new file mode 100755 index 00000000..02d3a55c --- /dev/null +++ b/src/components/CCopyBtn/CCopyBtn.scss @@ -0,0 +1,47 @@ +$heightBtn: 100%; +$grayshadow: #555; + +.text-subtitle-gallery { + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .text-subtitle-gallery { + font-size: 1rem; + } +} + +.myimg { + border-radius: 10px !important; + height: 200px; +} + +.myimg-view { + border-radius: 5px !important; + height: 80px; +} + +.q-img { + &__image { + border-radius: 10px !important; + } +} + +.my-card-gallery { + width: 100%; + max-width: 300px; + min-width: 200px; + padding: 1rem 1rem; + height: 350px; +} + +.my-card-gallery-view { + width: 100px; + height: 100px; + padding: 0.5rem 0.5rem; +} diff --git a/src/components/CCopyBtn/CCopyBtn.ts b/src/components/CCopyBtn/CCopyBtn.ts new file mode 100755 index 00000000..12431b34 --- /dev/null +++ b/src/components/CCopyBtn/CCopyBtn.ts @@ -0,0 +1,37 @@ +import { tools } from '../../store/Modules/tools' +import { useQuasar } from 'quasar' +import { useI18n } from '@/boot/i18n' +import { useUserStore } from '@store/UserStore' +import { useGlobalStore } from '@store/globalStore' +import { defineComponent } from 'vue' + +export default defineComponent({ + name: 'CCopyBtn', + props: { + texttocopy: { + type: String, + required: true, + }, + title: { + type: String, + required: false, + default: '', + }, + }, + components: {}, + setup(props) { + const $q = useQuasar() + const { t } = useI18n() + const userStore = useUserStore() + const globalStore = useGlobalStore() + + function copytoclip() { + tools.copyStringToClipboard(props.texttocopy, true) + } + + return { + copytoclip, + tools, + } + }, +}) diff --git a/src/components/CCopyBtn/CCopyBtn.vue b/src/components/CCopyBtn/CCopyBtn.vue new file mode 100755 index 00000000..06295a34 --- /dev/null +++ b/src/components/CCopyBtn/CCopyBtn.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/CCopyBtn/index.ts b/src/components/CCopyBtn/index.ts new file mode 100755 index 00000000..2a6e5695 --- /dev/null +++ b/src/components/CCopyBtn/index.ts @@ -0,0 +1 @@ +export {default as CCopyBtn} from './CCopyBtn.vue' diff --git a/src/components/CDate/CDate.scss b/src/components/CDate/CDate.scss new file mode 100755 index 00000000..4d5ffed1 --- /dev/null +++ b/src/components/CDate/CDate.scss @@ -0,0 +1,33 @@ +$heightBtn: 100%; + +.progress-item { + margin: 1px; + padding: 2px; + padding-top: 4px; + padding-bottom: 4px; + flex: 1; + flex-direction: column; + order: 1; +} + +.cpr-progrbar-item { + //height: 10px + padding-top: 7px; + height:15px; +} + +.cpr-percProgress { + padding-top: 3px; + color: #888; + vertical-align: middle; + text-align: center; + //line-height: $heightitem; +} + +.data_string { + font-size: 0.85rem; + @media (max-width: 600px) { + max-width: 22px; + // display: none; + } +} diff --git a/src/components/CDate/CDate.ts b/src/components/CDate/CDate.ts new file mode 100755 index 00000000..8ecbbb5e --- /dev/null +++ b/src/components/CDate/CDate.ts @@ -0,0 +1,67 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { date } from 'quasar' + +@Component({ + name: 'CDate' +}) + +export default class CDate extends Vue { + @Prop() public mydate!: Date + @Prop({ required: false, default: '' }) public label: string + @Prop({ required: false, default: '' }) public data_class!: string + @Prop({ required: false, default: false }) public readonly!: boolean + @Prop({ required: false, default: false }) public disable!: boolean + @Prop({ required: false, default: '' }) public color!: string + @Prop({ required: false, default: false }) public rounded!: boolean + @Prop({ required: false, default: false }) public outlined!: boolean + @Prop({ required: false, default: true }) public dense!: boolean + + public mystyleicon: string = 'font-size: 1.5rem;' + + @Watch('mydate') + public valchanged(value) { + this.valueInternal = value + } + + public $refs: { + datePicker + } + private valueInternal: Date = tools.getDateNull() + + public created() { + this.valueInternal = this.mydate + + if (this.data_class !== '') { + this.mystyleicon = 'font-size: 1rem;' + } + } + + public changedate(value) { + const datavalida = tools.convertstrtoDate(value) + if (!!datavalida) { + this.valueInternal = datavalida + console.log('EMIT: changedate', datavalida.toString()) + this.$emit('input', this.getDate()) + } else { + console.log(' DATA NON VALIDAAAAAAAAAAAAA ', value, datavalida) + } + this.$refs.datePicker.hide() + } + + get getdatestring() { + const mydate = tools.getstrDate(this.valueInternal) + console.log('getdatestring', mydate) + return mydate + } + get getdateyymmddstring() { + return tools.getstrYYMMDDDate(this.valueInternal) + } + private getDate() { + return this.valueInternal + } + +} diff --git a/src/components/CDate/CDate.vue b/src/components/CDate/CDate.vue new file mode 100755 index 00000000..62723927 --- /dev/null +++ b/src/components/CDate/CDate.vue @@ -0,0 +1,22 @@ + + + + + diff --git a/src/components/CDate/index.ts b/src/components/CDate/index.ts new file mode 100755 index 00000000..45ece4ae --- /dev/null +++ b/src/components/CDate/index.ts @@ -0,0 +1 @@ +export {default as CDate} from './CDate.vue' diff --git a/src/components/CDateTime/CDateTime.scss b/src/components/CDateTime/CDateTime.scss new file mode 100755 index 00000000..830259d1 --- /dev/null +++ b/src/components/CDateTime/CDateTime.scss @@ -0,0 +1,10 @@ +.calendar_comp{ + max-width: 170px; + @media (max-width: 400px) { + max-width: 400px; + } +} + +.calendar_comp { + vertical-align: center; +} diff --git a/src/components/CDateTime/CDateTime.ts b/src/components/CDateTime/CDateTime.ts new file mode 100755 index 00000000..2f3e9260 --- /dev/null +++ b/src/components/CDateTime/CDateTime.ts @@ -0,0 +1,130 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { tools } from '@src/store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { date } from 'quasar' +import { CalendarStore } from '../../store/Modules' +import MixinBase from '../../mixins/mixin-base' + +@Component({ + name: 'CDateTime', + mixins: [MixinBase] +}) + +export default class CDateTime extends Vue { + public $q + public $t + @Prop({ required: false, default: null }) public value: Date + @Prop({ required: false, default: null }) public valueDate: Date + @Prop({ required: true, default: 'Val:' }) public label: string + @Prop({ required: false, default: '' }) public data_class!: string + @Prop({ required: false, default: true }) public canEdit!: boolean + @Prop({ required: false, default: false }) public disable!: boolean + @Prop({ required: false, default: '' }) public bgcolor!: string + @Prop({ required: false, default: false }) public dense: boolean + @Prop({ required: false, default: '5' }) public minuteinterval: boolean + @Prop({ required: false, default: 'date-time' }) public view: string + + public mystyleicon: string = 'font-size: 1.5rem;' + public showDateTimeScroller: boolean = false + public saveit: boolean = false + public myvalue: Date = new Date() + public valueprec: Date = new Date() + + get getclass() { + return 'calendar_comp ' + this.data_class + } + + // @Watch('showDateTimeScroller') + + public Opening() { + // console.log('Opening', 'myvalue', this.myvalue, 'value', this.value) + this.saveit = false + this.valueprec = this.myvalue + if (this.myvalue === undefined) { + this.valueDate = new Date() + this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate) + } + // console.log('Opening', this.valueDate, this.myvalue) + this.$emit('show') + } + + public Closing() { + // console.log('Closing') + if (!this.saveit) { + if (this.myvalue !== this.valueprec) { + this.myvalue = this.valueprec + tools.showNeutralNotif(this.$q, this.$t('db.reccanceled')) + } + } + } + + @Watch('valueDate') + public changevalueDate() { + if (this.valueDate) + this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate) + + // console.log('changevalueDate myvalue', this.myvalue) + } + @Watch('value') + public changevalue() { + this.myvalue = this.value + // console.log('changevalue myvalue', this.myvalue) + } + + public savetoclose() { + // console.log('Close') + this.saveit = true + this.showDateTimeScroller = false + this.$emit('savetoclose', this.myvalue, this.valueprec) + } + + get scrollerPopupStyle280() { + if (this.$q.screen.lt.sm) { + return { + width: '100vw', + height: '100vh' + } + } else { + return { + maxHeight: '400px', + height: '400px', + width: '280px' + } + } + } + + get locale() { + return CalendarStore.state.locale + } + + public created() { + if (this.value !== null) + this.myvalue = this.value + else + this.myvalue = tools.getstrYYMMDDDateTime(this.valueDate) + + // console.log('created myvalue', this.myvalue) + } + + public changeval(newval) { + // console.log('changeval', newval, 'value=', this.value, 'myvalue=', this.myvalue) + this.$emit('update:value', newval) + } + + public mystyle() { + if (this.label !== '') + return '' + else + return '' + } + + public getstrDate(mydate) { + if (this.view === 'date-time') { + return tools.getstrDateTime(mydate) + } else { + return tools.getstrDate(mydate) + } + } +} diff --git a/src/components/CDateTime/CDateTime.vue b/src/components/CDateTime/CDateTime.vue new file mode 100755 index 00000000..9ae673a8 --- /dev/null +++ b/src/components/CDateTime/CDateTime.vue @@ -0,0 +1,71 @@ + + + + + diff --git a/src/components/CDateTime/index.ts b/src/components/CDateTime/index.ts new file mode 100755 index 00000000..eaa621c5 --- /dev/null +++ b/src/components/CDateTime/index.ts @@ -0,0 +1 @@ +export {default as CDateTime} from './CDateTime.vue' diff --git a/src/components/CImgText/CImgText.ts b/src/components/CImgText/CImgText.ts index 8f2d99cf..dd13eb3a 100755 --- a/src/components/CImgText/CImgText.ts +++ b/src/components/CImgText/CImgText.ts @@ -1,5 +1,5 @@ import { - defineComponent, onBeforeMount, onBeforeUnmount, onMounted, ref, toRef, toRefs, watch, + defineComponent, } from 'vue' import { tools } from '@src/store/Modules/tools' diff --git a/src/components/CMyCart/CMyCart.ts b/src/components/CMyCart/CMyCart.ts new file mode 100755 index 00000000..5c98a97f --- /dev/null +++ b/src/components/CMyCart/CMyCart.ts @@ -0,0 +1,57 @@ +import { CCardState } from '../CCardState' + +import { computed, defineComponent } from 'vue' +import { useGlobalStore } from '@store/globalStore' +import { useProducts } from '@store/Products' +import CCopyBtn from '@/components/CCopyBtn/CCopyBtn' +import CSingleCart from '@/components/CSingleCart/CSingleCart' +import CTitleBanner from '@/components/CTitleBanner/CTitleBanner' + +export default defineComponent({ + name: 'CMyCart', + props: {}, + components: { CTitleBanner, CCardState, CCopyBtn, CSingleCart }, + + setup() { + const globalStore = useGlobalStore() + const products = useProducts() + + const myCart = computed(() => products.cart) + const myTotalPrice = computed(() => { + if (products.cart) { + return products.cart.totalPrice + } else { + return 0 + } + }) + + const ordersCart = computed(() => { + if (!!products.cart) { + return products.cart.items + } else { + return null + } + }) + + const numOrders = computed(() => { + if (!!products.cart) { + return products.cart.items!.length + } else { + return 0 + } + }) + + + function closecart() { + globalStore.rightCartOpen = false + } + + return { + myCart, + myTotalPrice, + ordersCart, + numOrders, + closecart, + } + }, +}) diff --git a/src/components/CMyCart/CMyCart.ts.old b/src/components/CMyCart/CMyCart.ts.old deleted file mode 100755 index c43377e4..00000000 --- a/src/components/CMyCart/CMyCart.ts.old +++ /dev/null @@ -1,55 +0,0 @@ -import { Component, Prop, Watch } from 'vue-property-decorator' -import { tools } from '../../store/Modules/tools' -import MixinBase from '@src/mixins/mixin-base' -import { CTitleBanner } from '@components' -import { CCardState } from '../CCardState' -import { CCopyBtn } from '../CCopyBtn' - -import { IOrder, IProduct } from '@src/model' -import { CSingleCart } from '../../components/CSingleCart' -import MixinUsers from '@src/mixins/mixin-users' -import { computed, defineComponent, ref } from "vue" -import { useGlobalStore } from "@store/globalStore" - -@Component({ - name: 'CMyCart', - components: { CTitleBanner, CCardState, CCopyBtn, CSingleCart } -}) - -export default defineComponent({ - name: 'CMyCart', - props: {}, - - setup() { - const globalStore = useGlobalStore() - - const myCart = computed(() => Products.cart) - const myTotalPrice = computed(() => { - if (Products.cart) { - return Products.cart.totalPrice - } else { - return 0 - } - }) - - const ordersCart = computed(() => { - if (!!Products.cart) { - return Products.cart.items - } else { - return null - } - }) - - const numOrders = computed(() => { - if (!!Products.cart) { - return Products.cart.items.length - } else { - return 0 - } - }) - - - function closecart() { - globalStore.rightCartOpen = false - } -} diff --git a/src/components/CMyCart/CMyCart.vue.old b/src/components/CMyCart/CMyCart.vue similarity index 87% rename from src/components/CMyCart/CMyCart.vue.old rename to src/components/CMyCart/CMyCart.vue index 517c7983..7d99ed5b 100755 --- a/src/components/CMyCart/CMyCart.vue.old +++ b/src/components/CMyCart/CMyCart.vue @@ -30,12 +30,12 @@ Il Carrello è Vuoto
- +
- - + + diff --git a/src/components/CMyFieldDb/index.ts b/src/components/CMyFieldDb/index.ts new file mode 100755 index 00000000..04e1799d --- /dev/null +++ b/src/components/CMyFieldDb/index.ts @@ -0,0 +1 @@ +export {default as CMyFieldDb} from './CMyFieldDb.vue' diff --git a/src/components/CMyTeacher/CMyTeacher.scss b/src/components/CMyTeacher/CMyTeacher.scss new file mode 100755 index 00000000..254acd3d --- /dev/null +++ b/src/components/CMyTeacher/CMyTeacher.scss @@ -0,0 +1,92 @@ +$heightBtn: 100%; +$grayshadow: #555; + +.text-subtitle-carica { + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; +} + +.text-subtitle-certificato { + font-size: 0.75rem; + line-height: 1rem; +} + +@media (max-width: 718px) { + // PER VERSIONE MOBILE + .text-subtitle-carica { + font-size: 1rem; + } +} + +.op { + text-align: center !important; + font-size: 1rem; + font-weight: 400; + line-height: 1.75rem; + letter-spacing: .00937em; + text-shadow: .1rem .1rem .1rem $grayshadow; + + &__cell { + font-size: 1rem; + color: red; + } + + &__email { + font-size: 1rem; + color: #3b5998; + } + + &__email a { + text-decoration: none; + } + + &__facebook a { + font-size: 1rem; + text-decoration: none; + } + + &__storia { + margin-top: 1rem; + margin-bottom: 1rem; + text-align: justify; + } +} + +.myimg { + border-radius: 300px !important; +} + +.q-img { + &__image { + border-radius: 300px !important; + } +} + +.myflex { + display: flex; + flex: 1; +} + +.mybase { + color: black; + font-size: 0.75rem; + font-weight: 400; + line-height: 1.25rem; + letter-spacing: 0.03333em; + + &__teacher { + margin-top: 5px; + + &-content { + color: darkblue; + } + + &-content:hover { + + } + } + +} diff --git a/src/components/CMyTeacher/CMyTeacher.ts b/src/components/CMyTeacher/CMyTeacher.ts new file mode 100755 index 00000000..b108b1b2 --- /dev/null +++ b/src/components/CMyTeacher/CMyTeacher.ts @@ -0,0 +1,58 @@ +import { computed, defineComponent, ref, watch } from 'vue' + +import { tools } from '@store/Modules/tools' +import { CMyAvatar } from '../CMyAvatar' +import MixinOperator from '../../mixins/mixin-operator' +import MixinUsers from '../../mixins/mixin-users' +import { useGlobalStore } from '@store/globalStore' + + +export default defineComponent({ + name: 'CMyTeacher', + components: { CMyAvatar }, + props: { + username: { + type: String, + required: true, + default: '', + }, + }, + setup(props) { + + const globalStore = useGlobalStore() + const showuserdetails = ref(false) + const autoplaydiscsaved = ref(0) + const tab = ref('one') + + const { getOperatorByUsername, getImgTeacherByUsername, getTeacherByUsername } = MixinOperator() + const { isValidUsername } = MixinUsers() + + const myop = computed(() => { + return getOperatorByUsername(props.username) + }) + + watch(showuserdetails, (value: any, old: any) => { + if (!showuserdetails.value) { + globalStore.autoplaydisc = autoplaydiscsaved.value + } + }) + + function executeclick(event: any) { + console.log('executeclick') + showuserdetails.value = true + + autoplaydiscsaved.value = globalStore.autoplaydisc + globalStore.autoplaydisc = 0 + } + return { + tab, + executeclick, + showuserdetails, + getImgTeacherByUsername, + isValidUsername, + getTeacherByUsername, + myop, + tools, + } + }, +}) diff --git a/src/components/CMyTeacher/CMyTeacher.vue b/src/components/CMyTeacher/CMyTeacher.vue new file mode 100755 index 00000000..820da6d8 --- /dev/null +++ b/src/components/CMyTeacher/CMyTeacher.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/src/components/CMyTeacher/index.ts b/src/components/CMyTeacher/index.ts new file mode 100755 index 00000000..6da701e6 --- /dev/null +++ b/src/components/CMyTeacher/index.ts @@ -0,0 +1 @@ +export {default as CMyTeacher} from './CMyTeacher.vue' diff --git a/src/components/CProfile/CProfile.scss b/src/components/CProfile/CProfile.scss new file mode 100755 index 00000000..7ce52a96 --- /dev/null +++ b/src/components/CProfile/CProfile.scss @@ -0,0 +1,5 @@ +.signin { + width: 100%; + margin: 0 auto; + max-width: 450px; +} diff --git a/src/components/CProfile/CProfile.ts b/src/components/CProfile/CProfile.ts new file mode 100755 index 00000000..c976065f --- /dev/null +++ b/src/components/CProfile/CProfile.ts @@ -0,0 +1,22 @@ +import Vue from 'vue' +import { GlobalStore } from '@store' +import { UserStore } from '../../store/Modules' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { toolsext } from '@src/store/Modules/toolsext' + +import { validationMixin } from 'vuelidate' + +import MixinBase from '../../mixins/mixin-base' + +@Component({ + name: 'CProfile', + mixins: [validationMixin], + components: { } +}) + +export default class CProfile extends MixinBase { + public $v + public $t: any + + +} diff --git a/src/components/CProfile/CProfile.vue b/src/components/CProfile/CProfile.vue new file mode 100755 index 00000000..7d4d73ef --- /dev/null +++ b/src/components/CProfile/CProfile.vue @@ -0,0 +1,16 @@ + + + + + diff --git a/src/components/CProfile/index.ts b/src/components/CProfile/index.ts new file mode 100755 index 00000000..6b12f73d --- /dev/null +++ b/src/components/CProfile/index.ts @@ -0,0 +1 @@ +export {default as CProfile} from './CProfile.vue' diff --git a/src/components/CSignIn/CSignIn-validate.ts b/src/components/CSignIn/CSignIn-validate.ts new file mode 100755 index 00000000..9c35d31a --- /dev/null +++ b/src/components/CSignIn/CSignIn-validate.ts @@ -0,0 +1,17 @@ +import { ISigninOptions } from 'model' +import { required, minLength, email, sameAs } from 'vuelidate/lib/validators' + +export type TSignin = { signin: ISigninOptions, validationGroup: string[] } + +export const validations = { + signin: { + password: { + required, + minLength: minLength(8) + }, + username: { + required, + minLength: minLength(6) + } + } +} diff --git a/src/components/CSignIn/CSignIn.scss b/src/components/CSignIn/CSignIn.scss new file mode 100755 index 00000000..7ce52a96 --- /dev/null +++ b/src/components/CSignIn/CSignIn.scss @@ -0,0 +1,5 @@ +.signin { + width: 100%; + margin: 0 auto; + max-width: 450px; +} diff --git a/src/components/CSignIn/CSignIn.ts b/src/components/CSignIn/CSignIn.ts new file mode 100755 index 00000000..d7c8411e --- /dev/null +++ b/src/components/CSignIn/CSignIn.ts @@ -0,0 +1,172 @@ +import Vue from 'vue' +import { GlobalStore } from '@store' +import { UserStore } from '../../store/Modules' +import { Component, Prop } from 'vue-property-decorator' +import { serv_constants } from '../../store/Modules/serv_constants' +import { tools } from '../../store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { ISigninOptions, IUserState } from 'model' +import { validations } from './CSignIn-validate' + +import { validationMixin } from 'vuelidate' + +import { Logo } from '../logo' + +import { static_data } from '../../db/static_data' + +// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar' + +@Component({ + name: 'CSignIn', + mixins: [validationMixin], + validations, + components: { Logo } +}) + +export default class CSignIn extends Vue { + @Prop({required: true}) public showregbutt: boolean + + public $v + public loading: boolean + public $t: any + public iswaitingforRes: boolean = false + + public signin: ISigninOptions = { + username: process.env.TEST_USERNAME || '', + password: process.env.TEST_PASSWORD || '' + } + + get static_data() { + return static_data + } + + public created() { + this.$v.$reset() + + if (UserStore.state.resStatus === serv_constants.RIS_CODE__HTTP_FORBIDDEN_INVALID_TOKEN) { + this.$emit('showNotif', 'fetch.error_doppiologin') + } + + // this.$myconfig.socialLogin.facebook = true + // console.log('PROVA fb:', this.$myconfig.socialLogin.facebook) + } + + public env() { + return process.env + } + + public getlinkforgetpwd() { + return '/requestresetpwd' + } + + public errorMsg(cosa: string, item: any) { + try { + if (!item.$error) { + return '' + } + if (item.$params.email && !item.email) { + return this.$t('reg.err.email') + } + + if (!item.required) { + return this.$t('reg.err.required') + } + if (!item.minLength) { + return this.$t('reg.err.atleast') + ` ${item.$params.minLength.min} ` + this.$t('reg.err.char') + } + if (!item.maxLength) { + return this.$t('reg.err.notmore') + ` ${item.$params.maxLength.max} ` + this.$t('reg.err.char') + } + return '' + } catch (error) { + // console.log("ERR : " + error); + } + } + + public redirect(response) { + this.loading = false + window.location.href = response.data.redirect + } + + public error(error) { + this.loading = false + // this.$errorHandler(this, error) + } + + public facebook() { + this.loading = true + // this.$axios.get('/backend/loginFacebook') + // .then((response) => this.redirect(response)) + // .catch((error) => this.error(error)) + } + + public google() { + // ... + } + + public submit() { + // console.log('submit LOGIN') + + this.signin.username = tools.removespaces(this.signin.username) + + this.$v.signin.$touch() + + if (this.$v.signin.$error) { + this.$emit('showNotif', 'reg.err.errore_generico') + return + } + + this.$emit('loginInCorso') + + // disable Button Login: + this.iswaitingforRes = true + + if (process.env.DEBUG) { + // console.log('this.signin', this.signin) + } + + UserStore.actions.signin(this.signin) + .then((riscode) => { + // console.log('signin FINITO CALL: riscode=', riscode) + if (riscode === tools.OK) { + // router.push('/signin') + } + return riscode + }) + .then((riscode) => { + if (process.env.DEBUG) { + // console.log(' riscode(1) =', riscode) + } + + return riscode + }) + .then((riscode) => { + if (riscode === tools.OK) { + // console.log(' -> eseguo $emit(loginOk)') + + this.$emit('loginOk') + + // GlobalStore.actions.createPushSubscription() + // .then((rissub) => { + // // ... + // }) + // .catch((e) => { + // console.log('ERROR Subscription = ' + e) + // }) + } else { + this.$emit('checkErrors', riscode) + } + + this.iswaitingforRes = false + + }) + .catch((error) => { + // console.log('ERROR SIGNIN = ' + error) + + this.$emit('checkErrors', error) + }) + // console.log(' END submit') + } + +} diff --git a/src/components/CSignIn/CSignIn.vue b/src/components/CSignIn/CSignIn.vue new file mode 100755 index 00000000..9ab597c2 --- /dev/null +++ b/src/components/CSignIn/CSignIn.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/CSignIn/index.ts b/src/components/CSignIn/index.ts new file mode 100755 index 00000000..6d4d00dd --- /dev/null +++ b/src/components/CSignIn/index.ts @@ -0,0 +1 @@ +export {default as CSignIn} from './CSignIn.vue' diff --git a/src/components/CSignUp/CSignUp-validate.ts b/src/components/CSignUp/CSignUp-validate.ts new file mode 100755 index 00000000..3ed14ec9 --- /dev/null +++ b/src/components/CSignUp/CSignUp-validate.ts @@ -0,0 +1,39 @@ +import { ISignupOptions } from 'model' +import { email, minLength, required, sameAs } from 'vuelidate/lib/validators' +// import { ValidationRuleset } from 'vuelidate' +import { complexity, registeredemail, registereduser, aportadorexist } from '../../validation' + +export interface TSignup { signup: ISignupOptions, validationGroup: string[] } + +export const validations = { + signup: { + repeatPassword: { + required, + sameAsPassword: sameAs('password') + }, + password: { + required, + minLength: minLength(8), + complexity + }, + username: { + required, + minLength: minLength(6), + registereduser + }, + name: { + required + }, + surname: { + required + }, + email: { + email, + registeredemail, + required + }, + terms: { + required + } + } +} diff --git a/src/components/CSignUp/CSignUp.scss b/src/components/CSignUp/CSignUp.scss new file mode 100755 index 00000000..0934865c --- /dev/null +++ b/src/components/CSignUp/CSignUp.scss @@ -0,0 +1,34 @@ +.signup { + width: 100%; + margin: 0 auto; + max-width: 450px; +} + + +.wrapper { + display: flex; + align-items: center; + justify-content: center; +} + +.clCellCode { + border-radius: 32px; + border-right: #2d2260; + height: 50px; + font-size: 1rem; + padding: 8px; +} + +.clCell { + border-radius: 32px; + border-right: #2d2260; + height: 50px; + font-size: 1rem; + padding: 8px; +} + +.vue-country-select{ + border-radius: 32px; +} + + diff --git a/src/components/CSignUp/CSignUp.ts b/src/components/CSignUp/CSignUp.ts new file mode 100755 index 00000000..b8e5ef72 --- /dev/null +++ b/src/components/CSignUp/CSignUp.ts @@ -0,0 +1,246 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { UserStore } from '@store' +import { tools } from '../../store/Modules/tools' +import { toolsext } from '@src/store/Modules/toolsext' + +import { ISignupOptions, IUserState, IUserFields } from 'model' +import { validations, TSignup } from './CSignUp-validate' + +import { validationMixin } from 'vuelidate' + +import { Logo } from '../../components/logo' +import { DefaultProfile } from '../../store/Modules/UserStore' + +// import 'vue-country-code/dist/vue-country-code.css' +import { serv_constants } from '@src/store/Modules/serv_constants' + +import VueCountryCode from 'vue-country-code' +import { registereduser } from '../../validation' +import MixinBase from '../../mixins/mixin-base' +import { CTitleBanner } from '../CTitleBanner' + +Vue.use(VueCountryCode) +// import {Loading, QSpinnerFacebook, QSpinnerGears} from 'quasar' + +@Component({ + name: 'CSignUp', + mixins: [validationMixin], + validations, + components: { Logo, CTitleBanner } +}) + +export default class CSignUp extends MixinBase { + @Prop({ required: false, default: false }) public showadultcheck: boolean + @Prop({ required: false, default: false }) public showcell: boolean + @Prop({ required: false, default: false }) public shownationality: boolean + public $v + public $q + public $t: any + public countryname: string = '' + public iamadult: boolean = false + + public duplicate_email: boolean = false + public duplicate_username: boolean = false + + public signup: ISignupOptions = { + email: process.env.TEST_EMAIL || '', + username: process.env.TEST_USERNAME || '', + name: process.env.TEST_NAME || '', + surname: process.env.TEST_SURNAME || '', + password: process.env.TEST_PASSWORD || '', + repeatPassword: process.env.TEST_PASSWORD || '', + terms: !process.env.PROD, + profile: DefaultProfile, + aportador_solidario: '', + } + + public created() { + this.$v.$reset() + } + + get allowSubmit() { + + let error = this.$v.$error || this.$v.$invalid + + if (this.showadultcheck) + error = error || !this.iamadult + + if (this.showcell) + error = error || this.signup.profile.cell.length <= 6 + + return !error + } + + /* + validations: { + isAsync: true, + form: { + email: { + required, email, + isUnique: value => { + if (value === '') return true; + return axios.get(process.env.MONGODB_HOST + '/email/' + value) + .then(res => { + return (res.status !== 200) + }).catch((e) => { + return true; + }) + } + }, + password: {required, minLength: minLength(8), maxLength: maxLength(20)}, + username: { + required, minLength: minLength(6), maxLength: maxLength(20), + isUnique: value => { + if (value === '') return true; + return axios.get(process.env.MONGODB_HOST + '/users/' + value) + .then(res => { + return (res.status !== 200) + }).catch((e) => { + return true; + }) + } + }, + repeatPassword: { + sameAsPassword: sameAs('password') + }, + terms: {required}, + + } + }, */ + public env() { + return process.env + } + + public errorMsg(cosa: string, item: any) { + try { + if (!item.$error) { + return '' + } + console.log('item', item) + // console.log('errorMsg', cosa, item) + if (item.$params.email && !item.email) { + return this.$t('reg.err.email') + } + + if (cosa === 'repeatpassword') { + if (!item.sameAsPassword) { + return this.$t('reg.err.sameaspassword') + } + } + + // console.log('item', item) + + if (item.minLength !== undefined) { + if (!item.minLength) { + return this.$t('reg.err.atleast') + ` ${item.$params.minLength.min} ` + this.$t('reg.err.char') + } + } + if (item.complexity !== undefined) { + if (!item.complexity) { + return this.$t('reg.err.complexity') + } + } +// if (!item.maxLength) { return this.$t('reg.err.notmore') + ` ${item.$params.maxLength.max} ` + this.$t('reg.err.char') } + + if (item.required !== undefined) { + if (!item.required) { + return this.$t('reg.err.required') + } + } + + // console.log(' ....avanti') + if (cosa === 'email') { + // console.log("EMAIL " + item.isUnique); + // console.log(item); + if (!item.isUnique) { + return this.$t('reg.err.duplicate_email') + } + } else if (cosa === 'username') { + // console.log(item); + console.log('username') + console.log(item.$error) + if (!item.isUnique) { + return this.$t('reg.err.duplicate_username') + } + } else if (cosa === 'aportador_solidario') { + // console.log(item); + if (!item.aportadorexist) { + // console.log('!item.aportadorexist !') + return this.$t('reg.err.aportador_not_exist') + } + } else if ((cosa === 'name') || (cosa === 'surname')) { + // console.log(item); + } + + return '' + } catch (error) { + // console.log("ERR : " + error); + } + } + + public changeemail(value) { + this.signup.email = tools.removespaces(this.signup.email) + this.signup.email = this.signup.email.toLowerCase() + this.$emit('update:value', this.signup.email) + } + + public changeusername(value) { + this.signup.username = tools.removespaces(this.signup.username) + this.$emit('update:value', this.signup.username) + } + + public submitOk() { + this.$v.signup.$touch() + + this.signup.email = tools.removespaces(this.signup.email) + this.signup.email = this.signup.email.toLowerCase() + this.signup.username = tools.removespaces(this.signup.username) + + this.duplicate_email = false + this.duplicate_username = false + + if (!this.signup.terms) { + tools.showNotif(this.$q, this.$t('reg.err.terms')) + return + } + + if (this.$v.signup.$error) { + tools.showNotif(this.$q, this.$t('reg.err.errore_generico')) + return + } + + this.signup.name = tools.CapitalizeAllWords(this.signup.name) + this.signup.surname = tools.CapitalizeAllWords(this.signup.surname) + + this.$q.loading.show({ message: this.$t('reg.incorso') }) + + console.log(this.signup) + return UserStore.actions.signup(tools.clone(this.signup)) + .then((ris) => { + if (tools.SignUpcheckErrors(this, ris.code, ris.msg)) + this.$q.loading.hide() + }).catch((error) => { + console.log('ERROR = ' + error) + this.$q.loading.hide() + }) + + } + + public intcode_change(coderec) { + // console.log('intcode', coderec) + this.signup.profile.intcode_cell = '+' + coderec.dialCode + this.signup.profile.iso2_cell = coderec.iso2 + } + + public selectcountry({ name, iso2, dialCode }) { + // console.log(name, iso2, dialCode) + this.signup.profile.nationality = iso2 + this.countryname = name + } + + public inputUsername(value) { + this.signup.username = value.trim() + } + +} diff --git a/src/components/CSignUp/CSignUp.vue b/src/components/CSignUp/CSignUp.vue new file mode 100755 index 00000000..1c314e4d --- /dev/null +++ b/src/components/CSignUp/CSignUp.vue @@ -0,0 +1,195 @@ + + + + diff --git a/src/components/CSignUp/index.ts b/src/components/CSignUp/index.ts new file mode 100755 index 00000000..c40cf7f5 --- /dev/null +++ b/src/components/CSignUp/index.ts @@ -0,0 +1 @@ +export {default as CSignUp} from './CSignUp.vue' diff --git a/src/components/CSigninNoreg/CSigninNoreg.scss b/src/components/CSigninNoreg/CSigninNoreg.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/components/CSigninNoreg/CSigninNoreg.ts b/src/components/CSigninNoreg/CSigninNoreg.ts new file mode 100755 index 00000000..72b15f46 --- /dev/null +++ b/src/components/CSigninNoreg/CSigninNoreg.ts @@ -0,0 +1,37 @@ +import Vue from 'vue' +import { Component, Prop, Watch } from 'vue-property-decorator' +import { CSignIn } from '../../components/CSignIn' +import { tools } from '../../store/Modules/tools' + +@Component({ + name: 'CSigninNoreg', + components: { CSignIn } +}) + +export default class CSigninNoreg extends Vue { + @Prop({ required: true }) public showregbutt: boolean + public $v + public $q + public $t + + public loginOk() { + tools.loginOk(this, true) + } + + public loginInCorso() { + tools.loginInCorso(this) + } + + public checkErrors(riscode) { + tools.SignIncheckErrors(this, riscode, true) + } + + public showNotif(msgcode) { + tools.showNotif(this.$q, this.$t(msgcode)) + } + + get mythis() { + return this + } + +} diff --git a/src/components/CSigninNoreg/CSigninNoreg.vue b/src/components/CSigninNoreg/CSigninNoreg.vue new file mode 100755 index 00000000..c5623409 --- /dev/null +++ b/src/components/CSigninNoreg/CSigninNoreg.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/src/components/CSigninNoreg/index.ts b/src/components/CSigninNoreg/index.ts new file mode 100755 index 00000000..6fc7470b --- /dev/null +++ b/src/components/CSigninNoreg/index.ts @@ -0,0 +1 @@ +export {default as CSigninNoreg} from './CSigninNoreg.vue' diff --git a/src/components/CSingleCart/CSingleCart.scss b/src/components/CSingleCart/CSingleCart.scss new file mode 100755 index 00000000..1a458cd4 --- /dev/null +++ b/src/components/CSingleCart/CSingleCart.scss @@ -0,0 +1,16 @@ +.text-title { + font-size: 0.9rem; +} + +.centeritems{ + place-content: center; +} + +.imgNormal{ + height: 80px; + width: 80px; +} +.imgSmall{ + height: 50px; + width: 50px; +} diff --git a/src/components/CSingleCart/CSingleCart.ts b/src/components/CSingleCart/CSingleCart.ts new file mode 100755 index 00000000..e5155edf --- /dev/null +++ b/src/components/CSingleCart/CSingleCart.ts @@ -0,0 +1,72 @@ +import { tools } from '../../store/Modules/tools' +import { CCardState } from '../CCardState' +import { CCopyBtn } from '../CCopyBtn' + +import { IOperators, IOrder, IProduct } from '@src/model' +import { defineComponent, PropType, toRef } from 'vue' +import CTitleBanner from '@/components/CTitleBanner/CTitleBanner' +import { useProducts } from '@store/Products' + + +export default defineComponent({ + name: 'CSingleCart', + props: { + order: { + type: Object as PropType, + required: true, + }, + showall: { + type: Boolean, + required: false, + default: false, + }, + nomodif: { + type: Boolean, + required: false, + default: false, + }, + }, + components: { CTitleBanner, CCardState, CCopyBtn }, + setup(props) { + const products = useProducts() + const order = toRef(props, 'order') + + function myimgclass() { + if (props.showall) { + return 'imgNormal' + } else { + return 'imgSmall' + } + } + + function addsubqty(addqty: boolean, subqty: boolean) { + if (addqty) { + if (props.order.quantity! >= 10) + return false + } + + if (subqty) { + if (props.order.quantity === 0) + return false + } + + products.addSubQtyToItem({ + addqty, + subqty, + order: props.order, + }).then((newqty) => { + order.value.quantity = newqty + }) + } + + function removeFromCard() { + products.removeFromCart({ order: order.value }) + } + + return { + myimgclass, + addsubqty, + removeFromCard, + } + }, +}) diff --git a/src/components/CSingleCart/CSingleCart.vue b/src/components/CSingleCart/CSingleCart.vue new file mode 100755 index 00000000..0c56c5f9 --- /dev/null +++ b/src/components/CSingleCart/CSingleCart.vue @@ -0,0 +1,48 @@ + + + + + diff --git a/src/components/CSingleCart/index.ts b/src/components/CSingleCart/index.ts new file mode 100755 index 00000000..e82523d2 --- /dev/null +++ b/src/components/CSingleCart/index.ts @@ -0,0 +1 @@ +export {default as CSingleCart} from './CSingleCart.vue' diff --git a/src/components/CTitleBanner/CTitleBanner.scss b/src/components/CTitleBanner/CTitleBanner.scss new file mode 100755 index 00000000..bed14f21 --- /dev/null +++ b/src/components/CTitleBanner/CTitleBanner.scss @@ -0,0 +1,9 @@ +.myshad { + text-shadow: .125rem .125rem .125rem darkgray; +} + +.nonvisibile{ + border-radius: 16px; + border: red solid 3px; + padding: 4px; +} diff --git a/src/components/CTitleBanner/CTitleBanner.ts b/src/components/CTitleBanner/CTitleBanner.ts new file mode 100755 index 00000000..e8db2f27 --- /dev/null +++ b/src/components/CTitleBanner/CTitleBanner.ts @@ -0,0 +1,93 @@ +import { defineComponent, ref } from 'vue' + +export default defineComponent({ + name: 'CTitleBanner', + props: { + title: { + type: String, + required: true, + }, + bgcolor: { + type: String, + required: false, + default: 'bg-primary', + }, + clcolor: { + type: String, + required: false, + default: 'text-white', + }, + mystyle: { + type: String, + required: false, + default: '', + }, + myclass: { + type: String, + required: false, + default: '', + }, + myclasstext: { + type: String, + required: false, + default: '', + }, + icon: { + type: String, + required: false, + default: '', + }, + visible: { + type: Boolean, + required: false, + default: true, + }, + canopen: { + type: Boolean, + required: false, + default: false, + }, + imgpreview: { + type: String, + required: false, + default: '', + }, + }, + components: {}, + emits: ['apri'], + setup(props, { emit }) { + const myvisible = ref(false) + + function created() { + myvisible.value = props.visible + } + + function iconopen() { + if (!myvisible.value) + return 'fas fa-chevron-down q-icon q-expansion-item__toggle-icon q-focusable ' + else + return 'fas fa-chevron-down q-icon q-expansion-item__toggle-icon q-focusable rotate-180' + } + + function apri() { + myvisible.value = !myvisible.value + if (myvisible.value) + emit('apri') + } + + function getclass() { + if (myvisible.value) + return 'isvisibile' + else + return 'nonvisibile glossy' + } + + created() + + return { + iconopen, + apri, + getclass, + } + }, +}) diff --git a/src/components/CTitleBanner/CTitleBanner.vue b/src/components/CTitleBanner/CTitleBanner.vue new file mode 100755 index 00000000..6ecf6d29 --- /dev/null +++ b/src/components/CTitleBanner/CTitleBanner.vue @@ -0,0 +1,37 @@ + + + + diff --git a/src/components/CTitleBanner/index.ts b/src/components/CTitleBanner/index.ts new file mode 100755 index 00000000..ef17a23e --- /dev/null +++ b/src/components/CTitleBanner/index.ts @@ -0,0 +1 @@ +export {default as CTitleBanner} from './CTitleBanner.vue' diff --git a/src/components/Footer/Footer.ts b/src/components/Footer/Footer.ts index 543e52cc..e0350927 100755 --- a/src/components/Footer/Footer.ts +++ b/src/components/Footer/Footer.ts @@ -7,14 +7,12 @@ import { static_data } from '@src/db/static_data' import { useQuasar } from 'quasar' import { useGlobalStore } from '@store/globalStore' -import { FormNewsletter } from '../FormNewsletter' -import { MixinBase } from '../../mixins/mixin-base' import { Logo } from '../logo' import { useI18n } from '@src/boot/i18n' +import { FormNewsletter } from '@components' export default defineComponent({ name: 'Footer', - mixins: [MixinBase], components: { Logo, FormNewsletter }, setup() { diff --git a/src/components/Footer/Footer.vue b/src/components/Footer/Footer.vue index b012677a..cee72076 100755 --- a/src/components/Footer/Footer.vue +++ b/src/components/Footer/Footer.vue @@ -1,171 +1,175 @@ diff --git a/src/components/FormNewsletter/FormNewsletter.ts b/src/components/FormNewsletter/FormNewsletter.ts index 9da50bbc..3aa240a9 100755 --- a/src/components/FormNewsletter/FormNewsletter.ts +++ b/src/components/FormNewsletter/FormNewsletter.ts @@ -6,12 +6,10 @@ import { useQuasar } from 'quasar' import { useI18n } from '@src/boot/i18n' import Api from '@api' import { serv_constants } from '@store/Modules/serv_constants' -import { MixinBase } from '../../mixins/mixin-base' import { toolsext } from '@src/store/Modules/toolsext' export default defineComponent({ name: 'FormNewsletter', - mixins: [MixinBase], props: { name: { required: false, @@ -55,7 +53,7 @@ export default defineComponent({ const locale = toRef(props, 'locale') const onSubmit = async function a2() { - if (accept.value !== true) { + if (!accept.value) { $q.notify({ color: 'red-5', textColor: 'white', diff --git a/src/components/index.ts b/src/components/index.ts index 5fa22770..43507c60 100755 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -7,6 +7,13 @@ export * from './BannerCookies' export * from './testpao' export * from './Footer' export * from './FormNewsletter' +export * from './CCopyBtn' +export * from './CCard' +export * from './CCardOperator' +export * from './CCardCarousel' +export * from './CCardDiscipline' +export * from './CMyTeacher' +export * from './CSingleCart' // export * from './PagePolicy' // export * from './CFacebookFrame' // export * from './CPreloadImages' diff --git a/src/components/testpao/testpao.ts b/src/components/testpao/testpao.ts index 8462c63b..94757dd4 100755 --- a/src/components/testpao/testpao.ts +++ b/src/components/testpao/testpao.ts @@ -2,18 +2,12 @@ import { defineComponent, } from 'vue' import { tools } from '@src/store/Modules/tools' -import { static_data } from '@src/db/static_data' - -import { useQuasar } from 'quasar' -import { useGlobalStore } from '@store/globalStore' import { FormNewsletter } from '../FormNewsletter' -import { MixinBase } from '../../mixins/mixin-base' import { Logo } from '../logo' import { useI18n } from '@src/boot/i18n' export default defineComponent({ name: 'TestPao', - mixins: [MixinBase], components: { Logo, FormNewsletter }, props: { mystyle: { diff --git a/src/mixins/mixin-base.ts b/src/mixins/mixin-base.ts index dd720a50..c543e8dd 100755 --- a/src/mixins/mixin-base.ts +++ b/src/mixins/mixin-base.ts @@ -9,48 +9,41 @@ import { useUserStore } from '@store/UserStore' import { useGlobalStore } from '@store/globalStore' import { useQuasar } from 'quasar' import { IDataPass } from '@model' -import { shared_consts } from '../common/shared_vuejs' import { tools } from '../store/Modules/tools' -import { func_tools } from '../store/Modules/toolsext' import { costanti } from '@costanti' +import { fieldsTable } from '@store/Modules/fieldsTable' // You can declare a mixin as the same style as components. -export const MixinBase = { - created() { - - }, - mythis() { - return this - }, - - showNotif(msg: string) { +export default function () { + function showNotif(msg: string) { const $q = useQuasar() - const { t } = useI18n(); + const { t } = useI18n() tools.showNotif($q, t(msg)) - }, + } - db_fieldsTable() { - // return fieldsTable - }, + function db_fieldsTable() { + return fieldsTable + } - getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any, id?: any, idmain?: any) { + function getValDb(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any, id?: any, idmain?: any) { console.log('getValDb') return toolsext.getValDb(keystr, serv, def, table, subkey, id, idmain) - }, + } - getValDbLang(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any) { + + function getValDbLang(keystr: string, serv: boolean, def?: any, table?: string, subkey?: any) { let ris = toolsext.getValDb(`${keystr}_${toolsext.getLocale()}`, serv, def, table, subkey) if (ris === def) ris = toolsext.getValDb(`${keystr}_it`, serv, def, table, subkey) return ris - }, + } - async setValDb(key: string, value: any, type: any, serv: boolean, table?: string, subkey?: string, id?: any) { + async function setValDb(key: string, value: any, type: any, serv: boolean, table?: string, subkey?: string, id?: any) { const userStore = useUserStore() const globalStore = useGlobalStore() const $q = useQuasar() - const { t } = useI18n(); + const { t } = useI18n() // console.log('setValDb', key, value, serv, table, subkey) let mydatatosave: IDataPass | null = null @@ -166,9 +159,9 @@ export const MixinBase = { // Undo... } }) - }, + } - getarrValDb(keystr: string, serv: boolean) { + function getarrValDb(keystr: string, serv: boolean) { const globalStore = useGlobalStore() const myval = globalStore.getValueSettingsByKey(keystr, serv) @@ -184,6 +177,14 @@ export const MixinBase = { } catch (e) { return [] } - }, + } + return { + showNotif, + db_fieldsTable, + getValDb, + getValDbLang, + setValDb, + getarrValDb, + } } diff --git a/src/mixins/mixin-operator.ts b/src/mixins/mixin-operator.ts new file mode 100755 index 00000000..16e07a03 --- /dev/null +++ b/src/mixins/mixin-operator.ts @@ -0,0 +1,46 @@ +import { useCalendarStore } from '@store/CalendarStore' + +export default function () { + function isEstate(){ + const now = new Date() + return (now.getMonth() === 5) || (now.getMonth() === 6) || (now.getMonth() === 7) || (now.getMonth() === 8) + } + + function isEstateRiprenderanno(){ + const now = new Date() + return (now.getMonth() === 9) + } + + function getOperators() { + const calendarStore = useCalendarStore() + return calendarStore.operators + } + + function getOperatorByUsername(username: string) { + const calendarStore = useCalendarStore() + return calendarStore.getOperatorByUsername(username) + } + + function getImgTeacherByUsername(username: string) { + const calendarStore = useCalendarStore() + return 'statics/images/' + calendarStore.getImgTeacherByUsername(username) + } + + function getTeacherByUsername(username: string) { + const op = getOperatorByUsername(username) + if (!!op) { + return op.name + ' ' + op.surname + } else { + return '' + } + } + + return { + isEstate, + isEstateRiprenderanno, + getOperators, + getOperatorByUsername, + getImgTeacherByUsername, + getTeacherByUsername, + } +} diff --git a/src/model/GlobalStore.ts b/src/model/GlobalStore.ts index 80015103..2c678c55 100755 --- a/src/model/GlobalStore.ts +++ b/src/model/GlobalStore.ts @@ -1,7 +1,7 @@ import { IAction } from '@src/model/Projects' import { IPaymentType } from '@src/model/UserStore' import { - ICart, IDepartment, IProducer, IProduct, IShareWithUs, IStorehouse, + IDepartment, IProducer, IShareWithUs, IStorehouse, } from '@src/model/Products' export interface IPost { diff --git a/src/root/mypage/mypage.ts b/src/root/mypage/mypage.ts index 8a71fb6d..a73578c4 100755 --- a/src/root/mypage/mypage.ts +++ b/src/root/mypage/mypage.ts @@ -1,31 +1,35 @@ -import { defineComponent } from 'vue' +import { defineComponent, ref, onMounted, watch, computed } from 'vue' -/* -import { Component, Prop, Watch } from 'vue-property-decorator' -import { GlobalStore, UserStore } from '@store' - -import { tools } from '../../store/Modules/tools' -import { toolsext } from '../../store/Modules/toolsext' -import { static_data } from '../../db/static_data' -import { Screen } from 'quasar' - -import { colmypage } from '@src/store/Modules/fieldsTable' - -import { CImgText } from '../../components/CImgText/index' -import { CCard, CGridTableRec, CMyPage, CTitleBanner } from '@components' -import MixinMetaTags from '../../mixins/mixin-metatags' -import MixinBase from '@src/mixins/mixin-base' -import { IMyPage } from '@src/model/GlobalStore' - -@Component({ - mixins: [MixinBase], - components: { CImgText, CCard, CMyPage, CTitleBanner } -})*/ +import { useGlobalStore } from '@store/globalStore' +import { useRoute } from 'vue-router' export default defineComponent({ name: 'Mypage', setup() { - return {} + const rec = ref({}) + const globalStore = useGlobalStore() + const route = useRoute() + const path = computed(() => route.path) + + async function created() { + // console.log('this.$route.path', this.$route.path) + rec.value = await globalStore.loadPage(route.path) + // console.log('mounted', this.rec) + } + + watch(path, async (to: string, from: string) => { + rec.value = await globalStore.loadPage(to) + }) + + function meta() { + // return tools.metafunc(this) + } + + onMounted(created) + + return { + rec, + } }, }) /* @@ -36,14 +40,14 @@ export default class Mypage extends MixinMetaTags { public async mounted() { // console.log('this.$route.path', this.$route.path) - this.rec = await GlobalStore.actions.loadPage(this.$route.path) + this.rec = await GlobalStore.loadPage(this.$route.path) // console.log('mounted', this.rec) } @Watch('$route.path') public async changepage() { // console.log('changepage') - this.rec = await GlobalStore.actions.loadPage(this.$route.path) + this.rec = await GlobalStore.loadPage(this.$route.path) } public meta() { diff --git a/src/root/mypage/mypage.vue b/src/root/mypage/mypage.vue index 4fd293c4..4ff3edd5 100755 --- a/src/root/mypage/mypage.vue +++ b/src/root/mypage/mypage.vue @@ -1,6 +1,43 @@ - diff --git a/src/store/Modules/tools.ts b/src/store/Modules/tools.ts index 8fec46d7..0438caaa 100644 --- a/src/store/Modules/tools.ts +++ b/src/store/Modules/tools.ts @@ -3723,13 +3723,15 @@ export const tools = { return mystr.replace(/\s+/g, '') }, - copyStringToClipboard(mythis: any, mystr: string, show: boolean) { + copyStringToClipboard(mystr: string, show: boolean) { + const $q = useQuasar() + const { t } = useI18n() copyToClipboard(mystr).then(() => { - let msg = mythis.t('dialog.copyclipboard') + let msg = t('dialog.copyclipboard') if (show) msg += ' \'' + mystr + '\'' - this.showNotif(mythis.$q, msg) + this.showNotif($q, msg) }) }, diff --git a/src/store/Products.ts b/src/store/Products.ts index 599ebfce..54328ede 100755 --- a/src/store/Products.ts +++ b/src/store/Products.ts @@ -290,7 +290,7 @@ export const useProducts = defineStore('Products', { return ris }, - async addSubQtyToItem({ addqty, subqty, order } : { addqty: number, subqty: number, order: IOrder }) { + async addSubQtyToItem({ addqty, subqty, order } : { addqty: boolean, subqty: boolean, order: IOrder }) { const userStore = useUserStore() if (!static_data.functionality.ENABLE_ECOMMERCE) diff --git a/src/store/Projects.ts b/src/store/Projects.ts index 6e7e7e46..e979e1f2 100755 --- a/src/store/Projects.ts +++ b/src/store/Projects.ts @@ -1,3 +1,4 @@ +import { defineStore } from 'pinia' import { IProject, IProjectsState, IDrag, IMenuList, IAction } from 'model' import { Privacy, TipoVisu } from '@src/model' @@ -13,7 +14,6 @@ import { RouteNames } from '@src/router/route-names' import * as Types from '@src/store/Api/ApiTypes' import { serv_constants } from '@src/store/Modules/serv_constants' import { static_data } from '@src/db/static_data' -import { defineStore } from 'pinia' import { useUserStore } from '@store/UserStore' import { useGlobalStore } from '@store/globalStore' @@ -26,7 +26,8 @@ const listFieldsToChange: string [] = ['descr', 'respUsername', 'viceRespUsernam const listFieldsUpdateCalculation: string [] = ['hoursplanned', 'hoursleft', 'hoursworked', 'progressCalc', 'endwork_estimate'] -export const useProjectStore = defineStore('Projects', { +export const useProjectStore = defineStore({ + id: 'Projects', state: (): IProjectsState => ({ showtype: costanti.ShowTypeTask.SHOW_LAST_N_COMPLETED, projects: [], @@ -316,7 +317,7 @@ export const useProjectStore = defineStore('Projects', { return ris }, - createNewItem({ objproj, atfirst, categorySel }: { objproj: IProject, atfirst: boolean, categorySel: string }) { + createNewItem({ objproj, atfirst, categorySel }: {objproj: IProject, atfirst: boolean, categorySel: string}) { // console.log('createNewItem', objproj, 'cat=', categorySel, 'this.projects', this.projects) if (this.projects === undefined) { this.projects = [] @@ -331,7 +332,7 @@ export const useProjectStore = defineStore('Projects', { } }, - updateProject({ objproj }: { objproj: IProject }) { + updateProject({ objproj }: {objproj: IProject}) { if (!!objproj) { // console.log('updateProject', objproj) const index = tools.getIndexById(this.projects, objproj._id) @@ -352,7 +353,7 @@ export const useProjectStore = defineStore('Projects', { ApiTables.removeitemfromarray(this.projects, ind) }, - async movemyitem({ myitemorig, myitemdest }: { myitemorig: IProject, myitemdest: IProject }) { + async movemyitem({ myitemorig, myitemdest }: {myitemorig: IProject, myitemdest: IProject}) { const indorig = tools.getIndexById(this.projects, myitemorig._id) this.projects.splice(indorig, 1) @@ -361,7 +362,7 @@ export const useProjectStore = defineStore('Projects', { await this.modify({ myitem: myitemdest, field: 'id_parent' }) }, - async dbLoad({ checkPending, onlyiffirsttime }: { checkPending: boolean, onlyiffirsttime: boolean }) { + async dbLoad({ checkPending, onlyiffirsttime }: {checkPending: boolean, onlyiffirsttime: boolean}) { if (!static_data.functionality.ENABLE_PROJECTS_LOADING) return null @@ -412,7 +413,7 @@ export const useProjectStore = defineStore('Projects', { ApiTables.aftercalling(ris, checkPending, nametable) }, - async calculateHoursProjects({ projId, actualphase }: { projId: string, actualphase: string }) { + async calculateHoursProjects({ projId, actualphase }: {projId: string, actualphase: string}) { let ris = null @@ -456,7 +457,7 @@ export const useProjectStore = defineStore('Projects', { } }, - async dbInsert({ myobj, atfirst }: { myobj: IProject, atfirst: boolean }) { + async dbInsert({ myobj, atfirst }: {myobj: IProject, atfirst: boolean}) { const objproj = this.initcat() diff --git a/src/store/UserStore.ts b/src/store/UserStore.ts index 9bb2d992..d8ba1140 100755 --- a/src/store/UserStore.ts +++ b/src/store/UserStore.ts @@ -248,7 +248,8 @@ export const useUserStore = defineStore('UserStore', { .then((res) => { if (res) { return (res.data.code === serv_constants.RIS_CODE_OK) - } return false + } + return false }) .catch((error: any) => false) }, @@ -312,6 +313,58 @@ export const useUserStore = defineStore('UserStore', { .then((res) => res).catch((error) => ({ numtot: 0, numadded: 0, numalreadyexisted: 0 })) }, + async importExtraList(paramquery: any) { + + return Api.SendReq('/users/import_extralist', 'POST', paramquery) + .then((res) => { + return res + }).catch((error) => { + return { numtot: 0, numadded: 0, numalreadyexisted: 0 } + }) + }, + + async execDbOp(paramquery: any) { + return Api.SendReq('/users/dbop', 'POST', paramquery) + .then((res) => { + return res.data + }).catch((error) => { + return false + }) + }, + + async newsletterload(paramquery: any) { + + return Api.SendReq('/news/load', 'POST', paramquery) + .then((res) => { + // console.log('res', res) + return res.data + }).catch((error) => { + return null + }) + }, + + async reportload(paramquery: any) { + + return Api.SendReq('/report/load', 'POST', paramquery) + .then((res) => { + // console.log('res', res) + return res.data + }).catch((error) => { + return null + }) + }, + + async newsletter_setactivate(paramquery: any) { + + return Api.SendReq('/news/setactivate', 'POST', paramquery) + .then((res) => { + // console.log('res', res) + return res.data + }).catch((error) => { + return null + }) + }, + authUser(data: IUserFields) { this.my = { ...data } if (!this.my.profile) { @@ -448,7 +501,7 @@ export const useUserStore = defineStore('UserStore', { this.isLogged = isok && isLogged - // ++Todo conv if (static_data.functionality.ENABLE_TODOS_LOADING) + // ++Todo conv if (static_data.ality.ENABLE_TODOS_LOADING) // await Todos.dbLoad({ checkPending: true }) // if (static_data.functionality.ENABLE_PROJECTS_LOADING) @@ -533,6 +586,5 @@ export const useUserStore = defineStore('UserStore', { return false } }, - }, }) diff --git a/src/views/admin/TableOnlyView/index.ts b/src/views/admin/TableOnlyView/index.ts new file mode 100755 index 00000000..bf56369e --- /dev/null +++ b/src/views/admin/TableOnlyView/index.ts @@ -0,0 +1 @@ +export {default as tableOnlyView} from './tableOnlyView.vue' diff --git a/src/views/admin/TableOnlyView/tableOnlyView.scss b/src/views/admin/TableOnlyView/tableOnlyView.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/views/admin/TableOnlyView/tableOnlyView.ts b/src/views/admin/TableOnlyView/tableOnlyView.ts new file mode 100755 index 00000000..3dad548f --- /dev/null +++ b/src/views/admin/TableOnlyView/tableOnlyView.ts @@ -0,0 +1,59 @@ + +@Component({}) +export default class TableOnlyView extends Vue { + public loading: boolean = false + + public serverPagination: { + page: number, + rowsNumber: number // specifying this determines pagination is server-side + } = {page: 1, rowsNumber: 10} + + public serverData: any [] = [] + + public columns: any[] = [ + { + name: 'chiave', + required: true, + label: 'Chiave', + align: 'left', + field: 'chiave', + sortable: true, + }, + { name: 'valore', label: 'Valore', field: 'valore', sortable: false }, + ] + + public filter: string = '' + + public selected: any[] = [] + + public request(props) { + this.loading = true + setTimeout(() => { + this.serverPagination = props.pagination + let table = this.$refs.table, + rows = GlobalStore.state.cfgServer.slice(), + { page, rowsPerPage, sortBy, descending } = props.pagination + + // if (props.filter) { + // rows = table.filterMethod(rows, props.filter) + // } + // if (sortBy) { + // rows = table.sortMethod(rows, sortBy, descending) + // } + + this.serverPagination.rowsNumber = rows.length + if (rowsPerPage) { + rows = rows.slice((page - 1) * rowsPerPage, page * rowsPerPage) + } + this.serverData = rows + this.loading = false + }, 1500) + } + + public mounted() { + this.request({ + pagination: this.serverPagination, + filter: this.filter, + }) + } +} diff --git a/src/views/admin/TableOnlyView/tableOnlyView.vue b/src/views/admin/TableOnlyView/tableOnlyView.vue new file mode 100755 index 00000000..5c7bb8fc --- /dev/null +++ b/src/views/admin/TableOnlyView/tableOnlyView.vue @@ -0,0 +1,29 @@ + + + + diff --git a/src/views/admin/cfgServer/cfgServer.scss b/src/views/admin/cfgServer/cfgServer.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/views/admin/cfgServer/cfgServer.ts b/src/views/admin/cfgServer/cfgServer.ts new file mode 100755 index 00000000..d677e6df --- /dev/null +++ b/src/views/admin/cfgServer/cfgServer.ts @@ -0,0 +1,104 @@ +import { computed, defineComponent, PropType, ref } from 'vue' + +import { useQuasar } from 'quasar' +import { useI18n } from '@/boot/i18n' +import { useGlobalStore } from '@store/globalStore' +import { ICfgServer } from 'model' + +interface IPageSrv { + page: number, + rowsPerPage: number // specifying this determines pagination is server-side +} +interface IPageS { + page: number, +} + +export default defineComponent({ + name: 'CfgServer', + props: { + loading: { + type: Boolean, + default: false, + required: true, + }, + paginationControl: { + type: Object as PropType, + required: true, + default() { + return { page: 1, rowsPerPage: 20 } + }, + }, + pagination: { + type: Object as PropType, + required: true, + default() { + return { page: 1 } + }, + }, + }, + + setup() { + const $q = useQuasar() + const { t } = useI18n() + const globalStore = useGlobalStore() + + const serverData = computed(() => globalStore.cfgServer.slice()) // [{ chiave: 'chiave1', valore: 'valore 1' }] + const columns = ref([ + { + name: 'chiave', + required: true, + label: 'Chiave', + align: 'left', + field: 'chiave', + sortable: true, + }, + { name: 'idapp', label: 'idapp', field: 'idapp', sortable: true }, + { name: 'userid', label: 'UserId', field: 'userid', sortable: false }, + { name: 'valore', label: 'Valore', field: 'valore', sortable: false }, + ]) + + const colVisib = ref(['chiave', 'idapp', 'userid', 'valore']) + const separator = ref('horizontal') + const filter = ref('') + const selected = ref([]) + const dark = ref(true) + + const keysel = ref('') + const userIdsel = ref('') + + function tableClass() { + if (dark.value) { + return 'bg-black' + } + } + + function selItem(item: any) { + console.log('item', item) + keysel.value = item.chiave + userIdsel.value = item.userId + console.log('this.keysel', keysel.value) + } + + function SaveValue(newVal: any, valinitial: any) { + // console.log('SaveValue', newVal, 'selected', this.selected) + + const mydata: ICfgServer = { + chiave: keysel.value, + userId: userIdsel.value, + valore: newVal, + idapp: process.env.APP_ID!, + } + + // Save on Server + globalStore.saveCfgServerKey(mydata) + } + + return { + selItem, + SaveValue, + serverData, + columns, + filter, + } + }, +}) diff --git a/src/views/admin/cfgServer/cfgServer.vue b/src/views/admin/cfgServer/cfgServer.vue new file mode 100755 index 00000000..6a2bd38f --- /dev/null +++ b/src/views/admin/cfgServer/cfgServer.vue @@ -0,0 +1,52 @@ + + + + diff --git a/src/views/admin/cfgServer/index.ts b/src/views/admin/cfgServer/index.ts new file mode 100755 index 00000000..c9864b2c --- /dev/null +++ b/src/views/admin/cfgServer/index.ts @@ -0,0 +1 @@ +export {default as cfgServer} from './cfgServer.vue' diff --git a/src/views/admin/dbop/dbop.scss b/src/views/admin/dbop/dbop.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/views/admin/dbop/dbop.ts b/src/views/admin/dbop/dbop.ts new file mode 100755 index 00000000..6ee00815 --- /dev/null +++ b/src/views/admin/dbop/dbop.ts @@ -0,0 +1,80 @@ +import { defineComponent, ref } from 'vue' + +import { CTitleBanner } from '../../../components/CTitleBanner' +import { CDateTime } from '../../../components/CDateTime' +import { CMyFieldDb } from '../../../components/CMyFieldDb' +import { useQuasar } from 'quasar' +import { useI18n } from '@/boot/i18n' +import { useUserStore } from '@store/userStore' +import { useGlobalStore } from '@store/globalStore' +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'Dbop', + components: { CTitleBanner, CDateTime, CMyFieldDb }, + props: {}, + setup() { + const $q = useQuasar() + const { t } = useI18n() + + const ris = ref('') + const riga = ref(0) + const numpersone = ref(7) + const date_start = ref(new Date()) + const col = ref(0) + const placca = ref('') + const incaricamento = ref(false) + + async function EseguiFunz(miafunz: string) { + const userStore = useUserStore() + const globalStore = useGlobalStore() + + $q.dialog({ + message: t('dialog.continue') + ' ' + miafunz + ' ?', + cancel: { + label: t('dialog.cancel'), + }, + ok: { + label: t('dialog.yes'), + push: true, + }, + title: 'Funzione:', + }).onOk(async () => { + const mydata = { + dbop: miafunz, + riga: riga, + col: col, + date_start: date_start, + numpersone: numpersone, + } + + incaricamento.value = true + $q.loading.show({ message: t('otherpages.update') }) + + const risfunz = await userStore.execDbOp({ mydata }) + + $q.loading.hide() + await globalStore.loadSite() + + incaricamento.value = false + + console.log('risfunz', risfunz) + + ris.value = '' + + if (miafunz === 'visuPlacca') { + placca.value = risfunz.placca + } else if (miafunz === 'visuListaIngresso' || miafunz === 'visuListaIngressoNuovi' || miafunz === 'visuNaviUtentiEliminati' + || miafunz === 'visuListaNave' || miafunz === 'visuNave' || miafunz === 'creaNavi' + || (miafunz === 'visuStat')) { + placca.value = risfunz.mystr + } + }) + } + + return { + EseguiFunz, + tools, + } + }, +}) diff --git a/src/views/admin/dbop/dbop.vue b/src/views/admin/dbop/dbop.vue new file mode 100755 index 00000000..c45a6713 --- /dev/null +++ b/src/views/admin/dbop/dbop.vue @@ -0,0 +1,229 @@ + + + + diff --git a/src/views/admin/dbop/index.ts b/src/views/admin/dbop/index.ts new file mode 100755 index 00000000..3da44797 --- /dev/null +++ b/src/views/admin/dbop/index.ts @@ -0,0 +1 @@ +export {default as dbop} from './dbop.vue' diff --git a/src/views/admin/extralist/extralist.scss b/src/views/admin/extralist/extralist.scss new file mode 100755 index 00000000..e69de29b diff --git a/src/views/admin/extralist/extralist.ts b/src/views/admin/extralist/extralist.ts new file mode 100755 index 00000000..412b8e9f --- /dev/null +++ b/src/views/admin/extralist/extralist.ts @@ -0,0 +1,74 @@ +import { defineComponent, PropType, ref } from 'vue' +import { useQuasar } from 'quasar' +import CTitleBanner from '@/components/CTitleBanner/CTitleBanner' +import { useUserStore } from '@store/UserStore' +import { useGlobalStore } from '@store/globalStore' +import { tools } from '@store/Modules/tools' + +export default defineComponent({ + name: 'Extralist', + components: { CTitleBanner }, + props: { + mystr: { + type: String, + required: true, + default: '', + }, + myval: { + type: Number, + required: true, + default: 0, + }, + mybool: { + type: Boolean, + required: true, + default: false, + }, + }, + setup() { + const userStore = useUserStore() + + const users_imported = ref('') + const myloadingImport = ref(false) + const errimport = ref(false) + const okimport = ref(false) + const myrisimport = ref('') + + async function importExtraList() { + myloadingImport.value = true + errimport.value = false + okimport.value = false + + const mydata = { + strdata: users_imported, + locale: tools.getLocale(), + } + + const res: any = await userStore.importExtraList(mydata) + + let esistiti = '' + if (res.data.numalreadyexisted > 0) + esistiti = ` ${res.data.numalreadyexisted} email già esistenti` + + if (res.data.numadded > 0) { + okimport.value = true + myrisimport.value = `(${res.data.numadded} / ${res.data.numtot}) utenti extra importati !` + esistiti + } else { + errimport.value = true + myrisimport.value = `Nessun utente extra importato (trovate ${res.data.numtot})` + esistiti + } + + myloadingImport.value = false + } + + + return { + users_imported, + myloadingImport, + errimport, + okimport, + myrisimport, + importExtraList, + } + }, +}) diff --git a/src/views/admin/extralist/extralist.vue b/src/views/admin/extralist/extralist.vue new file mode 100755 index 00000000..405ce98b --- /dev/null +++ b/src/views/admin/extralist/extralist.vue @@ -0,0 +1,46 @@ + + + + diff --git a/src/views/admin/extralist/index.ts b/src/views/admin/extralist/index.ts new file mode 100755 index 00000000..b99701b5 --- /dev/null +++ b/src/views/admin/extralist/index.ts @@ -0,0 +1 @@ +export {default as extralist} from './extralist.vue' diff --git a/yarn.lock b/yarn.lock index 9af93d49..aa679ea4 100755 --- a/yarn.lock +++ b/yarn.lock @@ -51,10 +51,10 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/eslint-parser@^7.15.0": - version "7.15.0" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.0.tgz#b54f06e04d0e93aebcba99f89251e3bf0ee39f21" - integrity sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw== +"@babel/eslint-parser@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.15.4.tgz#46385943726291fb3e8db99522c8099b15684387" + integrity sha512-hPMIAmGNbmQzXJIo2P43Zj9UhRmGev5f9nqdBFOWNGDGh6XKmjby79woBvg6y0Jur6yRfQBneDbUQ8ZVc1krFw== dependencies: eslint-scope "^5.1.1" eslint-visitor-keys "^2.1.0" @@ -1301,7 +1301,44 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@npmcli/arborist@^2.3.0", "@npmcli/arborist@^2.5.0", "@npmcli/arborist@^2.8.2": +"@npmcli/arborist@*": + version "2.8.3" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.8.3.tgz#5569e7d2038f6893abc81f9c879f497b506e6980" + integrity sha512-miFcxbZjmQqeFTeRSLLh+lc/gxIKDO5L4PVCp+dp+kmcwJmYsEJmF7YvHR2yi3jF+fxgvLf3CCFzboPIXAuabg== + dependencies: + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/map-workspaces" "^1.0.2" + "@npmcli/metavuln-calculator" "^1.1.0" + "@npmcli/move-file" "^1.1.0" + "@npmcli/name-from-folder" "^1.0.1" + "@npmcli/node-gyp" "^1.0.1" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^1.8.2" + bin-links "^2.2.1" + cacache "^15.0.3" + common-ancestor-path "^1.0.1" + json-parse-even-better-errors "^2.3.1" + json-stringify-nice "^1.1.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.0" + npm-registry-fetch "^11.0.0" + pacote "^11.3.5" + parse-conflict-json "^1.1.1" + proc-log "^1.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^1.0.1" + read-package-json-fast "^2.0.2" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + treeverse "^1.0.4" + walk-up-path "^1.0.0" + +"@npmcli/arborist@^2.3.0", "@npmcli/arborist@^2.5.0": version "2.8.2" resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-2.8.2.tgz#643f8c8a26ffbaa579983972f67a60cb6217e86a" integrity sha512-6E1XJ0YXBaI9J+25gcTF110MGNx3jv6npr4Rz1U0UAqkuVV7bbDznVJvNqi6F0p8vgrE+Smf9jDTn1DR+7uBjQ== @@ -1338,12 +1375,12 @@ treeverse "^1.0.4" walk-up-path "^1.0.0" -"@npmcli/ci-detect@^1.2.0", "@npmcli/ci-detect@^1.3.0": +"@npmcli/ci-detect@*", "@npmcli/ci-detect@^1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz#6c1d2c625fb6ef1b9dea85ad0a5afcbef85ef22a" integrity sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q== -"@npmcli/config@^2.2.0": +"@npmcli/config@*": version "2.3.0" resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-2.3.0.tgz#364fbe942037e562a832a113206e14ccb651f7bc" integrity sha512-yjiC1xv7KTmUTqfRwN2ZL7BHV160ctGF0fLXmKkkMXj40UOvBe45Apwvt5JsFRtXSoHkUYy1ouzscziuWNzklg== @@ -1391,7 +1428,7 @@ npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -"@npmcli/map-workspaces@^1.0.2", "@npmcli/map-workspaces@^1.0.4": +"@npmcli/map-workspaces@*", "@npmcli/map-workspaces@^1.0.2": version "1.0.4" resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz#915708b55afa25e20bc2c14a766c124c2c5d4cab" integrity sha512-wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q== @@ -1428,7 +1465,7 @@ resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz#3cdc1f30e9736dbc417373ed803b42b1a0a29ede" integrity sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg== -"@npmcli/package-json@^1.0.1": +"@npmcli/package-json@*", "@npmcli/package-json@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== @@ -1442,7 +1479,7 @@ dependencies: infer-owner "^1.0.4" -"@npmcli/run-script@^1.8.2", "@npmcli/run-script@^1.8.3", "@npmcli/run-script@^1.8.4", "@npmcli/run-script@^1.8.6": +"@npmcli/run-script@*", "@npmcli/run-script@^1.8.2", "@npmcli/run-script@^1.8.3", "@npmcli/run-script@^1.8.4": version "1.8.6" resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-1.8.6.tgz#18314802a6660b0d4baa4c3afe7f1ad39d8c28b7" integrity sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g== @@ -2123,10 +2160,10 @@ "@typescript-eslint/types" "4.30.0" eslint-visitor-keys "^2.0.0" -"@vue/compat@^3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/compat/-/compat-3.2.7.tgz#a8c16bb563f7a151c1feea41ebac79cc429651e5" - integrity sha512-VjtAp4oqOYyj/La+wET1CKV4oaEovAIsUSdSLPPoR/RM2Ugiij8pw3uM3MG9kDO9nFW+odBUdsh97v0YrC78ag== +"@vue/compat@^3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/compat/-/compat-3.2.8.tgz#d24dc1b1b71f83e618c6df29684a85b51f724a93" + integrity sha512-MnNI4ewSUPebQhm9gZDUQo/myGmSgVbdyd1xR+A/zicJTOf27yQUQSPvCDv/m/Vd7mf+w4VQ+MSZjPmr3eghfA== "@vue/compiler-core@3.2.4": version "3.2.4" @@ -2150,14 +2187,14 @@ estree-walker "^2.0.2" source-map "^0.6.1" -"@vue/compiler-core@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.7.tgz#a7f1f87d4fae8c78d95a3d3df81bde663427deb8" - integrity sha512-OcWy72QNTkcNYtZIb927pRx2cRujrlDWsAx7ejWDnRzwo83gIyF8NeTrMv/7wbnHoeA+Gga9AK4Wo9PlCzhuLg== +"@vue/compiler-core@3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.8.tgz#13b2386bdb03455c9f6c6af2f3468561a5ae5b1d" + integrity sha512-Sx8qJ030+QM/NakUrkQuUGCeDEb+0d0AgFOl5W4qRvR6e+YgLnW2ew0jREf4T1hak9Fdk8Edl67StECHrhEuew== dependencies: "@babel/parser" "^7.15.0" "@babel/types" "^7.15.0" - "@vue/shared" "3.2.7" + "@vue/shared" "3.2.8" estree-walker "^2.0.2" source-map "^0.6.1" @@ -2177,13 +2214,13 @@ "@vue/compiler-core" "3.2.6" "@vue/shared" "3.2.6" -"@vue/compiler-dom@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.7.tgz#33abaeef89ec653e1a733143d4f7b6392def3de8" - integrity sha512-YZyZNoZlTbTMqyY8QMC8IhwmcDVOiE1DdVwjnXbyihg+XVqpGQkDjNcG5nyMTbtZDKXREsYkcjaZntEfKyWK5g== +"@vue/compiler-dom@3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.8.tgz#69bc9e08928a12295c31299067f18d87301981a9" + integrity sha512-nxBW6k8FMWQ74294CRbqR+iEJRO5vIjx85I3YCOyZFD6FsDHyFL60g76TcJzucp+F2XXIDaYz+A+F4gQlDatjw== dependencies: - "@vue/compiler-core" "3.2.7" - "@vue/shared" "3.2.7" + "@vue/compiler-core" "3.2.8" + "@vue/shared" "3.2.8" "@vue/compiler-sfc@3.2.4": version "3.2.4" @@ -2208,19 +2245,19 @@ postcss-selector-parser "^6.0.4" source-map "^0.6.1" -"@vue/compiler-sfc@^3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.7.tgz#6ee803b7d5d375138fe86124b9c161eebbbc0f0d" - integrity sha512-qjfvRw7/9Q2Qm4cDmrJwTNqnFTXSSI3z/mmS9BSJTYZqh4FC4w+IIYYLWUpS3ef6UTTYY9STC5IUZqfpIod9Uw== +"@vue/compiler-sfc@^3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.8.tgz#23699f69d38b1c32ec54f8b470f3e6375ffc6b6e" + integrity sha512-XClueQAXoWtN2EToKgfYH9FCL70Ac4bxx6OZFZzxYSg1bei8IB9srJP1UOfnJb2IpnM1heikAz1dp1HI1wHcyQ== dependencies: "@babel/parser" "^7.15.0" "@babel/types" "^7.15.0" "@types/estree" "^0.0.48" - "@vue/compiler-core" "3.2.7" - "@vue/compiler-dom" "3.2.7" - "@vue/compiler-ssr" "3.2.7" - "@vue/ref-transform" "3.2.7" - "@vue/shared" "3.2.7" + "@vue/compiler-core" "3.2.8" + "@vue/compiler-dom" "3.2.8" + "@vue/compiler-ssr" "3.2.8" + "@vue/ref-transform" "3.2.8" + "@vue/shared" "3.2.8" consolidate "^0.16.0" estree-walker "^2.0.2" hash-sum "^2.0.0" @@ -2240,13 +2277,13 @@ "@vue/compiler-dom" "3.2.4" "@vue/shared" "3.2.4" -"@vue/compiler-ssr@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.7.tgz#30a4cb128eb7b67be551b22889c58f1288586673" - integrity sha512-4moQTeMujIk+fG8NaMxU5aPhMCnWE+O3xNEK6+kd9GjNoN+n3y3YZ6CkVy+aOP2HpqWenZbS/20TBzOSdon5Cw== +"@vue/compiler-ssr@3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.8.tgz#99733532f44d77144ce1e3b853f2fa08ba394e7a" + integrity sha512-QqyiFRiIl55W0abDNQ6cNG/7iIfBHmbXVtssUAjX3IlI87ELeT0xackmrCyTSnfIX12ixljg9AN0COIZwlvt5A== dependencies: - "@vue/compiler-dom" "3.2.7" - "@vue/shared" "3.2.7" + "@vue/compiler-dom" "3.2.8" + "@vue/shared" "3.2.8" "@vue/devtools-api@^6.0.0-beta.11", "@vue/devtools-api@^6.0.0-beta.14", "@vue/devtools-api@^6.0.0-beta.15", "@vue/devtools-api@^6.0.0-beta.7": version "6.0.0-beta.15" @@ -2276,14 +2313,14 @@ dependencies: "@vue/shared" "3.2.6" -"@vue/ref-transform@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.7.tgz#1028708a44e1926f05e2967719a3481911c03c2f" - integrity sha512-5I7IeUqoDEhPmkPHBhw7YlsFCFO/ZXHWwgdrokQATyVRkEkqeAd8erthuZ9a4sZAo5JBYmxjYw8WD9Kx9mabmg== +"@vue/ref-transform@3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.8.tgz#a527047bab43ce50ef3d400ce71312ab30f825dc" + integrity sha512-9LdADd4JM3klt+b2qNT8a7b7JvBETNBy2Btv5rDzyPrAVS4Vrw+1WWay6gZBgnxfJ9TPSvG8f/9zu6gNGHmJLA== dependencies: "@babel/parser" "^7.15.0" - "@vue/compiler-core" "3.2.7" - "@vue/shared" "3.2.7" + "@vue/compiler-core" "3.2.8" + "@vue/shared" "3.2.8" estree-walker "^2.0.2" magic-string "^0.25.7" @@ -2339,10 +2376,10 @@ resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.6.tgz#2c22bae88fe2b7b59fa68a9c9c4cd60bae2c1794" integrity sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw== -"@vue/shared@3.2.7": - version "3.2.7" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.7.tgz#c792bf92d19025e7940358536d468218a11eeedb" - integrity sha512-YwGOcNZjOY/MmadpzFBXWyHEwZSf0lVU4XF5zpD7tXC9dmqjdo38Jkk06wATu4LYHDPW4emXKMB5YLFPWPkwFA== +"@vue/shared@3.2.8": + version "3.2.8" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.8.tgz#2f918e330aeb3f56ab1031ca60a5b30672512457" + integrity sha512-E2DQQnG7Qr4GwTs3GlfPPlHliGVADoufTnhpwfoViw7JlyLMmYtjfnTwM6nXAwvSJWiF7D+7AxpnWBBT3VWo6Q== "@webassemblyjs/ast@1.11.1": version "1.11.1" @@ -2480,7 +2517,7 @@ abab@^2.0.3, abab@^2.0.5: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== -abbrev@1, abbrev@~1.1.1: +abbrev@*, abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== @@ -2670,12 +2707,12 @@ ansi-styles@^5.0.0: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansicolors@~0.3.2: +ansicolors@*: version "0.3.2" resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" integrity sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk= -ansistyles@~0.1.3: +ansistyles@*: version "0.1.3" resolved "https://registry.yarnpkg.com/ansistyles/-/ansistyles-0.1.3.tgz#5de60415bda071bb37127854c864f41b23254539" integrity sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk= @@ -2735,12 +2772,20 @@ archiver@5.3.0: tar-stream "^2.2.0" zip-stream "^4.1.0" -archy@~1.0.0: +archy@*: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= -are-we-there-yet@^1.1.5, are-we-there-yet@~1.1.2: +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@~1.1.2: version "1.1.5" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== @@ -2943,10 +2988,10 @@ autoprefixer@10.3.1: normalize-range "^0.1.2" postcss-value-parser "^4.1.0" -autoprefixer@^10.3.3: - version "10.3.3" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.3.tgz#4bac89c74ef98e6a40fe1c5b76c0d1c91db153ce" - integrity sha512-yRzjxfnggrP/+qVHlUuZz5FZzEbkT+Yt0/Df6ScEMnbbZBLzYB2W0KLxoQCW+THm1SpOsM1ZPcTHAwuvmibIsQ== +autoprefixer@^10.3.4: + version "10.3.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.3.4.tgz#29efe5d19f51c281953178ddb5b84c5f1ca24c86" + integrity sha512-EKjKDXOq7ug+jagLzmnoTRpTT0q1KVzEJqrJd0hCBa7FiG0WbFOBCcJCy2QkW1OckpO3qgttA1aWjVbeIPAecw== dependencies: browserslist "^4.16.8" caniuse-lite "^1.0.30001252" @@ -2977,12 +3022,12 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== +axios@^0.21.2: + version "0.21.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.2.tgz#21297d5084b2aeeb422f5d38e7be4fbb82239017" + integrity sha512-87otirqUw3e8CzHTMO+/9kh/FSgXt/eVDvipijwDtEuwbkySWZ9SBm6VEubmJ/kLKEoLQV/POhxXFb66bfekfg== dependencies: - follow-redirects "^1.10.0" + follow-redirects "^1.14.0" babel-helper-vue-jsx-merge-props@^2.0.0: version "2.0.3" @@ -3409,11 +3454,12 @@ bytes@3.1.0: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== -cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" - integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== +cacache@*: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: + "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -3432,12 +3478,11 @@ cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: tar "^6.0.2" unique-filename "^1.1.1" -cacache@^15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== +cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: - "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" fs-minipass "^2.0.0" @@ -3572,7 +3617,7 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: +chalk@*, chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3652,7 +3697,7 @@ chokidar@^2.0.0: optionalDependencies: fsevents "^1.2.7" -chownr@^2.0.0: +chownr@*, chownr@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== @@ -3723,7 +3768,7 @@ cli-boxes@^2.2.0, cli-boxes@^2.2.1: resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== -cli-columns@^3.1.2: +cli-columns@*: version "3.1.2" resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-3.1.2.tgz#6732d972979efc2ae444a1f08e08fa139c96a18e" integrity sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4= @@ -3743,7 +3788,7 @@ cli-spinners@^2.5.0: resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== -cli-table3@^0.6.0: +cli-table3@*: version "0.6.0" resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.0.tgz#b7b1bc65ca8e7b5cef9124e13dc2b21e2ce4faee" integrity sha512-gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ== @@ -3938,7 +3983,7 @@ colors@~1.1.2: resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= -columnify@~1.5.4: +columnify@*: version "1.5.4" resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.5.4.tgz#4737ddf1c7b69a8a7c340570782e947eec8e78bb" integrity sha1-Rzfd8ce2mop8NAVweC6UfuyOeLs= @@ -4171,10 +4216,10 @@ core-js@^2.4.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.17.1: - version "3.17.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.1.tgz#b39e086f413789cf2ca4680c4ecd1b36a50ba277" - integrity sha512-C8i/FNpVN2Ti89QIJcFn9ZQmnM+HaAQr2OpE+ja3TRM9Q34FigsGlAVuwPGkIgydSVClo/1l1D1grP8LVt9IYA== +core-js@^3.17.2: + version "3.17.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.2.tgz#f960eae710dc62c29cca93d5332e3660e289db10" + integrity sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA== core-js@^3.6.5: version "3.16.2" @@ -4940,10 +4985,10 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.811: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.816.tgz#ab6488b126de92670a6459fe3e746050e0c6276f" integrity sha512-/AvJPIJldO0NkwkfpUD7u1e4YEGRFBQpFuvl9oGCcVgWOObsZB1loxVGeVUJB9kmvfsBUUChPYdgRzx6+AKNyg== -element-ui@^2.15.5: - version "2.15.5" - resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.5.tgz#dfb376dc5cd60adab21c991bd4fac3e67e5300f4" - integrity sha512-B/YCdz2aRY2WnFXzbTRTHPKZHBD/2KV6u88EBnkaARC/Lyxnap+7vpvrcW5UNTyVwjItS5Fj1eQyRy6236lbXg== +element-ui@^2.15.6: + version "2.15.6" + resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.15.6.tgz#c9609add35af5a686a4b7685dc1d757c75e01df3" + integrity sha512-rcYXEKd/j2G0AgficAOk1Zd1AsnHRkhmrK4yLHmNOiimU2JfsywgfKUjMoFuT6pQx0luhovj8lFjpE4Fnt58Iw== dependencies: async-validator "~1.8.1" babel-helper-vue-jsx-merge-props "^2.0.0" @@ -5623,7 +5668,7 @@ fast-memoize@^2.5.2: resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== -fastest-levenshtein@^1.0.12: +fastest-levenshtein@*: version "1.0.12" resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2" integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow== @@ -5788,11 +5833,16 @@ flatten@^1.0.2: resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== -follow-redirects@^1.0.0, follow-redirects@^1.10.0: +follow-redirects@^1.0.0: version "1.14.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== +follow-redirects@^1.14.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.3.tgz#6ada78118d8d24caee595595accdc0ac6abd022e" + integrity sha512-3MkHxknWMUtb23apkgz/83fDoe+y+qr0TdgacGIA7bew+QLBo3vdgEN2xEsuXNivpFy4CyDhBBZnNZOtalmenw== + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -6114,7 +6164,7 @@ glob-watcher@^5.0.5: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7, glob@~7.1.1: +glob@*, glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -6220,7 +6270,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.8: +graceful-fs@*, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.8" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== @@ -6374,18 +6424,18 @@ he@1.2.x, he@^1.1.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: +hosted-git-info@*, hosted-git-info@^4.0.1, hosted-git-info@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.0.2.tgz#5e425507eede4fea846b7262f0838456c4209961" integrity sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg== dependencies: lru-cache "^6.0.0" +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -6727,22 +6777,22 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@*, ini@2.0.0, ini@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + ini@1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== -ini@2.0.0, ini@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -init-package-json@^2.0.4: +init-package-json@*: version "2.0.4" resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-2.0.4.tgz#9f9f66cd5934e6d5f645150e15013d384d0b90d2" integrity sha512-gUACSdZYka+VvnF90TsQorC+1joAVWNI724vBNj3RD0LLMeDss2IuzaeiQs0T4YzKs76BPHtrp/z3sn2p+KDTw== @@ -6934,7 +6984,7 @@ is-ci@^3.0.0: dependencies: ci-info "^3.1.1" -is-cidr@^4.0.2: +is-cidr@*: version "4.0.2" resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814" integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA== @@ -7904,7 +7954,7 @@ json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== -json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: +json-parse-even-better-errors@*, json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== @@ -8132,7 +8182,7 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libnpmaccess@^4.0.2: +libnpmaccess@*: version "4.0.3" resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-4.0.3.tgz#dfb0e5b0a53c315a2610d300e46b4ddeb66e7eec" integrity sha512-sPeTSNImksm8O2b6/pf3ikv4N567ERYEpeKRPSmqlNt1dTZbvgpJIzg5vAhXHpw2ISBsELFRelk0jEahj1c6nQ== @@ -8151,7 +8201,7 @@ libnpmconfig@^1.2.1: find-up "^3.0.0" ini "^1.3.5" -libnpmdiff@^2.0.4: +libnpmdiff@*: version "2.0.4" resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-2.0.4.tgz#bb1687992b1a97a8ea4a32f58ad7c7f92de53b74" integrity sha512-q3zWePOJLHwsLEUjZw3Kyu/MJMYfl4tWCg78Vl6QGSfm4aXBUSVzMzjJ6jGiyarsT4d+1NH4B1gxfs62/+y9iQ== @@ -8165,7 +8215,7 @@ libnpmdiff@^2.0.4: pacote "^11.3.0" tar "^6.1.0" -libnpmexec@^2.0.1: +libnpmexec@*: version "2.0.1" resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-2.0.1.tgz#729ae3e15a3ba225964ccf248117a75d311eeb73" integrity sha512-4SqBB7eJvJWmUKNF42Q5qTOn20DRjEE4TgvEh2yneKlAiRlwlhuS9MNR45juWwmoURJlf2K43bozlVt7OZiIOw== @@ -8182,14 +8232,14 @@ libnpmexec@^2.0.1: read-package-json-fast "^2.0.2" walk-up-path "^1.0.0" -libnpmfund@^1.1.0: +libnpmfund@*: version "1.1.0" resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-1.1.0.tgz#ee91313905b3194b900530efa339bc3f9fc4e5c4" integrity sha512-Kfmh3pLS5/RGKG5WXEig8mjahPVOxkik6lsbH4iX0si1xxNi6eeUh/+nF1MD+2cgalsQif3O5qyr6mNz2ryJrQ== dependencies: "@npmcli/arborist" "^2.5.0" -libnpmhook@^6.0.2: +libnpmhook@*: version "6.0.3" resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-6.0.3.tgz#1d7f0d7e6a7932fbf7ce0881fdb0ed8bf8748a30" integrity sha512-3fmkZJibIybzmAvxJ65PeV3NzRc0m4xmYt6scui5msocThbEp4sKFT80FhgrCERYDjlUuFahU6zFNbJDHbQ++g== @@ -8197,7 +8247,7 @@ libnpmhook@^6.0.2: aproba "^2.0.0" npm-registry-fetch "^11.0.0" -libnpmorg@^2.0.2: +libnpmorg@*: version "2.0.3" resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-2.0.3.tgz#4e605d4113dfa16792d75343824a0625c76703bc" integrity sha512-JSGl3HFeiRFUZOUlGdiNcUZOsUqkSYrg6KMzvPZ1WVZ478i47OnKSS0vkPmX45Pai5mTKuwIqBMcGWG7O8HfdA== @@ -8205,7 +8255,7 @@ libnpmorg@^2.0.2: aproba "^2.0.0" npm-registry-fetch "^11.0.0" -libnpmpack@^2.0.1: +libnpmpack@*: version "2.0.1" resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-2.0.1.tgz#d3eac25cc8612f4e7cdeed4730eee339ba51c643" integrity sha512-He4/jxOwlaQ7YG7sIC1+yNeXeUDQt8RLBvpI68R3RzPMZPa4/VpxhlDo8GtBOBDYoU8eq6v1wKL38sq58u4ibQ== @@ -8214,7 +8264,7 @@ libnpmpack@^2.0.1: npm-package-arg "^8.1.0" pacote "^11.2.6" -libnpmpublish@^4.0.1: +libnpmpublish@*: version "4.0.2" resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-4.0.2.tgz#be77e8bf5956131bcb45e3caa6b96a842dec0794" integrity sha512-+AD7A2zbVeGRCFI2aO//oUmapCwy7GHqPXFJh3qpToSRNU+tXKJ2YFUgjt04LPPAf2dlEH95s6EhIHM1J7bmOw== @@ -8225,14 +8275,14 @@ libnpmpublish@^4.0.1: semver "^7.1.3" ssri "^8.0.1" -libnpmsearch@^3.1.1: +libnpmsearch@*: version "3.1.2" resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-3.1.2.tgz#aee81b9e4768750d842b627a3051abc89fdc15f3" integrity sha512-BaQHBjMNnsPYk3Bl6AiOeVuFgp72jviShNBw5aHaHNKWqZxNi38iVNoXbo6bG/Ccc/m1To8s0GtMdtn6xZ1HAw== dependencies: npm-registry-fetch "^11.0.0" -libnpmteam@^2.0.3: +libnpmteam@*: version "2.0.4" resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-2.0.4.tgz#9dbe2e18ae3cb97551ec07d2a2daf9944f3edc4c" integrity sha512-FPrVJWv820FZFXaflAEVTLRWZrerCvfe7ZHSMzJ/62EBlho2KFlYKjyNEsPW3JiV7TLSXi3vo8u0gMwIkXSMTw== @@ -8240,7 +8290,7 @@ libnpmteam@^2.0.3: aproba "^2.0.0" npm-registry-fetch "^11.0.0" -libnpmversion@^1.2.1: +libnpmversion@*: version "1.2.1" resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-1.2.1.tgz#689aa7fe0159939b3cbbf323741d34976f4289e9" integrity sha512-AA7x5CFgBFN+L4/JWobnY5t4OAHjQuPbAwUYJ7/NtHuyLut5meb+ne/aj0n7PWNiTGCJcRw/W6Zd2LoLT7EZuQ== @@ -8514,7 +8564,7 @@ make-error@1.x: resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: +make-fetch-happen@*, make-fetch-happen@^9.0.1: version "9.1.0" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== @@ -8536,6 +8586,27 @@ make-fetch-happen@^9.0.1, make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" +make-fetch-happen@^8.0.14: + version "8.0.14" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz#aaba73ae0ab5586ad8eaa68bd83332669393e222" + integrity sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.0.5" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + promise-retry "^2.0.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" + makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" @@ -8835,7 +8906,7 @@ minipass-json-stream@^1.0.1: jsonparse "^1.3.1" minipass "^3.0.0" -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: +minipass-pipeline@*, minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== @@ -8849,7 +8920,7 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@*, minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== @@ -8877,7 +8948,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-infer-owner@^2.0.0: +mkdirp-infer-owner@*, mkdirp-infer-owner@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== @@ -8886,6 +8957,11 @@ mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" +mkdirp@*, mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" @@ -8893,10 +8969,10 @@ mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +ms@*, ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== ms@2.0.0: version "2.0.0" @@ -8913,11 +8989,6 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - multicast-dns-service-types@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" @@ -9003,7 +9074,23 @@ node-forge@^0.10.0: resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-gyp@^7.1.0, node-gyp@^7.1.2: +node-gyp@*: + version "8.2.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.2.0.tgz#ef509ccdf5cef3b4d93df0690b90aa55ff8c7977" + integrity sha512-KG8SdcoAnw2d6augGwl1kOayALUrXW/P2uOAm2J2+nmW/HjZo7y+8TDg7LejxbekOOSv3kzhq+NSUYkIDAX8eA== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^8.0.14" + nopt "^5.0.0" + npmlog "^4.1.2" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +node-gyp@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-7.1.2.tgz#21a810aebb187120251c3bcec979af1587b188ae" integrity sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ== @@ -9062,7 +9149,7 @@ node-sass@^6.0.1: stdout-stream "^1.4.0" "true-case-path" "^1.0.2" -nopt@^5.0.0: +nopt@*, nopt@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== @@ -9136,7 +9223,7 @@ normalize.css@^8.0.1: resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" integrity sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg== -npm-audit-report@^2.1.5: +npm-audit-report@*: version "2.1.5" resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-2.1.5.tgz#a5b8850abe2e8452fce976c8960dd432981737b5" integrity sha512-YB8qOoEmBhUH1UJgh1xFAv7Jg1d+xoNhsDYiFQlEFThEBui0W1vIz2ZK6FVg4WZjwEdl7uBQlm1jy3MUfyHeEw== @@ -9150,12 +9237,12 @@ npm-bundled@^1.1.1: dependencies: npm-normalize-package-bin "^1.0.1" -npm-check-updates@^11.8.3: - version "11.8.3" - resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-11.8.3.tgz#3c3541ad855bbc42b0d60e8eb293d3f6125c80e5" - integrity sha512-NslIB6Af7GagVrN+bvBkObLyawIZfOnDnl8n9MHE+dFt0aChRYtvR6T2BLJKzOPIepCLmmh0NRR/qha0ExAELQ== +npm-check-updates@^11.8.5: + version "11.8.5" + resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-11.8.5.tgz#8dec7fd255a437264742c15f9c0bb29f4eceaf55" + integrity sha512-IYSHjlWe8UEugDy7X0qjBeJwcni4DlcWdBK4QQEbwgkNlEDlXyd4yQJYWFumKaJzrp/n5/EcvaboXsBD1Er/pw== dependencies: - chalk "^4.1.1" + chalk "^4.1.2" cint "^8.2.1" cli-table "^0.3.6" commander "^6.2.1" @@ -9171,7 +9258,7 @@ npm-check-updates@^11.8.3: lodash "^4.17.21" minimatch "^3.0.4" p-map "^4.0.0" - pacote "^11.3.4" + pacote "^11.3.5" parse-github-url "^1.0.2" progress "^2.0.3" prompts "^2.4.1" @@ -9203,7 +9290,7 @@ npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== -npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: +npm-package-arg@*, npm-package-arg@^8.0.0, npm-package-arg@^8.0.1, npm-package-arg@^8.1.0, npm-package-arg@^8.1.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== @@ -9222,7 +9309,7 @@ npm-packlist@^2.1.4: npm-bundled "^1.1.1" npm-normalize-package-bin "^1.0.1" -npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: +npm-pick-manifest@*, npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== @@ -9232,14 +9319,14 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: npm-package-arg "^8.1.2" semver "^7.3.4" -npm-profile@^5.0.3: +npm-profile@*: version "5.0.4" resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-5.0.4.tgz#73e5bd1d808edc2c382d7139049cc367ac43161b" integrity sha512-OKtU7yoAEBOnc8zJ+/uo5E4ugPp09sopo+6y1njPp+W99P8DvQon3BJYmpvyK2Bf1+3YV5LN1bvgXRoZ1LUJBA== dependencies: npm-registry-fetch "^11.0.0" -npm-registry-fetch@^11.0.0: +npm-registry-fetch@*, npm-registry-fetch@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz#68c1bb810c46542760d62a6a965f85a702d43a76" integrity sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA== @@ -9265,19 +9352,19 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-user-validate@^1.0.1: +npm-user-validate@*: version "1.0.1" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561" integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw== -npm@^7.21.1: - version "7.21.1" - resolved "https://registry.yarnpkg.com/npm/-/npm-7.21.1.tgz#2ab886fc8b5eb044ca5b4e2f7570340fad9934eb" - integrity sha512-k7XQNHGHAp0VowMMUMRMtntxWatNad9hhYrelUKDPvZ++DBxvofA8QTNPiuMKtx8CBOFA8iJ4aizhbx6ZYVfzQ== +npm@^7.22.0: + version "7.22.0" + resolved "https://registry.yarnpkg.com/npm/-/npm-7.22.0.tgz#11db1860c68c569eb2e3f4d4e97934b005b585bc" + integrity sha512-HJnjTCrGGnacPMCSnrxuHGf2H4VdrY7hwTAK1RwByg0K96KIuTR4QNioFW+bnc/pW0uwpk9lLsDf4BeEQhTv2Q== dependencies: - "@npmcli/arborist" "^2.8.2" + "@npmcli/arborist" "^2.8.3" "@npmcli/ci-detect" "^1.2.0" - "@npmcli/config" "^2.2.0" + "@npmcli/config" "^2.3.0" "@npmcli/map-workspaces" "^1.0.4" "@npmcli/package-json" "^1.0.1" "@npmcli/run-script" "^1.8.6" @@ -9324,13 +9411,13 @@ npm@^7.21.1: npm-profile "^5.0.3" npm-registry-fetch "^11.0.0" npm-user-validate "^1.0.1" - npmlog "^5.0.0" + npmlog "^5.0.1" opener "^1.5.2" pacote "^11.3.5" parse-conflict-json "^1.1.1" qrcode-terminal "^0.12.0" read "~1.0.7" - read-package-json "^4.0.1" + read-package-json "^4.1.1" read-package-json-fast "^2.0.3" readdir-scoped-modules "^1.1.0" rimraf "^3.0.2" @@ -9344,6 +9431,16 @@ npm@^7.21.1: which "^2.0.2" write-file-atomic "^3.0.3" +npmlog@*: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + npmlog@^4.0.0, npmlog@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" @@ -9354,16 +9451,6 @@ npmlog@^4.0.0, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -npmlog@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.0.tgz#e6a41b556e9b34cb29ea132294676c07acb30efb" - integrity sha512-ftpIiLjerL2tUg3dCqN8pOSoB90gqZlzv/gaZoxHaKjeLClrfJIEQ1Pdxi6qSzflz916Bljdy8dTWQ4J7hAFSQ== - dependencies: - are-we-there-yet "^1.1.5" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - nprogress@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1" @@ -9552,7 +9639,7 @@ open@^8.0.9: is-docker "^2.1.1" is-wsl "^2.2.0" -opener@^1.5.2: +opener@*, opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== @@ -9752,7 +9839,7 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.0" -pacote@^11.1.11, pacote@^11.2.6, pacote@^11.3.0, pacote@^11.3.1, pacote@^11.3.4, pacote@^11.3.5: +pacote@*, pacote@^11.1.11, pacote@^11.2.6, pacote@^11.3.0, pacote@^11.3.1, pacote@^11.3.5: version "11.3.5" resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.3.5.tgz#73cf1fc3772b533f575e39efa96c50be8c3dc9d2" integrity sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg== @@ -9799,7 +9886,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-conflict-json@^1.1.1: +parse-conflict-json@*, parse-conflict-json@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-1.1.1.tgz#54ec175bde0f2d70abf6be79e0e042290b86701b" integrity sha512-4gySviBiW5TRl7XHvp1agcS7SOe0KZOjC//71dzZVWJrY9hCrgtvl5v3SyIxCZ4fZF47TxD9nfzmxcx76xmbUw== @@ -10721,7 +10808,7 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qrcode-terminal@^0.12.0: +qrcode-terminal@*: version "0.12.0" resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== @@ -10821,7 +10908,7 @@ read-cmd-shim@^2.0.0: resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-2.0.0.tgz#4a50a71d6f0965364938e9038476f7eede3928d9" integrity sha512-HJpV9bQpkl6KwjxlJcBoqu9Ba0PQg8TqSNIOrulGt54a0uup0HtevreFHzYzkm0lpnleRdNBzXznKrgxglEHQw== -read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: +read-package-json-fast@*, read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== @@ -10829,20 +10916,20 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- json-parse-even-better-errors "^2.3.0" npm-normalize-package-bin "^1.0.1" -read-package-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.0.tgz#b555a9f749bf5eb9b8f053806b32f17001914e90" - integrity sha512-EBQiek1udd0JKvUzaViAWHYVQRuQZ0IP0LWUOqVCJaZIX92ZO86dOpvsTOO3esRIQGgl7JhFBaGqW41VI57KvQ== +read-package-json@*: + version "4.1.1" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.1.1.tgz#153be72fce801578c1c86b8ef2b21188df1b9eea" + integrity sha512-P82sbZJ3ldDrWCOSKxJT0r/CXMWR0OR3KRh55SgKo3p91GSIEEC32v3lSHAvO/UcH3/IoL7uqhOFBduAnwdldw== dependencies: glob "^7.1.1" json-parse-even-better-errors "^2.3.0" normalize-package-data "^3.0.0" npm-normalize-package-bin "^1.0.0" -read-package-json@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.1.tgz#da88a38c410344fecb7d840d35f27635e848ea54" - integrity sha512-czqCcYfkEl6sIFJVOND/5/Goseu7cVw1rcDUATq6ED0jLGjMm9/HOPmFmEZMvRu9yl272YERaMUcOlvcNU9InQ== +read-package-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-4.0.0.tgz#b555a9f749bf5eb9b8f053806b32f17001914e90" + integrity sha512-EBQiek1udd0JKvUzaViAWHYVQRuQZ0IP0LWUOqVCJaZIX92ZO86dOpvsTOO3esRIQGgl7JhFBaGqW41VI57KvQ== dependencies: glob "^7.1.1" json-parse-even-better-errors "^2.3.0" @@ -10885,7 +10972,7 @@ read-pkg@^5.2.0: parse-json "^5.0.0" type-fest "^0.6.0" -read@1, read@^1.0.7, read@~1.0.1, read@~1.0.7: +read@*, read@1, read@^1.0.7, read@~1.0.1: version "1.0.7" resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= @@ -10921,7 +11008,7 @@ readdir-glob@^1.0.0: dependencies: minimatch "^3.0.4" -readdir-scoped-modules@^1.1.0: +readdir-scoped-modules@*, readdir-scoped-modules@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== @@ -11236,6 +11323,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@*, rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -11243,13 +11337,6 @@ rimraf@^2.4.4, rimraf@^2.5.2, rimraf@^2.6.1: dependencies: glob "^7.1.3" -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - roarr@^2.15.3: version "2.15.4" resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" @@ -11453,6 +11540,13 @@ semver-utils@^1.1.4: resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== +semver@*, semver@7.3.5, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.7.1: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -11463,13 +11557,6 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@7.3.5, semver@7.x, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" @@ -11692,6 +11779,15 @@ sockjs@^0.3.21: uuid "^3.4.0" websocket-driver "^0.7.4" +socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + socks-proxy-agent@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.0.0.tgz#9f8749cdc05976505fa9f9a958b1818d0e60573b" @@ -11701,7 +11797,7 @@ socks-proxy-agent@^6.0.0: debug "^4.3.1" socks "^2.6.1" -socks@^2.6.1: +socks@^2.3.3, socks@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.1.tgz#989e6534a07cf337deb1b1c94aaa44296520d30e" integrity sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA== @@ -11870,7 +11966,7 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^8.0.0, ssri@^8.0.1: +ssri@*, ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== @@ -12237,10 +12333,10 @@ tar-stream@^2.2.0: inherits "^2.0.3" readable-stream "^3.1.1" -tar@^6.0.2, tar@^6.1.0: - version "6.1.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175" - integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA== +tar@*, tar@^6.1.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -12249,10 +12345,10 @@ tar@^6.0.2, tar@^6.1.0: mkdirp "^1.0.3" yallist "^4.0.0" -tar@^6.1.11: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== +tar@^6.0.2, tar@^6.1.0: + version "6.1.10" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.10.tgz#8a320a74475fba54398fa136cd9883aa8ad11175" + integrity sha512-kvvfiVvjGMxeUNB6MyYv5z7vhfFRwbwCXJAeL0/lnbrttBVqcMOnpHUf0X42LrPMR8mMpgapkJMchFH4FSHzNA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -12336,7 +12432,7 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-table@^0.2.0, text-table@~0.2.0: +text-table@*, text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= @@ -12371,7 +12467,7 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= -tiny-relative-date@^1.3.0: +tiny-relative-date@*: version "1.3.0" resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== @@ -12471,7 +12567,7 @@ tr46@^2.1.0: dependencies: punycode "^2.1.1" -treeverse@^1.0.4: +treeverse@*, treeverse@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== @@ -12983,7 +13079,7 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0, validate-npm-package-name@~3.0.0: +validate-npm-package-name@*, validate-npm-package-name@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= @@ -13472,6 +13568,13 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= +which@*, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + which@^1.2.9: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -13479,13 +13582,6 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - wide-align@^1.1.0, wide-align@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -13747,7 +13843,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: +write-file-atomic@*, write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==