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