ixbrl-viewer 1.4.21__py3-none-any.whl → 1.4.49__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 (114) hide show
  1. iXBRLViewerPlugin/__init__.py +77 -49
  2. iXBRLViewerPlugin/_version.py +2 -2
  3. iXBRLViewerPlugin/constants.py +86 -1
  4. iXBRLViewerPlugin/featureConfig.py +4 -1
  5. iXBRLViewerPlugin/iXBRLViewer.py +202 -131
  6. iXBRLViewerPlugin/plugin.py +7 -0
  7. iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js +1 -1
  8. iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt +9 -2
  9. iXBRLViewerPlugin/viewer/i18next-parser.config.js +1 -1
  10. iXBRLViewerPlugin/viewer/src/data/utr.json +1 -0
  11. iXBRLViewerPlugin/viewer/src/html/fact-details.html +69 -38
  12. iXBRLViewerPlugin/viewer/src/html/footer-logo.html +4 -0
  13. iXBRLViewerPlugin/viewer/src/html/footnote-details.html +1 -1
  14. iXBRLViewerPlugin/viewer/src/html/inspector.html +324 -211
  15. iXBRLViewerPlugin/viewer/src/i18n/cy/balancetypes.json +1 -0
  16. iXBRLViewerPlugin/viewer/src/i18n/cy/currencies.json +13 -0
  17. iXBRLViewerPlugin/viewer/src/i18n/cy/datatypes.json +9 -0
  18. iXBRLViewerPlugin/viewer/src/i18n/cy/labelroles.json +24 -0
  19. iXBRLViewerPlugin/viewer/src/i18n/cy/referenceparts.json +10 -0
  20. iXBRLViewerPlugin/viewer/src/i18n/cy/scale.json +16 -0
  21. iXBRLViewerPlugin/viewer/src/i18n/cy/tooltips.json +17 -0
  22. iXBRLViewerPlugin/viewer/src/i18n/cy/translation.json +179 -0
  23. iXBRLViewerPlugin/viewer/src/i18n/en/balancetypes.json +4 -0
  24. iXBRLViewerPlugin/viewer/src/i18n/en/datatypes.json +10 -0
  25. iXBRLViewerPlugin/viewer/src/i18n/en/labelroles.json +4 -0
  26. iXBRLViewerPlugin/viewer/src/i18n/en/scale.json +16 -0
  27. iXBRLViewerPlugin/viewer/src/i18n/en/tooltips.json +17 -0
  28. iXBRLViewerPlugin/viewer/src/i18n/en/translation.json +56 -24
  29. iXBRLViewerPlugin/viewer/src/i18n/es/balancetypes.json +4 -0
  30. iXBRLViewerPlugin/viewer/src/i18n/es/datatypes.json +10 -0
  31. iXBRLViewerPlugin/viewer/src/i18n/es/labelroles.json +24 -0
  32. iXBRLViewerPlugin/viewer/src/i18n/es/scale.json +16 -0
  33. iXBRLViewerPlugin/viewer/src/i18n/es/tooltips.json +17 -0
  34. iXBRLViewerPlugin/viewer/src/i18n/es/translation.json +70 -37
  35. iXBRLViewerPlugin/viewer/src/icons/dark-mode.svg +4 -0
  36. iXBRLViewerPlugin/viewer/src/img/arelle-dark.svg +179 -0
  37. iXBRLViewerPlugin/viewer/src/img/inline-viewer-dark.svg +59 -0
  38. iXBRLViewerPlugin/viewer/src/js/accordian.js +3 -2
  39. iXBRLViewerPlugin/viewer/src/js/aspect.js +18 -10
  40. iXBRLViewerPlugin/viewer/src/js/aspect.test.js +2 -2
  41. iXBRLViewerPlugin/viewer/src/js/balance.js +14 -0
  42. iXBRLViewerPlugin/viewer/src/js/calculation.js +45 -34
  43. iXBRLViewerPlugin/viewer/src/js/calculationInspector.js +4 -7
  44. iXBRLViewerPlugin/viewer/src/js/chart.js +23 -21
  45. iXBRLViewerPlugin/viewer/src/js/concept.js +27 -2
  46. iXBRLViewerPlugin/viewer/src/js/concept.test.js +23 -2
  47. iXBRLViewerPlugin/viewer/src/js/datatype.js +20 -0
  48. iXBRLViewerPlugin/viewer/src/js/datatype.test.js +62 -0
  49. iXBRLViewerPlugin/viewer/src/js/dialog.js +6 -4
  50. iXBRLViewerPlugin/viewer/src/js/fact.js +40 -7
  51. iXBRLViewerPlugin/viewer/src/js/fact.test.js +3 -0
  52. iXBRLViewerPlugin/viewer/src/js/index.js +11 -3
  53. iXBRLViewerPlugin/viewer/src/js/inspector.js +560 -160
  54. iXBRLViewerPlugin/viewer/src/js/inspector.test.js +1 -2
  55. iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.js +129 -31
  56. iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.test.js +133 -20
  57. iXBRLViewerPlugin/viewer/src/js/ixnode.js +1 -1
  58. iXBRLViewerPlugin/viewer/src/js/menu.js +25 -7
  59. iXBRLViewerPlugin/viewer/src/js/number-matcher.js +2 -2
  60. iXBRLViewerPlugin/viewer/src/js/outline.js +2 -4
  61. iXBRLViewerPlugin/viewer/src/js/period.js +0 -1
  62. iXBRLViewerPlugin/viewer/src/js/report.js +68 -13
  63. iXBRLViewerPlugin/viewer/src/js/report.test.js +77 -6
  64. iXBRLViewerPlugin/viewer/src/js/reportset.js +33 -3
  65. iXBRLViewerPlugin/viewer/src/js/reportset.test.js +32 -6
  66. iXBRLViewerPlugin/viewer/src/js/search.js +61 -35
  67. iXBRLViewerPlugin/viewer/src/js/search.test.js +8 -5
  68. iXBRLViewerPlugin/viewer/src/js/summary.js +22 -0
  69. iXBRLViewerPlugin/viewer/src/js/summary.test.js +50 -13
  70. iXBRLViewerPlugin/viewer/src/js/tableExport.js +3 -3
  71. iXBRLViewerPlugin/viewer/src/js/taxonomynamer.js +34 -0
  72. iXBRLViewerPlugin/viewer/src/js/taxonomynamer.test.js +32 -0
  73. iXBRLViewerPlugin/viewer/src/js/theme.js +49 -0
  74. iXBRLViewerPlugin/viewer/src/js/unit.js +73 -2
  75. iXBRLViewerPlugin/viewer/src/js/unit.test.js +14 -3
  76. iXBRLViewerPlugin/viewer/src/js/util.js +21 -18
  77. iXBRLViewerPlugin/viewer/src/js/util.test.js +1 -0
  78. iXBRLViewerPlugin/viewer/src/js/utr.js +27 -0
  79. iXBRLViewerPlugin/viewer/src/js/viewer.js +40 -29
  80. iXBRLViewerPlugin/viewer/src/js/viewerOptions.js +0 -2
  81. iXBRLViewerPlugin/viewer/src/less/accordian.less +8 -4
  82. iXBRLViewerPlugin/viewer/src/less/block-list.less +12 -6
  83. iXBRLViewerPlugin/viewer/src/less/calculation-inspector.less +2 -2
  84. iXBRLViewerPlugin/viewer/src/less/chart.less +8 -5
  85. iXBRLViewerPlugin/viewer/src/less/colours-dark-mode.less +40 -0
  86. iXBRLViewerPlugin/viewer/src/less/colours.less +28 -21
  87. iXBRLViewerPlugin/viewer/src/less/common.less +1 -1
  88. iXBRLViewerPlugin/viewer/src/less/components.less +3 -3
  89. iXBRLViewerPlugin/viewer/src/less/core.less +2 -0
  90. iXBRLViewerPlugin/viewer/src/less/dialog.less +13 -10
  91. iXBRLViewerPlugin/viewer/src/less/form-controls.less +33 -11
  92. iXBRLViewerPlugin/viewer/src/less/inspector.less +556 -300
  93. iXBRLViewerPlugin/viewer/src/less/loader.less +2 -2
  94. iXBRLViewerPlugin/viewer/src/less/menu.less +33 -15
  95. iXBRLViewerPlugin/viewer/src/less/summary.less +16 -6
  96. iXBRLViewerPlugin/viewer/src/less/tabs.less +5 -5
  97. iXBRLViewerPlugin/viewer/src/less/text-mixins.less +2 -1
  98. iXBRLViewerPlugin/viewer/src/less/validation-report.less +1 -1
  99. iXBRLViewerPlugin/viewer/src/less/viewer.less +30 -18
  100. iXBRLViewerPlugin/viewer/webpack.common.js +19 -9
  101. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/METADATA +41 -14
  102. ixbrl_viewer-1.4.49.dist-info/RECORD +197 -0
  103. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/WHEEL +1 -1
  104. tests/puppeteer/framework/page_objects/doc_frame.js +3 -3
  105. tests/puppeteer/framework/page_objects/fact_details_panel.js +28 -0
  106. tests/puppeteer/puppeteer_test_run_via_intellij.jpg +0 -0
  107. tests/puppeteer/tests/fact_properties.test.js +10 -4
  108. tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py +117 -51
  109. iXBRLViewerPlugin/viewer/src/js/interact.min.js +0 -6
  110. ixbrl_viewer-1.4.21.dist-info/RECORD +0 -166
  111. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/LICENSE +0 -0
  112. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/NOTICE +0 -0
  113. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/entry_points.txt +0 -0
  114. {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.49.dist-info}/top_level.txt +0 -0
@@ -6,59 +6,156 @@ See COPYRIGHT.md for copyright information
6
6
  <div class="loader loading">
7
7
  <span class="text" data-i18n="inspector.loadingViewer">Loading iXBRL Viewer</span>
8
8
  </div>
9
- <div id="top-bar">
10
- <img class="header" alt="Inline Viewer logo" src="../img/inline-viewer.svg" />
11
- <div class="document-title"></div>
12
- <div class="top-bar-controls" id="toolbar-highlight-menu">
9
+ <header id="top-bar">
10
+ <img class="header only-light" alt="Inline Viewer logo" src="../img/inline-viewer.svg" />
11
+ <img class="header only-dark" alt="Inline Viewer logo" src="../img/inline-viewer-dark.svg" />
12
+ <h1 class="document-title"></h1>
13
+ <div class="top-bar-controls">
14
+ <div id="toolbar-highlight-menu" class="horizontal-menu">
13
15
  <b data-i18n="inspector.highlight">Highlight:</b><span class="highlight-key popup-trigger"><div class="popup-content" >
14
16
  <div class="arrow"></div>
15
17
  <div class="items"></div>
16
18
  </div></span><span class="content"></span>
17
- <span class="validation-warning" title="Report has validation errors"></span>
19
+ </div>
20
+ <button id="toggle-dark-mode" data-i18n="[title]toolbar.toggleDarkMode" title="Toggle dark mode"></button>
21
+ <button class="inline-button validation-warning" data-i18n="[aria-label]inspector.validationResults" aria-label="Validation Results" title="Report has validation errors"></button>
22
+ <div class="menu" id='display-options-menu'>
23
+ <button data-i18n="[title]inspector.settingsMenu" title="Settings menu" class="menu-title"></button>
24
+ <div class="content-container">
25
+ <div class="content"></div>
26
+ </div>
27
+ </div>
18
28
  </div>
19
- </div>
20
- <div id="inspector" class="no-fact-selected">
29
+ </header>
30
+ <section id="viewer-pane" data-i18n="[aria-label]viewer.ixbrlDocumentView" aria-label="iXBRL Document View">
31
+ <div class="ixds-tabs"><div class="tab-area"></div></div>
32
+ <div id="iframe-container">
33
+ <div class="zoom-in">+</div>
34
+ <div class="zoom-out">-</div>
35
+ <div class="print" title="Print Document" data-i18n="[title]inspector.printDocument"></div>
36
+ </div>
37
+ <div id="viewer-resize-handle" class="resize"></div>
38
+ <div class="resize-spacer"></div>
39
+ </section>
40
+ <section id="inspector" class="no-fact-selected" data-i18n="[aria-label]inspector.ixbrlInspector" aria-label="iXBRL Inspector">
21
41
  <div id="inspector-head">
22
- <div class="title">
23
- <h1 class="footnote-mode-off" data-i18n="inspector.factProperties">Fact Properties</h1>
24
- <h1 class="footnote-mode-only" data-i18n="inspector.footnoteProperties">Footnote Properties</h1>
25
- <div class="back search-mode-only">
26
- </div>
27
- <div class="back summary-mode-only">
28
- </div>
29
- <div class="back outline-mode-only">
42
+ <nav class="controls">
43
+ <button class="summary-button" data-i18n="[title]inspector.documentSummary" title="Document summary">
44
+ </button>
45
+ <button class="outline-button" data-i18n="[title]inspector.documentOutline" title="Document outline">
46
+ </button>
47
+ <button class="search-button" data-i18n="[title]inspector.searchTitle" title="Search">
48
+ </button>
49
+ <button class="ixbrl-prev-tag" data-i18n="[title]inspector.previousTag" title="Previous tag"></button>
50
+ <button class="ixbrl-next-tag" data-i18n="[title]inspector.nextTag" title="Next tag"></button>
51
+ </nav>
52
+ </div>
53
+
54
+ <div class="inspector-container fact-mode-only">
55
+ <div class="inspector-title">
56
+ <h2 class="footnote-mode-off" data-i18n="inspector.factProperties">Fact Properties</h2>
57
+ <h2 class="footnote-mode-only" data-i18n="inspector.footnoteProperties">Footnote Properties</h2>
58
+ </div>
59
+ <div class="inspector-body" tabindex="1">
60
+ <div class="no-fact-overlay">
61
+ <div class="no-fact-overlay-icon"></div>
62
+ <p class="title" data-i18n="inspector.noFactSelected">No Fact Selected</p>
30
63
  </div>
31
- <div class="menu" id='display-options-menu'>
32
- <div class="menu-title"></div>
33
- <div class="content-container">
34
- <div class="content"></div>
64
+ <div class="fact-selected-only">
65
+ <div class="tags">
66
+ <div class="target-document-tag"></div>
67
+ <div class="hidden-fact-tag" data-i18n="inspector.hiddenFact">Hidden Fact</div>
68
+ <div class="html-hidden-fact-tag" data-i18n="inspector.concealedFact">Concealed Fact</div>
69
+ </div>
70
+ <div class="collapsible-section">
71
+ <div class="fact-inspector collapsible-body">
72
+ </div>
73
+ </div>
74
+ <div class="footnote-mode-off">
75
+ <div class="collapsible-section anchoring">
76
+ <h3 class="collapsible-header has-tooltip"><button data-i18n="inspector.anchoring">Anchoring</button> <button class="tooltip-icon" data-tooltip-name="anchoring" data-tooltip-glossary-link="#anchoring"></button></h3>
77
+ <div class="collapsible-body">
78
+ <h4 data-i18n="inspector.widerAnchor">Wider anchor</h4>
79
+ <div class="anchors-wider">
80
+ </div>
81
+ <h4 data-i18n="inspector.narrowerAnchor">Narrower anchors</h4>
82
+ <div class="anchors-narrower">
83
+ </div>
84
+ </div>
85
+ </div>
86
+ <div class="collapsible-section">
87
+ <h3 class="collapsible-header"><button data-i18n="inspector.labels">Labels</button></h3>
88
+ <div class="collapsible-body labels">
89
+ </div>
90
+ </div>
91
+ <div class="collapsible-section">
92
+ <h3 class="collapsible-header has-tooltip"><button data-i18n="inspector.references">References</button> <button class="tooltip-icon" data-tooltip-name="references" data-tooltip-glossary-link="#reference"></button></h3>
93
+ <div class="collapsible-body references">
94
+ </div>
95
+ </div>
96
+ <div class="collapsible-section">
97
+ <h3 class="collapsible-header has-tooltip"><button data-i18n="inspector.calculations">Calculations</button> <button class="tooltip-icon" data-tooltip-name="calculations" data-tooltip-glossary-link="#calculation-tree"></button></h3>
98
+ <div class="collapsible-body calculations">
99
+ <div class="tree"></div>
100
+ </div>
101
+ </div>
102
+ <div class="collapsible-section">
103
+ <h3 class="collapsible-header"><button data-i18n="inspector.footnotes">Footnotes</button></h3>
104
+ <div class="collapsible-body footnotes fact-list">
105
+ </div>
106
+ </div>
107
+ <div class="collapsible-section footnote-facts-section">
108
+ <h3 class="collapsible-header"><button data-i18n="inspector.associatedFacts">Associated Facts</button></h3>
109
+ <div class="collapsible-body footnote-facts fact-list">
110
+ </div>
111
+ </div>
112
+ <div class="collapsible-section">
113
+ <h3 class="collapsible-header"><button data-i18n="inspector.fact-groups">Sections</button></h3>
114
+ <div class="collapsible-body fact-groups fact-list">
115
+ </div>
116
+ </div>
117
+ </div>
118
+ <div class="footnote-details footnote-mode-only">
119
+ <div class="collapsible-section">
120
+ <h3 class="collapsible-header"><button data-i18n="inspector.associatedFacts">Associated facts</button></h3>
121
+ <div class="collapsible-body footnote-facts fact-list">
122
+ </div>
123
+ </div>
35
124
  </div>
36
125
  </div>
37
126
  </div>
38
- <div class="controls">
39
- <div class="summary-button" data-i18n="[title]inspector.documentSummary" title="Document summary">
40
- </div>
41
- <div class="outline-button" data-i18n="[title]inspector.documentOutline" title="Document outline">
42
- </div>
43
- <div class="search-button" data-i18n="[title]inspector.searchTitle" title="Search">
44
- </div>
45
- <div class="next-prev">
46
- <span class="ixbrl-prev-tag" data-i18n="[title]inspector.previousTag" title="Previous tag"></span><span class="ixbrl-next-tag" data-i18n="[title]inspector.nextTag" title="Next tag"></span>
47
- </div>
127
+ </div>
128
+ <div class="inspector-container search-mode-only" role="search">
129
+ <div class="inspector-title">
130
+ <button class="back" title="Back">
131
+ </button>
132
+ <h2 data-i18n="inspector.search">Search</h2>
48
133
  </div>
49
-
50
134
  <div class="search-controls search-mode-only">
51
135
  <div class="search-input">
52
- <input id="ixbrl-search" type="text" aria-label="Search iXBRL report" disabled="disabled" />
53
- <div class="filter-toggle"></div>
136
+ <input id="ixbrl-search" type="text" data-i18n="[aria-label]inspector.searchReport" aria-label="Search iXBRL report" disabled="disabled" />
137
+ <button class="filter-toggle" data-i18n="[title]search.toggleFilterControls" title="Toggle filter controls"></button>
138
+ </div>
139
+ <div class="filter-info">
140
+ <span id="matching-facts-summary"></span>
141
+ <button class="reset" data-i18n="inspector.reset">Reset</button>
54
142
  </div>
55
143
  <div class="search-filters">
56
- <div class="reset" data-i18n="inspector.reset">Reset</div>
57
- <h3 data-i18n="inspector.filter">Filter</h3>
144
+ <h3 data-i18n="search.filter">Filter</h3>
58
145
  <div class="filter-group">
59
- <div class="control-label" data-i18n="inspector.conceptType">
146
+ <label class="control-label" data-i18n="inspector.visibility" for="search-filter-visibility">
147
+ Visibility
148
+ </label>
149
+ <select id="search-filter-visibility">
150
+ <option value="*">-</option>
151
+ <option value="visible" data-i18n="inspector.visible">Visible</option>
152
+ <option value="hidden" data-i18n="inspector.hidden">Hidden</option>
153
+ </select>
154
+ </div>
155
+ <div class="filter-group">
156
+ <label class="control-label" data-i18n="inspector.conceptType" for="search-filter-concept-type">
60
157
  Concept Type
61
- </div>
158
+ </label>
62
159
  <select id="search-filter-concept-type">
63
160
  <option value="*">-</option>
64
161
  <option value="numeric" data-i18n="inspector.numericOption">Numeric</option>
@@ -67,9 +164,9 @@ See COPYRIGHT.md for copyright information
67
164
  </div>
68
165
 
69
166
  <div class="filter-group">
70
- <div class="control-label" data-i18n="inspector.factValue">
167
+ <label class="control-label" data-i18n="inspector.factValue" for="search-filter-fact-value">
71
168
  Fact Value
72
- </div>
169
+ </label>
73
170
  <select id="search-filter-fact-value">
74
171
  <option value="*">-</option>
75
172
  <option value="negative" data-i18n="inspector.negative">Negative</option>
@@ -77,89 +174,101 @@ See COPYRIGHT.md for copyright information
77
174
  </select>
78
175
  </div>
79
176
 
80
- <div class="checkboxes">
81
- <div>
82
- <label class="checkbox">
83
- <input id="search-hidden-fact-filter" type="checkbox" checked="checked"/> <span data-i18n="inspector.hiddenFacts">Hidden Facts</span>
84
- <span class="checkmark"></span>
85
- </label>
86
- </div>
87
- <div>
88
- <label class="checkbox">
89
- <input id="search-visible-fact-filter" type="checkbox" checked="checked"/> <span data-i18n="inspector.visibleFacts">Visible Facts</span>
90
- <span class="checkmark"></span>
177
+ <div id="search-filter-period" class="collapsible-section collapsible-only collapsed">
178
+ <h3 class="collapsible-header">
179
+ <label for="search-filter-period-multiselect">
180
+ <button data-i18n="inspector.period">Period</button>
91
181
  </label>
182
+ <span class="collapsible-subheader"></span>
183
+ </h3>
184
+ <div class="collapsible-body resetable-multiselect" style="display: none;">
185
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
186
+ <select multiple="multiple" id="search-filter-period-multiselect">
187
+ </select>
92
188
  </div>
93
189
  </div>
94
190
 
95
- <div id="search-filter-period" class="collapsible-section collapsible-only collapsed">
191
+ <div id="search-filter-namespaces" class="collapsible-section collapsible-only collapsed">
96
192
  <h3 class="collapsible-header">
97
- <span data-i18n="inspector.period">Period</span>
193
+ <label for="search-filter-namespace-multiselect">
194
+ <button data-i18n="inspector.namespaces">Namespaces</button>
195
+ </label>
98
196
  <span class="collapsible-subheader"></span>
99
197
  </h3>
100
- <div class="collapsible-body" style="display: none;">
101
- <span class="reset-multiselect"></span>
102
- <select multiple>
198
+ <div class="collapsible-body namespaces resetable-multiselect" style="display: none;">
199
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
200
+ <select multiple="multiple" id="search-filter-namespace-multiselect">
103
201
  </select>
104
202
  </div>
105
203
  </div>
106
204
 
107
- <div id="search-filter-namespaces" class="collapsible-section collapsible-only collapsed">
205
+ <div id="search-filter-datatypes" class="collapsible-section collapsible-only collapsed">
108
206
  <h3 class="collapsible-header">
109
- <span data-i18n="inspector.namespaces">Namespaces</span>
207
+ <label for="search-filter-datatype-multiselect">
208
+ <button data-i18n="inspector.datatypes">Types</button>
209
+ </label>
110
210
  <span class="collapsible-subheader"></span>
111
211
  </h3>
112
- <div class="collapsible-body namespaces" style="display: none;">
113
- <span class="reset-multiselect"></span>
114
- <select multiple>
212
+ <div class="collapsible-body datatypes resetable-multiselect" style="display: none;">
213
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
214
+ <select multiple="multiple" id="search-filter-datatype-multiselect">
115
215
  </select>
216
+ <div class="datatype-conflict-warning" data-i18n="search.dataTypeConflictWarning">Warning: selection conflicts with Concept Type filter</div>
116
217
  </div>
117
218
  </div>
118
219
 
119
220
  <div id="search-filter-target-document" class="collapsible-section collapsible-only collapsed">
120
221
  <h3 class="collapsible-header">
121
- <span data-i18n="inspector.targetDocument">Target Document</span>
222
+ <label for="search-filter-target-document-multiselect">
223
+ <button data-i18n="inspector.targetDocument">Target Document</button>
224
+ </label>
122
225
  <span class="collapsible-subheader"></span>
123
226
  </h3>
124
- <div class="collapsible-body target-document" style="display: none;">
125
- <span class="reset-multiselect"></span>
126
- <select multiple>
227
+ <div class="collapsible-body target-document resetable-multiselect" style="display: none;">
228
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
229
+ <select multiple="multiple" id="search-filter-target-document-multiselect">
127
230
  </select>
128
231
  </div>
129
232
  </div>
130
233
 
131
234
  <div id="search-filter-units" class="collapsible-section collapsible-only collapsed">
132
235
  <h3 class="collapsible-header">
133
- <span data-i18n="inspector.units">Units</span>
236
+ <label for="search-filter-units-multiselect">
237
+ <button data-i18n="inspector.units">Units</button>
238
+ </label>
134
239
  <span class="collapsible-subheader"></span>
135
240
  </h3>
136
- <div class="collapsible-body units" style="display: none;">
137
- <span class="reset-multiselect"></span>
138
- <select multiple>
241
+ <div class="collapsible-body units resetable-multiselect" style="display: none;">
242
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
243
+ <select multiple="multiple" id="search-filter-units-multiselect">
139
244
  </select>
140
245
  </div>
141
246
  </div>
142
247
 
143
248
  <div id="search-filter-scales" class="collapsible-section collapsible-only collapsed">
144
249
  <h3 class="collapsible-header">
145
- <span data-i18n="inspector.scales">Scales</span>
250
+ <label for="search-filter-scales-multiselect">
251
+ <button data-i18n="inspector.scales">Scales</button>
252
+ </label>
146
253
  <span class="collapsible-subheader"></span>
147
254
  </h3>
148
- <div class="collapsible-body scales" style="display: none;">
149
- <span class="reset-multiselect"></span>
150
- <select multiple>
255
+ <div class="collapsible-body scales resetable-multiselect" style="display: none;">
256
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
257
+ <select multiple="multiple" id="search-filter-scales-multiselect">
151
258
  </select>
152
259
  </div>
153
260
  </div>
154
261
 
155
262
  <div id="search-filter-dimension-type" class="collapsible-section collapsible-only collapsed">
156
263
  <h3 class="collapsible-header">
157
- <span data-i18n="inspector.dimensions">Dimension Type</span>
264
+ <label for="search-filter-dimension-type-multiselect">
265
+ <button data-i18n="inspector.dimensions">Dimension Type</button>
266
+ </label>
158
267
  <span class="collapsible-subheader"></span>
159
268
  </h3>
160
- <div class="collapsible-body dimensions" style="display: none;">
161
- <span class="reset-multiselect"></span>
162
- <select multiple size="2">
269
+ <div class="collapsible-body dimensions resetable-multiselect" style="display: none;">
270
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
271
+ <select multiple="multiple" size="2" id="search-filter-dimension-type-multiselect">
163
272
  <option value="explicit" data-i18n="inspector.explicitDimension">Explicit Dimensions</option>
164
273
  <option value="typed" data-i18n="inspector.typedDimensions">Typed Dimensions</option>
165
274
  </select>
@@ -168,131 +277,114 @@ See COPYRIGHT.md for copyright information
168
277
 
169
278
  <div id="search-filter-calculations" class="collapsible-section collapsible-only collapsed">
170
279
  <h3 class="collapsible-header">
171
- <span data-i18n="inspector.calculations">Calculations</span>
280
+ <label for="search-filter-calculations-multiselect">
281
+ <button data-i18n="inspector.calculations">Calculations</button>
282
+ </label>
172
283
  <span class="collapsible-subheader"></span>
173
284
  </h3>
174
- <div class="collapsible-body calculations" style="display: none;">
175
- <span class="reset-multiselect"></span>
176
- <select multiple size="2">
285
+ <div class="collapsible-body calculations resetable-multiselect" style="display: none;">
286
+ <button class="reset-multiselect" title="Reset" data-i18n="[title]search.reset"></button>
287
+ <select multiple="multiple" size="2" id="search-filter-calculations-multiselect">
177
288
  <option value="summation" data-i18n="inspector.summation">Summation</option>
178
289
  <option value="contributor" data-i18n="inspector.contributor">Contributor</option>
179
290
  </select>
180
291
  </div>
181
292
  </div>
182
293
 
183
- <div class="filter-info">
184
- <span id="matching-facts-count">?</span>
185
- <span data-i18n="inspector.matchingFacts"> matching facts(s)</span>
294
+ <div class="checkboxes">
295
+ <div id="mandatory-fact-filter-checkbox">
296
+ <label class="checkbox">
297
+ <input id="search-mandatory-fact-filter" type="checkbox" style="display: none;"/> <span data-i18n="inspector.mandatoryFacts">Only Mandatory Facts</span>
298
+ <span class="checkmark"></span>
299
+ </label>
300
+ </div>
186
301
  </div>
187
- </div>
188
- </div>
189
- </div> <!-- inspector-head -->
190
302
 
191
- <div class="inspector-body">
192
- <div class="fact-mode-only inspector-body-fact">
193
- <div class="no-fact-overlay">
194
- <div class="no-fact-overlay-icon"></div>
195
- <p class="title" data-i18n="inspector.noFactSelected">No Fact Selected</p>
196
303
  </div>
197
- <div class="fact-selected-only">
198
- <div class="tags">
199
- <div class="target-document-tag"></div>
200
- <div class="hidden-fact-tag" data-i18n="inspector.hiddenFact">Hidden Fact</div>
201
- <div class="html-hidden-fact-tag" data-i18n="inspector.concealedFact">Concealed Fact</div>
202
- </div>
203
- <div class="collapsible-section">
204
- <div class="fact-inspector collapsible-body">
205
- </div>
206
- </div>
207
- <div class="footnote-mode-off">
208
- <div class="collapsible-section anchoring">
209
- <h3 class="collapsible-header" data-i18n="inspector.anchoring">Anchoring</h3>
210
- <div class="collapsible-body">
211
- <h4 data-i18n="inspector.widerAnchor">Wider anchor</h4>
212
- <div class="anchors-wider">
213
- </div>
214
- <h4 data-i18n="inspector.narrowerAnchor">Narrower anchors</h4>
215
- <div class="anchors-narrower">
216
- </div>
217
- </div>
218
- </div>
219
- <div class="collapsible-section">
220
- <h3 class="collapsible-header" data-i18n="inspector.references">References</h3>
221
- <div class="collapsible-body references">
222
- </div>
223
- </div>
224
- <div class="collapsible-section">
225
- <h3 class="collapsible-header" data-i18n="inspector.calculations">Calculations</h3>
226
- <div class="collapsible-body calculations">
227
- <div class="tree"></div>
228
- </div>
229
- </div>
230
- <div class="collapsible-section">
231
- <h3 class="collapsible-header" data-i18n="inspector.footnotes">Footnotes</h3>
232
- <div class="collapsible-body footnotes fact-list">
233
- </div>
234
- </div>
235
- <div class="collapsible-section footnote-facts-section">
236
- <h3 class="collapsible-header" data-i18n="inspector.associatedFacts">Associated Facts</h3>
237
- <div class="collapsible-body footnote-facts fact-list">
238
- </div>
239
- </div>
240
- <div class="collapsible-section">
241
- <h3 class="collapsible-header" data-i18n="inspector.fact-groups">Sections</h3>
242
- <div class="collapsible-body fact-groups fact-list">
243
- </div>
244
- </div>
304
+ </div> <!-- search controls -->
305
+
306
+ <div class="inspector-body">
307
+
308
+ <section class="search-results search-mode-only" data-i18n="[aria-label]inspector.searchResults" aria-label="Search results">
309
+ <div class="results fact-list">
245
310
  </div>
246
- <div class="footnote-details footnote-mode-only">
247
- <div class="collapsible-section">
248
- <h3 class="collapsible-header" data-i18n="inspector.associatedFacts">Associated facts</h3>
249
- <div class="collapsible-body footnote-facts fact-list">
250
- </div>
251
- </div>
311
+ <div class="search-overlay">
312
+ <div class="search-overlay-icon"></div>
313
+ <div class="search-overlay-text search-ready-only"><p class="title" data-i18n="inspector.factSearch">Fact Search</p><p class="text">Please enter some search terms</p></div>
314
+ <div class="search-overlay-text search-not-ready-only"><p class="title" data-i18n="inspector.factSearch">Fact Search</p><p class="text">Please wait - building index...</p></div>
252
315
  </div>
253
- </div>
254
- </div>
316
+ </section>
317
+ </div>
318
+ </div>
255
319
 
256
- <div class="search-results search-mode-only">
257
- <div class="results fact-list">
258
- </div>
259
- <div class="search-overlay">
260
- <div class="search-overlay-icon"></div>
261
- <div class="search-overlay-text search-ready-only"><p class="title" data-i18n="inspector.factSearch">Fact Search</p><p class="text">Please enter some search terms</p></div>
262
- <div class="search-overlay-text search-not-ready-only"><p class="title" data-i18n="inspector.factSearch">Fact Search</p><p class="text">Please wait - building index...</p></div>
263
- </div>
320
+ <div class="inspector-container summary-mode-only summary">
321
+ <div class="inspector-title">
322
+ <button class="back" title="Back"></button>
323
+ <h2 data-i18n="inspector.documentSummary">Document Summary</h2>
264
324
  </div>
265
-
266
- <div class="outline outline-mode-only">
267
- <div class="no-outline-overlay">
268
- <div class="no-outline-overlay-icon"></div>
269
- <p class="title" data-i18n="inspector.outlineUnavailable">Outline Unavailable</p>
270
- </div>
271
- <div class="body">
272
- </div>
273
- </div>
274
-
275
- <div class="summary summary-mode-only">
325
+ <div class="inspector-body">
276
326
  <div class="body">
277
327
  <div class="collapsible-section fact-summary">
278
- <h3 class="collapsible-header" data-i18n="inspector.summary.fact.header">Fact Summary</h3>
328
+ <h3 class="collapsible-header"><button data-i18n="inspector.summary.fact.header">Fact Summary</button></h3>
279
329
  <div class="collapsible-body">
280
- <div class="total-facts-value">
281
- <span class="total-facts-title" data-i18n="inspector.summary.fact.title">Total Facts:</span>
282
- </div>
330
+ <table class="property-table numeric">
331
+ <tr class="hidden-facts">
332
+ <th class="has-tooltip">
333
+ <span data-i18n="inspector.summary.fact.hidden">Hidden facts</span>
334
+ <button class="tooltip-icon" data-tooltip-name="hiddenFacts"></button>
335
+ </th>
336
+ <td>
337
+ <button class="hidden-facts-value"></button>
338
+ </td>
339
+ </tr>
340
+ <tr class="mandatory-facts" id="mandatory-facts-row" style="display: none;">
341
+ <th class="has-tooltip">
342
+ <span data-i18n="inspector.summary.fact.mandatory">Mandatory Facts:</span>
343
+ <button class="tooltip-icon" data-tooltip-name="mandatoryFacts"></button>
344
+ <td>
345
+ <button class="mandatory-facts-value"></button>
346
+ </td>
347
+ </tr>
348
+ <tr class="total-facts">
349
+ <th>
350
+ <span data-i18n="inspector.summary.fact.total">Total facts</span>
351
+ </th>
352
+ <td>
353
+ <button class="total-facts-value"></button>
354
+ </td>
355
+ </tr>
356
+ </table>
283
357
  </div>
284
358
  </div>
285
359
  <div class="collapsible-section tag-summary">
286
- <h3 class="collapsible-header" data-i18n="inspector.summary.tag.header">Tag Summary</h3>
360
+ <h3 class="collapsible-header"><button data-i18n="inspector.summary.tag.header">Tag Summary</button></h3>
287
361
  <div class="collapsible-body">
288
362
  <div class="tag-summary-body">
289
363
  <table>
290
364
  <thead>
291
365
  <tr>
292
- <th scope="col" class="namespace"><div data-i18n="inspector.summary.tag.colNamespace">Namespace</div></th>
293
- <th scope="col" class="figure"><div data-i18n="inspector.summary.tag.colPrimaryItems">Primary Items</div></th>
294
- <th scope="col" class="figure"><div data-i18n="inspector.summary.tag.colDimensions">Dimensions</div></th>
295
- <th scope="col" class="figure"><div data-i18n="inspector.summary.tag.colMembers">Members</div></th>
366
+ <th scope="col" class="namespace has-tooltip">
367
+ <span data-i18n="inspector.summary.tag.colNamespace">Namespace</span>
368
+ <button class="tooltip-icon" data-tooltip-name="namespace"></button>
369
+ </th>
370
+ <th scope="col" class="figure">
371
+ <div class="has-tooltip">
372
+ <span data-i18n="inspector.summary.tag.colConcepts">Concepts</span>
373
+ <button class="tooltip-icon" data-tooltip-name="conceptsCount"></button>
374
+ </div>
375
+ </th>
376
+ <th scope="col" class="figure">
377
+ <div class="has-tooltip">
378
+ <span data-i18n="inspector.summary.tag.colDimensions">Dimensions</span>
379
+ <button class="tooltip-icon" data-tooltip-name="dimensionsCount"></button>
380
+ </div>
381
+ </th>
382
+ <th scope="col" class="figure">
383
+ <div class="has-tooltip">
384
+ <span data-i18n="inspector.summary.tag.colMembers">Members</span>
385
+ <button class="tooltip-icon" data-tooltip-name="membersCount"></button>
386
+ </div>
387
+ </th>
296
388
  <th scope="col" class="figure"><div data-i18n="inspector.summary.tag.colTotal">Total</div></th>
297
389
  </tr>
298
390
  </thead>
@@ -308,7 +400,12 @@ See COPYRIGHT.md for copyright information
308
400
  </div>
309
401
  </div>
310
402
  <div class="collapsible-section files-summary">
311
- <h3 class="collapsible-header" data-i18n="inspector.summary.file.header">File Summary</h3>
403
+ <h3 class="collapsible-header">
404
+ <div class="has-tooltip">
405
+ <button data-i18n="inspector.summary.file.header">File Summary</button>
406
+ <button class="tooltip-icon" data-tooltip-name="fileSummary"></button>
407
+ </div>
408
+ </h3>
312
409
  <div class="collapsible-body">
313
410
  <div class="file-summary-container">
314
411
  <div class="files inline-docs">
@@ -346,31 +443,57 @@ See COPYRIGHT.md for copyright information
346
443
  </div>
347
444
  </div>
348
445
  </div>
446
+ <div class="collapsible-section report-creation">
447
+ <h3 class="collapsible-header" data-i18n="inspector.summary.reportCreation">Report Creation</h3>
448
+ <div class="collapsible-body">
449
+ <ul></ul>
450
+ </div>
451
+ </div>
349
452
  </div>
350
- </div>
453
+ </div> <!-- inspector-body -->
454
+ </div> <!-- summary -->
351
455
 
456
+ <div class="inspector-container outline-mode-only outline">
457
+ <div class="inspector-title">
458
+ <button class="back" title="Back"></button>
459
+ <h2 data-i18n="inspector.documentOutline">Document Outline</h2>
460
+ </div>
461
+ <div class="inspector-body">
462
+ <div class="no-outline-overlay">
463
+ <div class="no-outline-overlay-icon"></div>
464
+ <p class="title" data-i18n="inspector.outlineUnavailable">Outline Unavailable</p>
465
+ </div>
466
+ <div class="body">
467
+ </div>
468
+ </div>
352
469
  </div>
353
- <div class="inspector-foot powered-by">
354
- <a href="https://arelle.org" target="_blank"><img alt="Arelle logo (opens in new window)" src="../img/arelle.svg" /></a>
355
- <div class="version"></div>
356
- </div>
470
+ <footer class="inspector-foot powered-by">
471
+ <div id="footer-logo"></div>
472
+ <div class="version"></div>
473
+ </footer>
357
474
  <div class="failed-to-load-mask"></div>
475
+ </section>
476
+ <div id="tooltip" class="tooltip">
477
+ <span class="tooltip-text"></span>
478
+ <div class="glossary-link">
479
+ <a target="_blank" href="#" data-i18n="inspector.xbrlGlossaryOpensInNewTab"></a>
480
+ </div>
358
481
  </div>
359
482
  <div class="dialog-mask">
360
483
  </div>
361
484
  <div id="dialog-container"></div>
362
485
  <div id="dialog-templates">
363
- <div class="dialog full-screen chart">
364
- <div class="close"></div>
365
- <div class="contents">
486
+ <dialog class="dialog full-screen chart" role="dialog" data-i18n="[aria-label]chart.comparisonChart" aria-label="Comparison chart">
487
+ <button title="Close" data-i18n="[title]dialog.close" class="close"></button>
488
+ <div class="contents" role="figure" data-i18n="[aria-label]chart.comparisonChart" aria-label="Comparison chart">
366
489
  <div class="chart-container" ><canvas id='chart-canvas'></canvas></div>
367
490
  <div class="other-aspects"></div>
368
491
  </div>
369
- </div>
370
- <div class="dialog validation-report">
371
- <div class="close"></div>
492
+ </dialog>
493
+ <dialog class="dialog validation-report" role="dialog" aria-labelledby="validation-results-title">
494
+ <button title="Close" data-i18n="[title]dialog.close" class="close"></button>
372
495
  <div class="contents">
373
- <h2 data-i18n="inspector.validationResults">Validation results</h2>
496
+ <h2 id="validation-results-title" data-i18n="inspector.validationResults">Validation results</h2>
374
497
  <table>
375
498
  <thead>
376
499
  <th data-i18n="inspector.validationSeverity">Severity</th>
@@ -384,11 +507,11 @@ See COPYRIGHT.md for copyright information
384
507
  <div class="buttons">
385
508
  </div>
386
509
  </div>
387
- </div>
388
- <div class="dialog calculation-inspector">
389
- <div class="close"></div>
510
+ </dialog>
511
+ <dialog class="dialog calculation-inspector" role="dialog" aria-labelledby="calculation-inspector-title">
512
+ <button title="Close" data-i18n="[title]dialog.close" class="close"></button>
390
513
  <div class="contents">
391
- <h2 data-i18n="inspector.calculationDetails">Calculation details</h2>
514
+ <h2 id="calculation-inspector-title" data-i18n="inspector.calculationDetails">Calculation details</h2>
392
515
  <table class="calculation-trace">
393
516
  <thead>
394
517
  <tr>
@@ -396,7 +519,7 @@ See COPYRIGHT.md for copyright information
396
519
  <th class="line-item" data-i18n="calculation.concept">Concept</th>
397
520
  <th class="value-column" data-i18n="calculation.reported-value">Reported Value</th>
398
521
  <th class="icons"></th>
399
- <th class="value-column calc11-only" data-i18n="calculation.mininum">Minimum</th>
522
+ <th class="value-column calc11-only" data-i18n="calculation.minimum">Minimum</th>
400
523
  <th class="value-column calc11-only" data-i18n="calculation.maximum">Maximum</th>
401
524
  </tr>
402
525
  </thead>
@@ -411,11 +534,11 @@ See COPYRIGHT.md for copyright information
411
534
  <div class="buttons">
412
535
  </div>
413
536
  </div>
414
- </div>
415
- <div class="dialog text-block-viewer">
416
- <div class="close"></div>
537
+ </dialog>
538
+ <dialog class="dialog text-block-viewer" role="dialog" aria-labelledby="text-block-viewer-title">
539
+ <button title="Close" data-i18n="[title]dialog.close" class="close"></button>
417
540
  <div class="contents">
418
- <h2 class="title"></h2>
541
+ <h2 id="text-block-viewer-title" class="title"></h2>
419
542
  <iframe id="text-block-viewer-iframe"></iframe>
420
543
  <div class="controls">
421
544
  <label class="checkbox">
@@ -426,26 +549,16 @@ See COPYRIGHT.md for copyright information
426
549
  <div class="buttons">
427
550
  </div>
428
551
  </div>
429
- </div>
430
- <div class="dialog message-box">
431
- <div class="close"></div>
552
+ </dialog>
553
+ <dialog class="dialog message-box" role="dialog" aria-labelledby="message-box-title">
554
+ <button title="Close" data-i18n="[title]dialog.close" class="close"></button>
432
555
  <div class="contents">
433
- <h2 class="title"></h2>
556
+ <h2 id="message-box-title" class="title"></h2>
434
557
  <div class="message">
435
558
  </div>
436
559
  <div class="buttons">
437
560
  </div>
438
561
  </div>
439
562
  </div>
440
- </div>
441
- <div id="viewer-pane" >
442
- <div class="ixds-tabs"><div class="tab-area"></div></div>
443
- <div id="iframe-container">
444
- <div class="zoom-in">+</div>
445
- <div class="zoom-out">-</div>
446
- <div class="print" title="Print Document" data-i18n="[title]inspector.printDocument"></div>
447
- </div>
448
- <div class="resize"></div>
449
- <div class="resize-spacer"></div>
450
- </div>
563
+ </dialog>
451
564
  </div>