diff --git a/ietf/static/css/datepicker.scss b/ietf/static/css/datepicker.scss
new file mode 100644
index 000000000..c8ac3fe20
--- /dev/null
+++ b/ietf/static/css/datepicker.scss
@@ -0,0 +1 @@
+@import "~/node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css";
\ No newline at end of file
diff --git a/ietf/static/js/datepicker.js b/ietf/static/js/datepicker.js
new file mode 100644
index 000000000..eae253010
--- /dev/null
+++ b/ietf/static/js/datepicker.js
@@ -0,0 +1 @@
+import "bootstrap-datepicker";
\ No newline at end of file
diff --git a/ietf/static/js/highcharts-exporting.js b/ietf/static/js/highcharts-exporting.js
new file mode 100644
index 000000000..1cc0d8600
--- /dev/null
+++ b/ietf/static/js/highcharts-exporting.js
@@ -0,0 +1 @@
+import "~/node_modules/highcharts/modules/exporting";
\ No newline at end of file
diff --git a/ietf/static/js/highcharts-highcharts.js b/ietf/static/js/highcharts-highcharts.js
new file mode 100644
index 000000000..160fc45b6
--- /dev/null
+++ b/ietf/static/js/highcharts-highcharts.js
@@ -0,0 +1,3 @@
+import * as Highcharts from "~/node_modules/highcharts";
+
+window.Highcharts = Highcharts;
\ No newline at end of file
diff --git a/ietf/static/js/highcharts-highstock.js b/ietf/static/js/highcharts-highstock.js
new file mode 100644
index 000000000..ff140524f
--- /dev/null
+++ b/ietf/static/js/highcharts-highstock.js
@@ -0,0 +1,3 @@
+import * as Highcharts from "~/node_modules/highcharts/highstock";
+
+window.Highcharts = Highcharts;
\ No newline at end of file
diff --git a/ietf/static/js/highcharts-offline-exporting.js b/ietf/static/js/highcharts-offline-exporting.js
new file mode 100644
index 000000000..f0cd077b6
--- /dev/null
+++ b/ietf/static/js/highcharts-offline-exporting.js
@@ -0,0 +1 @@
+import "~/node_modules/highcharts/modules/offline-exporting";
\ No newline at end of file
diff --git a/ietf/static/js/stats.js b/ietf/static/js/stats.js
new file mode 100644
index 000000000..931e9ebf8
--- /dev/null
+++ b/ietf/static/js/stats.js
@@ -0,0 +1,60 @@
+$(document).ready(function () {
+ if (window.chartConf) {
+ window.chartConf.credits = {
+ enabled: false
+ };
+ window.chartConf.exporting = {
+ fallbackToExportServer: false
+ };
+
+ if (!window.chartConf.legend)
+ window.chartConf.legend = {
+ enabled: false
+ };
+
+ var chart = Highcharts.chart('chart', window.chartConf);
+ }
+
+ if (window.pieChartConf) {
+ window.pieChartConf.credits = {
+ enabled: false
+ };
+ var pieChart = Highcharts.chart('pie-chart', window.pieChartConf);
+ }
+ /*
+ $(".popover-details").each(function () {
+ var stdNameRegExp = new RegExp("^(rfc|bcp|fyi|std)[0-9]+$", 'i');
+ var draftRegExp = new RegExp("^draft-", 'i');
+
+ var html = [];
+ $.each(($(this).data("elements") || "").split("|"), function (i, element) {
+ if (!$.trim(element))
+ return;
+
+ if (draftRegExp.test(element) || stdNameRegExp.test(element)) {
+ var displayName = element;
+
+ if (stdNameRegExp.test(element))
+ displayName = element.slice(0, 3).toUpperCase() + " " + element.slice(3);
+
+ html.push('
');
+ }
+ else {
+ html.push('' + element + '
');
+ }
+ });
+
+ if ($(this).data("sliced"))
+ html.push('…
');
+
+ $(this).popover({
+ trigger: "focus",
+ template: '',
+ content: html.join(""),
+ placement: "top",
+ html: true
+ }).on("click", function (e) {
+ e.preventDefault();
+ });
+ });*/
+});
diff --git a/ietf/templates/doc/review/complete_review.html b/ietf/templates/doc/review/complete_review.html
index f62557275..318abdee9 100644
--- a/ietf/templates/doc/review/complete_review.html
+++ b/ietf/templates/doc/review/complete_review.html
@@ -5,7 +5,7 @@
{% block title %}{% if revising_review %}Revise{% elif assignment %}Complete{% else %}Submit unsolicited{% endif %} review of {{ doc.name }}{% endblock %}
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -110,7 +110,7 @@
{% endblock %}
{% block js %}
-
+
+
{% endblock %}
diff --git a/ietf/templates/doc/review/request_review.html b/ietf/templates/doc/review/request_review.html
index 68e444e3c..23fc6a42e 100644
--- a/ietf/templates/doc/review/request_review.html
+++ b/ietf/templates/doc/review/request_review.html
@@ -4,7 +4,7 @@
{% block pagehead %}
{{ form.media.css }}
-
+
{% endblock %}
{% block title %}Request review of {{ doc.name }} {% endblock %}
@@ -46,6 +46,6 @@
{% endblock %}
{% block js %}
-
+
{{ form.media.js }}
{% endblock %}
diff --git a/ietf/templates/doc/stats/highstock.html b/ietf/templates/doc/stats/highstock.html
index dc33a739c..07341c1f9 100644
--- a/ietf/templates/doc/stats/highstock.html
+++ b/ietf/templates/doc/stats/highstock.html
@@ -5,9 +5,9 @@
{% load ietf_filters %}
{% block js %}
-
-
-
+
+
+
+
+
{% endblock %}
diff --git a/ietf/templates/group/change_reviewer_settings.html b/ietf/templates/group/change_reviewer_settings.html
index 3777449c6..08456b6ef 100644
--- a/ietf/templates/group/change_reviewer_settings.html
+++ b/ietf/templates/group/change_reviewer_settings.html
@@ -5,7 +5,7 @@
{% load ietf_filters static django_bootstrap5 %}
{% block pagehead %}
-
+
{% endblock %}
{% block title %}Change reviewer settings for {{ group.acronym }} for {{ reviewer_email }}{% endblock %}
@@ -128,5 +128,5 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/group/edit_milestones.html b/ietf/templates/group/edit_milestones.html
index 2fc34ed15..215608ffe 100644
--- a/ietf/templates/group/edit_milestones.html
+++ b/ietf/templates/group/edit_milestones.html
@@ -7,7 +7,7 @@
{% block pagehead %}
{{ all_forms|merge_media:'css' }}
-
+
{% endblock %}
{% block title %}{{ title }}{% endblock %}
@@ -122,7 +122,7 @@
{% block js %}
{{ all_forms|merge_media:'js' }}
-
+
{% if not group.uses_milestone_dates %}
{% endif %}
diff --git a/ietf/templates/ipr/details_edit.html b/ietf/templates/ipr/details_edit.html
index 75825345c..7eff90100 100644
--- a/ietf/templates/ipr/details_edit.html
+++ b/ietf/templates/ipr/details_edit.html
@@ -264,6 +264,6 @@
{% block js %}
{{ form.media.js }}
-
+
{% endblock %}
diff --git a/ietf/templates/ipr/email.html b/ietf/templates/ipr/email.html
index 293f04b42..a1f8ee8e7 100644
--- a/ietf/templates/ipr/email.html
+++ b/ietf/templates/ipr/email.html
@@ -7,7 +7,7 @@
{% block title %}Email submitter of {{ ipr.title }}{% endblock %}
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -29,5 +29,5 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/liaisons/edit.html b/ietf/templates/liaisons/edit.html
index 33618d984..5ed36f8d8 100644
--- a/ietf/templates/liaisons/edit.html
+++ b/ietf/templates/liaisons/edit.html
@@ -8,7 +8,7 @@
{% block title %}{% if liaison %}Edit liaison: {{ liaison }}{% else %}Send Liaison Statement{% endif %}{% endblock %}
{% block pagehead %}
-
+
{{ form.media.css }} {# n.b., liaisons.js relies on select2 CSS being loaded by this #}
{% endblock %}
@@ -71,7 +71,7 @@
{% endblock %}
{% block js %}
-
+
{{ form.media.js }} {# n.b., liaisons.js relies on select2.js being loaded by this #}
{% endblock %}
diff --git a/ietf/templates/liaisons/liaison_base.html b/ietf/templates/liaisons/liaison_base.html
index 8473820f5..f1799d8c6 100644
--- a/ietf/templates/liaisons/liaison_base.html
+++ b/ietf/templates/liaisons/liaison_base.html
@@ -5,7 +5,7 @@
{% load static %}
{% block pagehead %}
-
+
{% endblock %}
@@ -54,6 +54,6 @@
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/meeting/interim_request.html b/ietf/templates/meeting/interim_request.html
index ed3975236..b277680f0 100644
--- a/ietf/templates/meeting/interim_request.html
+++ b/ietf/templates/meeting/interim_request.html
@@ -8,7 +8,7 @@
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -166,7 +166,7 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/meeting/interim_request_cancel.html b/ietf/templates/meeting/interim_request_cancel.html
index 8860e7807..349c35a83 100644
--- a/ietf/templates/meeting/interim_request_cancel.html
+++ b/ietf/templates/meeting/interim_request_cancel.html
@@ -8,7 +8,7 @@
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -35,7 +35,7 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/meeting/interim_request_edit.html b/ietf/templates/meeting/interim_request_edit.html
index 8f04d6fe5..5ef5cc1b3 100644
--- a/ietf/templates/meeting/interim_request_edit.html
+++ b/ietf/templates/meeting/interim_request_edit.html
@@ -8,7 +8,7 @@
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -113,7 +113,7 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/templates/nomcom/edit_nomcom.html b/ietf/templates/nomcom/edit_nomcom.html
index 7d3d96107..d4ed239f0 100644
--- a/ietf/templates/nomcom/edit_nomcom.html
+++ b/ietf/templates/nomcom/edit_nomcom.html
@@ -5,7 +5,7 @@
{% load django_bootstrap5 %}
{% block pagehead %}
-
+
{% endblock %}
{% block subtitle %} - Settings{% endblock %}
@@ -36,7 +36,7 @@
{% endblock %}
{% block js %}
-
+
-
+
+ {% if persons|length == 1 and person.has_drafts %}
+
+
-
{% endif %}
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/ietf/templates/release/stats.html b/ietf/templates/release/stats.html
index 3242743c0..2fbf52460 100644
--- a/ietf/templates/release/stats.html
+++ b/ietf/templates/release/stats.html
@@ -121,9 +121,9 @@
{% endblock %}
{% block js %}
-
-
-
+
+
+
-
-
+
+
+
-{% endblock %}
+{% endblock %}
\ No newline at end of file
diff --git a/ietf/templates/stats/meeting_stats.html b/ietf/templates/stats/meeting_stats.html
index 21c334b82..af0afc108 100644
--- a/ietf/templates/stats/meeting_stats.html
+++ b/ietf/templates/stats/meeting_stats.html
@@ -7,7 +7,7 @@
{% block title %}{{ stats_title }}{% endblock %}
{% block pagehead %}
-
+
{% endblock %}
@@ -40,10 +40,10 @@
{% endblock %}
{% block js %}
-
-
+
+
-
+
{% endblock %}
diff --git a/ietf/templates/stats/review_stats.html b/ietf/templates/stats/review_stats.html
index 162dd7329..23e9cf6d3 100644
--- a/ietf/templates/stats/review_stats.html
+++ b/ietf/templates/stats/review_stats.html
@@ -6,7 +6,7 @@
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -253,7 +253,7 @@
{% block js %}
-
+
{% if stats_type == "time" %}
diff --git a/ietf/templates/submit/email.html b/ietf/templates/submit/email.html
index e7755f2c5..0e3e7d8c8 100644
--- a/ietf/templates/submit/email.html
+++ b/ietf/templates/submit/email.html
@@ -7,7 +7,7 @@
{% block title %}Email related to{{ submission.name }}{% endblock %}
{% block pagehead %}
-
+
{% endblock %}
{% block content %}
@@ -28,5 +28,5 @@
{% endblock %}
{% block js %}
-
+
{% endblock %}
diff --git a/ietf/utils/fields.py b/ietf/utils/fields.py
index 068b950e7..04cd7fea9 100644
--- a/ietf/utils/fields.py
+++ b/ietf/utils/fields.py
@@ -68,8 +68,8 @@ def yyyymmdd_to_strftime_format(fmt):
class DatepickerMedia:
"""Media definitions needed for Datepicker widgets"""
- css = dict(all=('bootstrap-datepicker/css/bootstrap-datepicker3.min.css',))
- js = ('bootstrap-datepicker/js/bootstrap-datepicker.min.js',)
+ css = dict(all=('ietf/css/datepicker.css',))
+ js = ('ietf/js/datepicker.js',)
class DatepickerDateInput(forms.DateInput):
diff --git a/package-lock.json b/package-lock.json
index b37605f49..93954681d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,8 +7,10 @@
"dependencies": {
"@popperjs/core": "^2.10.2",
"bootstrap": "^5.1.3",
+ "bootstrap-datepicker": "^1.9.0",
"bootstrap-icons": "^1.7.0",
"d3": "^3.5.17",
+ "highcharts": "^9.3.1",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
@@ -1761,9 +1763,9 @@
}
},
"node_modules/@parcel/watcher": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.2.tgz",
- "integrity": "sha512-WGJY55/mTAGse2C9VVi2oo+p05oJ0kiSHmOjV33+ywgKgUkUh6B/qFQ5kBO/9mH686qqtV3k2zH1QNm+XX4+lw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.3.tgz",
+ "integrity": "sha512-PHh5PArr3nYGYVj9z/NSfDmmKEBNrg2bzoFgxzjTRBBxPUKx039x3HF6VGLFIfrghjJxcYn/IeSpdVwfob7KFA==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -1836,9 +1838,9 @@
}
},
"node_modules/@types/node": {
- "version": "16.11.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz",
- "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==",
+ "version": "16.11.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
+ "integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"node_modules/@types/parse-json": {
@@ -2261,6 +2263,14 @@
"@popperjs/core": "^2.10.2"
}
},
+ "node_modules/bootstrap-datepicker": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz",
+ "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==",
+ "dependencies": {
+ "jquery": ">=1.7.1 <4.0.0"
+ }
+ },
"node_modules/bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
@@ -3441,9 +3451,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.3.904",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz",
- "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz",
+ "integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==",
"dev": true
},
"node_modules/elliptic": {
@@ -4562,6 +4572,11 @@
"minimalistic-assert": "^1.0.1"
}
},
+ "node_modules/highcharts": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.1.tgz",
+ "integrity": "sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw=="
+ },
"node_modules/highlight.js": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
@@ -6309,14 +6324,14 @@
"dev": true
},
"node_modules/postcss": {
- "version": "8.3.11",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
- "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.0.tgz",
+ "integrity": "sha512-BRMNx3Wy7UI89jN8H4ZVS5lQMPM2OSMkOkvDCSjwXa7PWTs24k7Lm55NXLbMbs070LvraXaxN5l1npSOS6wMVw==",
"dev": true,
"dependencies": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
- "source-map-js": "^0.6.2"
+ "source-map-js": "^1.0.1"
},
"engines": {
"node": "^10 || ^12 || >=14"
@@ -7897,9 +7912,9 @@
}
},
"node_modules/source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
+ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
@@ -8778,9 +8793,9 @@
"dev": true
},
"node_modules/ws": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
- "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
+ "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"dev": true,
"engines": {
"node": ">=8.3.0"
@@ -10041,9 +10056,9 @@
}
},
"@parcel/watcher": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.2.tgz",
- "integrity": "sha512-WGJY55/mTAGse2C9VVi2oo+p05oJ0kiSHmOjV33+ywgKgUkUh6B/qFQ5kBO/9mH686qqtV3k2zH1QNm+XX4+lw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.3.tgz",
+ "integrity": "sha512-PHh5PArr3nYGYVj9z/NSfDmmKEBNrg2bzoFgxzjTRBBxPUKx039x3HF6VGLFIfrghjJxcYn/IeSpdVwfob7KFA==",
"dev": true,
"requires": {
"node-addon-api": "^3.2.1",
@@ -10091,9 +10106,9 @@
}
},
"@types/node": {
- "version": "16.11.9",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.9.tgz",
- "integrity": "sha512-MKmdASMf3LtPzwLyRrFjtFFZ48cMf8jmX5VRYrDQiJa8Ybu5VAmkqBWqKU8fdCwD8ysw4mQ9nrEHvzg6gunR7A==",
+ "version": "16.11.10",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.10.tgz",
+ "integrity": "sha512-3aRnHa1KlOEEhJ6+CvyHKK5vE9BcLGjtUpwvqYLRvYNQKMfabu3BwfJaA/SLW8dxe28LsNDjtHwePTuzn3gmOA==",
"dev": true
},
"@types/parse-json": {
@@ -10420,6 +10435,14 @@
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"requires": {}
},
+ "bootstrap-datepicker": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz",
+ "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==",
+ "requires": {
+ "jquery": ">=1.7.1 <4.0.0"
+ }
+ },
"bootstrap-icons": {
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/bootstrap-icons/-/bootstrap-icons-1.7.1.tgz",
@@ -11372,9 +11395,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.904",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.904.tgz",
- "integrity": "sha512-x5uZWXcVNYkTh4JubD7KSC1VMKz0vZwJUqVwY3ihsW0bst1BXDe494Uqbg3Y0fDGVjJqA8vEeGuvO5foyH2+qw==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.0.tgz",
+ "integrity": "sha512-+oXCt6SaIu8EmFTPx8wNGSB0tHQ5biDscnlf6Uxuz17e9CjzMRtGk9B8705aMPnj0iWr3iC74WuIkngCsLElmA==",
"dev": true
},
"elliptic": {
@@ -12231,6 +12254,11 @@
"minimalistic-assert": "^1.0.1"
}
},
+ "highcharts": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/highcharts/-/highcharts-9.3.1.tgz",
+ "integrity": "sha512-T5BjvY2CDtqlKRbid1Jd22psBp8tV9+7fm+x7h+EZuXF0OVDLR5128sRuC6WCWVss4cTVzS6PKnlnXKfYskIhw=="
+ },
"highlight.js": {
"version": "10.4.1",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz",
@@ -13565,14 +13593,14 @@
"dev": true
},
"postcss": {
- "version": "8.3.11",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.11.tgz",
- "integrity": "sha512-hCmlUAIlUiav8Xdqw3Io4LcpA1DOt7h3LSTAC4G6JGHFFaWzI6qvFt9oilvl8BmkbBRX1IhM90ZAmpk68zccQA==",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.0.tgz",
+ "integrity": "sha512-BRMNx3Wy7UI89jN8H4ZVS5lQMPM2OSMkOkvDCSjwXa7PWTs24k7Lm55NXLbMbs070LvraXaxN5l1npSOS6wMVw==",
"dev": true,
"requires": {
"nanoid": "^3.1.30",
"picocolors": "^1.0.0",
- "source-map-js": "^0.6.2"
+ "source-map-js": "^1.0.1"
}
},
"postcss-calc": {
@@ -14735,9 +14763,9 @@
"dev": true
},
"source-map-js": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz",
- "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz",
+ "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==",
"dev": true
},
"source-map-support": {
@@ -15446,9 +15474,9 @@
"dev": true
},
"ws": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
- "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
+ "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"dev": true,
"requires": {}
},
diff --git a/package.json b/package.json
index 172fc51be..bb97745e8 100644
--- a/package.json
+++ b/package.json
@@ -2,8 +2,10 @@
"dependencies": {
"@popperjs/core": "^2.10.2",
"bootstrap": "^5.1.3",
+ "bootstrap-datepicker": "^1.9.0",
"bootstrap-icons": "^1.7.0",
"d3": "^3.5.17",
+ "highcharts": "^9.3.1",
"jquery": "^3.6.0",
"js-cookie": "^3.0.1",
"list.js": "^2.3.1",
@@ -21,6 +23,11 @@
"ietf/static/js/list.js",
"ietf/static/js/document_timeline.js",
"ietf/static/js/d3.js",
+ "ietf/static/js/datepicker.js",
+ "ietf/static/js/highcharts-highcharts.js",
+ "ietf/static/js/highcharts-highstock.js",
+ "ietf/static/js/highcharts-exporting.js",
+ "ietf/static/js/highcharts-offline-exporting.js",
"ietf/static/js/moment.js",
"ietf/static/js/agenda_filter.js",
"ietf/static/js/agenda_materials.js",
@@ -30,9 +37,11 @@
"ietf/static/js/room_params.js",
"ietf/static/js/week-view.js",
"ietf/static/js/doc-search.js",
+ "ietf/static/js/stats.js",
"ietf/static/js/moment-timezone-with-data-10-year-range.js",
"ietf/static/css/ietf.scss",
"ietf/static/css/list.scss",
+ "ietf/static/css/datepicker.scss",
"ietf/static/images/ietflogo-small-transparent.png",
"ietf/static/images/ietflogo.png",
"ietf/static/images/apple-touch-icon.png",