Skip to content

Indicators

You can use the style property to display the indicators.
Currently the only indicator style supported is "triangle".

Usage

html
<div class="sample-basic demo-grid small"></div>
js
const grid = new cheetahGrid.ListGrid({
  parentElement: document.querySelector(".sample-basic"),
  header: [
    {
      field: "no",
      caption: "No",
      width: 50,
    },
    {
      field: "text",
      caption: "Text",
      width: 150,
      style: { indicatorTopLeft: "triangle" },
    },
    {
      field: "text",
      caption: "Text",
      width: 150,
      style: { indicatorTopRight: "triangle" },
    },
  ],
});
grid.records = [
  { no: 1, text: "data" },
  { no: 2, text: "data" },
  { no: 3, text: "data" },
  { no: 4, text: "data" },
];

It supports indicatorTopLeft, indicatorTopRight, indicatorBottomRight, and indicatorBottomLeft

You can also control the display of indicators per record using functions.

html
<div class="sample-function demo-grid small"></div>
js
const grid = new cheetahGrid.ListGrid({
  parentElement: document.querySelector(".sample-function"),
  header: [
    {
      field: "no",
      caption: "No",
      width: 50,
    },
    {
      field: "text",
      caption: "Text",
      width: 150,
      style(record) {
        if (record.no === 1) {
          return { indicatorTopLeft: "triangle" };
        }
        if (record.no === 2) {
          return { indicatorTopRight: "triangle" };
        }
        if (record.no === 3) {
          return { indicatorBottomRight: "triangle" };
        }
        if (record.no === 4) {
          return { indicatorBottomLeft: "triangle" };
        }
        return undefined;
      },
    },
  ],
});
grid.records = [
  { no: 1, text: "data" },
  { no: 2, text: "data" },
  { no: 3, text: "data" },
  { no: 4, text: "data" },
];

Indicator Styles

We recommend using themes to control the style of the indicator. You can control the size and color of the indicators by setting the theme's indicators.topLeftColor, indicators.topLeftSize, indicators.topRightColor, indicators.topRightSize, indicators.bottomRightColor, indicators.bottomRightSize , indicators.bottomLeftColor, and indicators.bottomLeftSize properties.

html
<div class="sample-theme demo-grid small"></div>
js
const grid = new cheetahGrid.ListGrid({
  parentElement: document.querySelector(".sample-theme"),
  header: [
    {
      field: "no",
      caption: "No",
      width: 50,
    },
    {
      field: "text",
      caption: "Text",
      width: 150,
      style(record) {
        if (record.no === 1) {
          return { indicatorTopLeft: "triangle" };
        }
        if (record.no === 2) {
          return { indicatorTopRight: "triangle" };
        }
        if (record.no === 3) {
          return { indicatorBottomRight: "triangle" };
        }
        if (record.no === 4) {
          return { indicatorBottomLeft: "triangle" };
        }
        return undefined;
      },
    },
  ],
});
grid.records = [
  { no: 1, text: "data" },
  { no: 2, text: "data" },
  { no: 3, text: "data" },
  { no: 4, text: "data" },
];
grid.theme = {
  indicators: {
    topLeftColor: "blue",
    topLeftSize: 10,
    topRightColor: "red",
    topRightSize: 10,
    bottomRightColor: "green",
    bottomRightSize: 10,
    bottomLeftColor: "black",
    bottomLeftSize: 10,
  },
};

You can also specify the indicator in object form if you want to change its style individually.

html
<div class="sample-style demo-grid small"></div>
js
const grid = new cheetahGrid.ListGrid({
  parentElement: document.querySelector(".sample-style"),
  header: [
    {
      field: "no",
      caption: "No",
      width: 50,
    },
    {
      field: "text",
      caption: "Text",
      width: 150,
      style(record) {
        if (record.no === 3) {
          return {
            indicatorTopLeft: {
              style: "triangle",
              color: "red",
              size: 15,
            },
          };
        }
        return undefined;
      },
    },
  ],
});
grid.records = [
  { no: 1, text: "data" },
  { no: 2, text: "data" },
  { no: 3, text: "data" },
  { no: 4, text: "data" },
];