27/11/2024 : 12h30

recette2
cherif 2024-11-27 12:23:31 +01:00
parent 0b56f3b826
commit 852f33eac3
18 changed files with 4501 additions and 51 deletions

420
package-lock.json generated
View File

@ -71,6 +71,8 @@
"gatsby-plugin-cookie-gdpr-axeptio": "^1.0.2", "gatsby-plugin-cookie-gdpr-axeptio": "^1.0.2",
"google-map-react": "^2.1.10", "google-map-react": "^2.1.10",
"html-react-parser": "^2.0.0", "html-react-parser": "^2.0.0",
"html-to-react": "^1.7.0",
"html-to-text": "^9.0.5",
"immutability-helper": "^3.1.1", "immutability-helper": "^3.1.1",
"increase-memory-limit": "^1.0.7", "increase-memory-limit": "^1.0.7",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
@ -118,6 +120,7 @@
"react-grid-system": "^8.1.9", "react-grid-system": "^8.1.9",
"react-helmet": "^6.1.0", "react-helmet": "^6.1.0",
"react-hook-form": "^7.27.0", "react-hook-form": "^7.27.0",
"react-html-parser": "^2.0.2",
"react-icons": "^4.10.1", "react-icons": "^4.10.1",
"react-input-range": "^1.3.0", "react-input-range": "^1.3.0",
"react-intl": "^5.24.7", "react-intl": "^5.24.7",
@ -151,6 +154,7 @@
"react-slideshow-image": "^3.7.0", "react-slideshow-image": "^3.7.0",
"react-social-icons": "^5.13.0", "react-social-icons": "^5.13.0",
"react-social-login-buttons": "^3.6.0", "react-social-login-buttons": "^3.6.0",
"react-speech-recognition": "^3.10.0",
"react-stripe-elements": "^6.1.2", "react-stripe-elements": "^6.1.2",
"react-swipeable-views": "^0.14.0", "react-swipeable-views": "^0.14.0",
"react-time-picker": "^4.5.0", "react-time-picker": "^4.5.0",
@ -6847,6 +6851,32 @@
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
}, },
"node_modules/@selderee/plugin-htmlparser2": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz",
"integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==",
"dependencies": {
"domhandler": "^5.0.3",
"selderee": "^0.11.0"
},
"funding": {
"url": "https://ko-fi.com/killymxi"
}
},
"node_modules/@selderee/plugin-htmlparser2/node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": {
"domelementtype": "^2.3.0"
},
"engines": {
"node": ">= 4"
},
"funding": {
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/@semantic-ui-react/event-stack": { "node_modules/@semantic-ui-react/event-stack": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz", "resolved": "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz",
@ -12941,9 +12971,9 @@
"integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA=="
}, },
"node_modules/deepmerge": { "node_modules/deepmerge": {
"version": "4.2.2", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
} }
@ -16344,6 +16374,172 @@
"immutable": "3.x.x || 4.x.x" "immutable": "3.x.x || 4.x.x"
} }
}, },
"node_modules/html-to-react": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.7.0.tgz",
"integrity": "sha512-b5HTNaTGyOj5GGIMiWVr1k57egAZ/vGy0GGefnCQ1VW5hu9+eku8AXHtf2/DeD95cj/FKBKYa1J7SWBOX41yUQ==",
"dependencies": {
"domhandler": "^5.0",
"htmlparser2": "^9.0",
"lodash.camelcase": "^4.3.0"
},
"peerDependencies": {
"react": "^0.13.0 || ^0.14.0 || >=15"
}
},
"node_modules/html-to-react/node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
"entities": "^4.2.0"
},
"funding": {
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
"node_modules/html-to-react/node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": {
"domelementtype": "^2.3.0"
},
"engines": {
"node": ">= 4"
},
"funding": {
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/html-to-react/node_modules/domutils": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3"
},
"funding": {
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/html-to-react/node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/html-to-react/node_modules/htmlparser2": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.1.0",
"entities": "^4.5.0"
}
},
"node_modules/html-to-text": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz",
"integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==",
"dependencies": {
"@selderee/plugin-htmlparser2": "^0.11.0",
"deepmerge": "^4.3.1",
"dom-serializer": "^2.0.0",
"htmlparser2": "^8.0.2",
"selderee": "^0.11.0"
},
"engines": {
"node": ">=14"
}
},
"node_modules/html-to-text/node_modules/dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
"entities": "^4.2.0"
},
"funding": {
"url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
"node_modules/html-to-text/node_modules/domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"dependencies": {
"domelementtype": "^2.3.0"
},
"engines": {
"node": ">= 4"
},
"funding": {
"url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
"node_modules/html-to-text/node_modules/domutils": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"dependencies": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3"
},
"funding": {
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
"node_modules/html-to-text/node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/html-to-text/node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
],
"dependencies": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.0.1",
"entities": "^4.4.0"
}
},
"node_modules/html-webpack-plugin": { "node_modules/html-webpack-plugin": {
"version": "5.5.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
@ -20474,6 +20670,14 @@
"safe-buffer": "~5.1.0" "safe-buffer": "~5.1.0"
} }
}, },
"node_modules/leac": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz",
"integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==",
"funding": {
"url": "https://ko-fi.com/killymxi"
}
},
"node_modules/leven": { "node_modules/leven": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@ -22568,6 +22772,18 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
}, },
"node_modules/parseley": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz",
"integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==",
"dependencies": {
"leac": "^0.6.0",
"peberminta": "^0.9.0"
},
"funding": {
"url": "https://ko-fi.com/killymxi"
}
},
"node_modules/parseurl": { "node_modules/parseurl": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@ -22690,6 +22906,14 @@
"path2d-polyfill": "^2.0.1" "path2d-polyfill": "^2.0.1"
} }
}, },
"node_modules/peberminta": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz",
"integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==",
"funding": {
"url": "https://ko-fi.com/killymxi"
}
},
"node_modules/performance-now": { "node_modules/performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@ -27790,6 +28014,14 @@
"object-assign": "^4.1.1" "object-assign": "^4.1.1"
} }
}, },
"node_modules/react-speech-recognition": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/react-speech-recognition/-/react-speech-recognition-3.10.0.tgz",
"integrity": "sha512-EVSr4Ik8l9urwdPiK2r0+ADrLyDDrjB0qBRdUWO+w2MfwEBrj6NuRmy1GD3x7BU/V6/hab0pl8Lupen0zwlJyw==",
"peerDependencies": {
"react": ">=16.8.0"
}
},
"node_modules/react-spinner-children": { "node_modules/react-spinner-children": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/react-spinner-children/-/react-spinner-children-1.0.8.tgz", "resolved": "https://registry.npmjs.org/react-spinner-children/-/react-spinner-children-1.0.8.tgz",
@ -30025,6 +30257,17 @@
"resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz", "resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz",
"integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==" "integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg=="
}, },
"node_modules/selderee": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz",
"integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==",
"dependencies": {
"parseley": "^0.12.0"
},
"funding": {
"url": "https://ko-fi.com/killymxi"
}
},
"node_modules/select-hose": { "node_modules/select-hose": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@ -39556,6 +39799,25 @@
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz",
"integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg=="
}, },
"@selderee/plugin-htmlparser2": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.11.0.tgz",
"integrity": "sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==",
"requires": {
"domhandler": "^5.0.3",
"selderee": "^0.11.0"
},
"dependencies": {
"domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"requires": {
"domelementtype": "^2.3.0"
}
}
}
},
"@semantic-ui-react/event-stack": { "@semantic-ui-react/event-stack": {
"version": "3.1.3", "version": "3.1.3",
"resolved": "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz", "resolved": "https://registry.npmjs.org/@semantic-ui-react/event-stack/-/event-stack-3.1.3.tgz",
@ -44271,9 +44533,9 @@
"integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA=="
}, },
"deepmerge": { "deepmerge": {
"version": "4.2.2", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
"integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="
}, },
"default-gateway": { "default-gateway": {
"version": "6.0.3", "version": "6.0.3",
@ -46921,6 +47183,120 @@
"resolved": "https://registry.npmjs.org/html-to-draftjs/-/html-to-draftjs-1.5.0.tgz", "resolved": "https://registry.npmjs.org/html-to-draftjs/-/html-to-draftjs-1.5.0.tgz",
"integrity": "sha512-kggLXBNciKDwKf+KYsuE+V5gw4dZ7nHyGMX9m0wy7urzWjKGWyNFetmArRLvRV0VrxKN70WylFsJvMTJx02OBQ==" "integrity": "sha512-kggLXBNciKDwKf+KYsuE+V5gw4dZ7nHyGMX9m0wy7urzWjKGWyNFetmArRLvRV0VrxKN70WylFsJvMTJx02OBQ=="
}, },
"html-to-react": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/html-to-react/-/html-to-react-1.7.0.tgz",
"integrity": "sha512-b5HTNaTGyOj5GGIMiWVr1k57egAZ/vGy0GGefnCQ1VW5hu9+eku8AXHtf2/DeD95cj/FKBKYa1J7SWBOX41yUQ==",
"requires": {
"domhandler": "^5.0",
"htmlparser2": "^9.0",
"lodash.camelcase": "^4.3.0"
},
"dependencies": {
"dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
"entities": "^4.2.0"
}
},
"domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"requires": {
"domelementtype": "^2.3.0"
}
},
"domutils": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"requires": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3"
}
},
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"htmlparser2": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz",
"integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.1.0",
"entities": "^4.5.0"
}
}
}
},
"html-to-text": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-9.0.5.tgz",
"integrity": "sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==",
"requires": {
"@selderee/plugin-htmlparser2": "^0.11.0",
"deepmerge": "^4.3.1",
"dom-serializer": "^2.0.0",
"htmlparser2": "^8.0.2",
"selderee": "^0.11.0"
},
"dependencies": {
"dom-serializer": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.2",
"entities": "^4.2.0"
}
},
"domhandler": {
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
"requires": {
"domelementtype": "^2.3.0"
}
},
"domutils": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
"requires": {
"dom-serializer": "^2.0.0",
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3"
}
},
"entities": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
},
"htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
"requires": {
"domelementtype": "^2.3.0",
"domhandler": "^5.0.3",
"domutils": "^3.0.1",
"entities": "^4.4.0"
}
}
}
},
"html-webpack-plugin": { "html-webpack-plugin": {
"version": "5.5.0", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
@ -50066,6 +50442,11 @@
} }
} }
}, },
"leac": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/leac/-/leac-0.6.0.tgz",
"integrity": "sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg=="
},
"leven": { "leven": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
@ -51725,6 +52106,15 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
"integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
}, },
"parseley": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/parseley/-/parseley-0.12.1.tgz",
"integrity": "sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==",
"requires": {
"leac": "^0.6.0",
"peberminta": "^0.9.0"
}
},
"parseurl": { "parseurl": {
"version": "1.3.3", "version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
@ -51822,6 +52212,11 @@
"path2d-polyfill": "^2.0.1" "path2d-polyfill": "^2.0.1"
} }
}, },
"peberminta": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/peberminta/-/peberminta-0.9.0.tgz",
"integrity": "sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ=="
},
"performance-now": { "performance-now": {
"version": "2.1.0", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
@ -55511,6 +55906,11 @@
} }
} }
}, },
"react-speech-recognition": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/react-speech-recognition/-/react-speech-recognition-3.10.0.tgz",
"integrity": "sha512-EVSr4Ik8l9urwdPiK2r0+ADrLyDDrjB0qBRdUWO+w2MfwEBrj6NuRmy1GD3x7BU/V6/hab0pl8Lupen0zwlJyw=="
},
"react-spinner-children": { "react-spinner-children": {
"version": "1.0.8", "version": "1.0.8",
"resolved": "https://registry.npmjs.org/react-spinner-children/-/react-spinner-children-1.0.8.tgz", "resolved": "https://registry.npmjs.org/react-spinner-children/-/react-spinner-children-1.0.8.tgz",
@ -57255,6 +57655,14 @@
"resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz", "resolved": "https://registry.npmjs.org/scriptjs/-/scriptjs-2.5.9.tgz",
"integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg==" "integrity": "sha512-qGVDoreyYiP1pkQnbnFAUIS5AjenNwwQBdl7zeos9etl+hYKWahjRTfzAZZYBv5xNHx7vNKCmaLDQZ6Fr2AEXg=="
}, },
"selderee": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/selderee/-/selderee-0.11.0.tgz",
"integrity": "sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==",
"requires": {
"parseley": "^0.12.0"
}
},
"select-hose": { "select-hose": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",

View File

@ -66,6 +66,8 @@
"gatsby-plugin-cookie-gdpr-axeptio": "^1.0.2", "gatsby-plugin-cookie-gdpr-axeptio": "^1.0.2",
"google-map-react": "^2.1.10", "google-map-react": "^2.1.10",
"html-react-parser": "^2.0.0", "html-react-parser": "^2.0.0",
"html-to-react": "^1.7.0",
"html-to-text": "^9.0.5",
"immutability-helper": "^3.1.1", "immutability-helper": "^3.1.1",
"increase-memory-limit": "^1.0.7", "increase-memory-limit": "^1.0.7",
"js-cookie": "^3.0.1", "js-cookie": "^3.0.1",
@ -113,6 +115,7 @@
"react-grid-system": "^8.1.9", "react-grid-system": "^8.1.9",
"react-helmet": "^6.1.0", "react-helmet": "^6.1.0",
"react-hook-form": "^7.27.0", "react-hook-form": "^7.27.0",
"react-html-parser": "^2.0.2",
"react-icons": "^4.10.1", "react-icons": "^4.10.1",
"react-input-range": "^1.3.0", "react-input-range": "^1.3.0",
"react-intl": "^5.24.7", "react-intl": "^5.24.7",
@ -146,6 +149,7 @@
"react-slideshow-image": "^3.7.0", "react-slideshow-image": "^3.7.0",
"react-social-icons": "^5.13.0", "react-social-icons": "^5.13.0",
"react-social-login-buttons": "^3.6.0", "react-social-login-buttons": "^3.6.0",
"react-speech-recognition": "^3.10.0",
"react-stripe-elements": "^6.1.2", "react-stripe-elements": "^6.1.2",
"react-swipeable-views": "^0.14.0", "react-swipeable-views": "^0.14.0",
"react-time-picker": "^4.5.0", "react-time-picker": "^4.5.0",

View File

@ -63,6 +63,8 @@ import UpdateAttendeeList from "./pages/updateattendeelist";
import Emarge_QR_Code from "./pages/emarge_qr_code"; import Emarge_QR_Code from "./pages/emarge_qr_code";
import AutomaticQuotation from "./pages/automaticquotation"; import AutomaticQuotation from "./pages/automaticquotation";
import MySyIA from "./pages/iamysy";
import Maintenance from "./pages/maintenance_page"; import Maintenance from "./pages/maintenance_page";
import Subdomain_Recherche_new_v2 from "./pages/subdomain_recherche_new_v2"; import Subdomain_Recherche_new_v2 from "./pages/subdomain_recherche_new_v2";
@ -240,6 +242,9 @@ function App() {
<Route path="/automatic-quotation/:partner_owner_recid/:objid/" exact component={AutomaticQuotation} /> <Route path="/automatic-quotation/:partner_owner_recid/:objid/" exact component={AutomaticQuotation} />
<Route path="/intelligence-artificielle-mysy-training/" exact component={MySyIA} />
<Route component={NotFound} /> <Route component={NotFound} />
</Switch> </Switch>
</BrowserRouter> </BrowserRouter>

View File

@ -51,6 +51,46 @@ import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns' import { format } from 'date-fns'
import moment from "moment"; import moment from "moment";
import Module_Historique_Action from "./Module_Historique_Action"; import Module_Historique_Action from "./Module_Historique_Action";
import { IconButton } from '@material-ui/core';
import AutoAwesomeOutlinedIcon from '@mui/icons-material/AutoAwesomeOutlined';
import AutoFixHighOutlinedIcon from '@mui/icons-material/AutoFixHighOutlined';
import CancelPresentationIcon from '@mui/icons-material/CancelPresentation';
import MySyIA from "./Module_IA";
import { makeStyles } from "@material-ui/core/styles";
import Paper from '@material-ui/core/Paper';
import Draggable from 'react-draggable';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({
dialog: {
position: 'absolute',
// left: 10,
top: 400
},
paper: {
overflowY: 'unset',
},
customizedButton: {
position: 'absolute',
left: '98%',
top: '-3%',
backgroundColor: 'lightgray',
color: 'gray',
},
}));
const AddClassManual = (props) => { const AddClassManual = (props) => {
const history = useHistory(); const history = useHistory();
@ -1622,8 +1662,11 @@ const AddClassManual = (props) => {
alert(" Le Champ 'code' est obligatoire") alert(" Le Champ 'code' est obligatoire")
return; return;
} }
/// zzzz
var title = document.getElementsByName("title")[0].value; console.log(" ### titre = ", p_detail_title);
var title = p_detail_title;
if (String(title).length > title_limite) { if (String(title).length > title_limite) {
alert(" Champ 'Titre', limite depassée !") alert(" Champ 'Titre', limite depassée !")
return; return;
@ -3744,13 +3787,92 @@ const AddClassManual = (props) => {
} }
const Dialog_mysy_ia_handleClose = () => {
setDialog_mysy_ia_open(false)
};
const classes = useStyles();
const [text_for_ia, settext_for_ia] = useState("");
const [fiels_of_text_replacement_ia, setfiels_of_text_replacement_ia] = useState("");
function function_of_text_replacement_ia(text_result) {
if (fiels_of_text_replacement_ia === "description")
setfield_description(text_result);
else if (fiels_of_text_replacement_ia === "objectif")
setfield_objectif(text_result)
DataUpdated();
}
const [Dialog_mysy_ia_open, setDialog_mysy_ia_open] = React.useState(false);
return ( return (
<div className="addclassmanual"> <div className="addclassmanual">
{isLoading && <div className="loader-container"> {isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div> <div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>} </div>}
{/*** GESTION IA */}
<Dialog
open={Dialog_mysy_ia_open}
className="displaypartnersession"
static
onClose={() => null}
PaperProps={{
className: classes.paper, // Apply the paper style
style: {
overflowY: 'unset',
position: 'absolute',
top: '5rem',
margin: "2px",
},
}}
hideBackdrop={true}
disableScrollLock
classes={{
paper: classes.dialog
}}
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
>
<DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title"> &nbsp; </DialogTitle>
<DialogContent className="DialogContent_width DialogContent_width_session_800px" >
<MySyIA champ_text_input={text_for_ia} function_replace_text={function_of_text_replacement_ia} close_function={Dialog_mysy_ia_handleClose} />
</DialogContent>
<DialogActions>
<IconButton
autoFocus
onClick={Dialog_mysy_ia_handleClose}
color="primary"
className={classes.customizedButton}
>
<CancelPresentationIcon />
</IconButton>
</DialogActions>
</Dialog>
{/*** FIN GESTION IA */}
{/* Dialog pour gerer les Unite_Enseignement */} {/* Dialog pour gerer les Unite_Enseignement */}
<Dialog <Dialog
open={Dialog_Unite_Enseignement_open} open={Dialog_Unite_Enseignement_open}
@ -3758,7 +3880,7 @@ const AddClassManual = (props) => {
className="displaypartnersession" className="displaypartnersession"
> >
<DialogTitle>MySy Information</DialogTitle> <DialogTitle style={{ cursor: 'move' }} id="draggable-dialog-title">MySy Information</DialogTitle>
<DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}> <DialogContent className="DialogContent_width" style={{ "minHeight": "30rem" }}>
<DialogContentText> <DialogContentText>
{Dialog_1_message} {Dialog_1_message}
@ -5471,7 +5593,30 @@ const AddClassManual = (props) => {
<div className="training_text"> <div className="training_text">
<div className="plus_produit_desabled"> <div className="plus_produit_desabled">
<div className="titre_training_text"> Description * (max 1000 caractères) </div> <div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
<nav className="nav_descrip_champs" > Description * (max 1000 caractères) &nbsp; </nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
onClick={(e) => {
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = field_description.replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
return "&#" + chr.charCodeAt(0) + ";";
});
setfiels_of_text_replacement_ia("description")
settext_for_ia(initial_text_no_html);
setDialog_mysy_ia_open(true);
}} />
</nav>
</a>
</div>
<Editor <Editor
onInit={(evt, editor) => editorRef_description.current = editor} onInit={(evt, editor) => editorRef_description.current = editor}
initialValue={field_description} initialValue={field_description}
@ -5504,7 +5649,33 @@ const AddClassManual = (props) => {
<div className="training_text" > <div className="training_text" >
<div className="plus_produit_desabled"> <div className="plus_produit_desabled">
<div className="titre_training_text"> Objectif* (max 1000 caractères) </div> <div className="titre_training_text" style={{ "width": "100%", "float": "left" }}>
<nav className="nav_descrip_champs" > Objectif* (max 1000 caractères) &nbsp;
</nav>
<Tooltip className="tooltip_css" id="tooltip_use_ia" style={{ "fontSize": "12px" }} />
<a data-tooltip-id="tooltip_use_ia" data-tooltip-html="Utiliser l'Intelligence Artificielle ">
<nav className="nav_ia">
<AutoFixHighOutlinedIcon style={{ "color": "hsla(99, 75%, 75%, 1);" }}
onClick={(e) => {
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = field_objectif.replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
return "&#" + chr.charCodeAt(0) + ";";
});
setfiels_of_text_replacement_ia("objectif")
settext_for_ia(initial_text_no_html);
setDialog_mysy_ia_open(true);
}} />
</nav>
</a>
</div>
<Editor <Editor
onInit={(evt, editor) => editorRef_objectif.current = editor} onInit={(evt, editor) => editorRef_objectif.current = editor}
initialValue={field_objectif} initialValue={field_objectif}

View File

@ -109,10 +109,10 @@ const Fonctionnalites_V1 = () => {
return ( return (
<div className="fonctionnalite_v1"> <div className="fonctionnalite_v1">
<Helmet> <Helmet>
<title>Fonctionnalites et Modules du logiciel de gestion des organismes de formation</title> <title>Gestion Administrative, CRM, LMS, Marketplace, découvrez les Fonctionnalités et Modules du logiciel de gestion des organismes de formation</title>
<meta name="description" content="Avec notre logiciel Tout-en-Un, Nous automatisons les étapes Qualiopi (Inscription, Documents personnalisés, Les émargements sécurisés, Les évaluations, etc). Votre Le bilan pédagogique et financier est généré automatiquement." /> <meta name="description" content="Avec notre logiciel Tout-en-Un, Nous automatisons les étapes Qualiopi (Inscription, Documents personnalisés, Les émargements sécurisés, Les évaluations, etc). Votre Le bilan pédagogique et financier est généré automatiquement." />
<meta name="robots" content="index,follow" /> <meta name="robots" content="index,follow" />
<meta name="title" content="Fonctionnalites et Modules du logiciel de gestion des organismes de formation" /> <meta name="title" content="Gestion Administrative, CRM, LMS, Marketplace, découvrez les Fonctionnalités et Modules du logiciel de gestion des organismes de formation" />
<link rel="canonical" href={window.location.href} /> <link rel="canonical" href={window.location.href} />
</Helmet> </Helmet>

View File

@ -76,6 +76,17 @@ import {
} from '@mui/x-data-grid'; } from '@mui/x-data-grid';
import * as XLSX from 'xlsx'; import * as XLSX from 'xlsx';
function PaperComponent(props) {
return (
<Draggable
handle="#draggable-dialog-title"
cancel={'[class*="MuiDialogContent-root"]'}
>
<Paper {...props} />
</Draggable>
);
}
const useStyles = makeStyles((theme) => ({ const useStyles = makeStyles((theme) => ({
@ -2241,7 +2252,7 @@ const Groupe_Apprenant = (props) => {
sheetName: 'Export_' + String(new Date().toJSON().slice(0, 10)).replaceAll("-", "_"), sheetName: 'Export_' + String(new Date().toJSON().slice(0, 10)).replaceAll("-", "_"),
}; };
local_config.columnNames = local_config.columnNames.filter(function( element ) { local_config.columnNames = local_config.columnNames.filter(function (element) {
return element !== undefined; return element !== undefined;
}); });
@ -2296,8 +2307,6 @@ const Groupe_Apprenant = (props) => {
<Dialog <Dialog
open={Dialog_GRP_COLOR_open} open={Dialog_GRP_COLOR_open}
// onClose={Dialog_GRP_COLOR_handleClose} // onClose={Dialog_GRP_COLOR_handleClose}
static static
onClose={() => null} onClose={() => null}
@ -2317,7 +2326,8 @@ const Groupe_Apprenant = (props) => {
paper: classes.dialog paper: classes.dialog
}} }}
className="groupe_apprenant_dialog" className="groupe_apprenant_dialog"
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
<DialogTitle> Choisir une couleur</DialogTitle> <DialogTitle> Choisir une couleur</DialogTitle>
@ -2399,7 +2409,8 @@ const Groupe_Apprenant = (props) => {
paper: classes.dialog paper: classes.dialog
}} }}
className="groupe_apprenant_dialog mysy_MuiPaper-root" className="groupe_apprenant_dialog mysy_MuiPaper-root"
PaperComponent={PaperComponent}
aria-labelledby="draggable-dialog-title"
> >
<DialogTitle> Création automatique des groupes </DialogTitle> <DialogTitle> Création automatique des groupes </DialogTitle>

417
src/components/Module_IA.js Normal file
View File

@ -0,0 +1,417 @@
import React, { useRef, useState, useEffect } from "react";
import TextField from '@mui/material/TextField';
import MenuItem from '@mui/material/MenuItem';
import 'react-confirm-alert/src/react-confirm-alert.css'; // Import css
import Button from '@mui/material/Button';
import axios from "axios";
import { getCookie, setCookie } from 'react-use-cookie';
import { useHistory } from "react-router-dom";
import { DataGrid, GridToolbar, frFR } from '@mui/x-data-grid';
import "react-draft-wysiwyg/dist/react-draft-wysiwyg.css";
import { Editor } from '@tinymce/tinymce-react';
import parse from 'html-react-parser';
import { FcViewDetails, FcDisapprove, FcInfo } from "react-icons/fc";
import 'react-tooltip/dist/react-tooltip.css'
import { Tooltip } from 'react-tooltip'
import add_plus from "../mysy_img/plus.png";
import excel_icone from "../mysy_img/excel_icone.png";
import participants from "../mysy_img/participants.png";
import fileDownload from 'js-file-download'
import Popup from 'reactjs-popup';
import 'reactjs-popup/dist/index.css';
import { FcSearch } from "react-icons/fc";
import { FcAlarmClock, FcMultipleSmartphones, FcWorkflow } from "react-icons/fc";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import { format } from 'date-fns'
import moment from "moment";
import 'moment/locale/fr';
import InputAdornment from '@mui/material/InputAdornment';
import { AiFillCloseCircle, AiOutlineConsoleSql } from "react-icons/ai";
import Box from '@mui/material/Box';
import { Typography, LinearProgress } from '@mui/material';
import styled from 'styled-components';
import { CiTrash } from "react-icons/ci";
import { MdAddCircleOutline, MdRemoveCircleOutline } from "react-icons/md";
import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent';
import DialogContentText from '@mui/material/DialogContentText';
import DialogTitle from '@mui/material/DialogTitle';
import { RestoreFromTrashRounded } from "@mui/icons-material";
import img_loading_spin from "./../mysy_img/mysy_spin_loading.gif";
import { Fab } from "@material-ui/core";
import { IoMdAddCircle, IoIosRemoveCircleOutline } from "react-icons/io";
import { AiTwotoneEdit, AiTwotoneSave } from "react-icons/ai";
import { confirmAlert } from 'react-confirm-alert';
import ToggleSwitch from "./ToggleSwitch";
import Module_Historique_Action from "./Module_Historique_Action";
import { HiDocumentCheck } from "react-icons/hi2";
import { BsSend } from "react-icons/bs";
import Autocomplete from '@mui/material/Autocomplete';
import { FcOpenedFolder } from "react-icons/fc";
import { gridClasses } from '@mui/x-data-grid';
import Link from '@mui/material/Link';
import { PiDotsThree } from "react-icons/pi";
import Module_Editique from "./Module_Editique";
import Module_Attestation_Formation from "./Module_Attestation_Formation";
import { IoAddCircleOutline, IoCloseCircleOutline } from "react-icons/io5";
import { FcCancel, FcApproval, FcAcceptDatabase, FcPrint, FcPlanner } from "react-icons/fc";
import { CiBoxList } from "react-icons/ci";
import FullCalendar from "@fullcalendar/react";
import daygridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from "@fullcalendar/interaction";
import timeGridPlugin from "@fullcalendar/timegrid";
import resourceTimeGridPlugin from '@fullcalendar/resource-timegrid';
import Radio from '@mui/material/Radio';
import RadioGroup from '@mui/material/RadioGroup';
import FormControlLabel from '@mui/material/FormControlLabel';
import FormControl from '@mui/material/FormControl';
import FormLabel from '@mui/material/FormLabel';
import allLocales from '@fullcalendar/core/locales-all'
import listPlugin from '@fullcalendar/list';
import multiMonthPlugin from '@fullcalendar/multimonth'
import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
import CheckBoxIcon from '@mui/icons-material/CheckBox';
import Checkbox from '@mui/material/Checkbox';
import { FcExport, FcBullish } from "react-icons/fc";
import { AiOutlineClear } from "react-icons/ai";
import { Parser } from "html-to-react";
const Module_IA = (props) => {
const history = useHistory();
const [submenu, setsubmenu] = useState("");
const [rowss, setRows] = useState([]);
const htmlParser = new Parser();
const [formulaire_parent, setformulaire_parent] = useState("0");
var date_today_90j = new Date();
date_today_90j.setDate(date_today_90j.getDate() + 90);
const [isLoading, setLoading] = useState();
useEffect(() => {
if (props.champ_text_input) {
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = props.champ_text_input.replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
return "&#" + chr.charCodeAt(0) + ";";
});
initial_text_no_html = htmlParser.parse(initial_text_no_html)
setfield_texte_initial(initial_text_no_html);
setformulaire_parent("1");
} else {
setfield_texte_initial("");
setformulaire_parent("");
}
}, [])
const editorRef_texte_initial = useRef(null);
const [editorRef_texte_initial_limite, seteditorRef_texte_initial] = useState(1000);
const [field_texte_initial, setfield_texte_initial] = useState("");
const [field_texte_initial_initial_value, setfield_texte_initial_initial_value] = useState("");
const editorRef_texte_resultat = useRef(null);
const [editorRef_texte_resultat_limite, seteditorRef_texte_resultat] = useState(1000);
const [field_texte_resultat, setfield_texte_resultat] = useState("");
const [is_data_changed, setis_data_changed] = useState("");
const [editor_tochanged, seteditor_tochanged] = useState("");
function editor_keyup() {
setis_data_changed("1");
}
const [Improve_Texte_api, setImprove_Texte_api] = useState();
const [Improve_Texte_message, setImprove_Texte_message] = useState();
const [Improve_Texte_result, setImprove_Texte_result] = useState();
function Improve_Texte() {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
var initial_text_no_html = ""
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = field_texte_initial.replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
// ^^^^^^
// this is a regexp for "everything than printable ASCII-characters"
// and even works in a ASCII-only charset. Identic: [^\u0020-\u007E]
return "&#" + chr.charCodeAt(0) + ";";
});
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("text_input", initial_text_no_html);
form.append("action", "Improve");
//console.log(" ### form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/mysy_openai_improve_text/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
//console.log(" In Improve_Texte res.data.status = " + res.data.status);
//console.log(" In Improve_Texte res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
//alert(res.data.message);
var mylocal_document = JSON.parse(res.data.message);
setfield_texte_resultat(mylocal_document.reponse);
//console.log(" ### mylocal_document.reponse = ", mylocal_document.reponse);
}
else {
setImprove_Texte_api("false");
setImprove_Texte_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Improve_Texte : Not good man :( mysearchtext = ' + error);
setImprove_Texte_api("false");
alert(" Impossible de lancer l'améliration du texte");
})
}
const [Summurize_Texte_api, setSummurize_Texte_api] = useState();
const [Summurize_Texte_message, setSummurize_Texte_message] = useState();
const [Summurize_Texte_result, setSummurize_Texte_result] = useState();
function Summurize_Texte() {
var form = new FormData();
//form.append("token","K3cw63eKokKSbV4spjQ48SUNnfy80yrXfA");
var initial_text_no_html = ""
const regex = /(<([^>]+)>)/gi;
var initial_text_no_html = field_texte_initial.replace(regex, " ");
initial_text_no_html = initial_text_no_html.replace(/[^ -~]/g, function (chr) {
// ^^^^^^
// this is a regexp for "everything than printable ASCII-characters"
// and even works in a ASCII-only charset. Identic: [^\u0020-\u007E]
return "&#" + chr.charCodeAt(0) + ";";
});
const stored_cookie = getCookie('tokenmysypart');
form.append("token", stored_cookie);
form.append("text_input", initial_text_no_html);
form.append("action", "Improve");
//console.log(" ### form = ", form);
var myurl = process.env.REACT_APP_API_URL + "myclass/api/mysy_openai_summarize_text/";
setLoading(true);
axios.post(myurl, form).then(res => {
setLoading(false);
//console.log(" In Summurize_Texte res.data.status = " + res.data.status);
//console.log(" In Summurize_Texte res.data.message r_class = " + res.data.message);
if (String(res.data.status) === String("true")) {
//alert(res.data.message);
var mylocal_document = JSON.parse(res.data.message);
setfield_texte_resultat(mylocal_document.reponse);
//console.log(" ### mylocal_document.reponse = ", mylocal_document.reponse);
}
else {
setSummurize_Texte_api("false");
setSummurize_Texte_message(res.data.message);
alert(res.data.message);
}
}).catch((error) => {
setLoading(false);
console.warn('Summurize_Texte : Not good man :( mysearchtext = ' + error);
setSummurize_Texte_api("false");
alert(" Impossible de lancer l'améliration du texte");
})
}
function clean_text() {
//setfield_texte_initial('');
setfield_texte_resultat('');
}
function accept_replace() {
if (props.champ_text_input && props.function_replace_text) {
props.function_replace_text(field_texte_resultat);
props.close_function();
}
}
return (
<div className="moduleia">
{isLoading && <div className="loader-container">
<div className="mysy_spinner"> <img src={img_loading_spin} /> </div>
</div>}
{formulaire_parent && String(formulaire_parent) === "" &&
<nav style={{ "border": "None", "fontSize": "20px", "paddingTop": "10px", "paddingLeft": "5px" }}>
Module MySyIA
</nav>}
{formulaire_parent && String(formulaire_parent) === "" && <div className="div_row">
Lassistance dintelligence artificiel de <br />
MySy Training Technology
</div>}
<div style={{ width: "90%", margin: "auto" }}>
<div className="div_row vousaider" >
Comment puis-je vous aider ?
</div>
<div className="div_row">
<div className="div_row" style={{ "textAlign": 'left' }}>
<b> Texte Article </b>
</div>
<textarea
minRows={2}
value={field_texte_initial}
onChange={(e) => {
setfield_texte_initial(e.target.value);
}
}
multiline
maxRows={10}
rows={5}
className="block_text"
placeholder="Saisir votre texte.."
/>
</div>
<div className="div_row">
&nbsp;
</div>
<div className="div_row">
<ul className="ul_bouton">
<li> <Button className="li_button" onClick={(e) => {
Summurize_Texte();
}}> <FcExport style={{ fontSize: '15px' }} /> &nbsp; résumer un texte</Button> </li>
<li> <Button className="li_button" onClick={(e) => {
Improve_Texte();
}}> <FcBullish style={{ fontSize: '15px' }} /> &nbsp; Améliorer un texte</Button> </li>
</ul>
</div>
<div className="div_row">
&nbsp;
</div>
<div className="div_row" style={{ "textAlign": 'left' }}>
<b> Résultat </b>
</div>
<div className="div_row" >
{/* <Editor
id="detail_document_resultat"
name="detail_document_resultat"
onInit={(evt, editor) => editorRef_texte_resultat.current = editor}
initialValue={field_texte_resultat}
value={field_texte_resultat}
onEditorChange={(newValue, editor) => {
setfield_texte_resultat(editorRef_texte_resultat.current.getContent());
}}
init={{
resize: false,
height: 300,
menubar: true,
plugins: [
'advlist', 'autolink', 'lists', 'link', 'image', 'charmap', 'print', 'preview', 'anchor', 'searchreplace',
'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'paste', 'code', 'help', 'wordcount',
'lists', 'link', 'image', 'charmap', 'preview', 'anchor', 'searchreplace', 'visualblocks',
],
toolbar: 'undo redo | casechange blocks | bold italic backcolor | ' +
'alignleft aligncenter alignright alignjustify | ' +
'bullist numlist checklist outdent indent | removeformat | a11ycheck code table help',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px; }'
}}
/>*/}
<textarea
minRows={2}
value={field_texte_resultat}
multiline
maxRows={10}
rows={5}
className="block_text_resultat"
placeholder="Le resultat..."
/>
</div>
<div className="div_row">
&nbsp;
</div>
<div className="div_row">
<div style={{ width: '45%', float: 'left', textAlign: 'left' }}> <Button className="li_button"
onClick={(e) => {
accept_replace();
}}
> <FcAcceptDatabase style={{ fontSize: '15px' }} /> &nbsp; Accepter et remplacer</Button> </div>
<div style={{ width: '45%', float: 'right', marginRight: "5px", textAlign: 'right' }}> <Button className="li_button"
onClick={(e) => {
clean_text();
}} >
<AiOutlineClear style={{ fontSize: '15px' }} /> &nbsp; Effacer</Button> </div>
</div>
<div className="div_row">
&nbsp;
</div>
</div>
</div >
);
}
export default Module_IA;

View File

@ -209,19 +209,16 @@ const QuiSommesNous_v4 = () => {
<div style={{ width: "100%", float: "left" }}> <div style={{ width: "100%", float: "left" }}>
<div className="quisommesnous_v4"> <div className="quisommesnous_v4">
<Helmet> <Helmet>
<title>MySy Training, qui sommes nous ?</title> <title>Éditeur Français de logiciels de gestion pour organismes de formation - Gestion administrative, CRM, E-Learning, Marketplace</title>
<meta name="description" content="Éditeur Français de logiciels pour organismes de formation. Avec notre solution Tout-en-Un, Nous automatisons les étapes Qualiopi (Inscription, Documents personnalisés, Les émargements sécurisés, Les évaluations, etc). Votre Le bilan pédagogique et financier est généré automatiquement." /> <meta name="description" content="Éditeur Français de logiciels pour organismes de formation. Avec notre solution Tout-en-Un, Nous automatisons les étapes Qualiopi (Inscription, Documents personnalisés, Les émargements sécurisés, Les évaluations, etc). Votre Le bilan pédagogique et financier est généré automatiquement." />
<meta name="robots" content="index,follow" /> <meta name="robots" content="index,follow" />
<meta name="title" content="Formations.Gestion administrative.E-Learning.CRM" /> <meta name="title" content="Éditeur Français de logiciels de gestion pour organismes de formation - Gestion administrative, CRM, E-Learning, Marketplace" />
<link rel="canonical" href={window.location.href} /> <link rel="canonical" href={window.location.href} />
</Helmet> </Helmet>
<Header /> <Header />
<h1 style={{ fontSize: '0.1px', opacity: '0', height: '0.1px' }}>Éditeur Français de logiciels pour organismes de formation. Avec solutions de E-Learning, <h1 style={{ fontSize: '0.1px', opacity: '0', height: '0.1px' }}>Éditeur français de logiciels de gestion dédiés aux organismes de formation, nous proposons des solutions complètes couvrant la gestion administrative, le CRM, le-learning et les marketplaces. Nos outils sont conçus pour accompagner les organismes de formation dans lobtention et le maintien de la certification QUALIOPI, en toute sérénité. Grâce à nos solutions abordables, nous facilitons lautomatisation de vos processus : inscriptions, évaluations, émargement (via QR code), gestion des check-lists QUALIOPI, personnalisation et édition de documents, gestion des formateurs, et création de catalogues de formations sur mesure</h1>
gestion administrative et gestion relation client nous accompagnons les organismes de formation à réaliser laudit QUALIOPI en toute sérénité.
Nous sommes les moins cher du marché. Nous vous accompagnons automatiser vos process : inscription, évaluation, émargement (qr-code), Check-list QUALIOPI, Personnalisation et édition documents,
Gestion formateurs, Catalogue formations personnalisé </h1>
{/*** GESTION Contact */} {/*** GESTION Contact */}
<Dialog <Dialog
open={Dialog_contact_open} open={Dialog_contact_open}
@ -375,7 +372,7 @@ const QuiSommesNous_v4 = () => {
MySy Training est un éditeur de logiciels dédiés à la gestion des établissements de formation : <b> Organisme de formation, Indépendants, Ecoles, Universités </b>, etc. MySy Training est un éditeur de logiciels dédiés à la gestion des établissements de formation : <b> Organisme de formation, Indépendants, Ecoles, Universités </b>, etc.
<br /> <br />
Nous conseillons, accompagnons nos clients dans la structuration, laudit et lorganisation de leurs processus et outils. Nous conseillons, accompagnons nos clients dans la structuration, laudit et lorganisation de leurs processus et outils.
<br /><br/> <br /><br />
Avec une équipe dune dizaine de personnes, nous développons des solutions axées sur l' <b> efficacité </b> et le <b> gain de productivité </b> de nos clients, sans oublier la <b> sécurité de leurs données </b>. Avec une équipe dune dizaine de personnes, nous développons des solutions axées sur l' <b> efficacité </b> et le <b> gain de productivité </b> de nos clients, sans oublier la <b> sécurité de leurs données </b>.
</div> </div>
@ -507,11 +504,10 @@ const QuiSommesNous_v4 = () => {
<div className="detail_content_text_head_3"> <div className="detail_content_text_head_3">
Notre objectif peut se résumer en ces quelques mots : <br /> Notre objectif peut se résumer en ces quelques mots : <br />
<b> « Une solution tout-en-un personnalisée pour chacun de nos partenaires ». </b> <br /> <b> Nous nous engageons à accompagner chaque organisme de formation vers l'obtention et le maintien de la certification QUALIOPI, en assurant une transition fluide et sans stress. Notre objectif est de vous aider à accroître votre productivité et à minimiser vos coûts opérationnels. En tant que prestataire le plus compétitif du marché, nous vous offrons un accompagnement sur mesure dans l'automatisation de vos processus, incluant les inscriptions, les évaluations, les systèmes d'émargement par QR-code, ainsi que la mise en place de check-lists QUALIOPI. Nous vous assistons également dans la personnalisation et l'édition de vos documents, la gestion de vos formateurs et la création d'un catalogue de formations personnalisé, le tout conçu pour répondre précisément à vos besoins. </b>
Notre objectif est de développer des solutions de proximité qui permettront à chacun de nos clients dêtre unique, de se distinguer. <br /> Notre ambition est de concevoir des solutions sur mesure qui révèlent et renforcent l'identité unique de chaque client. <br />
Grâce à une approche résolument personnalisée, nous nous engageons à offrir des solutions parfaitement adaptées à leurs besoins spécifiques, leur garantissant une expérience incomparable et un service d'excellence.
Cette approche personnalisée leur permettra de disposer dune solution adaptée à leur besoin.
</div> </div>

View File

@ -67,6 +67,8 @@ import {
import { ContextMenu, ContextMenuTrigger } from "react-contextmenu"; import { ContextMenu, ContextMenuTrigger } from "react-contextmenu";
import * as XLSX from 'xlsx'; import * as XLSX from 'xlsx';
//import SpeechRecognition, { useSpeechRecognition } from 'react-speech-recognition';
const useStyles = makeStyles((theme) => ({ const useStyles = makeStyles((theme) => ({
paper: { paper: {
@ -851,6 +853,16 @@ const TestUrl_New = (props) => {
const [visibleColumns, setVisibleColumns] = React.useState(); const [visibleColumns, setVisibleColumns] = React.useState();
/*const {
transcript,
listening,
resetTranscript,
browserSupportsSpeechRecognition
} = useSpeechRecognition();
if (!browserSupportsSpeechRecognition) {
return <span>Browser doesn't support speech recognition.</span>;
}*/
return ( return (
<div className="testurl_new"> <div className="testurl_new">
@ -948,6 +960,18 @@ const TestUrl_New = (props) => {
parametres courseid = {courseid}, tabid = {tabid} parametres courseid = {courseid}, tabid = {tabid}
<br /> <br />
{/*<div> <h1> test microphone </h1>
<div>
<p>Microphone: {listening ? 'on' : 'off'}</p>
<button onClick={SpeechRecognition.startListening}>Start</button>
<button onClick={SpeechRecognition.stopListening}>Stop</button>
<button onClick={resetTranscript}>Reset</button>
<p>{transcript}</p>
</div>
</div>*/}
<div> <div>
<Button variant="outlined" color="primary" onClick={handleClickOpen1}> <Button variant="outlined" color="primary" onClick={handleClickOpen1}>
Open form dialog laa Open form dialog laa

63
src/pages/iamysy.js Normal file
View File

@ -0,0 +1,63 @@
import Link from "next/link";
import Navigation from "../components/Navigation";
import MySyIA from "../components/Module_IA";
import { Helmet } from "react-helmet";
import Header from "./../components/Header";
import Fotter_v3 from "./../components/Fotter_v3";
export default function Login() {
return (
<div style={{ width: "100%", float: "left" }}>
<div className="moduleia">
<div>
<Navigation />
</div>
<Helmet>
<title>intelligence artificielle MySy Training</title>
<meta name="description" content="Nous sommes une base de données uniquement dediée aux formations et tutoriels" />
<meta name="robots" content="noindex, nofollow" />
<meta name="title" content="intelligence artificielle MySy Training" />
<link rel="canonical" href={window.location.href} />
</Helmet>
<Header />
<div className="div_mobile">
<div className="div_row block_entete" >
<div className="Background-header">
<h1 className="besoin_aide">
Lassistance dintelligence artificiel de <br />
MySy Training Technology</h1>
</div>
</div>
<div className="block_centrer">
<div className="display_screen_600_901">
<div>
<MySyIA />
</div>
</div>
</div>
</div>
</div>
<div style={{ height: "5rem", width: "100%" }}>
<Fotter_v3 />
</div>
</div>
);
}

View File

@ -418,6 +418,28 @@
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
} }
.nav_descrip_champs {
width: 75%;
float: left;
text-align: left;
}
.nav_ia {
width: 20%;
float: right;
cursor: pointer;
text-align: right;
padding-right: 5px;
color: linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
color: red;
color: -webkit-linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
background: linear-gradient(90deg, hsla(99, 75%, 75%, 1) 0%, hsla(15, 93%, 71%, 1) 100%);
opacity: .8;
border-radius: 25px;
text-align: center;
margin-bottom: 2px;
margin-right: 10px;
}
} }
@media only screen and (min-width: 601px) and (max-width: 991px) { @media only screen and (min-width: 601px) and (max-width: 991px) {
@ -882,6 +904,28 @@
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
} }
.nav_descrip_champs {
width: 75%;
float: left;
text-align: left;
}
.nav_ia {
width: 20%;
float: right;
cursor: pointer;
text-align: right;
padding-right: 5px;
color: linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
color: red;
color: -webkit-linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
background: linear-gradient(90deg, hsla(99, 75%, 75%, 1) 0%, hsla(15, 93%, 71%, 1) 100%);
opacity: .8;
border-radius: 25px;
text-align: center;
margin-bottom: 2px;
margin-right: 10px;
}
} }
@media only screen and (min-width: 992px) and (max-width: 1199px) { @media only screen and (min-width: 992px) and (max-width: 1199px) {
@ -1347,6 +1391,28 @@
text-align: center; text-align: center;
} }
.nav_descrip_champs {
width: 75%;
float: left;
text-align: left;
}
.nav_ia {
width: 20%;
float: right;
cursor: pointer;
text-align: right;
padding-right: 5px;
color: linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
color: red;
color: -webkit-linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
background: linear-gradient(90deg, hsla(99, 75%, 75%, 1) 0%, hsla(15, 93%, 71%, 1) 100%);
opacity: .8;
border-radius: 25px;
text-align: center;
margin-bottom: 2px;
margin-right: 10px;
}
} }
@media only screen and (min-width: 1200px) { @media only screen and (min-width: 1200px) {
@ -1800,10 +1866,35 @@
cursor: pointer; cursor: pointer;
text-align: center; text-align: center;
} }
.nav_descrip_champs {
width: 80%;
float: left;
text-align: left;
}
.nav_ia {
width: 10%;
float: right;
cursor: pointer;
text-align: right;
padding-right: 5px;
color: linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
color: red;
color: -webkit-linear-gradient(90deg, hsla(136, 48%, 54%, 1) 0%, hsla(74, 100%, 47%, 1) 100%);
background: linear-gradient(90deg, hsla(99, 75%, 75%, 1) 0%, hsla(15, 93%, 71%, 1) 100%);
opacity: .8;
border-radius: 25px;
text-align: center;
margin-bottom: 2px;
margin-right: 10px;
}
} }
// - end media // - end media
.MuiOutlinedInput-root { .MuiOutlinedInput-root {
height: 3rem !important; height: 3rem !important;
} }

View File

@ -695,7 +695,7 @@
} }
.DialogContent_width { .DialogContent_width {
width: 200px !important; width: 300px !important;
} }
.img_class_logo_mini { .img_class_logo_mini {
@ -1340,7 +1340,7 @@
} }
.DialogContent_width { .DialogContent_width {
width: 500px !important; width: 700px !important;
} }
.img_class_logo_mini { .img_class_logo_mini {
@ -1910,7 +1910,7 @@
} }
.DialogContent_width { .DialogContent_width {
width: 500px !important; width: 700px !important;
} }
.img_class_logo_mini { .img_class_logo_mini {
@ -2612,7 +2612,7 @@
.DialogContent_width { .DialogContent_width {
width: 600px !important; width: 700px !important;
} }
.DialogContent_width_session { .DialogContent_width_session {

File diff suppressed because it is too large Load Diff

View File

@ -133,3 +133,4 @@
@import "./components/quisommesnous_v4"; @import "./components/quisommesnous_v4";
@import "./components/fonctionnalite_v1"; @import "./components/fonctionnalite_v1";
@import "./components/addarticleavis"; @import "./components/addarticleavis";
@import "./components/moduleia";