ixbrl-viewer 1.4.59__py3-none-any.whl → 1.4.61__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ixbrl-viewer might be problematic. Click here for more details.

@@ -12,18 +12,23 @@ import { utr } from "./utr";
12
12
  function measureLabel(report, measure) {
13
13
  const qname = report.qname(measure);
14
14
  if (qname.namespace === NAMESPACE_ISO4217) {
15
- // Prefer a name from our own i18n resources
15
+ // Prefer a name from our own i18n resources for currencies
16
16
  const keyi18n = `currencies:unitFormat${qname.localname}`;
17
17
  if (i18next.exists(keyi18n)) {
18
18
  return i18next.t(keyi18n);
19
19
  }
20
- // Fall back on symbol from UTR ...
21
- const utrEntry = utr.get(qname);
22
- if (utrEntry !== undefined) {
20
+ }
21
+ // Pick symbol from UTR ...
22
+ const utrEntry = utr.get(qname);
23
+ if (utrEntry !== undefined) {
24
+ if (utrEntry.symbol !== undefined) {
23
25
  // ... but disambiguate "$" symbol
24
26
  return utrEntry.symbol == '$' ? `${qname.localname} $` : utrEntry.symbol;
25
27
  }
28
+ // Fall back to name
29
+ return utrEntry.name;
26
30
  }
31
+ // Otherwise the measure is not in the UTR so fallback to unitId
27
32
  if (measure.includes(':')) {
28
33
  return measure.split(':')[1];
29
34
  }
@@ -10,6 +10,8 @@ var testReportData = {
10
10
  "eg": "http://www.example.com",
11
11
  "iso4217": NAMESPACE_ISO4217,
12
12
  "e": "http://example.com/entity",
13
+ "utr": "http://www.xbrl.org/2009/utr",
14
+ "xbrli": "http://www.xbrl.org/2003/instance",
13
15
  },
14
16
  "facts": {},
15
17
  };
@@ -71,10 +73,40 @@ describe("Unit label", () => {
71
73
  expect(unit.label()).toEqual('SGD $');
72
74
  });
73
75
 
76
+ test("Unit label - UTR currency without symbol falls back to name", () => {
77
+ var unit = new Unit(testReport(), 'iso4217:YER');
78
+ expect(unit.label()).toEqual('Yemeni rial');
79
+ });
80
+
81
+ test("Unit label - UTR currency without symbol falls back to name", () => {
82
+ var unit = new Unit(testReport(), 'iso4217:XAU');
83
+ expect(unit.label()).toEqual('Gold');
84
+ });
85
+
74
86
  test("Unit label - unknown", () => {
75
87
  var unit = new Unit(testReport(), 'iso4217:ZZZZ');
76
88
  expect(unit.label()).toEqual('ZZZZ');
77
89
  });
90
+
91
+ test("Unit label - UTR non-currency symbol used", () => {
92
+ var unit = new Unit(testReport(), 'utr:m3');
93
+ expect(unit.label()).toEqual('m³');
94
+ });
95
+
96
+ test("Unit label - UTR non-currency symbol used", () => {
97
+ var unit = new Unit(testReport(), 'utr:sqkm');
98
+ expect(unit.label()).toEqual('km²');
99
+ });
100
+
101
+ test("Unit label - UTR non-currency symbol used", () => {
102
+ var unit = new Unit(testReport(), 'utr:F');
103
+ expect(unit.label()).toEqual('°F');
104
+ });
105
+
106
+ test("Unit label - UTR non-currency without symbol falls back to name", () => {
107
+ var unit = new Unit(testReport(), 'xbrli:shares');
108
+ expect(unit.label()).toEqual('Share');
109
+ });
78
110
  });
79
111
 
80
112
  describe("Unit monetary", () => {
@@ -20,7 +20,7 @@ class UTR {
20
20
  if (u === undefined) {
21
21
  return undefined;
22
22
  }
23
- return new UTREntry(u.s ?? u.n, u.n)
23
+ return new UTREntry(u.s, u.n)
24
24
  }
25
25
  }
26
26
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ixbrl-viewer
3
- Version: 1.4.59
3
+ Version: 1.4.61
4
4
  Summary: The Arelle iXBRL Viewer allows iXBRL reports to be viewed interactively in a web browser.
5
5
  Author-email: "arelle.org" <support@arelle.org>
6
6
  License: Apache-2.0
@@ -33,10 +33,10 @@ Requires-Dist: lxml<6,>=4
33
33
  Provides-Extra: arelle
34
34
  Requires-Dist: arelle_release==2.*; extra == "arelle"
35
35
  Provides-Extra: dev
36
- Requires-Dist: flake8==7.1.1; extra == "dev"
36
+ Requires-Dist: flake8==7.1.2; extra == "dev"
37
37
  Requires-Dist: lxml-stubs==0.5.1; extra == "dev"
38
38
  Requires-Dist: mypy==1.15.0; extra == "dev"
39
- Requires-Dist: pytest==8.3.4; extra == "dev"
39
+ Requires-Dist: pytest==8.3.5; extra == "dev"
40
40
  Requires-Dist: typing-extensions==4.12.2; extra == "dev"
41
41
 
42
42
  # Arelle iXBRL Viewer
@@ -1,5 +1,5 @@
1
1
  iXBRLViewerPlugin/__init__.py,sha256=263DtPKBXeTomSI-4SeE7gTX0ak16GiIB9DFOoxBK3k,16839
2
- iXBRLViewerPlugin/_version.py,sha256=iu_Sr1yxbEuVTy0EGpxvXuWLqnl7HW_abXxqWvwDcPQ,413
2
+ iXBRLViewerPlugin/_version.py,sha256=AsmvptAL_i8zdV2zLbj8rRpxpwDSeowgaPZWIWn2vlo,513
3
3
  iXBRLViewerPlugin/constants.py,sha256=DMyEKzoJZPN36vINiNF9wiP7PPofQg0ZLF0H2CP-ns4,3866
4
4
  iXBRLViewerPlugin/featureConfig.py,sha256=551aLjiGAkoxsgFDMBJT8s3nVaF787kgbRjFumTTsBE,255
5
5
  iXBRLViewerPlugin/iXBRLViewer.py,sha256=7IqbLuapCla5_c-lSM4KiKgSezbioKulJ5pa4ZEPejs,30643
@@ -12,9 +12,9 @@ iXBRLViewerPlugin/viewer/version.js,sha256=7b5si8UmaS7QqALQIP-wJ0I8onKFox8VyaAiU
12
12
  iXBRLViewerPlugin/viewer/webpack.common.js,sha256=hpXufjShXAESQh8Ds7ViJ_tbr8XSb7EdqQLRvyu_mQg,1691
13
13
  iXBRLViewerPlugin/viewer/webpack.dev.js,sha256=R9AwY_TBrg9otvXpDxT1UsGg5eMqi4aXW7C7EIsHzZk,551
14
14
  iXBRLViewerPlugin/viewer/webpack.prod.js,sha256=vfLowWC1EOty0zbq9P-usGaJ3w-JoERpJrYaE9MfoSE,499
15
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=_vg1PLH0sFj-23Im3fzFk9rCc7evLz9bYUL0DDYZvQM,891208
16
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt,sha256=Ye_YmUQH4CCOb6Ksrap5lsJC7aZuNZbQnvLs7njZPc0,1832
17
- iXBRLViewerPlugin/viewer/src/data/utr.json,sha256=HWeZDLQuFunB7kmrP4evfhjMWIVgN8sc89U5Yogy5iA,13322
15
+ iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=nLEJUKzPO5xDVmOg2dBfbUVW09e5U3Rj_t8mezUfWvk,893858
16
+ iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt,sha256=jlPihgbpUHlsiIZWnbvMWuK6B3JBOx1STSa-gvwTbkQ,1832
17
+ iXBRLViewerPlugin/viewer/src/data/utr.json,sha256=32ZuovUvTOiCiXnxQH1fyOlgLEbah8DhUInqxZNIjFc,20159
18
18
  iXBRLViewerPlugin/viewer/src/html/fact-details.html,sha256=r3cPuOzcosgBkYl0jfmRUGjYnLgv6Eu0IeTMmUHY4Ak,2863
19
19
  iXBRLViewerPlugin/viewer/src/html/footer-logo.html,sha256=8c91oB4B1JhAIhTvdjjhvq6lJB6WNpBWw-lrsP7IBDw,233
20
20
  iXBRLViewerPlugin/viewer/src/html/footnote-details.html,sha256=EjP3KHyUgQcbiYpwXGClBb2OXiw86GKlDucTSKQbHd4,311
@@ -136,11 +136,11 @@ iXBRLViewerPlugin/viewer/src/js/taxonomynamer.test.js,sha256=ZH_w5BtYEfzv43a8oCD
136
136
  iXBRLViewerPlugin/viewer/src/js/test-utils.js,sha256=MXhrubSf0PmSRsrDrqHftPgTrK5PioroXN-FlU4HcN8,1680
137
137
  iXBRLViewerPlugin/viewer/src/js/textblockviewer.js,sha256=lCAZeN_wrSwmYie_rwdeIFCIjiOSblT0K9Vslqwktc8,1874
138
138
  iXBRLViewerPlugin/viewer/src/js/theme.js,sha256=dbh2lL1OQdTpcKRy9cLGyxcmjTejQMOn19xMITslNcg,1315
139
- iXBRLViewerPlugin/viewer/src/js/unit.js,sha256=tqghHvLTm7uLIJ4mApNNXYv4AT37kGhAdIM7GAJxatU,3902
140
- iXBRLViewerPlugin/viewer/src/js/unit.test.js,sha256=An7RSoNOurKYl6SEgRQu7w2stgP07jPFN8x0KjRupck,3220
139
+ iXBRLViewerPlugin/viewer/src/js/unit.js,sha256=0Zxa5oXtO3sEZQR7cCEXBD7wmJ26fe-N0DNSvMYzDXY,4077
140
+ iXBRLViewerPlugin/viewer/src/js/unit.test.js,sha256=RES5wwbTik2fhfanVlDIfZgOD3ETMg-oX1-c2GmjDXc,4422
141
141
  iXBRLViewerPlugin/viewer/src/js/util.js,sha256=j3XmVxM9p9qvE5taLOlWBDKDVmJvGBM0zsscgC2aIU0,8117
142
142
  iXBRLViewerPlugin/viewer/src/js/util.test.js,sha256=t6sgV6rTL3aXQMN3iIVe8XxTAOCn1UYHKr_kD6tjI7A,6495
143
- iXBRLViewerPlugin/viewer/src/js/utr.js,sha256=0oMasZ9OMGGI_6BQwxLRrXQT3voESWylv-ldGaS_aEA,581
143
+ iXBRLViewerPlugin/viewer/src/js/utr.js,sha256=4JKvVF_yGdPqtjJDpleR3KvdcqlxQbenvh6eq-oxZ_c,574
144
144
  iXBRLViewerPlugin/viewer/src/js/validationreport.js,sha256=zWA9_8sWavX2Fi8fwEyDPABxWL_XSzvNQ21O1Qu2ayY,644
145
145
  iXBRLViewerPlugin/viewer/src/js/viewer.js,sha256=onePZ2dcoGq1tk-gj4z20cDEf-0kNRjTU-WzcRkRTkA,35912
146
146
  iXBRLViewerPlugin/viewer/src/js/viewerOptions.js,sha256=wJbPXEVuCmmTM6NvNQs4-1gibRT1wzbDr2XVrX2cSqo,139
@@ -188,10 +188,10 @@ tests/unit_tests/iXBRLViewerPlugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
188
188
  tests/unit_tests/iXBRLViewerPlugin/mock_arelle.py,sha256=fQKJGwceaEVaxvqV9tyuvT6DJB5s1X3-oSMjbFMKlS8,1301
189
189
  tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py,sha256=2beDs9kf0wRZFw9NM-dYm4j1zlxRybFj7f1JpwUTttQ,33756
190
190
  tests/unit_tests/iXBRLViewerPlugin/test_xhtmlserialize.py,sha256=kdrg4i-YXnYAGl9TLWEACPQF0V69OAMXdXLYJwefsH0,12521
191
- ixbrl_viewer-1.4.59.dist-info/LICENSE.md,sha256=FOClHlBMDtwKei0tOJ7pv8WZ_HuQJMNYD1az3NpK73o,16647
192
- ixbrl_viewer-1.4.59.dist-info/METADATA,sha256=rz6-zNIYzuH3D91iUnRo3SLKgDyaPBR-PXzq_f37SQE,18469
193
- ixbrl_viewer-1.4.59.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
194
- ixbrl_viewer-1.4.59.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
195
- ixbrl_viewer-1.4.59.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
196
- ixbrl_viewer-1.4.59.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
197
- ixbrl_viewer-1.4.59.dist-info/RECORD,,
191
+ ixbrl_viewer-1.4.61.dist-info/LICENSE.md,sha256=FOClHlBMDtwKei0tOJ7pv8WZ_HuQJMNYD1az3NpK73o,16647
192
+ ixbrl_viewer-1.4.61.dist-info/METADATA,sha256=wHPApcwj6K0vk9nFlTYqYHNT4xjHWTtAWWLyinf3QJU,18469
193
+ ixbrl_viewer-1.4.61.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
194
+ ixbrl_viewer-1.4.61.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
195
+ ixbrl_viewer-1.4.61.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
196
+ ixbrl_viewer-1.4.61.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
197
+ ixbrl_viewer-1.4.61.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5