ixbrl-viewer 1.4.19__py3-none-any.whl → 1.4.21__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.

@@ -90,7 +90,7 @@ export class Fact {
90
90
  else if (this.isNil()) {
91
91
  v = "nil";
92
92
  }
93
- else if (this.escaped()) {
93
+ else if (this.isTextBlock()) {
94
94
  const html = $("<div>").append($($.parseHTML(v, null, false)));
95
95
  /* Insert an extra space at the beginning and end of block elements to
96
96
  * preserve separation of sections of text. */
@@ -33,6 +33,14 @@ var testReportData = {
33
33
  }
34
34
  }
35
35
  },
36
+ "eg:TextBlockConcept1": {
37
+ "labels": {
38
+ "std": {
39
+ "en": "Text block concept"
40
+ }
41
+ },
42
+ "t": true,
43
+ },
36
44
  "eg:EnumConcept": {
37
45
  "labels": {
38
46
  "std": {
@@ -550,20 +558,43 @@ describe("Readable value", () => {
550
558
 
551
559
  });
552
560
 
553
- test("Strip HTML tags and normalise whitespace", () => {
561
+ test("Escaped string", () => {
554
562
 
555
563
  expect(testFact({ "v": "<b>foo</b>" }, {"escaped": true }).readableValue())
556
- .toBe("foo");
564
+ .toBe("<b>foo</b>");
557
565
 
558
566
  expect(testFact({ "v": " <b>foo</b>bar" }, {"escaped": true }).readableValue())
559
- .toBe("foobar");
567
+ .toBe(" <b>foo</b>bar");
560
568
 
561
569
  expect(testFact({ "v": "\u00a0<b>foo</b>" }, {"escaped": true }).readableValue())
570
+ .toBe("\u00a0<b>foo</b>");
571
+
572
+ });
573
+
574
+ test("Strip HTML tags and normalise whitespace", () => {
575
+
576
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<b>foo</b>" }, {"escaped": true }).readableValue())
577
+ .toBe("foo");
578
+
579
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": " <b>foo</b>bar" }, {"escaped": true }).readableValue())
580
+ .toBe("foobar");
581
+
582
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "\u00a0<b>foo</b>" }, {"escaped": true }).readableValue())
583
+ .toBe("foo");
584
+
585
+ });
586
+
587
+ test("Strip non-escaped text block facts", () => {
588
+
589
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "\u00a0<b>foo</b>" }, {"escaped": false }).readableValue())
590
+ .toBe("foo");
591
+
592
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "\u00a0<b>foo</b>" }, { }).readableValue())
562
593
  .toBe("foo");
563
594
 
564
595
  });
565
596
 
566
- test("Don't strip non-escaped facts", () => {
597
+ test("Don't strip non-text-block facts", () => {
567
598
 
568
599
  expect(testFact({ "v": "\u00a0<b>foo</b>" }, {"escaped": false }).readableValue())
569
600
  .toBe("\u00a0<b>foo</b>");
@@ -574,40 +605,40 @@ describe("Readable value", () => {
574
605
  });
575
606
 
576
607
  test("Detect and strip HTML tags - XHTML tags and attributes", () => {
577
- expect(testFact({ "v": "<xhtml:b>foo</xhtml:b>" }, {"escaped": true }).readableValue())
608
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<xhtml:b>foo</xhtml:b>" }, {"escaped": true }).readableValue())
578
609
  .toBe("foo");
579
610
 
580
- expect(testFact({ "v": '<xhtml:span style="font-weight: bold">foo</xhtml:span>' }, {"escaped": true }).readableValue())
611
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": '<xhtml:span style="font-weight: bold">foo</xhtml:span>' }, {"escaped": true }).readableValue())
581
612
  .toBe("foo");
582
613
  });
583
614
 
584
615
  test("Detect and strip HTML tags - check behaviour with invalid HTML", () => {
585
616
  /* Invalid HTML */
586
- expect(testFact({ "v": "<b:b:b>foo</b:b:b>" }, {"escaped": true }).readableValue())
617
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<b:b:b>foo</b:b:b>" }, {"escaped": true }).readableValue())
587
618
  .toBe("foo");
588
619
 
589
- expect(testFact({ "v": "<foo<bar>baz</bar>" }, {"escaped": true }).readableValue())
620
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<foo<bar>baz</bar>" }, {"escaped": true }).readableValue())
590
621
  .toBe("baz");
591
622
  });
592
623
 
593
624
  test("Text in consecutive inline elements should be contiguous", () => {
594
625
 
595
- expect(testFact({ "v": "<b>foo</b><i>bar</i>" }, {"escaped":true }).readableValue())
626
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<b>foo</b><i>bar</i>" }, {"escaped":true }).readableValue())
596
627
  .toBe("foobar");
597
628
 
598
629
  });
599
630
 
600
631
  test("Text in block/table elements should be separated.", () => {
601
632
 
602
- expect(testFact({ "v": "<p>foo</p><p>bar</p>" }, {"escaped":true }).readableValue())
633
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<p>foo</p><p>bar</p>" }, {"escaped":true }).readableValue())
603
634
  .toBe("foo bar");
604
635
 
605
636
  /* This should really return "foo bar", but we don't correctly detect
606
637
  * block tags in prefixed XHTML */
607
- expect(testFact({ "v": '<xhtml:p xmlns:xhtml="https://www.w3.org/1999/xhtml/">foo</xhtml:p><xhtml:p>bar</xhtml:p>' }, {"escaped":true }).readableValue())
638
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": '<xhtml:p xmlns:xhtml="https://www.w3.org/1999/xhtml/">foo</xhtml:p><xhtml:p>bar</xhtml:p>' }, {"escaped":true }).readableValue())
608
639
  .toBe("foobar");
609
640
 
610
- expect(testFact({ "v": "<table><tr><td>cell1</td><td>cell2</td></tr></table>" }, {"escaped":true })
641
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<table><tr><td>cell1</td><td>cell2</td></tr></table>" }, {"escaped":true })
611
642
  .readableValue())
612
643
  .toBe("cell1 cell2");
613
644
 
@@ -615,7 +646,7 @@ describe("Readable value", () => {
615
646
 
616
647
  test("Whitespace normalisation", () => {
617
648
 
618
- expect(testFact({ "v": "<p>bar foo</p> <p>bar</p>" }, {"escaped":true }).readableValue())
649
+ expect(testFact({ "a": { "c": "eg:TextBlockConcept1" }, "v": "<p>bar foo</p> <p>bar</p>" }, {"escaped":true }).readableValue())
619
650
  .toBe("bar foo bar");
620
651
 
621
652
  });
@@ -205,7 +205,16 @@ export class Inspector {
205
205
  this._optionsMenu.reset();
206
206
  if (this._reportSet) {
207
207
  const dl = this.selectDefaultLanguage();
208
- this._optionsMenu.addCheckboxGroup(this._reportSet.availableLanguages(), this._reportSet.languageNames(), dl, (lang) => { this.setLanguage(lang); this.update() }, "select-language");
208
+ const langs = this._reportSet.availableLanguages();
209
+ const langNames = new Intl.DisplayNames(this.preferredLanguages(), { "type": "language" });
210
+
211
+ this._optionsMenu.addCheckboxGroup(
212
+ langs,
213
+ Object.fromEntries(langs.map((l) => [l, langNames.of(l)])),
214
+ dl,
215
+ (lang) => { this.setLanguage(lang); this.update() },
216
+ "select-language"
217
+ );
209
218
  this.setLanguage(dl);
210
219
  if (this._reportSet.filingDocuments()) {
211
220
  this._optionsMenu.addDownloadButton("Download filing documents", this._reportSet.filingDocuments())
@@ -74,13 +74,6 @@ describe("Language options", () => {
74
74
  expect(al).toHaveLength(6);
75
75
  expect(al).toEqual(expect.arrayContaining(["en", "en-us", "en-gb", "fr", "de", "es"]));
76
76
  });
77
-
78
- test("Names for available languages", () => {
79
- const ln = testReportSet.languageNames();
80
- expect(Object.keys(ln)).toHaveLength(2);
81
- expect(ln['en']).toBe("English");
82
- expect(ln['en-us']).toBe("English (US)");
83
- });
84
77
  });
85
78
 
86
79
  describe("Fetching facts", () => {
@@ -178,10 +178,6 @@ export class ReportSet {
178
178
  return usedScalesMap;
179
179
  }
180
180
 
181
- languageNames() {
182
- return this._data.languages;
183
- }
184
-
185
181
  roleMap() {
186
182
  return this._data.roles;
187
183
  }
@@ -185,14 +185,6 @@ describe("Multi report - Language options", () => {
185
185
  expect(al).toHaveLength(3);
186
186
  expect(al).toEqual(expect.arrayContaining(["en", "en-us", "en-gb"]));
187
187
  });
188
-
189
- test("Names for languages", () => {
190
- const ln = testReportSet.languageNames();
191
- expect(Object.keys(ln)).toHaveLength(3);
192
- expect(ln['en']).toBe("English");
193
- expect(ln['en-us']).toBe("English (US)");
194
- expect(ln['fr']).toBe("French");
195
- });
196
188
  });
197
189
 
198
190
  describe("Multi report - Fetching facts", () => {
@@ -294,14 +286,6 @@ describe("Single report - Language options", () => {
294
286
  expect(al).toHaveLength(2);
295
287
  expect(al).toEqual(expect.arrayContaining(["en", "en-us"]));
296
288
  });
297
-
298
- test("Names for languages", () => {
299
- const ln = testReportSet.languageNames();
300
- expect(Object.keys(ln)).toHaveLength(3);
301
- expect(ln['en']).toBe("English");
302
- expect(ln['en-us']).toBe("English (US)");
303
- expect(ln['fr']).toBe("French");
304
- });
305
289
  });
306
290
 
307
291
  describe("Single report - Fetching facts", () => {
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ixbrl-viewer
3
- Version: 1.4.19
3
+ Version: 1.4.21
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
@@ -31,14 +31,13 @@ Description-Content-Type: text/markdown
31
31
  License-File: LICENSE
32
32
  License-File: NOTICE
33
33
  Requires-Dist: lxml <6,>=4
34
- Requires-Dist: pycountry <24,>=22
35
34
  Provides-Extra: arelle
36
35
  Requires-Dist: arelle-release ==2.* ; extra == 'arelle'
37
36
  Provides-Extra: dev
38
37
  Requires-Dist: flake8 ==7.0.0 ; extra == 'dev'
39
38
  Requires-Dist: lxml-stubs ==0.5.1 ; extra == 'dev'
40
- Requires-Dist: mypy ==1.8.0 ; extra == 'dev'
41
- Requires-Dist: pytest ==8.1.0 ; extra == 'dev'
39
+ Requires-Dist: mypy ==1.9.0 ; extra == 'dev'
40
+ Requires-Dist: pytest ==8.1.1 ; extra == 'dev'
42
41
  Requires-Dist: typing-extensions ==4.10.0 ; extra == 'dev'
43
42
 
44
43
  # Arelle iXBRL Viewer
@@ -1,8 +1,8 @@
1
1
  iXBRLViewerPlugin/__init__.py,sha256=b8_eShZkOtWQMdnsUXuikslSPiKQYRF7NrjhZXH58Dk,15968
2
- iXBRLViewerPlugin/_version.py,sha256=uoD5RETbNPgiYh3HM3h7SS3IHV8yYSaVY1iOmNCumf8,413
2
+ iXBRLViewerPlugin/_version.py,sha256=-yoGeMczTZyNPurLLsOk7_h-1iA3LIkwjfryyCQRt3I,413
3
3
  iXBRLViewerPlugin/constants.py,sha256=gXwZxPp5PJETC-sOvLxOToSe5pIjmQv2WMhZMNoPpKw,1062
4
4
  iXBRLViewerPlugin/featureConfig.py,sha256=tOViPYmN32i2uIf_T9HGgbkkv41VoTpTjqhn4w9rTgw,194
5
- iXBRLViewerPlugin/iXBRLViewer.py,sha256=MU6VGmbASl4Zi8aJVg9PCSZjT4r6syiz-zIz7zRGZ8I,28064
5
+ iXBRLViewerPlugin/iXBRLViewer.py,sha256=KgZUTZKEwThPlfPecrsECv7zt11RHa-05P2_Qu6e604,27363
6
6
  iXBRLViewerPlugin/stubviewer.html,sha256=hc5BeIR7y3ojGRux_Hy5oqEAHdlQ34kk3lL5eH-B4AU,158
7
7
  iXBRLViewerPlugin/ui.py,sha256=OismWQzm_T16j-6O8cfGZ7qLMKIMIA36rRlb9mbOOh0,10512
8
8
  iXBRLViewerPlugin/xhtmlserialize.py,sha256=2fV88KD5XOXqDzYaQgovbvuUQINF0n6E-6Nw174zniY,6771
@@ -11,7 +11,7 @@ iXBRLViewerPlugin/viewer/version.js,sha256=7b5si8UmaS7QqALQIP-wJ0I8onKFox8VyaAiU
11
11
  iXBRLViewerPlugin/viewer/webpack.common.js,sha256=AsiOVAW2XbmSNjv6Kl6LC4VUM2rA9UyQ8vwhz_1jb1Y,1320
12
12
  iXBRLViewerPlugin/viewer/webpack.dev.js,sha256=R9AwY_TBrg9otvXpDxT1UsGg5eMqi4aXW7C7EIsHzZk,551
13
13
  iXBRLViewerPlugin/viewer/webpack.prod.js,sha256=vfLowWC1EOty0zbq9P-usGaJ3w-JoERpJrYaE9MfoSE,499
14
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=XEZe_m4Zbcz2n_-DXqomaL3spyPej-cGO6U2KgwJFo0,846894
14
+ iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js,sha256=sLxFhgf879d25lbmwShv1QiTOXxDSkHn9LsBeCKdmMo,846939
15
15
  iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt,sha256=eA5xbvB65RVR5QmweqeHe4sYtW3dzEmgLhUDFOGr9m4,1697
16
16
  iXBRLViewerPlugin/viewer/src/html/fact-details.html,sha256=P9BJw1OK4nIYfoT4KPwW1WP94ZeD7v1nisvSKMeSnU8,1495
17
17
  iXBRLViewerPlugin/viewer/src/html/footnote-details.html,sha256=9I7y0KM7xsPzbiZheuHkm1k4nHNXD8S9qxvD_Y0I1Us,278
@@ -69,15 +69,15 @@ iXBRLViewerPlugin/viewer/src/js/concept.js,sha256=49NXm5jJnakLe2QDsG2Vo5Jf1QDuaj
69
69
  iXBRLViewerPlugin/viewer/src/js/concept.test.js,sha256=ZQHRJSxrDo4iB9srYxdmpLtgqFP1iWiCIKrezLIgthw,2543
70
70
  iXBRLViewerPlugin/viewer/src/js/dialog.js,sha256=09uGcyAcaWLyMyUNDmP9XqYKsuDiAAEIQUM6YLwG_j4,1058
71
71
  iXBRLViewerPlugin/viewer/src/js/docOrderIndex.js,sha256=rhNooqCDRU0f8Sb-adHnwqF7kq6vJA_rskGh6oPqdx8,674
72
- iXBRLViewerPlugin/viewer/src/js/fact.js,sha256=nBVLSpID_NsSORsOtWhiQY-bdVwNdfUCB5bLTj1KAWE,11308
73
- iXBRLViewerPlugin/viewer/src/js/fact.test.js,sha256=-DVTQ1rr3uNwPCILZFE9iOUHtv6m86MIiBj0EyRgvWo,22681
72
+ iXBRLViewerPlugin/viewer/src/js/fact.js,sha256=xeZxcETeaMmIKoYNQE8RCRswj7PtIRhjE7WqRzF0Zzs,11312
73
+ iXBRLViewerPlugin/viewer/src/js/fact.test.js,sha256=6lZ9w0glGm9yI_2OdLGxXEPTP11-AyHb64UXQC5Tv-c,24124
74
74
  iXBRLViewerPlugin/viewer/src/js/factset.js,sha256=VwJSiIVra3IO5Zwz5LV4aQj5D_Q7tPAtlpQEPUioKU8,5120
75
75
  iXBRLViewerPlugin/viewer/src/js/factset.test.js,sha256=WNpm9EE1Eu3DkguUubN2nXnHWY9TIzQdJ6LuidRCHHY,8877
76
76
  iXBRLViewerPlugin/viewer/src/js/footnote.js,sha256=jZreicIBPAtBjbpoRbLnkSs8fHdCYVlr-mqn_x5fUfw,597
77
77
  iXBRLViewerPlugin/viewer/src/js/identifiers.js,sha256=gcGitF1CfiyiUvzWDG6INnFDIBi5jXdBgiqCB8Ip0YE,2260
78
78
  iXBRLViewerPlugin/viewer/src/js/identifiers.test.js,sha256=eu2TkHVpuRItIyNdNAuoITnpGFwwAicqMynf0dFreRk,2112
79
79
  iXBRLViewerPlugin/viewer/src/js/index.js,sha256=SdxunWx8kNw0-vwwnr58-ac1-eQIE1__Ll7ekNNK79E,232
80
- iXBRLViewerPlugin/viewer/src/js/inspector.js,sha256=FQQbm0JxmHLmCeZnp9NQwBz8_vC-UidzTJ4u8rs0jNQ,49467
80
+ iXBRLViewerPlugin/viewer/src/js/inspector.js,sha256=B7lJgenNiTY09VRdKy0fz96Y_jfYaohAbgMxMBOueDY,49726
81
81
  iXBRLViewerPlugin/viewer/src/js/inspector.test.js,sha256=AQjbwTllw_dZfovCfjfHWtt0kdjzDnoXw-mQ0IrHKWk,10086
82
82
  iXBRLViewerPlugin/viewer/src/js/interact.min.js,sha256=Yk0ZkCU3IZ0heGijAgUiNVkZ1Djq-MjvbS32DBSrdIs,85048
83
83
  iXBRLViewerPlugin/viewer/src/js/interval.js,sha256=ZEIbH4uwTIvF1jmulEWnJI5ZD1AamgKtkyplOwlcrv0,1889
@@ -97,9 +97,9 @@ iXBRLViewerPlugin/viewer/src/js/period.js,sha256=D9zXSOr19trWCmHizgCe5DQ612HB6Il
97
97
  iXBRLViewerPlugin/viewer/src/js/period.test.js,sha256=nMamproI2VukUnO0wm3SKQA_rnjwNkwkzyn4uhke0kc,5417
98
98
  iXBRLViewerPlugin/viewer/src/js/qname.js,sha256=6MqMBbgziuPPNHKS3UUGyYIgHWygaAIf0mcpK95hwT8,282
99
99
  iXBRLViewerPlugin/viewer/src/js/report.js,sha256=z19Bngb_zj-C5AVVWxpbw3c4vgl6f_aMDkeaTvJyfK4,8772
100
- iXBRLViewerPlugin/viewer/src/js/report.test.js,sha256=OpWSRo0oWQY2nwwD2u1L_y8APB9kjkJ4pV89WuTmVzo,5068
101
- iXBRLViewerPlugin/viewer/src/js/reportset.js,sha256=aYs2YIsba1rChspbpVq-CwOtmyp_wwqIyL6zmBvgGeo,8140
102
- iXBRLViewerPlugin/viewer/src/js/reportset.test.js,sha256=qzXGfqKlEu3pGk4m_iMwFdXsIxTCoRM7f4bUrYWIsUU,12558
100
+ iXBRLViewerPlugin/viewer/src/js/report.test.js,sha256=AyN362l1ZQBMNjkQRnLaQIy1m9SWT0HAMIWARZSEV44,4818
101
+ iXBRLViewerPlugin/viewer/src/js/reportset.js,sha256=RyRdCp_5r4_GvDlJkVtslf3NAcEij36U8dOrJu8UNVw,8074
102
+ iXBRLViewerPlugin/viewer/src/js/reportset.test.js,sha256=r9UpGOVpMCnhyi-SiYU8iDPhpHydt6iHFyISEImP73M,11996
103
103
  iXBRLViewerPlugin/viewer/src/js/search.js,sha256=JEg5EX2SFi8vnKsmwieXSM9YYkHc31Z2MPn2Yuoe2Lo,5740
104
104
  iXBRLViewerPlugin/viewer/src/js/search.test.js,sha256=Z1op3e8nUjDzry3lNfcq6LXs_gKUk-UiGkm8iJTUIAc,25436
105
105
  iXBRLViewerPlugin/viewer/src/js/summary.js,sha256=86-BeF_h6PxH4ztY2nzBX04yvdvDN1s539S1k9PahZ4,4437
@@ -157,10 +157,10 @@ tests/unit_tests/iXBRLViewerPlugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQe
157
157
  tests/unit_tests/iXBRLViewerPlugin/mock_arelle.py,sha256=fQKJGwceaEVaxvqV9tyuvT6DJB5s1X3-oSMjbFMKlS8,1301
158
158
  tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py,sha256=XSMbjEwof877OT2uwZ8mF8v_umWg39ySodOocQqP4XM,31447
159
159
  tests/unit_tests/iXBRLViewerPlugin/test_xhtmlserialize.py,sha256=kdrg4i-YXnYAGl9TLWEACPQF0V69OAMXdXLYJwefsH0,12521
160
- ixbrl_viewer-1.4.19.dist-info/LICENSE,sha256=TZJhu77S_2-WQcPAkuIAlQiuuiNqVcuHBjd7z3Y5S08,16645
161
- ixbrl_viewer-1.4.19.dist-info/METADATA,sha256=YNJLWDJV4XMojqWrFA-frn550B5T4-CpTtKWGFjFnno,14749
162
- ixbrl_viewer-1.4.19.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
163
- ixbrl_viewer-1.4.19.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
164
- ixbrl_viewer-1.4.19.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
165
- ixbrl_viewer-1.4.19.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
166
- ixbrl_viewer-1.4.19.dist-info/RECORD,,
160
+ ixbrl_viewer-1.4.21.dist-info/LICENSE,sha256=TZJhu77S_2-WQcPAkuIAlQiuuiNqVcuHBjd7z3Y5S08,16645
161
+ ixbrl_viewer-1.4.21.dist-info/METADATA,sha256=98-aPPe7DdJ6iBHA7D8wRnX7rB3s1WHaaKo9t4s2vIY,14715
162
+ ixbrl_viewer-1.4.21.dist-info/NOTICE,sha256=-SHDY0OY7s4gm4Rdk5AB3nbnUsrdHEHPdJuGFR_vuM4,566
163
+ ixbrl_viewer-1.4.21.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
164
+ ixbrl_viewer-1.4.21.dist-info/entry_points.txt,sha256=2XUzP20WGwxdvnugdBybUBwAB3xf_zvrOR5W_smFz_4,65
165
+ ixbrl_viewer-1.4.21.dist-info/top_level.txt,sha256=h8MkrMhC_t2-KbfS1oxJVnFAbn5NZJH8END_BL40mv8,24
166
+ ixbrl_viewer-1.4.21.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5