ixbrl-viewer


Nameixbrl-viewer JSON
Version 1.4.26 PyPI version JSON
download
home_pageNone
SummaryThe Arelle iXBRL Viewer allows iXBRL reports to be viewed interactively in a web browser.
upload_time2024-04-25 13:28:31
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache-2.0
keywords arelle plugin xbrl
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Arelle iXBRL Viewer

![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/examples/ixbrl-viewer-demo.gif)

The [Arelle](https://arelle.org/) iXBRL Viewer allows [Inline XBRL](https://www.xbrl.org/ixbrl) (or iXBRL) reports to be
viewed interactively in a web browser.  The viewer allows users to access the tagged XBRL data embedded in an iXBRL
report.  Key features include:

* Full text search on taxonomy labels and references
* View full details of tagged facts
* Export tables to Excel
* Visualize and navigate calculation relationships
* Produce on-the-fly graphs using XBRL data

A sample viewer is provided in the [examples](https://github.com/Arelle/ixbrl-viewer/blob/master/examples/README.md) for those interested.

The viewer project consists of two components:

* A plugin for the [Arelle](https://www.arelle.org) XBRL tool
* The Javascript viewer application

In order to view an iXBRL report in the viewer, it must first be prepared using
the Arelle plugin.  The preparation process updates the iXBRL file to include:

1. A link to the JavaScript viewer
2. A block of JSON data that contains the results of processing the XBRL data and associated taxonomy

Once prepared, the resulting file provides an entirely standalone viewer, and
does not require access to the taxonomy, or to any online services.  The only
dependency is on the JavaScript viewer application, which is a single file
which can be accessed directly online, downloaded or built locally.

It is also possible to place the link to the viewer, and the block of JSON data
in a separate file.  See Stub Viewer Mode below.

The JavaScript viewer application is a single JavaScript file called ixbrlviewer.js. It
contains all of the JavaScript that runs the viewer functionality.

## Installation

The Python portion of this repo is developed using Python 3.12.

1. Clone the [iXBRL Viewer git repository][ixbrlviewer-github].
2. Download and install [Arelle][arelle-download]

## Accessing the JavaScript viewer application

### Accessing via the CDN

The JavaScript file is available via a CDN. It can be accessed via the following url:

```text
https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
```

Where `<version>` is the current version of ixbrl-viewer you are using. For instance [1.2.0][CDN].

### Accessing via Github

When a new version of ixbrl-viewer is released, the javascript is included as a
release asset. The asset can be found on the releases [page][ixbrlviewer-github-releases] for each version of
the ixbrl-viewer.  

### Building the JavaScript locally

1. Install npm. Instructions can be found here: <https://www.npmjs.com/get-npm>
2. Install the dependencies for javascript by running: `npm install`.  This
   command must be run from within the `ixbrl-viewer directory` (i.e. the root
   of your checkout of the repository).
3. Run `npm run font`. This will build the icon files.
4. Run `npm run prod`. This will create the ixbrlviewer.js in the
   iXBRLViewerPlugin/viewer/dist directory.

[ixbrlviewer-github]: https://github.com/Arelle/ixbrl-viewer
[CDN]: https://cdn.jsdelivr.net/npm/ixbrl-viewer@1.2.0/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
[ixbrlviewer-github-releases]: https://github.com/Arelle/ixbrl-viewer/releases/tag/0.1.58
[arelle-download]: http://arelle.org/pub

## JavaScript Versioning

The ixbrl-viewer plugin embeds processed XBRL metadata in the HTML that has a
specific format read by the JavaScript. The metadata produced will work with a
viewer application that has the same major version, and the same or later minor
version as the plugin used to create it.

This means that once an XBRL report has been prepared by the plugin, the
associated JavaScript viewer application can be upgraded within the same major
version.  Any features introduced in newer versions of the viewer that rely on
additional metadata will degrade gracefully if that metadata is not present.

## Producing an ixbrl-viewer via the Arelle GUI

### Preparing an iXBRL file via the GUI

1. Open Arelle and select **Manage Plugins** from the **Help** menu.
2. Press **Browse** under "Find plug-in modules".
3. Browse to the **iXBRLViewerPlugin** directory within your checkout of the iXBRL Viewer git repository and select
   the **\_\_init\_\_.py** file within it.
4. Press **Close** and then **Yes** when prompted to restart Arelle.
5. You should now have a **Save iXBRL Viewer instance** on the **Tools** menu.
6. Open the ixbrl filing zip in Arelle
7. Select **Save iXBRL Viewer instance** option on the **Tools** menu
8. Provide a **script URL** to the **ixbrlviewer.js** file.

   This url can be one of the following:

   1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`
   2. A relative url to the downloaded ixviewer.js from github
   3. A relative url to the locally built ixviewer.js

9. Save the viewer iXBRL file to a new file in the newly created directory by
   selecting **Browse**, browsing to the directory, and providing a file name.

10. You should now be able to open the created file in Chrome, and the iXBRL viewer
    should load.

### Preparing an iXBRL document set using the Arelle GUI

To prepare an iXBRL document set, open the document set in Arelle.  The process
is as for a single file, except that a directory should be selected as the
output location, rather than a file.

## Producing an ixbrl-viewer via the Arelle command line

### Preparing an iXBRL file via the command line

The plugin can also be used on the command line:

```shell
python3 Arelle/arelleCmdLine.py --plugins=<path to iXBRLViewerPlugin> -f ixbrl-report.html --save-viewer ixbrl-report-viewer.html --viewer-url https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
```

Notes:

* "Arelle/arelleCmdLine.py" should be the path to your installation of Arelle
* The plugin path needs to an absolute file path to the ixbrl-viewer plugin
* The viewer url can be one of the following:

  1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`
  2. A relative url to the downloaded ixviewer.js from github
  3. A relative url to the locally built ixviewer.js

### Preparing an iXBRL document set

The iXBRL Viewer supports Inline XBRL document sets.  This requires the `inlineXbrlDocumentSet` plugin.
The input is specified using JSON in the following form:

```json
[
  {
    "ixds": [
      { "file": "file1.html" },
      { "file": "file2.html" },
    ]
  }
]
```

The output must be specified as a directory.  For example:

```shell
python3 Arelle/arelleCmdLine.py --plugins '/path/to/iXBRLViewerPlugin|inlineXbrlDocumentSet' -f '[{"ixds":[{"file":"document1.html"},{"file":"document2.html"}]}]'  --save-viewer out-dir --viewer-url https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js
```

Notes:

* The first file specified is the "primary" file, and should be opened in a
  browser to use the viewer.  The other files will be loaded in separate tabs
  within the viewer.
* "Arelle/arelleCmdLine.py" should be the path to your installation of Arelle
* The plugin path needs to an absolute file path to the ixbrl-viewer plugin
* The viewer url can be one of the following:

  1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`
  2. A relative url to the downloaded ixviewer.js from github
  3. A relative url to the locally built ixviewer.js

* Due to browser security restrictions, the resulting viewer cannot be loaded
  directly from `file:` URLs; it must be served by a web server.

### Using build-viewer.py

As an alternative to the standard Arelle command line, the
`samples/build-viewer.py` script can also be used.  To use the script, both the
Arelle source code and the iXBRLViewerPlugin must be on the Python path. e.g.:

```shell
PYTHONPATH=/path/to/Arelle:/path/to/ixbrl-viewer ./samples/build-viewer.py --help
```

A document set can be processed by passing a directory as input.  All `.html`
and `.xhtml` in the directory will be combined into a document set.  The
generated files will be saved into the directory specified by the `--out`
option.  

Taxonomy packages can be specified using `--package-dir`.  All ZIP files in the
specified directories will be loaded as taxonomy packages.

e.g.

```shell
PYTHONPATH=/path/to/Arelle:/path/to/ixbrl-viewer ./samples/build-viewer.py --out out-dir --package-dir /my/packages/ ixds-dir
```

## Stub viewer mode

By default, the link to the JavaScript viewer and the JSON data block are added
to the iXBRL report file (or to the first file, in the case of a document set).  

Stub viewer mode is an optional generation mode that creates an additional,
minimal HTML file containing the JSON data block, and the link to the
JavaScript viewer.  This mode has two advantages over the default approach of
embedding the JSON data and JavaScript link in the iXBRL report:

1. Provided that all facts and footnotes in the iXBRL report already have ID
   attributes, no modification of the iXBRL report is required.
2. The iXBRL viewer loading mask will be displayed much more quickly.  This is
   helpful for very large iXBRL reports which can otherwise result in a long
   delay before there is any sign of the iXBRL Viewer loading.

The downside of this mode is that due to browser security restrictions, the
viewer cannot be loaded directly from files (using `file:` URLs); they must be
served by a web server.

# Optional Features

Some features are disabled by default but can be enabled at generation time or with query parameters.

To enable features:
- Via CLI: `--viewer-feature-{feature name}`
- Via query parameter:`?{feature name}=true`

Features enabled by CLI/JSON can be disabled by query parameter via `?{feature name}=false`.
Note that *any other value* besides "false" (case-sensitive) will *enable* the feature.
This will override any enabling query parameters, so `?review=true&review=false&review=true` would result in the 'review' feature being disabled.

This table uses the 'review' feature as an example to demonstrate how these options interact:

| CLI/JSON | Query Param | Result     |
|----------|-------------|------------|
| `unset`  | `unset`     | `disabled` |
| `unset`  | `true`      | `enabled`  |
| `unset`  | `false`     | `disabled` |
| `review` | `unset`     | `enabled`  |
| `review` | `true`      | `enabled`  |
| `review` | `false`     | `disabled` |

## Feature: Review Mode
![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/examples/review-mode.png)

A review mode is available that is intended to assist in reviewing partially tagged or incomplete documents.
This mode replaces the namespace-based highlighting with optional highlighting based on untagged numbers and/or dates.

| CLI/JSON                  | Query Param    |
|---------------------------|----------------|
| `--viewer-feature-review` | `?review=true` |

# Disable viewer loading

Loading of the viewer can be disabled by specifying `?disable-viewer` as a
query parameter.  This will leave the iXBRL document loaded in the browser, but
without any viewer functionality.  In the case of an iXBRL document set, or
multi-document viewer, the first document will be shown.

## Running tests

### Running unit tests

In order to run the javascript unit tests make sure that you have installed all of the npm requirements.

Run the following command to run javascript unit tests: `npm run test`

In order to run the python unit tests make sure that you have pip installed requirements-dev.txt.

Run the following command to run python unit tests: `pytest tests/unit_tests`

### Running Puppeteer tests

All commands should be run from repository root

1. Install the npm requirements(instructions under [Building the javascript locally](#building-the-javascript-locally)).
2. Install Arelle

    ```shell
    pip install .[arelle]
    ```

3. [Terminal 1] Start the puppeteer serve

    ```shell
    npm run puppeteerServe 
    ```

    * This command generates the `ixbrlviewer.js`, uses Arelle to generate several test files, then serves the files via a nodejs http-server.
    * Currently changes to application code require restarting this step to take effect.
4. Start the puppeteer tests
    * [Terminal 2]:

       ```shell
       npm run test:puppeteer
       ```

    * IDE:
      * Many of the IDE's on the market can run tests via the UI.  The following is an example configuration for intellij.  Once set you can right-click on the test name or file and select the run option.
      ![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/tests/puppeteer/puppeteer_test_run_via_intellij.jpg)
      * Debug runs with breakpoints are also typically supported.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ixbrl-viewer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "arelle, plugin, xbrl",
    "author": null,
    "author_email": "\"arelle.org\" <support@arelle.org>",
    "download_url": "https://files.pythonhosted.org/packages/e4/e9/cf8be151fc418c2f0b9ff32ad0e281df2f2ca0a460a757464acc08c37c09/ixbrl_viewer-1.4.26.tar.gz",
    "platform": "any",
    "description": "# Arelle iXBRL Viewer\n\n![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/examples/ixbrl-viewer-demo.gif)\n\nThe [Arelle](https://arelle.org/) iXBRL Viewer allows [Inline XBRL](https://www.xbrl.org/ixbrl) (or iXBRL) reports to be\nviewed interactively in a web browser.  The viewer allows users to access the tagged XBRL data embedded in an iXBRL\nreport.  Key features include:\n\n* Full text search on taxonomy labels and references\n* View full details of tagged facts\n* Export tables to Excel\n* Visualize and navigate calculation relationships\n* Produce on-the-fly graphs using XBRL data\n\nA sample viewer is provided in the [examples](https://github.com/Arelle/ixbrl-viewer/blob/master/examples/README.md) for those interested.\n\nThe viewer project consists of two components:\n\n* A plugin for the [Arelle](https://www.arelle.org) XBRL tool\n* The Javascript viewer application\n\nIn order to view an iXBRL report in the viewer, it must first be prepared using\nthe Arelle plugin.  The preparation process updates the iXBRL file to include:\n\n1. A link to the JavaScript viewer\n2. A block of JSON data that contains the results of processing the XBRL data and associated taxonomy\n\nOnce prepared, the resulting file provides an entirely standalone viewer, and\ndoes not require access to the taxonomy, or to any online services.  The only\ndependency is on the JavaScript viewer application, which is a single file\nwhich can be accessed directly online, downloaded or built locally.\n\nIt is also possible to place the link to the viewer, and the block of JSON data\nin a separate file.  See Stub Viewer Mode below.\n\nThe JavaScript viewer application is a single JavaScript file called ixbrlviewer.js. It\ncontains all of the JavaScript that runs the viewer functionality.\n\n## Installation\n\nThe Python portion of this repo is developed using Python 3.12.\n\n1. Clone the [iXBRL Viewer git repository][ixbrlviewer-github].\n2. Download and install [Arelle][arelle-download]\n\n## Accessing the JavaScript viewer application\n\n### Accessing via the CDN\n\nThe JavaScript file is available via a CDN. It can be accessed via the following url:\n\n```text\nhttps://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js\n```\n\nWhere `<version>` is the current version of ixbrl-viewer you are using. For instance [1.2.0][CDN].\n\n### Accessing via Github\n\nWhen a new version of ixbrl-viewer is released, the javascript is included as a\nrelease asset. The asset can be found on the releases [page][ixbrlviewer-github-releases] for each version of\nthe ixbrl-viewer.  \n\n### Building the JavaScript locally\n\n1. Install npm. Instructions can be found here: <https://www.npmjs.com/get-npm>\n2. Install the dependencies for javascript by running: `npm install`.  This\n   command must be run from within the `ixbrl-viewer directory` (i.e. the root\n   of your checkout of the repository).\n3. Run `npm run font`. This will build the icon files.\n4. Run `npm run prod`. This will create the ixbrlviewer.js in the\n   iXBRLViewerPlugin/viewer/dist directory.\n\n[ixbrlviewer-github]: https://github.com/Arelle/ixbrl-viewer\n[CDN]: https://cdn.jsdelivr.net/npm/ixbrl-viewer@1.2.0/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js\n[ixbrlviewer-github-releases]: https://github.com/Arelle/ixbrl-viewer/releases/tag/0.1.58\n[arelle-download]: http://arelle.org/pub\n\n## JavaScript Versioning\n\nThe ixbrl-viewer plugin embeds processed XBRL metadata in the HTML that has a\nspecific format read by the JavaScript. The metadata produced will work with a\nviewer application that has the same major version, and the same or later minor\nversion as the plugin used to create it.\n\nThis means that once an XBRL report has been prepared by the plugin, the\nassociated JavaScript viewer application can be upgraded within the same major\nversion.  Any features introduced in newer versions of the viewer that rely on\nadditional metadata will degrade gracefully if that metadata is not present.\n\n## Producing an ixbrl-viewer via the Arelle GUI\n\n### Preparing an iXBRL file via the GUI\n\n1. Open Arelle and select **Manage Plugins** from the **Help** menu.\n2. Press **Browse** under \"Find plug-in modules\".\n3. Browse to the **iXBRLViewerPlugin** directory within your checkout of the iXBRL Viewer git repository and select\n   the **\\_\\_init\\_\\_.py** file within it.\n4. Press **Close** and then **Yes** when prompted to restart Arelle.\n5. You should now have a **Save iXBRL Viewer instance** on the **Tools** menu.\n6. Open the ixbrl filing zip in Arelle\n7. Select **Save iXBRL Viewer instance** option on the **Tools** menu\n8. Provide a **script URL** to the **ixbrlviewer.js** file.\n\n   This url can be one of the following:\n\n   1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`\n   2. A relative url to the downloaded ixviewer.js from github\n   3. A relative url to the locally built ixviewer.js\n\n9. Save the viewer iXBRL file to a new file in the newly created directory by\n   selecting **Browse**, browsing to the directory, and providing a file name.\n\n10. You should now be able to open the created file in Chrome, and the iXBRL viewer\n    should load.\n\n### Preparing an iXBRL document set using the Arelle GUI\n\nTo prepare an iXBRL document set, open the document set in Arelle.  The process\nis as for a single file, except that a directory should be selected as the\noutput location, rather than a file.\n\n## Producing an ixbrl-viewer via the Arelle command line\n\n### Preparing an iXBRL file via the command line\n\nThe plugin can also be used on the command line:\n\n```shell\npython3 Arelle/arelleCmdLine.py --plugins=<path to iXBRLViewerPlugin> -f ixbrl-report.html --save-viewer ixbrl-report-viewer.html --viewer-url https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js\n```\n\nNotes:\n\n* \"Arelle/arelleCmdLine.py\" should be the path to your installation of Arelle\n* The plugin path needs to an absolute file path to the ixbrl-viewer plugin\n* The viewer url can be one of the following:\n\n  1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`\n  2. A relative url to the downloaded ixviewer.js from github\n  3. A relative url to the locally built ixviewer.js\n\n### Preparing an iXBRL document set\n\nThe iXBRL Viewer supports Inline XBRL document sets.  This requires the `inlineXbrlDocumentSet` plugin.\nThe input is specified using JSON in the following form:\n\n```json\n[\n  {\n    \"ixds\": [\n      { \"file\": \"file1.html\" },\n      { \"file\": \"file2.html\" },\n    ]\n  }\n]\n```\n\nThe output must be specified as a directory.  For example:\n\n```shell\npython3 Arelle/arelleCmdLine.py --plugins '/path/to/iXBRLViewerPlugin|inlineXbrlDocumentSet' -f '[{\"ixds\":[{\"file\":\"document1.html\"},{\"file\":\"document2.html\"}]}]'  --save-viewer out-dir --viewer-url https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js\n```\n\nNotes:\n\n* The first file specified is the \"primary\" file, and should be opened in a\n  browser to use the viewer.  The other files will be loaded in separate tabs\n  within the viewer.\n* \"Arelle/arelleCmdLine.py\" should be the path to your installation of Arelle\n* The plugin path needs to an absolute file path to the ixbrl-viewer plugin\n* The viewer url can be one of the following:\n\n  1. `https://cdn.jsdelivr.net/npm/ixbrl-viewer@<version>/iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js`\n  2. A relative url to the downloaded ixviewer.js from github\n  3. A relative url to the locally built ixviewer.js\n\n* Due to browser security restrictions, the resulting viewer cannot be loaded\n  directly from `file:` URLs; it must be served by a web server.\n\n### Using build-viewer.py\n\nAs an alternative to the standard Arelle command line, the\n`samples/build-viewer.py` script can also be used.  To use the script, both the\nArelle source code and the iXBRLViewerPlugin must be on the Python path. e.g.:\n\n```shell\nPYTHONPATH=/path/to/Arelle:/path/to/ixbrl-viewer ./samples/build-viewer.py --help\n```\n\nA document set can be processed by passing a directory as input.  All `.html`\nand `.xhtml` in the directory will be combined into a document set.  The\ngenerated files will be saved into the directory specified by the `--out`\noption.  \n\nTaxonomy packages can be specified using `--package-dir`.  All ZIP files in the\nspecified directories will be loaded as taxonomy packages.\n\ne.g.\n\n```shell\nPYTHONPATH=/path/to/Arelle:/path/to/ixbrl-viewer ./samples/build-viewer.py --out out-dir --package-dir /my/packages/ ixds-dir\n```\n\n## Stub viewer mode\n\nBy default, the link to the JavaScript viewer and the JSON data block are added\nto the iXBRL report file (or to the first file, in the case of a document set).  \n\nStub viewer mode is an optional generation mode that creates an additional,\nminimal HTML file containing the JSON data block, and the link to the\nJavaScript viewer.  This mode has two advantages over the default approach of\nembedding the JSON data and JavaScript link in the iXBRL report:\n\n1. Provided that all facts and footnotes in the iXBRL report already have ID\n   attributes, no modification of the iXBRL report is required.\n2. The iXBRL viewer loading mask will be displayed much more quickly.  This is\n   helpful for very large iXBRL reports which can otherwise result in a long\n   delay before there is any sign of the iXBRL Viewer loading.\n\nThe downside of this mode is that due to browser security restrictions, the\nviewer cannot be loaded directly from files (using `file:` URLs); they must be\nserved by a web server.\n\n# Optional Features\n\nSome features are disabled by default but can be enabled at generation time or with query parameters.\n\nTo enable features:\n- Via CLI: `--viewer-feature-{feature name}`\n- Via query parameter:`?{feature name}=true`\n\nFeatures enabled by CLI/JSON can be disabled by query parameter via `?{feature name}=false`.\nNote that *any other value* besides \"false\" (case-sensitive) will *enable* the feature.\nThis will override any enabling query parameters, so `?review=true&review=false&review=true` would result in the 'review' feature being disabled.\n\nThis table uses the 'review' feature as an example to demonstrate how these options interact:\n\n| CLI/JSON | Query Param | Result     |\n|----------|-------------|------------|\n| `unset`  | `unset`     | `disabled` |\n| `unset`  | `true`      | `enabled`  |\n| `unset`  | `false`     | `disabled` |\n| `review` | `unset`     | `enabled`  |\n| `review` | `true`      | `enabled`  |\n| `review` | `false`     | `disabled` |\n\n## Feature: Review Mode\n![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/examples/review-mode.png)\n\nA review mode is available that is intended to assist in reviewing partially tagged or incomplete documents.\nThis mode replaces the namespace-based highlighting with optional highlighting based on untagged numbers and/or dates.\n\n| CLI/JSON                  | Query Param    |\n|---------------------------|----------------|\n| `--viewer-feature-review` | `?review=true` |\n\n# Disable viewer loading\n\nLoading of the viewer can be disabled by specifying `?disable-viewer` as a\nquery parameter.  This will leave the iXBRL document loaded in the browser, but\nwithout any viewer functionality.  In the case of an iXBRL document set, or\nmulti-document viewer, the first document will be shown.\n\n## Running tests\n\n### Running unit tests\n\nIn order to run the javascript unit tests make sure that you have installed all of the npm requirements.\n\nRun the following command to run javascript unit tests: `npm run test`\n\nIn order to run the python unit tests make sure that you have pip installed requirements-dev.txt.\n\nRun the following command to run python unit tests: `pytest tests/unit_tests`\n\n### Running Puppeteer tests\n\nAll commands should be run from repository root\n\n1. Install the npm requirements(instructions under [Building the javascript locally](#building-the-javascript-locally)).\n2. Install Arelle\n\n    ```shell\n    pip install .[arelle]\n    ```\n\n3. [Terminal 1] Start the puppeteer serve\n\n    ```shell\n    npm run puppeteerServe \n    ```\n\n    * This command generates the `ixbrlviewer.js`, uses Arelle to generate several test files, then serves the files via a nodejs http-server.\n    * Currently changes to application code require restarting this step to take effect.\n4. Start the puppeteer tests\n    * [Terminal 2]:\n\n       ```shell\n       npm run test:puppeteer\n       ```\n\n    * IDE:\n      * Many of the IDE's on the market can run tests via the UI.  The following is an example configuration for intellij.  Once set you can right-click on the test name or file and select the run option.\n      ![ixbrl-viewer](https://raw.githubusercontent.com/Arelle/ixbrl-viewer/master/tests/puppeteer/puppeteer_test_run_via_intellij.jpg)\n      * Debug runs with breakpoints are also typically supported.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "The Arelle iXBRL Viewer allows iXBRL reports to be viewed interactively in a web browser.",
    "version": "1.4.26",
    "project_urls": {
        "Blog": "https://arelle.org/arelle/blog/",
        "Bug Reports": "https://github.com/Arelle/ixbrl-viewer/issues/",
        "Documentation": "https://arelle.org/arelle/documentation/",
        "Downloads": "https://arelle.org/arelle/pub/",
        "Homepage": "https://arelle.org/",
        "Source Code": "https://github.com/Arelle/ixbrl-viewer",
        "Support": "https://groups.google.com/g/arelle-users/"
    },
    "split_keywords": [
        "arelle",
        " plugin",
        " xbrl"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c00c1ce43bdbe5f073dd401ae70cd9108b7eef32c1a44c1dc9ad26ec72b1494c",
                "md5": "1898816d3905b06858f803e8ed9143af",
                "sha256": "c0aec8dcf05990677b89c0a8f771a5da083e7f55b0bb02ff29bbcc9805dd48ae"
            },
            "downloads": -1,
            "filename": "ixbrl_viewer-1.4.26-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1898816d3905b06858f803e8ed9143af",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 542357,
            "upload_time": "2024-04-25T13:28:30",
            "upload_time_iso_8601": "2024-04-25T13:28:30.262868Z",
            "url": "https://files.pythonhosted.org/packages/c0/0c/1ce43bdbe5f073dd401ae70cd9108b7eef32c1a44c1dc9ad26ec72b1494c/ixbrl_viewer-1.4.26-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e4e9cf8be151fc418c2f0b9ff32ad0e281df2f2ca0a460a757464acc08c37c09",
                "md5": "8f8b5c6ef2acd91e67a388e217801667",
                "sha256": "f5bda5ed49730c10ee257ca7853c5d4d24d23113c0cf091f88a43d059827743b"
            },
            "downloads": -1,
            "filename": "ixbrl_viewer-1.4.26.tar.gz",
            "has_sig": false,
            "md5_digest": "8f8b5c6ef2acd91e67a388e217801667",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 2611499,
            "upload_time": "2024-04-25T13:28:31",
            "upload_time_iso_8601": "2024-04-25T13:28:31.807012Z",
            "url": "https://files.pythonhosted.org/packages/e4/e9/cf8be151fc418c2f0b9ff32ad0e281df2f2ca0a460a757464acc08c37c09/ixbrl_viewer-1.4.26.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-25 13:28:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Arelle",
    "github_project": "ixbrl-viewer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "ixbrl-viewer"
}
        
Elapsed time: 0.23665s