fix(front) : types referentiels partages — supprime le warning Duplicated imports
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 48s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 53s

This commit is contained in:
2026-06-29 08:21:12 +02:00
parent 4b9382df3f
commit f8f8f53b4c
9 changed files with 49 additions and 55 deletions
@@ -219,7 +219,7 @@ import {
type AddressType,
} from '~/modules/commercial/utils/forms/clientFormRules'
import { useAddressAutocomplete, type AddressSuggestion } from '~/shared/composables/useAddressAutocomplete'
import type { CategoryOption, RefOption } from '~/modules/commercial/composables/useClientReferentials'
import type { CategoryOption, RefOption } from '~/modules/commercial/types/referentials'
import type { AddressFormDraft } from '~/modules/commercial/types/clientForm'
import { ADDRESS_MASK } from '~/shared/utils/textSanitize'
import { isFilled } from '~/shared/utils/consultationDisplay'
@@ -200,7 +200,7 @@
<script setup lang="ts">
import { useAddressAutocomplete, type AddressSuggestion } from '~/shared/composables/useAddressAutocomplete'
import type { CategoryOption, RefOption } from '~/modules/commercial/composables/useSupplierReferentials'
import type { CategoryOption, RefOption } from '~/modules/commercial/types/referentials'
import type { SupplierAddressFormDraft, SupplierAddressType } from '~/modules/commercial/types/supplierForm'
import { ADDRESS_MASK } from '~/shared/utils/textSanitize'
import { isFilled } from '~/shared/utils/consultationDisplay'
@@ -1,4 +1,5 @@
import { ref } from 'vue'
import type { CategoryOption, ClientOption, PaymentTypeOption, RefOption } from '~/modules/commercial/types/referentials'
/**
* Charge les referentiels (listes courtes) alimentant les selects de l'ecran
@@ -15,32 +16,6 @@ import { ref } from 'vue'
* Etat 100 % local a l'instance (refs) — aucune persistance URL.
*/
/** Option generique au format attendu par MalioSelect / MalioSelectCheckbox ({ label, value }). */
export interface RefOption {
value: string
label: string
// Couleur de fond optionnelle de l'option (hex #RRGGBB). Aujourd'hui
// alimentee par le referentiel sites (couleur d'identification du site,
// affichee sur les tags selectionnes du multiselect).
color?: string
// Couleur de texte optionnelle (hex). Sites : blanc, pour rester lisible
// sur le fond colore du tag.
textColor?: string
}
/** Option de type de reglement enrichie de son code stable (RG-1.12 / RG-1.13). */
export interface PaymentTypeOption extends RefOption {
code: string
}
/** Option de categorie enrichie de son code stable (filtrage RG-1.29 cote adresse). */
export interface CategoryOption extends RefOption {
code: string
}
/** Option de client (distributeur / courtier) — value = IRI du client lie. */
export type ClientOption = RefOption
interface HydraMember {
'@id': string
}
@@ -1,4 +1,5 @@
import { ref } from 'vue'
import type { CategoryOption, PaymentTypeOption, RefOption } from '~/modules/commercial/types/referentials'
/**
* Charge les referentiels (listes courtes) alimentant les selects de l'ecran
@@ -16,29 +17,6 @@ import { ref } from 'vue'
* Etat 100 % local a l'instance (refs) — aucune persistance URL.
*/
/** Option generique au format attendu par MalioSelect / MalioSelectCheckbox. */
export interface RefOption {
value: string
label: string
// Couleur de fond optionnelle de l'option (hex #RRGGBB). Alimentee par le
// referentiel sites (couleur d'identification du site, affichee sur les tags
// selectionnes du multiselect).
color?: string
// Couleur de texte optionnelle (hex). Sites : blanc, pour rester lisible
// sur le fond colore du tag.
textColor?: string
}
/** Option de type de reglement enrichie de son code stable (RG-2.07 / RG-2.08). */
export interface PaymentTypeOption extends RefOption {
code: string
}
/** Option de categorie enrichie de son code stable. */
export interface CategoryOption extends RefOption {
code: string
}
interface HydraMember {
'@id': string
}
@@ -421,7 +421,8 @@
<script setup lang="ts">
import { computed, onMounted, reactive, ref, watch } from 'vue'
import { useClient } from '~/modules/commercial/composables/useClient'
import { useClientReferentials, type CategoryOption, type RefOption } from '~/modules/commercial/composables/useClientReferentials'
import { useClientReferentials } from '~/modules/commercial/composables/useClientReferentials'
import type { CategoryOption, RefOption } from '~/modules/commercial/types/referentials'
import { useClientFormErrors } from '~/modules/commercial/composables/useClientFormErrors'
import {
canEditClient,
@@ -417,7 +417,8 @@
<script setup lang="ts">
import { computed, onMounted, reactive, ref, watch } from 'vue'
import { useClientReferentials, type RefOption } from '~/modules/commercial/composables/useClientReferentials'
import { useClientReferentials } from '~/modules/commercial/composables/useClientReferentials'
import type { RefOption } from '~/modules/commercial/types/referentials'
import { useClientFormErrors } from '~/modules/commercial/composables/useClientFormErrors'
import {
buildClientFormTabKeys,
@@ -390,7 +390,8 @@
<script setup lang="ts">
import { computed, onMounted, reactive, ref } from 'vue'
import { useSupplier } from '~/modules/commercial/composables/useSupplier'
import { useSupplierReferentials, type CategoryOption, type RefOption } from '~/modules/commercial/composables/useSupplierReferentials'
import { useSupplierReferentials } from '~/modules/commercial/composables/useSupplierReferentials'
import type { CategoryOption, RefOption } from '~/modules/commercial/types/referentials'
import { useSupplierFormErrors } from '~/modules/commercial/composables/useSupplierFormErrors'
import {
canEditSupplier,
@@ -382,7 +382,8 @@
<script setup lang="ts">
import { computed, onMounted, reactive, ref, watch } from 'vue'
import { useSupplierReferentials, type RefOption } from '~/modules/commercial/composables/useSupplierReferentials'
import { useSupplierReferentials } from '~/modules/commercial/composables/useSupplierReferentials'
import type { RefOption } from '~/modules/commercial/types/referentials'
import { useSupplierFormErrors } from '~/modules/commercial/composables/useSupplierFormErrors'
import {
buildSupplierFormTabKeys,
@@ -0,0 +1,37 @@
/**
* Types d'options des referentiels (selects) partages entre les ecrans Client (M1)
* et Fournisseur (M2).
*
* Centralises ici pour eviter la double declaration dans `useClientReferentials`
* et `useSupplierReferentials` : Nuxt auto-importe les symboles exportes par
* `composables/*`, et deux composables exportant les memes noms (`PaymentTypeOption`,
* `CategoryOption`...) provoquent un warning « Duplicated imports » au build.
* Le dossier `types/` n'est pas auto-importe : une seule source de verite, importee
* explicitement la ou c'est necessaire.
*/
/** Option generique au format attendu par MalioSelect / MalioSelectCheckbox ({ label, value }). */
export interface RefOption {
value: string
label: string
// Couleur de fond optionnelle de l'option (hex #RRGGBB). Alimentee par le
// referentiel sites (couleur d'identification du site, affichee sur les tags
// selectionnes du multiselect).
color?: string
// Couleur de texte optionnelle (hex). Sites : blanc, pour rester lisible
// sur le fond colore du tag.
textColor?: string
}
/** Option de type de reglement enrichie de son code stable (RG-1.12/1.13, RG-2.07/2.08). */
export interface PaymentTypeOption extends RefOption {
code: string
}
/** Option de categorie enrichie de son code stable (filtrage RG-1.29 cote adresse). */
export interface CategoryOption extends RefOption {
code: string
}
/** Option de client (distributeur / courtier) — value = IRI du client lie. */
export type ClientOption = RefOption