{"_id":"@amsom-habitat/qui-fait-quoi","_rev":"4-97bd25c14a33e35c64a5e71a2a6369f8","name":"@amsom-habitat/qui-fait-quoi","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"@amsom-habitat/qui-fait-quoi","version":"1.0.0","_id":"@amsom-habitat/qui-fait-quoi@1.0.0","maintainers":[{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"}],"dist":{"shasum":"cecf2532af9481de9419302ec298f3616ea320a3","tarball":"https://registry.npmjs.org/@amsom-habitat/qui-fait-quoi/-/qui-fait-quoi-1.0.0.tgz","fileCount":4,"integrity":"sha512-5CpcMa/NRK8cyXh+DG6XIHekb3+BQzeYYSFrWxxlUOIY7OnuioKRO7DM+IGMujIl41j8FVWXZ/kgn5jyPsRzpA==","signatures":[{"sig":"MEUCIQCEwuAH7kjjIY98saRzQdApIizqPXO+0J7ZtA5B6Mv3VAIgSBw6CRqO0AvbxTJcRlAGh4JETvuxgVKHINvq8LX2D5w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369320},"main":"./dist/qui-fait-quoi.umd.js","type":"module","export":{".":{"import":"./dist/qui-fait-quoi.js","require":"./dist/qui-fait-quoi.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"module":"./dist/qui-fait-quoi.js","gitHead":"4229da3232f45fe55f360f3fd77cdb368eb16102","scripts":{"dev":"vite","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore","build":"vite build","format":"prettier --write src/","preview":"vite preview","test:e2e":"start-server-and-test preview http://localhost:4173 'cypress run --e2e'","chromatic":"npx chromatic --exit-zero-on-changes","storybook":"storybook dev -p 6006","test:unit":"cypress run --component","test:e2e:dev":"start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'","test:unit:dev":"cypress open --component","build-storybook":"storybook build"},"_npmUser":{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"},"_npmVersion":"11.5.2","description":"Composant Vue 3 pour afficher les partenaires d'un module avec leurs contacts.","directories":{},"_nodeVersion":"24.6.0","dependencies":{"@amsom-habitat/bootstrap-5":"^3.1.29","@amsom-habitat/user-manager":"^1.12.0","@amsom-habitat/axios-overlay":"^1.0.6","@fortawesome/vue-fontawesome":"^3.1.2","@fortawesome/fontawesome-svg-core":"^6.7.2","@fortawesome/free-solid-svg-icons":"^6.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","react":"^18.2.0","eslint":"^8.49.0","cypress":"^13.6.6","prettier":"^3.0.3","chromatic":"^11.29.0","react-dom":"^18.2.0","storybook":"^8.0.10","@storybook/test":"^8.0.10","@storybook/vue3":"^8.0.10","@amsom-habitat/ui":"^2.19.1","@storybook/blocks":"^8.0.10","eslint-plugin-vue":"^9.17.0","@vitejs/plugin-vue":"^5.0.4","@storybook/vue3-vite":"^8.0.10","eslint-plugin-cypress":"^2.15.1","start-server-and-test":"^2.0.3","@storybook/addon-links":"^8.0.10","@rushstack/eslint-patch":"^1.3.3","eslint-plugin-storybook":"^0.8.0","@amsom-habitat/amsom-login":"^1.2.3","@storybook/addon-essentials":"^8.0.10","@vue/eslint-config-prettier":"^8.0.0","@storybook/addon-interactions":"^8.0.10"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/qui-fait-quoi_1.0.0_1763737345581_0.8833846129718723","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@amsom-habitat/qui-fait-quoi","version":"1.0.1","_id":"@amsom-habitat/qui-fait-quoi@1.0.1","maintainers":[{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"}],"dist":{"shasum":"4f637a4ff150a47dacc82a8b98255b06485a27f0","tarball":"https://registry.npmjs.org/@amsom-habitat/qui-fait-quoi/-/qui-fait-quoi-1.0.1.tgz","fileCount":4,"integrity":"sha512-i/VWiO0iWMEwAu9Tjn2KEQLCF0e/yaCc4SaagOQWCeq45DPFIiEAT60AVD9glWHEVpwthmoBiYgjwXNvvrQV/g==","signatures":[{"sig":"MEUCIDxEDaDbZM1GZ3NvB2AHLI7hJwr3tteojb13vilV0TSwAiEAluQ3RKaA/cPAg5L0nwBSCYO1CdvtDqwARdDpdV++RXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372399},"main":"./dist/qui-fait-quoi.umd.js","type":"module","export":{".":{"import":"./dist/qui-fait-quoi.js","require":"./dist/qui-fait-quoi.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"module":"./dist/qui-fait-quoi.js","gitHead":"75350e94f87d246383f07c1e49443c4fd3e0f88f","scripts":{"dev":"vite","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore","build":"vite build","format":"prettier --write src/","preview":"vite preview","test:e2e":"start-server-and-test preview http://localhost:4173 'cypress run --e2e'","chromatic":"npx chromatic --exit-zero-on-changes","storybook":"storybook dev -p 6006","test:unit":"cypress run --component","test:e2e:dev":"start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'","test:unit:dev":"cypress open --component","build-storybook":"storybook build"},"_npmUser":{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"},"_npmVersion":"11.5.2","description":"Composant Vue 3 pour afficher les partenaires d'un module avec leurs informations de contact (email, téléphone, mobile).","directories":{},"_nodeVersion":"24.6.0","dependencies":{"@amsom-habitat/bootstrap-5":"^3.1.29","@amsom-habitat/user-manager":"^1.12.0","@amsom-habitat/axios-overlay":"^1.0.6","@fortawesome/vue-fontawesome":"^3.1.2","@fortawesome/fontawesome-svg-core":"^6.7.2","@fortawesome/free-solid-svg-icons":"^6.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.1.5","react":"^18.2.0","eslint":"^8.49.0","cypress":"^13.6.6","prettier":"^3.0.3","chromatic":"^11.29.0","react-dom":"^18.2.0","storybook":"^8.0.10","@storybook/test":"^8.0.10","@storybook/vue3":"^8.0.10","@amsom-habitat/ui":"^2.19.1","@storybook/blocks":"^8.0.10","eslint-plugin-vue":"^9.17.0","@vitejs/plugin-vue":"^5.0.4","@storybook/vue3-vite":"^8.0.10","eslint-plugin-cypress":"^2.15.1","start-server-and-test":"^2.0.3","@storybook/addon-links":"^8.0.10","@rushstack/eslint-patch":"^1.3.3","eslint-plugin-storybook":"^0.8.0","@amsom-habitat/amsom-login":"^1.2.3","@storybook/addon-essentials":"^8.0.10","@vue/eslint-config-prettier":"^8.0.0","@storybook/addon-interactions":"^8.0.10"},"peerDependencies":{"vue":"^3.4.0"},"_npmOperationalInternal":{"tmp":"tmp/qui-fait-quoi_1.0.1_1763739348826_0.30101858465463827","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@amsom-habitat/qui-fait-quoi","version":"1.0.5","_id":"@amsom-habitat/qui-fait-quoi@1.0.5","maintainers":[{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"}],"dist":{"shasum":"ba19365a7a4c3a9af4d14756c956ce43f0c456ac","tarball":"https://registry.npmjs.org/@amsom-habitat/qui-fait-quoi/-/qui-fait-quoi-1.0.5.tgz","fileCount":4,"integrity":"sha512-egKwYO29gNFBLVyUHoQ7S8IvtTRAQmlbj5y2YW+mpP78VswOniS0s5shodYaoypxGTkytwGAuW0HtfiUOgh4pw==","signatures":[{"sig":"MEYCIQCyuQ0Ki943iq8FezIntBBuL8WJTzkvzFLr4MLVemVf0wIhAIB0eqfdKtnB4VvaOXRIXzcWvJTtaS9KFDxKO+HPBUj0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277327},"main":"./dist/qui-fait-quoi.umd.js","type":"module","export":{".":{"import":"./dist/qui-fait-quoi.js","require":"./dist/qui-fait-quoi.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"module":"./dist/qui-fait-quoi.js","gitHead":"d12156074b914457a82d5ee317506abaeaef682d","scripts":{"dev":"vite","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore","build":"vite build","format":"prettier --write src/","preview":"vite preview","test:e2e":"start-server-and-test preview http://localhost:4173 'cypress run --e2e'","chromatic":"npx chromatic --exit-zero-on-changes","storybook":"storybook dev -p 6006","test:unit":"cypress run --component","test:e2e:dev":"start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'","test:unit:dev":"cypress open --component","build-storybook":"storybook build"},"_npmUser":{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"},"_npmVersion":"11.5.2","description":"Composant Vue 3 pour afficher les partenaires d'un module avec leurs informations de contact (email, téléphone, mobile).","directories":{},"_nodeVersion":"24.6.0","dependencies":{"@amsom-habitat/bootstrap-5":"^3.1.32","@amsom-habitat/user-manager":"^1.15.3","@amsom-habitat/axios-overlay":"^1.0.10","@fortawesome/vue-fontawesome":"^3.1.2","@fortawesome/fontawesome-svg-core":"^6.7.2","@fortawesome/free-solid-svg-icons":"^6.7.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.0","vite":"^8.0.10","eslint":"^10.2.1","cypress":"^13.17.0","globals":"^17.5.0","prettier":"^3.8.3","chromatic":"^16.6.1","storybook":"^10.3.5","@eslint/js":"^10.0.1","@storybook/vue3":"^10.3.5","eslint-plugin-vue":"^10.9.0","@vitejs/plugin-vue":"^6.0.6","@storybook/vue3-vite":"^10.3.5","eslint-plugin-cypress":"^2.15.2","start-server-and-test":"^2.1.5","@storybook/addon-links":"^10.3.5","eslint-plugin-storybook":"^10.3.5","@vue/eslint-config-prettier":"^10.2.0"},"peerDependencies":{"vue":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/qui-fait-quoi_1.0.5_1777463459315_0.860400363968544","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@amsom-habitat/qui-fait-quoi","version":"1.0.6","type":"module","scripts":{"dev":"vite","build":"vite build","preview":"vite preview","test:e2e":"start-server-and-test preview http://localhost:4173 'cypress run --e2e'","test:e2e:dev":"start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'","test:unit":"cypress run --component","test:unit:dev":"cypress open --component","lint":"eslint . --fix","format":"prettier --write src/","storybook":"storybook dev -p 6006","build-storybook":"storybook build","chromatic":"npx chromatic --exit-zero-on-changes"},"dependencies":{"@amsom-habitat/axios-overlay":"^1.0.10","@amsom-habitat/bootstrap-5":"^3.1.32","@amsom-habitat/user-manager":"^1.16.2","@fortawesome/fontawesome-svg-core":"^6.7.2","@fortawesome/free-solid-svg-icons":"^6.7.2","@fortawesome/vue-fontawesome":"^3.1.2"},"peerDependencies":{"vue":"^3.5.0"},"devDependencies":{"@eslint/js":"^10.0.1","@storybook/addon-links":"^10.3.5","@storybook/vue3":"^10.3.5","@storybook/vue3-vite":"^10.3.5","@vitejs/plugin-vue":"^6.0.6","@vue/eslint-config-prettier":"^10.2.0","chromatic":"^16.6.1","cypress":"^13.17.0","eslint":"^10.2.1","eslint-plugin-cypress":"^2.15.2","eslint-plugin-storybook":"^10.3.5","eslint-plugin-vue":"^10.9.0","globals":"^17.5.0","prettier":"^3.8.3","start-server-and-test":"^2.1.5","storybook":"^10.3.5","vite":"^8.0.10","vue":"^3.5.0"},"main":"./dist/qui-fait-quoi.umd.js","module":"./dist/qui-fait-quoi.js","export":{".":{"import":"./dist/qui-fait-quoi.js","require":"./dist/qui-fait-quoi.umd.js"},"./dist/style.css":{"import":"./dist/style.css","require":"./dist/style.css"}},"_id":"@amsom-habitat/qui-fait-quoi@1.0.6","gitHead":"eaf7ff7375dd45bb02ef42f3669f788222673a05","description":"Composant Vue 3 pour afficher les partenaires d'un module avec leurs informations de contact (email, téléphone, mobile).","_nodeVersion":"24.20.0","_npmVersion":"11.5.2","dist":{"integrity":"sha512-Hi7VScKymXbsCdTv0NVQOsHmBSrKc9ergp3vNuCVR1XceyFFV1pRAy31UkOSqYSG5TQMSLfOZyp+ZnpeH6dNfQ==","shasum":"a3c1a210d91a99d31f332c561c2fd5c50290b627","tarball":"https://registry.npmjs.org/@amsom-habitat/qui-fait-quoi/-/qui-fait-quoi-1.0.6.tgz","fileCount":4,"unpackedSize":277945,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG6IXLaBlZ8G6X4HIDhAJN/NHYP2PTnaFJ5iZk2lR96eAiEAgzfJe6wt1C7SDh1VXqSW15ZCsARiuCNnho5cBqn7YHs="}]},"_npmUser":{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"},"directories":{},"maintainers":[{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/qui-fait-quoi_1.0.6_1787907399872_0.3802069871695095"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-21T15:02:25.501Z","modified":"2026-08-28T08:56:40.166Z","1.0.0":"2025-11-21T15:02:25.794Z","1.0.1":"2025-11-21T15:35:49.074Z","1.0.5":"2026-04-29T11:50:59.428Z","1.0.6":"2026-08-28T08:56:40.023Z"},"description":"Composant Vue 3 pour afficher les partenaires d'un module avec leurs informations de contact (email, téléphone, mobile).","maintainers":[{"name":"amsom-habitat","email":"dev@amsom-habitat.fr"}],"readme":"# @amsom-habitat/qui-fait-quoi\n\nComposant Vue 3 pour afficher les partenaires d'un module avec leurs informations de contact (email, téléphone, mobile).\n\n## 📦 Installation\n\n```bash\nnpm install @amsom-habitat/qui-fait-quoi\n```\n\n## 🚀 Utilisation basique\n\n```vue\n<template>\n  <QuiFaitQuoi :id-module=\"123\" />\n</template>\n\n<script>\nimport { QuiFaitQuoi } from '@amsom-habitat/qui-fait-quoi'\n\nexport default {\n  components: { QuiFaitQuoi }\n}\n</script>\n```\n\n## ⚙️ Configuration\n\n### Configuration globale (main.js)\n\nPar défaut, le composant utilise l'API de production. Pour utiliser un autre environnement :\n\n```javascript\nimport { configureQuiFaitQuoi } from '@amsom-habitat/qui-fait-quoi'\n\nconfigureQuiFaitQuoi({\n  baseUrl: import.meta.env.VITE_API_URL\n})\n```\n\n### Avec un axiosOverlayConnector personnalisé\n\nSi votre application utilise déjà un connector axios personnalisé :\n\n```javascript\nimport axiosOverlayConnector from './services/axiosOverlayConnector'\n\nconfigureQuiFaitQuoi({\n  baseUrl: import.meta.env.VITE_API_URL,\n  axiosOverlayConnector: axiosOverlayConnector\n})\n```\n\n## 💾 Système de cache\n\nLe composant intègre un **système de cache automatique** :\n\n- Les données sont mises en cache par `idModule`\n- Quand vous fermez et rouvrez le composant avec le même `idModule`, les données s'affichent **instantanément** sans appel API\n- Si vous changez d'`idModule`, le composant vérifie le cache ou charge depuis l'API\n\n### Forcer un rechargement\n\n```vue\n<QuiFaitQuoi :id-module=\"123\" :force-reload=\"true\" />\n```\n\n### Vider le cache manuellement\n\n```vue\n<template>\n  <QuiFaitQuoi ref=\"quiFaitQuoi\" :id-module=\"123\" />\n  <button @click=\"forceRefresh\">Actualiser</button>\n</template>\n\n<script>\nexport default {\n  methods: {\n    forceRefresh() {\n      this.$refs.quiFaitQuoi.clearCache()\n      this.$refs.quiFaitQuoi.refresh()\n    }\n  }\n}\n</script>\n```\n\n## 📋 Props\n\n| Prop                    | Type             | Défaut | Description                            |\n| ----------------------- | ---------------- | ------ | -------------------------------------- |\n| `idModule`              | String \\| Number | -      | **Requis** - ID du module              |\n| `forceReload`           | Boolean          | false  | Force le rechargement même si en cache |\n| `apiUrl`                | String           | null   | URL API complète (surcharge la config) |\n| `axiosOverlayConnector` | Function         | null   | Connecteur axios personnalisé          |\n| `customFetch`           | Function         | null   | Fonction fetch personnalisée           |\n\n## 🔧 Méthodes publiques\n\n| Méthode           | Description                           |\n| ----------------- | ------------------------------------- |\n| `refresh()`       | Recharge les données depuis l'API     |\n| `clearCache()`    | Vide le cache pour l'idModule actuel  |\n| `clearAllCache()` | Vide tout le cache (tous les modules) |\n\n## 📝 Exemple d'intégration complète\n\n```vue\n<template>\n  <div>\n    <button @click=\"openModal\">Qui fait quoi?</button>\n\n    <Modal v-if=\"showModal\" @close=\"showModal = false\">\n      <QuiFaitQuoi ref=\"quiFaitQuoi\" :id-module=\"currentModule\" :force-reload=\"forceReload\" />\n    </Modal>\n  </div>\n</template>\n\n<script>\nimport { QuiFaitQuoi } from '@amsom-habitat/qui-fait-quoi'\nimport Modal from './Modal.vue'\n\nexport default {\n  components: { QuiFaitQuoi, Modal },\n\n  data() {\n    return {\n      showModal: false,\n      currentModule: 123,\n      forceReload: false\n    }\n  },\n\n  methods: {\n    openModal() {\n      this.showModal = true\n    }\n  }\n}\n</script>\n```\n\n## 🎨 Fonctionnalités\n\n- ✅ Affichage des partenaires avec photo de profil\n- ✅ Tri automatique par nature de partenaire\n- ✅ Actions rapides : email, téléphone, mobile\n- ✅ Cache automatique pour éviter les rechargements inutiles\n- ✅ Gestion du loading\n- ✅ Aucune dépendance Bootstrap (styles autonomes)\n","readmeFilename":"README.md"}