Olivier Massot 4 месяцев назад
Родитель
Сommit
bfd5d98f04
36 измененных файлов с 208 добавлено и 120 удалено
  1. 1 1
      components/Layout/Parameters/EntityTable.vue
  2. 1 1
      components/Ui/Button/Delete.vue
  3. 10 10
      components/Ui/EventList.vue
  4. 1 1
      components/Ui/Form/Creation.vue
  5. 1 1
      components/Ui/Form/Edition.vue
  6. 1 1
      components/Ui/Input/Autocomplete/Accesses.vue
  7. 1 1
      components/Ui/Input/Autocomplete/ApiResources.vue
  8. 1 1
      components/Ui/Input/Autocomplete/Enum.vue
  9. 3 3
      components/Ui/Input/DatePicker.vue
  10. 3 3
      components/Ui/Input/DateTimePicker.vue
  11. 2 2
      components/Ui/Input/Phone.vue
  12. 1 1
      components/Ui/Input/TreeSelect.vue
  13. 2 2
      components/Ui/Input/TreeSelect/EventCategories.vue
  14. 3 3
      components/Ui/MapLeaflet.client.vue
  15. 0 1
      composables/form/useValidation.ts
  16. 1 2
      models/Freemium/Event.ts
  17. 1 2
      models/Freemium/Organization.ts
  18. 1 2
      models/Freemium/Place.ts
  19. 1 1
      package.json
  20. 1 1
      pages/dev/poc_tree_select_input.vue
  21. 4 4
      pages/freemium/dashboard.vue
  22. 11 10
      pages/freemium/organization.vue
  23. 1 1
      pages/my-settings.vue
  24. 1 1
      pages/parameters/attendances.vue
  25. 1 1
      pages/parameters/bulletin.vue
  26. 1 1
      pages/parameters/education_notation.vue
  27. 1 1
      pages/parameters/general_parameters.vue
  28. 1 1
      pages/parameters/intranet.vue
  29. 1 1
      pages/parameters/sms.vue
  30. 1 1
      pages/parameters/super_admin.vue
  31. 2 2
      pages/parameters/teaching.vue
  32. 1 1
      services/data/Filters/EqualFilter.ts
  33. 0 1
      services/data/entityManager.ts
  34. 1 1
      services/data/enumManager.ts
  35. 1 1
      stores/sse.ts
  36. 144 52
      yarn.lock

+ 1 - 1
components/Layout/Parameters/EntityTable.vue

@@ -197,7 +197,7 @@ const goToCreatePage = () => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + props.model.entity + '_many_/')
     useRepo(props.model).flush()
   }

+ 1 - 1
components/Ui/Button/Delete.vue

@@ -4,7 +4,7 @@ Bouton Delete avec modale de confirmation de la suppression
 
 <template>
   <main>
-    <div @click="onDeleteClicked()" class="div_to_clicked">
+    <div class="div_to_clicked" @click="onDeleteClicked()">
       <!-- Content -->
       <slot/>
     </div>

+ 10 - 10
components/Ui/EventList.vue

@@ -3,19 +3,19 @@
     <v-list  height="380">
 
       <v-list-item
-        class="event-item"
         v-for="event in events"
         :key="event.id"
+        class="event-item"
         :subtitle="date.format(event.datetimeStart, 'fullDateWithWeekday')"
         :title="event.name"
       >
-        <template v-slot:prepend>
+        <template #prepend>
           <v-avatar color="grey-lighten-1">
-            <UiImage :imageId="event.image" :width="50" />
+            <UiImage :image-id="event.image" :width="50" />
           </v-avatar>
         </template>
 
-        <template v-slot:append>
+        <template #append>
           <v-avatar  @click="$emit('edit', event.id)">
             <v-icon>fas fa-pencil</v-icon>
           </v-avatar>
@@ -30,23 +30,23 @@
 
     </v-list>
 
-    <div class="d-flex justify-space-between px-4 py-2 pagination mb-5" v-if="events.length > 0">
-      <v-btn variant="flat" class="pagination-btn" @click="$emit('load', pagination.first)" :disabled="!pagination.first || !pagination.previous">
+    <div v-if="events.length > 0" class="d-flex justify-space-between px-4 py-2 pagination mb-5">
+      <v-btn variant="flat" class="pagination-btn" :disabled="!pagination.first || !pagination.previous" @click="$emit('load', pagination.first)">
         <v-avatar>
         <v-icon>fas fa-angles-left</v-icon>
       </v-avatar>
       </v-btn>
-      <v-btn variant="flat" class="pagination-btn" @click="$emit('load', pagination.previous)" :disabled="!pagination.previous">
+      <v-btn variant="flat" class="pagination-btn" :disabled="!pagination.previous" @click="$emit('load', pagination.previous)">
         <v-avatar>
           <v-icon>fas fa-angle-left</v-icon>
         </v-avatar>
       </v-btn>
-      <v-btn variant="flat" class="pagination-btn" @click="$emit('load', pagination.next)" :disabled="!pagination.next">
+      <v-btn variant="flat" class="pagination-btn" :disabled="!pagination.next" @click="$emit('load', pagination.next)">
         <v-avatar>
           <v-icon>fas fa-angle-right</v-icon>
         </v-avatar>
       </v-btn>
-      <v-btn variant="flat" class="pagination-btn" @click="$emit('load', pagination.last)" :disabled="pagination.last == 1">
+      <v-btn variant="flat" class="pagination-btn" :disabled="pagination.last == 1" @click="$emit('load', pagination.last)">
         <v-avatar>
           <v-icon>fas fa-angles-right</v-icon>
         </v-avatar>
@@ -58,7 +58,7 @@
 <script lang="ts" setup>
 import { defineProps, defineEmits } from 'vue'
 import type {Collection} from "pinia-orm";
-import Event from "~/models/Freemium/Event";
+import type Event from "~/models/Freemium/Event";
 import type {Pagination} from "~/types/data";
 import { useDate } from 'vuetify'
 

+ 1 - 1
components/Ui/Form/Creation.vue

@@ -65,7 +65,7 @@ const quit = () => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     useRepo(props.model).flush()
   }
 })

+ 1 - 1
components/Ui/Form/Edition.vue

@@ -79,7 +79,7 @@ const quit = () => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + props.model.entity + '_' + props.id + '_/')
     useRepo(props.model).flush()
     // Forcer le garbage collection des objets Parameters

+ 1 - 1
components/Ui/Input/Autocomplete/Accesses.vue

@@ -256,7 +256,7 @@ const onUpdateModelValue = (event: Array<number>) => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + UserSearchItem + '_many_/')
     useRepo(UserSearchItem).flush()
   }

+ 1 - 1
components/Ui/Input/Autocomplete/ApiResources.vue

@@ -308,7 +308,7 @@ const onUpdateModelValue = (event: Array<number>) => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + props.model.entity + '_many_/')
     useRepo(props.model).flush()
   }

+ 1 - 1
components/Ui/Input/Autocomplete/Enum.vue

@@ -75,7 +75,7 @@ const items: ComputedRef<Enum> = computed(() => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData(props.enumName)
     // Forcer le garbage collection des objets Parameters
     enumItems.value = null

+ 3 - 3
components/Ui/Input/DatePicker.vue

@@ -10,8 +10,8 @@ Sélecteur de dates, à placer dans un composant `UiForm`
       </span>
 
       <v-validation
-        v-model="date"
         v-slot="{ errorMessages }"
+        v-model="date"
         :rules="rules"
         :error="error || !!fieldViolations"
         :error-messages="
@@ -22,12 +22,12 @@ Sélecteur de dates, à placer dans un composant `UiForm`
           <UiDatePicker
             v-model="date"
             :readonly="readonly"
-            :withTimePicker="withTimePicker"
+            :with-time-picker="withTimePicker"
             class="date-picker"
             @update:model-value="onUpdate($event)"
           />
 
-        <div class="v-input__details error_message" v-if="errorMessages.value.length > 0">
+        <div v-if="errorMessages.value.length > 0" class="v-input__details error_message">
           <div class="v-messages__message">
             <span v-for="errorMessage in errorMessages.value">
                 {{ errorMessage }}

+ 3 - 3
components/Ui/Input/DateTimePicker.vue

@@ -49,8 +49,8 @@
           <v-time-picker
             :model-value="time"
             format="24hr"
-            @update:model-value="onUpdateTime($event)"
             scrollable
+            @update:model-value="onUpdateTime($event)"
           />
         </v-menu>
       </v-text-field>
@@ -154,13 +154,13 @@ const emit = defineEmits(['update:model-value'])
 
 const onUpdateDate = (event: Date) => {
   updateViolationState()
-  let date = DateUtils.combineDateAndTime(event, time.value)
+  const date = DateUtils.combineDateAndTime(event, time.value)
   emit('update:model-value', date.toISOString().replace('.000Z', '+00:00'))
 }
 
 const onUpdateTime = (event: string) => {
   updateViolationState()
-  let date = DateUtils.combineDateAndTime(dateModel.value, event)
+  const date = DateUtils.combineDateAndTime(dateModel.value, event)
   emit('update:model-value', date.toISOString().replace('.000Z', '+00:00'))
 }
 

+ 2 - 2
components/Ui/Input/Phone.vue

@@ -11,9 +11,9 @@ Champs de saisie d'un numéro de téléphone
     :rules="rules"
     :variant="variant"
     :label="label || field ? $t(label ?? field) : undefined"
-    defaultCountry="FR"
+    default-country="FR"
+    :invalid-message="(n) => $t('invalid_phone_number', { example: n.example})"
     @update:model-value="onUpdate($event)"
-    :invalidMessage="(n) => $t('invalid_phone_number', { example: n.example})"
   />
 </template>
 

+ 1 - 1
components/Ui/Input/TreeSelect.vue

@@ -153,7 +153,7 @@ et sélectionner des éléments organisés en catégories et sous-catégories.
 import StringUtils from '~/services/utils/stringUtils'
 import _ from 'lodash'
 import { ref, computed, nextTick, type PropType, type Ref } from 'vue'
-import { type TreeSelectItem } from '~/types/layout'
+import type { TreeSelectItem } from '~/types/layout'
 
 const props = defineProps({
   modelValue: {

+ 2 - 2
components/Ui/Input/TreeSelect/EventCategories.vue

@@ -5,8 +5,8 @@
     :label="$t(label)"
     v-bind="$attrs"
     :loading="status === FETCHING_STATUS.PENDING"
-    @update:model-value="$emit('update:modelValue', $event)"
     :max-visible-chips="6"
+    @update:model-value="$emit('update:modelValue', $event)"
   />
 </template>
 
@@ -142,7 +142,7 @@ const hierarchicalItems = computed(() => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + EventCategory + '_many_/')
     useRepo(EventCategory).flush()
   }

+ 3 - 3
components/Ui/MapLeaflet.client.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="map-container">
-    <v-skeleton-loader type="image" v-if="pending"></v-skeleton-loader>
+    <v-skeleton-loader v-if="pending" type="image"></v-skeleton-loader>
 
     <LMap
       v-show="!pending"
@@ -19,15 +19,15 @@
 
       <LMarker
         :lat-lng="position"
-        @update:latLng="onPositionUpdate($event)"
         :draggable="!readonly"
+        @update:lat-lng="onPositionUpdate($event)"
          />
     </LMap>
 
     <v-btn
+      v-if="searchButton && !readonly"
       prepend-icon="fas fa-location-dot"
       class="mt-3"
-      v-if="searchButton && !readonly"
       @click="search()"
     >
       {{$t('search_gps_button')}}

+ 0 - 1
composables/form/useValidation.ts

@@ -2,7 +2,6 @@ import { useI18n } from 'vue-i18n'
 import type { Ref } from 'vue'
 import { useAp2iRequestService } from '~/composables/data/useAp2iRequestService'
 import UrlUtils from '~/services/utils/urlUtils'
-import type { AnyJson } from '~/types/data'
 
 /**
  * @category composables/form

+ 1 - 2
models/Freemium/Event.ts

@@ -1,7 +1,6 @@
-import { Str, Uid } from 'pinia-orm/dist/decorators'
+import { Str, Uid,Attr, Num } from 'pinia-orm/dist/decorators'
 import ApiModel from '~/models/ApiModel'
 import {Assert, IriEncoded} from '~/models/decorators'
-import {Attr, Num} from "pinia-orm/decorators";
 import File from "~/models/Core/File";
 import Place from "~/models/Place/Place";
 import Country from "~/models/Core/Country";

+ 1 - 2
models/Freemium/Organization.ts

@@ -1,7 +1,6 @@
-import { Str, Uid } from 'pinia-orm/dist/decorators'
+import { Str, Uid,Attr, Bool, Num } from 'pinia-orm/dist/decorators'
 import ApiModel from '~/models/ApiModel'
 import {Assert, IdLess, IriEncoded} from '~/models/decorators'
-import {Attr, Bool, Num} from "pinia-orm/decorators";
 import Country from "~/models/Core/Country";
 import File from "~/models/Core/File";
 

+ 1 - 2
models/Freemium/Place.ts

@@ -1,7 +1,6 @@
-import { Str, Uid } from 'pinia-orm/dist/decorators'
+import { Str, Uid,Attr, Num } from 'pinia-orm/dist/decorators'
 import ApiModel from '~/models/ApiModel'
 import {Assert, IriEncoded} from '~/models/decorators'
-import {Attr, Num} from "pinia-orm/decorators";
 import Country from "~/models/Core/Country";
 
 /**

+ 1 - 1
package.json

@@ -75,7 +75,7 @@
     "@types/lodash-es": "^4.17.12",
     "@types/uuid": "^10.0.0",
     "@types/vue-the-mask": "^0.11.5",
-    "@typescript-eslint/eslint-plugin": "^8.22.0",
+    "@typescript-eslint/eslint-plugin": "^8.43.0",
     "@typescript-eslint/parser": "^8.22.0",
     "@vitejs/plugin-vue": "^5.2.1",
     "@vitest/coverage-v8": "3.0.4",

+ 1 - 1
pages/dev/poc_tree_select_input.vue

@@ -35,7 +35,7 @@
 </template>
 
 <script setup lang="ts">
-import { type TreeSelectItem } from '~/types/layout'
+import type { TreeSelectItem } from '~/types/layout'
 
 const selectedValues = ref<string[]>([])
 const selectedCategories = ref<string[]>([])

+ 4 - 4
pages/freemium/dashboard.vue

@@ -82,10 +82,6 @@
 
 import Query from "~/services/data/Query";
 
-definePageMeta({
-  name: 'freemium_dashboard_page',
-})
-
 import {type Ref, ref} from 'vue'
 import {useEntityFetch} from "~/composables/data/useEntityFetch";
 import Organization from "~/models/Freemium/Organization";
@@ -101,6 +97,10 @@ import UrlUtils from "~/services/utils/urlUtils";
 import {useApiLegacyRequestService} from "~/composables/data/useApiLegacyRequestService";
 import {useAdminUrl} from "~/composables/utils/useAdminUrl";
 
+definePageMeta({
+  name: 'freemium_dashboard_page',
+})
+
 //Ref Définition
 const runtimeConfig = useRuntimeConfig()
 const { fetch, fetchCollection } = useEntityFetch()

+ 11 - 10
pages/freemium/organization.vue

@@ -1,5 +1,6 @@
 <template>
-      <UiFormEdition :model="Organization"
+      <UiFormEdition
+:model="Organization"
                      class="inner-container"
       >
         <template #default="{ entity : organization }">
@@ -56,21 +57,21 @@
                     v-model="organization.addressCountry"
                     field="addressCountry"
                     :model="Country"
-                    listValue="id"
-                    listLabel="name"
+                    list-value="id"
+                    list-label="name"
                   />
 
                   <client-only>
                     <UiMapLeaflet
                       v-model:latitude="organization.latitude"
                       v-model:longitude="organization.longitude"
-                      :streetAddress="organization.streetAddress"
-                      :streetAddressSecond="organization.streetAddressSecond"
-                      :streetAddressThird="organization.streetAddressThird"
-                      :postalCode="organization.postalCode"
-                      :addressCity="organization.addressCity"
-                      :addressCountryId="organization.addressCountry"
-                      :searchButton="true"
+                      :street-address="organization.streetAddress"
+                      :street-address-second="organization.streetAddressSecond"
+                      :street-address-third="organization.streetAddressThird"
+                      :postal-code="organization.postalCode"
+                      :address-city="organization.addressCity"
+                      :address-country-id="organization.addressCountry"
+                      :search-button="true"
                     ></UiMapLeaflet>
                   </client-only>
 

+ 1 - 1
pages/my-settings.vue

@@ -8,7 +8,7 @@ Page 'Mes préférences'
         <UiExpansionPanel title="message_settings" icon="fas fa-inbox">
           <v-container fluid class="container">
             <v-row>
-              <UiFormEdition :model="Preferences" :id="accessProfileStore.preferencesId">
+              <UiFormEdition :id="accessProfileStore.preferencesId" :model="Preferences">
                 <template #default="{ entity : preferences }">
                   <div v-if="preferences">
                     <v-row>

+ 1 - 1
pages/parameters/attendances.vue

@@ -2,7 +2,7 @@
   <div>
     <LayoutCommonSection>
       <h4>{{ $t('configuration') }}</h4>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/bulletin.vue

@@ -1,7 +1,7 @@
 <template>
   <LayoutContainer>
     <LayoutCommonSection>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/education_notation.vue

@@ -1,7 +1,7 @@
 <template>
   <LayoutContainer>
     <LayoutCommonSection>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/general_parameters.vue

@@ -1,7 +1,7 @@
 <template>
   <LayoutContainer>
     <LayoutCommonSection>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/intranet.vue

@@ -1,7 +1,7 @@
 <template>
   <LayoutContainer>
     <LayoutCommonSection>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/sms.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <LayoutCommonSection>
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>

+ 1 - 1
pages/parameters/super_admin.vue

@@ -10,7 +10,7 @@
         </div>
       </div>
 
-      <UiFormEdition :model="AdminAccess" :id="accessProfile.id" class="w-100">
+      <UiFormEdition :id="accessProfile.id" :model="AdminAccess" class="w-100">
         <template #default="{ entity : adminAccess }">
           <div v-if="adminAccess">
             <v-table class="mb-4">

+ 2 - 2
pages/parameters/teaching.vue

@@ -3,7 +3,7 @@
     <LayoutCommonSection>
       <h4>{{ $t('configuration') }}</h4>
 
-      <UiFormEdition :model="Parameters" :id="organizationProfile.parametersId">
+      <UiFormEdition :id="organizationProfile.parametersId" :model="Parameters">
         <template #default="{ entity : parameters }">
           <div v-if="parameters">
             <v-row>
@@ -121,7 +121,7 @@ const goToCycleEditPage = (item: CycleTableItem) => {
 // Nettoyer les données lors du démontage du composant
 onBeforeUnmount(() => {
   // Nettoyer les références du store si nécessaire
-  if (process.client) {
+  if (import.meta.client) {
     clearNuxtData('/^' + Cycle.entity + '_many_/')
     useRepo(Cycle).flush()
   }

+ 1 - 1
services/data/Filters/EqualFilter.ts

@@ -1,4 +1,4 @@
-import { type NonMethodKeys, type Query as PiniaOrmQuery } from 'pinia-orm'
+import type { Query as PiniaOrmQuery } from 'pinia-orm'
 import type { Ref } from 'vue'
 import type { ApiFilter } from '~/types/data'
 import type ApiResource from '~/models/ApiResource'

+ 0 - 1
services/data/entityManager.ts

@@ -13,7 +13,6 @@ import type ApiResource from '~/models/ApiResource'
 import type {
   AnyJson,
   ApiCollection,
-  ApiResponse,
   AssociativeArray,
   Collection,
 } from '~/types/data.d'

+ 1 - 1
services/data/enumManager.ts

@@ -2,7 +2,7 @@ import type { VueI18n } from 'vue-i18n'
 import type ApiRequestService from './apiRequestService'
 import UrlUtils from '~/services/utils/urlUtils'
 import HydraNormalizer from '~/services/data/normalizer/hydraNormalizer'
-import type { ApiCollection, Collection, Enum } from '~/types/data.d'
+import type { Collection, Enum } from '~/types/data.d'
 
 class EnumManager {
   private apiRequestService: ApiRequestService

+ 1 - 1
stores/sse.ts

@@ -2,7 +2,7 @@ import { defineStore } from 'pinia'
 import { ref } from 'vue'
 import type { Ref } from 'vue'
 import { useEntityManager } from '~/composables/data/useEntityManager'
-import type { AccessProfile, MercureEntityUpdate } from '~/types/interfaces'
+import type { MercureEntityUpdate } from '~/types/interfaces'
 
 export const useSseStore = defineStore('sse', () => {
   const connected: Ref<boolean> = ref(false)

+ 144 - 52
yarn.lock

@@ -3161,27 +3161,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@typescript-eslint/eslint-plugin@npm:^8.22.0":
-  version: 8.26.1
-  resolution: "@typescript-eslint/eslint-plugin@npm:8.26.1"
-  dependencies:
-    "@eslint-community/regexpp": "npm:^4.10.0"
-    "@typescript-eslint/scope-manager": "npm:8.26.1"
-    "@typescript-eslint/type-utils": "npm:8.26.1"
-    "@typescript-eslint/utils": "npm:8.26.1"
-    "@typescript-eslint/visitor-keys": "npm:8.26.1"
-    graphemer: "npm:^1.4.0"
-    ignore: "npm:^5.3.1"
-    natural-compare: "npm:^1.4.0"
-    ts-api-utils: "npm:^2.0.1"
-  peerDependencies:
-    "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0
-    eslint: ^8.57.0 || ^9.0.0
-    typescript: ">=4.8.4 <5.9.0"
-  checksum: 10c0/412f41aafd503a1faea91edd03a68717ca8a49ed6683700b8386115c67b86110c9826d10005d3a0341b78cdee41a6ef08842716ced2b58af03f91eb1b8cc929c
-  languageName: node
-  linkType: hard
-
 "@typescript-eslint/eslint-plugin@npm:^8.32.1":
   version: 8.33.0
   resolution: "@typescript-eslint/eslint-plugin@npm:8.33.0"
@@ -3203,6 +3182,27 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/eslint-plugin@npm:^8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/eslint-plugin@npm:8.43.0"
+  dependencies:
+    "@eslint-community/regexpp": "npm:^4.10.0"
+    "@typescript-eslint/scope-manager": "npm:8.43.0"
+    "@typescript-eslint/type-utils": "npm:8.43.0"
+    "@typescript-eslint/utils": "npm:8.43.0"
+    "@typescript-eslint/visitor-keys": "npm:8.43.0"
+    graphemer: "npm:^1.4.0"
+    ignore: "npm:^7.0.0"
+    natural-compare: "npm:^1.4.0"
+    ts-api-utils: "npm:^2.1.0"
+  peerDependencies:
+    "@typescript-eslint/parser": ^8.43.0
+    eslint: ^8.57.0 || ^9.0.0
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/9823f6e917d16f95a87fb1fd6c224f361a9f17386453ac97d7d457774cf2ea7bdbcfad37ad063b71ec01a4292127a8bfe69d1987b948e85def2410de8fe353dd
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/parser@npm:^6.5.0":
   version: 6.21.0
   resolution: "@typescript-eslint/parser@npm:6.21.0"
@@ -3264,6 +3264,19 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/project-service@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/project-service@npm:8.43.0"
+  dependencies:
+    "@typescript-eslint/tsconfig-utils": "npm:^8.43.0"
+    "@typescript-eslint/types": "npm:^8.43.0"
+    debug: "npm:^4.3.4"
+  peerDependencies:
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/c9058b5fbf9642c35a303641e4ff2d0df1ddac337275bab84b56167f1019fbcb7e69959239fed82e53c747f58d6ee4c1859cf5b018803cba1b1aab430439d728
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/scope-manager@npm:6.21.0":
   version: 6.21.0
   resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
@@ -3294,6 +3307,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/scope-manager@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/scope-manager@npm:8.43.0"
+  dependencies:
+    "@typescript-eslint/types": "npm:8.43.0"
+    "@typescript-eslint/visitor-keys": "npm:8.43.0"
+  checksum: 10c0/f87b3c3a5d3ad18326945288fa5b9b9fa662d87f466dc159e1514e00e359e830b80557f213acb3d23d5d600826b4cc4cfa5d2d479f8aba1b9834df19a640a779
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/tsconfig-utils@npm:8.33.0, @typescript-eslint/tsconfig-utils@npm:^8.33.0":
   version: 8.33.0
   resolution: "@typescript-eslint/tsconfig-utils@npm:8.33.0"
@@ -3303,6 +3326,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/tsconfig-utils@npm:8.43.0, @typescript-eslint/tsconfig-utils@npm:^8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/tsconfig-utils@npm:8.43.0"
+  peerDependencies:
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/b3a472368ad31e31e58ef019f6afec7387f5885e3fd423c71f3910b6d6b767324fde8bd60bec2e7505cc130317ece7fbc91314c44cdfea74ff76b5039bf26d52
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/type-utils@npm:6.21.0":
   version: 6.21.0
   resolution: "@typescript-eslint/type-utils@npm:6.21.0"
@@ -3320,33 +3352,34 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@typescript-eslint/type-utils@npm:8.26.1":
-  version: 8.26.1
-  resolution: "@typescript-eslint/type-utils@npm:8.26.1"
+"@typescript-eslint/type-utils@npm:8.33.0":
+  version: 8.33.0
+  resolution: "@typescript-eslint/type-utils@npm:8.33.0"
   dependencies:
-    "@typescript-eslint/typescript-estree": "npm:8.26.1"
-    "@typescript-eslint/utils": "npm:8.26.1"
+    "@typescript-eslint/typescript-estree": "npm:8.33.0"
+    "@typescript-eslint/utils": "npm:8.33.0"
     debug: "npm:^4.3.4"
-    ts-api-utils: "npm:^2.0.1"
+    ts-api-utils: "npm:^2.1.0"
   peerDependencies:
     eslint: ^8.57.0 || ^9.0.0
     typescript: ">=4.8.4 <5.9.0"
-  checksum: 10c0/17553b4333246e1ffd447dab78a4cbc565c129c9baf32326387760c9790120a99d955acf84888b7ef96e73c82fc22a3e08e80f0bd65d21e3cf2fe002f977aba1
+  checksum: 10c0/4a81c654ba17e8a50e48249f781cb91cddb990044affda7315d9b259aabd638232c9a98ff5f4d45ea3b258098060864026b746fce93ad6b4dcde5e492d93c855
   languageName: node
   linkType: hard
 
-"@typescript-eslint/type-utils@npm:8.33.0":
-  version: 8.33.0
-  resolution: "@typescript-eslint/type-utils@npm:8.33.0"
+"@typescript-eslint/type-utils@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/type-utils@npm:8.43.0"
   dependencies:
-    "@typescript-eslint/typescript-estree": "npm:8.33.0"
-    "@typescript-eslint/utils": "npm:8.33.0"
+    "@typescript-eslint/types": "npm:8.43.0"
+    "@typescript-eslint/typescript-estree": "npm:8.43.0"
+    "@typescript-eslint/utils": "npm:8.43.0"
     debug: "npm:^4.3.4"
     ts-api-utils: "npm:^2.1.0"
   peerDependencies:
     eslint: ^8.57.0 || ^9.0.0
-    typescript: ">=4.8.4 <5.9.0"
-  checksum: 10c0/4a81c654ba17e8a50e48249f781cb91cddb990044affda7315d9b259aabd638232c9a98ff5f4d45ea3b258098060864026b746fce93ad6b4dcde5e492d93c855
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/70e61233fd586c4545b0ee11871001ba603816fccb69b9fe883a653b32aa049e957a97f208f522b58480a4f4e1c6322b9a3ef60a389925eaefba94abcd44ff7e
   languageName: node
   linkType: hard
 
@@ -3371,6 +3404,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/types@npm:8.43.0, @typescript-eslint/types@npm:^8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/types@npm:8.43.0"
+  checksum: 10c0/60d19b695affce128fe1076ebe4cff7e05d38dd50155d653fc9e995eafa56c299fd49ad4d9d2997f118a75fb57e3ca18001623bc3ef3fa0111f863079203e4b2
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/typescript-estree@npm:6.21.0":
   version: 6.21.0
   resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
@@ -3428,6 +3468,26 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/typescript-estree@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/typescript-estree@npm:8.43.0"
+  dependencies:
+    "@typescript-eslint/project-service": "npm:8.43.0"
+    "@typescript-eslint/tsconfig-utils": "npm:8.43.0"
+    "@typescript-eslint/types": "npm:8.43.0"
+    "@typescript-eslint/visitor-keys": "npm:8.43.0"
+    debug: "npm:^4.3.4"
+    fast-glob: "npm:^3.3.2"
+    is-glob: "npm:^4.0.3"
+    minimatch: "npm:^9.0.4"
+    semver: "npm:^7.6.0"
+    ts-api-utils: "npm:^2.1.0"
+  peerDependencies:
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/184ba925067d7fbcb377450195a89511f030a49d080e27058fa78078a069d86c1936b1a82ce6f19ff24c30c4de8b779deb050c36b06db5372c95fc7e5be7115a
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/utils@npm:6.21.0":
   version: 6.21.0
   resolution: "@typescript-eslint/utils@npm:6.21.0"
@@ -3445,21 +3505,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@typescript-eslint/utils@npm:8.26.1, @typescript-eslint/utils@npm:^8.23.0":
-  version: 8.26.1
-  resolution: "@typescript-eslint/utils@npm:8.26.1"
-  dependencies:
-    "@eslint-community/eslint-utils": "npm:^4.4.0"
-    "@typescript-eslint/scope-manager": "npm:8.26.1"
-    "@typescript-eslint/types": "npm:8.26.1"
-    "@typescript-eslint/typescript-estree": "npm:8.26.1"
-  peerDependencies:
-    eslint: ^8.57.0 || ^9.0.0
-    typescript: ">=4.8.4 <5.9.0"
-  checksum: 10c0/a5cb3bdf253cc8e8474a2ed8666c0a6194abe56f44039c6623bef0459ed17d0276ed6e40c70d35bd8ec4d41bafc255e4d3025469f32ac692ba2d89e7579c2a26
-  languageName: node
-  linkType: hard
-
 "@typescript-eslint/utils@npm:8.33.0, @typescript-eslint/utils@npm:^8.32.1":
   version: 8.33.0
   resolution: "@typescript-eslint/utils@npm:8.33.0"
@@ -3475,6 +3520,36 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/utils@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/utils@npm:8.43.0"
+  dependencies:
+    "@eslint-community/eslint-utils": "npm:^4.7.0"
+    "@typescript-eslint/scope-manager": "npm:8.43.0"
+    "@typescript-eslint/types": "npm:8.43.0"
+    "@typescript-eslint/typescript-estree": "npm:8.43.0"
+  peerDependencies:
+    eslint: ^8.57.0 || ^9.0.0
+    typescript: ">=4.8.4 <6.0.0"
+  checksum: 10c0/42fc8c60551361d80b5c53b303ba8cd20cf914665168416ad0a278cd44aae587311af9e4461f92ed28b5f36091d275a0e9974482d5e9ba95fc00108a537cdd36
+  languageName: node
+  linkType: hard
+
+"@typescript-eslint/utils@npm:^8.23.0":
+  version: 8.26.1
+  resolution: "@typescript-eslint/utils@npm:8.26.1"
+  dependencies:
+    "@eslint-community/eslint-utils": "npm:^4.4.0"
+    "@typescript-eslint/scope-manager": "npm:8.26.1"
+    "@typescript-eslint/types": "npm:8.26.1"
+    "@typescript-eslint/typescript-estree": "npm:8.26.1"
+  peerDependencies:
+    eslint: ^8.57.0 || ^9.0.0
+    typescript: ">=4.8.4 <5.9.0"
+  checksum: 10c0/a5cb3bdf253cc8e8474a2ed8666c0a6194abe56f44039c6623bef0459ed17d0276ed6e40c70d35bd8ec4d41bafc255e4d3025469f32ac692ba2d89e7579c2a26
+  languageName: node
+  linkType: hard
+
 "@typescript-eslint/visitor-keys@npm:6.21.0":
   version: 6.21.0
   resolution: "@typescript-eslint/visitor-keys@npm:6.21.0"
@@ -3505,6 +3580,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@typescript-eslint/visitor-keys@npm:8.43.0":
+  version: 8.43.0
+  resolution: "@typescript-eslint/visitor-keys@npm:8.43.0"
+  dependencies:
+    "@typescript-eslint/types": "npm:8.43.0"
+    eslint-visitor-keys: "npm:^4.2.1"
+  checksum: 10c0/5d576eaf7bea41933ba726f4b24410bd3fc2521ef286967c3dc630c6a90fabff2a2d7c4d12cb841d3f946d2e5e6fb2605e7edd84e3360308fe379dbf2b8dc2fa
+  languageName: node
+  linkType: hard
+
 "@ucast/core@npm:^1.0.0, @ucast/core@npm:^1.4.1, @ucast/core@npm:^1.6.1":
   version: 1.10.2
   resolution: "@ucast/core@npm:1.10.2"
@@ -4518,7 +4603,7 @@ __metadata:
     "@types/lodash-es": "npm:^4.17.12"
     "@types/uuid": "npm:^10.0.0"
     "@types/vue-the-mask": "npm:^0.11.5"
-    "@typescript-eslint/eslint-plugin": "npm:^8.22.0"
+    "@typescript-eslint/eslint-plugin": "npm:^8.43.0"
     "@typescript-eslint/parser": "npm:^8.22.0"
     "@vitejs/plugin-vue": "npm:^5.2.1"
     "@vitest/coverage-v8": "npm:3.0.4"
@@ -7412,6 +7497,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"eslint-visitor-keys@npm:^4.2.1":
+  version: 4.2.1
+  resolution: "eslint-visitor-keys@npm:4.2.1"
+  checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43
+  languageName: node
+  linkType: hard
+
 "eslint@npm:^9.19.0":
   version: 9.22.0
   resolution: "eslint@npm:9.22.0"
@@ -8647,7 +8739,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1":
+"ignore@npm:^5.1.1, ignore@npm:^5.2.0, ignore@npm:^5.2.4":
   version: 5.3.2
   resolution: "ignore@npm:5.3.2"
   checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337