diff --git a/package-lock.json b/package-lock.json
index 87ddd2409a061f0e0cd71c99eeb5c547a9235478..38115b303424b91cf4ac3333e45e04b2acc7d0b3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -27,7 +27,7 @@
         "@types/pako": "^1.0.4",
         "@types/sprintf-js": "^1.1.2",
         "angular2-hotkeys": "^13.1.0",
-        "chartjs-plugin-zoom": "^1.2.1",
+        "chartjs-plugin-zoom": "^2.0.0",
         "core-js": "^3.23.3",
         "file-saver": "^2.0.5",
         "he": "^1.2.0",
@@ -37,7 +37,7 @@
         "material-design-icons": "^3.0.1",
         "mathjax": "^3.2.2",
         "mermaid": "^9.1.3",
-        "ng2-charts": "^4.0.0",
+        "ng2-charts": "^4.1.1",
         "ngx-markdown": "^14.0.1",
         "ngx-material-file-input": "^4.0.0",
         "ngx-webstorage-service": "^5.0.0",
@@ -6269,14 +6269,14 @@
       "peer": true
     },
     "node_modules/chartjs-plugin-zoom": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-1.2.1.tgz",
-      "integrity": "sha512-2zbWvw2pljrtMLMXkKw1uxYzAne5PtjJiOZftcut4Lo3Ee8qUt95RpMKDWrZ+pBZxZKQKOD/etdU4pN2jxZUmg==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-2.0.0.tgz",
+      "integrity": "sha512-bqpi7DGy9a5hX7ThKl/xQaLzXvneSwhS0w/lNimZ8AJaoRVMKz5JfUoqwciJYV5ixKXJbgyvwC9HcJnyVsYmjg==",
       "dependencies": {
         "hammerjs": "^2.0.8"
       },
       "peerDependencies": {
-        "chart.js": "^3.2.0"
+        "chart.js": ">=3.2.0"
       }
     },
     "node_modules/cheerio": {
@@ -14130,9 +14130,9 @@
       "dev": true
     },
     "node_modules/ng2-charts": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-4.0.1.tgz",
-      "integrity": "sha512-QYXVZHP/RIRhAw36xeXPL6JZz73fXuHePTyGwBiOfIRGCG7EDYLApnSgEn+Mx+QFKYT1VN9Fsj5b04rrd2nrEw==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-4.1.1.tgz",
+      "integrity": "sha512-iHwXDbmX86lfeH8VRcsaW2tJATsuAZo4kvvC/Yk2l35zOHjevja1qBvO6BAibiDazi9r9aS6ZRJOqWPsz1pP2w==",
       "dependencies": {
         "lodash-es": "^4.17.15",
         "tslib": "^2.3.0"
@@ -14141,7 +14141,7 @@
         "@angular/cdk": ">=14.0.0",
         "@angular/common": ">=14.0.0",
         "@angular/core": ">=14.0.0",
-        "chart.js": "^3.4.0",
+        "chart.js": "^3.4.0 || ^4.0.0",
         "rxjs": "^6.5.3 || ^7.4.0"
       }
     },
@@ -24962,9 +24962,9 @@
       "peer": true
     },
     "chartjs-plugin-zoom": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-1.2.1.tgz",
-      "integrity": "sha512-2zbWvw2pljrtMLMXkKw1uxYzAne5PtjJiOZftcut4Lo3Ee8qUt95RpMKDWrZ+pBZxZKQKOD/etdU4pN2jxZUmg==",
+      "version": "2.0.0",
+      "resolved": "https://registry.npmjs.org/chartjs-plugin-zoom/-/chartjs-plugin-zoom-2.0.0.tgz",
+      "integrity": "sha512-bqpi7DGy9a5hX7ThKl/xQaLzXvneSwhS0w/lNimZ8AJaoRVMKz5JfUoqwciJYV5ixKXJbgyvwC9HcJnyVsYmjg==",
       "requires": {
         "hammerjs": "^2.0.8"
       }
@@ -30893,9 +30893,9 @@
       "dev": true
     },
     "ng2-charts": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-4.0.1.tgz",
-      "integrity": "sha512-QYXVZHP/RIRhAw36xeXPL6JZz73fXuHePTyGwBiOfIRGCG7EDYLApnSgEn+Mx+QFKYT1VN9Fsj5b04rrd2nrEw==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-4.1.1.tgz",
+      "integrity": "sha512-iHwXDbmX86lfeH8VRcsaW2tJATsuAZo4kvvC/Yk2l35zOHjevja1qBvO6BAibiDazi9r9aS6ZRJOqWPsz1pP2w==",
       "requires": {
         "lodash-es": "^4.17.15",
         "tslib": "^2.3.0"
diff --git a/package.json b/package.json
index 4624a5f6faaa8a5e9f2d37644f109a70fbc378a8..47e5d03490ed4a741f99a9d11dc7693f057d9ff7 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
     "mkdocs": "bash scripts/prepare_mkdocs.sh; cd build; python3 -m mkdocs build -f mkdocs-fr.yml && python3 -m mkdocs build -f mkdocs-en.yml && cd .. && node scripts/mkdocs-postprocess.js",
     "mkdocs2pdf": "node scripts/extract-nghyd-version.js build/cassiopee_version.tex && python3 scripts/mkdocs2pdf.py && node scripts/mkdocs2pdf-postprocess.js",
     "clean": "rm -rf build dist release src/date_revision.ts src/assets/docs",
-    "preprocess": "mkdir -p build; node scripts/preprocessors.js; npm run service-worker-version",
+    "preprocess": "mkdir -p build; node scripts/preprocessors.js; npm run service-worker-version; bash scripts/fix-chartjs-plugin-zoom-2.0.0.sh",
     "start": "npm run preprocess && npm run mkdocs && npm run ng serve -- --host 0.0.0.0 --poll 5000",
     "build-no-pdf": "npm run preprocess && npm run mkdocs && npm run ng build -- --configuration production",
     "build": "npm run preprocess && npm run mkdocs && npm run ng build -- --configuration production && npm run mkdocs2pdf",
@@ -54,9 +54,9 @@
     "@ngx-matomo/tracker": "^3.0.0",
     "@types/pako": "^1.0.4",
     "@types/sprintf-js": "^1.1.2",
-    "ng2-charts": "^4.0.0",
+    "ng2-charts": "^4.1.1",
     "angular2-hotkeys": "^13.1.0",
-    "chartjs-plugin-zoom": "^1.2.1",
+    "chartjs-plugin-zoom": "^2.0.0",
     "core-js": "^3.23.3",
     "file-saver": "^2.0.5",
     "he": "^1.2.0",
diff --git a/scripts/fix-chartjs-plugin-zoom-2.0.0.sh b/scripts/fix-chartjs-plugin-zoom-2.0.0.sh
new file mode 100755
index 0000000000000000000000000000000000000000..d066111f010c3abf652f84548addf03b65889b27
--- /dev/null
+++ b/scripts/fix-chartjs-plugin-zoom-2.0.0.sh
@@ -0,0 +1,4 @@
+# fix compilation error due to chartjs-plugin-zoom 2.0.0
+# cf. https://gitlab.irstea.fr/cassiopee/nghyd/-/issues/238#note_76247
+
+sed -i "s/const enum UpdateModeEnum {$/enum UpdateModeEnum {/g" node_modules/chartjs-plugin-zoom/types/index.d.ts