@hpcc-js/dgrid-shim

dgrid shim

Stats

StarsIssuesVersionUpdatedCreatedSize
@hpcc-js/dgrid-shim
5642.14.010 days ago4 years agoMinified + gzip package size for @hpcc-js/dgrid-shim in KB

Readme

@hpcc-js/dgrid-shim

This package is part of the mono repository "@hpcc-js" (aka Visualization Framework), for more information including quick start, demos and tutorials, please visit the main page on GitHub: hpcc-systems/Visualization.

Details

The dgrid-shim package "wraps" a subset of the dojo grid functionality in a WebPack bundle to simplify its inclusion in modern JavaScript libraries / Web Applications.

Currently it exposes the following items:

  • Deferred
  • domConstruct
  • Memory
  • QueryResults
  • Grid = declare([OnDemandGrid, Keyboard, Selection, ColumnResizer, CompoundColumns, GridHelper]);
  • PagingGrid = declare([_Grid, Pagination, Keyboard, Selection, ColumnResizer, CompoundColumns, GridHelper]);

Consuming with WebPack

Should "just work"

Consuming with iife

Simply include the package in your html file as normal (it has a global ID of "@hpcc-js/dgrid-shim"):

<head>
    ...
    <script src="node_modules/@hpcc-js/dgrid-shim/dist/index.min.js"></script>
    <script>
        var dgridShim = window["@hpcc-js/dgrid-shim"];
    </script>
</head>
<body>
    ...
    <script>
        var myGrid = new dgridShim.PagingGrid();
        ...
    </script>
    ...
</body>

Consuming with Rollup.js

Since Rollup.js has no native support for non es6 modules (the rollup-plugin-commonjs simply converts commonjs exports to es6 for example) and part of the es6 specifications dictates that modules should "use strict", which will cause issues with libraries that rely on non strict features.
As dgrid-shim is dependent on DGrid and Dojo which uses non "strict" code, it is ultimately impossible to use Rollup.js to create bundles which include dgrid-shim (without forcing Rollup.JS to not include "use strict"). Here are two suggested workarounds:

Exclude dgrid-shim from your bundle

  1. Mark dgri-shim as external in your rollup.config.js file:
     external: [
         "@hpcc-js/dgrid-shim"
     ],
    
  2. Add the official exported global ID to your rollup.config.js:
     output: {
         ...
         globals: {
             "@hpcc-js/dgrid-shim": "@hpcc-js/dgrid-shim"
         }
     },
    
  3. Manually include dgrid-shim as an iife source file in your html page:
    <head>
     ...
     <script src="node_modules/@hpcc-js/dgrid-shim/dist/index.min.js"></script>
    </head>
    

Include dgrid-shim in your bundle

  1. Disable "use strict" injection into your bundle:
     output: {
         ...
         strict: false
     }
    
  2. Add named exports for the dgrid-shim "commonjs" module:
     plugins: [
         ...,
         commonjs({
             namedExports: {
                 "node_modules/@hpcc-js/dgrid-shim/dist/index.js": ["Deferred", "domConstruct", "QueryResults", "Memory", "PagingGrid", "Grid"],
             }
         }),
         ...
     ]
    

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.