diff --git a/dependencies.txt b/dependencies.txt index f75f750..9d5ab53 100755 --- a/dependencies.txt +++ b/dependencies.txt @@ -39,6 +39,7 @@ - eslint-plugin-sonarjs : [npm](https://www.npmjs.com/package/eslint-plugin-sonarjs), [GitHub](https://github.com/SonarSource/eslint-plugin-sonarjs) - Plugin ESLint pour les règles SonarJS - eslint-plugin-unicorn : [npm](https://www.npmjs.com/package/eslint-plugin-unicorn), [GitHub](https://github.com/sindresorhus/eslint-plugin-unicorn) - Plugin ESLint pour des règles diverses et utiles - eslint-plugin-vue : [npm](https://www.npmjs.com/package/eslint-plugin-vue), [GitHub](https://github.com/vuejs/eslint-plugin-vue) - Plugin ESLint pour les règles Vue.js +- md-editor-v3 : [npm] (https://www.npmjs.com/package/md-editor-v3), [GitHub](https://github.com/imzbf/md-editor-v3) - A pretty markdown viewer - msw : [npm](https://www.npmjs.com/package/msw), [GitHub](https://github.com/mswjs/msw) - Outil de simulation de requêtes HTTP pour les tests - postcss-html : [npm](https://www.npmjs.com/package/postcss-html), [GitHub](https://github.com/yisar/postcss-html) - Plugin PostCSS pour traiter les fichiers HTML en CSS - postcss-scss : [npm](https://www.npmjs.com/package/postcss-scss), [GitHub](https://github.com/postcss/postcss-scss) - Plugin PostCSS pour la syntaxe SCSS diff --git a/package.json b/package.json index 3c6a253..c251710 100755 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "export-from-json": "^1.7.4", "jwt-decode": "^3.1.2", "mapbox-gl": "2.15.0", + "md-editor-v3": "^4.11.2", "ofetch": "^1.3.3", "pinia": "^2.1.7", "prismjs": "^1.29.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8bd006c..327e694 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,6 +79,9 @@ dependencies: mapbox-gl: specifier: 2.15.0 version: 2.15.0 + md-editor-v3: + specifier: ^4.11.2 + version: 4.11.2(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(vue@3.3.8) ofetch: specifier: ^1.3.3 version: 1.3.3 @@ -762,6 +765,307 @@ packages: vue: 3.3.8(typescript@5.2.2) dev: false + /@codemirror/autocomplete@6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1): + resolution: {integrity: sha512-r4IjdYFthwbCQyvqnSlx0WBHRHi8nBvU+WjJxFUij81qsBfhNudf/XKKmmC2j3m0LaOYUQTf3qiEK1J8lO1sdg==} + peerDependencies: + '@codemirror/language': ^6.0.0 + '@codemirror/state': ^6.0.0 + '@codemirror/view': ^6.0.0 + '@lezer/common': ^1.0.0 + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + dev: false + + /@codemirror/commands@6.3.3: + resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} + dependencies: + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + dev: false + + /@codemirror/lang-angular@0.1.3: + resolution: {integrity: sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==} + dependencies: + '@codemirror/lang-html': 6.4.8 + '@codemirror/lang-javascript': 6.2.1 + '@codemirror/language': 6.10.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@codemirror/lang-cpp@6.0.2: + resolution: {integrity: sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/cpp': 1.1.2 + dev: false + + /@codemirror/lang-css@6.2.1(@codemirror/view@6.24.0): + resolution: {integrity: sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.7 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-html@6.4.8: + resolution: {integrity: sha512-tE2YK7wDlb9ZpAH6mpTPiYm6rhfdQKVDa5r9IwIFlwwgvVaKsCfuKKZoJGWsmMZIf3FQAuJ5CHMPLymOtg1hXw==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.0) + '@codemirror/lang-javascript': 6.2.1 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/css': 1.1.7 + '@lezer/html': 1.3.8 + dev: false + + /@codemirror/lang-java@6.0.1: + resolution: {integrity: sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/java': 1.1.1 + dev: false + + /@codemirror/lang-javascript@6.2.1: + resolution: {integrity: sha512-jlFOXTejVyiQCW3EQwvKH0m99bUYIw40oPmFjSX2VS78yzfe0HELZ+NEo9Yfo1MkGRpGlj3Gnu4rdxV1EnAs5A==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/javascript': 1.4.13 + dev: false + + /@codemirror/lang-json@6.0.1: + resolution: {integrity: sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/json': 1.0.2 + dev: false + + /@codemirror/lang-less@6.0.2(@codemirror/view@6.24.0): + resolution: {integrity: sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==} + dependencies: + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.0) + '@codemirror/language': 6.10.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-liquid@6.2.1: + resolution: {integrity: sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/lang-html': 6.4.8 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@codemirror/lang-markdown@6.2.4: + resolution: {integrity: sha512-UghkA1vSMs8bT7RSZM6vsIocigyah2bV00eRQuZy76401UmFZdsTsbQNBGdyxRQDOLeEvF5iFwap0BM8LKyd+g==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/lang-html': 6.4.8 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/markdown': 1.2.0 + dev: false + + /@codemirror/lang-php@6.0.1: + resolution: {integrity: sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==} + dependencies: + '@codemirror/lang-html': 6.4.8 + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/php': 1.0.2 + dev: false + + /@codemirror/lang-python@6.1.4(@codemirror/view@6.24.0): + resolution: {integrity: sha512-b6d1TDqrkCjFNvMO01SWldFiDoZ39yl3tDMC1Y5f8glA2eZpynPxJhwYVTlGFr0stizcJgrp6ojLEGH2myoZAw==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/python': 1.1.11 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-rust@6.0.1: + resolution: {integrity: sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/rust': 1.0.2 + dev: false + + /@codemirror/lang-sass@6.0.2(@codemirror/view@6.24.0): + resolution: {integrity: sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==} + dependencies: + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.0) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/sass': 1.0.4 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-sql@6.5.5(@codemirror/view@6.24.0): + resolution: {integrity: sha512-DvOaP2RXLb2xlxJxxydTFfwyYw5YDqEFea6aAfgh9UH0kUD6J1KFZ0xPgPpw1eo/5s2w3L6uh5PVR7GM23GxkQ==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-vue@0.1.3: + resolution: {integrity: sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==} + dependencies: + '@codemirror/lang-html': 6.4.8 + '@codemirror/lang-javascript': 6.2.1 + '@codemirror/language': 6.10.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@codemirror/lang-wast@6.0.2: + resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} + dependencies: + '@codemirror/language': 6.10.1 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@codemirror/lang-xml@6.0.2(@codemirror/view@6.24.0): + resolution: {integrity: sha512-JQYZjHL2LAfpiZI2/qZ/qzDuSqmGKMwyApYmEUUCTxLM4MWS7sATUEfIguZQr9Zjx/7gcdnewb039smF6nC2zw==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/xml': 1.0.4 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/lang-yaml@6.0.0(@codemirror/view@6.24.0): + resolution: {integrity: sha512-fVPapdX1oYr5HMC5bou1MHscGnNCvOHuhUW6C+V2gfIeIRcughvVfznV0OuUyHy0AdXoBCjOehjzFcmLRumu2Q==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/language': 6.10.1 + '@codemirror/state': 6.4.0 + '@lezer/common': 1.2.1 + '@lezer/yaml': 1.0.2 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/language-data@6.4.1(@codemirror/view@6.24.0): + resolution: {integrity: sha512-NYhC3NvEMwUxSWS1sB5AePUtr5g2ASSYOZ37YixicDG8PWHslDV9mmXIX0KvmtEm50V8FT4F5i4HAsk/7i78LA==} + dependencies: + '@codemirror/lang-angular': 0.1.3 + '@codemirror/lang-cpp': 6.0.2 + '@codemirror/lang-css': 6.2.1(@codemirror/view@6.24.0) + '@codemirror/lang-html': 6.4.8 + '@codemirror/lang-java': 6.0.1 + '@codemirror/lang-javascript': 6.2.1 + '@codemirror/lang-json': 6.0.1 + '@codemirror/lang-less': 6.0.2(@codemirror/view@6.24.0) + '@codemirror/lang-liquid': 6.2.1 + '@codemirror/lang-markdown': 6.2.4 + '@codemirror/lang-php': 6.0.1 + '@codemirror/lang-python': 6.1.4(@codemirror/view@6.24.0) + '@codemirror/lang-rust': 6.0.1 + '@codemirror/lang-sass': 6.0.2(@codemirror/view@6.24.0) + '@codemirror/lang-sql': 6.5.5(@codemirror/view@6.24.0) + '@codemirror/lang-vue': 0.1.3 + '@codemirror/lang-wast': 6.0.2 + '@codemirror/lang-xml': 6.0.2(@codemirror/view@6.24.0) + '@codemirror/lang-yaml': 6.0.0(@codemirror/view@6.24.0) + '@codemirror/language': 6.10.1 + '@codemirror/legacy-modes': 6.3.3 + transitivePeerDependencies: + - '@codemirror/view' + dev: false + + /@codemirror/language@6.10.1: + resolution: {integrity: sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==} + dependencies: + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + style-mod: 4.1.0 + dev: false + + /@codemirror/legacy-modes@6.3.3: + resolution: {integrity: sha512-X0Z48odJ0KIoh/HY8Ltz75/4tDYc9msQf1E/2trlxFaFFhgjpVHjZ/BCXe1Lk7s4Gd67LL/CeEEHNI+xHOiESg==} + dependencies: + '@codemirror/language': 6.10.1 + dev: false + + /@codemirror/lint@6.5.0: + resolution: {integrity: sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==} + dependencies: + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + crelt: 1.0.6 + dev: false + + /@codemirror/search@6.5.6: + resolution: {integrity: sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==} + dependencies: + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + crelt: 1.0.6 + dev: false + + /@codemirror/state@6.4.0: + resolution: {integrity: sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==} + dev: false + + /@codemirror/view@6.24.0: + resolution: {integrity: sha512-zK6m5pNkdhdJl8idPP1gA4N8JKTiSsOz8U/Iw+C1ChMwyLG7+MLiNXnH/wFuAk6KeGEe33/adOiAh5jMqee03w==} + dependencies: + '@codemirror/state': 6.4.0 + style-mod: 4.1.0 + w3c-keyname: 2.2.8 + dev: false + /@csstools/css-parser-algorithms@2.3.2(@csstools/css-tokenizer@2.2.1): resolution: {integrity: sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==} engines: {node: ^14 || ^16 || >=18} @@ -1270,6 +1574,125 @@ packages: resolution: {integrity: sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==} dev: false + /@lezer/common@1.2.1: + resolution: {integrity: sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==} + dev: false + + /@lezer/cpp@1.1.2: + resolution: {integrity: sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/css@1.1.7: + resolution: {integrity: sha512-7BlFFAKNn/b39jJLrhdLSX5A2k56GIJvyLqdmm7UU+7XvequY084iuKDMAEhAmAzHnwDE8FK4OQtsIUssW91tg==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/highlight@1.2.0: + resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} + dependencies: + '@lezer/common': 1.2.1 + dev: false + + /@lezer/html@1.3.8: + resolution: {integrity: sha512-EXseJ3pUzWxE6XQBQdqWHZqqlGQRSuNMBcLb6mZWS2J2v+QZhOObD+3ZIKIcm59ntTzyor4LqFTb72iJc3k23Q==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/java@1.1.1: + resolution: {integrity: sha512-mt3dX13fRlpY7RlWELYRakanXgmwXsLRCrhstrn+c1sZd7jR2xle46/3heoxGd+oHxnuTnpoyXTyxcLJQs9+mQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/javascript@1.4.13: + resolution: {integrity: sha512-5IBr8LIO3xJdJH1e9aj/ZNLE4LSbdsx25wFmGRAZsj2zSmwAYjx26JyU/BYOCpRQlu1jcv1z3vy4NB9+UkfRow==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/json@1.0.2: + resolution: {integrity: sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/lr@1.4.0: + resolution: {integrity: sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==} + dependencies: + '@lezer/common': 1.2.1 + dev: false + + /@lezer/markdown@1.2.0: + resolution: {integrity: sha512-d7MwsfAukZJo1GpPrcPGa3MxaFFOqNp0gbqF+3F7pTeNDOgeJN1muXzx1XXDPt+Ac+/voCzsH7qXqnn+xReG/g==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + dev: false + + /@lezer/php@1.0.2: + resolution: {integrity: sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/python@1.1.11: + resolution: {integrity: sha512-C3QeLCcdAKJDUOsYjfFP6a1wdn8jhUNX200bgFm8TpKH1eM2PlgYQS5ugw6E38qGeEx7CP21I1Q52SoybXt0OQ==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/rust@1.0.2: + resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/sass@1.0.4: + resolution: {integrity: sha512-AqW4myvp73sbMk6y0+gJrMjN5xtqFZzqTftzO3YcO8gSL5d3pymIP3deQllAI8+s1ZoSzH6kD4hsoFLpkD9Kfg==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/xml@1.0.4: + resolution: {integrity: sha512-WmXKb5eX8+rRfZYSNRR5TPee/ZoDgBdVS/rj1VCJGDKa5gNldIctQYibCoFVyNhvZsyL/8nHbZJZPM4gnXN2Vw==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + + /@lezer/yaml@1.0.2: + resolution: {integrity: sha512-XCkwuxe+eumJ28nA9e1S6XKsXz9W7V/AG+WBiWOtiIuUpKcZ/bHuvN8bLxSDREIcybSRpEd/jvphh4vgm6Ed2g==} + dependencies: + '@lezer/common': 1.2.1 + '@lezer/highlight': 1.2.0 + '@lezer/lr': 1.4.0 + dev: false + /@mapbox/geojson-rewind@0.5.2: resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} hasBin: true @@ -1817,18 +2240,33 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true + /@types/linkify-it@3.0.5: + resolution: {integrity: sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==} + dev: false + /@types/mapbox-gl@2.7.17: resolution: {integrity: sha512-5lDO2W6glPCqiRuqKh0a7MPOwnVt1/KWcYnxsL3z5rmjuOcFdHEa+KzUwCzqsAlbAegIIhgQiREZzJ9o1ze1gQ==} dependencies: '@types/geojson': 7946.0.13 dev: true + /@types/markdown-it@12.2.3: + resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} + dependencies: + '@types/linkify-it': 3.0.5 + '@types/mdurl': 1.0.5 + dev: false + /@types/mdast@3.0.14: resolution: {integrity: sha512-gVZ04PGgw1qLZKsnWnyFv4ORnaJ+DXLdHTVSFbU8yX6xZ34Bjg4Q32yPkmveUP1yItXReKfB0Aknlh/3zxTKAw==} dependencies: '@types/unist': 2.0.9 dev: true + /@types/mdurl@1.0.5: + resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} + dev: false + /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true @@ -2116,6 +2554,10 @@ packages: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true + /@vavt/util@1.4.1: + resolution: {integrity: sha512-EhYyvt5w+GE6IO1JzDFZLmJOXQmWHnx3OBvA3YY/ZB1kWqHlhJTpL4x7TuANTzK7q1Y6G/okk4eFpLVWxvEBVA==} + dev: false + /@videojs-player/vue@1.0.0(@types/video.js@7.3.55)(video.js@8.6.1)(vue@3.3.8): resolution: {integrity: sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg==} peerDependencies: @@ -2961,6 +3403,20 @@ packages: engines: {node: '>=0.8'} dev: true + /codemirror@6.0.1(@lezer/common@1.2.1): + resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==} + dependencies: + '@codemirror/autocomplete': 6.12.0(@codemirror/language@6.10.1)(@codemirror/state@6.4.0)(@codemirror/view@6.24.0)(@lezer/common@1.2.1) + '@codemirror/commands': 6.3.3 + '@codemirror/language': 6.10.1 + '@codemirror/lint': 6.5.0 + '@codemirror/search': 6.5.6 + '@codemirror/state': 6.4.0 + '@codemirror/view': 6.24.0 + transitivePeerDependencies: + - '@lezer/common' + dev: false + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -3029,6 +3485,12 @@ packages: engines: {node: '>= 0.6'} dev: true + /copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + dependencies: + toggle-selection: 1.0.6 + dev: false + /cosmiconfig@8.3.6(typescript@5.2.2): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -5157,6 +5619,11 @@ packages: yallist: 4.0.0 dev: true + /lru-cache@8.0.5: + resolution: {integrity: sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==} + engines: {node: '>=16.14'} + dev: false + /m3u8-parser@6.2.0: resolution: {integrity: sha512-qlC00JTxYOxawcqg+RB8jbyNwL3foY/nCY61kyWP+RCuJE9APLeqB/nSlTjb4Mg0yRmyERgjswpdQxMvkeoDrg==} dependencies: @@ -5231,6 +5698,19 @@ packages: vt-pbf: 3.1.3 dev: false + /markdown-it-image-figures@2.1.1(markdown-it@13.0.2): + resolution: {integrity: sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==} + engines: {node: '>=12.0.0'} + peerDependencies: + markdown-it: '*' + dependencies: + markdown-it: 13.0.2 + dev: false + + /markdown-it-task-lists@2.1.1: + resolution: {integrity: sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==} + dev: false + /markdown-it@13.0.2: resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==} hasBin: true @@ -5245,6 +5725,29 @@ packages: resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==} dev: true + /md-editor-v3@4.11.2(@codemirror/view@6.24.0)(@lezer/common@1.2.1)(vue@3.3.8): + resolution: {integrity: sha512-By9GeY2h5wvxvijXiy5QzqYrPzP7H5+dFvi5Irs/76sLiXt4TP+AE1y5uJ9hEcDTpz1EFbKWAk4ywfJytHrlIw==} + peerDependencies: + vue: ^3.2.47 + dependencies: + '@codemirror/lang-markdown': 6.2.4 + '@codemirror/language-data': 6.4.1(@codemirror/view@6.24.0) + '@types/markdown-it': 12.2.3 + '@vavt/util': 1.4.1 + codemirror: 6.0.1(@lezer/common@1.2.1) + copy-to-clipboard: 3.3.3 + lru-cache: 8.0.5 + markdown-it: 13.0.2 + markdown-it-image-figures: 2.1.1(markdown-it@13.0.2) + markdown-it-task-lists: 2.1.1 + medium-zoom: 1.1.0 + punycode: 2.3.1 + vue: 3.3.8(typescript@5.2.2) + transitivePeerDependencies: + - '@codemirror/view' + - '@lezer/common' + dev: false + /mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} dependencies: @@ -5276,6 +5779,10 @@ packages: /mdurl@1.0.1: resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} + /medium-zoom@1.1.0: + resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} + dev: false + /meow@10.1.5: resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -6507,7 +7014,6 @@ packages: /punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -7003,6 +7509,10 @@ packages: acorn: 8.11.2 dev: true + /style-mod@4.1.0: + resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} + dev: false + /style-search@0.1.0: resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} dev: true @@ -7379,6 +7889,10 @@ packages: dependencies: is-number: 7.0.0 + /toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + dev: false + /token-stream@1.0.0: resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} dev: true diff --git a/src/navigation/horizontal/index.ts b/src/navigation/horizontal/index.ts index 5776e6c..4e8cb57 100755 --- a/src/navigation/horizontal/index.ts +++ b/src/navigation/horizontal/index.ts @@ -34,6 +34,13 @@ export default [ { title: 'Dotsoft', icon: { icon: 'tabler-database-star' }, + children: [ + { + title: 'Chat RCT', + to: { name: 'chat-rct' }, + icon: { icon: 'tabler-message-chatbot' }, + }, + ], }, { title: 'XADMIN', diff --git a/src/navigation/vertical/index.ts b/src/navigation/vertical/index.ts index a2891d4..65dc811 100755 --- a/src/navigation/vertical/index.ts +++ b/src/navigation/vertical/index.ts @@ -34,6 +34,13 @@ export default [ { title: 'Dotsoft', icon: { icon: 'tabler-database-star' }, + children: [ + { + title: 'Chat RCT', + to: { name: 'chat-rct' }, + icon: { icon: 'tabler-message-chatbot' }, + }, + ], }, { title: 'XADMIN', diff --git a/src/pages/chat/rct/index.vue b/src/pages/chat/rct/index.vue new file mode 100644 index 0000000..6a7f133 --- /dev/null +++ b/src/pages/chat/rct/index.vue @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + diff --git a/src/pages/obi/order/list/index.vue b/src/pages/obi/order/list/index.vue index 5973166..6315342 100644 --- a/src/pages/obi/order/list/index.vue +++ b/src/pages/obi/order/list/index.vue @@ -48,8 +48,8 @@ const page = ref(1) const sortBy = ref('request_id') const orderBy = ref('desc') -const beginDate = ref(null) -const endDate = ref(null) +const beginDate = ref(null) +const endDate = ref(null) const sortByMapping = (sortby: string) => { const headerMapping: { [key: string]: string } = { @@ -104,8 +104,8 @@ watch(endDate, newEndDate => { }) const selectLastMonth = () => { - beginDate.value = startOfMonth(subMonths(new Date(), 1)) - endDate.value = endOfMonth(subMonths(new Date(), 1)) + beginDate.value = format(startOfMonth(subMonths(new Date(), 1)), 'yyyyMMdd') + endDate.value = format(endOfMonth(subMonths(new Date(), 1)), 'yyyyMMdd') } const selectThisMonth = () => { @@ -113,18 +113,19 @@ const selectThisMonth = () => { const firstDayOfMonth = startOfMonth(today) const lastDayOfMonth = endOfMonth(today) - beginDate.value = firstDayOfMonth - endDate.value = today < lastDayOfMonth ? today : lastDayOfMonth + beginDate.value = format(firstDayOfMonth, 'yyyyMMdd') + endDate.value = format(today < lastDayOfMonth ? today : lastDayOfMonth, 'yyyyMMdd') } const selectLast7Days = () => { - beginDate.value = startOfDay(subDays(new Date(), 6)) - endDate.value = startOfDay(new Date()) + beginDate.value = format(startOfDay(subDays(new Date(), 6)), 'yyyyMMdd') + endDate.value = format(startOfDay(new Date()), 'yyyyMMdd') } const selectToday = () => { - beginDate.value = startOfDay(new Date()) - endDate.value = startOfDay(new Date()) + const today = new Date() + + beginDate.value = endDate.value = format(today, 'yyyyMMdd') } const clearDates = () => { diff --git a/src/plugins/i18n/locales/ar.json b/src/plugins/i18n/locales/ar.json index c3a97c7..285b0b6 100755 --- a/src/plugins/i18n/locales/ar.json +++ b/src/plugins/i18n/locales/ar.json @@ -126,6 +126,21 @@ "Note: Click on the button below to access DOTSOFT Back-office": "Note: Click on the button below to access DOTSOFT Back-office", "Open Back-office": "Open Back-office", "Mount drive": "Mount drive", + "Chat RCT": "Chat RCT", + "Your RCT Item": "Your RCT Item", + "Store Distributor": "Store Distributor", + "Possible actions to realize": "Possible actions to realize", + "Store where item is required": "Store where item is required", + "Specify an RCT": "Specify an RCT", + "Previous": "Previous", + "Next": "Next", + "Select distributor": "Select distributor", + "Select store": "Select store", + "Yes": "Yes", + "No": "No", + "Resend RCT": "Resend RCT ?", + "Summary": "Summary", + "The request has been processed successfully": "The request has been processed successfully", "---------------------------": "---------------------------", "UI Elements": "عناصر واجهة المستخدم", "Forms & Tables": "النماذج والجداول", diff --git a/src/plugins/i18n/locales/en.json b/src/plugins/i18n/locales/en.json index 226ada8..58525f5 100755 --- a/src/plugins/i18n/locales/en.json +++ b/src/plugins/i18n/locales/en.json @@ -126,6 +126,21 @@ "Note: Click on the button below to access DOTSOFT Back-office": "Note: Click on the button below to access DOTSOFT Back-office", "Open Back-office": "Open Back-office", "Mount drive": "Mount drive", + "Chat RCT": "Chat RCT", + "Your RCT Item": "Your RCT Item", + "Store Distributor": "Store Distributor", + "Store where item is required": "Store where item is required", + "Possible actions to realize": "Possible actions to realize", + "Specify an RCT": "Specify an RCT", + "Previous": "Previous", + "Next": "Next", + "Select distributor": "Select distributor", + "Select store": "Select store", + "Yes": "Yes", + "No": "No", + "Resend RCT": "Resend RCT ?", + "Summary": "Summary", + "The request has been processed successfully": "The request has been processed successfully", "---------------------------": "---------------------------", "UI Elements": "UI Elements", "Forms & Tables": "Forms & Tables", diff --git a/src/plugins/i18n/locales/fr.json b/src/plugins/i18n/locales/fr.json index f7e044e..c7d5e6a 100755 --- a/src/plugins/i18n/locales/fr.json +++ b/src/plugins/i18n/locales/fr.json @@ -127,6 +127,21 @@ "Note: Click on the button below to access DOTSOFT Back-office": "Note: Cliquez sur le bouton ci-dessous pour accéder au Back-office DOTSOFT", "Open Back-office": "Ouvrir DOTSOFT", "Mount drive": "Monter lecteur", + "Chat RCT": "Chat RCT", + "Your RCT Item": "RCT recherchée", + "Store Distributor": "Sélection distributeur", + "Store where item is required": "Sélection Boutique", + "Possible actions to realize": "Actions possibles à effectuer", + "Specify an RCT": "Saisissez la RCT", + "Previous": "Précédent", + "Next": "Suivant", + "Select distributor": "Selectionner un distributeur", + "Select store": "Selectionner une boutique", + "Yes": "Oui", + "No": "Non", + "Resend RCT": "Renvoyer RCT ?", + "Summary": "Résumé", + "The request has been processed successfully": "La demande a été traitée avec succès", "---------------------------": "---------------------------", "UI Elements": "ÉLÉMENTS DE L'UI", "Forms & Tables": "Formulaires et tableaux", diff --git a/src/stores/chatrct.store.ts b/src/stores/chatrct.store.ts new file mode 100644 index 0000000..3ad08d0 --- /dev/null +++ b/src/stores/chatrct.store.ts @@ -0,0 +1,144 @@ +export const useChatRctStore = defineStore('chatrct', { + state: () => ({ + ref_rct: null, + ref_r: null, + id_produit: 0, + distributor: null, + distributor_list: [], + store: null, + store_list: [], + prompt_rct: '### Bonjour,\n Indiquez-moi la RCT sur laquelle vous souhaitez faire des recherches ...', + prompt_distributor: '', + prompt_store: '', + output_actions: '', + loading: false, + actions_lib: [], + actions_flag: false, + actions_proc: 'cache', + resend_data: 'No', + prompt_gen() { + return `${this.prompt_rct}\n${this.prompt_distributor}\n${this.prompt_store}` + }, + }), + actions: { + async validateRct() { + this.loading = true + + const { data } = await useApi(`/chatrct/rct?itemId=${this.ref_rct}`) + if (data.value) { + const jsonData = JSON.parse(data.value) + + if (jsonData.response.id_produit) { + this.id_produit = jsonData.response.id_produit + this.ref_r = jsonData.response.ref_r + this.distributor_list = jsonData.response.distributor_list + } + else { this.id_produit = 0 } + + this.prompt_store = '' + this.prompt_distributor = '' + this.prompt_rct = jsonData.response.lines.join('\n') + } + + this.loading = false + + return (this.id_produit > 0) + }, + async validateDistributor() { + this.loading = true + + const { data } = await useApi(`/chatrct/distributor/${this.distributor}?itemId=${this.ref_rct}&produitId=${this.id_produit}`) + if (data.value) { + const jsonData = JSON.parse(data.value) + + this.prompt_distributor = jsonData.response.lines.join('\n') + this.store = null + this.store_list = jsonData.response.store_list + } + + this.loading = false + + return true + }, + async validateStore() { + this.loading = true + + const { data } = await useApi(`/chatrct/store/${this.store}?distributorId=${this.distributor}&itemId=${this.ref_rct}&produitId=${this.id_produit}`) + if (data.value) { + const jsonData = JSON.parse(data.value) + + this.prompt_store = jsonData.response.lines.join('\n') + this.actions_lib = jsonData.response.actions + this.actions_flag = jsonData.response.actions_flag + this.actions_proc = jsonData.response.actions_proc + } + + this.loading = false + + return true + }, + async validateActions() { + this.loading = true + + if (this.actions_proc === 'cache') { + const currentDate = new Date().toISOString().slice(0, 10).replace(/-/g, '') + + const requestBodyCache = { + itemId: this.ref_r, + comment: `HDPOS Force Cache ${currentDate}`, + proc: this.actions_proc, + } + + const { data } = await useApi('/chatrct/rct/forceCache', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(requestBodyCache), + }) + + if (data.value) + this.output_actions = data.value.output + } + else if (this.actions_proc === 'exception') { + const tomorrowDate = new Date(Date.now() + 86400000).toISOString().slice(0, 10).replace(/-/g, '') + + const requestBodyException = { + id_produit: this.id_produit, + id_distrib: this.distributor, + fdate: tomorrowDate, + forcer_cache: 1, + modul_trait: 'HDPOS', + } + + const { data } = await useApi('/chatrct/rct/forceException', { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(requestBodyException), + }) + + if (data.value) + this.output_actions = data.value.output + } + + this.loading = false + + // Check for "ERREUR" at the beginning of the string + return !this.output_actions.startsWith('ERREUR') + }, + clearState() { + this.ref_rct = null + this.distributor = null + this.store = null + this.resend_data = 'No' + }, + clearPrompts() { + this.prompt_rct = '### Bonjour,\n Indiquez-moi la RCT sur laquelle vous souhaitez faire des recherches ...' + this.prompt_distributor = '' + this.prompt_store = '' + this.output_actions = '' + }, + }, +}) diff --git a/src/views/pages/chat/rct/view/CharRctPrompt.vue b/src/views/pages/chat/rct/view/CharRctPrompt.vue new file mode 100644 index 0000000..f015503 --- /dev/null +++ b/src/views/pages/chat/rct/view/CharRctPrompt.vue @@ -0,0 +1,33 @@ + + + + + + + + Je recherche vos données. Veuillez patienter ... + + + + diff --git a/src/views/pages/chat/rct/view/ChatRctWizard.vue b/src/views/pages/chat/rct/view/ChatRctWizard.vue new file mode 100644 index 0000000..ff65445 --- /dev/null +++ b/src/views/pages/chat/rct/view/ChatRctWizard.vue @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + {{ $t('Item') }} + + + {{ $t('Your RCT Item') }} + + + + + + + + + + + + {{ $t('Previous') }} + + + + {{ $t('Next') }} + + + + + + + + + + + + + + + {{ $t('Distributor') }} + + + {{ $t('Store Distributor') }} + + + + + + + + + + + {{ $t('Previous') }} + + + + {{ $t('Next') }} + + + + + + + + + + + + + + + {{ $t('Store') }} + + + {{ $t('Store where item is required') }} + + + + + + + + + + + + {{ $t('Previous') }} + + + + {{ $t('Next') }} + + + + + + + + + + + + + + + {{ action }} + + + + + + + {{ $t('Resend RCT') }} + + + + + + + {{ store.output_actions }} + + + + + + + {{ $t('Previous') }} + + + + {{ $t('Submit') }} + + + + + + + + {{ $t('The request has been processed successfully') }} + + + + {{ $t("Close") }} + + + + + + + + diff --git a/typed-router.d.ts b/typed-router.d.ts index aa57673..25c9103 100755 --- a/typed-router.d.ts +++ b/typed-router.d.ts @@ -41,6 +41,7 @@ declare module 'vue-router/auto/routes' { export interface RouteNamedMap { 'root': RouteRecordInfo<'root', '/', Record, Record>, '$error': RouteRecordInfo<'$error', '/:error(.*)', { error: ParamValue }, { error: ParamValue }>, + 'chat-rct': RouteRecordInfo<'chat-rct', '/chat/rct', Record, Record>, 'flux-bl-not-sent': RouteRecordInfo<'flux-bl-not-sent', '/flux/bl/not_sent', Record, Record>, 'login': RouteRecordInfo<'login', '/login', Record, Record>, 'obi-order-details-id': RouteRecordInfo<'obi-order-details-id', '/obi/order/details/:id', { id: ParamValue }, { id: ParamValue }>,
+ {{ $t('Your RCT Item') }} +
+ {{ $t('Store Distributor') }} +
+ {{ $t('Store where item is required') }} +
+ {{ action }} +