npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@ui-grid/importer

v4.12.7

Published

This module provides the ability to import data into ui-grid

Downloads

14

Readme

UI-Grid Importer

The importer plugin for UI-Grid provides the ability to import data into the grid from the grid in CSV or JSON format. The importer can use the native grid menu, or can accept a file from a custom file picker implemented by the user.

Getting Started

You can install @ui-grid/importer via:

npm i --save @ui-grid/importer

Once you install you need to load the respective JS and CSS files as seen bellow:

<link rel="stylesheet" href="/node_modules/@ui-grid/core/css/ui-grid.min.css" type="text/css">
<link rel="stylesheet" href="/node_modules/@ui-grid/importer/css/ui-grid.importer.min.css" type="text/css">
<script src="/node_modules/csv-js/csv.js">
<script src="/node_modules/@ui-grid/core/js/ui-grid.core.min.js">
<script src="/node_modules/@ui-grid/importer/js/ui-grid.importer.min.js">

Alternatively, if you are using Webpack or RequireJS to load your dependencies, you can do the following at the top of the file that needs it:

require('csv-js');
require('@ui-grid/core');
require('@ui-grid/importer');

You also need to have installed the csv-js library. You can configure the csv-js library through use of globals, for example CSV.DETECT_TYPES = false;, refer to the csv-js documentation for more information.

Once you load the files, you need to include 'ui.grid.importer' module in your angularJS app's dependencies, add the ui-grid-importer directive to your grid element, and you must provide a gridOptions.importerDataAddCallback function that adds the created objects into your data array.

angular.module('myApp', [
    'ui.grid',
    'ui.grid.importer'
]).controller('MainCtrl', function() {
    var vm = this;

    vm.gridOptions = {
        enableGridMenu: true,
        data: [],
        importerDataAddCallback: function(grid, newObjects) {
            vm.gridOptions.data = vm.gridOptions.data.concat(newObjects);
        }
    };
});
<div ui-grid="$ctrl.gridOptions" ui-grid-importer>

For json format files the received elements are assumed to match the column.field attributes in your columnDefs, and are loaded into the provided entity.

For csv files the data is mapped to the columnDefs, with columns in the heading row in the csv needing to match either the column.name or column.displayName. Optionally you can provide a custom function that maps headings to column.name, and this will be used instead, you could use this to implement a custom "column picker" type routine. If you are using internationalisation on the headers (say, via adding a cellHeaderFilter), then you can also optionally pass a filter function into the importerHeaderFilterCallback routine. This routine will be called on the displayName to try to match the translated text, if you provide this routine it must return an immediate translation, not a promise - so if using angular-translate you need to use $translate.instant.

Optionally you can provide a custom function that maps the data within each entity as it is imported, refer the documentation for importerObjectCallback.

The importer adds menu items to the grid menu, to use the native UI you need to enable the grid menu using the gridOption enableGridMenu. You can turn the menu items off by setting importerShowMenu: false.

Example

You can find an example of this plugin in action on our website

API Documentation

Documentation for this plugin is provided in the api documentation, but we recommend that you pay special attention to the following:

Issues

You can find issues that are specific to this UI-Grid plugin by looking for the label grid-importer in the ui-grid github issues page.

License

MIT