{
  "type": "object",
  "properties": {
    "config": {
      "$ref": "#/definitions/ComponentConfigDefault"
    },
    "datasets": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ICollapseDataTableDatasetConfig"
      }
    },
    "hideHeader": {
      "type": "boolean"
    },
    "id": {
      "type": "string"
    },
    "reportOptions": {
      "$ref": "#/definitions/ReportOptions"
    },
    "reportMode": {
      "type": "boolean"
    },
    "stateCb": {
      "type": "object"
    },
    "calendarType": {
      "const": "CALENDAR_445",
      "type": "string"
    }
  },
  "required": ["config", "datasets"],
  "definitions": {
    "ComponentConfigDefault": {
      "type": "object",
      "properties": {
        "alignStartTo": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "startOffsetUnits": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "startOffset": {
          "type": "number"
        },
        "lagUnits": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "lagOffset": {
          "type": "number"
        },
        "leadUnits": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "leadOffset": {
          "type": "number"
        },
        "stepUnits": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "stepSize": {
          "type": "number"
        },
        "startAutoRefreshFrequency": {
          "type": "number"
        },
        "dateFormat": {
          "enum": [
            "DAYS",
            "HALFHOUR",
            "HOURS",
            "MILLIS",
            "MINUTES",
            "MONTHS",
            "SECONDS",
            "WEEKS",
            "YEARS"
          ],
          "type": "string"
        },
        "sort": {
          "enum": ["ASC", "DESC"],
          "type": "string"
        },
        "itemsPerPage": {
          "type": "number"
        },
        "transposed": {
          "type": "boolean"
        },
        "showEmpty": {
          "type": "boolean"
        },
        "showTotal": {
          "type": "boolean"
        },
        "hidePagination": {
          "type": "boolean"
        },
        "totalType": {
          "enum": ["AVG", "SUM"],
          "type": "string"
        },
        "totalSize": {
          "enum": ["ALL", "PAGE"],
          "type": "string"
        },
        "textAlign": {
          "enum": ["center", "left", "right"],
          "type": "string"
        },
        "hideDateColumn": {
          "type": "boolean"
        },
        "additionalDateColumn": {
          "enum": ["DAY_OF_WEEK", "NONE", "WEEK"],
          "type": "string"
        },
        "dayOfWeekDisplayType": {
          "enum": ["LONG", "SHORT"],
          "type": "string"
        },
        "isTruncatedByStepUnit": {
          "type": "boolean"
        }
      }
    },
    "ICollapseDataTableDatasetConfig": {
      "type": "object",
      "properties": {
        "identifier": {
          "type": "string"
        },
        "overriddenTitle": {
          "type": "string"
        }
      },
      "required": ["identifier", "overriddenTitle"]
    },
    "ReportOptions": {
      "type": "object",
      "properties": {
        "fontSize": {
          "type": "string"
        }
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
