feat(awe-client-angular): replace angular-ui-grid with a modern grid component

Problem to solve

angular-ui-grid 4.12 is unmaintained and is the component most tightly coupled to jQuery, with logic scattered across services/grid/*.js. It is also the heaviest-weight component in any AWE application, so its quality shapes the perception of the whole interface.

Further details

Impact on existing AWE 4 products (level 3 - High): the XML contract for the grid and its columns is kept intact. A legacy-grid mode is offered during 5.0 for projects with custom cell templates or CSS, plus an equivalence matrix for the most-used grid events and actions.

Effort: XL (3-6 weeks) Delivery phase: 2 (major version, controlled breakage) Development order: 20 (Block 2 - Frontend)

Proposal

  • Run a comparative spike between AG Grid Community and Tabulator covering inline editing, tree data, bulk operations, header filters, virtualization and export
  • Implement the chosen grid with full functional parity with the current grid
  • Keep the XML contract for grid and column descriptors unchanged
  • Ship a legacy-grid compatibility mode for the 5.0 line
  • Publish an equivalence matrix for grid events and actions

What does success look like, and how can we measure that?

  • The spike report compares AG Grid Community and Tabulator against the six listed criteria and recommends one
  • The new grid reaches functional parity with angular-ui-grid on editing, filtering, virtualization and export
  • Existing grid/column XML descriptors render without modification
  • legacy-grid mode is available for the 5.0 release and documented
  • Depends on: #755, #765
  • Part of the AWE 5 evolution plan (initiative 4 of 27, development order 20).