ixbrl-viewer 1.4.28__tar.gz → 1.4.30__tar.gz

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 (245) hide show
  1. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/node-tests.yml +2 -2
  2. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/npm-package.yml +8 -8
  3. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/puppeteer.yml +4 -4
  4. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/python-package.yml +8 -8
  5. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/python-tests.yml +2 -2
  6. {ixbrl_viewer-1.4.28/ixbrl_viewer.egg-info → ixbrl_viewer-1.4.30}/PKG-INFO +5 -5
  7. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/__init__.py +43 -22
  8. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/_version.py +2 -2
  9. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/iXBRLViewer.py +146 -125
  10. ixbrl_viewer-1.4.30/iXBRLViewerPlugin/plugin.py +7 -0
  11. ixbrl_viewer-1.4.30/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js +2 -0
  12. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/en/translation.json +1 -0
  13. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/calculation.js +45 -32
  14. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/inspector.js +6 -1
  15. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/util.js +3 -0
  16. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30/ixbrl_viewer.egg-info}/PKG-INFO +5 -5
  17. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/ixbrl_viewer.egg-info/SOURCES.txt +1 -0
  18. ixbrl_viewer-1.4.30/ixbrl_viewer.egg-info/requires.txt +11 -0
  19. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/package-lock.json +837 -766
  20. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/package.json +3 -3
  21. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/pyproject.toml +4 -4
  22. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py +24 -23
  23. ixbrl_viewer-1.4.28/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js +0 -2
  24. ixbrl_viewer-1.4.28/ixbrl_viewer.egg-info/requires.txt +0 -11
  25. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.babelrc +0 -0
  26. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  27. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  28. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/ISSUE_TEMPLATE/questions.yml +0 -0
  29. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/ISSUE_TEMPLATE/request.yml +0 -0
  30. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  31. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/dependabot.yml +0 -0
  32. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/release-drafter.yml +0 -0
  33. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/release-drafter.yml +0 -0
  34. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.github/workflows/release.yml +0 -0
  35. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.gitignore +0 -0
  36. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/.npmignore +0 -0
  37. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/ARCHITECTURE.md +0 -0
  38. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/CODEOWNERS +0 -0
  39. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/COPYRIGHT.md +0 -0
  40. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/LICENSE +0 -0
  41. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/MANIFEST.in +0 -0
  42. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/Makefile +0 -0
  43. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/NOTICE +0 -0
  44. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/PLUGINS.md +0 -0
  45. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/README.md +0 -0
  46. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/README.md +0 -0
  47. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630.xsd +0 -0
  48. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_cal.xml +0 -0
  49. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_d2.htm +0 -0
  50. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_def.xml +0 -0
  51. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_g1.jpg +0 -0
  52. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_lab.xml +0 -0
  53. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/clx-20220630_pre.xml +0 -0
  54. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex21subsidiaries.htm +0 -0
  55. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex23accountingfirmc.htm +0 -0
  56. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex311ceocertificati.htm +0 -0
  57. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex312cfocertificati.htm +0 -0
  58. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex32ceocfocertifica.htm +0 -0
  59. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/fy22clxex992reconofeconomi.htm +0 -0
  60. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/clorox-2022-10-K-ixbrl-viewer/ixbrl-viewer.htm +0 -0
  61. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/README.md +0 -0
  62. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/example-plugin.gif +0 -0
  63. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/extended-viewer.js +0 -0
  64. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/index.js +0 -0
  65. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/package-lock.json +0 -0
  66. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/package.json +0 -0
  67. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/example_plugin/webpack.config.js +0 -0
  68. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/ixbrl-viewer-demo.gif +0 -0
  69. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/review-mode.png +0 -0
  70. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/exhibit31abylawsofworkivai.htm +0 -0
  71. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/exhibit31bbylawsofworkivai.htm +0 -0
  72. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/ixbrl-viewer.htm +0 -0
  73. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/wk-20230109.xsd +0 -0
  74. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/wk-20230109_lab.xml +0 -0
  75. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/examples/workiva-january-2023-8-k-ixbrl-viewer/wk-20230109_pre.xml +0 -0
  76. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/constants.py +0 -0
  77. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/featureConfig.py +0 -0
  78. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/stubviewer.html +0 -0
  79. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/ui.py +0 -0
  80. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt +0 -0
  81. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/i18next-parser.config.js +0 -0
  82. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/html/fact-details.html +0 -0
  83. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/html/footnote-details.html +0 -0
  84. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/html/inspector.html +0 -0
  85. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/en/currencies.json +0 -0
  86. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/en/referenceparts.json +0 -0
  87. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/es/currencies.json +0 -0
  88. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/es/referenceparts.json +0 -0
  89. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/i18n/es/translation.json +0 -0
  90. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/arrow-down.svg +0 -0
  91. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/arrow-up.svg +0 -0
  92. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/calculator.svg +0 -0
  93. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/chevron-down.svg +0 -0
  94. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/chevron-left.svg +0 -0
  95. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/chevron-right.svg +0 -0
  96. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/chevron-up.svg +0 -0
  97. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/circle-cross.svg +0 -0
  98. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/circle-tick.svg +0 -0
  99. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/clipboard.svg +0 -0
  100. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/close.svg +0 -0
  101. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/cog.svg +0 -0
  102. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/dimension-member.svg +0 -0
  103. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/dimension.svg +0 -0
  104. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/download.svg +0 -0
  105. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/filter.svg +0 -0
  106. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/graph.svg +0 -0
  107. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/member.svg +0 -0
  108. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/multi-tag.svg +0 -0
  109. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/outline.svg +0 -0
  110. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/print.svg +0 -0
  111. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/question.svg +0 -0
  112. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/search.svg +0 -0
  113. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/select.svg +0 -0
  114. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/summary.svg +0 -0
  115. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/tag.svg +0 -0
  116. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/text-block.svg +0 -0
  117. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/tick.svg +0 -0
  118. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/icons/warning.svg +0 -0
  119. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/arelle.svg +0 -0
  120. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/favicon.ico +0 -0
  121. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/inline-viewer.png +0 -0
  122. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/inline-viewer.svg +0 -0
  123. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/powered-by-workiva.png +0 -0
  124. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/img/powered-by-workiva.svg +0 -0
  125. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/accordian.js +0 -0
  126. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/aspect.js +0 -0
  127. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/aspect.test.js +0 -0
  128. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/calculation.test.js +0 -0
  129. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/calculationInspector.js +0 -0
  130. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/chart.js +0 -0
  131. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/chart.test.js +0 -0
  132. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/concept.js +0 -0
  133. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/concept.test.js +0 -0
  134. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/dialog.js +0 -0
  135. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/docOrderIndex.js +0 -0
  136. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/fact.js +0 -0
  137. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/fact.test.js +0 -0
  138. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/factset.js +0 -0
  139. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/factset.test.js +0 -0
  140. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/footnote.js +0 -0
  141. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/identifiers.js +0 -0
  142. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/identifiers.test.js +0 -0
  143. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/index.js +0 -0
  144. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/inspector.test.js +0 -0
  145. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/interval.js +0 -0
  146. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/interval.test.js +0 -0
  147. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.js +0 -0
  148. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.test.js +0 -0
  149. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/ixnode.js +0 -0
  150. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/menu.js +0 -0
  151. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/messagebox.js +0 -0
  152. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/moment-jest.js +0 -0
  153. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/number-matcher-preprocess.test.js +0 -0
  154. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/number-matcher.js +0 -0
  155. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/number-matcher.test.js +0 -0
  156. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/outline.js +0 -0
  157. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/outline.test.js +0 -0
  158. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/period.js +0 -0
  159. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/period.test.js +0 -0
  160. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/qname.js +0 -0
  161. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/report.js +0 -0
  162. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/report.test.js +0 -0
  163. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/reportset.js +0 -0
  164. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/reportset.test.js +0 -0
  165. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/search.js +0 -0
  166. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/search.test.js +0 -0
  167. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/summary.js +0 -0
  168. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/summary.test.js +0 -0
  169. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/tableExport.js +0 -0
  170. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/test-utils.js +0 -0
  171. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/textblockviewer.js +0 -0
  172. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/unit.js +0 -0
  173. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/unit.test.js +0 -0
  174. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/util.test.js +0 -0
  175. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/validationreport.js +0 -0
  176. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/viewer.js +0 -0
  177. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/js/viewerOptions.js +0 -0
  178. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/accordian.less +0 -0
  179. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/block-list.less +0 -0
  180. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/calculation-inspector.less +0 -0
  181. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/chart.less +0 -0
  182. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/clearfix.less +0 -0
  183. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/colours.less +0 -0
  184. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/common.less +0 -0
  185. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/components.less +0 -0
  186. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/core.less +0 -0
  187. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/dialog.less +0 -0
  188. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/fonts.less +0 -0
  189. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/form-controls.less +0 -0
  190. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/icons.less.njk +0 -0
  191. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/inspector.less +0 -0
  192. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/loader.less +0 -0
  193. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/menu.less +0 -0
  194. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/summary.less +0 -0
  195. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/tabs.less +0 -0
  196. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/text-block-viewer.less +0 -0
  197. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/text-mixins.less +0 -0
  198. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/validation-report.less +0 -0
  199. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/src/less/viewer.less +0 -0
  200. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/tools/build-font.js +0 -0
  201. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/version.js +0 -0
  202. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/webpack.common.js +0 -0
  203. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/webpack.dev.js +0 -0
  204. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/viewer/webpack.prod.js +0 -0
  205. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/iXBRLViewerPlugin/xhtmlserialize.py +0 -0
  206. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/ixbrl_viewer.egg-info/dependency_links.txt +0 -0
  207. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/ixbrl_viewer.egg-info/entry_points.txt +0 -0
  208. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/ixbrl_viewer.egg-info/top_level.txt +0 -0
  209. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/jest.config.json +0 -0
  210. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/Makefile +0 -0
  211. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/Makefile-src +0 -0
  212. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/build-viewer.py +0 -0
  213. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/fetch-sample-files.py +0 -0
  214. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/sample-files.list +0 -0
  215. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/continuation/continuation.html +0 -0
  216. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/ixds-test/document1.html +0 -0
  217. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/ixds-test/faurecia.html +0 -0
  218. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/ixds-test/valeo.html +0 -0
  219. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/scrollable-div/scrollable-div.html +0 -0
  220. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/testdoc/build.sh +0 -0
  221. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/testdoc/example.xsd +0 -0
  222. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/testdoc/labels.json +0 -0
  223. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/testdoc/testdoc.ixtmpl +0 -0
  224. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/samples/src/xbrl-invalid-tests/xbrl-invalid-test.html +0 -0
  225. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/setup.cfg +0 -0
  226. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/__init__.py +0 -0
  227. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/core_elements.js +0 -0
  228. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/page_objects/doc_frame.js +0 -0
  229. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/page_objects/fact_details_panel.js +0 -0
  230. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/page_objects/search_panel.js +0 -0
  231. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/page_objects/toolbar.js +0 -0
  232. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/utils.js +0 -0
  233. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/framework/viewer_page.js +0 -0
  234. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/puppeteer_test_run_via_intellij.jpg +0 -0
  235. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/test_filings/filing_documents_smoke_test.zip +0 -0
  236. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/test_filings/highlights.zip +0 -0
  237. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/tests/fact_properties.test.js +0 -0
  238. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/tests/highlight.test.js +0 -0
  239. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/tests/search.test.js +0 -0
  240. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/puppeteer/tools/generate.sh +0 -0
  241. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/unit_tests/__init__.py +0 -0
  242. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/unit_tests/iXBRLViewerPlugin/__init__.py +0 -0
  243. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/unit_tests/iXBRLViewerPlugin/mock_arelle.py +0 -0
  244. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tests/unit_tests/iXBRLViewerPlugin/test_xhtmlserialize.py +0 -0
  245. {ixbrl_viewer-1.4.28 → ixbrl_viewer-1.4.30}/tox.ini +0 -0
@@ -24,8 +24,8 @@ jobs:
24
24
  - '21'
25
25
  runs-on: ${{ matrix.os }}
26
26
  steps:
27
- - uses: actions/checkout@v4.1.6
28
- - uses: actions/setup-node@v4.0.2
27
+ - uses: actions/checkout@v4.1.7
28
+ - uses: actions/setup-node@v4.0.3
29
29
  with:
30
30
  cache: 'npm'
31
31
  check-latest: true
@@ -23,11 +23,11 @@ jobs:
23
23
  runs-on: ubuntu-22.04
24
24
  steps:
25
25
  - name: Checkout ixbrl-viewer
26
- uses: actions/checkout@v4.1.6
26
+ uses: actions/checkout@v4.1.7
27
27
  with:
28
28
  fetch-depth: 0 # npm run prod requires tags, sadly this is the only way to get them.
29
29
  - name: Install Node.js
30
- uses: actions/setup-node@v4.0.2
30
+ uses: actions/setup-node@v4.0.3
31
31
  with:
32
32
  cache: 'npm'
33
33
  check-latest: true
@@ -42,13 +42,13 @@ jobs:
42
42
  npm version $(git describe --tags)
43
43
  npm pack
44
44
  - name: Upload ixbrlviewer.js artifact
45
- uses: actions/upload-artifact@v4.3.3
45
+ uses: actions/upload-artifact@v4.3.4
46
46
  with:
47
47
  name: ixbrlviewer.js
48
48
  if-no-files-found: error
49
49
  path: iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
50
50
  - name: Upload npm artifact
51
- uses: actions/upload-artifact@v4.3.3
51
+ uses: actions/upload-artifact@v4.3.4
52
52
  with:
53
53
  name: npm package
54
54
  if-no-files-found: error
@@ -63,17 +63,17 @@ jobs:
63
63
  if: startsWith(github.ref, 'refs/tags')
64
64
  steps:
65
65
  - name: Install Node.js
66
- uses: actions/setup-node@v4.0.2
66
+ uses: actions/setup-node@v4.0.3
67
67
  with:
68
68
  check-latest: true
69
69
  node-version: ${{ inputs.node_version }}
70
70
  registry-url: 'https://registry.npmjs.org' # Must explicitly set this for NODE_AUTH_TOKEN to work below
71
71
  - name: Download ixbrlviewer.js artifact
72
- uses: actions/download-artifact@v4.1.7
72
+ uses: actions/download-artifact@v4.1.8
73
73
  with:
74
74
  name: ixbrlviewer.js
75
75
  - name: Download npm artifact
76
- uses: actions/download-artifact@v4.1.7
76
+ uses: actions/download-artifact@v4.1.8
77
77
  with:
78
78
  name: npm package
79
79
  - name: Publish with npm
@@ -83,7 +83,7 @@ jobs:
83
83
  NPM_CONFIG_DRY_RUN: ${{ github.repository != 'Arelle/ixbrl-viewer' }}
84
84
  run: npm publish ixbrl-viewer-*.tgz --access public
85
85
  - name: Upload release artifacts
86
- uses: softprops/action-gh-release@v2.0.5
86
+ uses: softprops/action-gh-release@v2.0.6
87
87
  with:
88
88
  fail_on_unmatched_files: true
89
89
  files: './*'
@@ -25,16 +25,16 @@ jobs:
25
25
  - '3.12'
26
26
  runs-on: ${{ matrix.os }}
27
27
  steps:
28
- - uses: actions/checkout@v4.1.6
28
+ - uses: actions/checkout@v4.1.7
29
29
  with:
30
30
  fetch-depth: 0 # npm run prod requires tags, sadly this is the only way to get them.
31
- - uses: actions/setup-node@v4.0.2
31
+ - uses: actions/setup-node@v4.0.3
32
32
  with:
33
33
  cache: 'npm'
34
34
  check-latest: true
35
35
  node-version: ${{ matrix.node-version }}
36
36
  - name: Install Python 3
37
- uses: actions/setup-python@v5.1.0
37
+ uses: actions/setup-python@v5.1.1
38
38
  with:
39
39
  cache: 'pip'
40
40
  cache-dependency-path: '**/pyproject.toml'
@@ -54,7 +54,7 @@ jobs:
54
54
  run: npx http-server . &> tests/puppeteer/artifacts/http_server.log &
55
55
  - name: Run puppeteer tests
56
56
  run: npm run test:puppeteer
57
- - uses: actions/upload-artifact@v4.3.3
57
+ - uses: actions/upload-artifact@v4.3.4
58
58
  if: failure()
59
59
  with:
60
60
  name: ${{ github.run_id }}.${{ github.run_attempt }}_${{ matrix.os }}_${{ matrix.node-version }}_${{ matrix.python-version }}_artifacts
@@ -33,11 +33,11 @@ jobs:
33
33
  runs-on: ubuntu-22.04
34
34
  steps:
35
35
  - name: Checkout ixbrl-viewer
36
- uses: actions/checkout@v4.1.6
36
+ uses: actions/checkout@v4.1.7
37
37
  with:
38
38
  fetch-depth: 0
39
39
  - name: Install Node.js
40
- uses: actions/setup-node@v4.0.2
40
+ uses: actions/setup-node@v4.0.3
41
41
  with:
42
42
  cache: 'npm'
43
43
  check-latest: true
@@ -47,7 +47,7 @@ jobs:
47
47
  - name: Build ixbrlviewer.js
48
48
  run: make prod
49
49
  - name: Install Python
50
- uses: actions/setup-python@v5.1.0
50
+ uses: actions/setup-python@v5.1.1
51
51
  with:
52
52
  cache: 'pip'
53
53
  cache-dependency-path: '**/pyproject.toml'
@@ -60,13 +60,13 @@ jobs:
60
60
  - name: Build Python package
61
61
  run: python -m build
62
62
  - name: Upload source distribution artifact
63
- uses: actions/upload-artifact@v4.3.3
63
+ uses: actions/upload-artifact@v4.3.4
64
64
  with:
65
65
  name: source distribution
66
66
  if-no-files-found: error
67
67
  path: dist/*.tar.gz
68
68
  - name: Upload wheel artifact
69
- uses: actions/upload-artifact@v4.3.3
69
+ uses: actions/upload-artifact@v4.3.4
70
70
  with:
71
71
  name: wheel
72
72
  if-no-files-found: error
@@ -83,11 +83,11 @@ jobs:
83
83
  - name: Install twine
84
84
  run: pip install -U twine
85
85
  - name: Download source distribution artifact
86
- uses: actions/download-artifact@v4.1.7
86
+ uses: actions/download-artifact@v4.1.8
87
87
  with:
88
88
  name: source distribution
89
89
  - name: Download wheel artifact
90
- uses: actions/download-artifact@v4.1.7
90
+ uses: actions/download-artifact@v4.1.8
91
91
  with:
92
92
  name: wheel
93
93
  - name: Publish package on release
@@ -97,7 +97,7 @@ jobs:
97
97
  TWINE_REPOSITORY: ${{ github.repository == 'Arelle/ixbrl-viewer' && 'pypi' || 'testpypi' }}
98
98
  run: twine upload ./*
99
99
  - name: Upload release artifacts
100
- uses: softprops/action-gh-release@v2.0.5
100
+ uses: softprops/action-gh-release@v2.0.6
101
101
  with:
102
102
  fail_on_unmatched_files: true
103
103
  files: './*'
@@ -26,9 +26,9 @@ jobs:
26
26
  - '3.12'
27
27
  runs-on: ${{ matrix.os }}
28
28
  steps:
29
- - uses: actions/checkout@v4.1.6
29
+ - uses: actions/checkout@v4.1.7
30
30
  - name: Install Python 3
31
- uses: actions/setup-python@v5.1.0
31
+ uses: actions/setup-python@v5.1.1
32
32
  with:
33
33
  cache: 'pip'
34
34
  cache-dependency-path: '**/pyproject.toml'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ixbrl-viewer
3
- Version: 1.4.28
3
+ Version: 1.4.30
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
@@ -34,11 +34,11 @@ Requires-Dist: lxml<6,>=4
34
34
  Provides-Extra: arelle
35
35
  Requires-Dist: arelle_release==2.*; extra == "arelle"
36
36
  Provides-Extra: dev
37
- Requires-Dist: flake8==7.0.0; extra == "dev"
37
+ Requires-Dist: flake8==7.1.0; extra == "dev"
38
38
  Requires-Dist: lxml-stubs==0.5.1; extra == "dev"
39
- Requires-Dist: mypy==1.10.0; extra == "dev"
40
- Requires-Dist: pytest==8.2.1; extra == "dev"
41
- Requires-Dist: typing-extensions==4.12.0; extra == "dev"
39
+ Requires-Dist: mypy==1.10.1; extra == "dev"
40
+ Requires-Dist: pytest==8.2.2; extra == "dev"
41
+ Requires-Dist: typing-extensions==4.12.2; extra == "dev"
42
42
 
43
43
  # Arelle iXBRL Viewer
44
44
 
@@ -22,6 +22,9 @@ from .constants import CONFIG_COPY_SCRIPT, CONFIG_FEATURE_PREFIX, CONFIG_LAUNCH_
22
22
  DEFAULT_JS_FILENAME, DEFAULT_VIEWER_PATH, ERROR_MESSAGE_CODE, \
23
23
  EXCEPTION_MESSAGE_CODE, FEATURE_CONFIGS
24
24
  from .iXBRLViewer import IXBRLViewerBuilder, IXBRLViewerBuilderError
25
+ from .plugin import IXBRLViewerPluginData
26
+
27
+ PLUGIN_NAME = 'ixbrl-viewer'
25
28
 
26
29
  #
27
30
  # GUI operation:
@@ -94,10 +97,6 @@ def iXBRLViewerCommandLineOptionExtender(parser, *args, **kwargs):
94
97
  dest="zipViewerOutput",
95
98
  help="Converts the viewer output into a self contained zip")
96
99
 
97
- # Force "keepOpen" to true, so that all models are retained. Needed for
98
- # multi-instance viewers.
99
- parser.set_defaults(keepOpen = True)
100
-
101
100
  featureGroup = OptionGroup(parser, "Viewer Features",
102
101
  "See viewer README for information on enabling/disabling features.")
103
102
  for featureConfig in FEATURE_CONFIGS:
@@ -105,13 +104,30 @@ def iXBRLViewerCommandLineOptionExtender(parser, *args, **kwargs):
105
104
  featureGroup.add_option(arg, arg.lower(), action="store_true", default=False, help=featureConfig.description)
106
105
  parser.add_option_group(featureGroup)
107
106
 
107
+ def pluginData(cntlr: Cntlr):
108
+ pluginData = cntlr.getPluginData(PLUGIN_NAME)
109
+ if pluginData is None:
110
+ pluginData = IXBRLViewerPluginData(PLUGIN_NAME)
111
+ cntlr.setPluginData(pluginData)
112
+ return pluginData
113
+
114
+ def resetPluginData(cntlr: Cntlr):
115
+ pluginData(cntlr).builder = None
116
+
117
+ def processModel(cntlr: Cntlr, modelXbrl: ModelXbrl):
118
+ try:
119
+ pluginData(cntlr).builder.processModel(modelXbrl)
120
+ except IXBRLViewerBuilderError as ex:
121
+ print(ex)
122
+ except Exception as ex:
123
+ tb = traceback.format_tb(sys.exc_info()[2])
124
+ cntlr.addToLog(f"Exception {ex} \nTraceback {tb}", messageCode=EXCEPTION_MESSAGE_CODE)
108
125
 
109
126
  def generateViewer(
110
127
  cntlr: Cntlr,
111
128
  saveViewerDest: io.BytesIO | str | None,
112
129
  viewerURL: str | None = None,
113
130
  showValidationMessages: bool = False,
114
- useStubViewer: bool = False,
115
131
  zipViewerOutput: bool = False,
116
132
  features: list[str] | None = None,
117
133
  packageDownloadURL: str | None = None,
@@ -138,13 +154,10 @@ def generateViewer(
138
154
 
139
155
  viewerURL = viewerURL or DEFAULT_VIEWER_PATH
140
156
 
141
- if (cntlr.modelManager is None
142
- or len(cntlr.modelManager.loadedModelXbrls) == 0
143
- or any(not mx.modelDocument for mx in cntlr.modelManager.loadedModelXbrls)):
144
- cntlr.addToLog(f"No taxonomy loaded. {abortGenerationMsg}", messageCode=ERROR_MESSAGE_CODE)
145
- return
146
- if cntlr.modelManager.modelXbrl.modelDocument.type not in (Type.INLINEXBRL, Type.INLINEXBRLDOCUMENTSET):
147
- cntlr.addToLog(f"No inline XBRL document loaded. {abortGenerationMsg}", messageCode=ERROR_MESSAGE_CODE)
157
+ bldr = pluginData(cntlr).builder
158
+
159
+ if bldr.reportCount == 0:
160
+ cntlr.addToLog(f"No inline XBRL documents loaded. {abortGenerationMsg}", messageCode=ERROR_MESSAGE_CODE)
148
161
  return
149
162
 
150
163
  copyScriptPath = None
@@ -171,11 +184,10 @@ def generateViewer(
171
184
  return
172
185
 
173
186
  try:
174
- viewerBuilder = IXBRLViewerBuilder(cntlr.modelManager.loadedModelXbrls)
175
187
  if features:
176
188
  for feature in features:
177
- viewerBuilder.enableFeature(feature)
178
- iv = viewerBuilder.createViewer(scriptUrl=viewerURL, showValidations=showValidationMessages, useStubViewer=useStubViewer, packageDownloadURL=packageDownloadURL)
189
+ bldr.enableFeature(feature)
190
+ iv = bldr.createViewer(scriptUrl=viewerURL, showValidations=showValidationMessages, packageDownloadURL=packageDownloadURL)
179
191
  if iv is not None:
180
192
  iv.save(saveViewerDest, zipOutput=zipViewerOutput, copyScriptPath=copyScriptPath)
181
193
  except IXBRLViewerBuilderError as ex:
@@ -183,6 +195,7 @@ def generateViewer(
183
195
  except Exception as ex:
184
196
  tb = traceback.format_tb(sys.exc_info()[2])
185
197
  cntlr.addToLog(f"Exception {ex} \nTraceback {tb}", messageCode=EXCEPTION_MESSAGE_CODE)
198
+ resetPluginData(cntlr)
186
199
 
187
200
 
188
201
  def getFeaturesFromOptions(options: argparse.Namespace | OptionParser):
@@ -192,15 +205,19 @@ def getFeaturesFromOptions(options: argparse.Namespace | OptionParser):
192
205
  if getattr(options, f'viewer_feature_{featureConfig.key}') or getattr(options, f'viewer_feature_{featureConfig.key.lower()}')
193
206
  ]
194
207
 
208
+ def iXBRLViewerCommandLineXbrlRun(cntlr, options, modelXbrl, *args, **kwargs):
209
+ pd = pluginData(cntlr)
210
+ if pd.builder is None:
211
+ pd.builder = IXBRLViewerBuilder(cntlr, useStubViewer = options.useStubViewer)
212
+ processModel(cntlr, modelXbrl)
195
213
 
196
- def iXBRLViewerCommandLineXbrlRun(cntlr, options, *args, **kwargs):
214
+ def iXBRLViewerCommandLineFilingEnd(cntlr, options, *args, **kwargs):
197
215
  generateViewer(
198
216
  cntlr=cntlr,
199
217
  saveViewerDest=options.saveViewerDest or kwargs.get("responseZipStream"),
200
218
  viewerURL=options.viewerURL,
201
219
  copyScript=not options.viewerNoCopyScript,
202
220
  showValidationMessages=options.validationMessages,
203
- useStubViewer=options.useStubViewer,
204
221
  zipViewerOutput=options.zipViewerOutput,
205
222
  features=getFeaturesFromOptions(options),
206
223
  packageDownloadURL=options.packageDownloadURL,
@@ -259,9 +276,11 @@ def commandLineOptionExtender(*args, **kwargs):
259
276
  iXBRLViewerCommandLineOptionExtender(*args, **kwargs)
260
277
 
261
278
 
262
- def commandLineRun(*args, **kwargs):
263
- iXBRLViewerCommandLineXbrlRun(*args, **kwargs)
279
+ def commandLineRun(cntlr, options, modelXbrl, *args, **kwargs):
280
+ iXBRLViewerCommandLineXbrlRun(cntlr, options, modelXbrl, *args, **kwargs)
264
281
 
282
+ def commandLineFilingEnd(*args, **kwargs):
283
+ iXBRLViewerCommandLineFilingEnd(*args, **kwargs)
265
284
 
266
285
  class iXBRLViewerLocalViewer(LocalViewer):
267
286
  # plugin-specific local file handler
@@ -300,12 +319,13 @@ def guiRun(cntlr, modelXbrl, attach, *args, **kwargs):
300
319
  for c in FEATURE_CONFIGS
301
320
  if cntlr.config.setdefault(f'{CONFIG_FEATURE_PREFIX}{c.key}', False)
302
321
  ]
322
+ pluginData(cntlr).builder = IXBRLViewerBuilder(cntlr, useStubViewer = True)
323
+ processModel(cntlr, modelXbrl)
303
324
  generateViewer(
304
325
  cntlr=cntlr,
305
326
  saveViewerDest=tempViewer.name,
306
327
  viewerURL=cntlr.config.get(CONFIG_SCRIPT_URL),
307
328
  copyScript=cntlr.config.get(CONFIG_COPY_SCRIPT, DEFAULT_COPY_SCRIPT),
308
- useStubViewer=True,
309
329
  features=features,
310
330
  )
311
331
  if Path(tempViewer.name, viewer_file_name).exists():
@@ -325,7 +345,7 @@ def load_plugin_url():
325
345
 
326
346
 
327
347
  __pluginInfo__ = {
328
- 'name': 'ixbrl-viewer',
348
+ 'name': PLUGIN_NAME,
329
349
  'aliases': [
330
350
  'iXBRLViewerPlugin',
331
351
  ],
@@ -335,7 +355,8 @@ __pluginInfo__ = {
335
355
  'author': 'Paul Warren',
336
356
  'copyright': 'Copyright :: Workiva Inc. :: 2019',
337
357
  'CntlrCmdLine.Options': commandLineOptionExtender,
338
- 'CntlrCmdLine.Filing.End': commandLineRun,
358
+ 'CntlrCmdLine.Xbrl.Run': commandLineRun,
359
+ 'CntlrCmdLine.Filing.End': commandLineFilingEnd,
339
360
  'CntlrWinMain.Menu.Tools': toolsMenuExtender,
340
361
  'CntlrWinMain.Xbrl.Loaded': guiRun,
341
362
  }
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.4.28'
16
- __version_tuple__ = version_tuple = (1, 4, 28)
15
+ __version__ = version = '1.4.30'
16
+ __version_tuple__ = version_tuple = (1, 4, 30)