@@ -1,7 +1,8 @@ | |||
| 1 | 1 | // Copyright The IETF Trust 2026, All Rights Reserved | |
| 2 | + import Chart from 'chart.js/auto' | ||
| 3 | + import autocolors from 'chartjs-plugin-autocolors' | ||
| 4 | + | ||
| 2 | 5 | document.addEventListener('DOMContentLoaded', () => { | |
| 3 | - // Need to use autocolors plug-in else all slices are gray... | ||
| 4 | - const autocolors = window['chartjs-plugin-autocolors'] | ||
| 5 | 6 | Chart.register(autocolors) | |
| 6 | 7 | // ── Safely parse JSON data injected from Django view ── | |
| 7 | 8 | const totalChartData = JSON.parse(document.getElementById('total-chart-data').textContent) | |
@@ -1,5 +1,10 @@ | |||
| 1 | 1 | // Copyright The IETF Trust 2026, All Rights Reserved | |
| 2 | + import Chart from 'chart.js/auto' | ||
| 3 | + import zoomPlugin from 'chartjs-plugin-zoom' | ||
| 4 | + | ||
| 2 | 5 | document.addEventListener('DOMContentLoaded', () => { | |
| 6 | + Chart.register(zoomPlugin) // enable the zoom plugin | ||
| 7 | + | ||
| 3 | 8 | // ── Safely parse JSON data injected from Django view ── | |
| 4 | 9 | const totalChartData = JSON.parse(document.getElementById('total-chart-data').textContent) | |
| 5 | 10 | const inPersonChartData = JSON.parse(document.getElementById('in-person-chart-data').textContent) | |
@@ -50,7 +55,10 @@ document.addEventListener('DOMContentLoaded', () => { | |||
| 50 | 55 | zoom: { | |
| 51 | 56 | wheel: { enabled: true }, // scroll to zoom | |
| 52 | 57 | pinch: { enabled: true }, // pinch on mobile | |
| 53 | - drag: { enabled: true }, // drag to select range | ||
| 58 | + drag: { // drag to select range | ||
| 59 | + enabled: true, | ||
| 60 | + modifierKey: 'alt' | ||
| 61 | + }, | ||
| 54 | 62 | mode: 'xy', // zoom X-axis and Y-axis | |
| 55 | 63 | }, | |
| 56 | 64 | pan: { | |
@@ -3,9 +3,6 @@ | |||
| 3 | 3 | {% origin %} | |
| 4 | 4 | {% load ietf_filters static django_bootstrap5 %} | |
| 5 | 5 | {% block js %} | |
| 6 | - <!-- Chart.js CDN --> | ||
| 7 | - <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | ||
| 8 | - <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-autocolors"></script> | ||
| 9 | 6 | {{ total_chart_data|json_script:"total-chart-data" }} | |
| 10 | 7 | {{ in_person_chart_data|json_script:"in-person-chart-data" }} | |
| 11 | 8 | <script src="{% static 'ietf/js/meeting_stats.js' %}"></script> | |
@@ -3,10 +3,6 @@ | |||
| 3 | 3 | {% origin %} | |
| 4 | 4 | {% load ietf_filters static django_bootstrap5 %} | |
| 5 | 5 | {% block js %} | |
| 6 | - <!-- Chart.js CDN --> | ||
| 7 | - <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | ||
| 8 | - <script src="https://cdn.jsdelivr.net/npm/hammerjs@2.0.8"></script> | ||
| 9 | - <script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-zoom"></script> | ||
| 10 | 6 | {{ total_chart_data|json_script:"total-chart-data" }} | |
| 11 | 7 | {{ in_person_chart_data|json_script:"in-person-chart-data" }} | |
| 12 | 8 | {{ stats_type|json_script:"stats-type-data" }} | |
@@ -16,12 +16,16 @@ | |||
| 16 | 16 | "@fullcalendar/luxon3": "6.1.11", | |
| 17 | 17 | "@fullcalendar/timegrid": "6.1.11", | |
| 18 | 18 | "@fullcalendar/vue3": "6.1.11", | |
| 19 | + "@kurkle/color": "0.3.1", | ||
| 19 | 20 | "@popperjs/core": "2.11.8", | |
| 20 | 21 | "@twuni/emojify": "1.0.2", | |
| 21 | 22 | "bootstrap": "5.3.3", | |
| 22 | 23 | "bootstrap-icons": "1.11.3", | |
| 23 | 24 | "browser-fs-access": "0.35.0", | |
| 24 | 25 | "caniuse-lite": "1.0.30001603", | |
| 26 | + "chart.js": "^4.5.1", | ||
| 27 | + "chartjs-plugin-autocolors": "0.3.1", | ||
| 28 | + "chartjs-plugin-zoom": "2.2.0", | ||
| 25 | 29 | "d3": "7.9.0", | |
| 26 | 30 | "file-saver": "2.0.5", | |
| 27 | 31 | "highcharts": "11.4.0", | |
@@ -532,6 +532,20 @@ __metadata: | |||
| 532 | 532 | languageName: node | |
| 533 | 533 | linkType: hard | |
| 534 | 534 | ||
| 535 | + "@kurkle/color@npm:0.3.1": | ||
| 536 | + version: 0.3.1 | ||
| 537 | + resolution: "@kurkle/color@npm:0.3.1" | ||
| 538 | + checksum: e6be5c081bf5acfd4a1803dcd5a0733caf450e73148d5f02dc536b1ff0c60c959c23472a26c9c3c6c78ada04fb6a53c9202db9b2de8ea56f6eeec381f9cc3a1a | ||
| 539 | + languageName: node | ||
| 540 | + linkType: hard | ||
| 541 | + | ||
| 542 | + "@kurkle/color@npm:^0.3.0": | ||
| 543 | + version: 0.3.4 | ||
| 544 | + resolution: "@kurkle/color@npm:0.3.4" | ||
| 545 | + checksum: b95c6abe0241ba1745b3c84de3b464296b95ce577110b54f46e6c6dcc9a0966491533df43812bd6c66f92cf818e385d1390b280cd5851d4afb52fc37f8a6c0b9 | ||
| 546 | + languageName: node | ||
| 547 | + linkType: hard | ||
| 548 | + | ||
| 535 | 549 | "@lezer/common@npm:^0.15.0, @lezer/common@npm:^0.15.7": | |
| 536 | 550 | version: 0.15.12 | |
| 537 | 551 | resolution: "@lezer/common@npm:0.15.12" | |
@@ -1944,6 +1958,13 @@ __metadata: | |||
| 1944 | 1958 | languageName: node | |
| 1945 | 1959 | linkType: hard | |
| 1946 | 1960 | ||
| 1961 | + "@types/hammerjs@npm:^2.0.45": | ||
| 1962 | + version: 2.0.46 | ||
| 1963 | + resolution: "@types/hammerjs@npm:2.0.46" | ||
| 1964 | + checksum: caba6ec788d19905c71092670b58514b3d1f5eee5382bf9205e8df688d51e7857b7994e2dd7aed57fac8977bdf0e456d67fbaf23440a4385b8ce25fe2af1ec39 | ||
| 1965 | + languageName: node | ||
| 1966 | + linkType: hard | ||
| 1967 | + | ||
| 1947 | 1968 | "@types/istanbul-lib-coverage@npm:^2.0.1": | |
| 1948 | 1969 | version: 2.0.4 | |
| 1949 | 1970 | resolution: "@types/istanbul-lib-coverage@npm:2.0.4" | |
@@ -2728,6 +2749,37 @@ browserlist@latest: | |||
| 2728 | 2749 | languageName: node | |
| 2729 | 2750 | linkType: hard | |
| 2730 | 2751 | ||
| 2752 | + "chart.js@npm:^4.5.1": | ||
| 2753 | + version: 4.5.1 | ||
| 2754 | + resolution: "chart.js@npm:4.5.1" | ||
| 2755 | + dependencies: | ||
| 2756 | + "@kurkle/color": ^0.3.0 | ||
| 2757 | + checksum: 34b35b373642994b2adac197e91363625930530e29fc1baa6dbb411b5e1295f9f6572922003a0224a21a3019aec916567c1ed00c33b1373081f189fc188e5a7b | ||
| 2758 | + languageName: node | ||
| 2759 | + linkType: hard | ||
| 2760 | + | ||
| 2761 | + "chartjs-plugin-autocolors@npm:0.3.1": | ||
| 2762 | + version: 0.3.1 | ||
| 2763 | + resolution: "chartjs-plugin-autocolors@npm:0.3.1" | ||
| 2764 | + peerDependencies: | ||
| 2765 | + "@kurkle/color": ^0.3.1 | ||
| 2766 | + chart.js: ">=2" | ||
| 2767 | + checksum: de4f87b5bb3e042aa1d3de3886425bbd2340a55ca455b645569d0def602079833182ef214e205ff4466fb5ab1e708761cf37eb51ab3cd622284242c05ed94128 | ||
| 2768 | + languageName: node | ||
| 2769 | + linkType: hard | ||
| 2770 | + | ||
| 2771 | + "chartjs-plugin-zoom@npm:2.2.0": | ||
| 2772 | + version: 2.2.0 | ||
| 2773 | + resolution: "chartjs-plugin-zoom@npm:2.2.0" | ||
| 2774 | + dependencies: | ||
| 2775 | + "@types/hammerjs": ^2.0.45 | ||
| 2776 | + hammerjs: ^2.0.8 | ||
| 2777 | + peerDependencies: | ||
| 2778 | + chart.js: ">=3.2.0" | ||
| 2779 | + checksum: a540e3834082eeb4dedb5ec6ca381f94d7e101075c19a7b65f2a4cd2d12685b3a416e718c9cf7145799802874fb397f69b71a955dfc56b035946cde4d1eb6c8e | ||
| 2780 | + languageName: node | ||
| 2781 | + linkType: hard | ||
| 2782 | + | ||
| 2731 | 2783 | "chokidar@npm:>=3.0.0 <4.0.0": | |
| 2732 | 2784 | version: 3.5.3 | |
| 2733 | 2785 | resolution: "chokidar@npm:3.5.3" | |
@@ -4616,6 +4668,13 @@ browserlist@latest: | |||
| 4616 | 4668 | languageName: node | |
| 4617 | 4669 | linkType: hard | |
| 4618 | 4670 | ||
| 4671 | + "hammerjs@npm:^2.0.8": | ||
| 4672 | + version: 2.0.8 | ||
| 4673 | + resolution: "hammerjs@npm:2.0.8" | ||
| 4674 | + checksum: b092da7d1565a165d7edb53ef0ce212837a8b11f897aa3cf81a7818b66686b0ab3f4747fbce8fc8a41d1376594639ce3a054b0fd4889ca8b5b136a29ca500e27 | ||
| 4675 | + languageName: node | ||
| 4676 | + linkType: hard | ||
| 4677 | + | ||
| 4619 | 4678 | "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": | |
| 4620 | 4679 | version: 1.0.2 | |
| 4621 | 4680 | resolution: "has-bigints@npm:1.0.2" | |
@@ -7030,6 +7089,7 @@ browserlist@latest: | |||
| 7030 | 7089 | "@fullcalendar/luxon3": 6.1.11 | |
| 7031 | 7090 | "@fullcalendar/timegrid": 6.1.11 | |
| 7032 | 7091 | "@fullcalendar/vue3": 6.1.11 | |
| 7092 | + "@kurkle/color": 0.3.1 | ||
| 7033 | 7093 | "@parcel/optimizer-data-url": 2.12.0 | |
| 7034 | 7094 | "@parcel/transformer-inline-string": 2.12.0 | |
| 7035 | 7095 | "@parcel/transformer-sass": 2.12.0 | |
@@ -7044,6 +7104,9 @@ browserlist@latest: | |||
| 7044 | 7104 | browserlist: latest | |
| 7045 | 7105 | c8: 9.1.0 | |
| 7046 | 7106 | caniuse-lite: 1.0.30001603 | |
| 7107 | + chart.js: ^4.5.1 | ||
| 7108 | + chartjs-plugin-autocolors: 0.3.1 | ||
| 7109 | + chartjs-plugin-zoom: 2.2.0 | ||
| 7047 | 7110 | d3: 7.9.0 | |
| 7048 | 7111 | eslint: 8.57.0 | |
| 7049 | 7112 | eslint-config-standard: 17.1.0 | |
0 commit comments