aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--web_src/js/webcomponents/polyfill.js17
-rw-r--r--web_src/js/webcomponents/webcomponents.js2
2 files changed, 19 insertions, 0 deletions
diff --git a/web_src/js/webcomponents/polyfill.js b/web_src/js/webcomponents/polyfill.js
new file mode 100644
index 0000000000..88c7276881
--- /dev/null
+++ b/web_src/js/webcomponents/polyfill.js
@@ -0,0 +1,17 @@
+try {
+ // some browsers like PaleMoon don't have full support for Intl.NumberFormat, so do the minimum polyfill to support "relative-time-element"
+ // https://repo.palemoon.org/MoonchildProductions/UXP/issues/2289
+ new Intl.NumberFormat('en', {style: 'unit', unit: 'minute'}).format(1);
+} catch {
+ const intlNumberFormat = Intl.NumberFormat;
+ Intl.NumberFormat = function(locales, options) {
+ if (options.style === 'unit') {
+ return {
+ format(value) {
+ return ` ${value} ${options.unit}`;
+ }
+ };
+ }
+ return intlNumberFormat(locales, options);
+ };
+}
diff --git a/web_src/js/webcomponents/webcomponents.js b/web_src/js/webcomponents/webcomponents.js
index 123607282b..b17a4a832f 100644
--- a/web_src/js/webcomponents/webcomponents.js
+++ b/web_src/js/webcomponents/webcomponents.js
@@ -1,3 +1,5 @@
import '@webcomponents/custom-elements'; // polyfill for some browsers like Pale Moon
+import './polyfill.js';
+
import '@github/relative-time-element';
import './GiteaOriginUrl.js';