JSFiddle - React, Tailwind, and code Playground

HTML

<link rel="stylesheet" href="https://cdn.wijmo.com/5.20172.334/styles/wijmo.min.css">
<script src="https://cdn.wijmo.com/5.20172.334/controls/wijmo.min.js"></script>
<script src="https://cdn.wijmo.com/5.20172.334/controls/wijmo.input.min.js"></script>
<script src="https://cdn.wijmo.com/5.20172.334/controls/wijmo.grid.min.js"></script>
<script src="https://cdn.wijmo.com/5.20172.334/controls/wijmo.chart.min.js"></script>
<script src="https://cdn.wijmo.com/5.20172.334/interop/angular/wijmo.angular.min.js"></script>
<div ng-app="app" ng-controller="appCtrl" class="container">
      <h1>Hello Wijmo 5 and AngularJS!</h1>

      <p>This is a <b>FlexGrid</b> control:</p>
      <wj-flex-grid class="" items-source="data" selection-mode="ListBox" headers-visibility="None" allow-dragging="Columns">
        <wj-flex-grid-column
          header="Country"
          binding="country"
        ></wj-flex-grid-column>
        <wj-flex-grid-column header="Sales" binding="sales" is-read-only="true">
          <wj-flex-grid-cell-template cell-type="Cell">
            <wj-input-number
              value="$item.sales"
              format="c2"
              min="0"
              ng-disabled="$item.sales"
            >
            </wj-input-number>
          </wj-flex-grid-cell-template>
        </wj-flex-grid-column>
        <wj-flex-grid-column
          header="Expenses"
          binding="expenses"
        ></wj-flex-grid-column>
        <wj-flex-grid-column
          header="Downloads"
          binding="downloads"
        ></wj-flex-grid-column>
      </wj-flex-grid>
    </div>

JavaScript

// define app, include Wijmo 5 directives
      var app = angular.module("app", ["wj"]);

      // controller
      app.controller("appCtrl", function ($scope) {
        // create some random data
        var countries = "US,Germany,UK,Japan,Italy,Greece".split(","),
          data = [];
        for (var i = 0; i < countries.length; i++) {
          data.push({
            country: countries[i],
            downloads: Math.round(Math.random() * 20000),
            sales: Math.random() * 10000,
            expenses: Math.random() * 5000,
            active: i % 2 === 0,
          });
        }

        // expose data as a CollectionView to get events
        $scope.data = new wijmo.collections.CollectionView(data);
      });