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

Files changed (95) hide show
  1. iXBRLViewerPlugin/__init__.py +25 -22
  2. iXBRLViewerPlugin/_version.py +2 -2
  3. iXBRLViewerPlugin/constants.py +86 -1
  4. iXBRLViewerPlugin/featureConfig.py +4 -1
  5. iXBRLViewerPlugin/iXBRLViewer.py +28 -14
  6. iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js +1 -1
  7. iXBRLViewerPlugin/viewer/i18next-parser.config.js +1 -1
  8. iXBRLViewerPlugin/viewer/src/html/fact-details.html +69 -38
  9. iXBRLViewerPlugin/viewer/src/html/footer-logo.html +4 -0
  10. iXBRLViewerPlugin/viewer/src/html/footnote-details.html +1 -1
  11. iXBRLViewerPlugin/viewer/src/html/inspector.html +318 -211
  12. iXBRLViewerPlugin/viewer/src/i18n/cy/balancetypes.json +1 -0
  13. iXBRLViewerPlugin/viewer/src/i18n/cy/currencies.json +13 -0
  14. iXBRLViewerPlugin/viewer/src/i18n/cy/datatypes.json +9 -0
  15. iXBRLViewerPlugin/viewer/src/i18n/cy/labelroles.json +24 -0
  16. iXBRLViewerPlugin/viewer/src/i18n/cy/referenceparts.json +10 -0
  17. iXBRLViewerPlugin/viewer/src/i18n/cy/scale.json +16 -0
  18. iXBRLViewerPlugin/viewer/src/i18n/cy/tooltips.json +17 -0
  19. iXBRLViewerPlugin/viewer/src/i18n/cy/translation.json +179 -0
  20. iXBRLViewerPlugin/viewer/src/i18n/en/balancetypes.json +4 -0
  21. iXBRLViewerPlugin/viewer/src/i18n/en/datatypes.json +10 -0
  22. iXBRLViewerPlugin/viewer/src/i18n/en/labelroles.json +4 -0
  23. iXBRLViewerPlugin/viewer/src/i18n/en/scale.json +16 -0
  24. iXBRLViewerPlugin/viewer/src/i18n/en/tooltips.json +17 -0
  25. iXBRLViewerPlugin/viewer/src/i18n/en/translation.json +50 -25
  26. iXBRLViewerPlugin/viewer/src/i18n/es/balancetypes.json +4 -0
  27. iXBRLViewerPlugin/viewer/src/i18n/es/datatypes.json +10 -0
  28. iXBRLViewerPlugin/viewer/src/i18n/es/labelroles.json +24 -0
  29. iXBRLViewerPlugin/viewer/src/i18n/es/scale.json +16 -0
  30. iXBRLViewerPlugin/viewer/src/i18n/es/tooltips.json +17 -0
  31. iXBRLViewerPlugin/viewer/src/i18n/es/translation.json +66 -40
  32. iXBRLViewerPlugin/viewer/src/icons/dark-mode.svg +4 -0
  33. iXBRLViewerPlugin/viewer/src/img/arelle-dark.svg +179 -0
  34. iXBRLViewerPlugin/viewer/src/img/inline-viewer-dark.svg +59 -0
  35. iXBRLViewerPlugin/viewer/src/js/accordian.js +2 -1
  36. iXBRLViewerPlugin/viewer/src/js/aspect.js +18 -7
  37. iXBRLViewerPlugin/viewer/src/js/balance.js +14 -0
  38. iXBRLViewerPlugin/viewer/src/js/chart.js +10 -6
  39. iXBRLViewerPlugin/viewer/src/js/concept.js +28 -1
  40. iXBRLViewerPlugin/viewer/src/js/concept.test.js +23 -2
  41. iXBRLViewerPlugin/viewer/src/js/datatype.js +20 -0
  42. iXBRLViewerPlugin/viewer/src/js/datatype.test.js +62 -0
  43. iXBRLViewerPlugin/viewer/src/js/dialog.js +3 -1
  44. iXBRLViewerPlugin/viewer/src/js/fact.js +16 -0
  45. iXBRLViewerPlugin/viewer/src/js/fact.test.js +3 -0
  46. iXBRLViewerPlugin/viewer/src/js/index.js +11 -3
  47. iXBRLViewerPlugin/viewer/src/js/inspector.js +499 -121
  48. iXBRLViewerPlugin/viewer/src/js/inspector.test.js +1 -1
  49. iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.js +128 -30
  50. iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.test.js +133 -20
  51. iXBRLViewerPlugin/viewer/src/js/menu.js +21 -3
  52. iXBRLViewerPlugin/viewer/src/js/outline.js +2 -2
  53. iXBRLViewerPlugin/viewer/src/js/report.js +60 -8
  54. iXBRLViewerPlugin/viewer/src/js/report.test.js +51 -5
  55. iXBRLViewerPlugin/viewer/src/js/reportset.js +20 -0
  56. iXBRLViewerPlugin/viewer/src/js/reportset.test.js +3 -3
  57. iXBRLViewerPlugin/viewer/src/js/search.js +23 -2
  58. iXBRLViewerPlugin/viewer/src/js/search.test.js +2 -2
  59. iXBRLViewerPlugin/viewer/src/js/summary.js +14 -0
  60. iXBRLViewerPlugin/viewer/src/js/tableExport.js +2 -1
  61. iXBRLViewerPlugin/viewer/src/js/taxonomynamer.js +34 -0
  62. iXBRLViewerPlugin/viewer/src/js/taxonomynamer.test.js +32 -0
  63. iXBRLViewerPlugin/viewer/src/js/theme.js +36 -0
  64. iXBRLViewerPlugin/viewer/src/js/unit.js +17 -2
  65. iXBRLViewerPlugin/viewer/src/js/util.js +16 -16
  66. iXBRLViewerPlugin/viewer/src/js/viewer.js +13 -7
  67. iXBRLViewerPlugin/viewer/src/less/accordian.less +8 -4
  68. iXBRLViewerPlugin/viewer/src/less/block-list.less +12 -6
  69. iXBRLViewerPlugin/viewer/src/less/calculation-inspector.less +2 -2
  70. iXBRLViewerPlugin/viewer/src/less/chart.less +8 -5
  71. iXBRLViewerPlugin/viewer/src/less/colours-dark-mode.less +40 -0
  72. iXBRLViewerPlugin/viewer/src/less/colours.less +28 -21
  73. iXBRLViewerPlugin/viewer/src/less/common.less +1 -1
  74. iXBRLViewerPlugin/viewer/src/less/components.less +3 -3
  75. iXBRLViewerPlugin/viewer/src/less/core.less +2 -0
  76. iXBRLViewerPlugin/viewer/src/less/dialog.less +13 -10
  77. iXBRLViewerPlugin/viewer/src/less/form-controls.less +33 -11
  78. iXBRLViewerPlugin/viewer/src/less/inspector.less +538 -299
  79. iXBRLViewerPlugin/viewer/src/less/loader.less +2 -2
  80. iXBRLViewerPlugin/viewer/src/less/menu.less +33 -15
  81. iXBRLViewerPlugin/viewer/src/less/summary.less +16 -6
  82. iXBRLViewerPlugin/viewer/src/less/tabs.less +5 -5
  83. iXBRLViewerPlugin/viewer/src/less/text-mixins.less +2 -1
  84. iXBRLViewerPlugin/viewer/src/less/validation-report.less +1 -1
  85. iXBRLViewerPlugin/viewer/src/less/viewer.less +30 -18
  86. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/METADATA +33 -5
  87. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/RECORD +95 -66
  88. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/WHEEL +1 -1
  89. tests/puppeteer/framework/page_objects/doc_frame.js +1 -1
  90. tests/puppeteer/tests/fact_properties.test.js +4 -4
  91. tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py +69 -28
  92. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/LICENSE +0 -0
  93. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/NOTICE +0 -0
  94. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/entry_points.txt +0 -0
  95. {ixbrl_viewer-1.4.39.dist-info → ixbrl_viewer-1.4.41.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,40 @@
1
+ // See COPYRIGHT.md for copyright information
2
+
3
+ @colour-bg-d: #000000;
4
+ @colour-foreground-d: #ffffff;
5
+
6
+ @colour-primary-d: #72bafd;
7
+ @colour-secondary-d: #66cc00;
8
+ @colour-tertiary-d: #aa108e;
9
+ @colour-warning-d: #d8ae15;
10
+
11
+ @colour-bg-fade-d: fadeout(@colour-foreground-d, 50%);
12
+ @colour-primary-focus-d: darken(spin(@colour-primary-d, -3.4), 7.0);
13
+
14
+ @colour-loader-d: @colour-foreground-d;
15
+ @colour-linked-fact-d: @colour-primary-d;
16
+ @colour-related-fact-d: lighten(desaturate(spin(@colour-secondary-d, 30.0), 14.5), 6.5);
17
+
18
+ @colour-text-title-d: darken(@colour-foreground-d, 26.2);
19
+ @colour-text-d: darken(@colour-foreground-d, 26.2);
20
+ @colour-text-light-d: darken(@colour-foreground-d, 52.4);
21
+ @colour-text-form-value-d: darken(@colour-foreground-d, 36.8);
22
+
23
+ @colour-border-grey-d: darken(@colour-foreground-d, 59.7);
24
+
25
+ @colour-highlight-default-d: lighten(desaturate(spin(@colour-secondary-d, -0.5660), 31.1688), 44.9020); // #d9f3be
26
+ @colour-highlight-1-d: lighten(saturate(spin(@colour-tertiary-d, -25.3918), 17.2043), 46.4706); // #eaa8ff
27
+ @colour-highlight-2-d: lighten(saturate(spin(@colour-warning-d, 1.0810), 17.7215), 38.6275); // #fff0b3
28
+
29
+ @colour-icon-grey-d: @colour-text-d;
30
+
31
+ @colour-button-primary-bg-d: @colour-primary-focus-d;
32
+ @colour-button-primary-border-d: darken(spin(@colour-primary-d, -3.2), 3.2);
33
+
34
+ @colour-button-bg-d: lighten(@colour-bg-d, 8.2);
35
+ @colour-bg-selected-d: lighten(@colour-bg-d, 14.1);
36
+
37
+ @colour-bg-tag-d: lighten(@colour-bg-d, 137.0);
38
+
39
+ @colour-row-hover-d: lighten(@colour-bg-d, 29.4);
40
+ @colour-row-odd-d: @colour-button-bg-d;
@@ -1,33 +1,40 @@
1
1
  // See COPYRIGHT.md for copyright information
2
2
 
3
- @primary: #026dce;
4
- @primary-focus: #0094ff;
3
+ @colour-bg: #ffffff;
4
+ @colour-foreground: #000000;
5
5
 
6
- @linked-fact: @primary;
7
- @related-fact: #0eb30e;
6
+ @colour-primary: #026dce;
7
+ @colour-secondary: #66cc00;
8
+ @colour-tertiary: #aa108e;
9
+ @colour-warning: #7a4b06;
8
10
 
9
- @text-title: #444444;
10
- @text: #595959;
11
- @text-light: #b2b2b2;
12
- @text-form-value: #7d7d7d;
11
+ @colour-bg-fade: fadeout(@colour-foreground, 50%);
12
+ @colour-primary-focus: lighten(saturate(spin(@colour-primary, -3.3529), 1.9231), 9.2157); // #0094ff
13
13
 
14
- @border-grey: #cbcbcb;
15
- @simple-border: solid 0.1rem @border-grey;
14
+ @colour-loader: @colour-bg;
15
+ @colour-linked-fact: @colour-primary;
16
+ @colour-related-fact: darken(desaturate(spin(@colour-secondary, 30.0000), 14.5078), 2.1569); // #0eb30e;
16
17
 
17
- @highlight-default: hsl(90 69% 85% / 1);
18
- @highlight-1: #eaa8ff;
19
- @highlight-2: hsl(48 100% 85% / 1);
18
+ @colour-text-title: lighten(@colour-foreground, 26.6667); // #444444;
19
+ @colour-text: lighten(@colour-foreground, 34.9020); // #595959;
20
+ @colour-text-light: lighten(@colour-foreground, 45); // #737373;
21
+ @colour-text-form-value: lighten(@colour-foreground, 45); // #737373
20
22
 
21
- @icon-grey: @text;
23
+ @colour-border-grey: lighten(@colour-foreground, 79.6078);
22
24
 
23
- @button-primary-bg: @primary-focus;
24
- @button-primary-border: #0085e6;
25
+ @colour-highlight-default: lighten(desaturate(spin(@colour-secondary, -0.5660), 31.1688), 44.9020); // #d9f3be
26
+ @colour-highlight-1: lighten(saturate(spin(@colour-tertiary, -25.3918), 17.2043), 46.4706); // #eaa8ff
27
+ @colour-highlight-2: lighten(saturate(spin(@colour-warning, 1.0810), 17.7215), 38.6275); // #ffb746
25
28
 
26
- @button-background: #f8f8f8;
27
- @background-selected: #f3f3f3;
29
+ @colour-icon-grey: @colour-text;
28
30
 
29
- @background-tag: #8a8a8a;
31
+ @colour-button-primary-bg: darken(@colour-primary-focus, 20);
32
+ @colour-button-primary-border: darken(@colour-button-primary-bg, 10);
30
33
 
31
- @workiva-green: #66ca00;
34
+ @colour-button-bg: darken(@colour-bg, 2.7451); // #f8f8f8;
35
+ @colour-bg-selected: darken(@colour-bg, 4.7059); // #f3f3f3;
32
36
 
33
- @warning-orange: #d8ae15;
37
+ @colour-bg-tag: darken(@colour-bg, 65); // #595959;
38
+
39
+ @colour-row-hover: darken(@colour-bg, 9.8039); // #e6e6e6
40
+ @colour-row-odd: @colour-button-bg;
@@ -2,7 +2,7 @@
2
2
 
3
3
  /* Styles common to both inspector and highlighting used within iframe */
4
4
  .linked-highlight-text {
5
- outline: dashed 0.125em @linked-fact;
5
+ outline: dashed 0.125em var(--colour-linked-fact);
6
6
  outline-offset: 0.0625em;
7
7
  }
8
8
 
@@ -4,9 +4,9 @@
4
4
  display: inline-block;
5
5
  text-transform: uppercase;
6
6
  font-weight: bold;
7
- background-color: @background-tag;
7
+ background-color: var(--colour-bg-tag);
8
8
  padding: 0.15em 0.5em;
9
- color: #fff;
9
+ color: var(--colour-bg);
10
10
  border-radius: 0.3em;
11
11
  margin: 0.2rem 0.3rem 0.2rem 0;
12
12
  white-space: nowrap;
@@ -14,7 +14,7 @@
14
14
 
15
15
  .clickable {
16
16
  cursor: pointer;
17
- color: @primary;
17
+ color: var(--colour-primary);
18
18
  }
19
19
 
20
20
  .panel-indent {
@@ -5,5 +5,7 @@ html {
5
5
  }
6
6
 
7
7
  body {
8
+ background-color: var(--colour-bg);
9
+ color: var(--colour-foreground);
8
10
  margin: 0;
9
11
  }
@@ -7,8 +7,10 @@
7
7
  left: 50%;
8
8
  transform: translate(-50%, -50%);
9
9
  border: solid 1px #000;
10
- background-color: #fff;
10
+ background-color: var(--colour-bg);
11
11
  display: none;
12
+ padding: 0;
13
+ margin: 0;
12
14
 
13
15
  &.full-screen {
14
16
  width: calc(100vw - 5em);
@@ -37,15 +39,16 @@
37
39
  }
38
40
 
39
41
  .close {
42
+ border: none;
40
43
  position: absolute;
41
- top: 0;
42
- right: 0;
43
- padding: 1.8rem 2rem 0;
44
+ top: 1rem;
45
+ right: 1.4rem;
46
+ padding: 0.3rem;
44
47
  font-size: 2.6rem;
45
48
  z-index: 20;
46
49
  cursor: pointer;
47
50
  line-height: 2.2rem;
48
- opacity: 0.2;
51
+ color: var(--colour-border-grey);
49
52
 
50
53
  &::before {
51
54
  content: "\00d7";
@@ -61,14 +64,14 @@
61
64
  border-radius: 0;
62
65
  min-width: 10rem;
63
66
  margin-right: 1.5rem;
64
- border: solid 0.1rem @border-grey;
65
- color: @text;
66
- background-color: @button-background;
67
+ border: solid 0.1rem var(--colour-border-grey);
68
+ color: var(--colour-text);
69
+ background-color: var(--colour-button-bg);
67
70
  cursor: pointer;
68
71
 
69
72
  &.dialog-button-primary {
70
- color: #fff;
71
- background-color: @workiva-green;
73
+ color: var(--colour-bg);
74
+ background-color: var(--colour-primary);
72
75
  border: none;
73
76
  }
74
77
  }
@@ -4,10 +4,10 @@ input[type="text"],
4
4
  select,
5
5
  button {
6
6
  padding: 7px 5px;
7
- border: solid 1px @border-grey;
7
+ border: solid 1px var(--colour-border-grey);
8
8
  border-radius: 5px;
9
- color: @text;
10
- background-color: #fff;
9
+ color: var(--colour-text);
10
+ background-color: unset;
11
11
  box-sizing: border-box;
12
12
  }
13
13
 
@@ -15,13 +15,14 @@ button {
15
15
  width: 3.2rem;
16
16
  height: 3.2rem;
17
17
  text-align: center;
18
- color: @icon-grey;
18
+ color: var(--colour-icon-grey);
19
19
  box-sizing: border-box;
20
20
  cursor: pointer;
21
21
  padding: 0;
22
22
  font-size: 2.2rem;
23
23
  line-height: 3.2rem;
24
24
  user-select: none;
25
+ border: none;
25
26
  }
26
27
 
27
28
  .square-button {
@@ -29,8 +30,8 @@ button {
29
30
 
30
31
  padding: 0;
31
32
  border-radius: 3px;
32
- border: solid 0.1rem @border-grey;
33
- background-color: @button-background;
33
+ border: solid 0.1rem var(--colour-border-grey);
34
+ background-color: var(--colour-button-bg);
34
35
  line-height: 3rem;
35
36
  margin: 0 0.5rem;
36
37
 
@@ -44,9 +45,9 @@ button {
44
45
  }
45
46
 
46
47
  .square-button.primary {
47
- color: #fff;
48
- border-color: @button-primary-border;
49
- background-color: @button-primary-bg;
48
+ color: var(--colour-bg);
49
+ border-color: var(--colour-button-primary-border);
50
+ background-color: var(--colour-button-primary-bg);
50
51
  }
51
52
 
52
53
  .wk-checkbox,
@@ -57,6 +58,11 @@ label.checkbox {
57
58
  user-select: none;
58
59
  line-height: 1.6rem;
59
60
 
61
+ &:focus-within {
62
+ outline: solid 0.2rem #000;
63
+ outline-offset: 0.3rem;
64
+ }
65
+
60
66
  input {
61
67
  position: absolute;
62
68
  opacity: 0;
@@ -73,7 +79,7 @@ label.checkbox {
73
79
  width: 1.6rem;
74
80
  height: 1.6rem;
75
81
  border-radius: 0.4rem;
76
- border: solid 0.1rem @border-grey;
82
+ border: solid 0.1rem var(--colour-border-grey);
77
83
  }
78
84
 
79
85
  input:checked ~ .checkmark::before {
@@ -83,7 +89,7 @@ label.checkbox {
83
89
  left: 0.4rem;
84
90
  width: 0.4rem;
85
91
  height: 1.1rem;
86
- border: solid @primary;
92
+ border: solid var(--colour-primary);
87
93
  border-width: 0 0.2rem 0.2rem 0;
88
94
  transform: rotate(45deg);
89
95
  }
@@ -92,3 +98,19 @@ label.checkbox {
92
98
  input:disabled {
93
99
  background-color: #eee;
94
100
  }
101
+
102
+ .inline-button {
103
+ display: inline;
104
+ cursor: pointer;
105
+ color: var(--colour-primary);
106
+ padding: 0.3rem;
107
+ border: none;
108
+ }
109
+
110
+ .bare-button {
111
+ display: inline;
112
+ cursor: pointer;
113
+ color: var(--colour-primary);
114
+ padding: 0.3rem;
115
+ border: none;
116
+ }