Handsontable example

by bfelda

HTML

<app-root></app-root>

CSS

</style><!-- Ugly Hack due to jsFiddle issue -->

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/handsontable.full.min.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/handsontable.full.min.css">
<script src="https://handsontable.com/docs/6.1.1/scripts/jsfiddle-fixer.js"></script>
<script src="https://cdn.jsdelivr.net/npm/rxjs@6/bundles/rxjs.umd.js"></script>
<script src="https://cdn.jsdelivr.net/npm/core-js@2/client/core.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/zone.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/compiler@6/bundles/compiler.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/core@6/bundles/core.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/common@6/bundles/common.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/platform-browser@6/bundles/platform-browser.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@angular/platform-browser-dynamic@6/bundles/platform-browser-dynamic.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@handsontable-pro/[email protected]/bundles/handsontable-pro-angular.umd.min.js"></script>

TypeScript

// app.component.ts
  import { Component, OnInit  } from '@angular/core';
  import * as Handsontable from 'handsontable-pro';
  
  @Component({
    selector: 'app-root',
    template: `
    <div>
      <hot-table
        class="hot"
        [hotId]="instance"
        [data]="dataset"
        [settings]="settings"
        [afterInit]="onAfterInit"
        [colHeaders]="true"
        [rowHeaders]="true">
          <hot-column data="id" [readOnly]="true" title="ID"></hot-column>
          <hot-column data="name" title="Full name"></hot-column>
          <hot-column data="address" title="Street name"></hot-column>
      </hot-table>
    </div>
    `,
  })
  class AppComponent {
  
  settings: Handsontable.GridSettings = {
    columnSorting: {
      initialConfig: {
        column: 1,
        sortOrder: 'asc'
      }
    },
    afterColumnSort: (currentSortConfig, destSortConfig) => {
        console.log(currentSortConfig, destSortConfig);
    }
  }  
  
    dataset: any[] = [
      {id: 1, name: 'Ted Right', address: 'Wall Street'},
      {id: 2, name: 'Frank Honest', address: 'Pennsylvania Avenue'},
      {id: 3, name: 'Joan Well', address: 'Broadway'},
      {id: 4, name: 'Gail Polite', address: 'Bourbon Street'},
      {id: 5, name: 'Michael Fair', address: 'Lombard Street'},
      {id: 6, name: 'Mia Fair', address: 'Rodeo Drive'},
      {id: 7, name: 'Cora Fair', address: 'Sunset Boulevard'},
      {id: 8, name: 'Jack Right', address: 'Michigan Avenue'},
    ];
  }
  
  // app.module.ts
  import { NgModule } from '@angular/core';
  import { BrowserModule } from '@angular/platform-browser';
  import { HotTableModule } from '@handsontable-pro/angular';
  
  @NgModule({
    imports:      [ BrowserModule, HotTableModule ],
    declarations: [ AppComponent ],
    bootstrap:    [ AppComponent ]
  })
  class AppModule { }
  
  // bootstrap
  import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
  
 ...