{
    "pipes": [],
    "interfaces": [
        {
            "name": "HelixRequest",
            "id": "interface-HelixRequest-75cdd56f58bc639681072e593c0effa7c1ccba2af537b2a4b93746aa3f1d35e729428000225a04219b1b7ac5ba4629dc5d80383e2b93e47950307e8bff7fffa8",
            "file": "server/controllers/d.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Request } from 'express';\nimport request from 'request';\n\nexport interface HelixRequest extends Request {\n  session?: HelixSession;\n}\n\ninterface HelixSession {\n  // since this token is from a configurable\n  // identity source, the format really is\n  // `any` from helix-front's point of view.\n  identityToken: any;\n  username: string;\n  isAdmin: boolean;\n}\n\ntype AgentOptions = {\n  rejectUnauthorized: boolean;\n  ca?: string;\n};\n\nexport type HelixRequestOptions = {\n  url: string;\n  json: string;\n  headers: request.Headers;\n  agentOptions: AgentOptions;\n  body?: string;\n};\n",
            "properties": [
                {
                    "name": "session",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HelixSession",
                    "optional": true,
                    "description": "",
                    "line": 5
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": [],
            "extends": "Request"
        },
        {
            "name": "HelixSession",
            "id": "interface-HelixSession-75cdd56f58bc639681072e593c0effa7c1ccba2af537b2a4b93746aa3f1d35e729428000225a04219b1b7ac5ba4629dc5d80383e2b93e47950307e8bff7fffa8",
            "file": "server/controllers/d.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Request } from 'express';\nimport request from 'request';\n\nexport interface HelixRequest extends Request {\n  session?: HelixSession;\n}\n\ninterface HelixSession {\n  // since this token is from a configurable\n  // identity source, the format really is\n  // `any` from helix-front's point of view.\n  identityToken: any;\n  username: string;\n  isAdmin: boolean;\n}\n\ntype AgentOptions = {\n  rejectUnauthorized: boolean;\n  ca?: string;\n};\n\nexport type HelixRequestOptions = {\n  url: string;\n  json: string;\n  headers: request.Headers;\n  agentOptions: AgentOptions;\n  body?: string;\n};\n",
            "properties": [
                {
                    "name": "identityToken",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "isAdmin",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "username",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 13
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        },
        {
            "name": "IReplica",
            "id": "interface-IReplica-c368277d55c3a276a0743ee15fa8b9d77b202780d749de8a9363f93aaa5331e3afffe77b25bc9fff5156b0be913836c0d7e13b89ebf930d53338f495b6b84e94",
            "file": "src/app/resource/shared/resource.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import * as _ from 'lodash';\n\nexport interface IReplica {\n  instanceName: string;\n  externalView: string;\n  idealState: string;\n}\n\nexport class Partition {\n  name: string;\n  replicas: IReplica[];\n\n  get isReady() {\n    return !_.some(\n      this.replicas,\n      (replica) =>\n        !replica.externalView || replica.externalView != replica.idealState\n    );\n  }\n\n  constructor(name: string) {\n    this.name = name;\n    this.replicas = [];\n  }\n}\n\nexport class Resource {\n  readonly name: string;\n\n  // TODO vxu: convert it to an enum in future if necessary\n  readonly alive: boolean;\n\n  readonly cluster: string;\n\n  // meta data\n  readonly idealStateMode: string;\n  readonly rebalanceMode: string;\n  readonly stateModel: string;\n  readonly partitionCount: number;\n  readonly replicaCount: number;\n\n  readonly idealState: any;\n  readonly externalView: any;\n\n  readonly partitions: Partition[];\n\n  get enabled(): boolean {\n    // there are two cases meaning enabled both:\n    //   HELIX_ENABLED: true or no such item in idealState\n    return _.get(this.idealState, 'simpleFields.HELIX_ENABLED') != 'false';\n  }\n\n  get online(): boolean {\n    return !_.isEmpty(this.externalView);\n  }\n\n  constructor(\n    cluster: string,\n    name: string,\n    config: any,\n    idealState: any,\n    externalView: any\n  ) {\n    this.cluster = cluster;\n    this.name = name;\n\n    externalView = externalView || {};\n\n    // ignore config for now since config component will fetch itself\n\n    this.idealStateMode = idealState.simpleFields.IDEAL_STATE_MODE;\n    this.rebalanceMode = idealState.simpleFields.REBALANCE_MODE;\n    this.stateModel = idealState.simpleFields.STATE_MODEL_DEF_REF;\n    this.partitionCount = +idealState.simpleFields.NUM_PARTITIONS;\n    this.replicaCount = +idealState.simpleFields.REPLICAS;\n\n    // fetch partition names from externalView.mapFields is (relatively) more stable\n    this.partitions = [];\n    for (const partitionName in externalView.mapFields) {\n      const partition = new Partition(partitionName);\n\n      // in FULL_AUTO mode, externalView is more important\n      // if preferences list exists, fetch instances from it, else whatever\n      if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.listFields[partitionName]\n      ) {\n        for (const replicaName of idealState.listFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.mapFields[partitionName]\n      ) {\n        for (const replicaName in idealState.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else {\n        for (const replicaName in externalView.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      }\n\n      // sort replicas by states\n      partition.replicas = _.sortBy(partition.replicas, 'externalView');\n\n      this.partitions.push(partition);\n    }\n\n    this.idealState = idealState;\n    this.externalView = externalView;\n  }\n}\n",
            "properties": [
                {
                    "name": "externalView",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "idealState",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "instanceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        },
        {
            "name": "ListFieldObject",
            "id": "interface-ListFieldObject-9a579c751dc9ff03063f99c75efe170bbfd4d7dd827c0bcb47ce7e303f211f158d9908ef90c5b54f79dfd5d45ff2c7f95357eccbc3453011fcd26d9e597b9a2c",
            "file": "src/app/shared/models/node.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n  name: string;\n  value: string;\n}\n\ninterface ListFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface Payload {\n  id: string;\n  simpleFields?: any;\n  listFields?: any;\n  mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n  id: string;\n  simpleFields: SimpleFieldObject[] = [];\n  listFields: ListFieldObject[] = [];\n  mapFields: MapFieldObject[] = [];\n\n  constructor(obj: any) {\n    if (obj != null) {\n      this.id = obj.id;\n      this.simpleFields = this.keyValueToArray(obj.simpleFields);\n\n      _.forOwn(obj['listFields'], (v, k) => {\n        this.listFields.push(<ListFieldObject>{\n          name: k,\n          value: _.map(\n            v,\n            (item) =>\n              <SimpleFieldObject>{\n                value: item,\n              }\n          ),\n        });\n      });\n\n      _.forOwn(obj['mapFields'], (v, k) => {\n        this.mapFields.push(<MapFieldObject>{\n          name: k.trim(),\n          value: this.keyValueToArray(v),\n        });\n      });\n    }\n  }\n\n  public appendSimpleField(name: string, value: string) {\n    this.simpleFields.push(<SimpleFieldObject>{\n      name,\n      value,\n    });\n  }\n\n  public appendMapField(key: string, name: string, value: string) {\n    const index = _.findIndex(this.mapFields, { name: key });\n    if (index >= 0) {\n      this.mapFields[index].value.push(<SimpleFieldObject>{\n        name: name.trim(),\n        value,\n      });\n    } else {\n      this.mapFields.push(<MapFieldObject>{\n        name: key,\n        value: [\n          <SimpleFieldObject>{\n            name: name.trim(),\n            value,\n          },\n        ],\n      });\n    }\n  }\n\n  public json(id: string): string {\n    const obj: Payload = {\n      id,\n    };\n\n    if (this?.simpleFields.length > 0) {\n      obj.simpleFields = {};\n      _.forEach(this.simpleFields, (item: SimpleFieldObject) => {\n        obj.simpleFields[item.name] = item.value;\n      });\n    }\n\n    if (this?.listFields.length > 0) {\n      obj.listFields = {};\n      _.forEach(this.listFields, (item: ListFieldObject) => {\n        obj.listFields[item.name] = [];\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          obj.listFields[item.name].push(subItem.value);\n        });\n      });\n    }\n\n    if (this?.mapFields.length > 0) {\n      obj.mapFields = {};\n      _.forEach(this.mapFields, (item: MapFieldObject) => {\n        obj.mapFields[item.name.trim()] = item.value ? {} : null;\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          // if the value is a string that contains all digits, parse it to a number\n          let parsedValue: string | number = subItem.value;\n          if (\n            typeof subItem.value === 'string' &&\n            /^\\d+$/.test(subItem.value)\n          ) {\n            parsedValue = Number(subItem.value);\n          }\n\n          obj.mapFields[item.name.trim()][subItem.name] = parsedValue;\n        });\n      });\n    }\n\n    return JSON.stringify(obj);\n  }\n\n  // Converting raw simpleFields to SimpleFieldObject[]\n  private keyValueToArray(obj: Object): SimpleFieldObject[] {\n    const result: SimpleFieldObject[] = [];\n    for (const k in obj) {\n      if (obj.hasOwnProperty(k)) {\n        result.push(<SimpleFieldObject>{\n          name: k,\n          value: obj[k],\n        });\n      }\n    }\n    return result;\n  }\n}\n",
            "properties": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "SimpleFieldObject[]",
                    "optional": false,
                    "description": "",
                    "line": 10
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        },
        {
            "name": "MapFieldObject",
            "id": "interface-MapFieldObject-9a579c751dc9ff03063f99c75efe170bbfd4d7dd827c0bcb47ce7e303f211f158d9908ef90c5b54f79dfd5d45ff2c7f95357eccbc3453011fcd26d9e597b9a2c",
            "file": "src/app/shared/models/node.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n  name: string;\n  value: string;\n}\n\ninterface ListFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface Payload {\n  id: string;\n  simpleFields?: any;\n  listFields?: any;\n  mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n  id: string;\n  simpleFields: SimpleFieldObject[] = [];\n  listFields: ListFieldObject[] = [];\n  mapFields: MapFieldObject[] = [];\n\n  constructor(obj: any) {\n    if (obj != null) {\n      this.id = obj.id;\n      this.simpleFields = this.keyValueToArray(obj.simpleFields);\n\n      _.forOwn(obj['listFields'], (v, k) => {\n        this.listFields.push(<ListFieldObject>{\n          name: k,\n          value: _.map(\n            v,\n            (item) =>\n              <SimpleFieldObject>{\n                value: item,\n              }\n          ),\n        });\n      });\n\n      _.forOwn(obj['mapFields'], (v, k) => {\n        this.mapFields.push(<MapFieldObject>{\n          name: k.trim(),\n          value: this.keyValueToArray(v),\n        });\n      });\n    }\n  }\n\n  public appendSimpleField(name: string, value: string) {\n    this.simpleFields.push(<SimpleFieldObject>{\n      name,\n      value,\n    });\n  }\n\n  public appendMapField(key: string, name: string, value: string) {\n    const index = _.findIndex(this.mapFields, { name: key });\n    if (index >= 0) {\n      this.mapFields[index].value.push(<SimpleFieldObject>{\n        name: name.trim(),\n        value,\n      });\n    } else {\n      this.mapFields.push(<MapFieldObject>{\n        name: key,\n        value: [\n          <SimpleFieldObject>{\n            name: name.trim(),\n            value,\n          },\n        ],\n      });\n    }\n  }\n\n  public json(id: string): string {\n    const obj: Payload = {\n      id,\n    };\n\n    if (this?.simpleFields.length > 0) {\n      obj.simpleFields = {};\n      _.forEach(this.simpleFields, (item: SimpleFieldObject) => {\n        obj.simpleFields[item.name] = item.value;\n      });\n    }\n\n    if (this?.listFields.length > 0) {\n      obj.listFields = {};\n      _.forEach(this.listFields, (item: ListFieldObject) => {\n        obj.listFields[item.name] = [];\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          obj.listFields[item.name].push(subItem.value);\n        });\n      });\n    }\n\n    if (this?.mapFields.length > 0) {\n      obj.mapFields = {};\n      _.forEach(this.mapFields, (item: MapFieldObject) => {\n        obj.mapFields[item.name.trim()] = item.value ? {} : null;\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          // if the value is a string that contains all digits, parse it to a number\n          let parsedValue: string | number = subItem.value;\n          if (\n            typeof subItem.value === 'string' &&\n            /^\\d+$/.test(subItem.value)\n          ) {\n            parsedValue = Number(subItem.value);\n          }\n\n          obj.mapFields[item.name.trim()][subItem.name] = parsedValue;\n        });\n      });\n    }\n\n    return JSON.stringify(obj);\n  }\n\n  // Converting raw simpleFields to SimpleFieldObject[]\n  private keyValueToArray(obj: Object): SimpleFieldObject[] {\n    const result: SimpleFieldObject[] = [];\n    for (const k in obj) {\n      if (obj.hasOwnProperty(k)) {\n        result.push(<SimpleFieldObject>{\n          name: k,\n          value: obj[k],\n        });\n      }\n    }\n    return result;\n  }\n}\n",
            "properties": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "SimpleFieldObject[]",
                    "optional": false,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        },
        {
            "name": "Payload",
            "id": "interface-Payload-9a579c751dc9ff03063f99c75efe170bbfd4d7dd827c0bcb47ce7e303f211f158d9908ef90c5b54f79dfd5d45ff2c7f95357eccbc3453011fcd26d9e597b9a2c",
            "file": "src/app/shared/models/node.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n  name: string;\n  value: string;\n}\n\ninterface ListFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface Payload {\n  id: string;\n  simpleFields?: any;\n  listFields?: any;\n  mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n  id: string;\n  simpleFields: SimpleFieldObject[] = [];\n  listFields: ListFieldObject[] = [];\n  mapFields: MapFieldObject[] = [];\n\n  constructor(obj: any) {\n    if (obj != null) {\n      this.id = obj.id;\n      this.simpleFields = this.keyValueToArray(obj.simpleFields);\n\n      _.forOwn(obj['listFields'], (v, k) => {\n        this.listFields.push(<ListFieldObject>{\n          name: k,\n          value: _.map(\n            v,\n            (item) =>\n              <SimpleFieldObject>{\n                value: item,\n              }\n          ),\n        });\n      });\n\n      _.forOwn(obj['mapFields'], (v, k) => {\n        this.mapFields.push(<MapFieldObject>{\n          name: k.trim(),\n          value: this.keyValueToArray(v),\n        });\n      });\n    }\n  }\n\n  public appendSimpleField(name: string, value: string) {\n    this.simpleFields.push(<SimpleFieldObject>{\n      name,\n      value,\n    });\n  }\n\n  public appendMapField(key: string, name: string, value: string) {\n    const index = _.findIndex(this.mapFields, { name: key });\n    if (index >= 0) {\n      this.mapFields[index].value.push(<SimpleFieldObject>{\n        name: name.trim(),\n        value,\n      });\n    } else {\n      this.mapFields.push(<MapFieldObject>{\n        name: key,\n        value: [\n          <SimpleFieldObject>{\n            name: name.trim(),\n            value,\n          },\n        ],\n      });\n    }\n  }\n\n  public json(id: string): string {\n    const obj: Payload = {\n      id,\n    };\n\n    if (this?.simpleFields.length > 0) {\n      obj.simpleFields = {};\n      _.forEach(this.simpleFields, (item: SimpleFieldObject) => {\n        obj.simpleFields[item.name] = item.value;\n      });\n    }\n\n    if (this?.listFields.length > 0) {\n      obj.listFields = {};\n      _.forEach(this.listFields, (item: ListFieldObject) => {\n        obj.listFields[item.name] = [];\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          obj.listFields[item.name].push(subItem.value);\n        });\n      });\n    }\n\n    if (this?.mapFields.length > 0) {\n      obj.mapFields = {};\n      _.forEach(this.mapFields, (item: MapFieldObject) => {\n        obj.mapFields[item.name.trim()] = item.value ? {} : null;\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          // if the value is a string that contains all digits, parse it to a number\n          let parsedValue: string | number = subItem.value;\n          if (\n            typeof subItem.value === 'string' &&\n            /^\\d+$/.test(subItem.value)\n          ) {\n            parsedValue = Number(subItem.value);\n          }\n\n          obj.mapFields[item.name.trim()][subItem.name] = parsedValue;\n        });\n      });\n    }\n\n    return JSON.stringify(obj);\n  }\n\n  // Converting raw simpleFields to SimpleFieldObject[]\n  private keyValueToArray(obj: Object): SimpleFieldObject[] {\n    const result: SimpleFieldObject[] = [];\n    for (const k in obj) {\n      if (obj.hasOwnProperty(k)) {\n        result.push(<SimpleFieldObject>{\n          name: k,\n          value: obj[k],\n        });\n      }\n    }\n    return result;\n  }\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "listFields",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": true,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "mapFields",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": true,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "simpleFields",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": true,
                    "description": "",
                    "line": 20
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        },
        {
            "name": "SimpleFieldObject",
            "id": "interface-SimpleFieldObject-9a579c751dc9ff03063f99c75efe170bbfd4d7dd827c0bcb47ce7e303f211f158d9908ef90c5b54f79dfd5d45ff2c7f95357eccbc3453011fcd26d9e597b9a2c",
            "file": "src/app/shared/models/node.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n  name: string;\n  value: string;\n}\n\ninterface ListFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface Payload {\n  id: string;\n  simpleFields?: any;\n  listFields?: any;\n  mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n  id: string;\n  simpleFields: SimpleFieldObject[] = [];\n  listFields: ListFieldObject[] = [];\n  mapFields: MapFieldObject[] = [];\n\n  constructor(obj: any) {\n    if (obj != null) {\n      this.id = obj.id;\n      this.simpleFields = this.keyValueToArray(obj.simpleFields);\n\n      _.forOwn(obj['listFields'], (v, k) => {\n        this.listFields.push(<ListFieldObject>{\n          name: k,\n          value: _.map(\n            v,\n            (item) =>\n              <SimpleFieldObject>{\n                value: item,\n              }\n          ),\n        });\n      });\n\n      _.forOwn(obj['mapFields'], (v, k) => {\n        this.mapFields.push(<MapFieldObject>{\n          name: k.trim(),\n          value: this.keyValueToArray(v),\n        });\n      });\n    }\n  }\n\n  public appendSimpleField(name: string, value: string) {\n    this.simpleFields.push(<SimpleFieldObject>{\n      name,\n      value,\n    });\n  }\n\n  public appendMapField(key: string, name: string, value: string) {\n    const index = _.findIndex(this.mapFields, { name: key });\n    if (index >= 0) {\n      this.mapFields[index].value.push(<SimpleFieldObject>{\n        name: name.trim(),\n        value,\n      });\n    } else {\n      this.mapFields.push(<MapFieldObject>{\n        name: key,\n        value: [\n          <SimpleFieldObject>{\n            name: name.trim(),\n            value,\n          },\n        ],\n      });\n    }\n  }\n\n  public json(id: string): string {\n    const obj: Payload = {\n      id,\n    };\n\n    if (this?.simpleFields.length > 0) {\n      obj.simpleFields = {};\n      _.forEach(this.simpleFields, (item: SimpleFieldObject) => {\n        obj.simpleFields[item.name] = item.value;\n      });\n    }\n\n    if (this?.listFields.length > 0) {\n      obj.listFields = {};\n      _.forEach(this.listFields, (item: ListFieldObject) => {\n        obj.listFields[item.name] = [];\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          obj.listFields[item.name].push(subItem.value);\n        });\n      });\n    }\n\n    if (this?.mapFields.length > 0) {\n      obj.mapFields = {};\n      _.forEach(this.mapFields, (item: MapFieldObject) => {\n        obj.mapFields[item.name.trim()] = item.value ? {} : null;\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          // if the value is a string that contains all digits, parse it to a number\n          let parsedValue: string | number = subItem.value;\n          if (\n            typeof subItem.value === 'string' &&\n            /^\\d+$/.test(subItem.value)\n          ) {\n            parsedValue = Number(subItem.value);\n          }\n\n          obj.mapFields[item.name.trim()][subItem.name] = parsedValue;\n        });\n      });\n    }\n\n    return JSON.stringify(obj);\n  }\n\n  // Converting raw simpleFields to SimpleFieldObject[]\n  private keyValueToArray(obj: Object): SimpleFieldObject[] {\n    const result: SimpleFieldObject[] = [];\n    for (const k in obj) {\n      if (obj.hasOwnProperty(k)) {\n        result.push(<SimpleFieldObject>{\n          name: k,\n          value: obj[k],\n        });\n      }\n    }\n    return result;\n  }\n}\n",
            "properties": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5
                }
            ],
            "indexSignatures": [],
            "kind": 165,
            "methods": []
        }
    ],
    "injectables": [
        {
            "name": "ChooserService",
            "id": "injectable-ChooserService-a01943bd10a04d42bc6a8ac6d54b31f99803f30f339557d926933c7f2dfddeb933814f7866498710996c97dddac7789e68e0cc0ca84ce9642644d11b0610c190",
            "file": "src/app/chooser/shared/chooser.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "getAll",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 7,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\n\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class ChooserService extends HelixService {\n  public getAll() {\n    return this.request(`/list`, '');\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "ClusterService",
            "id": "injectable-ClusterService-1b7c5db1def61476053458bfd34ed41240ad6e103043443492ad80db7a658c7b17903da30e6b5ef6d27e6a8b8328f61e4e04bb8c9fcae6e5ba79bc784ed5ccdf",
            "file": "src/app/cluster/shared/cluster.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "activate",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "superCluster",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 37,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "superCluster",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "create",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "disable",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 33,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "disableMaintenanceMode",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 50,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "enable",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 29,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "enableMaintenanceMode",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "reason",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 44,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "reason",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 15,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getAll",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 9,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "remove",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 25,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Cluster } from './cluster.model';\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class ClusterService extends HelixService {\n  public getAll() {\n    return this.request('/clusters').pipe(\n      map((data) => data.clusters.sort().map((name) => <Cluster>{ name }))\n    );\n  }\n\n  public get(name: string) {\n    return this.request(`/clusters/${name}`).pipe(\n      map((data) => new Cluster(data))\n    );\n  }\n\n  public create(name: string) {\n    return this.put(`/clusters/${name}`, null);\n  }\n\n  public remove(name: string) {\n    return this.delete(`/clusters/${name}`);\n  }\n\n  public enable(name: string) {\n    return this.post(`/clusters/${name}?command=enable`, null);\n  }\n\n  public disable(name: string) {\n    return this.post(`/clusters/${name}?command=disable`, null);\n  }\n\n  public activate(name: string, superCluster: string) {\n    return this.post(\n      `/clusters/${name}?command=activate&superCluster=${superCluster}`,\n      null\n    );\n  }\n\n  public enableMaintenanceMode(name: string, reason: string) {\n    return this.post(`/clusters/${name}?command=enableMaintenanceMode`, {\n      reason,\n    });\n  }\n\n  public disableMaintenanceMode(name: string) {\n    return this.post(`/clusters/${name}?command=disableMaintenanceMode`, null);\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "ConfigurationService",
            "id": "injectable-ConfigurationService-534b30e63399b706eee2a76fbb8d44a72de6ee2c61b3a7f527e7cc195d0abd5046bb0e618a1907c090432d0219d36c58192d392fb25fdfa2a065583c7115e949",
            "file": "src/app/configuration/shared/configuration.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "deleteClusterConfig",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "deleteInstanceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 43,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "deleteResourceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 71,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getClusterConfig",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 8,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getInstanceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getResourceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 54,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setClusterConfig",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setInstanceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setResourceConfig",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "config",
                            "type": "Node",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\n\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class ConfigurationService extends HelixService {\n  public getClusterConfig(name: string) {\n    return this.request(`/clusters/${name}/configs`);\n  }\n\n  public setClusterConfig(name: string, config: Node) {\n    return this.post(\n      `/clusters/${name}/configs?command=update`,\n      JSON.parse(config.json(name))\n    );\n  }\n\n  public deleteClusterConfig(name: string, config: Node) {\n    return this.post(\n      `/clusters/${name}/configs?command=delete`,\n      JSON.parse(config.json(name))\n    );\n  }\n\n  public getInstanceConfig(clusterName: string, instanceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/instances/${instanceName}/configs`\n    );\n  }\n\n  public setInstanceConfig(\n    clusterName: string,\n    instanceName: string,\n    config: Node\n  ) {\n    return this.post(\n      `/clusters/${clusterName}/instances/${instanceName}/configs?command=update`,\n      JSON.parse(config.json(instanceName))\n    );\n  }\n\n  public deleteInstanceConfig(\n    clusterName: string,\n    instanceName: string,\n    config: Node\n  ) {\n    return this.post(\n      `/clusters/${clusterName}/instances/${instanceName}/configs?command=delete`,\n      JSON.parse(config.json(instanceName))\n    );\n  }\n\n  public getResourceConfig(clusterName: string, resourceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/resources/${resourceName}/configs`\n    );\n  }\n\n  public setResourceConfig(\n    clusterName: string,\n    resourceName: string,\n    config: Node\n  ) {\n    return this.post(\n      `/clusters/${clusterName}/resources/${resourceName}/configs?command=update`,\n      JSON.parse(config.json(resourceName))\n    );\n  }\n\n  public deleteResourceConfig(\n    clusterName: string,\n    resourceName: string,\n    config: Node\n  ) {\n    return this.post(\n      `/clusters/${clusterName}/resources/${resourceName}/configs?command=delete`,\n      JSON.parse(config.json(resourceName))\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "ControllerService",
            "id": "injectable-ControllerService-e18b1d2fe2d7f227243c3e164cabeb8728a8ef12a63bac05a25740668d7e3182dbff7da3afdf9d95332bedfde44222f90c2c63e8622cfbe92d9f4a7d8fbf2c89",
            "file": "src/app/controller/shared/controller.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 9,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\n\nimport { HelixService } from '../../core/helix.service';\nimport { Controller } from './controller.model';\n\n@Injectable()\nexport class ControllerService extends HelixService {\n  public get(clusterName: string) {\n    return this.request(`/clusters/${clusterName}/controller`).pipe(\n      map(\n        (data) =>\n          new Controller(\n            data.controller,\n            clusterName,\n            data.LIVE_INSTANCE,\n            data.SESSION_ID,\n            data.HELIX_VERSION\n          )\n      )\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "HelixService",
            "id": "injectable-HelixService-e653d0fe460a0cb3e3ccaaddca32d07afcd5cfe0bd3e22d86fe88ce34d53e5d129fdcf54cd51b745bd9a852f9c4b15d5b45648903a57f2ac06e90b7b136dfd0e",
            "file": "src/app/core/helix.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { throwError as observableThrowError, Observable } from 'rxjs';\n\nimport { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\nimport { Settings } from './settings';\n\n@Injectable()\nexport class HelixService {\n  constructor(protected router: Router, private http: HttpClient) {}\n\n  public can(): Observable<any> {\n    return this.http\n      .get(`${Settings.userAPI}/can`, { headers: this.getHeaders() })\n      .pipe(catchError(this.errorHandler));\n  }\n\n  protected request(path: string, helix?: string): Observable<any> {\n    if (helix == null) {\n      helix = this.getHelixKey();\n    }\n\n    return this.http\n      .get(`${Settings.helixAPI}${helix}${path}`, {\n        headers: this.getHeaders(),\n      })\n      .pipe(catchError(this.errorHandler));\n  }\n\n  protected post(path: string, data: any): Observable<any> {\n    return this.http\n      .post(`${Settings.helixAPI}${this.getHelixKey()}${path}`, data, {\n        headers: this.getHeaders(),\n      })\n      .pipe(catchError(this.errorHandler));\n  }\n\n  protected put(path: string, data: string): Observable<any> {\n    return this.http\n      .put(`${Settings.helixAPI}${this.getHelixKey()}${path}`, data, {\n        headers: this.getHeaders(),\n      })\n      .pipe(catchError(this.errorHandler));\n  }\n\n  protected delete(path: string): Observable<any> {\n    return this.http\n      .delete(`${Settings.helixAPI}${this.getHelixKey()}${path}`, {\n        headers: this.getHeaders(),\n      })\n      .pipe(catchError(this.errorHandler));\n  }\n\n  protected getHelixKey(): string {\n    // fetch helix key from url\n    return `/${this.router.url.split('/')[1]}`;\n  }\n\n  protected getHeaders() {\n    const headers = new HttpHeaders();\n    headers.append('Accept', 'application/json');\n    headers.append('Content-Type', 'application/json');\n    return headers;\n  }\n\n  protected errorHandler(error: any) {\n    console.error(error);\n\n    let message = error.message || 'Cannot reach Helix restful service.';\n\n    if (error instanceof HttpResponse) {\n      if (error.status == 404) {\n        // rest api throws 404 directly to app without any wrapper\n        message = 'Not Found';\n      } else {\n        message = error;\n        try {\n          message = JSON.parse(message).error;\n        } catch (e) {}\n      }\n    }\n\n    return observableThrowError(message);\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 11,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "type": "injectable"
        },
        {
            "name": "HelperService",
            "id": "injectable-HelperService-78f7b16aa1126cfdcb732f98106aeca50cabf9c533da6d678fa074bd5eb9416856852ea358598d7cee135fb02a055d94872ed1648c8b65111b8a67ce96ec9a42",
            "file": "src/app/shared/helper.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "parseMessage",
                    "args": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        121
                    ],
                    "jsdoctags": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "showConfirmation",
                    "args": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "title",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        },
                        {
                            "name": "confirmButtonText",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 33,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "title",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "confirmButtonText",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "showError",
                    "args": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 18,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "showSnackBar",
                    "args": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "message",
                            "type": "string | object",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { AlertDialogComponent } from './dialog/alert-dialog/alert-dialog.component';\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog/confirm-dialog.component';\n\n@Injectable()\nexport class HelperService {\n  constructor(protected snackBar: MatSnackBar, protected dialog: MatDialog) {}\n\n  private parseMessage(message: string | object) {\n    return typeof message === 'string'\n      ? message\n      : JSON.stringify(message, null, 2);\n  }\n\n  showError(message: string | object) {\n    this.dialog.open(AlertDialogComponent, {\n      data: {\n        title: 'Error',\n        message: this.parseMessage(message),\n      },\n    });\n  }\n\n  showSnackBar(message: string | object) {\n    this.snackBar.open(this.parseMessage(message), 'OK', {\n      duration: 2000,\n    });\n  }\n\n  showConfirmation(\n    message: string | object,\n    title?: string,\n    confirmButtonText?: string\n  ) {\n    return this.dialog\n      .open(ConfirmDialogComponent, {\n        data: {\n          message: this.parseMessage(message),\n          title,\n          confirmButtonText,\n        },\n      })\n      .afterClosed()\n      .toPromise();\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "snackBar",
                        "type": "MatSnackBar",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 9,
                "jsdoctags": [
                    {
                        "name": "snackBar",
                        "type": "MatSnackBar",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "type": "injectable"
        },
        {
            "name": "HistoryService",
            "id": "injectable-HistoryService-0856a46bf5ac8ba0eca7384ff6c44ef826d4bd38ba6e0aa1ffcc3861f635640f9ac7dac7728d93d2d08bc779954327b7b2d796416b9508cbc03fff23ab6141fe",
            "file": "src/app/history/shared/history.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "getControllerHistory",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getInstanceHistory",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseHistory",
                    "args": [
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "History[]",
                    "typeParameters": [],
                    "line": 23,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport * as _ from 'lodash';\n\nimport { HelixService } from '../../core/helix.service';\nimport { History } from './history.model';\n\n@Injectable()\nexport class HistoryService extends HelixService {\n  getControllerHistory(clusterName: string) {\n    return this.request(`/clusters/${clusterName}/controller/history`).pipe(\n      map((data) => this.parseHistory(data.history))\n    );\n  }\n\n  getInstanceHistory(clusterName: string, instanceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/instances/${instanceName}/history`\n    ).pipe(map((data) => this.parseHistory(data.listFields.HISTORY)));\n    // TODO: implement data.simpleFields.LAST_OFFLINE_TIME\n  }\n\n  protected parseHistory(data: any): History[] {\n    const histories: History[] = [];\n\n    if (data) {\n      for (const record of data) {\n        // controller: {DATE=2017-04-13-22:33:55, CONTROLLER=ltx1-app1133.stg.linkedin.com_12923, TIME=1492122835198}\n        // instance: {DATE=2017-05-01T08:21:42:114, SESSION=55a8e28052bcb56, TIME=1493626902114}\n        const history = new History();\n\n        for (const seg of _.words(record, /[^{}, ]+/g)) {\n          const name = _.words(seg, /[^=]+/g)[0];\n          const value = _.words(seg, /[^=]+/g)[1];\n          if (name == 'DATE') {\n            history.date = value;\n          } else if (name == 'CONTROLLER') {\n            history.controller = value;\n          } else if (name == 'SESSION') {\n            history.session = value;\n          } else if (name == 'TIME') {\n            history.time = +value;\n          }\n        }\n\n        histories.push(history);\n      }\n    }\n\n    return histories;\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "InstanceService",
            "id": "injectable-InstanceService-2c2587cea833c5ef5e0ea6fb4d4f0a0139c732b150bb4e64ffd50a4f765c73b000408e21e16d1ea7dc7fea5609846c038027520fac44b259171cba2401104b4f",
            "file": "src/app/instance/shared/instance.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "create",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "host",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "port",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "enabled",
                            "type": "boolean",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "host",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "port",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "enabled",
                            "type": "boolean",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "disable",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 89,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "enable",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 82,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getAll",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "remove",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 78,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Instance } from './instance.model';\nimport { HelixService } from '../../core/helix.service';\nimport { Node } from '../../shared/models/node.model';\n\n@Injectable()\nexport class InstanceService extends HelixService {\n  public getAll(clusterName: string) {\n    return this.request(`/clusters/${clusterName}/instances`).pipe(\n      map((data) => {\n        const onlineInstances = data.online;\n        const disabledInstances = data.disabled;\n\n        return data.instances\n          .sort()\n          .map(\n            (name) =>\n              new Instance(\n                name,\n                clusterName,\n                disabledInstances.indexOf(name) < 0,\n                onlineInstances.indexOf(name) >= 0\n              )\n          );\n      })\n    );\n  }\n\n  public get(clusterName: string, instanceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/instances/${instanceName}`\n    ).pipe(\n      map((data) => {\n        const liveInstance = data.liveInstance;\n        const config = data.config;\n        // there are two cases meaning enabled both:\n        //   HELIX_ENABLED: true or no such configuration\n        const enabled =\n          config &&\n          config.simpleFields &&\n          config.simpleFields.HELIX_ENABLED != 'false';\n\n        return liveInstance && liveInstance.simpleFields\n          ? new Instance(\n              data.id,\n              clusterName,\n              enabled,\n              liveInstance.simpleFields.LIVE_INSTANCE,\n              liveInstance.simpleFields.SESSION_ID,\n              liveInstance.simpleFields.HELIX_VERSION\n            )\n          : new Instance(data.id, clusterName, enabled, null);\n      })\n    );\n  }\n\n  public create(\n    clusterName: string,\n    host: string,\n    port: string,\n    enabled: boolean\n  ) {\n    const name = `${host}_${port}`;\n\n    const node = new Node(null);\n    node.appendSimpleField('HELIX_ENABLED', enabled ? 'true' : 'false');\n    node.appendSimpleField('HELIX_HOST', host);\n    node.appendSimpleField('HELIX_PORT', port);\n\n    return this.put(\n      `/clusters/${clusterName}/instances/${name}`,\n      JSON.parse(node.json(name))\n    );\n  }\n\n  public remove(clusterName: string, instanceName: string) {\n    return this.delete(`/clusters/${clusterName}/instances/${instanceName}`);\n  }\n\n  public enable(clusterName: string, instanceName: string) {\n    return this.post(\n      `/clusters/${clusterName}/instances/${instanceName}?command=enable`,\n      null\n    );\n  }\n\n  public disable(clusterName: string, instanceName: string) {\n    return this.post(\n      `/clusters/${clusterName}/instances/${instanceName}?command=disable`,\n      null\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "JobService",
            "id": "injectable-JobService-fef83c02a25f30b79efa2ddd918848e59bfb5cef17a4ea4320a9e8a5e2682778cf62d5a1761d1a0d312ffbac4a305d68845f2c91c4bd7ea12620f7c87f03f10c",
            "file": "src/app/workflow/shared/job.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "job",
                            "type": "Job",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 9,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "job",
                            "type": "Job",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\n\nimport { Job } from './workflow.model';\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class JobService extends HelixService {\n  public get(job: Job) {\n    return this.request(\n      `/clusters/${job.clusterName}/workflows/${job.workflowName}/jobs/${job.rawName}`\n    ).pipe(\n      map((data) => {\n        job.config = data.JobConfig;\n        job.context = data.JobContext;\n      })\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "ResourceService",
            "id": "injectable-ResourceService-d7fa0780b63fe6ffeb56522e7f59c8396d8b73e5d908c3224cdf4c382d0c68d3cf619098234bf3acc62847eeff9e4c1b55e941ebc17512fb7fd744381d335918",
            "file": "src/app/resource/shared/resource.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "disable",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 102,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "enable",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 95,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 46,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getAll",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getAllOnInstance",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getOnInstance",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 63,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "instanceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "remove",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 109,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setIdealState",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "idealState",
                            "type": "IdealState",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 113,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "resourceName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "idealState",
                            "type": "IdealState",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport * as _ from 'lodash';\n\nimport { IdealState } from '../../shared/node-viewer/node-viewer.component';\nimport { HelixService } from '../../core/helix.service';\nimport { Resource } from './resource.model';\n\n@Injectable()\nexport class ResourceService extends HelixService {\n  public getAll(clusterName: string) {\n    return this.request(`/clusters/${clusterName}/resources`).pipe(\n      map((data) => {\n        const res: Resource[] = [];\n        for (const name of data.idealStates) {\n          res.push(<Resource>{\n            cluster: clusterName,\n            name,\n            alive: data.externalViews.indexOf(name) >= 0,\n          });\n        }\n        return _.sortBy(res, 'name');\n      })\n    );\n  }\n\n  public getAllOnInstance(clusterName: string, instanceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/instances/${instanceName}/resources`\n    ).pipe(\n      map((data) => {\n        const res: any[] = [];\n        if (data) {\n          for (const resource of data.resources) {\n            res.push({\n              name: resource,\n            });\n          }\n        }\n        return res;\n      })\n    );\n  }\n\n  public get(clusterName: string, resourceName: string) {\n    return this.request(\n      `/clusters/${clusterName}/resources/${resourceName}`\n    ).pipe(\n      map(\n        (data) =>\n          new Resource(\n            clusterName,\n            resourceName,\n            data.resourceConfig,\n            data.idealState,\n            data.externalView\n          )\n      )\n    );\n  }\n\n  public getOnInstance(\n    clusterName: string,\n    instanceName: string,\n    resourceName: string\n  ) {\n    return this.request(\n      `/clusters/${clusterName}/instances/${instanceName}/resources/${resourceName}`\n    ).pipe(\n      map((data) => {\n        const ret = {\n          bucketSize: data.simpleFields.BUCKET_SIZE,\n          sessionId: data.simpleFields.SESSION_ID,\n          stateModelDef: data.simpleFields.STATE_MODEL_DEF,\n          stateModelFactoryName: data.simpleFields.STATE_MODEL_FACTORY_NAME,\n          partitions: [],\n        };\n\n        for (const partition in data.mapFields) {\n          const par = data.mapFields[partition];\n\n          ret.partitions.push({\n            name: partition.trim(),\n            currentState: par.CURRENT_STATE.trim(),\n            info: par.INFO.trim(),\n          });\n        }\n\n        return ret;\n      })\n    );\n  }\n\n  public enable(clusterName: string, resourceName: string) {\n    return this.post(\n      `/clusters/${clusterName}/resources/${resourceName}?command=enable`,\n      null\n    );\n  }\n\n  public disable(clusterName: string, resourceName: string) {\n    return this.post(\n      `/clusters/${clusterName}/resources/${resourceName}?command=disable`,\n      null\n    );\n  }\n\n  public remove(clusterName: string, resourceName: string) {\n    return this.delete(`/clusters/${clusterName}/resources/${resourceName}`);\n  }\n\n  public setIdealState(\n    clusterName: string,\n    resourceName: string,\n    idealState: IdealState\n  ) {\n    return this.post(\n      `/clusters/${clusterName}/resources/${resourceName}/idealState?command=update`,\n      idealState\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        },
        {
            "name": "UserService",
            "id": "injectable-UserService-2a559e9de77788ab67a482b24cd008b5479b961e03aa9ce590bd050c807d2489d486f4ee5291c5128e0b0f006871e0d53b83722bdfc58e027201f9c68df29265",
            "file": "src/app/core/user.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "getCurrentUser",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<>",
                    "typeParameters": [],
                    "line": 13,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 29,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "login",
                    "args": [
                        {
                            "name": "username",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "password",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "username",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "password",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { catchError } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { Settings } from './settings';\n\n@Injectable()\nexport class UserService {\n  constructor(protected router: Router, private http: HttpClient) {}\n\n  public getCurrentUser(): Observable<unknown> {\n    return this.http\n      .get(`${Settings.userAPI}/current`, { headers: this.getHeaders() })\n      .pipe(catchError((_) => _));\n  }\n\n  public login(username: string, password: string): Observable<any> {\n    const url = `${Settings.userAPI}/login`;\n    const body = { username, password };\n    const options = {\n      headers: this.getHeaders(),\n      observe: 'response' as 'body',\n    };\n    return this.http.post<any>(url, body, options);\n  }\n\n  protected getHeaders() {\n    const headers = new HttpHeaders();\n    headers.append('Accept', 'application/json');\n    headers.append('Content-Type', 'application/json');\n    return headers;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 10,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "type": "injectable"
        },
        {
            "name": "WorkflowService",
            "id": "injectable-WorkflowService-85e21faff5d452736b6cb53e871096dcea379cb58fe79e56e9a52c34d7b8cf0446e4e56bee802921684c88b9b89b5c8e802169485a916343d7ae1bef8e3c9949",
            "file": "src/app/workflow/shared/workflow.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "get",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 15,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getAll",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 9,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "resume",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "stop",
                    "args": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "clusterName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "workflowName",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "can",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "delete",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "errorHandler",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHeaders",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "getHelixKey",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "post",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "put",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                },
                {
                    "name": "request",
                    "args": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<any>",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "path",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "helix",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "optional": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "HelixService"
                    }
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\nimport { Workflow } from './workflow.model';\nimport { HelixService } from '../../core/helix.service';\n\n@Injectable()\nexport class WorkflowService extends HelixService {\n  public getAll(clusterName: string) {\n    return this.request(`/clusters/${clusterName}/workflows`).pipe(\n      map((data) => data.Workflows.sort())\n    );\n  }\n\n  public get(clusterName: string, workflowName: string) {\n    return this.request(\n      `/clusters/${clusterName}/workflows/${workflowName}`\n    ).pipe(map((data) => new Workflow(data, clusterName)));\n  }\n\n  public stop(clusterName: string, workflowName: string) {\n    return this.post(\n      `/clusters/${clusterName}/workflows/${workflowName}?command=stop`,\n      null\n    );\n  }\n\n  public resume(clusterName: string, workflowName: string) {\n    return this.post(\n      `/clusters/${clusterName}/workflows/${workflowName}?command=resume`,\n      null\n    );\n  }\n}\n",
            "extends": "HelixService",
            "type": "injectable"
        }
    ],
    "guards": [
        {
            "name": "ClusterResolver",
            "id": "injectable-ClusterResolver-9c612ee9ba6201e972e133d0a1d944173f16621d268fb4f0e239454d345351d2c68f0c3587c6d75ad69a29ae190d2ce2e31f9a480dbbaf4a41dbd86caa072287",
            "file": "src/app/cluster/shared/cluster.resolver.ts",
            "properties": [],
            "methods": [
                {
                    "name": "resolve",
                    "args": [
                        {
                            "name": "route",
                            "type": "ActivatedRouteSnapshot",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 13,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "route",
                            "type": "ActivatedRouteSnapshot",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\n\nimport { ClusterService } from './cluster.service';\nimport { Cluster } from './cluster.model';\n\n/* not using this resolver for now since it will break the page when reload the page */\n\n@Injectable()\nexport class ClusterResolver implements Resolve<Cluster> {\n  constructor(private clusterService: ClusterService) {}\n\n  resolve(route: ActivatedRouteSnapshot) {\n    return this.clusterService.get(route.paramMap.get('name'));\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 10,
                "jsdoctags": [
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "type": "guard"
        },
        {
            "name": "ResourceResolver",
            "id": "injectable-ResourceResolver-69d0d87d951b19b387ed5bc0b9a19e4fe13233512091ce661f3250fb9afb8c47981e10c191a64682aac064718cf2dd86343b4f5ce482589dad16064c3b22cf0a",
            "file": "src/app/resource/shared/resource.resolver.ts",
            "properties": [],
            "methods": [
                {
                    "name": "resolve",
                    "args": [
                        {
                            "name": "route",
                            "type": "ActivatedRouteSnapshot",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 11,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "route",
                            "type": "ActivatedRouteSnapshot",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\nimport { Resolve, ActivatedRouteSnapshot } from '@angular/router';\n\nimport { ResourceService } from './resource.service';\nimport { Resource } from './resource.model';\n\n@Injectable()\nexport class ResourceResolver implements Resolve<Resource> {\n  constructor(private service: ResourceService) {}\n\n  resolve(route: ActivatedRouteSnapshot) {\n    return this.service.get(\n      route.paramMap.get('cluster_name'),\n      route.paramMap.get('resource_name')\n    );\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 8,
                "jsdoctags": [
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "type": "guard"
        }
    ],
    "interceptors": [],
    "classes": [
        {
            "name": "Cluster",
            "id": "class-Cluster-c1f2aa58df3c1b4a5ee8191a1384aef377a2eff10b9f45c5844038779a7cf3285dc8a6592b632e8bc464b7dd159e88973838b3418609b4360e3446f7a1562ae6",
            "file": "src/app/cluster/shared/cluster.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Instance } from '../../instance/shared/instance.model';\n\nexport class Cluster {\n  readonly name: string;\n  readonly controller: string;\n  readonly enabled: boolean;\n  readonly instances: Instance[];\n  readonly inMaintenance: boolean;\n\n  // TODO vxu: Resources are useless here. Remove it please.\n  readonly resources: string[];\n\n  // TODO vxu: convert it to use StateModel[]\n  readonly stateModels: string[];\n\n  config: Object;\n\n  constructor(obj: any) {\n    this.name = obj.id;\n    this.controller = obj.controller;\n    this.enabled = !obj.paused;\n    this.resources = obj.resources;\n    this.inMaintenance = obj.maintenance;\n\n    const ins: Instance[] = [];\n    for (const instance of obj.instances) {\n      ins.push(\n        new Instance(\n          instance,\n          this.name,\n          false, // here's a dummy value. should not be used\n          obj.liveInstances.indexOf(instance) >= 0\n        )\n      );\n    }\n    this.instances = ins;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 16,
                "jsdoctags": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "config",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Object",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "controller",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "enabled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 6,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "inMaintenance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 8,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "instances",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Instance[]",
                    "optional": false,
                    "description": "",
                    "line": 7,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "resources",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "optional": false,
                    "description": "",
                    "line": 11,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "stateModels",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "optional": false,
                    "description": "",
                    "line": 14,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Controller",
            "id": "class-Controller-7f265dc6f9986ab6592ca819cce00be66cf76643eefab7fc0a7d63b7fc7f0483fc92ad1a73ae51dbcb023e11eeed17e7c2caecc588e0564eeb0e6ee7b6e9bdca",
            "file": "src/app/controller/shared/controller.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class Controller {\n  readonly name: string;\n  readonly clusterName: string;\n  readonly liveInstance: string;\n  readonly sessionId: string;\n  readonly helixVersion: string;\n\n  constructor(name, cluster, liveInstance, sessionId, version) {\n    this.name = name;\n    this.clusterName = cluster;\n    this.liveInstance = liveInstance;\n    this.sessionId = sessionId;\n    this.helixVersion = version;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "name",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "cluster",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "liveInstance",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sessionId",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "version",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 6,
                "jsdoctags": [
                    {
                        "name": "name",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "cluster",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "liveInstance",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sessionId",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "version",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 3,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "helixVersion",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 6,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "liveInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 2,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "sessionId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "HelixCtrl",
            "id": "class-HelixCtrl-5ea8b5cb0aae1dbdc946600b8fbf894ff871be85d84f8a486813da2ddc8aa838fbcce31f41a64d71a36c7f7cd7c34e37452a65b83ab2a88beb930712e9f26d41",
            "file": "server/controllers/helix.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Request, Response, Router } from 'express';\nimport * as request from 'request';\nimport { readFileSync } from 'fs';\n\nimport { HELIX_ENDPOINTS, IDENTITY_TOKEN_SOURCE, SSL } from '../config';\nimport { HelixRequest, HelixRequestOptions } from './d';\n\nexport class HelixCtrl {\n  static readonly ROUTE_PREFIX = '/api/helix';\n\n  constructor(router: Router) {\n    router.route('/helix/list').get(this.list);\n    router.route('/helix/*').all(this.proxy);\n  }\n\n  protected proxy(req: HelixRequest, res: Response) {\n    const url = req.originalUrl.replace(HelixCtrl.ROUTE_PREFIX, '');\n    const helixKey = url.split('/')[1];\n\n    const segments = helixKey.split('.');\n    const group = segments[0];\n\n    segments.shift();\n    const name = segments.join('.');\n\n    const user = req.session.username;\n    const method = req.method.toLowerCase();\n    if (method != 'get' && !req.session.isAdmin) {\n      res.status(403).send('Forbidden');\n      return;\n    }\n\n    let apiPrefix = null;\n    if (HELIX_ENDPOINTS[group]) {\n      HELIX_ENDPOINTS[group].forEach((section) => {\n        if (section[name]) {\n          apiPrefix = section[name];\n        }\n      });\n    }\n\n    if (apiPrefix) {\n      const realUrl = apiPrefix + url.replace(`/${helixKey}`, '');\n      console.log(`helix-rest request url ${realUrl}`);\n\n      const options: HelixRequestOptions = {\n        url: realUrl,\n        json: req.body,\n        headers: {\n          'Helix-User': user,\n        },\n        agentOptions: {\n          rejectUnauthorized: false,\n        },\n      };\n\n      if (SSL.cafiles.length > 0) {\n        options.agentOptions.ca = readFileSync(SSL.cafiles[0], {\n          encoding: 'utf-8',\n        });\n      }\n\n      if (IDENTITY_TOKEN_SOURCE) {\n        options.headers['Identity-Token'] =\n          res.locals.cookie['helixui_identity.token'];\n      }\n\n      request[method](options, (error, response, body) => {\n        if (error) {\n          res.status(response?.statusCode || 500).send(error);\n        } else if (body?.error) {\n          res.status(response?.statusCode || 500).send(body?.error);\n        } else {\n          res.status(response?.statusCode).send(body);\n        }\n      });\n    } else {\n      res.status(404).send('Not found');\n    }\n  }\n\n  protected list(req: Request, res: Response) {\n    try {\n      res.json(HELIX_ENDPOINTS);\n    } catch (err) {\n      console.log('error from helix/list/');\n      console.log(err);\n    }\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 9,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "ROUTE_PREFIX",
                    "defaultValue": "'/api/helix'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 9,
                    "modifierKind": [
                        124,
                        144
                    ]
                }
            ],
            "methods": [
                {
                    "name": "list",
                    "args": [
                        {
                            "name": "req",
                            "type": "Request",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 82,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "Request",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "proxy",
                    "args": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "History",
            "id": "class-History-c64eab3aa4cb0c4bee4bb7df7e9e6022f1abaaae78825fe4846212b836312357f34ee93a07a0fc104ef93dfc26f45788d9deb0c97fff5a00ed0616dc96d7b636",
            "file": "src/app/history/shared/history.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class History {\n  date: string;\n  time: number;\n  session: string;\n  controller: string;\n}\n",
            "properties": [
                {
                    "name": "controller",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "date",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "session",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "time",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 3
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Instance",
            "id": "class-Instance-20a4fcb9146bbfd88d80b1f0bdf5cc941c90576680272085fc3b8d82a5960793d4cd3648b3f0e8c408a06e7002bf6a23fcac011937ce826b7ec6d43d78d6786f",
            "file": "src/app/instance/shared/instance.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class Instance {\n  readonly name: string;\n  readonly clusterName: string;\n  readonly enabled: boolean;\n  readonly liveInstance: boolean | string;\n  readonly sessionId: string;\n  readonly helixVersion: string;\n\n  get healthy(): boolean {\n    return this.liveInstance && this.enabled;\n  }\n\n  constructor(\n    name: string,\n    clusterName: string,\n    enabled: boolean,\n    liveInstance: boolean | string,\n    sessionId?: string,\n    helixVersion?: string\n  ) {\n    this.name = name;\n    this.clusterName = clusterName;\n    this.enabled = enabled;\n    this.liveInstance = liveInstance;\n    this.sessionId = sessionId;\n    this.helixVersion = helixVersion;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "enabled",
                        "type": "boolean",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "liveInstance",
                        "type": "boolean | string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sessionId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    },
                    {
                        "name": "helixVersion",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true
                    }
                ],
                "line": 11,
                "jsdoctags": [
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "enabled",
                        "type": "boolean",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "liveInstance",
                        "type": "boolean | string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sessionId",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helixVersion",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "optional": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 3,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "enabled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 4,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "helixVersion",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 7,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "liveInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean | string",
                    "optional": false,
                    "description": "",
                    "line": 5,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 2,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "sessionId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 6,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "accessors": {
                "healthy": {
                    "name": "healthy",
                    "getSignature": {
                        "name": "healthy",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 9
                    }
                }
            },
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Job",
            "id": "class-Job-dbb6f7398f86a1c9a4e4300cce9fdb5aef458214a868cf6f220016cd48f791cee0f14a555aaae4d2ce8878b40b7c2dda7ad6764dec02e27cdf5fa25348b18875",
            "file": "src/app/workflow/shared/workflow.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\nexport class Task {}\n\nexport class Job {\n  readonly name: string;\n  readonly rawName: string;\n  readonly startTime: string;\n  readonly state: string;\n  readonly parents: string[];\n\n  readonly workflowName: string;\n  readonly clusterName: string;\n\n  // will load later\n  config: any;\n  context: any;\n\n  constructor(\n    rawName: string,\n    workflowName: string,\n    clusterName: string,\n    startTime: string,\n    state: string,\n    parents: string[]\n  ) {\n    this.rawName = rawName;\n    // try to reduce the name\n    this.name = _.replace(rawName, workflowName + '_', '');\n    this.workflowName = workflowName;\n    this.clusterName = clusterName;\n    this.startTime = startTime;\n    this.state = state;\n    // try to reduce parent names\n    this.parents = _.map(parents, (parent) =>\n      _.replace(parent, workflowName + '_', '')\n    );\n  }\n}\n\nexport class Workflow {\n  readonly name: string;\n  readonly clusterName: string;\n  readonly config: any;\n  readonly jobs: Job[];\n  readonly context: any;\n  readonly json: any;\n\n  get isJobQueue(): boolean {\n    return (\n      this.config &&\n      this.config.IsJobQueue &&\n      this.config.IsJobQueue.toLowerCase() == 'true'\n    );\n  }\n\n  get state(): string {\n    return this.context.STATE || 'NOT STARTED';\n  }\n\n  constructor(obj: any, clusterName: string) {\n    this.json = obj;\n    this.name = obj.id;\n    this.clusterName = clusterName;\n    this.config = obj.WorkflowConfig;\n    this.context = obj.WorkflowContext;\n    this.jobs = this.parseJobs(obj.Jobs, obj.ParentJobs);\n  }\n\n  protected parseJobs(list: string[], parents: any): Job[] {\n    const result: Job[] = [];\n\n    _.forEach(list, (jobName) => {\n      result.push(\n        new Job(\n          jobName,\n          this.name,\n          this.clusterName,\n          _.get(this.context, ['StartTime', jobName]),\n          _.get(this.context, ['JOB_STATES', jobName]),\n          parents[jobName]\n        )\n      );\n    });\n\n    return result;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "rawName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "workflowName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "startTime",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "state",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "parents",
                        "type": "string[]",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 17,
                "jsdoctags": [
                    {
                        "name": "rawName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "workflowName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "startTime",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "state",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "parents",
                        "type": "string[]",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 13,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "config",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "context",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 6,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "parents",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "optional": false,
                    "description": "",
                    "line": 10,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "rawName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 7,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "startTime",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 8,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "state",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 9,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "workflowName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Node",
            "id": "class-Node-9a579c751dc9ff03063f99c75efe170bbfd4d7dd827c0bcb47ce7e303f211f158d9908ef90c5b54f79dfd5d45ff2c7f95357eccbc3453011fcd26d9e597b9a2c",
            "file": "src/app/shared/models/node.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\ninterface SimpleFieldObject {\n  name: string;\n  value: string;\n}\n\ninterface ListFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface MapFieldObject {\n  name: string;\n  value: SimpleFieldObject[];\n}\n\ninterface Payload {\n  id: string;\n  simpleFields?: any;\n  listFields?: any;\n  mapFields?: any;\n}\n\n// This is a typical Helix Node definition\nexport class Node {\n  id: string;\n  simpleFields: SimpleFieldObject[] = [];\n  listFields: ListFieldObject[] = [];\n  mapFields: MapFieldObject[] = [];\n\n  constructor(obj: any) {\n    if (obj != null) {\n      this.id = obj.id;\n      this.simpleFields = this.keyValueToArray(obj.simpleFields);\n\n      _.forOwn(obj['listFields'], (v, k) => {\n        this.listFields.push(<ListFieldObject>{\n          name: k,\n          value: _.map(\n            v,\n            (item) =>\n              <SimpleFieldObject>{\n                value: item,\n              }\n          ),\n        });\n      });\n\n      _.forOwn(obj['mapFields'], (v, k) => {\n        this.mapFields.push(<MapFieldObject>{\n          name: k.trim(),\n          value: this.keyValueToArray(v),\n        });\n      });\n    }\n  }\n\n  public appendSimpleField(name: string, value: string) {\n    this.simpleFields.push(<SimpleFieldObject>{\n      name,\n      value,\n    });\n  }\n\n  public appendMapField(key: string, name: string, value: string) {\n    const index = _.findIndex(this.mapFields, { name: key });\n    if (index >= 0) {\n      this.mapFields[index].value.push(<SimpleFieldObject>{\n        name: name.trim(),\n        value,\n      });\n    } else {\n      this.mapFields.push(<MapFieldObject>{\n        name: key,\n        value: [\n          <SimpleFieldObject>{\n            name: name.trim(),\n            value,\n          },\n        ],\n      });\n    }\n  }\n\n  public json(id: string): string {\n    const obj: Payload = {\n      id,\n    };\n\n    if (this?.simpleFields.length > 0) {\n      obj.simpleFields = {};\n      _.forEach(this.simpleFields, (item: SimpleFieldObject) => {\n        obj.simpleFields[item.name] = item.value;\n      });\n    }\n\n    if (this?.listFields.length > 0) {\n      obj.listFields = {};\n      _.forEach(this.listFields, (item: ListFieldObject) => {\n        obj.listFields[item.name] = [];\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          obj.listFields[item.name].push(subItem.value);\n        });\n      });\n    }\n\n    if (this?.mapFields.length > 0) {\n      obj.mapFields = {};\n      _.forEach(this.mapFields, (item: MapFieldObject) => {\n        obj.mapFields[item.name.trim()] = item.value ? {} : null;\n        _.forEach(item.value, (subItem: SimpleFieldObject) => {\n          // if the value is a string that contains all digits, parse it to a number\n          let parsedValue: string | number = subItem.value;\n          if (\n            typeof subItem.value === 'string' &&\n            /^\\d+$/.test(subItem.value)\n          ) {\n            parsedValue = Number(subItem.value);\n          }\n\n          obj.mapFields[item.name.trim()][subItem.name] = parsedValue;\n        });\n      });\n    }\n\n    return JSON.stringify(obj);\n  }\n\n  // Converting raw simpleFields to SimpleFieldObject[]\n  private keyValueToArray(obj: Object): SimpleFieldObject[] {\n    const result: SimpleFieldObject[] = [];\n    for (const k in obj) {\n      if (obj.hasOwnProperty(k)) {\n        result.push(<SimpleFieldObject>{\n          name: k,\n          value: obj[k],\n        });\n      }\n    }\n    return result;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 30,
                "jsdoctags": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "listFields",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ListFieldObject[]",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "mapFields",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "MapFieldObject[]",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "simpleFields",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "SimpleFieldObject[]",
                    "optional": false,
                    "description": "",
                    "line": 28
                }
            ],
            "methods": [
                {
                    "name": "appendMapField",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 66,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "key",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "appendSimpleField",
                    "args": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "name",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "json",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 86,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "keyValueToArray",
                    "args": [
                        {
                            "name": "obj",
                            "type": "Object",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "SimpleFieldObject[]",
                    "typeParameters": [],
                    "line": 131,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        121
                    ],
                    "jsdoctags": [
                        {
                            "name": "obj",
                            "type": "Object",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Partition",
            "id": "class-Partition-c368277d55c3a276a0743ee15fa8b9d77b202780d749de8a9363f93aaa5331e3afffe77b25bc9fff5156b0be913836c0d7e13b89ebf930d53338f495b6b84e94",
            "file": "src/app/resource/shared/resource.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\nexport interface IReplica {\n  instanceName: string;\n  externalView: string;\n  idealState: string;\n}\n\nexport class Partition {\n  name: string;\n  replicas: IReplica[];\n\n  get isReady() {\n    return !_.some(\n      this.replicas,\n      (replica) =>\n        !replica.externalView || replica.externalView != replica.idealState\n    );\n  }\n\n  constructor(name: string) {\n    this.name = name;\n    this.replicas = [];\n  }\n}\n\nexport class Resource {\n  readonly name: string;\n\n  // TODO vxu: convert it to an enum in future if necessary\n  readonly alive: boolean;\n\n  readonly cluster: string;\n\n  // meta data\n  readonly idealStateMode: string;\n  readonly rebalanceMode: string;\n  readonly stateModel: string;\n  readonly partitionCount: number;\n  readonly replicaCount: number;\n\n  readonly idealState: any;\n  readonly externalView: any;\n\n  readonly partitions: Partition[];\n\n  get enabled(): boolean {\n    // there are two cases meaning enabled both:\n    //   HELIX_ENABLED: true or no such item in idealState\n    return _.get(this.idealState, 'simpleFields.HELIX_ENABLED') != 'false';\n  }\n\n  get online(): boolean {\n    return !_.isEmpty(this.externalView);\n  }\n\n  constructor(\n    cluster: string,\n    name: string,\n    config: any,\n    idealState: any,\n    externalView: any\n  ) {\n    this.cluster = cluster;\n    this.name = name;\n\n    externalView = externalView || {};\n\n    // ignore config for now since config component will fetch itself\n\n    this.idealStateMode = idealState.simpleFields.IDEAL_STATE_MODE;\n    this.rebalanceMode = idealState.simpleFields.REBALANCE_MODE;\n    this.stateModel = idealState.simpleFields.STATE_MODEL_DEF_REF;\n    this.partitionCount = +idealState.simpleFields.NUM_PARTITIONS;\n    this.replicaCount = +idealState.simpleFields.REPLICAS;\n\n    // fetch partition names from externalView.mapFields is (relatively) more stable\n    this.partitions = [];\n    for (const partitionName in externalView.mapFields) {\n      const partition = new Partition(partitionName);\n\n      // in FULL_AUTO mode, externalView is more important\n      // if preferences list exists, fetch instances from it, else whatever\n      if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.listFields[partitionName]\n      ) {\n        for (const replicaName of idealState.listFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.mapFields[partitionName]\n      ) {\n        for (const replicaName in idealState.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else {\n        for (const replicaName in externalView.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      }\n\n      // sort replicas by states\n      partition.replicas = _.sortBy(partition.replicas, 'externalView');\n\n      this.partitions.push(partition);\n    }\n\n    this.idealState = idealState;\n    this.externalView = externalView;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 19,
                "jsdoctags": [
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "replicas",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "IReplica[]",
                    "optional": false,
                    "description": "",
                    "line": 11
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "accessors": {
                "isReady": {
                    "name": "isReady",
                    "getSignature": {
                        "name": "isReady",
                        "type": "",
                        "returnType": "",
                        "line": 13
                    }
                }
            },
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Resource",
            "id": "class-Resource-c368277d55c3a276a0743ee15fa8b9d77b202780d749de8a9363f93aaa5331e3afffe77b25bc9fff5156b0be913836c0d7e13b89ebf930d53338f495b6b84e94",
            "file": "src/app/resource/shared/resource.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\nexport interface IReplica {\n  instanceName: string;\n  externalView: string;\n  idealState: string;\n}\n\nexport class Partition {\n  name: string;\n  replicas: IReplica[];\n\n  get isReady() {\n    return !_.some(\n      this.replicas,\n      (replica) =>\n        !replica.externalView || replica.externalView != replica.idealState\n    );\n  }\n\n  constructor(name: string) {\n    this.name = name;\n    this.replicas = [];\n  }\n}\n\nexport class Resource {\n  readonly name: string;\n\n  // TODO vxu: convert it to an enum in future if necessary\n  readonly alive: boolean;\n\n  readonly cluster: string;\n\n  // meta data\n  readonly idealStateMode: string;\n  readonly rebalanceMode: string;\n  readonly stateModel: string;\n  readonly partitionCount: number;\n  readonly replicaCount: number;\n\n  readonly idealState: any;\n  readonly externalView: any;\n\n  readonly partitions: Partition[];\n\n  get enabled(): boolean {\n    // there are two cases meaning enabled both:\n    //   HELIX_ENABLED: true or no such item in idealState\n    return _.get(this.idealState, 'simpleFields.HELIX_ENABLED') != 'false';\n  }\n\n  get online(): boolean {\n    return !_.isEmpty(this.externalView);\n  }\n\n  constructor(\n    cluster: string,\n    name: string,\n    config: any,\n    idealState: any,\n    externalView: any\n  ) {\n    this.cluster = cluster;\n    this.name = name;\n\n    externalView = externalView || {};\n\n    // ignore config for now since config component will fetch itself\n\n    this.idealStateMode = idealState.simpleFields.IDEAL_STATE_MODE;\n    this.rebalanceMode = idealState.simpleFields.REBALANCE_MODE;\n    this.stateModel = idealState.simpleFields.STATE_MODEL_DEF_REF;\n    this.partitionCount = +idealState.simpleFields.NUM_PARTITIONS;\n    this.replicaCount = +idealState.simpleFields.REPLICAS;\n\n    // fetch partition names from externalView.mapFields is (relatively) more stable\n    this.partitions = [];\n    for (const partitionName in externalView.mapFields) {\n      const partition = new Partition(partitionName);\n\n      // in FULL_AUTO mode, externalView is more important\n      // if preferences list exists, fetch instances from it, else whatever\n      if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.listFields[partitionName]\n      ) {\n        for (const replicaName of idealState.listFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else if (\n        this.rebalanceMode != 'FULL_AUTO' &&\n        idealState.mapFields[partitionName]\n      ) {\n        for (const replicaName in idealState.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      } else {\n        for (const replicaName in externalView.mapFields[partitionName]) {\n          partition.replicas.push(<IReplica>{\n            instanceName: replicaName,\n            externalView: _.get(externalView, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n            idealState: _.get(idealState, [\n              'mapFields',\n              partitionName,\n              replicaName,\n            ]),\n          });\n        }\n      }\n\n      // sort replicas by states\n      partition.replicas = _.sortBy(partition.replicas, 'externalView');\n\n      this.partitions.push(partition);\n    }\n\n    this.idealState = idealState;\n    this.externalView = externalView;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "cluster",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "config",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "idealState",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "externalView",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 55,
                "jsdoctags": [
                    {
                        "name": "cluster",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "name",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "config",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "idealState",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "externalView",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "alive",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 31,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "cluster",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "externalView",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "idealState",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "idealStateMode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "partitionCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "partitions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Partition[]",
                    "optional": false,
                    "description": "",
                    "line": 45,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "rebalanceMode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "replicaCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "stateModel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "accessors": {
                "enabled": {
                    "name": "enabled",
                    "getSignature": {
                        "name": "enabled",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 47
                    }
                },
                "online": {
                    "name": "online",
                    "getSignature": {
                        "name": "online",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 53
                    }
                }
            },
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Settings",
            "id": "class-Settings-b55aaabe6a15785d4e56cdc976c94e47844b929bbc89818beb04b38eda6d118dbec8c06aa852817c1dfa0db3d756252b9937568195a42a44e2aab225319b1d20",
            "file": "src/app/core/settings.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class Settings {\n  static readonly tableHeaderHeight = 40;\n  static readonly tableRowHeight = 50;\n  static readonly helixAPI = '/api/helix';\n  static readonly userAPI = '/api/user';\n}\n",
            "properties": [
                {
                    "name": "helixAPI",
                    "defaultValue": "'/api/helix'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 4,
                    "modifierKind": [
                        124,
                        144
                    ]
                },
                {
                    "name": "tableHeaderHeight",
                    "defaultValue": "40",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 2,
                    "modifierKind": [
                        124,
                        144
                    ]
                },
                {
                    "name": "tableRowHeight",
                    "defaultValue": "50",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 3,
                    "modifierKind": [
                        124,
                        144
                    ]
                },
                {
                    "name": "userAPI",
                    "defaultValue": "'/api/user'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 5,
                    "modifierKind": [
                        124,
                        144
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Task",
            "id": "class-Task-dbb6f7398f86a1c9a4e4300cce9fdb5aef458214a868cf6f220016cd48f791cee0f14a555aaae4d2ce8878b40b7c2dda7ad6764dec02e27cdf5fa25348b18875",
            "file": "src/app/workflow/shared/workflow.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\nexport class Task {}\n\nexport class Job {\n  readonly name: string;\n  readonly rawName: string;\n  readonly startTime: string;\n  readonly state: string;\n  readonly parents: string[];\n\n  readonly workflowName: string;\n  readonly clusterName: string;\n\n  // will load later\n  config: any;\n  context: any;\n\n  constructor(\n    rawName: string,\n    workflowName: string,\n    clusterName: string,\n    startTime: string,\n    state: string,\n    parents: string[]\n  ) {\n    this.rawName = rawName;\n    // try to reduce the name\n    this.name = _.replace(rawName, workflowName + '_', '');\n    this.workflowName = workflowName;\n    this.clusterName = clusterName;\n    this.startTime = startTime;\n    this.state = state;\n    // try to reduce parent names\n    this.parents = _.map(parents, (parent) =>\n      _.replace(parent, workflowName + '_', '')\n    );\n  }\n}\n\nexport class Workflow {\n  readonly name: string;\n  readonly clusterName: string;\n  readonly config: any;\n  readonly jobs: Job[];\n  readonly context: any;\n  readonly json: any;\n\n  get isJobQueue(): boolean {\n    return (\n      this.config &&\n      this.config.IsJobQueue &&\n      this.config.IsJobQueue.toLowerCase() == 'true'\n    );\n  }\n\n  get state(): string {\n    return this.context.STATE || 'NOT STARTED';\n  }\n\n  constructor(obj: any, clusterName: string) {\n    this.json = obj;\n    this.name = obj.id;\n    this.clusterName = clusterName;\n    this.config = obj.WorkflowConfig;\n    this.context = obj.WorkflowContext;\n    this.jobs = this.parseJobs(obj.Jobs, obj.ParentJobs);\n  }\n\n  protected parseJobs(list: string[], parents: any): Job[] {\n    const result: Job[] = [];\n\n    _.forEach(list, (jobName) => {\n      result.push(\n        new Job(\n          jobName,\n          this.name,\n          this.clusterName,\n          _.get(this.context, ['StartTime', jobName]),\n          _.get(this.context, ['JOB_STATES', jobName]),\n          parents[jobName]\n        )\n      );\n    });\n\n    return result;\n  }\n}\n",
            "properties": [],
            "methods": [],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UserCtrl",
            "id": "class-UserCtrl-b45bb852048757c2ba0bbe29eedfb0b8fcbce439757ca96bf9ba74604a16b9ef7614a93b9ee0d885606f7f461382b2517fa8178afe3489efbffd33b6b6a895ea",
            "file": "server/controllers/user.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Response, Router } from 'express';\nimport * as LdapClient from 'ldapjs';\nimport * as request from 'request';\nimport { readFileSync } from 'fs';\n\nimport {\n  LDAP,\n  IDENTITY_TOKEN_SOURCE,\n  CUSTOM_IDENTITY_TOKEN_REQUEST_BODY,\n  SSL,\n} from '../config';\nimport { HelixRequest, HelixRequestOptions } from './d';\nimport { TOKEN_EXPIRATION_KEY, TOKEN_RESPONSE_KEY } from '../config';\n\nexport class UserCtrl {\n  constructor(router: Router) {\n    // uncomment the following line to use customized login\n    // router.route('/user/authorize').get(this.authorize);\n    router.route('/user/login').post(this.login.bind(this));\n    router.route('/user/current').get(this.current);\n    router.route('/user/can').get(this.can);\n  }\n\n  //\n  // You may rewrite this function to support your own authorization logic.\n  // Usually it would be helpful to integrate with 3rd party login.\n  // For example:\n  //\n  /*\n  protected authorize(req: HelixRequest, res: Response) {\n    const { isAdmin, username, token } = get_auth_state();\n    req.session.isAdmin = isAdmin;\n    req.session.username = username;\n    req.session.identityToken = token;\n    res.redirect('/');\n  }\n  */\n\n  protected current(req: HelixRequest, res: Response) {\n    res.json(req.session.username || 'Sign In');\n  }\n\n  //\n  // Check the server-side session store,\n  // see if this helix-front ExpressJS server\n  // already knows that the current user is an admin.\n  //\n  protected can(req: HelixRequest, res: Response) {\n    try {\n      return res.json(req.session.isAdmin ? true : false);\n    } catch (err) {\n      throw new Error(\n        `Error from /can logged in admin user session status endpoint: ${err}`\n      );\n      return false;\n    }\n  }\n\n  protected login(req: HelixRequest, res: Response) {\n    const credential = req.body;\n    if (!credential.username || !credential.password) {\n      res.status(401).json(false);\n      return;\n    }\n\n    // check LDAP\n    const ldap = LdapClient.createClient({ url: LDAP.uri });\n    ldap.bind(\n      credential.username + LDAP.principalSuffix,\n      credential.password,\n      (err) => {\n        if (err) {\n          res.status(401).json(false);\n        } else {\n          // LDAP login success\n          const opts = {\n            filter:\n              '(&(sAMAccountName=' +\n              credential.username +\n              ')(objectcategory=person))',\n            scope: 'sub',\n          };\n\n          req.session.username = credential.username;\n          res.set('Username', credential.username);\n\n          ldap.search(LDAP.base, opts, function (err, result) {\n            let isInAdminGroup = false;\n            result.on('searchEntry', function (entry) {\n              if (entry.object && !err) {\n                const groups = entry.object['memberOf'];\n                for (const group of groups) {\n                  const groupName = group.split(',', 1)[0].split('=')[1];\n                  if (groupName == LDAP.adminGroup) {\n                    isInAdminGroup = true;\n\n                    //\n                    // Get an Identity-Token\n                    // if an IDENTITY_TOKEN_SOURCE\n                    // is specified in the config\n                    //\n                    if (IDENTITY_TOKEN_SOURCE) {\n                      const body = JSON.stringify({\n                        username: credential.username,\n                        password: credential.password,\n                        ...CUSTOM_IDENTITY_TOKEN_REQUEST_BODY,\n                      });\n\n                      const options: HelixRequestOptions = {\n                        url: IDENTITY_TOKEN_SOURCE,\n                        json: '',\n                        body,\n                        headers: {\n                          'Content-Type': 'application/json',\n                        },\n                        agentOptions: {\n                          rejectUnauthorized: false,\n                        },\n                      };\n\n                      if (SSL.cafiles.length > 0) {\n                        options.agentOptions.ca = readFileSync(SSL.cafiles[0], {\n                          encoding: 'utf-8',\n                        });\n                      }\n\n                      function callback(error, _res, body) {\n                        if (error) {\n                          throw new Error(\n                            `Failed to get ${IDENTITY_TOKEN_SOURCE} Token: ${error}`\n                          );\n                        } else if (body?.error) {\n                          throw new Error(body?.error);\n                        } else {\n                          const parsedBody = JSON.parse(body);\n                          req.session.isAdmin = isInAdminGroup;\n                          req.session.identityToken = parsedBody;\n\n                          const cookieName = 'helixui_identity.token';\n                          const cookieValue =\n                            parsedBody.value[TOKEN_RESPONSE_KEY];\n                          const cookieExpiresDate = new Date(\n                            parsedBody.value[TOKEN_EXPIRATION_KEY]\n                          );\n                          const cookieOptions = {\n                            expires: cookieExpiresDate,\n                          };\n                          res.cookie(cookieName, cookieValue, cookieOptions);\n                          res.json(isInAdminGroup);\n\n                          return parsedBody;\n                        }\n                      }\n                      request.post(options, callback);\n                    } else {\n                      req.session.isAdmin = isInAdminGroup;\n                      res.json(isInAdminGroup);\n                    }\n                    //\n                    // END Get an Identity-Token\n                    //\n                  }\n                }\n              } else {\n                req.session.isAdmin = isInAdminGroup;\n                res.json(isInAdminGroup);\n              }\n            });\n          });\n        }\n      }\n    );\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 15,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [],
            "methods": [
                {
                    "name": "can",
                    "args": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "current",
                    "args": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 39,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "login",
                    "args": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "req",
                            "type": "HelixRequest",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "res",
                            "type": "Response",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Workflow",
            "id": "class-Workflow-dbb6f7398f86a1c9a4e4300cce9fdb5aef458214a868cf6f220016cd48f791cee0f14a555aaae4d2ce8878b40b7c2dda7ad6764dec02e27cdf5fa25348b18875",
            "file": "src/app/workflow/shared/workflow.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import * as _ from 'lodash';\n\nexport class Task {}\n\nexport class Job {\n  readonly name: string;\n  readonly rawName: string;\n  readonly startTime: string;\n  readonly state: string;\n  readonly parents: string[];\n\n  readonly workflowName: string;\n  readonly clusterName: string;\n\n  // will load later\n  config: any;\n  context: any;\n\n  constructor(\n    rawName: string,\n    workflowName: string,\n    clusterName: string,\n    startTime: string,\n    state: string,\n    parents: string[]\n  ) {\n    this.rawName = rawName;\n    // try to reduce the name\n    this.name = _.replace(rawName, workflowName + '_', '');\n    this.workflowName = workflowName;\n    this.clusterName = clusterName;\n    this.startTime = startTime;\n    this.state = state;\n    // try to reduce parent names\n    this.parents = _.map(parents, (parent) =>\n      _.replace(parent, workflowName + '_', '')\n    );\n  }\n}\n\nexport class Workflow {\n  readonly name: string;\n  readonly clusterName: string;\n  readonly config: any;\n  readonly jobs: Job[];\n  readonly context: any;\n  readonly json: any;\n\n  get isJobQueue(): boolean {\n    return (\n      this.config &&\n      this.config.IsJobQueue &&\n      this.config.IsJobQueue.toLowerCase() == 'true'\n    );\n  }\n\n  get state(): string {\n    return this.context.STATE || 'NOT STARTED';\n  }\n\n  constructor(obj: any, clusterName: string) {\n    this.json = obj;\n    this.name = obj.id;\n    this.clusterName = clusterName;\n    this.config = obj.WorkflowConfig;\n    this.context = obj.WorkflowContext;\n    this.jobs = this.parseJobs(obj.Jobs, obj.ParentJobs);\n  }\n\n  protected parseJobs(list: string[], parents: any): Job[] {\n    const result: Job[] = [];\n\n    _.forEach(list, (jobName) => {\n      result.push(\n        new Job(\n          jobName,\n          this.name,\n          this.clusterName,\n          _.get(this.context, ['StartTime', jobName]),\n          _.get(this.context, ['JOB_STATES', jobName]),\n          parents[jobName]\n        )\n      );\n    });\n\n    return result;\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 59,
                "jsdoctags": [
                    {
                        "name": "obj",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "clusterName",
                        "type": "string",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "properties": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "config",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "context",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "jobs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Job[]",
                    "optional": false,
                    "description": "",
                    "line": 45,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "json",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "modifierKind": [
                        144
                    ]
                },
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methods": [
                {
                    "name": "parseJobs",
                    "args": [
                        {
                            "name": "list",
                            "type": "string[]",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "parents",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Job[]",
                    "typeParameters": [],
                    "line": 70,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "list",
                            "type": "string[]",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "parents",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "accessors": {
                "isJobQueue": {
                    "name": "isJobQueue",
                    "getSignature": {
                        "name": "isJobQueue",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 49
                    }
                },
                "state": {
                    "name": "state",
                    "getSignature": {
                        "name": "state",
                        "type": "string",
                        "returnType": "string",
                        "line": 57
                    }
                }
            },
            "inputsClass": [],
            "outputsClass": [],
            "hostBindings": [],
            "hostListeners": []
        }
    ],
    "directives": [
        {
            "name": "KeyValuePairDirective",
            "id": "directive-KeyValuePairDirective-c86780162af35a2b28f0057e0fa60aebe7d591a8fb7d988e956f1678d95bb90839c20db5a06d32fa01ee0f1b9189a86ec2ab987947c486426254fd7cd9aab6bd",
            "file": "src/app/shared/key-value-pairs/key-value-pairs.component.ts",
            "type": "directive",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import {\n  Component,\n  ContentChildren,\n  Directive,\n  Input,\n  QueryList,\n} from '@angular/core';\n\nimport * as _ from 'lodash';\n\n// good doc: https://angular.io/docs/ts/latest/api/core/index/ContentChildren-decorator.html\n\n@Directive({ selector: 'hi-key-value-pair' })\nexport class KeyValuePairDirective {\n  @Input() name: string;\n  @Input() prop: string;\n}\n\n@Component({\n  selector: 'hi-key-value-pairs',\n  templateUrl: './key-value-pairs.component.html',\n  styleUrls: ['./key-value-pairs.component.scss'],\n})\nexport class KeyValuePairsComponent {\n  getProp = _.get;\n\n  @ContentChildren(KeyValuePairDirective)\n  pairs: QueryList<KeyValuePairDirective>;\n\n  @Input() obj: any;\n}\n",
            "selector": "hi-key-value-pair",
            "providers": [],
            "inputsClass": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 15,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "prop",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 16,
                    "type": "string",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "propertiesClass": [],
            "methodsClass": []
        }
    ],
    "components": [
        {
            "name": "AlertDialogComponent",
            "id": "component-AlertDialogComponent-120ae8b976cfe686357c36cac4ea86e659092a7c5fc4216c81afd979e52e9086cf7ebed7adae2008b378827809eab2164ffe213211cf43445e49e6a17cb08e77",
            "file": "src/app/shared/dialog/alert-dialog/alert-dialog.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-alert-dialog",
            "styleUrls": [
                "./alert-dialog.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./alert-dialog.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 10
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 15,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n  selector: 'hi-alert-dialog',\n  templateUrl: './alert-dialog.component.html',\n  styleUrls: ['./alert-dialog.component.scss'],\n})\nexport class AlertDialogComponent implements OnInit {\n  title: string;\n  message: string;\n\n  constructor(@Inject(MAT_DIALOG_DATA) protected data: any) {}\n\n  ngOnInit() {\n    this.title = (this.data && this.data.title) || 'Alert';\n    this.message = (this.data && this.data.message) || 'Something happened.';\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./alert-dialog.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 11,
                "jsdoctags": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<h1 mat-dialog-title>{{ title }}</h1>\n<div mat-dialog-content>{{ message }}</div>\n"
        },
        {
            "name": "AppComponent",
            "id": "component-AppComponent-ab0f2d07d9bbe2b2304e8801b2049073dc9e2ea892d1bd8ecd75058bd815db3565891a02eab931fffaf1ed578523751bdde179b10f9a18a117fe0215f7b552c6",
            "file": "src/app/app.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "UserService"
                }
            ],
            "selector": "hi-root",
            "styleUrls": [
                "./app.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./app.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "currentUser",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "footerEnabled",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "headerEnabled",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                }
            ],
            "methodsClass": [
                {
                    "name": "login",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 65,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport {\n  Router,\n  ActivatedRoute,\n  NavigationStart,\n  NavigationEnd,\n  NavigationCancel,\n  NavigationError,\n} from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\n// import { Angulartics2Piwik } from 'angulartics2/piwik';\n\nimport { UserService } from './core/user.service';\nimport { InputDialogComponent } from './shared/dialog/input-dialog/input-dialog.component';\nimport { HelperService } from './shared/helper.service';\n\n@Component({\n  selector: 'hi-root',\n  templateUrl: './app.component.html',\n  styleUrls: ['./app.component.scss'],\n  providers: [UserService /*, Angulartics2Piwik */],\n})\nexport class AppComponent implements OnInit {\n  headerEnabled = true;\n  footerEnabled = true;\n  isLoading = true;\n  currentUser: any;\n\n  constructor(\n    // protected angulartics2Piwik: Angulartics2Piwik,\n    protected route: ActivatedRoute,\n    protected router: Router,\n    protected dialog: MatDialog,\n    protected service: UserService,\n    protected helper: HelperService\n  ) {\n    router.events.subscribe((event) => {\n      if (event instanceof NavigationStart) {\n        this.isLoading = true;\n      }\n      if (event instanceof NavigationEnd) {\n        this.isLoading = false;\n      }\n      if (event instanceof NavigationError) {\n        this.isLoading = false;\n      }\n      if (event instanceof NavigationCancel) {\n        this.isLoading = false;\n      }\n    });\n    // angulartics2Piwik.startTracking();\n  }\n\n  ngOnInit() {\n    this.currentUser = this.service.getCurrentUser();\n\n    this.route.queryParams.subscribe((params) => {\n      if (params['embed'] == 'true') {\n        this.headerEnabled = this.footerEnabled = false;\n      }\n    });\n  }\n\n  login() {\n    this.dialog\n      .open(InputDialogComponent, {\n        data: {\n          title: 'Sign In',\n          message: 'Please enter your LDAP username and password to continue:',\n          values: {\n            username: {\n              label: 'Username',\n            },\n            password: {\n              label: 'Password',\n              type: 'password',\n            },\n          },\n        },\n      })\n      .afterClosed()\n      .subscribe(\n        (result) => {\n          if (result && result.username.value && result.password.value) {\n            this.service\n              .login(result.username.value, result.password.value)\n              .subscribe(\n                (loginResponse) => {\n                  if (!loginResponse) {\n                    this.helper.showError(\n                      `${loginResponse.status}: Either You are not part of helix-admin LDAP group or your password is incorrect.`\n                    );\n                  }\n\n                  this.currentUser = this.service.getCurrentUser();\n                },\n                (error) => {\n                  // since rest API simply throws 404 instead of empty config when config is not initialized yet\n                  // frontend has to treat 404 as normal result\n                  if (error != 'Not Found') {\n                    this.helper.showError(error);\n                  }\n                  this.isLoading = false;\n                }\n              );\n          }\n        },\n        (error) => {\n          // since rest API simply throws 404 instead of empty config when config is not initialized yet\n          // frontend has to treat 404 as normal result\n          if (error != 'Not Found') {\n            this.helper.showError(error);\n          }\n          this.isLoading = false;\n        }\n      );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".header,\n.footer {\n  z-index: 7;\n}\n\n.helix-logo {\n  width: 30px;\n  height: 30px;\n  padding-right: 10px;\n}\n\n.helix-title {\n  font-size: 30px;\n  text-transform: uppercase;\n}\n\n.mat-progress-bar {\n  position: fixed;\n  top: 64px;\n  z-index: 5;\n\n  &.no-header {\n    top: 0;\n  }\n}\n\n.footer {\n  background-color: #f5f5f5;\n  height: 50px;\n\n  span {\n    font-weight: normal;\n    font-size: 14px;\n    color: #666;\n  }\n}\n\n.main-container {\n  height: calc(100vh - 64px - 50px);\n  overflow-y: scroll;\n\n  &.no-header {\n    height: 100vh;\n  }\n}\n",
                    "styleUrl": "./app.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "UserService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 28,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "UserService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section class=\"app\" fxLayout=\"column\" fxFill>\n  <mat-toolbar\n    *ngIf=\"headerEnabled\"\n    class=\"header mat-elevation-z7\"\n    color=\"primary\"\n  >\n    <a mat-button routerLink=\"/\">\n      <img class=\"helix-logo\" src=\"assets/logo.png\" />\n      <span class=\"helix-title\">Helix</span>\n    </a>\n    <span fxFlex=\"1 1 auto\"></span>\n    <a mat-button (click)=\"login()\">\n      <mat-icon>person</mat-icon>\n      {{ currentUser | async }}\n    </a>\n  </mat-toolbar>\n  <mat-progress-bar\n    *ngIf=\"isLoading\"\n    mode=\"indeterminate\"\n    [ngClass]=\"{ 'no-header': !headerEnabled }\"\n  ></mat-progress-bar>\n  <section class=\"main-container\" [ngClass]=\"{ 'no-header': !headerEnabled }\">\n    <router-outlet></router-outlet>\n  </section>\n  <section\n    *ngIf=\"footerEnabled\"\n    class=\"footer mat-elevation-z7\"\n    fxLayout=\"row\"\n    fxLayoutAlign=\"center center\"\n  >\n    <span>&copy; 2022 Helix. All rights reserved.</span>\n  </section>\n</section>\n"
        },
        {
            "name": "ClusterComponent",
            "id": "component-ClusterComponent-e9f2bbc82efbf6ad544827bb9017eefc2144024b90a6edc7e849dbb012b4c23ab3565a33c41e0b56dd221f394cc4ad77db936f60091392924fb87e1794676666",
            "file": "src/app/cluster/cluster.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-cluster",
            "styleUrls": [
                "./cluster.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./cluster.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "isNarrowView",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "sidenav",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 10,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'sidenav', {static: true}"
                        }
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "toggleSidenav",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { MediaChange, MediaObserver } from '@angular/flex-layout';\n\n@Component({\n  selector: 'hi-cluster',\n  templateUrl: './cluster.component.html',\n  styleUrls: ['./cluster.component.scss'],\n})\nexport class ClusterComponent implements OnInit {\n  @ViewChild('sidenav', { static: true }) sidenav;\n\n  isNarrowView: boolean;\n\n  constructor(protected media: MediaObserver) {}\n\n  ngOnInit() {\n    // auto adjust side nav only if not embed\n    this.isNarrowView = this.media.isActive('xs') || this.media.isActive('sm');\n\n    this.media.asObservable().subscribe((change: MediaChange[]) => {\n      change.forEach((item) => {\n        this.isNarrowView = item.mqAlias === 'xs' || item.mqAlias === 'sm';\n      });\n    });\n  }\n\n  toggleSidenav() {\n    this.sidenav.opened ? this.sidenav.close() : this.sidenav.open();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".mat-sidenav {\n  width: 25vw;\n  min-width: 200px;\n}\n\n.toggle-button {\n  position: fixed;\n  top: 50%;\n  z-index: 3;\n  transition: all 400ms cubic-bezier(0.25, 0.8, 0.25, 1);\n  cursor: pointer;\n\n  &.open {\n    left: calc(25vw - 20px);\n  }\n\n  &.close {\n    left: -15px;\n  }\n}\n",
                    "styleUrl": "./cluster.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "media",
                        "type": "MediaObserver",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 12,
                "jsdoctags": [
                    {
                        "name": "media",
                        "type": "MediaObserver",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<mat-sidenav-container fxFill>\n  <mat-sidenav\n    #sidenav\n    [mode]=\"isNarrowView ? 'over' : 'side'\"\n    [opened]=\"!isNarrowView\"\n    [disableClose]=\"!isNarrowView\"\n    class=\"mat-elevation-z4\"\n  >\n    <hi-cluster-list></hi-cluster-list>\n  </mat-sidenav>\n  <section fxFill>\n    <router-outlet></router-outlet>\n  </section>\n</mat-sidenav-container>\n<button\n  mat-mini-fab\n  [ngClass]=\"['toggle-button', sidenav.opened ? 'open' : 'close']\"\n  color=\"\"\n  (click)=\"toggleSidenav()\"\n>\n  <mat-icon>chevron_{{ sidenav.opened ? 'left' : 'right' }}</mat-icon>\n</button>\n"
        },
        {
            "name": "ClusterDetailComponent",
            "id": "component-ClusterDetailComponent-c113526e36f3c537ef54d6e94ae2437e25a4350adba3e1311f167d0913656b2da2fe391edee3eb40924bf4ebd85424f8e595f44db590d0750c5c7bc5d5d32dcb",
            "file": "src/app/cluster/cluster-detail/cluster-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "InstanceService"
                }
            ],
            "selector": "hi-cluster-detail",
            "styleUrls": [
                "./cluster-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./cluster-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "cluster",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Cluster",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "isLoading",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "tabLinks",
                    "defaultValue": "[\n    { label: 'Dashboard (beta)', link: 'dashboard' },\n    { label: 'Resources', link: 'resources' },\n    { label: 'Workflows', link: 'workflows' },\n    { label: 'Instances', link: 'instances' },\n    { label: 'Configuration', link: 'configs' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 20,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "activateCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 122,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "addInstance",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "deleteCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 197,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "disableCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 115,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "disableMaintenanceMode",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 190,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "enableCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 108,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "enableMaintenanceMode",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 163,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "loadCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 50,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 42,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { map } from 'rxjs/operators';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Cluster } from '../shared/cluster.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ClusterService } from '../shared/cluster.service';\nimport { InstanceService } from '../../instance/shared/instance.service';\nimport { AlertDialogComponent } from '../../shared/dialog/alert-dialog/alert-dialog.component';\nimport { InputDialogComponent } from '../../shared/dialog/input-dialog/input-dialog.component';\n\n@Component({\n  selector: 'hi-cluster-detail',\n  templateUrl: './cluster-detail.component.html',\n  styleUrls: ['./cluster-detail.component.scss'],\n  providers: [InstanceService],\n})\nexport class ClusterDetailComponent implements OnInit {\n  readonly tabLinks = [\n    { label: 'Dashboard (beta)', link: 'dashboard' },\n    { label: 'Resources', link: 'resources' },\n    { label: 'Workflows', link: 'workflows' },\n    { label: 'Instances', link: 'instances' },\n    { label: 'Configuration', link: 'configs' },\n  ];\n\n  isLoading = false;\n  clusterName: string; // for better UX needs\n  cluster: Cluster;\n  can = false;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected router: Router,\n    protected dialog: MatDialog,\n    protected helperService: HelperService,\n    protected clusterService: ClusterService,\n    protected instanceService: InstanceService\n  ) {}\n\n  ngOnInit() {\n    this.clusterService.can().subscribe((data) => (this.can = data));\n    this.route.params.pipe(map((p) => p.name)).subscribe((name) => {\n      this.clusterName = name;\n      this.loadCluster();\n    });\n  }\n\n  protected loadCluster() {\n    this.isLoading = true;\n    this.clusterService.get(this.clusterName).subscribe(\n      (data) => (this.cluster = data),\n      (error) => this.helperService.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n\n  addInstance() {\n    this.dialog\n      .open(InputDialogComponent, {\n        data: {\n          title: 'Add a new Instance',\n          message: 'Please enter the following information to continue:',\n          values: {\n            host: {\n              label: 'Hostname',\n            },\n            port: {\n              label: 'Port',\n            },\n            enabled: {\n              label: 'Enabled',\n              type: 'boolean',\n            },\n          },\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result) {\n          this.instanceService\n            .create(\n              this.cluster.name,\n              result.host.value,\n              result.port.value,\n              result.enabled.value\n            )\n            .subscribe(\n              (data) => {\n                this.helperService.showSnackBar('New Instance added!');\n                // temporarily navigate back to instance view to refresh\n                // will fix this using ngrx/store\n                this.router.navigate(['workflows'], { relativeTo: this.route });\n                setTimeout(() => {\n                  this.router.navigate(['instances'], {\n                    relativeTo: this.route,\n                  });\n                }, 100);\n              },\n              (error) => this.helperService.showError(error),\n              () => {}\n            );\n        }\n      });\n  }\n\n  enableCluster() {\n    this.clusterService.enable(this.clusterName).subscribe(\n      () => this.loadCluster(),\n      (error) => this.helperService.showError(error)\n    );\n  }\n\n  disableCluster() {\n    this.clusterService.disable(this.clusterName).subscribe(\n      () => this.loadCluster(),\n      (error) => this.helperService.showError(error)\n    );\n  }\n\n  activateCluster() {\n    this.dialog\n      .open(InputDialogComponent, {\n        data: {\n          title: 'Activate this Cluster',\n          message:\n            'To link this cluster to a Helix super cluster (controller), please enter the super cluster name:',\n          values: {\n            name: {\n              label: 'super cluster name',\n            },\n          },\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result && result.name.value) {\n          this.clusterService\n            .activate(this.clusterName, result.name.value)\n            .subscribe(\n              () => {\n                // since this action may delay a little bit, to prevent re-activation,\n                // use an alert dialog to reload the data later\n                this.dialog\n                  .open(AlertDialogComponent, {\n                    data: {\n                      title: 'Cluster Activated',\n                      message: `Cluster '${this.clusterName}' is linked to super cluster '${result.name.value}'.`,\n                    },\n                  })\n                  .afterClosed()\n                  .subscribe(() => {\n                    this.loadCluster();\n                  });\n              },\n              (error) => this.helperService.showError(error)\n            );\n        }\n      });\n  }\n\n  enableMaintenanceMode() {\n    this.dialog\n      .open(InputDialogComponent, {\n        data: {\n          title: 'Enable maintenance mode',\n          message:\n            'What reason do you want to use to put the cluster in maintenance mode?',\n          values: {\n            reason: {\n              label: 'reason',\n            },\n          },\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result && result.reason.value) {\n          this.clusterService\n            .enableMaintenanceMode(this.clusterName, result.reason.value)\n            .subscribe(\n              () => this.loadCluster(),\n              (error) => this.helperService.showError(error)\n            );\n        }\n      });\n  }\n\n  disableMaintenanceMode() {\n    this.clusterService.disableMaintenanceMode(this.clusterName).subscribe(\n      () => this.loadCluster(),\n      (error) => this.helperService.showError(error)\n    );\n  }\n\n  deleteCluster() {\n    this.helperService\n      .showConfirmation(\n        'Are you sure you want to delete this cluster? This cannot be undone.',\n        'Confirm Cluster Deletion',\n        `Delete Cluster ${this.clusterName}`\n      )\n      .then((result) => {\n        if (result) {\n          this.clusterService.remove(this.cluster.name).subscribe((data) => {\n            this.helperService.showSnackBar(\n              `Cluster ${this.clusterName} deleted`\n            );\n            // FIXME: should reload cluster list as well\n            this.router.navigate(['..'], { relativeTo: this.route });\n          });\n        }\n      });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".mat-spinner {\n  margin: 0 20px;\n}\n\n.mat-toolbar h6 {\n  font-size: 14px;\n}\n",
                    "styleUrl": "./cluster-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helperService",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "instanceService",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 31,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helperService",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "instanceService",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section *ngIf=\"clusterName\" class=\"cluster-detail\" fxLayout=\"column\" fxFill>\n  <mat-toolbar class=\"mat-elevation-z1\" fxFlex=\"none\">\n    <mat-toolbar-row>\n      <hi-detail-header [cluster]=\"clusterName\"></hi-detail-header>\n      <hi-disabled-label\n        *ngIf=\"!cluster?.enabled\"\n        text=\"DISABLED\"\n      ></hi-disabled-label>\n      <hi-disabled-label\n        *ngIf=\"cluster?.inMaintenance\"\n        text=\"In Maintenance Mode\"\n      ></hi-disabled-label>\n    </mat-toolbar-row>\n    <mat-toolbar-row class=\"information\">\n      <mat-spinner *ngIf=\"isLoading\" diameter=\"30\"></mat-spinner>\n      <h6 *ngIf=\"!isLoading\">\n        Controller:\n        <a mat-button color=\"accent\" routerLink=\"controller\">{{\n          cluster.controller\n        }}</a>\n      </h6>\n      <span fxFlex=\"1 1 auto\"></span>\n      <button mat-mini-fab *ngIf=\"can\" [matMenuTriggerFor]=\"menu\">\n        <mat-icon>menu</mat-icon>\n      </button>\n      <mat-menu #menu=\"matMenu\">\n        <button\n          mat-menu-item\n          *ngIf=\"cluster?.controller === 'No Lead Controller!'\"\n          (click)=\"activateCluster()\"\n        >\n          <mat-icon>settings_input_antenna</mat-icon>\n          <span>Activate this Cluster</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"!cluster?.inMaintenance\"\n          (click)=\"enableMaintenanceMode()\"\n        >\n          <mat-icon>music_off</mat-icon>\n          <span>Enable maintenance mode</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"cluster?.inMaintenance\"\n          (click)=\"disableMaintenanceMode()\"\n        >\n          <mat-icon>music_note</mat-icon>\n          <span>Disable maintenance mode</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"cluster?.enabled\"\n          (click)=\"disableCluster()\"\n        >\n          <mat-icon>not_interested</mat-icon>\n          <span>Disable this Cluster</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"!cluster?.enabled\"\n          (click)=\"enableCluster()\"\n        >\n          <mat-icon>play_circle_outline</mat-icon>\n          <span>Enable this Cluster</span>\n        </button>\n        <button mat-menu-item *ngIf=\"false\" (click)=\"addResource()\">\n          <mat-icon>note_add</mat-icon>\n          <span>Add a Resource</span>\n        </button>\n        <button mat-menu-item (click)=\"addInstance()\">\n          <mat-icon>add_circle</mat-icon>\n          <span>Add an Instance</span>\n        </button>\n        <button mat-menu-item (click)=\"deleteCluster()\">\n          <mat-icon>delete</mat-icon>\n          <span>DELETE this Cluster</span>\n        </button>\n      </mat-menu>\n    </mat-toolbar-row>\n  </mat-toolbar>\n  <nav mat-tab-nav-bar>\n    <a\n      mat-tab-link\n      *ngFor=\"let tabLink of tabLinks\"\n      [routerLink]=\"tabLink.link\"\n      routerLinkActive\n      #rla=\"routerLinkActive\"\n      [active]=\"rla.isActive\"\n    >\n      {{ tabLink.label }}\n    </a>\n  </nav>\n  <section fxFlex>\n    <router-outlet></router-outlet>\n  </section>\n</section>\n"
        },
        {
            "name": "ClusterListComponent",
            "id": "component-ClusterListComponent-96a618ec59acde620249bdda1b57c2a61fefeecb19b3c9eef5f046dcca7032345cd8563639660af1a5283c3a033f654dfd4689e35ef439a065190e5e8f9bb0a4",
            "file": "src/app/cluster/cluster-list/cluster-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-cluster-list",
            "styleUrls": [
                "./cluster-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./cluster-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "clusters",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Cluster[]",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "errorMessage",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "service",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 22
                }
            ],
            "methodsClass": [
                {
                    "name": "createCluster",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "loadClusters",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 38,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "showErrorMessage",
                    "args": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "error",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { Router } from '@angular/router';\n\nimport { ClusterService } from '../shared/cluster.service';\nimport { Cluster } from '../shared/cluster.model';\nimport { AlertDialogComponent } from '../../shared/dialog/alert-dialog/alert-dialog.component';\nimport { InputDialogComponent } from '../../shared/dialog/input-dialog/input-dialog.component';\n\n@Component({\n  selector: 'hi-cluster-list',\n  templateUrl: './cluster-list.component.html',\n  styleUrls: ['./cluster-list.component.scss'],\n})\nexport class ClusterListComponent implements OnInit {\n  clusters: Cluster[] = [];\n  errorMessage = '';\n  isLoading = true;\n  // is the currrent user logged in? If true, then yes.\n  can = false;\n  service = '';\n\n  constructor(\n    protected clusterService: ClusterService,\n    protected dialog: MatDialog,\n    protected snackBar: MatSnackBar,\n    protected router: Router\n  ) {}\n\n  ngOnInit() {\n    this.loadClusters();\n    // check if the current user is logged in\n    this.clusterService.can().subscribe((data) => (this.can = data));\n    this.service = this.router.url.split('/')[1];\n  }\n\n  loadClusters() {\n    this.clusterService.getAll().subscribe(\n      /* happy path */ (clusters) => (this.clusters = clusters),\n      /* error path */ (error) => this.showErrorMessage(error),\n      /* onComplete */ () => (this.isLoading = false)\n    );\n    // check if the current user is logged in again\n    this.clusterService.can().subscribe((data) => (this.can = data));\n  }\n\n  showErrorMessage(error: any) {\n    this.errorMessage = error;\n    this.isLoading = false;\n    this.dialog.open(AlertDialogComponent, {\n      data: {\n        title: 'Error',\n        message: this.errorMessage,\n      },\n    });\n  }\n\n  createCluster() {\n    const dialogRef = this.dialog.open(InputDialogComponent, {\n      data: {\n        title: 'Create a cluster',\n        message: 'Please enter the following information to continue:',\n        values: {\n          name: {\n            label: 'new cluster name',\n          },\n        },\n      },\n    });\n\n    dialogRef.afterClosed().subscribe((result) => {\n      if (result && result.name && result.name.value) {\n        this.isLoading = true;\n        this.clusterService.create(result.name.value).subscribe((data) => {\n          this.snackBar.open('Cluster created!', 'OK', {\n            duration: 2000,\n          });\n          this.dialog.open(AlertDialogComponent, {\n            width: '600px',\n            data: {\n              title: \"What's Next\",\n              message:\n                'New cluster is created yet not activated. When you are ready to activate this cluster,' +\n                ' please select \"Activate this Cluster\" menu in the cluster operations to continue.',\n            },\n          });\n          this.loadClusters();\n        });\n      }\n    });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.mat-nav-list {\n  display: flex;\n  flex-direction: column;\n}\n\n.cluster-list-button-group {\n  display: flex;\n  justify-content: space-between;\n  margin-right: 1rem;\n}\n\n.back-to-index-button {\n  align-self: flex-start;\n}\n\n.add-cluster-button {\n  align-self: flex-end;\n}\n\n.mat-spinner {\n  margin: 20px;\n}\n\n.cluster-list-item-selected h4 {\n  font-weight: 500;\n  color: mat.get-color-from-palette($hi-primary);\n}\n\n.error-message {\n  padding: 10px;\n}\n\n.empty {\n  font-size: 14px;\n  // font-style: italic;\n  padding: 10px;\n}\n",
                    "styleUrl": "./cluster-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "snackBar",
                        "type": "MatSnackBar",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 22,
                "jsdoctags": [
                    {
                        "name": "clusterService",
                        "type": "ClusterService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "snackBar",
                        "type": "MatSnackBar",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section class=\"cluster-list\">\n  <section *ngIf=\"isLoading\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n    <mat-spinner> Loading all clusters ... </mat-spinner>\n  </section>\n  <mat-nav-list *ngIf=\"!isLoading && !errorMessage\">\n    <div class=\"cluster-list-button-group\">\n      <button class=\"back-to-index-button\" mat-button routerLink=\"/\">\n        <mat-icon>arrow_back</mat-icon> Back to Index\n      </button>\n      <button mat-mini-fab *ngIf=\"can\" (click)=\"createCluster()\">\n        <mat-icon>add</mat-icon>\n      </button>\n    </div>\n    <h3 mat-subheader>Clusters in {{ service }} ({{ clusters.length }})</h3>\n    <a\n      *ngFor=\"let cluster of clusters\"\n      mat-list-item\n      [routerLink]=\"[cluster.name]\"\n      routerLinkActive=\"cluster-list-item-selected\"\n    >\n      <mat-icon mat-list-icon>blur_circular</mat-icon>\n      <h4 mat-line>{{ cluster.name }}</h4>\n    </a>\n    <div *ngIf=\"clusters.length == 0\" class=\"empty\">\n      There's no cluster here.\n      <a mat-button *ngIf=\"can\" (click)=\"createCluster()\">Create one?</a>\n    </div>\n  </mat-nav-list>\n  <section class=\"error-message\" *ngIf=\"errorMessage\">\n    {{ errorMessage }}\n  </section>\n</section>\n"
        },
        {
            "name": "ConfigDetailComponent",
            "id": "component-ConfigDetailComponent-7003bbd62f0ef79f82f39acfb7213849eccc83bba78d83d27eafa94f0f97acb87165b0e3e65da443932cd72d547b9f6531aef4146ac35ee85ba0d11b11adf77f",
            "file": "src/app/configuration/config-detail/config-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "ConfigurationService"
                }
            ],
            "selector": "hi-config-detail",
            "styleUrls": [
                "./config-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./config-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "instanceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "obj",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "resourceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 18
                }
            ],
            "methodsClass": [
                {
                    "name": "deleteConfig",
                    "args": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 107,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "loadConfig",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "updateConfig",
                    "args": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 75,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { ConfigurationService } from '../shared/configuration.service';\nimport { HelperService } from '../../shared/helper.service';\n\n@Component({\n  selector: 'hi-config-detail',\n  templateUrl: './config-detail.component.html',\n  styleUrls: ['./config-detail.component.scss'],\n  providers: [ConfigurationService],\n})\nexport class ConfigDetailComponent implements OnInit {\n  isLoading = true;\n  obj: any = {};\n  clusterName: string;\n  instanceName: string;\n  resourceName: string;\n  can = false;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected service: ConfigurationService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      this.clusterName =\n        this.route.parent.snapshot.params.name ||\n        this.route.parent.snapshot.params.cluster_name;\n      this.instanceName = this.route.parent.snapshot.params.instance_name;\n      this.resourceName = this.route.parent.snapshot.params.resource_name;\n    }\n\n    this.loadConfig();\n\n    this.service.can().subscribe((data) => (this.can = data));\n  }\n\n  loadConfig() {\n    let observer: any;\n\n    if (this.clusterName && this.instanceName) {\n      observer = this.service.getInstanceConfig(\n        this.clusterName,\n        this.instanceName\n      );\n    } else if (this.clusterName && this.resourceName) {\n      observer = this.service.getResourceConfig(\n        this.clusterName,\n        this.resourceName\n      );\n    } else {\n      observer = this.service.getClusterConfig(this.clusterName);\n    }\n\n    if (observer) {\n      this.isLoading = true;\n      observer.subscribe(\n        (config) => (this.obj = config),\n        (error) => {\n          // since rest API simply throws 404 instead of empty config when config is not initialized yet\n          // frontend has to treat 404 as normal result\n          if (error != 'Not Found') {\n            this.helper.showError(error);\n          }\n          this.isLoading = false;\n        },\n        () => (this.isLoading = false)\n      );\n    }\n  }\n\n  updateConfig(value: any) {\n    let observer: any;\n\n    if (this.clusterName && this.instanceName) {\n      observer = this.service.setInstanceConfig(\n        this.clusterName,\n        this.instanceName,\n        value\n      );\n    } else if (this.clusterName && this.resourceName) {\n      observer = this.service.setResourceConfig(\n        this.clusterName,\n        this.resourceName,\n        value\n      );\n    } else {\n      observer = this.service.setClusterConfig(this.clusterName, value);\n    }\n\n    if (observer) {\n      this.isLoading = true;\n      observer.subscribe(\n        () => {\n          this.helper.showSnackBar('Configuration updated!');\n          this.loadConfig();\n        },\n        (error) => this.helper.showError(error),\n        () => (this.isLoading = false)\n      );\n    }\n  }\n\n  deleteConfig(value: any) {\n    let observer: any;\n\n    if (this.clusterName && this.instanceName) {\n      observer = this.service.deleteInstanceConfig(\n        this.clusterName,\n        this.instanceName,\n        value\n      );\n    } else if (this.clusterName && this.resourceName) {\n      observer = this.service.deleteResourceConfig(\n        this.clusterName,\n        this.resourceName,\n        value\n      );\n    } else {\n      observer = this.service.deleteClusterConfig(this.clusterName, value);\n    }\n\n    if (observer) {\n      this.isLoading = true;\n      observer.subscribe(\n        () => {\n          this.helper.showSnackBar('Configuration deleted!');\n          this.loadConfig();\n        },\n        (error) => this.helper.showError(error),\n        () => (this.isLoading = false)\n      );\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./config-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ConfigurationService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 19,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ConfigurationService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <hi-node-viewer\n    [loadingIndicator]=\"isLoading\"\n    [obj]=\"obj\"\n    [unlockable]=\"can && instanceName == null\"\n    (update)=\"updateConfig($event)\"\n    (create)=\"updateConfig($event)\"\n    (delete)=\"deleteConfig($event)\"\n  >\n  </hi-node-viewer>\n</section>\n"
        },
        {
            "name": "ConfirmDialogComponent",
            "id": "component-ConfirmDialogComponent-48a0f9fe0e37f8bd5340e5f536cbf9375ac0a8e58bf2616bd82f418ff626eb2029bd3fe6d9fabfdeaad6711e34696274e4c72561d29e3a704f702d1c701bbd3d",
            "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-confirm-dialog",
            "styleUrls": [
                "./confirm-dialog.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./confirm-dialog.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "confirmButtonText",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 11
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onCancel",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onConfirm",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n  selector: 'hi-confirm-dialog',\n  templateUrl: './confirm-dialog.component.html',\n  styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class ConfirmDialogComponent implements OnInit {\n  title: string;\n  message: string;\n  confirmButtonText: string;\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA) protected data: any,\n    protected dialogRef: MatDialogRef<ConfirmDialogComponent>\n  ) {}\n\n  ngOnInit() {\n    this.title = (this.data && this.data.title) || 'Confirmation';\n    this.message =\n      (this.data && this.data.message) || 'Are you sure about this?';\n    this.confirmButtonText =\n      (this.data && this.data.confirmButtonText) || 'Continue';\n  }\n\n  onConfirm() {\n    this.dialogRef.close(true);\n  }\n\n  onCancel() {\n    this.dialogRef.close();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./confirm-dialog.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialogRef",
                        "type": "MatDialogRef<ConfirmDialogComponent>",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 13,
                "jsdoctags": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialogRef",
                        "type": "MatDialogRef<ConfirmDialogComponent>",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<form (ngSubmit)=\"onCancel()\" #inputForm=\"ngForm\">\n  <h1 mat-dialog-title>{{ title }}</h1>\n  <div mat-dialog-content>\n    <section>\n      {{ message }}\n    </section>\n  </div>\n  <div mat-dialog-actions>\n    <button\n      mat-button\n      type=\"submit\"\n      color=\"primary\"\n      [disabled]=\"!inputForm.form.valid\"\n    >\n      Cancel\n    </button>\n    <button mat-button type=\"button\" (click)=\"onConfirm()\">\n      {{ confirmButtonText }}\n    </button>\n  </div>\n</form>\n"
        },
        {
            "name": "ConfirmDialogTestComponent",
            "id": "component-ConfirmDialogTestComponent-de0078ca900ade63a7a114ed07a1a6b39665b99125c58043d2bcc3ed2e672f8d85618a960a9470e6d371d97d40a5466bb0f5c438b368dd7ff97224534899aa06",
            "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-confirm-dialog-test",
            "styleUrls": [
                "./confirm-dialog.component.scss"
            ],
            "styles": [],
            "template": "<button mat-flat-button (click)=\"openDialog()\">   Open Dialog\n </button>",
            "templateUrl": [],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "data",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 17,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "dialog",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "MatDialog",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "openDialog",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MaterialModule } from 'app/shared/material.module';\nimport { ConfirmDialogComponent } from '../confirm-dialog/confirm-dialog.component';\n\n// Wrapper component for testing approach recommended in this answer:\n// https://stackoverflow.com/a/63953851/1732222\n@Component({\n  selector: 'hi-confirm-dialog-test',\n  template: ` <button mat-flat-button (click)=\"openDialog()\">\n    Open Dialog\n  </button>`,\n  styleUrls: ['./confirm-dialog.component.scss'],\n})\nexport class ConfirmDialogTestComponent {\n  @Input() data: any;\n\n  constructor(public dialog: MatDialog) {}\n\n  public openDialog(): void {\n    this.dialog.open(ConfirmDialogComponent, {\n      data: this.data,\n    });\n  }\n}\n\nexport default () => ({\n  moduleMetadata: {\n    _imports: [BrowserAnimationsModule, MatDialogModule, MaterialModule],\n    get imports() {\n      return this._imports;\n    },\n    set imports(value) {\n      this._imports = value;\n    },\n    declarations: [ConfirmDialogTestComponent],\n  },\n  component: ConfirmDialogTestComponent,\n});\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./confirm-dialog.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 17,
                "jsdoctags": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        },
        {
            "name": "ControllerDetailComponent",
            "id": "component-ControllerDetailComponent-e04da49e353da895bbc10a6814958edca93cdc4225413ae00c0507cee7a22a2db8f081d67ca1d1dcf561488972a8549300542fa6634e11a3208cf91f96494afe",
            "file": "src/app/controller/controller-detail/controller-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "ControllerService",
                    "type": "controller"
                }
            ],
            "selector": "hi-controller-detail",
            "styleUrls": [
                "./controller-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./controller-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "controller",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Controller",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 23,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Controller } from '../shared/controller.model';\nimport { ControllerService } from '../shared/controller.service';\n\n@Component({\n  selector: 'hi-controller-detail',\n  templateUrl: './controller-detail.component.html',\n  styleUrls: ['./controller-detail.component.scss'],\n  providers: [ControllerService],\n})\nexport class ControllerDetailComponent implements OnInit {\n  clusterName: string;\n  controller: Controller;\n  isLoading = true;\n\n  constructor(\n    private route: ActivatedRoute,\n    private service: ControllerService\n  ) {}\n\n  ngOnInit() {\n    this.clusterName = this.route.snapshot.params['cluster_name'];\n    this.service.get(this.clusterName).subscribe(\n      (controller) => (this.controller = controller),\n      (error) => {},\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".information {\n  .mat-spinner {\n    margin: 0 20px;\n  }\n}\n",
                    "styleUrl": "./controller-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ControllerService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 16,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ControllerService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <mat-toolbar class=\"mat-elevation-z1\">\n    <mat-toolbar-row>\n      <hi-detail-header\n        [cluster]=\"clusterName\"\n        [controller]=\"controller?.name\"\n      ></hi-detail-header>\n    </mat-toolbar-row>\n    <mat-toolbar-row class=\"information\" fxLayout=\"row\">\n      <a mat-mini-fab routerLink=\"../\"><mat-icon>arrow_back</mat-icon></a>\n      <mat-spinner *ngIf=\"isLoading\" diameter=\"30\"></mat-spinner>\n      <hi-key-value-pairs *ngIf=\"!isLoading\" [obj]=\"controller\">\n        <hi-key-value-pair\n          name=\"Instance\"\n          prop=\"liveInstance\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Session ID\"\n          prop=\"sessionId\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Helix Version\"\n          prop=\"helixVersion\"\n        ></hi-key-value-pair>\n      </hi-key-value-pairs>\n    </mat-toolbar-row>\n  </mat-toolbar>\n  <nav mat-tab-nav-bar>\n    <a\n      mat-tab-link\n      routerLink=\"history\"\n      routerLinkActive\n      #rla=\"routerLinkActive\"\n      [active]=\"rla.isActive\"\n    >\n      History\n    </a>\n  </nav>\n  <router-outlet></router-outlet>\n</section>\n"
        },
        {
            "name": "DashboardComponent",
            "id": "component-DashboardComponent-1d72e983668ec82137e6e518e8b8e25d91dd500524110ca374faec5f54a349b61b412de59d99fd1dc49accec7be89ff324ebb2629c878b5af26b702b6e11b0b3",
            "file": "src/app/dashboard/dashboard.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "ResourceService"
                },
                {
                    "name": "InstanceService"
                }
            ],
            "selector": "hi-dashboard",
            "styleUrls": [
                "./dashboard.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./dashboard.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "edges",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Edge[]",
                    "optional": false,
                    "description": "",
                    "line": 30,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "instanceToId",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "isLoading",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "nodes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Node[]",
                    "optional": false,
                    "description": "",
                    "line": 29,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "resourceToId",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "selectedInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 37,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "selectedResource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "updateInterval",
                    "defaultValue": "3000",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 39,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "updateSubscription",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subscription",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "visNetwork",
                    "defaultValue": "'cluster-dashboard'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 26,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "visNetworkData",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Data",
                    "optional": false,
                    "description": "",
                    "line": 27,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "visNetworkOptions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Options",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "fetchResources",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 162,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "initDashboard",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 129,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "networkInitialized",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 50,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngAfterViewInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 149,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnDestroy",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 153,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 81,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onNodeSelected",
                    "args": [
                        {
                            "name": "id",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 224,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ],
                    "jsdoctags": [
                        {
                            "name": "id",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "updateResources",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 209,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import {\n  Component,\n  ElementRef,\n  OnInit,\n  AfterViewInit,\n  OnDestroy,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport _ from 'lodash';\nimport { forEach as lodashForEach } from 'lodash';\nimport { Data, Edge, Node, Options, VisNetworkService } from 'ngx-vis';\n\nimport { ResourceService } from '../resource/shared/resource.service';\nimport { InstanceService } from '../instance/shared/instance.service';\nimport { HelperService } from '../shared/helper.service';\n@Component({\n  selector: 'hi-dashboard',\n  templateUrl: './dashboard.component.html',\n  styleUrls: ['./dashboard.component.scss'],\n  providers: [ResourceService, InstanceService],\n})\nexport class DashboardComponent implements OnInit, AfterViewInit, OnDestroy {\n  public visNetwork = 'cluster-dashboard';\n  public visNetworkData: Data;\n  public visNetworkOptions: Options;\n  public nodes: Node[];\n  public edges: Edge[];\n\n  public clusterName: string;\n  public isLoading = false;\n  public resourceToId = {};\n  public instanceToId = {};\n  public selectedResource: any;\n  public selectedInstance: any;\n  public updateSubscription: Subscription;\n  public updateInterval = 3000;\n\n  public constructor(\n    private el: ElementRef,\n    private route: ActivatedRoute,\n    protected visNetworkService: VisNetworkService,\n    protected resourceService: ResourceService,\n    protected instanceService: InstanceService,\n    protected helper: HelperService\n  ) {}\n\n  networkInitialized() {\n    this.visNetworkService.on(this.visNetwork, 'click');\n    this.visNetworkService.on(this.visNetwork, 'zoom');\n\n    this.visNetworkService.click.subscribe((eventData: any[]) => {\n      if (eventData[0] === this.visNetwork) {\n        // clear the edges\n        this.visNetworkData.edges = [];\n        this.selectedResource = null;\n        this.selectedInstance = null;\n\n        //\n        if (eventData[1].nodes.length) {\n          const id = eventData[1].nodes[0];\n          this.onNodeSelected(id);\n        }\n      }\n    });\n\n    this.visNetworkService.zoom.subscribe((eventData: any) => {\n      if (eventData[0] === this.visNetwork) {\n        const scale = eventData[1].scale;\n        if (scale == 10) {\n          // too big\n        } else if (scale < 0.3) {\n          // small enough\n        }\n      }\n    });\n  }\n\n  ngOnInit() {\n    this.nodes = [];\n    this.edges = [];\n    this.visNetworkData = { nodes: this.nodes, edges: this.edges };\n    this.visNetworkOptions = {\n      interaction: {\n        navigationButtons: true,\n        keyboard: true,\n      },\n      layout: {\n        // layout will be the same every time the nodes are settled\n        randomSeed: 7,\n      },\n      physics: {\n        // default is barnesHut\n        solver: 'forceAtlas2Based',\n        forceAtlas2Based: {\n          // default: -50\n          gravitationalConstant: -30,\n          // default: 0\n          // avoidOverlap: 0.3\n        },\n      },\n      groups: {\n        resource: {\n          color: '#7FCAC3',\n          shape: 'ellipse',\n          widthConstraint: { maximum: 140 },\n        },\n        instance: {\n          color: '#90CAF9',\n          shape: 'box',\n          widthConstraint: { maximum: 140 },\n        },\n        instance_bad: {\n          color: '#CA7F86',\n          shape: 'box',\n          widthConstraint: { maximum: 140 },\n        },\n        partition: {\n          color: '#98D4B1',\n          shape: 'ellipse',\n          widthConstraint: { maximum: 140 },\n        },\n      },\n    };\n  }\n\n  initDashboard() {\n    // resize container according to the parent\n    const width = this.el.nativeElement.offsetWidth;\n    const height = this.el.nativeElement.offsetHeight - 36;\n    const dashboardDom = this.el.nativeElement.getElementsByClassName(\n      this.visNetwork\n    )[0];\n    dashboardDom.style.width = `${width}px`;\n    dashboardDom.style.height = `${height}px`;\n\n    // load data\n    if (this.route && this.route.parent) {\n      this.route.parent.params.pipe(map((p) => p.name)).subscribe((name) => {\n        this.clusterName = name;\n        this.fetchResources();\n        // this.updateResources();\n      });\n    }\n  }\n\n  ngAfterViewInit() {\n    setTimeout((_) => this.initDashboard());\n  }\n\n  ngOnDestroy(): void {\n    if (this.updateSubscription) {\n      this.updateSubscription.unsubscribe();\n    }\n\n    this.visNetworkService.off(this.visNetwork, 'zoom');\n    this.visNetworkService.off(this.visNetwork, 'click');\n  }\n\n  protected fetchResources() {\n    this.isLoading = true;\n\n    this.resourceService.getAll(this.clusterName).subscribe(\n      (result) => {\n        lodashForEach(result, (resource) => {\n          const lastId = this.nodes.length;\n          const newId = this.nodes.length + 1;\n          this.resourceToId[resource.name] = newId;\n          (this.visNetworkData.nodes as Node[])[\n            this.visNetworkData.nodes.length\n          ] = {\n            id: newId,\n            label: resource.name,\n            group: 'resource',\n            title: JSON.stringify(resource),\n          };\n        });\n\n        this.visNetworkService.fit(this.visNetwork);\n      },\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n\n    this.instanceService.getAll(this.clusterName).subscribe(\n      (result) => {\n        lodashForEach(result, (instance) => {\n          const newId = this.visNetworkData.nodes.length + 1;\n          this.instanceToId[instance.name] = newId;\n          (this.visNetworkData.nodes as Node[])[\n            this.visNetworkData.nodes.length\n          ] = {\n            id: newId,\n            label: instance.name,\n            group: instance.healthy ? 'instance' : 'instance_bad',\n            title: JSON.stringify(instance),\n          };\n        });\n\n        this.visNetworkService.fit(this.visNetwork);\n      },\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n\n  updateResources() {\n    /* disable auto-update for now\n    this.updateSubscription = Observable\n      .interval(this.updateInterval)\n      .flatMap(i => this.instanceService.getAll(this.clusterName))*/\n    this.instanceService.getAll(this.clusterName).subscribe((result) => {\n      _.forEach(result, (instance, index, _collection) => {\n        (this.visNetworkData.nodes as Node[])[index] = {\n          id: this.instanceToId[instance.name],\n          group: instance.healthy ? 'instance' : 'instance_bad',\n        };\n      });\n    });\n  }\n\n  protected onNodeSelected(id) {\n    const instanceName = _.findKey(this.instanceToId, (value) => value === id);\n    if (instanceName) {\n      this.selectedInstance = instanceName;\n      // fetch relationships\n      this.resourceService\n        .getAllOnInstance(this.clusterName, instanceName)\n        .subscribe(\n          (resources) => {\n            lodashForEach(resources, (resource) => {\n              (this.visNetworkData.edges as Edge[])[\n                this.visNetworkData.nodes.length\n              ] = {\n                from: id,\n                to: this.resourceToId[resource.name],\n              };\n            });\n          },\n          (error) => this.helper.showError(error)\n        );\n    } else {\n      const resourceName = _.findKey(\n        this.resourceToId,\n        (value) => value === id\n      );\n      if (resourceName) {\n        this.selectedResource = resourceName;\n        this.resourceService.get(this.clusterName, resourceName).subscribe(\n          (resource) => {\n            _(resource.partitions)\n              .flatMap('replicas')\n              .unionBy('instanceName')\n              .map('instanceName')\n              .forEach((instanceName) => {\n                (this.visNetworkData.edges as Edge[])[\n                  this.visNetworkData.nodes.length\n                ] = {\n                  from: this.instanceToId[instanceName],\n                  to: this.resourceToId[resourceName],\n                };\n              });\n          },\n          (error) => this.helper.showError(error)\n        );\n      }\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ":host {\n  width: 100%;\n  height: 100%;\n}\n\n.cluster-dashboard {\n  width: 800px;\n  height: 600px;\n}\n\n.info {\n  font-size: 12px;\n  height: 36px;\n  background-color: #fff;\n  border-bottom: 1px solid #ccc;\n  text-align: center;\n  vertical-align: middle;\n  line-height: 24px;\n}\n\n.oval {\n  width: 80px;\n  height: 24px;\n  background-color: #7fcac3;\n  border: 1px solid #65a19c;\n  -moz-border-radius: 80px / 24px;\n  -webkit-border-radius: 80px / 24px;\n  border-radius: 80px / 24px;\n}\n\n.rectangle {\n  width: 80px;\n  height: 24px;\n  background-color: #90caf9;\n  border: 1px solid #73a1c7;\n  -moz-border-radius: 5px;\n  -webkit-border-radius: 5px;\n  border-radius: 5px;\n}\n\n.hint {\n  color: gray;\n}\n",
                    "styleUrl": "./dashboard.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "el",
                        "type": "ElementRef",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "visNetworkService",
                        "type": "VisNetworkService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "resourceService",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "instanceService",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 39,
                "modifierKind": [
                    123
                ],
                "jsdoctags": [
                    {
                        "name": "el",
                        "type": "ElementRef",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "visNetworkService",
                        "type": "VisNetworkService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "resourceService",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "instanceService",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit",
                "AfterViewInit",
                "OnDestroy"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section fxLayout=\"column\" fxFlex>\n  <section\n    class=\"info\"\n    fxLayout=\"row\"\n    fxLayoutAlign=\"start center\"\n    fxLayoutGap=\"10px\"\n  >\n    <div class=\"oval\">Resource</div>\n    <div class=\"rectangle\">Instance</div>\n    <div class=\"hint\">(Scroll to zoom; Drag to move; Click for details)</div>\n    <span fxFlex=\"1 1 auto\"></span>\n    <button mat-button (click)=\"updateResources()\">\n      <mat-icon>refresh</mat-icon>\n      Refresh Status\n    </button>\n    <button\n      mat-button\n      *ngIf=\"selectedResource || selectedInstance\"\n      color=\"accent\"\n      [routerLink]=\"[\n        '../',\n        selectedResource ? 'resources' : 'instances',\n        selectedResource || selectedInstance\n      ]\"\n    >\n      {{ selectedResource || selectedInstance }}\n      <mat-icon>arrow_forward</mat-icon>\n    </button>\n  </section>\n  <section\n    class=\"cluster-dashboard\"\n    [visNetwork]=\"visNetwork\"\n    [visNetworkData]=\"visNetworkData\"\n    [visNetworkOptions]=\"visNetworkOptions\"\n    (initialized)=\"networkInitialized()\"\n  ></section>\n</section>\n"
        },
        {
            "name": "DataTableComponent",
            "id": "component-DataTableComponent-bcb59ac9ef4611dfd2b6e29ff763367078f46aa64229a5ff38debe81307c89a82e47a8978514206ee91b3211bec6affb34ada8edea61ec90849ca845dc8f7b24",
            "file": "src/app/shared/data-table/data-table.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-data-table",
            "styleUrls": [
                "./data-table.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./data-table.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "columns",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 15,
                    "type": "{}",
                    "decorators": []
                },
                {
                    "name": "deletable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 17,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "insertable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 18,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "rows",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 14,
                    "type": "{}",
                    "decorators": []
                },
                {
                    "name": "sorts",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 16,
                    "type": "{}",
                    "decorators": []
                }
            ],
            "outputsClass": [
                {
                    "name": "create",
                    "defaultValue": "new EventEmitter<any>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 21,
                    "type": "EventEmitter<any>"
                },
                {
                    "name": "delete",
                    "defaultValue": "new EventEmitter<any>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 22,
                    "type": "EventEmitter<any>"
                },
                {
                    "name": "update",
                    "defaultValue": "new EventEmitter<any>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 20,
                    "type": "EventEmitter<any>"
                }
            ],
            "propertiesClass": [
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                }
            ],
            "methodsClass": [
                {
                    "name": "getPropName",
                    "args": [
                        {
                            "name": "column",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 87,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "column",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onCreate",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 43,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onDelete",
                    "args": [
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 69,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onEdited",
                    "args": [
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "column",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "value",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 30,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "column",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "value",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport { Settings } from '../../core/settings';\nimport { InputDialogComponent } from '../dialog/input-dialog/input-dialog.component';\nimport { ConfirmDialogComponent } from '../dialog/confirm-dialog/confirm-dialog.component';\n\n@Component({\n  selector: 'hi-data-table',\n  templateUrl: './data-table.component.html',\n  styleUrls: ['./data-table.component.scss'],\n})\nexport class DataTableComponent implements OnInit {\n  @Input() rows = [];\n  @Input() columns = [];\n  @Input() sorts = [];\n  @Input() deletable = false;\n  @Input() insertable = false;\n\n  @Output() update: EventEmitter<any> = new EventEmitter<any>();\n  @Output() create: EventEmitter<any> = new EventEmitter<any>();\n  @Output() delete: EventEmitter<any> = new EventEmitter<any>();\n\n  rowHeight = Settings.tableRowHeight;\n\n  constructor(protected dialog: MatDialog) {}\n\n  ngOnInit() {}\n\n  onEdited(row, column, value) {\n    const prop = this.getPropName(column);\n\n    // only emit when value changes\n    if (row[prop] !== value) {\n      this.update.emit({\n        row,\n        column,\n        value,\n      });\n    }\n  }\n\n  onCreate() {\n    const data = {\n      title: 'Create a new item',\n      message: 'Please enter the following information to continue:',\n      values: {},\n    };\n\n    for (const column of this.columns) {\n      const prop = this.getPropName(column);\n      data.values[prop] = {\n        label: column.name,\n      };\n    }\n\n    this.dialog\n      .open(InputDialogComponent, {\n        data,\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result) {\n          this.create.emit(result);\n        }\n      });\n  }\n\n  onDelete(row) {\n    this.dialog\n      .open(ConfirmDialogComponent, {\n        data: {\n          title: 'Confirmation',\n          message: 'Are you sure you want to delete this configuration?',\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result) {\n          this.delete.emit({\n            row,\n          });\n        }\n      });\n  }\n\n  getPropName(column): string {\n    return column.prop ? column.prop : column.name.toLowerCase();\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.mat-icon {\n  @include md-icon-size(20px);\n\n  &:hover {\n    color: mat.get-color-from-palette($hi-warn);\n  }\n}\n\n.mat-icon-button {\n  width: 24px;\n  height: 24px;\n  line-height: 24px;\n}\n\n.footer {\n  width: 100%;\n  padding: 0 20px;\n}\n",
                    "styleUrl": "./data-table.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 24,
                "jsdoctags": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<ngx-datatable\n  #dataTable\n  class=\"material\"\n  [headerHeight]=\"rowHeight\"\n  rowHeight=\"auto\"\n  [footerHeight]=\"rowHeight\"\n  columnMode=\"force\"\n  [rows]=\"rows\"\n  [sorts]=\"sorts\"\n  [limit]=\"20\"\n>\n  <ngx-datatable-column\n    *ngIf=\"deletable\"\n    [width]=\"40\"\n    [resizeable]=\"false\"\n    [draggable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      <button\n        mat-icon-button\n        matTooltip=\"Click to delete\"\n        (click)=\"onDelete(row)\"\n      >\n        <mat-icon>delete_forever</mat-icon>\n      </button>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    *ngFor=\"let column of columns\"\n    [name]=\"column.name\"\n    [prop]=\"getPropName(column)\"\n  >\n    <ng-template ngx-datatable-cell-template let-value=\"value\" let-row=\"row\">\n      <span *ngIf=\"!column.editable\" [title]=\"value\">{{ value }}</span>\n      <hi-input-inline\n        *ngIf=\"column.editable\"\n        [value]=\"value\"\n        label=\"new value\"\n        (update)=\"onEdited(row, column, $event)\"\n      >\n      </hi-input-inline>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-footer>\n    <ng-template\n      ngx-datatable-footer-template\n      let-rowCount=\"rowCount\"\n      let-pageSize=\"pageSize\"\n      let-curPage=\"curPage\"\n    >\n      <section\n        class=\"footer\"\n        fxLayout=\"row\"\n        fxLayoutAlign=\"space-between center\"\n      >\n        <button mat-button *ngIf=\"insertable\" (click)=\"onCreate()\">\n          <mat-icon>add</mat-icon>\n          Add new entry\n        </button>\n        <section>{{ rowCount }} total</section>\n        <section>\n          <datatable-pager\n            [pagerLeftArrowIcon]=\"'datatable-icon-left'\"\n            [pagerRightArrowIcon]=\"'datatable-icon-right'\"\n            [pagerPreviousIcon]=\"'datatable-icon-prev'\"\n            [pagerNextIcon]=\"'datatable-icon-skip'\"\n            [page]=\"curPage\"\n            [size]=\"pageSize\"\n            [count]=\"rowCount\"\n            [hidden]=\"!(rowCount / pageSize > 1)\"\n            (change)=\"dataTable.onFooterPage($event)\"\n          >\n          </datatable-pager>\n        </section>\n      </section>\n    </ng-template>\n  </ngx-datatable-footer>\n</ngx-datatable>\n"
        },
        {
            "name": "DetailHeaderComponent",
            "id": "component-DetailHeaderComponent-e20f20ac06350b9592c8531f98be075b515b6db415a36315e38acf02285b4e8bba558d562429cbe90b62ffda84fd0aa816d1f6d591c36ab2f40ef8c0a9a72975",
            "file": "src/app/shared/detail-header/detail-header.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-detail-header",
            "styleUrls": [
                "./detail-header.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./detail-header.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "cluster",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 9,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "controller",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 12,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "instance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 11,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "resource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 10,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "workflow",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 13,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "getTag",
                    "args": [],
                    "optional": false,
                    "returnType": "\"controller\" | \"instance\" | \"resource\" | \"workflow\" | \"cluster\"",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "isSecondary",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 17,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, Input } from '@angular/core';\n\n@Component({\n  selector: 'hi-detail-header',\n  templateUrl: './detail-header.component.html',\n  styleUrls: ['./detail-header.component.scss'],\n})\nexport class DetailHeaderComponent {\n  @Input() cluster;\n  @Input() resource;\n  @Input() instance;\n  @Input() controller;\n  @Input() workflow;\n\n  constructor() {}\n\n  isSecondary() {\n    return this.controller || this.instance || this.resource || this.workflow;\n  }\n\n  getTag() {\n    if (this.controller) {\n      return 'controller';\n    }\n    if (this.instance) {\n      return 'instance';\n    }\n    if (this.resource) {\n      return 'resource';\n    }\n    if (this.workflow) {\n      return 'workflow';\n    }\n    return 'cluster';\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.secondary {\n  color: rgba(0, 0, 0, 0.54);\n}\n\n.tag {\n  padding-left: 10px;\n\n  span {\n    color: #fff;\n    font-size: 12px;\n    line-height: 12px;\n    text-transform: uppercase;\n    font-weight: normal;\n    border-radius: 24px;\n    padding: 6px 8px;\n  }\n\n  .cluster {\n    background-color: mat.get-color-from-palette(\n      mat.define-palette(mat.$indigo-palette)\n    );\n  }\n\n  .controller {\n    background-color: mat.get-color-from-palette(\n      mat.define-palette(mat.$purple-palette)\n    );\n  }\n\n  .resource {\n    background-color: mat.get-color-from-palette(\n      mat.define-palette(mat.$teal-palette)\n    );\n  }\n\n  .instance {\n    background-color: mat.get-color-from-palette(\n      mat.define-palette(mat.$blue-palette)\n    );\n  }\n\n  .workflow {\n    background-color: mat.get-color-from-palette(\n      mat.define-palette(mat.$deep-orange-palette)\n    );\n  }\n}\n",
                    "styleUrl": "./detail-header.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 13
            },
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<h4 fxLayout=\"row\" fxLayoutAlign=\"center center\">\n  <span [ngClass]=\"{ secondary: isSecondary() }\">{{ cluster }}</span>\n  <mat-icon *ngIf=\"isSecondary()\" class=\"secondary\">navigate_next</mat-icon>\n  <span *ngIf=\"controller\">{{ controller }}</span>\n  <span *ngIf=\"instance\">{{ instance }}</span>\n  <span *ngIf=\"resource\">{{ resource }}</span>\n  <span *ngIf=\"workflow\">{{ workflow }}</span>\n  <span class=\"tag\" fxLayout=\"row\" fxLayoutAlign=\"center center\">\n    <span [ngClass]=\"getTag()\">{{ getTag() }}</span>\n    <!-- for testing purpose only\n    <span class=\"cluster\">Cluster</span>\n    <span class=\"resource\">Resource</span>\n    <span class=\"instance\">Instance</span>\n    <span class=\"controller\">Controller</span>\n    <span class=\"workflow\">Workflow</span> -->\n  </span>\n</h4>\n"
        },
        {
            "name": "DisabledLabelComponent",
            "id": "component-DisabledLabelComponent-999171e0a825db19679e3d7cafd1662c67e5438acfb6e7e87cfe73bf3905867f400a2aa9eb7df163e4367019ed9f951c6443a84a36e0689b0c6b3fdb10b982b4",
            "file": "src/app/shared/disabled-label/disabled-label.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-disabled-label",
            "styleUrls": [
                "./disabled-label.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./disabled-label.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "text",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 10,
                    "type": "string",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n  selector: 'hi-disabled-label',\n  templateUrl: './disabled-label.component.html',\n  styleUrls: ['./disabled-label.component.scss'],\n})\nexport class DisabledLabelComponent implements OnInit {\n  @Input()\n  text: string;\n\n  constructor() {}\n\n  ngOnInit() {}\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.status-disabled {\n  margin-left: 10px;\n  padding: 4px 8px;\n  font-size: 12px;\n  line-height: 40px;\n  border-radius: 4px;\n  border: 1px solid\n    mat.get-color-from-palette(mat.define-palette(mat.$red-palette), 900);\n  background-color: mat.get-color-from-palette(\n    mat.define-palette(mat.$red-palette),\n    darker\n  );\n  color: rgb(255, 255, 255);\n}\n",
                    "styleUrl": "./disabled-label.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 10
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<span class=\"status-disabled\">{{ text }}</span>\n"
        },
        {
            "name": "HelixListComponent",
            "id": "component-HelixListComponent-b61ff325f78c2e5e99724708a8fcd9fc0ed70527218999178dc024d0cc49aa7527de019d9551432797bc7c650cc6624e811fc6bf066ee2a33ee4a0452d677dde",
            "file": "src/app/chooser/helix-list/helix-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-helix-list",
            "styleUrls": [
                "./helix-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./helix-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "groups",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "keys",
                    "defaultValue": "_.keys",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 18,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\n\nimport * as _ from 'lodash';\n\nimport { ChooserService } from '../shared/chooser.service';\n\n@Component({\n  selector: 'hi-helix-list',\n  templateUrl: './helix-list.component.html',\n  styleUrls: ['./helix-list.component.scss'],\n})\nexport class HelixListComponent implements OnInit {\n  groups: any;\n  keys = _.keys;\n\n  constructor(protected service: ChooserService) {}\n\n  ngOnInit() {\n    this.service.getAll().subscribe((data) => (this.groups = data));\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".section {\n  padding-bottom: 20px;\n\n  .mat-button {\n    width: 150px;\n    text-align: left;\n  }\n}\n\n.mat-card-title {\n  font-size: 20px;\n}\n",
                    "styleUrl": "./helix-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "service",
                        "type": "ChooserService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 14,
                "jsdoctags": [
                    {
                        "name": "service",
                        "type": "ChooserService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<mat-card *ngFor=\"let group of keys(groups)\">\n  <mat-card-header>\n    <mat-card-title>{{ group | titlecase }}</mat-card-title>\n  </mat-card-header>\n  <mat-card-content>\n    <section *ngFor=\"let section of groups[group]\" class=\"section\">\n      <a\n        *ngFor=\"let helix of keys(section)\"\n        mat-button\n        [routerLink]=\"['/', group + '.' + helix]\"\n      >\n        <mat-icon>group_work</mat-icon>\n        {{ helix }}\n      </a>\n    </section>\n  </mat-card-content>\n</mat-card>\n"
        },
        {
            "name": "HistoryListComponent",
            "id": "component-HistoryListComponent-01bcd83ee2e247be53ee336ee0927e07f65e82f7e867400d08f33c1c3e884a7cd1e6501a93b0149f5b577ca06a17817d98612d64909b7c96e11160ccbff5444a",
            "file": "src/app/history/history-list/history-list.component.ts",
            "encapsulation": [
                "ViewEncapsulation.None"
            ],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "HistoryService"
                }
            ],
            "selector": "hi-history-list",
            "styleUrls": [
                "./history-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./history-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "bindFunc",
                    "defaultValue": "_.bind",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "isController",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "rows",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "History[]",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "sorts",
                    "defaultValue": "[{ prop: 'date', dir: 'desc' }]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 24
                }
            ],
            "methodsClass": [
                {
                    "name": "getControllerCellClass",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 49,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getSessionCellClass",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport * as _ from 'lodash';\n\nimport { Settings } from '../../core/settings';\nimport { HistoryService } from '../shared/history.service';\nimport { History } from '../shared/history.model';\n\n@Component({\n  selector: 'hi-history-list',\n  templateUrl: './history-list.component.html',\n  styleUrls: ['./history-list.component.scss'],\n  providers: [HistoryService],\n  // FIXME: have to turn off shadow dom or .current-controller won't work\n  encapsulation: ViewEncapsulation.None,\n})\nexport class HistoryListComponent implements OnInit {\n  rows: History[];\n  rowHeight = Settings.tableRowHeight;\n  headerHeight = Settings.tableHeaderHeight;\n  isController: boolean;\n  isLoading = true;\n  sorts = [{ prop: 'date', dir: 'desc' }];\n\n  // to let ngx-datatable helper funcs have 'this' context\n  bindFunc = _.bind;\n\n  constructor(private route: ActivatedRoute, private service: HistoryService) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      const clusterName = this.route.parent.snapshot.params['cluster_name'];\n      const instanceName = this.route.parent.snapshot.params['instance_name'];\n      const observable = instanceName\n        ? this.service.getInstanceHistory(clusterName, instanceName)\n        : this.service.getControllerHistory(clusterName);\n\n      this.isController = !instanceName;\n\n      observable.subscribe(\n        (histories) => (this.rows = histories),\n        (error) => {},\n        () => (this.isLoading = false)\n      );\n    }\n  }\n\n  getControllerCellClass({ value }): any {\n    return {\n      current: value == this.rows[this.rows.length - 1].controller,\n    };\n  }\n\n  getSessionCellClass({ value }): any {\n    return {\n      current: value == this.rows[this.rows.length - 1].session,\n    };\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "// Import theming functions\n@use '@angular/material' as mat;\n// Import custom theme\n@import 'src/theme.scss';\n\nhi-history-list {\n  .current {\n    color: mat.get-color-from-palette($hi-primary);\n  }\n\n  .mat-icon {\n    @include md-icon-size(20px);\n  }\n}\n",
                    "styleUrl": "./history-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "HistoryService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 27,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "HistoryService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <ngx-datatable\n    #historyTable\n    class=\"material\"\n    [loadingIndicator]=\"isLoading\"\n    [headerHeight]=\"headerHeight\"\n    [rowHeight]=\"rowHeight\"\n    columnMode=\"force\"\n    [rows]=\"rows\"\n    [sorts]=\"sorts\"\n  >\n    <ngx-datatable-column\n      name=\"Date (GMT)\"\n      prop=\"date\"\n      [width]=\"240\"\n      [canAutoResize]=\"false\"\n    ></ngx-datatable-column>\n    <ngx-datatable-column\n      name=\"Epoch Time\"\n      prop=\"time\"\n      [width]=\"200\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-value=\"value\" ngx-datatable-cell-template>\n        <span matTooltip=\"Local time: {{ value | date: 'medium' }}\">\n          {{ value }}\n        </span>\n        <button\n          mat-icon-button\n          matTooltip=\"Copy to clipboard\"\n          ngxClipboard\n          [cbContent]=\"value\"\n        >\n          <mat-icon>content_copy</mat-icon>\n        </button>\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column\n      name=\"Controller\"\n      *ngIf=\"isController\"\n      [cellClass]=\"bindFunc(getControllerCellClass, this)\"\n    >\n    </ngx-datatable-column>\n    <ngx-datatable-column\n      name=\"Session\"\n      *ngIf=\"!isController\"\n      [cellClass]=\"bindFunc(getSessionCellClass, this)\"\n    >\n    </ngx-datatable-column>\n  </ngx-datatable>\n</section>\n"
        },
        {
            "name": "InputDialogComponent",
            "id": "component-InputDialogComponent-697b5d9943ebc0dfea46d32175dc4d62e7d7faa9614b551e1b29e4186a0c8ffa0e809005433f426396a3c5c7b502bd1ff942f230e32c2fa484d450a3c4b75539",
            "file": "src/app/shared/dialog/input-dialog/input-dialog.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-input-dialog",
            "styleUrls": [
                "./input-dialog.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./input-dialog.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "title",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "values",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any[]",
                    "optional": false,
                    "description": "",
                    "line": 13
                }
            ],
            "methodsClass": [
                {
                    "name": "getKeys",
                    "args": [
                        {
                            "name": "obj",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 39,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "obj",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onCancel",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 35,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onSubmit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n  selector: 'hi-input-dialog',\n  templateUrl: './input-dialog.component.html',\n  styleUrls: ['./input-dialog.component.scss'],\n})\nexport class InputDialogComponent implements OnInit {\n  title: string;\n  message: string;\n  values: any[];\n\n  constructor(\n    @Inject(MAT_DIALOG_DATA) protected data: any,\n    protected dialogRef: MatDialogRef<InputDialogComponent>\n  ) {}\n\n  ngOnInit() {\n    this.title = (this.data && this.data.title) || 'Input';\n    this.message = (this.data && this.data.message) || 'Please enter:';\n    this.values = (this.data && this.data.values) || {\n      input: {\n        label: 'Anything you want',\n        type: 'input',\n      },\n    };\n  }\n\n  onSubmit() {\n    this.dialogRef.close(this.values);\n  }\n\n  onCancel() {\n    this.dialogRef.close();\n  }\n\n  getKeys(obj: any) {\n    return Object.keys(obj);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./input-dialog.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "dialogRef",
                        "type": "MatDialogRef<InputDialogComponent>",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 13,
                "jsdoctags": [
                    {
                        "name": "data",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "dialogRef",
                        "type": "MatDialogRef<InputDialogComponent>",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<form (ngSubmit)=\"onSubmit()\" #inputForm=\"ngForm\">\n  <h1 mat-dialog-title>{{ title }}</h1>\n  <div mat-dialog-content>\n    <section>\n      {{ message }}\n    </section>\n    <section\n      *ngFor=\"let name of getKeys(values)\"\n      [ngSwitch]=\"values[name].type\"\n    >\n      <section *ngSwitchCase=\"'boolean'\">\n        {{ values[name].label }}:\n        <mat-slide-toggle [name]=\"name\" [(ngModel)]=\"values[name].value\">\n          {{ values[name].value ? 'True' : 'False' }}\n        </mat-slide-toggle>\n      </section>\n      <mat-form-field *ngSwitchCase=\"'password'\">\n        <input\n          matInput\n          type=\"password\"\n          [name]=\"name\"\n          [(ngModel)]=\"values[name].value\"\n          [placeholder]=\"values[name].label\"\n          required\n        />\n      </mat-form-field>\n      <mat-form-field *ngSwitchDefault>\n        <input\n          matInput\n          [name]=\"name\"\n          [(ngModel)]=\"values[name].value\"\n          [placeholder]=\"values[name].label\"\n          required\n        />\n      </mat-form-field>\n    </section>\n  </div>\n  <div mat-dialog-actions>\n    <button\n      mat-button\n      type=\"submit\"\n      color=\"primary\"\n      [disabled]=\"!inputForm.form.valid\"\n    >\n      OK\n    </button>\n    <button mat-button type=\"button\" (click)=\"onCancel()\">Cancel</button>\n  </div>\n</form>\n"
        },
        {
            "name": "InputInlineComponent",
            "id": "component-InputInlineComponent-0d5104f2eef29edab9c7de978d6b3bc3615b776ccf22aa1a7ae75d12e7d589dd0848a0e6c739562d0eeba3144ebb06dfb0b35ff51c7f83322c41241cdeaa5df3",
            "file": "src/app/shared/input-inline/input-inline.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-input-inline",
            "styleUrls": [
                "./input-inline.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./input-inline.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "blur",
                    "defaultValue": "(_) => {}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 54,
                    "type": "Function",
                    "decorators": []
                },
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 32,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "editLabel",
                    "defaultValue": "'Click to edit'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 31,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "errorLabel",
                    "defaultValue": "'Invalid input value'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 30,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "focus",
                    "defaultValue": "(_) => {}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 53,
                    "type": "Function",
                    "decorators": []
                },
                {
                    "name": "label",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 22,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "max",
                    "defaultValue": "99999999",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 24,
                    "type": "number",
                    "decorators": []
                },
                {
                    "name": "maxlength",
                    "defaultValue": "2555",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 26,
                    "type": "number",
                    "decorators": []
                },
                {
                    "name": "min",
                    "defaultValue": "-9999",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 23,
                    "type": "number",
                    "decorators": []
                },
                {
                    "name": "minlength",
                    "defaultValue": "0",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 25,
                    "type": "number",
                    "decorators": []
                },
                {
                    "name": "pattern",
                    "defaultValue": "null",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 29,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "required",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 28,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "type",
                    "defaultValue": "'text'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 27,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 44,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [
                {
                    "name": "update",
                    "defaultValue": "new EventEmitter<string>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 20,
                    "type": "EventEmitter<string>"
                }
            ],
            "propertiesClass": [
                {
                    "name": "_value",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 36,
                    "modifierKind": [
                        121
                    ]
                },
                {
                    "name": "editing",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "inputControl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ElementRef",
                    "optional": false,
                    "description": "",
                    "line": 18,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'inputControl', {static: true}"
                        }
                    ]
                },
                {
                    "name": "lastValue",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 38,
                    "modifierKind": [
                        121
                    ]
                },
                {
                    "name": "onChange",
                    "defaultValue": "Function.prototype",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "modifierKind": [
                        123
                    ]
                },
                {
                    "name": "onTouched",
                    "defaultValue": "Function.prototype",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "modifierKind": [
                        123
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "cancel",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 105,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "edit",
                    "args": [
                        {
                            "name": "value",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 83,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "value",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "hasError",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 69,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 67,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onBlur",
                    "args": [
                        {
                            "name": "$event",
                            "type": "Event",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 95,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "$event",
                            "type": "Event",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnChange",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "_",
                                    "type": "any",
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "_",
                                    "type": "any",
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "registerOnTouched",
                    "args": [
                        {
                            "name": "fn",
                            "type": "function",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": []
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 58,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        123
                    ],
                    "jsdoctags": [
                        {
                            "name": "fn",
                            "type": "function",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "writeValue",
                    "args": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 61,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "value",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  ViewChild,\n  ElementRef,\n  EventEmitter,\n} from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\n@Component({\n  selector: 'hi-input-inline',\n  templateUrl: './input-inline.component.html',\n  styleUrls: ['./input-inline.component.scss'],\n})\nexport class InputInlineComponent implements ControlValueAccessor, OnInit {\n  @ViewChild('inputControl', { static: true }) inputControl: ElementRef;\n\n  @Output('update') change: EventEmitter<string> = new EventEmitter<string>();\n\n  @Input() label = '';\n  @Input() min = -9999;\n  @Input() max = 99999999;\n  @Input() minlength = 0;\n  @Input() maxlength = 2555;\n  @Input() type = 'text';\n  @Input() required = false;\n  @Input() pattern: string = null;\n  @Input() errorLabel = 'Invalid input value';\n  @Input() editLabel = 'Click to edit';\n  @Input() disabled = false;\n\n  editing = false;\n\n  private _value = '';\n\n  private lastValue = '';\n\n  // Required forControlValueAccessor interface\n  public onChange: any = Function.prototype;\n  public onTouched: any = Function.prototype;\n  @Input()\n  get value(): any {\n    return this._value;\n  }\n  set value(v: any) {\n    if (v !== this._value) {\n      this._value = v;\n      this.onChange(v);\n    }\n  }\n  @Input() focus: Function = (_) => {};\n  @Input() blur: Function = (_) => {};\n  public registerOnChange(fn: (_: any) => {}): void {\n    this.onChange = fn;\n  }\n  public registerOnTouched(fn: () => {}): void {\n    this.onTouched = fn;\n  }\n  writeValue(value: any) {\n    this._value = value;\n  }\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  hasError() {\n    const exp = new RegExp(this.pattern);\n\n    if (!this.value) {\n      return this.required;\n    }\n\n    if (this.pattern && !exp.test(this.value)) {\n      return true;\n    }\n\n    return false;\n  }\n\n  edit(value) {\n    if (this.disabled) {\n      return;\n    }\n\n    this.lastValue = value;\n    this.editing = true;\n    setTimeout((_) => {\n      this.inputControl?.nativeElement.focus();\n    });\n  }\n\n  onBlur($event: Event) {\n    if (this.hasError()) {\n      return false;\n    }\n\n    // this.blur();\n    this.editing = false;\n    this.change.emit(this.value);\n  }\n\n  cancel() {\n    this._value = this.lastValue;\n    this.editing = false;\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".inline-edit {\n  text-decoration: none;\n  border-bottom: dashed 1px #009090;\n  cursor: pointer;\n  line-height: 2;\n  margin: 0;\n}\n\n.error {\n  color: #a94442;\n}\n\n.empty-value {\n  color: gray;\n  font-style: italic;\n}\n\n.full-width {\n  width: 100%;\n}\n",
                    "styleUrl": "./input-inline.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 63
            },
            "implements": [
                "ControlValueAccessor",
                "OnInit"
            ],
            "accessors": {
                "value": {
                    "name": "value",
                    "setSignature": {
                        "name": "value",
                        "type": "void",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "args": [
                            {
                                "name": "v",
                                "type": "any",
                                "deprecated": false,
                                "deprecationMessage": ""
                            }
                        ],
                        "returnType": "void",
                        "line": 47,
                        "jsdoctags": [
                            {
                                "name": "v",
                                "type": "any",
                                "deprecated": false,
                                "deprecationMessage": "",
                                "tagName": {
                                    "text": "param"
                                }
                            }
                        ]
                    },
                    "getSignature": {
                        "name": "value",
                        "type": "any",
                        "returnType": "any",
                        "line": 44
                    }
                }
            },
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <mat-form-field\n    *ngIf=\"editing\"\n    class=\"full-width {{ hasError() ? 'error' : '' }}\"\n  >\n    <input\n      matInput\n      #inputControl\n      [min]=\"min\"\n      [max]=\"max\"\n      [minlength]=\"minlength\"\n      [maxlength]=\"maxlength\"\n      (focus)=\"focus($event)\"\n      (blur)=\"onBlur($event)\"\n      (keyup.enter)=\"onBlur($event)\"\n      (keyup.escape)=\"cancel()\"\n      [required]=\"required\"\n      [name]=\"value\"\n      [(ngModel)]=\"value\"\n      [type]=\"type\"\n      [placeholder]=\"label\"\n    />\n    <mat-hint *ngIf=\"hasError()\" align=\"start\">{{ errorLabel }}</mat-hint>\n    <mat-hint align=\"end\">press ESC to cancel</mat-hint>\n  </mat-form-field>\n  <section *ngIf=\"!editing\">\n    <div\n      class=\"inline-edit {{ hasError() ? 'error' : '' }}\"\n      [matTooltip]=\"editLabel\"\n      (click)=\"edit(value)\"\n      (focus)=\"edit(value)\"\n      tabindex=\"0\"\n    >\n      <span *ngIf=\"value.length\">{{ value }}</span>\n      <span *ngIf=\"!value.length\" class=\"empty-value\">( Empty )</span>\n    </div>\n  </section>\n</section>\n"
        },
        {
            "name": "InstanceDetailComponent",
            "id": "component-InstanceDetailComponent-b55a7689c26a2aac4ab7ea9cdcacbf15fd4540921055407c528f90d2ec255779b62656dcfbab878b749f8780bb3996f25e282609c9fc9fd96a9f4260068d8681",
            "file": "src/app/instance/instance-detail/instance-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "InstanceService"
                }
            ],
            "selector": "hi-instance-detail",
            "styleUrls": [
                "./instance-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./instance-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "instance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Instance",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "instanceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "tabLinks",
                    "defaultValue": "[\n    { label: 'Resources', link: 'resources' },\n    { label: 'Configuration', link: 'configs' },\n    { label: 'History', link: 'history' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 15,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "disableInstance",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "enableInstance",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "loadInstance",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 76,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 34,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "removeInstance",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Instance } from '../shared/instance.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { InstanceService } from '../shared/instance.service';\n\n@Component({\n  selector: 'hi-instance-detail',\n  templateUrl: './instance-detail.component.html',\n  styleUrls: ['./instance-detail.component.scss'],\n  providers: [InstanceService],\n})\nexport class InstanceDetailComponent implements OnInit {\n  readonly tabLinks = [\n    { label: 'Resources', link: 'resources' },\n    { label: 'Configuration', link: 'configs' },\n    { label: 'History', link: 'history' },\n  ];\n\n  clusterName: string;\n  instanceName: string;\n  instance: Instance;\n  isLoading = true;\n  can = false;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected router: Router,\n    protected service: InstanceService,\n    protected helperService: HelperService\n  ) {}\n\n  ngOnInit() {\n    this.service.can().subscribe((data) => (this.can = data));\n    this.clusterName = this.route.snapshot.params.cluster_name;\n    this.instanceName = this.route.snapshot.params.instance_name;\n    this.loadInstance();\n  }\n\n  removeInstance() {\n    this.helperService\n      .showConfirmation('Are you sure you want to remove this Instance?')\n      .then((result) => {\n        if (result) {\n          this.service.remove(this.clusterName, this.instance.name).subscribe(\n            /* happy path */ () => {\n              this.helperService.showSnackBar(\n                `Instance: ${this.instance.name} removed!`\n              );\n              this.router.navigate(['..'], { relativeTo: this.route });\n            },\n            /* error path */ (error) => this.helperService.showError(error),\n            /* onComplete */ () => (this.isLoading = false)\n          );\n        }\n      });\n  }\n\n  enableInstance() {\n    this.service.enable(this.clusterName, this.instance.name).subscribe(\n      /* happy path */ () => this.loadInstance(),\n      /* error path */ (error) => this.helperService.showError(error),\n      /* onComplete */ () => (this.isLoading = false)\n    );\n  }\n\n  disableInstance() {\n    this.service.disable(this.clusterName, this.instance.name).subscribe(\n      /* happy path */ () => this.loadInstance(),\n      /* error path */ (error) => this.helperService.showError(error),\n      /* onComplete */ () => (this.isLoading = false)\n    );\n  }\n\n  protected loadInstance() {\n    this.isLoading = true;\n    this.service.get(this.clusterName, this.instanceName).subscribe(\n      /* happy path */ (instance) => (this.instance = instance),\n      /* error path */ (error) => this.helperService.showError(error),\n      /* onComplete */ () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".information {\n  font-size: 14px;\n\n  .mat-spinner {\n    margin: 0 20px;\n  }\n}\n",
                    "styleUrl": "./instance-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helperService",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 25,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helperService",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <mat-toolbar class=\"mat-elevation-z1\">\n    <mat-toolbar-row>\n      <hi-detail-header\n        [cluster]=\"clusterName\"\n        [instance]=\"instanceName\"\n      ></hi-detail-header>\n      <hi-disabled-label\n        *ngIf=\"!isLoading && !instance.liveInstance\"\n        text=\"OFFLINE\"\n      ></hi-disabled-label>\n      <hi-disabled-label\n        *ngIf=\"!isLoading && !instance.enabled\"\n        text=\"DISABLED\"\n      ></hi-disabled-label>\n    </mat-toolbar-row>\n    <mat-toolbar-row class=\"information\">\n      <a mat-mini-fab routerLink=\"../\"><mat-icon>arrow_back</mat-icon></a>\n      <mat-spinner *ngIf=\"isLoading\" diameter=\"30\"></mat-spinner>\n      <hi-key-value-pairs *ngIf=\"!isLoading\" [obj]=\"instance\">\n        <hi-key-value-pair\n          name=\"Instance\"\n          prop=\"liveInstance\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Session ID\"\n          prop=\"sessionId\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Helix Version\"\n          prop=\"helixVersion\"\n        ></hi-key-value-pair>\n      </hi-key-value-pairs>\n      <span fxFlex=\"1 1 auto\"></span>\n      <button mat-mini-fab *ngIf=\"can\" [matMenuTriggerFor]=\"menu\">\n        <mat-icon>menu</mat-icon>\n      </button>\n      <mat-menu #menu=\"matMenu\">\n        <button\n          mat-menu-item\n          *ngIf=\"instance && instance.enabled\"\n          (click)=\"disableInstance()\"\n        >\n          <mat-icon>not_interested</mat-icon>\n          <span>Disable this Instance</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"instance && !instance.enabled\"\n          (click)=\"enableInstance()\"\n        >\n          <mat-icon>play_circle_outline</mat-icon>\n          <span>Enable this Instance</span>\n        </button>\n        <button mat-menu-item (click)=\"removeInstance()\">\n          <mat-icon>delete</mat-icon>\n          <span>REMOVE this Instance</span>\n        </button>\n      </mat-menu>\n    </mat-toolbar-row>\n  </mat-toolbar>\n  <nav mat-tab-nav-bar>\n    <a\n      mat-tab-link\n      *ngFor=\"let tabLink of tabLinks\"\n      [routerLink]=\"tabLink.link\"\n      routerLinkActive\n      #rla=\"routerLinkActive\"\n      [active]=\"rla.isActive\"\n    >\n      {{ tabLink.label }}\n    </a>\n  </nav>\n  <router-outlet></router-outlet>\n</section>\n"
        },
        {
            "name": "InstanceListComponent",
            "id": "component-InstanceListComponent-35f72bfbe30673df7f9938981527ed7e8e3e6d3a9ed2f942c965f937fd642dce81c8c0a9a646c411bec1523ed889f5523ef5f04ae0cf39dc01a584c63d60cf7f",
            "file": "src/app/instance/instance-list/instance-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-instance-list",
            "styleUrls": [
                "./instance-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./instance-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "instances",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any[]",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "sorts",
                    "defaultValue": "[\n    { prop: 'liveInstance', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 19
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 31,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onSelect",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 42,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { InstanceService } from '../shared/instance.service';\nimport { HelperService } from '../../shared/helper.service';\n\n@Component({\n  selector: 'hi-instance-list',\n  templateUrl: './instance-list.component.html',\n  styleUrls: ['./instance-list.component.scss'],\n})\nexport class InstanceListComponent implements OnInit {\n  isLoading = true;\n  clusterName: string;\n  instances: any[];\n  rowHeight = Settings.tableRowHeight;\n  headerHeight = Settings.tableHeaderHeight;\n  sorts = [\n    { prop: 'liveInstance', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ];\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected router: Router,\n    protected service: InstanceService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      this.clusterName = this.route.parent.snapshot.params['name'];\n      this.service.getAll(this.clusterName).subscribe(\n        (data) => (this.instances = data),\n        (error) => this.helper.showError(error),\n        () => (this.isLoading = false)\n      );\n    }\n  }\n\n  onSelect({ selected }) {\n    const row = selected[0];\n    this.router.navigate([row.name], { relativeTo: this.route });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.info {\n  padding: 24px;\n}\n\n.status-healthy {\n  color: mat.get-color-from-palette(mat.define-palette(mat.$blue-palette));\n}\n\n.status-not-healthy {\n  color: mat.get-color-from-palette(\n    mat.define-palette(mat.$grey-palette, 900, 900, 900)\n  );\n}\n",
                    "styleUrl": "./instance-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 22,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "InstanceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <ngx-datatable\n    #instancesTable\n    class=\"material\"\n    [headerHeight]=\"headerHeight\"\n    [rowHeight]=\"rowHeight\"\n    columnMode=\"force\"\n    [footerHeight]=\"rowHeight\"\n    [rows]=\"instances\"\n    [loadingIndicator]=\"isLoading\"\n    selectionType=\"single\"\n    [sorts]=\"sorts\"\n    (select)=\"onSelect($event)\"\n  >\n    <ngx-datatable-column\n      name=\"Status\"\n      prop=\"healthy\"\n      [width]=\"85\"\n      [resizeable]=\"false\"\n      [draggable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-row=\"row\" ngx-datatable-cell-template>\n        <mat-icon *ngIf=\"row.healthy\" class=\"status-healthy\"\n          >check_circle</mat-icon\n        >\n        <mat-icon\n          *ngIf=\"!row.healthy && row.enabled\"\n          class=\"status-not-healthy\"\n          matTooltip=\"The instance is offline.\"\n          >cancel</mat-icon\n        >\n        <mat-icon\n          *ngIf=\"!row.healthy && row.liveInstance\"\n          class=\"status-not-healthy\"\n          matTooltip=\"The instance is disabled.\"\n          >cancel</mat-icon\n        >\n        <mat-icon\n          *ngIf=\"!row.healthy && !row.enabled && !row.liveInstance\"\n          class=\"status-not-healthy\"\n          matTooltip=\"The instance is offline and disabled.\"\n          >cancel</mat-icon\n        >\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column name=\"Name\">\n      <ng-template let-row=\"row\" ngx-datatable-cell-template>\n        <section fxLayout=\"row\" fxLayoutAlign=\"start center\">\n          {{ row.name }}\n          <hi-disabled-label\n            *ngIf=\"!row.enabled\"\n            text=\"DISABLED\"\n          ></hi-disabled-label>\n        </section>\n      </ng-template>\n    </ngx-datatable-column>\n  </ngx-datatable>\n</section>\n"
        },
        {
            "name": "JobDetailComponent",
            "id": "component-JobDetailComponent-f867f82b47b2796be3d33b8faeac4572678328079975e1ae94ca12962c56d1d0ba67df643ef78d610cf5aaac22d196fc20f58232e6ea0e8dda4f67eea43feafb",
            "file": "src/app/workflow/job-detail/job-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-job-detail",
            "styleUrls": [
                "./job-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./job-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "job",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 14,
                    "type": "Job",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\n\nimport { Job } from '../shared/workflow.model';\nimport { JobService } from '../shared/job.service';\nimport { HelperService } from '../../shared/helper.service';\n\n@Component({\n  selector: 'hi-job-detail',\n  templateUrl: './job-detail.component.html',\n  styleUrls: ['./job-detail.component.scss'],\n})\nexport class JobDetailComponent implements OnInit {\n  @Input()\n  job: Job;\n\n  isLoading = true;\n\n  constructor(protected service: JobService, protected helper: HelperService) {}\n\n  ngOnInit() {\n    this.service.get(this.job).subscribe(\n      (data) => (this.isLoading = false),\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./job-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "service",
                        "type": "JobService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 16,
                "jsdoctags": [
                    {
                        "name": "service",
                        "type": "JobService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<mat-tab-group>\n  <mat-tab label=\"Job Config\">\n    <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n    <ngx-json-viewer [json]=\"job?.config\"></ngx-json-viewer>\n  </mat-tab>\n  <mat-tab label=\"Job Context\">\n    <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n    <ngx-json-viewer [json]=\"job?.context\"></ngx-json-viewer>\n  </mat-tab>\n</mat-tab-group>\n"
        },
        {
            "name": "JobListComponent",
            "id": "component-JobListComponent-a5573f0e5ef4cbb87ba2de5c7ab184e255c1d99386e23b0945f48793e19665ba581e805aee7f412fba3550bb1a67e89f6e4b570d7ec72a70c646f2a8df0fdf9b",
            "file": "src/app/workflow/job-list/job-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-job-list",
            "styleUrls": [
                "./job-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./job-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "jobs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 16,
                    "type": "Job[]",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "messages",
                    "defaultValue": "{\n    emptyMessage: 'The list is empty.',\n    totalMessage: 'total',\n    selectedMessage: 'selected',\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "sorts",
                    "defaultValue": "[\n    { prop: 'startTime', dir: 'desc' },\n    { prop: 'name', dir: 'asc' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "table",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DatatableComponent",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'jobsTable', {static: false}"
                        }
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 35,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onSelect",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "parseTime",
                    "args": [
                        {
                            "name": "rawTime",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 37,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "rawTime",
                            "type": "string",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input, ViewChild } from '@angular/core';\n\nimport moment from 'moment';\n\nimport { Settings } from '../../core/settings';\nimport { Job } from '../shared/workflow.model';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\n@Component({\n  selector: 'hi-job-list',\n  templateUrl: './job-list.component.html',\n  styleUrls: ['./job-list.component.scss'],\n})\nexport class JobListComponent implements OnInit {\n  @Input()\n  jobs: Job[];\n\n  @ViewChild('jobsTable', { static: false })\n  table: DatatableComponent;\n\n  rowHeight = Settings.tableRowHeight;\n  headerHeight = Settings.tableHeaderHeight;\n  sorts = [\n    { prop: 'startTime', dir: 'desc' },\n    { prop: 'name', dir: 'asc' },\n  ];\n  messages = {\n    emptyMessage: 'The list is empty.',\n    totalMessage: 'total',\n    selectedMessage: 'selected',\n  };\n\n  constructor() {}\n\n  ngOnInit() {}\n\n  parseTime(rawTime: string): string {\n    return moment(parseInt(rawTime)).fromNow();\n  }\n\n  onSelect({ selected }) {\n    const row = selected[0];\n\n    this.table.rowDetail.toggleExpandRow(row);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./job-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 31
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<ngx-datatable\n  #jobsTable\n  class=\"material\"\n  [headerHeight]=\"headerHeight\"\n  [rowHeight]=\"rowHeight\"\n  columnMode=\"force\"\n  [footerHeight]=\"rowHeight\"\n  [rows]=\"jobs\"\n  selectionType=\"single\"\n  [sorts]=\"sorts\"\n  (select)=\"onSelect($event)\"\n  [messages]=\"messages\"\n  fxFill\n>\n  <ngx-datatable-column\n    [width]=\"50\"\n    [resizeable]=\"false\"\n    [sortable]=\"false\"\n    [draggable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-expanded=\"expanded\" ngx-datatable-cell-template>\n      <mat-icon>{{ expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    name=\"Start Time\"\n    [width]=\"200\"\n    [resizeable]=\"false\"\n    [draggable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-value=\"value\" ngx-datatable-cell-template>\n      <span *ngIf=\"value\" [matTooltip]=\"value | date: 'medium'\">\n        {{ parseTime(value) }}\n      </span>\n      <span *ngIf=\"!value\">-</span>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column name=\"Job Name\" prop=\"name\">\n    <ng-template let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\n      <span [matTooltip]=\"row.rawName\"> ...{{ value }} </span>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    name=\"State\"\n    [width]=\"120\"\n    [resizeable]=\"false\"\n    [draggable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-value=\"value\" ngx-datatable-cell-template>\n      <span *ngIf=\"value\" class=\"state-default state-{{ value }}\">\n        {{ value }}\n      </span>\n      <span *ngIf=\"!value\" class=\"state-PENDING\">PENDING</span>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-row-detail rowHeight=\"auto\">\n    <ng-template let-row=\"row\" ngx-datatable-row-detail-template>\n      <hi-job-detail [job]=\"row\"></hi-job-detail>\n    </ng-template>\n  </ngx-datatable-row-detail>\n</ngx-datatable>\n"
        },
        {
            "name": "JsonViewerComponent",
            "id": "component-JsonViewerComponent-7bb6618bfc8e8abc0125cd1e32cd727e70f4433192471674d72a4285c6edf4fee443c6e06976b4f750c5ca61d1cb777d9f706191f8f92465cf91596e9870f55b",
            "file": "src/app/shared/json-viewer/json-viewer.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-json-viewer",
            "styleUrls": [
                "./json-viewer.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./json-viewer.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "obj",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 13,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 17,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport * as _ from 'lodash';\n\n@Component({\n  selector: 'hi-json-viewer',\n  templateUrl: './json-viewer.component.html',\n  styleUrls: ['./json-viewer.component.scss'],\n})\nexport class JsonViewerComponent implements OnInit {\n  // MODE 1: use directly in components\n  @Input() obj: any;\n\n  constructor(protected route: ActivatedRoute) {}\n\n  ngOnInit() {\n    // MODE 2: use in router\n    if (this.route.snapshot.data.path) {\n      const path = this.route.snapshot.data.path;\n\n      // try parent data first\n      this.obj = _.get(this.route.parent, `snapshot.data.${path}`);\n\n      if (this.obj == null) {\n        // try self data then\n        this.obj = _.get(this.route.snapshot.data, path);\n      }\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./json-viewer.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 13,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<pre>{{ obj | json }}</pre>\n"
        },
        {
            "name": "KeyValuePairsComponent",
            "id": "component-KeyValuePairsComponent-c86780162af35a2b28f0057e0fa60aebe7d591a8fb7d988e956f1678d95bb90839c20db5a06d32fa01ee0f1b9189a86ec2ab987947c486426254fd7cd9aab6bd",
            "file": "src/app/shared/key-value-pairs/key-value-pairs.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-key-value-pairs",
            "styleUrls": [
                "./key-value-pairs.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./key-value-pairs.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "obj",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 30,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "getProp",
                    "defaultValue": "_.get",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "pairs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "QueryList<KeyValuePairDirective>",
                    "optional": false,
                    "description": "",
                    "line": 28,
                    "decorators": [
                        {
                            "name": "ContentChildren",
                            "stringifiedArguments": "KeyValuePairDirective"
                        }
                    ]
                }
            ],
            "methodsClass": [],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import {\n  Component,\n  ContentChildren,\n  Directive,\n  Input,\n  QueryList,\n} from '@angular/core';\n\nimport * as _ from 'lodash';\n\n// good doc: https://angular.io/docs/ts/latest/api/core/index/ContentChildren-decorator.html\n\n@Directive({ selector: 'hi-key-value-pair' })\nexport class KeyValuePairDirective {\n  @Input() name: string;\n  @Input() prop: string;\n}\n\n@Component({\n  selector: 'hi-key-value-pairs',\n  templateUrl: './key-value-pairs.component.html',\n  styleUrls: ['./key-value-pairs.component.scss'],\n})\nexport class KeyValuePairsComponent {\n  getProp = _.get;\n\n  @ContentChildren(KeyValuePairDirective)\n  pairs: QueryList<KeyValuePairDirective>;\n\n  @Input() obj: any;\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".groups {\n  font-size: 14px;\n  line-height: 14px;\n\n  .column {\n    padding-left: 40px;\n  }\n\n  .name {\n    font-size: 12px;\n    line-height: 12px;\n    color: rgba(0, 0, 0, 0.54);\n  }\n}\n",
                    "styleUrl": "./key-value-pairs.component.scss"
                }
            ],
            "stylesData": "",
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section class=\"groups\" fxLayout=\"row\">\n  <section class=\"column\" *ngFor=\"let pair of pairs\">\n    <div class=\"name\">{{ pair.name }}</div>\n    <div class=\"value\" *ngIf=\"obj != null && getProp(obj, pair.prop) != null\">\n      {{ getProp(obj, pair.prop) }}\n    </div>\n    <div class=\"value\" *ngIf=\"obj == null || getProp(obj, pair.prop) == null\">\n      N/A\n    </div>\n  </section>\n</section>\n"
        },
        {
            "name": "NodeViewerComponent",
            "id": "component-NodeViewerComponent-c30983867249a031151ea924d5136b0949a6f2f247d308780a18b62f1f93b61371fb7ac285d7bfd2776de183a6e015aa5bea0e6bf7f93f0286cfec140a1aeb81",
            "file": "src/app/shared/node-viewer/node-viewer.component.ts",
            "encapsulation": [
                "ViewEncapsulation.None"
            ],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "ResourceService"
                }
            ],
            "selector": "hi-node-viewer",
            "styleUrls": [
                "./node-viewer.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./node-viewer.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "loadingIndicator",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 73,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "obj",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 111,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "unlockable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 70,
                    "type": "boolean",
                    "decorators": []
                }
            ],
            "outputsClass": [
                {
                    "name": "create",
                    "defaultValue": "new EventEmitter<Node>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 64,
                    "type": "EventEmitter<Node>"
                },
                {
                    "name": "delete",
                    "defaultValue": "new EventEmitter<Node>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 67,
                    "type": "EventEmitter<Node>"
                },
                {
                    "name": "update",
                    "defaultValue": "new EventEmitter<Node>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 61,
                    "type": "EventEmitter<Node>"
                }
            ],
            "propertiesClass": [
                {
                    "name": "_editable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 75,
                    "modifierKind": [
                        121
                    ]
                },
                {
                    "name": "_listConfigs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any[]",
                    "optional": false,
                    "description": "",
                    "line": 105
                },
                {
                    "name": "_mapConfigs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any[]",
                    "optional": false,
                    "description": "",
                    "line": 107
                },
                {
                    "name": "_obj",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 77,
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "_simpleConfigs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any[]",
                    "optional": false,
                    "description": "",
                    "line": 103
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 54
                },
                {
                    "name": "columns",
                    "defaultValue": "{\n    simpleConfigs: [\n      {\n        name: 'Name',\n        editable: false,\n      },\n      {\n        name: 'Value',\n        editable: false,\n      },\n    ],\n    listConfigs: [\n      {\n        name: 'Value',\n        editable: false,\n      },\n    ],\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 84
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 80
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 53
                },
                {
                    "name": "keyword",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 83
                },
                {
                    "name": "listTable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 57,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'listTable', {static: true}"
                        }
                    ]
                },
                {
                    "name": "mapTable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 58,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'mapTable', {static: true}"
                        }
                    ]
                },
                {
                    "name": "node",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Node",
                    "optional": false,
                    "description": "",
                    "line": 78,
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "resourceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 55
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 81
                },
                {
                    "name": "simpleTable",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 56,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'simpleTable', {static: true}"
                        }
                    ]
                },
                {
                    "name": "sorts",
                    "defaultValue": "[{ prop: 'name', dir: 'asc' }]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 82
                }
            ],
            "methodsClass": [
                {
                    "name": "beforeDelete",
                    "args": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 269,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "created",
                    "args": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 299,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "edited",
                    "args": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "key",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "isDeleting",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 336,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "key",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "isDeleting",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getNameCellClass",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 226,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 187,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onCreate",
                    "args": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 233,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "onDelete",
                    "args": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 285,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "type",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "row",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "updateFilter",
                    "args": [
                        {
                            "name": "event",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 211,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import {\n  Component,\n  OnInit,\n  Input,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  EventEmitter,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { MatDialog } from '@angular/material/dialog';\n\nimport * as _ from 'lodash';\n// import * as ace from 'ace-builds/src-noconflict/ace';\nimport 'ace-builds';\nimport 'ace-builds/webpack-resolver';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/theme-chrome';\nimport { config } from 'ace-builds';\n\nimport { ResourceService } from '../../resource/shared/resource.service';\nimport { HelperService } from '../../shared/helper.service';\nimport { Node } from '../models/node.model';\nimport { Settings } from '../../core/settings';\nimport { InputDialogComponent } from '../dialog/input-dialog/input-dialog.component';\nimport { ConfirmDialogComponent } from '../dialog/confirm-dialog/confirm-dialog.component';\n\nexport type IdealState = {\n  id: string;\n  simpleFields?: { [key: string]: any };\n  listFields?: { [key: string]: any };\n  mapFields?: { [key: string]: any };\n};\n\nconfig.set(\n  'basePath',\n  'https://cdn.jsdelivr.net/npm/ace-builds@1.6.0/src-noconflict/'\n);\nconfig.setModuleUrl(\n  'ace/mode/javascript_worker',\n  'https://cdn.jsdelivr.net/npm/ace-builds@1.6.0/src-noconflict/worker-json.js'\n);\n@Component({\n  selector: 'hi-node-viewer',\n  templateUrl: './node-viewer.component.html',\n  styleUrls: ['./node-viewer.component.scss'],\n  providers: [ResourceService],\n  // Since we are importing external styles in this component\n  // we will not use Shadow DOM at all to make sure the styles apply\n  encapsulation: ViewEncapsulation.None,\n})\nexport class NodeViewerComponent implements OnInit {\n  isLoading = true;\n  clusterName: string;\n  resourceName: string;\n  @ViewChild('simpleTable', { static: true }) simpleTable;\n  @ViewChild('listTable', { static: true }) listTable;\n  @ViewChild('mapTable', { static: true }) mapTable;\n\n  @Output('update')\n  change: EventEmitter<Node> = new EventEmitter<Node>();\n\n  @Output('create')\n  create: EventEmitter<Node> = new EventEmitter<Node>();\n\n  @Output('delete')\n  delete: EventEmitter<Node> = new EventEmitter<Node>();\n\n  @Input()\n  unlockable = false;\n\n  @Input()\n  loadingIndicator = false;\n\n  private _editable = false;\n\n  protected _obj: any;\n  protected node: Node;\n\n  headerHeight = Settings.tableHeaderHeight;\n  rowHeight = Settings.tableRowHeight;\n  sorts = [{ prop: 'name', dir: 'asc' }];\n  keyword = '';\n  columns = {\n    simpleConfigs: [\n      {\n        name: 'Name',\n        editable: false,\n      },\n      {\n        name: 'Value',\n        editable: false,\n      },\n    ],\n    listConfigs: [\n      {\n        name: 'Value',\n        editable: false,\n      },\n    ],\n  };\n\n  _simpleConfigs: any[];\n\n  _listConfigs: any[];\n\n  _mapConfigs: any[];\n\n  // MODE 1: use directly in components\n  @Input()\n  set obj(value: any) {\n    if (value !== null) {\n      this._obj = value;\n      this.node = new Node(value);\n    }\n  }\n  get obj(): any {\n    return this._obj;\n  }\n  set objString(value: string | null) {\n    let parsedValue = null;\n    if (value && value !== null) {\n      parsedValue = JSON.parse(value);\n    }\n\n    this.obj = parsedValue;\n    this.node = new Node(parsedValue);\n  }\n  get objString(): string {\n    return JSON.stringify(this.obj, null, 2);\n  }\n  set editable(value: boolean) {\n    this._editable = value;\n    this.columns.simpleConfigs[1].editable = this._editable;\n    this.columns.listConfigs[0].editable = this._editable;\n  }\n  get editable() {\n    return this._editable;\n  }\n  get simpleConfigs(): any[] {\n    return this.node\n      ? _.filter(\n          this.node.simpleFields,\n          (config) =>\n            config.name.toLowerCase().indexOf(this.keyword) >= 0 ||\n            config.value.toLowerCase().indexOf(this.keyword) >= 0\n        )\n      : [];\n  }\n  get listConfigs(): any[] {\n    return this.node\n      ? _.filter(\n          this.node.listFields,\n          (config) =>\n            config.name.toLowerCase().indexOf(this.keyword) >= 0 ||\n            _.some(\n              config.value as any[],\n              (subconfig) =>\n                subconfig.value.toLowerCase().indexOf(this.keyword) >= 0\n            )\n        )\n      : [];\n  }\n  get mapConfigs(): any[] {\n    return this.node\n      ? _.filter(\n          this.node.mapFields,\n          (config) =>\n            config.name.toLowerCase().trim().indexOf(this.keyword) >= 0 ||\n            _.some(\n              config.value as any[],\n              (subconfig) =>\n                subconfig.name.toLowerCase().trim().indexOf(this.keyword) >=\n                  0 || subconfig.value.toLowerCase().indexOf(this.keyword) >= 0\n            )\n        )\n      : [];\n  }\n\n  public constructor(\n    protected dialog: MatDialog,\n    protected route: ActivatedRoute,\n    protected resourceService: ResourceService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    // MODE 2: use in router\n    if (this.route.snapshot.data.path) {\n      const path = this.route.snapshot.data.path;\n\n      // try parent data first\n      this.obj = _.get(this.route.parent, `snapshot.data.${path}`);\n\n      if (this.obj == null) {\n        // try self data then\n        this.obj = _.get(this.route.snapshot.data, path);\n      }\n\n      this.objString = JSON.stringify(this.obj, null, 2);\n    }\n\n    if (this.route.parent) {\n      this.clusterName =\n        this.route.parent.snapshot.params.name ||\n        this.route.parent.snapshot.params.cluster_name;\n      this.resourceName = this.route.parent.snapshot.params.resource_name;\n    }\n  }\n\n  updateFilter(event) {\n    this.keyword = event.target.value.toLowerCase().trim();\n\n    // Whenever the filter changes, always go back to the first page\n    if (this.simpleTable) {\n      this.simpleTable.offset = 0;\n    }\n    if (this.listTable) {\n      this.listTable.offset = 0;\n    }\n    if (this.mapTable) {\n      this.mapTable.offset = 0;\n    }\n  }\n\n  getNameCellClass({ value }): any {\n    return {\n      // highlight HELIX own configs\n      primary: _.snakeCase(value).toUpperCase() === value,\n    };\n  }\n\n  onCreate(type) {\n    this.dialog\n      .open(InputDialogComponent, {\n        data: {\n          title: `Create a new ${type} configuration`,\n          message:\n            \"Please enter the name of the new configuration. You'll be able to add values later:\",\n          values: {\n            name: {\n              label: 'the name of the new configuration',\n            },\n          },\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result) {\n          const entry = [\n            {\n              name: result.name.value,\n              value: [],\n            },\n          ];\n\n          const newNode: Node = new Node(null);\n          if (type === 'list') {\n            newNode.listFields = entry;\n          } else if (type === 'map') {\n            newNode.mapFields = entry;\n          }\n\n          this.create.emit(newNode);\n        }\n      });\n  }\n\n  beforeDelete(type, row) {\n    this.dialog\n      .open(ConfirmDialogComponent, {\n        data: {\n          title: 'Confirmation',\n          message: 'Are you sure you want to delete this configuration?',\n        },\n      })\n      .afterClosed()\n      .subscribe((result) => {\n        if (result) {\n          this.onDelete(type, row);\n        }\n      });\n  }\n\n  onDelete(type, row) {\n    const newNode: Node = new Node(null);\n\n    if (type === 'simple') {\n      newNode.appendSimpleField(row.name, '');\n    } else if (type === 'list') {\n      newNode.listFields = [{ name: row.name.trim(), value: [] }];\n    } else if (type === 'map') {\n      newNode.mapFields = [{ name: row.name.trim(), value: null }];\n    }\n\n    this.delete.emit(newNode);\n  }\n\n  created(type, data, key) {\n    const newNode: Node = new Node(null);\n\n    switch (type) {\n      case 'simple':\n        newNode.appendSimpleField(data.name.value, data.value.value);\n        break;\n\n      case 'list':\n        if (key) {\n          const entry = _.find(this.node.listFields, { name: key });\n\n          entry.value.push({\n            name: '',\n            value: data.value.value,\n          });\n\n          newNode.listFields.push(entry);\n        }\n        break;\n\n      case 'map':\n        if (key) {\n          const entry = _.find(this.node.mapFields, { name: key.trim() });\n\n          _.forEach(entry.value, (item: any) => {\n            newNode.appendMapField(key, item.name, item.value);\n          });\n\n          newNode.appendMapField(key, data.name.value, data.value.value);\n        }\n        break;\n    }\n\n    this.create.emit(newNode);\n  }\n\n  edited(type, { row, column, value }, key, isDeleting) {\n    if (!isDeleting && column.name !== 'Value') {\n      return;\n    }\n\n    const newNode: Node = new Node(null);\n\n    switch (type) {\n      case 'simple':\n        newNode.appendSimpleField(row.name, value);\n        break;\n\n      case 'list':\n        if (key) {\n          const entry = _.find(this.node.listFields, { name: key });\n          const index = _.findIndex(entry.value, { value: row.value });\n\n          if (isDeleting) {\n            entry.value.splice(index, 1);\n          } else {\n            entry.value[index].value = value;\n          }\n\n          newNode.listFields.push(entry);\n        }\n        break;\n\n      case 'map':\n        if (key) {\n          // have to fetch all other configs under this key\n          const entry = _.find(this.node.mapFields, { name: key.trim() });\n          newNode.mapFields = [{ name: key.trim(), value: [] }];\n\n          _.forEach(entry.value, (item: any) => {\n            if (item.name === row.name) {\n              if (!isDeleting) {\n                newNode.appendMapField(key.trim(), item.name.trim(), value);\n              }\n            } else {\n              newNode.appendMapField(key.trim(), item.name.trim(), item.value);\n            }\n          });\n        }\n        break;\n    }\n\n    const path = this?.route?.snapshot?.data?.path;\n    if (path && path === 'idealState') {\n      const idealState: IdealState = {\n        id: this.resourceName,\n      };\n\n      // format the payload the way that helix-rest expects\n      // before: { simpleFields: [{ name: 'NUM_PARTITIONS', value: 2 }] };\n      // after:  { simpleFields: { NUM_PARTITIONS: 2 } };\n      function appendIdealStateProperty(property: keyof Node) {\n        if (Array.isArray(newNode[property]) && newNode[property].length > 0) {\n          idealState[property] = {} as any;\n          (newNode[property] as any[]).forEach((field) => {\n            idealState[property][field.name] = field.value;\n          });\n        }\n      }\n      Object.keys(newNode).forEach((key) =>\n        appendIdealStateProperty(key as keyof Node)\n      );\n\n      const observer = this.resourceService.setIdealState(\n        this.clusterName,\n        this.resourceName,\n        idealState\n      );\n\n      if (observer) {\n        this.isLoading = true;\n        observer.subscribe(\n          () => {\n            this.helper.showSnackBar('Ideal State updated!');\n          },\n          (error) => {\n            this.helper.showError(error);\n            this.isLoading = false;\n          },\n          () => (this.isLoading = false)\n        );\n      }\n    }\n\n    this.change.emit(newNode);\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.node-viewer {\n  padding: 10px;\n}\n\n.primary {\n  color: mat.get-color-from-palette($hi-primary);\n}\n\n.search-form-field {\n  width: 300px;\n  padding: 10px 0 0 5px;\n}\n\nmat-card {\n  margin-bottom: 10px;\n}\n\nngx-datatable {\n  word-break: break-all;\n}\n\n.footer {\n  width: 100%;\n  padding: 0 20px;\n}\n\n.delete-button {\n  width: 24px;\n  height: 24px;\n  line-height: 24px;\n\n  .mat-icon {\n    @include md-icon-size(20px);\n\n    &:hover {\n      color: mat.get-color-from-palette($hi-warn);\n    }\n  }\n}\n",
                    "styleUrl": "./node-viewer.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "resourceService",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 178,
                "modifierKind": [
                    123
                ],
                "jsdoctags": [
                    {
                        "name": "dialog",
                        "type": "MatDialog",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "resourceService",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "accessors": {
                "obj": {
                    "name": "obj",
                    "setSignature": {
                        "name": "obj",
                        "type": "void",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "args": [
                            {
                                "name": "value",
                                "type": "any",
                                "deprecated": false,
                                "deprecationMessage": ""
                            }
                        ],
                        "returnType": "void",
                        "line": 111,
                        "jsdoctags": [
                            {
                                "name": "value",
                                "type": "any",
                                "deprecated": false,
                                "deprecationMessage": "",
                                "tagName": {
                                    "text": "param"
                                }
                            }
                        ]
                    },
                    "getSignature": {
                        "name": "obj",
                        "type": "any",
                        "returnType": "any",
                        "line": 117
                    }
                },
                "objString": {
                    "name": "objString",
                    "setSignature": {
                        "name": "objString",
                        "type": "void",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "args": [
                            {
                                "name": "value",
                                "type": "string | null",
                                "deprecated": false,
                                "deprecationMessage": ""
                            }
                        ],
                        "returnType": "void",
                        "line": 120,
                        "jsdoctags": [
                            {
                                "name": "value",
                                "type": "string | null",
                                "deprecated": false,
                                "deprecationMessage": "",
                                "tagName": {
                                    "text": "param"
                                }
                            }
                        ]
                    },
                    "getSignature": {
                        "name": "objString",
                        "type": "string",
                        "returnType": "string",
                        "line": 129
                    }
                },
                "editable": {
                    "name": "editable",
                    "setSignature": {
                        "name": "editable",
                        "type": "void",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "args": [
                            {
                                "name": "value",
                                "type": "boolean",
                                "deprecated": false,
                                "deprecationMessage": ""
                            }
                        ],
                        "returnType": "void",
                        "line": 132,
                        "jsdoctags": [
                            {
                                "name": "value",
                                "type": "boolean",
                                "deprecated": false,
                                "deprecationMessage": "",
                                "tagName": {
                                    "text": "param"
                                }
                            }
                        ]
                    },
                    "getSignature": {
                        "name": "editable",
                        "type": "",
                        "returnType": "",
                        "line": 137
                    }
                },
                "simpleConfigs": {
                    "name": "simpleConfigs",
                    "getSignature": {
                        "name": "simpleConfigs",
                        "type": "[]",
                        "returnType": "any[]",
                        "line": 140
                    }
                },
                "listConfigs": {
                    "name": "listConfigs",
                    "getSignature": {
                        "name": "listConfigs",
                        "type": "[]",
                        "returnType": "any[]",
                        "line": 150
                    }
                },
                "mapConfigs": {
                    "name": "mapConfigs",
                    "getSignature": {
                        "name": "mapConfigs",
                        "type": "[]",
                        "returnType": "any[]",
                        "line": 164
                    }
                }
            },
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section\n  class=\"node-viewer\"\n  fxLayout=\"column\"\n  fxLayoutAlign=\"center center\"\n  fxLayoutGap=\"10px\"\n>\n  <mat-progress-bar\n    *ngIf=\"loadingIndicator\"\n    mode=\"indeterminate\"\n  ></mat-progress-bar>\n  <mat-button-toggle-group #group=\"matButtonToggleGroup\" value=\"table\">\n    <mat-button-toggle value=\"table\"> Table View </mat-button-toggle>\n    <mat-button-toggle value=\"tree\"> Tree View </mat-button-toggle>\n    <mat-button-toggle value=\"json\"> JSON View </mat-button-toggle>\n  </mat-button-toggle-group>\n  <section class=\"viewer\" [ngSwitch]=\"group.value\" fxFlexFill>\n    <ngx-json-viewer *ngSwitchCase=\"'tree'\" [json]=\"obj\"></ngx-json-viewer>\n    <ace-editor\n      *ngSwitchCase=\"'json'\"\n      [(text)]=\"objString\"\n      mode=\"json\"\n      theme=\"chrome\"\n      [options]=\"{ useWorker: false }\"\n      style=\"min-height: 300px\"\n      #editor\n    >\n    </ace-editor>\n    <section *ngSwitchCase=\"'table'\">\n      <!-- TODO vxu: use mat-simple-table when it's available -->\n\n      <section fxLayout=\"row\" fxLayoutAlign=\"center center\">\n        <span fxFlex=\"1 1 auto\"></span>\n        <mat-icon>search</mat-icon>\n        <mat-form-field class=\"search-form-field\">\n          <input\n            matInput\n            placeholder=\"Type to filter the fields...\"\n            (keyup)=\"updateFilter($event)\"\n          />\n        </mat-form-field>\n        <span fxFlex=\"1 1 auto\"></span>\n        <!-- *ngIf=\"unlockable\" -->\n        <button\n          mat-button\n          (click)=\"editable = !editable\"\n          [matTooltip]=\"\n            editable\n              ? 'Click to prevent further changes'\n              : 'Click to make changes'\n          \"\n        >\n          <mat-icon>{{ editable ? 'lock_open' : 'lock' }}</mat-icon>\n          {{ editable ? 'Unlocked' : 'Locked' }}\n        </button>\n      </section>\n\n      <mat-card>\n        <mat-card-header>\n          <mat-card-title>\n            Simple Fields\n            <span *ngIf=\"simpleConfigs.length == 0\">is empty.</span>\n            <span *ngIf=\"keyword\" class=\"primary\">(filtered)</span>\n          </mat-card-title>\n        </mat-card-header>\n        <mat-card-content>\n          <hi-data-table\n            *ngIf=\"simpleConfigs.length || editable\"\n            [rows]=\"simpleConfigs\"\n            [sorts]=\"sorts\"\n            [columns]=\"columns.simpleConfigs\"\n            [deletable]=\"editable\"\n            [insertable]=\"editable\"\n            (update)=\"edited('simple', $event)\"\n            (create)=\"created('simple', $event)\"\n            (delete)=\"onDelete('simple', $event.row)\"\n          >\n          </hi-data-table>\n        </mat-card-content>\n      </mat-card>\n\n      <mat-card>\n        <mat-card-header>\n          <mat-card-title>\n            List Fields\n            <span *ngIf=\"listConfigs.length == 0\">is empty.</span>\n            <span *ngIf=\"keyword\" class=\"primary\">(filtered)</span>\n          </mat-card-title>\n        </mat-card-header>\n        <mat-card-content>\n          <ngx-datatable\n            *ngIf=\"listConfigs.length || editable\"\n            #listTable\n            class=\"material\"\n            [headerHeight]=\"headerHeight\"\n            rowHeight=\"auto\"\n            [footerHeight]=\"headerHeight\"\n            columnMode=\"force\"\n            [rows]=\"listConfigs\"\n            [sorts]=\"sorts\"\n            [limit]=\"10\"\n          >\n            <ngx-datatable-column\n              *ngIf=\"editable\"\n              [width]=\"40\"\n              [resizeable]=\"false\"\n              [draggable]=\"false\"\n              [canAutoResize]=\"false\"\n            >\n              <ng-template let-row=\"row\" ngx-datatable-cell-template>\n                <button\n                  mat-icon-button\n                  class=\"delete-button\"\n                  matTooltip=\"Click to delete\"\n                  (click)=\"beforeDelete('list', row)\"\n                >\n                  <mat-icon>delete_forever</mat-icon>\n                </button>\n              </ng-template>\n            </ngx-datatable-column>\n            <ngx-datatable-column\n              name=\"Name\"\n              [width]=\"80\"\n              [cellClass]=\"getNameCellClass\"\n            ></ngx-datatable-column>\n            <ngx-datatable-column name=\"Value\" [width]=\"400\">\n              <ng-template\n                let-row=\"row\"\n                let-value=\"value\"\n                ngx-datatable-cell-template\n              >\n                <hi-data-table\n                  [rows]=\"value\"\n                  [sorts]=\"sorts\"\n                  [columns]=\"columns.listConfigs\"\n                  [deletable]=\"editable\"\n                  [insertable]=\"editable\"\n                  (update)=\"edited('list', $event, row.name)\"\n                  (create)=\"created('list', $event, row.name)\"\n                  (delete)=\"edited('list', $event, row.name, true)\"\n                >\n                </hi-data-table>\n              </ng-template>\n            </ngx-datatable-column>\n            <ngx-datatable-footer>\n              <ng-template\n                ngx-datatable-footer-template\n                let-rowCount=\"rowCount\"\n                let-pageSize=\"pageSize\"\n                let-curPage=\"curPage\"\n              >\n                <section\n                  class=\"footer\"\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"space-between center\"\n                >\n                  <button\n                    mat-button\n                    *ngIf=\"editable\"\n                    (click)=\"onCreate('list')\"\n                  >\n                    <mat-icon>add</mat-icon>\n                    Add new entry\n                  </button>\n                  <section>{{ rowCount }} total</section>\n                  <section>\n                    <datatable-pager\n                      [pagerLeftArrowIcon]=\"'datatable-icon-left'\"\n                      [pagerRightArrowIcon]=\"'datatable-icon-right'\"\n                      [pagerPreviousIcon]=\"'datatable-icon-prev'\"\n                      [pagerNextIcon]=\"'datatable-icon-skip'\"\n                      [page]=\"curPage\"\n                      [size]=\"pageSize\"\n                      [count]=\"rowCount\"\n                      [hidden]=\"!(rowCount / pageSize > 1)\"\n                      (change)=\"listTable.onFooterPage($event)\"\n                    >\n                    </datatable-pager>\n                  </section>\n                </section>\n              </ng-template>\n            </ngx-datatable-footer>\n          </ngx-datatable>\n        </mat-card-content>\n      </mat-card>\n\n      <mat-card>\n        <mat-card-header>\n          <mat-card-title>\n            Map Fields\n            <span *ngIf=\"mapConfigs.length == 0\">is empty.</span>\n            <span *ngIf=\"keyword\" class=\"primary\">(filtered)</span>\n          </mat-card-title>\n        </mat-card-header>\n        <mat-card-content>\n          <ngx-datatable\n            *ngIf=\"mapConfigs.length || editable\"\n            #mapTable\n            class=\"material\"\n            [headerHeight]=\"headerHeight\"\n            rowHeight=\"auto\"\n            [footerHeight]=\"headerHeight\"\n            columnMode=\"force\"\n            [rows]=\"mapConfigs\"\n            [sorts]=\"sorts\"\n            [limit]=\"10\"\n          >\n            <ngx-datatable-column\n              *ngIf=\"editable\"\n              [width]=\"40\"\n              [resizeable]=\"false\"\n              [draggable]=\"false\"\n              [canAutoResize]=\"false\"\n            >\n              <ng-template let-row=\"row\" ngx-datatable-cell-template>\n                <button\n                  mat-icon-button\n                  class=\"delete-button\"\n                  matTooltip=\"Click to delete\"\n                  (click)=\"beforeDelete('map', row)\"\n                >\n                  <mat-icon>delete_forever</mat-icon>\n                </button>\n              </ng-template>\n            </ngx-datatable-column>\n            <ngx-datatable-column\n              name=\"Name\"\n              [width]=\"80\"\n              [cellClass]=\"getNameCellClass\"\n            ></ngx-datatable-column>\n            <ngx-datatable-column name=\"Value\" [width]=\"500\">\n              <ng-template\n                let-row=\"row\"\n                let-value=\"value\"\n                ngx-datatable-cell-template\n              >\n                <hi-data-table\n                  [rows]=\"value\"\n                  [sorts]=\"sorts\"\n                  [columns]=\"columns.simpleConfigs\"\n                  [deletable]=\"editable\"\n                  [insertable]=\"editable\"\n                  (update)=\"edited('map', $event, row.name)\"\n                  (create)=\"created('map', $event, row.name)\"\n                  (delete)=\"edited('map', $event, row.name, true)\"\n                >\n                </hi-data-table>\n              </ng-template>\n            </ngx-datatable-column>\n            <ngx-datatable-footer>\n              <ng-template\n                ngx-datatable-footer-template\n                let-rowCount=\"rowCount\"\n                let-pageSize=\"pageSize\"\n                let-curPage=\"curPage\"\n              >\n                <section\n                  class=\"footer\"\n                  fxLayout=\"row\"\n                  fxLayoutAlign=\"space-between center\"\n                >\n                  <button mat-button *ngIf=\"editable\" (click)=\"onCreate('map')\">\n                    <mat-icon>add</mat-icon>\n                    Add new entry\n                  </button>\n                  <section>{{ rowCount }} total</section>\n                  <section>\n                    <datatable-pager\n                      [pagerLeftArrowIcon]=\"'datatable-icon-left'\"\n                      [pagerRightArrowIcon]=\"'datatable-icon-right'\"\n                      [pagerPreviousIcon]=\"'datatable-icon-prev'\"\n                      [pagerNextIcon]=\"'datatable-icon-skip'\"\n                      [page]=\"curPage\"\n                      [size]=\"pageSize\"\n                      [count]=\"rowCount\"\n                      [hidden]=\"!(rowCount / pageSize > 1)\"\n                      (change)=\"mapTable.onFooterPage($event)\"\n                    >\n                    </datatable-pager>\n                  </section>\n                </section>\n              </ng-template>\n            </ngx-datatable-footer>\n          </ngx-datatable>\n        </mat-card-content>\n      </mat-card>\n    </section>\n  </section>\n</section>\n"
        },
        {
            "name": "PartitionDetailComponent",
            "id": "component-PartitionDetailComponent-463580388c12c99bd1c92bd52093b3eab3165eb4d067030e077260fd4e27cca753de1c9398e42d19bf2fb08df271b0923eefc2909538d1f0047fc88cfa8331b6",
            "file": "src/app/resource/partition-detail/partition-detail.component.ts",
            "encapsulation": [
                "ViewEncapsulation.None"
            ],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-partition-detail",
            "styleUrls": [
                "./partition-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./partition-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 13,
                    "type": "string",
                    "decorators": []
                },
                {
                    "name": "partition",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 14,
                    "type": "Partition",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 17
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\n\nimport { Settings } from '../../core/settings';\nimport { Partition, IReplica } from '../shared/resource.model';\n\n@Component({\n  selector: 'hi-partition-detail',\n  templateUrl: './partition-detail.component.html',\n  styleUrls: ['./partition-detail.component.scss'],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class PartitionDetailComponent implements OnInit {\n  @Input() clusterName: string;\n  @Input() partition: Partition;\n\n  headerHeight = Settings.tableHeaderHeight;\n  rowHeight = Settings.tableRowHeight;\n\n  constructor() {}\n\n  ngOnInit() {}\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "hi-partition-detail {\n  .datatable-body-cell {\n    line-height: 40px !important;\n  }\n}\n",
                    "styleUrl": "./partition-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 17
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<ngx-datatable\n  class=\"material\"\n  [headerHeight]=\"headerHeight\"\n  [rowHeight]=\"rowHeight\"\n  columnMode=\"force\"\n  [rows]=\"partition?.replicas\"\n>\n  <ngx-datatable-column\n    name=\"Replica\"\n    [width]=\"80\"\n    [resizeable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template\n      let-row=\"row\"\n      let-rowIndex=\"rowIndex\"\n      ngx-datatable-cell-template\n    >\n      <strong>#{{ rowIndex + 1 }}</strong>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column name=\"Instance\" prop=\"instanceName\">\n    <ng-template let-value=\"value\" ngx-datatable-cell-template>\n      {{ value }}\n      <a\n        mat-icon-button\n        color=\"accent\"\n        [routerLink]=\"['../../..', 'instances', value, 'resources']\"\n      >\n        <mat-icon>arrow_forward</mat-icon>\n      </a>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    name=\"External View\"\n    [width]=\"120\"\n    [resizeable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      <hi-state-label\n        [state]=\"row.externalView\"\n        [isReady]=\"row.externalView && row.externalView == row.idealState\"\n      ></hi-state-label>\n    </ng-template>\n  </ngx-datatable-column>\n  <ngx-datatable-column\n    name=\"Ideal State\"\n    [width]=\"120\"\n    [resizeable]=\"false\"\n    [canAutoResize]=\"false\"\n  >\n    <ng-template let-row=\"row\" ngx-datatable-cell-template>\n      <hi-state-label\n        [state]=\"row.idealState\"\n        [isReady]=\"row.externalView && row.externalView == row.idealState\"\n      ></hi-state-label>\n    </ng-template>\n  </ngx-datatable-column>\n</ngx-datatable>\n"
        },
        {
            "name": "PartitionListComponent",
            "id": "component-PartitionListComponent-70a28f903354492334fb538855578ae022be22a96e1512071bffb8019f8ed3f1722a66f7d9160f7f965ca29e57ff8e3eefe2af51735f6a7df13c7e955260cc5a",
            "file": "src/app/resource/partition-list/partition-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-partition-list",
            "styleUrls": [
                "./partition-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./partition-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "partitions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Partition[]",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "resource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Resource",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "sorts",
                    "defaultValue": "[\n    { prop: 'isReady', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "table",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DatatableComponent",
                    "optional": false,
                    "description": "",
                    "line": 17,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'partitionsTable', {static: false}"
                        }
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "canAnalyse",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getReasonWhyCannotAnalyse",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean | string",
                    "typeParameters": [],
                    "line": 49,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "loadResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 36,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onSelect",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { Partition, IReplica, Resource } from '../shared/resource.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ResourceService } from '../shared/resource.service';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\n@Component({\n  selector: 'hi-partition-list',\n  templateUrl: './partition-list.component.html',\n  styleUrls: ['./partition-list.component.scss'],\n})\nexport class PartitionListComponent implements OnInit {\n  @ViewChild('partitionsTable', { static: false })\n  table: DatatableComponent;\n\n  isLoading = true;\n  clusterName: string;\n  resource: Resource;\n  partitions: Partition[];\n  headerHeight = Settings.tableHeaderHeight;\n  rowHeight = Settings.tableRowHeight;\n  sorts = [\n    { prop: 'isReady', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ];\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected service: ResourceService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      this.clusterName = this.route.parent.snapshot.params.cluster_name;\n\n      this.loadResource();\n    }\n  }\n\n  // check whether we are capable of analysing the states :(\n  canAnalyse() {\n    return this.partitions && this.partitions.length;\n  }\n\n  getReasonWhyCannotAnalyse(): boolean | string {\n    if (!this.canAnalyse()) {\n      if (!this.resource.online) {\n        return 'The resource is OFFLINE and does not have partition information available.';\n      }\n      if (this.resource.partitionCount < 1) {\n        return 'This resource does not contain any partition information.';\n      }\n    }\n\n    return false;\n  }\n\n  onSelect({ selected }) {\n    const row = selected[0];\n\n    this.table.rowDetail.toggleExpandRow(row);\n  }\n\n  protected loadResource() {\n    const resourceName = this.resource\n      ? this.resource.name\n      : this.route.parent.snapshot.params.resource_name;\n    this.isLoading = true;\n    this.service.get(this.clusterName, resourceName).subscribe(\n      (resource) => {\n        this.resource = resource;\n        this.partitions = this.resource.partitions;\n      },\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\ndiv.message {\n  padding: 20px;\n}\n\n.status-ready {\n  color: mat.get-color-from-palette(mat.define-palette(mat.$blue-palette));\n}\n\n.status-not-ready {\n  color: mat.get-color-from-palette(\n    mat.define-palette(mat.$grey-palette, 900, 900, 900),\n    darker\n  );\n}\n\n.footer {\n  width: 100%;\n  padding: 0 20px;\n}\n",
                    "styleUrl": "./partition-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 28,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <ngx-datatable\n    *ngIf=\"canAnalyse()\"\n    #partitionsTable\n    class=\"material\"\n    [headerHeight]=\"headerHeight\"\n    [rowHeight]=\"rowHeight\"\n    columnMode=\"force\"\n    [footerHeight]=\"rowHeight\"\n    [rows]=\"partitions\"\n    [sorts]=\"sorts\"\n    [limit]=\"20\"\n    selectionType=\"single\"\n    (select)=\"onSelect($event)\"\n  >\n    <ngx-datatable-column\n      [width]=\"50\"\n      [resizeable]=\"false\"\n      [sortable]=\"false\"\n      [draggable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-expanded=\"expanded\" ngx-datatable-cell-template>\n        <mat-icon>{{ expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column\n      name=\"Status\"\n      prop=\"isReady\"\n      [width]=\"85\"\n      [resizeable]=\"false\"\n      [draggable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-value=\"value\" ngx-datatable-cell-template>\n        <mat-icon *ngIf=\"value\" [ngClass]=\"'status-ready'\"\n          >check_circle</mat-icon\n        >\n        <mat-icon *ngIf=\"!value\" [ngClass]=\"'status-not-ready'\">error</mat-icon>\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column name=\"Name\"></ngx-datatable-column>\n    <ngx-datatable-column\n      name=\"Replicas\"\n      [width]=\"100 * partitions[0].replicas.length\"\n      [resizeable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-value=\"value\" ngx-datatable-cell-template>\n        <span *ngFor=\"let replica of value\" [matTooltip]=\"replica.instanceName\">\n          <hi-state-label\n            [state]=\"replica.externalView\"\n            [isReady]=\"\n              replica.externalView && replica.externalView == replica.idealState\n            \"\n          ></hi-state-label>\n        </span>\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-row-detail rowHeight=\"auto\">\n      <ng-template let-row=\"row\" ngx-datatable-row-detail-template>\n        <hi-partition-detail\n          [clusterName]=\"resource.cluster\"\n          [partition]=\"row\"\n        ></hi-partition-detail>\n      </ng-template>\n    </ngx-datatable-row-detail>\n    <ngx-datatable-footer>\n      <ng-template\n        ngx-datatable-footer-template\n        let-rowCount=\"rowCount\"\n        let-pageSize=\"pageSize\"\n        let-curPage=\"curPage\"\n      >\n        <section\n          class=\"footer\"\n          fxLayout=\"row\"\n          fxLayoutAlign=\"space-between center\"\n        >\n          <section>{{ rowCount }} total</section>\n          <section>\n            <datatable-pager\n              [pagerLeftArrowIcon]=\"'datatable-icon-left'\"\n              [pagerRightArrowIcon]=\"'datatable-icon-right'\"\n              [pagerPreviousIcon]=\"'datatable-icon-prev'\"\n              [pagerNextIcon]=\"'datatable-icon-skip'\"\n              [page]=\"curPage\"\n              [size]=\"pageSize\"\n              [count]=\"rowCount\"\n              [hidden]=\"!(rowCount / pageSize > 1)\"\n              (change)=\"partitionsTable.onFooterPage($event)\"\n            >\n            </datatable-pager>\n          </section>\n        </section>\n      </ng-template>\n    </ngx-datatable-footer>\n  </ngx-datatable>\n  <div\n    *ngIf=\"!canAnalyse()\"\n    class=\"message\"\n    fxLayout=\"column\"\n    fxLayoutAlign=\"center center\"\n  >\n    <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n    <section *ngIf=\"!isLoading && getReasonWhyCannotAnalyse()\" fxFlexFill>\n      {{ getReasonWhyCannotAnalyse() }}\n    </section>\n    <section *ngIf=\"!isLoading && !getReasonWhyCannotAnalyse()\" fxFlexFill>\n      <div>\n        Sorry, we do not support this kind of partition information yet.\n        Detailed debugging information:\n      </div>\n      <ngx-json-viewer [json]=\"resource\"></ngx-json-viewer>\n    </section>\n  </div>\n</section>\n"
        },
        {
            "name": "ResourceDetailComponent",
            "id": "component-ResourceDetailComponent-587b019911c77fbf4d9335ffad7f8878082ee880a2f0dc832a55e262a62df680ea10f330673366970b3d9d708d4ad7ee2688ba03fe21f745328c066d3130abc7",
            "file": "src/app/resource/resource-detail/resource-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-resource-detail",
            "styleUrls": [
                "./resource-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./resource-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "resource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Resource",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "resourceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "tabLinks",
                    "defaultValue": "[\n    { label: 'Partitions', link: 'partitions' },\n    { label: 'External View', link: 'externalView' },\n    { label: 'Ideal State', link: 'idealState' },\n    { label: 'Configuration', link: 'configs' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 14,
                    "modifierKind": [
                        144
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "disableResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 48,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "enableResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "loadResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 73,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 34,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "removeResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Resource } from '../shared/resource.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ResourceService } from '../shared/resource.service';\n\n@Component({\n  selector: 'hi-resource-detail',\n  templateUrl: './resource-detail.component.html',\n  styleUrls: ['./resource-detail.component.scss'],\n})\nexport class ResourceDetailComponent implements OnInit {\n  readonly tabLinks = [\n    { label: 'Partitions', link: 'partitions' },\n    { label: 'External View', link: 'externalView' },\n    { label: 'Ideal State', link: 'idealState' },\n    { label: 'Configuration', link: 'configs' },\n  ];\n\n  clusterName: string;\n  resourceName: string;\n  resource: Resource;\n  isLoading = true;\n  can = false;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected router: Router,\n    protected service: ResourceService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    this.service.can().subscribe((data) => (this.can = data));\n    this.clusterName = this.route.snapshot.params.cluster_name;\n    this.resourceName = this.route.snapshot.params.resource_name;\n    this.loadResource();\n  }\n\n  enableResource() {\n    this.service.enable(this.clusterName, this.resource.name).subscribe(\n      () => this.loadResource(),\n      (error) => this.helper.showError(error)\n    );\n  }\n\n  disableResource() {\n    this.service.disable(this.clusterName, this.resource.name).subscribe(\n      () => this.loadResource(),\n      (error) => this.helper.showError(error)\n    );\n  }\n\n  removeResource() {\n    this.helper\n      .showConfirmation('Are you sure you want to remove this Resource?')\n      .then((result) => {\n        console.log(result);\n        if (result) {\n          this.service\n            .remove(this.clusterName, this.resourceName)\n            .subscribe((data) => {\n              this.helper.showSnackBar(\n                `Resource: ${this.resourceName} removed!`\n              );\n              this.router.navigate(['..'], { relativeTo: this.route });\n            });\n        }\n      });\n  }\n\n  protected loadResource() {\n    this.isLoading = true;\n    this.service.get(this.clusterName, this.resourceName).subscribe(\n      (resource) => (this.resource = resource),\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n@import 'src/theme.scss';\n\n.offline {\n  font-size: 14px;\n  padding-left: 24px;\n  color: mat.get-color-from-palette($hi-warn);\n}\n\n.information {\n  .mat-spinner {\n    margin: 0 20px;\n  }\n}\n",
                    "styleUrl": "./resource-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 25,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <mat-toolbar class=\"mat-elevation-z1\">\n    <mat-toolbar-row>\n      <hi-detail-header\n        [cluster]=\"clusterName\"\n        [resource]=\"resourceName\"\n      ></hi-detail-header>\n      <hi-disabled-label\n        *ngIf=\"!isLoading && !resource.online\"\n        text=\"OFFLINE\"\n      ></hi-disabled-label>\n      <hi-disabled-label\n        *ngIf=\"!isLoading && !resource.enabled\"\n        text=\"DISABLED\"\n      ></hi-disabled-label>\n    </mat-toolbar-row>\n    <mat-toolbar-row class=\"information\">\n      <a mat-mini-fab routerLink=\"../\"><mat-icon>arrow_back</mat-icon></a>\n      <mat-spinner *ngIf=\"isLoading\" diameter=\"30\"></mat-spinner>\n      <hi-key-value-pairs *ngIf=\"!isLoading\" [obj]=\"resource\">\n        <hi-key-value-pair\n          name=\"Ideal State Mode\"\n          prop=\"idealStateMode\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Rebalance Mode\"\n          prop=\"rebalanceMode\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"State Model\"\n          prop=\"stateModel\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Ideal Partitions\"\n          prop=\"partitionCount\"\n        ></hi-key-value-pair>\n        <hi-key-value-pair\n          name=\"Replication Factor\"\n          prop=\"replicaCount\"\n        ></hi-key-value-pair>\n      </hi-key-value-pairs>\n      <span fxFlex=\"1 1 auto\"></span>\n      <button mat-mini-fab *ngIf=\"can\" [matMenuTriggerFor]=\"menu\">\n        <mat-icon>menu</mat-icon>\n      </button>\n      <mat-menu #menu=\"matMenu\">\n        <button\n          mat-menu-item\n          *ngIf=\"resource && resource.enabled\"\n          (click)=\"disableResource()\"\n        >\n          <mat-icon>not_interested</mat-icon>\n          <span>Disable this Resource</span>\n        </button>\n        <button\n          mat-menu-item\n          *ngIf=\"resource && !resource.enabled\"\n          (click)=\"enableResource()\"\n        >\n          <mat-icon>play_circle_outline</mat-icon>\n          <span>Enable this Resource</span>\n        </button>\n        <button mat-menu-item *ngIf=\"false\" (click)=\"removeResource()\">\n          <mat-icon>delete</mat-icon>\n          <span>REMOVE this Resource</span>\n        </button>\n      </mat-menu>\n    </mat-toolbar-row>\n  </mat-toolbar>\n  <nav mat-tab-nav-bar>\n    <a\n      mat-tab-link\n      *ngFor=\"let tabLink of tabLinks\"\n      [routerLink]=\"tabLink.link\"\n      routerLinkActive\n      #rla=\"routerLinkActive\"\n      [active]=\"rla.isActive\"\n    >\n      {{ tabLink.label }}\n    </a>\n  </nav>\n  <router-outlet></router-outlet>\n</section>\n"
        },
        {
            "name": "ResourceDetailForInstanceComponent",
            "id": "component-ResourceDetailForInstanceComponent-6629801aea858195b6f42e57fdf03ae9faeda818c58c65307afdaea17d92a9756c5c497750b59a332c317def22fd90dc04ad77cf8f8fd2dac7d76310d3728900",
            "file": "src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-resource-detail-for-instance",
            "styleUrls": [
                "./resource-detail-for-instance.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./resource-detail-for-instance.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 11,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "instanceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 12,
                    "type": "any",
                    "decorators": []
                },
                {
                    "name": "resourceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 13,
                    "type": "any",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "resourceOnInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "40",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "sorts",
                    "defaultValue": "[{ prop: 'name', dir: 'asc' }]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 18
                }
            ],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 22,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\n\nimport { ResourceService } from '../shared/resource.service';\n\n@Component({\n  selector: 'hi-resource-detail-for-instance',\n  templateUrl: './resource-detail-for-instance.component.html',\n  styleUrls: ['./resource-detail-for-instance.component.scss'],\n})\nexport class ResourceDetailForInstanceComponent implements OnInit {\n  @Input() clusterName;\n  @Input() instanceName;\n  @Input() resourceName;\n\n  resourceOnInstance: any;\n  isLoading = true;\n  rowHeight = 40;\n  sorts = [{ prop: 'name', dir: 'asc' }];\n\n  constructor(protected service: ResourceService) {}\n\n  ngOnInit() {\n    this.service\n      .getOnInstance(this.clusterName, this.instanceName, this.resourceName)\n      .subscribe(\n        (resource) => (this.resourceOnInstance = resource),\n        (error) => console.log(error),\n        () => (this.isLoading = false)\n      );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "mat-spinner {\n  margin: 0 auto;\n}\n\n[mat-button] {\n  float: right;\n}\n\nhi-key-value-pairs {\n  padding: 10px;\n}\n",
                    "styleUrl": "./resource-detail-for-instance.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 18,
                "jsdoctags": [
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n  <section *ngIf=\"!isLoading\">\n    <a\n      mat-button\n      color=\"accent\"\n      [routerLink]=\"['../../..', 'resources', resourceName]\"\n    >\n      Other Partitions\n    </a>\n\n    <hi-key-value-pairs *ngIf=\"!isLoading\" [obj]=\"resourceOnInstance\">\n      <hi-key-value-pair name=\"Session ID\" prop=\"sessionId\"></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"State Model\"\n        prop=\"stateModelDef\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"State Model Factory Name\"\n        prop=\"stateModelFactoryName\"\n      ></hi-key-value-pair>\n    </hi-key-value-pairs>\n\n    <ngx-datatable\n      #partitionsTable\n      class=\"material\"\n      [headerHeight]=\"rowHeight\"\n      rowHeight=\"auto\"\n      columnMode=\"force\"\n      [rows]=\"resourceOnInstance.partitions\"\n      [sorts]=\"sorts\"\n    >\n      <ngx-datatable-column name=\"Partition\" prop=\"name\"></ngx-datatable-column>\n      <ngx-datatable-column\n        name=\"Current State\"\n        [width]=\"120\"\n        [canAutoResize]=\"false\"\n      >\n        <ng-template let-row=\"row\" ngx-datatable-cell-template>\n          <span [matTooltip]=\"row.info\">\n            <hi-state-label [state]=\"row.currentState\"></hi-state-label>\n          </span>\n        </ng-template>\n      </ngx-datatable-column>\n    </ngx-datatable>\n  </section>\n</section>\n"
        },
        {
            "name": "ResourceListComponent",
            "id": "component-ResourceListComponent-d2d518a517b184de023ef2125e7b5c7ab63bb80e11aed1460a4cc593ced77ab4b6563f925defb1c1b6d4a3588f967706c3ead2cf525af620d74831aaae378df1",
            "file": "src/app/resource/resource-list/resource-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [
                {
                    "name": "WorkflowService"
                }
            ],
            "selector": "hi-resource-list",
            "styleUrls": [
                "./resource-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./resource-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "instanceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "isForInstance",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "resources",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Resource[]",
                    "optional": false,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "sorts",
                    "defaultValue": "[\n    { prop: 'alive', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 32
                },
                {
                    "name": "table",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DatatableComponent",
                    "optional": false,
                    "description": "",
                    "line": 23,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'resourcesTable', {static: false}"
                        }
                    ]
                }
            ],
            "methodsClass": [
                {
                    "name": "fetchResources",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 76,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "onSelect",
                    "args": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 99,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport * as _ from 'lodash';\n\nimport { Settings } from '../../core/settings';\nimport { Resource } from '../shared/resource.model';\nimport { ResourceService } from '../shared/resource.service';\nimport { WorkflowService } from '../../workflow/shared/workflow.service';\nimport { HelperService } from '../../shared/helper.service';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\n@Component({\n  selector: 'hi-resource-list',\n  templateUrl: './resource-list.component.html',\n  styleUrls: ['./resource-list.component.scss'],\n  providers: [WorkflowService],\n})\nexport class ResourceListComponent implements OnInit {\n  @ViewChild('resourcesTable', { static: false })\n  table: DatatableComponent;\n\n  isForInstance = false;\n  headerHeight = Settings.tableHeaderHeight;\n  rowHeight = Settings.tableRowHeight;\n  resources: Resource[];\n  isLoading = true;\n  clusterName: string;\n  instanceName: string;\n  sorts = [\n    { prop: 'alive', dir: 'asc' },\n    { prop: 'name', dir: 'asc' },\n  ];\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private service: ResourceService,\n    private workflowService: WorkflowService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      if (this.route.snapshot.data.forInstance) {\n        this.isForInstance = true;\n        this.isLoading = true;\n        this.clusterName = this.route.parent.snapshot.params.cluster_name;\n        this.instanceName = this.route.parent.snapshot.params.instance_name;\n\n        this.service\n          .getAllOnInstance(this.clusterName, this.instanceName)\n          .subscribe(\n            (resources) => (this.resources = resources),\n            (error) => console.log(error),\n            () => (this.isLoading = false)\n          );\n      } else {\n        this.route.parent.params.pipe(map((p) => p.name)).subscribe((name) => {\n          this.clusterName = name;\n          this.fetchResources();\n        });\n      }\n    }\n  }\n\n  // since resource list contains also workflows and jobs\n  // need to subtract them from original resource list\n  // to obtain all jobs list, need to go through every workflow\n  // and perform get request for each.\n  // However, it has huge performance issue when there are thousands of\n  // workflows. We are using a smart way here: to remove resources whose\n  // prefix is a workflow name\n  protected fetchResources() {\n    this.isLoading = true;\n    this.resources = null;\n\n    this.workflowService.getAll(this.clusterName).subscribe(\n      (workflows) => {\n        this.service.getAll(this.clusterName).subscribe(\n          (result) => {\n            this.resources = _.differenceWith(\n              result,\n              workflows,\n              (resource: Resource, prefix: string) =>\n                _.startsWith(resource.name, prefix)\n            );\n          },\n          (error) => this.helper.showError(error),\n          () => (this.isLoading = false)\n        );\n      },\n      (error) => this.helper.showError(error)\n    );\n  }\n\n  onSelect({ selected }) {\n    const row = selected[0];\n\n    if (this.isForInstance) {\n      this.table.rowDetail.toggleExpandRow(row);\n    } else {\n      this.router.navigate([row.name], { relativeTo: this.route });\n    }\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./resource-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "workflowService",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 35,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "workflowService",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <ngx-datatable\n    #resourcesTable\n    class=\"material\"\n    [headerHeight]=\"headerHeight\"\n    [rowHeight]=\"rowHeight\"\n    columnMode=\"force\"\n    [footerHeight]=\"rowHeight\"\n    [rows]=\"resources\"\n    selectionType=\"single\"\n    [sorts]=\"sorts\"\n    [loadingIndicator]=\"isLoading\"\n    (select)=\"onSelect($event)\"\n  >\n    <ngx-datatable-column\n      *ngIf=\"!isForInstance\"\n      name=\"Status\"\n      prop=\"alive\"\n      [width]=\"88\"\n      [resizeable]=\"false\"\n      [draggable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-value=\"value\" ngx-datatable-cell-template>\n        <mat-icon *ngIf=\"value\" color=\"primary\">lens</mat-icon>\n        <mat-icon\n          *ngIf=\"!value\"\n          color=\"warn\"\n          matTooltip=\"The resource is offline.\"\n          >panorama_fish_eye</mat-icon\n        >\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column\n      *ngIf=\"isForInstance\"\n      [width]=\"50\"\n      [resizeable]=\"false\"\n      [sortable]=\"false\"\n      [draggable]=\"false\"\n      [canAutoResize]=\"false\"\n    >\n      <ng-template let-expanded=\"expanded\" ngx-datatable-cell-template>\n        <mat-icon>{{ expanded ? 'expand_more' : 'chevron_right' }}</mat-icon>\n      </ng-template>\n    </ngx-datatable-column>\n    <ngx-datatable-column name=\"Name\"></ngx-datatable-column>\n    <ngx-datatable-row-detail rowHeight=\"auto\">\n      <ng-template let-row=\"row\" ngx-datatable-row-detail-template>\n        <hi-resource-detail-for-instance\n          [clusterName]=\"clusterName\"\n          [instanceName]=\"instanceName\"\n          [resourceName]=\"row.name\"\n        >\n        </hi-resource-detail-for-instance>\n      </ng-template>\n    </ngx-datatable-row-detail>\n  </ngx-datatable>\n</section>\n"
        },
        {
            "name": "ResourceNodeViewerComponent",
            "id": "component-ResourceNodeViewerComponent-f044ade5926fa1e732b9f9a80e52be87d3517c472cc2549a1f057da78412af86454b311e4b823b495e0a0974605438fa4002a81486931968b54dce33147bddfb",
            "file": "src/app/resource/resource-node-viewer/resource-node-viewer.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-resource-node-viewer",
            "styleUrls": [
                "./resource-node-viewer.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./resource-node-viewer.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "obj",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "path",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "resource",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Resource",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "resourceName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 18
                }
            ],
            "methodsClass": [
                {
                    "name": "loadResource",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 42,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 29,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport * as _ from 'lodash';\n\nimport { Resource } from '../shared/resource.model';\nimport { HelperService } from '../../shared/helper.service';\nimport { ResourceService } from '../shared/resource.service';\n\n@Component({\n  selector: 'hi-resource-node-viewer',\n  templateUrl: './resource-node-viewer.component.html',\n  styleUrls: ['./resource-node-viewer.component.scss'],\n})\nexport class ResourceNodeViewerComponent implements OnInit {\n  isLoading = true;\n  clusterName: string;\n  resourceName: string;\n  resource: Resource;\n  path: string;\n  obj: any;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected service: ResourceService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.snapshot.data.path) {\n      this.path = this.route.snapshot.data.path;\n    }\n\n    if (this.route.parent) {\n      this.clusterName = this.route.parent.snapshot.params.cluster_name;\n      this.resourceName = this.route.parent.snapshot.params.resource_name;\n\n      this.loadResource();\n    }\n  }\n\n  protected loadResource() {\n    this.isLoading = true;\n    this.service.get(this.clusterName, this.resourceName).subscribe(\n      (resource) => {\n        this.resource = resource;\n        this.obj = _.get(this.resource, this.path);\n      },\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "",
                    "styleUrl": "./resource-node-viewer.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 21,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "ResourceService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section>\n  <hi-node-viewer [loadingIndicator]=\"isLoading\" [obj]=\"obj\"> </hi-node-viewer>\n</section>\n"
        },
        {
            "name": "StateLabelComponent",
            "id": "component-StateLabelComponent-3668b7fc81861c7916c3dad02f2e1c54061a6ec5502f0d434eeb3e15098241481cb3d9bf6fbeb92f90115678f76f26e8414be27290b0eaacf21aa2deae730afc",
            "file": "src/app/shared/state-label/state-label.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-state-label",
            "styleUrls": [
                "./state-label.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./state-label.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "isReady",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 10,
                    "type": "boolean",
                    "decorators": []
                },
                {
                    "name": "state",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 9,
                    "type": "string",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [],
            "methodsClass": [
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n  selector: 'hi-state-label',\n  templateUrl: './state-label.component.html',\n  styleUrls: ['./state-label.component.scss'],\n})\nexport class StateLabelComponent implements OnInit {\n  @Input() state: string;\n  @Input() isReady: boolean;\n\n  constructor() {}\n\n  ngOnInit() {}\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.state-label {\n  font-size: 12px;\n  padding: 4px;\n  border-radius: 6px;\n  border: 1px solid rgb(0, 0, 0);\n  margin-right: 10px;\n}\n\n.state-label-ready {\n  border-color: mat.get-color-from-palette(\n    mat.define-palette(mat.$blue-palette),\n    darker\n  );\n}\n\n.state-label-not-ready {\n  border-color: mat.get-color-from-palette(\n    mat.define-palette(mat.$grey-palette, 900, 900, 900),\n    darker\n  );\n}\n",
                    "styleUrl": "./state-label.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 10
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<span\n  [ngClass]=\"{\n    'state-label': true,\n    'state-label-ready': isReady,\n    'state-label-not-ready': isReady == false\n  }\"\n>\n  {{ state || 'NO STATE' }}\n</span>\n"
        },
        {
            "name": "WorkflowDagComponent",
            "id": "component-WorkflowDagComponent-797e158a7f7704c46df625b696ee8fdbbf4034825918a55010aa161276ce1bb493cc34094ccf239527c0e96e22bff990195dc665bcb028c2eca0b38ccc75e2f5",
            "file": "src/app/workflow/workflow-dag/workflow-dag.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-workflow-dag",
            "styleUrls": [
                "./workflow-dag.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./workflow-dag.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [
                {
                    "name": "workflow",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "line": 22,
                    "type": "Workflow",
                    "decorators": []
                }
            ],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "curve",
                    "defaultValue": "shape.curveLinear",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "data",
                    "defaultValue": "{\n    nodes: [],\n    links: [],\n  }",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "graph",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'graph', {static: true}"
                        }
                    ]
                },
                {
                    "name": "jobNameToId",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "view",
                    "defaultValue": "[800, 600]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 24
                }
            ],
            "methodsClass": [
                {
                    "name": "loadJobs",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngAfterViewInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 36,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import {\n  Component,\n  OnInit,\n  Input,\n  ElementRef,\n  AfterViewInit,\n  ViewChild,\n} from '@angular/core';\n\nimport * as shape from 'd3-shape';\nimport * as _ from 'lodash';\n\nimport { Workflow, Job } from '../shared/workflow.model';\n\n@Component({\n  selector: 'hi-workflow-dag',\n  templateUrl: './workflow-dag.component.html',\n  styleUrls: ['./workflow-dag.component.scss'],\n})\nexport class WorkflowDagComponent implements OnInit, AfterViewInit {\n  @Input()\n  workflow: Workflow;\n  curve: any = shape.curveLinear;\n  view = [800, 600];\n  data = {\n    nodes: [],\n    links: [],\n  };\n  jobNameToId = {};\n\n  @ViewChild('graph', { static: true })\n  graph;\n\n  constructor(protected el: ElementRef) {}\n\n  ngOnInit() {\n    this.loadJobs();\n  }\n\n  ngAfterViewInit() {\n    // console.log(this.el);\n    // console.log(this.graph);\n  }\n\n  protected loadJobs() {\n    // process nodes\n    _.forEach(this.workflow.jobs, (job: Job) => {\n      const newId = (this.data.nodes.length + 1).toString();\n\n      this.data.nodes.push({\n        id: newId,\n        label: job.name,\n        description: job.rawName,\n        state: job.state,\n      });\n      this.jobNameToId[job.name] = newId;\n    });\n\n    // process edges/links\n    _.forEach(this.workflow.jobs, (job: Job) => {\n      _.forEach(job.parents, (parentName) => {\n        this.data.links.push({\n          source: this.jobNameToId[parentName],\n          target: this.jobNameToId[job.name],\n        });\n      });\n    });\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.state-default {\n  fill: mat.get-color-from-palette(\n    mat.define-palette(mat.$deep-orange-palette)\n  );\n}\n\n.state-COMPLETED {\n  fill: mat.get-color-from-palette(mat.define-palette(mat.$green-palette));\n}\n\n.state-PENDING {\n  fill: mat.get-color-from-palette(mat.define-palette(mat.$grey-palette));\n}\n",
                    "styleUrl": "./workflow-dag.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "el",
                        "type": "ElementRef",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 32,
                "jsdoctags": [
                    {
                        "name": "el",
                        "type": "ElementRef",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit",
                "AfterViewInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<ngx-graph\n  #graph\n  class=\"chart-container\"\n  [view]=\"[(graph.graphDims.width * 2) / 3, graph.graphDims.height]\"\n  [links]=\"data.links\"\n  [nodes]=\"data.nodes\"\n  [curve]=\"curve\"\n  orientation=\"TB\"\n  [autoZoom]=\"false\"\n  [panningEnabled]=\"false\"\n  [draggingEnabled]=\"false\"\n  [minZoomLevel]=\"1\"\n  [maxZoomLevel]=\"1\"\n>\n  <ng-template #defsTemplate>\n    <svg:marker\n      id=\"arrow\"\n      viewBox=\"0 -5 10 10\"\n      refX=\"8\"\n      refY=\"0\"\n      markerWidth=\"4\"\n      markerHeight=\"4\"\n      orient=\"auto\"\n    >\n      <svg:path d=\"M0,-5L10,0L0,5\" class=\"arrow-head\" />\n    </svg:marker>\n  </ng-template>\n\n  <ng-template #nodeTemplate let-node>\n    <svg:g\n      class=\"node\"\n      ngx-tooltip\n      [tooltipPlacement]=\"'top'\"\n      [tooltipType]=\"'tooltip'\"\n      [tooltipTitle]=\"node.description\"\n    >\n      <svg:rect\n        [attr.width]=\"node.width\"\n        [attr.height]=\"node.height\"\n        [attr.fill]=\"node.options.color\"\n      />\n      <svg:text\n        alignment-baseline=\"central\"\n        [attr.x]=\"10\"\n        [attr.y]=\"node.height / 2\"\n      >\n        {{ node.label }}\n      </svg:text>\n      <svg:text\n        alignment-baseline=\"hanging\"\n        [attr.x]=\"node.width - 100\"\n        [attr.y]=\"node.height + 10\"\n        [ngClass]=\"'state-default state-' + node.state\"\n      >\n        {{ node.state }}\n      </svg:text>\n    </svg:g>\n  </ng-template>\n\n  <ng-template #linkTemplate let-link>\n    <svg:g class=\"edge\">\n      <svg:path\n        class=\"line\"\n        stroke-width=\"2\"\n        marker-end=\"url(#arrow)\"\n      ></svg:path>\n      <svg:text class=\"edge-label\" text-anchor=\"middle\">\n        <textPath\n          class=\"text-path\"\n          [attr.href]=\"'#' + link.id\"\n          [style.dominant-baseline]=\"link.dominantBaseline\"\n          startOffset=\"50%\"\n        >\n          {{ link.label }}\n        </textPath>\n      </svg:text>\n    </svg:g>\n  </ng-template>\n</ngx-graph>\n"
        },
        {
            "name": "WorkflowDetailComponent",
            "id": "component-WorkflowDetailComponent-a14d691f9025248b8a90caf85434206ba4bd5070c82766590e0c2ddfbf9e1d346d3a2743fd73b5a535008b1f3bc92164480cd56f3a015a4be1a0872017284084",
            "file": "src/app/workflow/workflow-detail/workflow-detail.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-workflow-detail",
            "styleUrls": [
                "./workflow-detail.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./workflow-detail.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "can",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "workflow",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Workflow",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "workflowName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 17
                }
            ],
            "methodsClass": [
                {
                    "name": "loadWorkflow",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        122
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "resumeWorkflow",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 45,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "stopWorkflow",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 35,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Workflow } from '../shared/workflow.model';\nimport { WorkflowService } from '../shared/workflow.service';\nimport { HelperService } from '../../shared/helper.service';\n\n@Component({\n  selector: 'hi-workflow-detail',\n  templateUrl: './workflow-detail.component.html',\n  styleUrls: ['./workflow-detail.component.scss'],\n})\nexport class WorkflowDetailComponent implements OnInit {\n  isLoading = true;\n  workflow: Workflow;\n  clusterName: string;\n  workflowName: string;\n  can = false;\n\n  constructor(\n    protected route: ActivatedRoute,\n    protected service: WorkflowService,\n    protected helper: HelperService\n  ) {}\n\n  ngOnInit() {\n    this.clusterName = this.route.snapshot.params['cluster_name'];\n    this.workflowName = this.route.snapshot.params['workflow_name'];\n\n    this.service.can().subscribe((data) => (this.can = data));\n\n    this.loadWorkflow();\n  }\n\n  stopWorkflow() {\n    this.service.stop(this.clusterName, this.workflowName).subscribe(\n      () => {\n        this.helper.showSnackBar('Pause command sent.');\n        this.loadWorkflow();\n      },\n      (error) => this.helper.showError(error)\n    );\n  }\n\n  resumeWorkflow() {\n    this.service.resume(this.clusterName, this.workflowName).subscribe(\n      () => {\n        this.helper.showSnackBar('Resume command sent.');\n        this.loadWorkflow();\n      },\n      (error) => this.helper.showError(error)\n    );\n  }\n\n  protected loadWorkflow() {\n    this.isLoading = true;\n    this.service.get(this.clusterName, this.workflowName).subscribe(\n      (workflow) => (this.workflow = workflow),\n      (error) => this.helper.showError(error),\n      () => (this.isLoading = false)\n    );\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": "@use '@angular/material' as mat;\n\n.content {\n  padding: 20px;\n}\n\n.state-default {\n  color: mat.get-color-from-palette(\n    mat.define-palette(mat.$deep-orange-palette)\n  );\n}\n\n.state-COMPLETED {\n  color: mat.get-color-from-palette(mat.define-palette(mat.$green-palette));\n}\n\n.state-PENDING {\n  color: mat.get-color-from-palette(mat.define-palette(mat.$grey-palette));\n}\n",
                    "styleUrl": "./workflow-detail.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "service",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 18,
                "jsdoctags": [
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "service",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "helper",
                        "type": "HelperService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<mat-toolbar class=\"mat-elevation-z1\">\n  <mat-toolbar-row>\n    <hi-detail-header\n      [cluster]=\"clusterName\"\n      [workflow]=\"workflow?.name\"\n    ></hi-detail-header>\n    <hi-disabled-label\n      *ngIf=\"!isLoading && workflow.state !== 'IN_PROGRESS'\"\n      [text]=\"workflow.state\"\n    ></hi-disabled-label>\n  </mat-toolbar-row>\n  <mat-toolbar-row class=\"information\">\n    <a mat-mini-fab routerLink=\"../\"><mat-icon>arrow_back</mat-icon></a>\n    <hi-key-value-pairs [obj]=\"workflow\">\n      <hi-key-value-pair\n        name=\"Capacity\"\n        prop=\"config.capacity\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"Target State\"\n        prop=\"config.TargetState\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"Terminable\"\n        prop=\"config.Terminable\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"Parallel Jobs\"\n        prop=\"config.ParallelJobs\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair\n        name=\"Failure Threshold\"\n        prop=\"config.FailureThreshold\"\n      ></hi-key-value-pair>\n      <hi-key-value-pair name=\"Expiry\" prop=\"config.Expiry\"></hi-key-value-pair>\n    </hi-key-value-pairs>\n    <span fxFlex=\"1 1 auto\"></span>\n    <button mat-mini-fab *ngIf=\"can\" [matMenuTriggerFor]=\"menu\">\n      <mat-icon>menu</mat-icon>\n    </button>\n    <mat-menu #menu=\"matMenu\">\n      <button mat-menu-item (click)=\"stopWorkflow()\">\n        <mat-icon>pause_circle_outline</mat-icon>\n        <span>Pause this Workflow</span>\n      </button>\n      <button mat-menu-item (click)=\"resumeWorkflow()\">\n        <mat-icon>play_circle_outline</mat-icon>\n        <span>Resume this workflow</span>\n      </button>\n    </mat-menu>\n  </mat-toolbar-row>\n</mat-toolbar>\n<section fxLayout=\"column\" fxLayoutAlign=\"center center\">\n  <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n  <section\n    *ngIf=\"!isLoading\"\n    class=\"content\"\n    fxLayout=\"column\"\n    fxLayoutAlign=\"center center\"\n    fxLayoutGap=\"10px\"\n    fxFlexFill\n  >\n    <mat-button-toggle-group\n      #group=\"matButtonToggleGroup\"\n      [value]=\"'list'\"\n    >\n      <mat-button-toggle *ngIf=\"!workflow.isJobQueue\" value=\"graph\">\n        Graph View\n      </mat-button-toggle>\n      <mat-button-toggle value=\"list\"> List View </mat-button-toggle>\n      <mat-button-toggle value=\"json\"> JSON View </mat-button-toggle>\n    </mat-button-toggle-group>\n    <section\n      class=\"viewer\"\n      [ngSwitch]=\"group.value\"\n      fxLayout=\"column\"\n      fxLayoutAlign=\"center center\"\n      fxFill\n    >\n      <hi-workflow-dag\n        *ngSwitchCase=\"'graph'\"\n        [workflow]=\"workflow\"\n      ></hi-workflow-dag>\n      <hi-job-list\n        *ngSwitchCase=\"'list'\"\n        [jobs]=\"workflow.jobs\"\n        fxFill\n      ></hi-job-list>\n      <ngx-json-viewer\n        *ngSwitchCase=\"'json'\"\n        [json]=\"workflow.json\"\n        fxFill\n      ></ngx-json-viewer>\n    </section>\n  </section>\n</section>\n"
        },
        {
            "name": "WorkflowListComponent",
            "id": "component-WorkflowListComponent-eaf68edab8edbd12866f53e04eeee1fa5bb569710a581bcb44ee52e323af8e00fb81c5a4f81cbb51e0597bc48b1d21a6d324d0b79ed54b96cb2047b12e635a29",
            "file": "src/app/workflow/workflow-list/workflow-list.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "hi-workflow-list",
            "styleUrls": [
                "./workflow-list.component.scss"
            ],
            "styles": [],
            "templateUrl": [
                "./workflow-list.component.html"
            ],
            "viewProviders": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "clusterName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "headerHeight",
                    "defaultValue": "Settings.tableHeaderHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "isLoading",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "rowHeight",
                    "defaultValue": "Settings.tableRowHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "sorts",
                    "defaultValue": "[{ prop: 'name', dir: 'asc' }]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "optional": false,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "table",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DatatableComponent",
                    "optional": false,
                    "description": "",
                    "line": 19,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'workflowsTable', {static: false}"
                        }
                    ]
                },
                {
                    "name": "workflowRows",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "WorkflowRow[]",
                    "optional": false,
                    "description": "",
                    "line": 23
                }
            ],
            "methodsClass": [
                {
                    "name": "checkSelectable",
                    "args": [
                        {
                            "name": "_event",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 65,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "_event",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 36,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewChild } from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\n\nimport { Settings } from '../../core/settings';\nimport { WorkflowService } from '../shared/workflow.service';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\n\ntype WorkflowRow = {\n  name: string;\n};\n\n@Component({\n  selector: 'hi-workflow-list',\n  templateUrl: './workflow-list.component.html',\n  styleUrls: ['./workflow-list.component.scss'],\n})\nexport class WorkflowListComponent implements OnInit {\n  @ViewChild('workflowsTable', { static: false })\n  table: DatatableComponent;\n\n  isLoading = true;\n  clusterName: string;\n  workflowRows: WorkflowRow[];\n\n  headerHeight = Settings.tableHeaderHeight;\n  rowHeight = Settings.tableRowHeight;\n\n  sorts = [{ prop: 'name', dir: 'asc' }];\n\n  constructor(\n    private router: Router,\n    private route: ActivatedRoute,\n    private workflowService: WorkflowService\n  ) {}\n\n  ngOnInit() {\n    if (this.route.parent) {\n      this.isLoading = true;\n      this.clusterName = this.route.parent.snapshot.params['name'];\n\n      this.workflowService.getAll(this.clusterName).subscribe(\n        (workflows) => {\n          this.workflowRows = workflows.map((workflowName) => {\n            return {\n              name: workflowName,\n            };\n          });\n        },\n        (error) => {\n          // since rest API simply throws 404 instead of empty config when config is not initialized yet\n          // frontend has to treat 404 as normal result\n          if (error != 'Not Found') {\n            console.error(error);\n          }\n          this.isLoading = false;\n        },\n        () => (this.isLoading = false)\n      );\n    }\n  }\n\n  // Disable table row selection using the\n  // selectCheck option of the\n  // <ngx-datatable></ngx-datatable> element\n  checkSelectable(_event) {\n    return false;\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": [
                {
                    "data": ".empty {\n  padding: 20px;\n}\n",
                    "styleUrl": "./workflow-list.component.scss"
                }
            ],
            "stylesData": "",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "workflowService",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 28,
                "jsdoctags": [
                    {
                        "name": "router",
                        "type": "Router",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "route",
                        "type": "ActivatedRoute",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "workflowService",
                        "type": "WorkflowService",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "implements": [
                "OnInit"
            ],
            "templateData": "<!--\n  ~ Licensed to the Apache Software Foundation (ASF) under one\n  ~ or more contributor license agreements.  See the NOTICE file\n  ~ distributed with this work for additional information\n  ~ regarding copyright ownership.  The ASF licenses this file\n  ~ to you under the Apache License, Version 2.0 (the\n  ~ \"License\"); you may not use this file except in compliance\n  ~ with the License.  You may obtain a copy of the License at\n  ~\n  ~     http://www.apache.org/licenses/LICENSE-2.0\n  ~\n  ~ Unless required by applicable law or agreed to in writing,\n  ~ software distributed under the License is distributed on an\n  ~ \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n  ~ KIND, either express or implied.  See the License for the\n  ~ specific language governing permissions and limitations\n  ~ under the License.\n  -->\n\n<section fxLayout=\"column\" fxLayoutAlign=\"center center\">\n  <mat-spinner *ngIf=\"isLoading\"></mat-spinner>\n  <section fxFlexFill>\n    <section *ngIf=\"!isLoading && workflowRows.length == 0\" class=\"empty\">\n      There's no workflow here.\n    </section>\n    <section>\n      <ngx-datatable\n        #workflowsTable\n        class=\"material\"\n        [headerHeight]=\"headerHeight\"\n        [rowHeight]=\"rowHeight\"\n        columnMode=\"force\"\n        [footerHeight]=\"rowHeight\"\n        [rows]=\"workflowRows\"\n        [sorts]=\"sorts\"\n        [limit]=\"20\"\n        [selectCheck]=\"checkSelectable\"\n      >\n        <ngx-datatable-column\n          name=\"Workflow ID\"\n          prop=\"name\"\n          [resizeable]=\"true\"\n          [sortable]=\"true\"\n          [draggable]=\"false\"\n          [canAutoResize]=\"true\"\n        >\n          <ng-template let-row=\"row\" ngx-datatable-cell-template>\n            <a routerLink=\"{{row.name}}\">{{row.name}}</a>\n          </ng-template>\n        </ngx-datatable-column>\n        <ngx-datatable-row-detail rowHeight=\"auto\">\n          <ng-template let-row=\"row\" ngx-datatable-row-detail-template>\n          </ng-template>\n        </ngx-datatable-row-detail>\n        <ngx-datatable-footer>\n          <ng-template\n            ngx-datatable-footer-template\n            let-rowCount=\"rowCount\"\n            let-pageSize=\"pageSize\"\n            let-curPage=\"curPage\"\n          >\n            <section\n              class=\"footer\"\n              fxLayout=\"row\"\n              fxLayoutAlign=\"space-between center\"\n            >\n              <section>{{ rowCount }} total</section>\n              <section>\n                <datatable-pager\n                  [pagerLeftArrowIcon]=\"'datatable-icon-left'\"\n                  [pagerRightArrowIcon]=\"'datatable-icon-right'\"\n                  [pagerPreviousIcon]=\"'datatable-icon-prev'\"\n                  [pagerNextIcon]=\"'datatable-icon-skip'\"\n                  [page]=\"curPage\"\n                  [size]=\"pageSize\"\n                  [count]=\"rowCount\"\n                  [hidden]=\"!(rowCount / pageSize > 1)\"\n                  (change)=\"workflowsTable.onFooterPage($event)\"\n                >\n                </datatable-pager>\n              </section>\n            </section>\n          </ng-template>\n        </ngx-datatable-footer>\n      </ngx-datatable>\n    </section>\n  </section>\n</section>\n"
        }
    ],
    "modules": [
        {
            "name": "AppModule",
            "id": "module-AppModule-00115ad779e30a3f298b926bdfee0b0231dab37993f3d2fa69bdbbcd282df9abdc1459289cb6e34e22e0b1bc0d7a69a0bf8b2adfc07c8120b4640cbb5276f2c5",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/app.module.ts",
            "methods": [],
            "sourceCode": "import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\n\n// import { Angulartics2Module } from 'angulartics2';\n// import { Angulartics2Piwik } from 'angulartics2/piwik';\nimport { AppRoutingModule } from './app-routing.module';\nimport { CoreModule } from './core/core.module';\nimport { SharedModule } from './shared/shared.module';\nimport { ClusterModule } from './cluster/cluster.module';\nimport { ConfigurationModule } from './configuration/configuration.module';\nimport { InstanceModule } from './instance/instance.module';\nimport { ResourceModule } from './resource/resource.module';\nimport { ControllerModule } from './controller/controller.module';\nimport { HistoryModule } from './history/history.module';\nimport { AppComponent } from './app.component';\nimport { WorkflowModule } from './workflow/workflow.module';\nimport { ChooserModule } from './chooser/chooser.module';\nimport { DashboardModule } from './dashboard/dashboard.module';\n\n@NgModule({\n  declarations: [AppComponent],\n  imports: [\n    BrowserModule,\n    FormsModule,\n    HttpClientModule,\n    AppRoutingModule,\n    // Angulartics2Module.forRoot(),\n    CoreModule,\n    SharedModule,\n    ClusterModule,\n    ConfigurationModule,\n    InstanceModule,\n    ResourceModule,\n    ControllerModule,\n    HistoryModule,\n    WorkflowModule,\n    ChooserModule,\n    DashboardModule,\n  ],\n  providers: [],\n  bootstrap: [AppComponent],\n})\nexport class AppModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "AppComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "ChooserModule"
                        },
                        {
                            "name": "ClusterModule"
                        },
                        {
                            "name": "ConfigurationModule"
                        },
                        {
                            "name": "CoreModule"
                        },
                        {
                            "name": "DashboardModule"
                        },
                        {
                            "name": "HistoryModule"
                        },
                        {
                            "name": "InstanceModule"
                        },
                        {
                            "name": "ResourceModule"
                        },
                        {
                            "name": "SharedModule"
                        },
                        {
                            "name": "WorkflowModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": [
                        {
                            "name": "AppComponent"
                        }
                    ]
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "ChooserModule",
            "id": "module-ChooserModule-53d69d0f373712df08a9a12269682ed69ab67496c123c045e5397a3ef215a0b20c48f79928792550bb31a1371e253cfc03ed496ca03a5f8fde395481dedc78f5",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/chooser/chooser.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ChooserService } from './shared/chooser.service';\nimport { HelixListComponent } from './helix-list/helix-list.component';\n\n@NgModule({\n  imports: [CommonModule, SharedModule],\n  declarations: [HelixListComponent],\n  providers: [ChooserService],\n})\nexport class ChooserModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "ChooserService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "HelixListComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "ClusterModule",
            "id": "module-ClusterModule-20fc81e0e913fd0da9a57fdc2994ac39bda50fc1dde5c4c4b73f51b6f87724897be405741f77c3ef21e8ee10e0de19d864ea2fcfed2816e0aca7576eb310d489",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/cluster/cluster.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ClusterService } from './shared/cluster.service';\nimport { ClusterResolver } from './shared/cluster.resolver';\nimport { ClusterListComponent } from './cluster-list/cluster-list.component';\nimport { ClusterDetailComponent } from './cluster-detail/cluster-detail.component';\nimport { ClusterComponent } from './cluster.component';\n\n@NgModule({\n  imports: [CommonModule, HttpClientModule, SharedModule],\n  declarations: [\n    ClusterListComponent,\n    ClusterDetailComponent,\n    ClusterComponent,\n  ],\n  providers: [ClusterService, ClusterResolver],\n  exports: [ClusterListComponent, ClusterDetailComponent],\n})\nexport class ClusterModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "ClusterService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "ClusterComponent"
                        },
                        {
                            "name": "ClusterDetailComponent"
                        },
                        {
                            "name": "ClusterListComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": [
                        {
                            "name": "ClusterDetailComponent"
                        },
                        {
                            "name": "ClusterListComponent"
                        }
                    ]
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "ConfigurationModule",
            "id": "module-ConfigurationModule-6a7d32782cda718bbf1c50fb38dafb97f6cc1a7a04257080a990d1b76376989e55d975868c0ff68fa0929ec65748f3e5bc46b388fe3dbd033fae8a54cf0f21a5",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/configuration/configuration.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ConfigDetailComponent } from './config-detail/config-detail.component';\n\n@NgModule({\n  imports: [CommonModule, SharedModule],\n  declarations: [ConfigDetailComponent],\n  exports: [ConfigDetailComponent],\n})\nexport class ConfigurationModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "ConfigDetailComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": [
                        {
                            "name": "ConfigDetailComponent"
                        }
                    ]
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "ControllerModule",
            "id": "module-ControllerModule-4a07cbe7498b6c593705baa3f239f542d3f8ef86d23891bcb9c83cb06675e4cbf9126a23481172840989f7d319a7dd97d32b46a81b352856d27c520ef2fd7f71",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/controller/controller.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ControllerDetailComponent } from './controller-detail/controller-detail.component';\n\n@NgModule({\n  imports: [CommonModule, SharedModule],\n  declarations: [ControllerDetailComponent],\n})\nexport class ControllerModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "ControllerDetailComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "CoreModule",
            "id": "module-CoreModule-491f9be0219c8cc1bba70d3348d15babc1e3c2a4736fcb79dba92665a5db542ec836c3a5d9452d2da15e693c65c92ca8358022e7e19afcd6d0e7e20560d83074",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/core/core.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [],\n})\nexport class CoreModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": []
                },
                {
                    "type": "imports",
                    "elements": []
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "DashboardModule",
            "id": "module-DashboardModule-e2ef52cd945b4e54265cb6d5194eb22ecbb6e9dd4e01e8211347d7b9fb8c84d7515a74ffef09e7931ef500f5dd456b3d879c69d892af3db652a144ac0f7d585d",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/dashboard/dashboard.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { VisModule } from 'ngx-vis';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { DashboardComponent } from './dashboard.component';\n\n@NgModule({\n  imports: [CommonModule, SharedModule, VisModule, NgxChartsModule],\n  declarations: [DashboardComponent],\n})\nexport class DashboardModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "DashboardComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "HistoryModule",
            "id": "module-HistoryModule-7fcd15766edbbe583f7296fbadf420286043f9f992f54c4a6bd459c9a0a390d52da0660c6b21e1ec2c503380e59e6e8e58bfd13b1ed5e8c38f47f403a9cbe9a3",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/history/history.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { ClipboardModule } from 'ngx-clipboard';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { HistoryListComponent } from './history-list/history-list.component';\n\n@NgModule({\n  imports: [CommonModule, NgxDatatableModule, ClipboardModule, SharedModule],\n  declarations: [HistoryListComponent],\n})\nexport class HistoryModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "HistoryListComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "InstanceModule",
            "id": "module-InstanceModule-e64f5c82060cbce58269ff82020d26ae6f22a0aa703dd6e30e34ae17f615964c3419dc7de90bc80753e8d8ae1be707d5d77fe792a85c0c098e8344c8f7e13aa9",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/instance/instance.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { InstanceService } from './shared/instance.service';\nimport { InstanceListComponent } from './instance-list/instance-list.component';\nimport { InstanceDetailComponent } from './instance-detail/instance-detail.component';\n\n@NgModule({\n  imports: [CommonModule, NgxDatatableModule, SharedModule],\n  declarations: [InstanceListComponent, InstanceDetailComponent],\n  providers: [InstanceService],\n})\nexport class InstanceModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "InstanceService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "InstanceDetailComponent"
                        },
                        {
                            "name": "InstanceListComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "MaterialModule",
            "id": "module-MaterialModule-65ee26417b707ee35c8c05c971669398b513f5d6f1fdcfb539e6636dbfe934d88a4f98cf166457dd780cd5b1b49bb4ee07ddf5b39be8732237a04bc11bcef7e6",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/shared/material.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\n@NgModule({\n  imports: [\n    BrowserAnimationsModule,\n    MatButtonModule,\n    MatButtonToggleModule,\n    MatCardModule,\n    MatCheckboxModule,\n    MatToolbarModule,\n    MatTooltipModule,\n    MatDialogModule,\n    MatSnackBarModule,\n    MatSlideToggleModule,\n    MatInputModule,\n    MatIconModule,\n    MatProgressBarModule,\n    MatProgressSpinnerModule,\n    MatSidenavModule,\n    MatListModule,\n    MatMenuModule,\n    MatTabsModule,\n    MatExpansionModule,\n  ],\n  exports: [\n    BrowserAnimationsModule,\n    MatButtonModule,\n    MatButtonToggleModule,\n    MatCardModule,\n    MatCheckboxModule,\n    MatToolbarModule,\n    MatTooltipModule,\n    MatDialogModule,\n    MatSnackBarModule,\n    MatSlideToggleModule,\n    MatInputModule,\n    MatIconModule,\n    MatProgressBarModule,\n    MatProgressSpinnerModule,\n    MatSidenavModule,\n    MatListModule,\n    MatMenuModule,\n    MatTabsModule,\n    MatExpansionModule,\n  ],\n})\nexport class MaterialModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": []
                },
                {
                    "type": "imports",
                    "elements": []
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "ResourceModule",
            "id": "module-ResourceModule-eceaee213440bf988e009aab19d868921a35f5fa5bb2c9df806a47ea6ea094f137bcfc98bac502a02855920bae3dadfeeb48f620c1f1b3f1ddf8be8d5d262a8b",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/resource/resource.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\n\nimport { SharedModule } from '../shared/shared.module';\nimport { ResourceService } from './shared/resource.service';\nimport { ResourceResolver } from './shared/resource.resolver';\nimport { ResourceListComponent } from './resource-list/resource-list.component';\nimport { ResourceDetailComponent } from './resource-detail/resource-detail.component';\nimport { ResourceDetailForInstanceComponent } from './resource-detail-for-instance/resource-detail-for-instance.component';\nimport { PartitionListComponent } from './partition-list/partition-list.component';\nimport { PartitionDetailComponent } from './partition-detail/partition-detail.component';\nimport { ResourceNodeViewerComponent } from './resource-node-viewer/resource-node-viewer.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    NgxDatatableModule,\n    NgxJsonViewerModule,\n    SharedModule,\n  ],\n  providers: [ResourceService, ResourceResolver],\n  declarations: [\n    ResourceListComponent,\n    ResourceDetailComponent,\n    ResourceDetailForInstanceComponent,\n    PartitionListComponent,\n    PartitionDetailComponent,\n    ResourceNodeViewerComponent,\n  ],\n})\nexport class ResourceModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "ResourceService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "PartitionDetailComponent"
                        },
                        {
                            "name": "PartitionListComponent"
                        },
                        {
                            "name": "ResourceDetailComponent"
                        },
                        {
                            "name": "ResourceDetailForInstanceComponent"
                        },
                        {
                            "name": "ResourceListComponent"
                        },
                        {
                            "name": "ResourceNodeViewerComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "SharedModule",
            "id": "module-SharedModule-07d08216bfdcb1846358d47d243d79abe1940067b99e4620b47096c8dd704c4ec02f611c1a88e443809e418d41e861c48c8e069e2ad664c1d57c895e303dfdd8",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/shared/shared.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\n\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { NgxJsonViewerModule } from 'ngx-json-viewer';\nimport { AceEditorModule } from 'ng2-ace-editor';\n\nimport { MaterialModule } from './material.module';\nimport { HelperService } from './helper.service';\nimport { InputDialogComponent } from './dialog/input-dialog/input-dialog.component';\nimport { DetailHeaderComponent } from './detail-header/detail-header.component';\nimport {\n  KeyValuePairDirective,\n  KeyValuePairsComponent,\n} from './key-value-pairs/key-value-pairs.component';\nimport { JsonViewerComponent } from './json-viewer/json-viewer.component';\nimport { AlertDialogComponent } from './dialog/alert-dialog/alert-dialog.component';\nimport { StateLabelComponent } from './state-label/state-label.component';\nimport { NodeViewerComponent } from './node-viewer/node-viewer.component';\nimport { InputInlineComponent } from './input-inline/input-inline.component';\nimport { DataTableComponent } from './data-table/data-table.component';\nimport { ConfirmDialogComponent } from './dialog/confirm-dialog/confirm-dialog.component';\nimport { DisabledLabelComponent } from './disabled-label/disabled-label.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    RouterModule,\n    MaterialModule,\n    FlexLayoutModule,\n    FormsModule,\n    NgxDatatableModule,\n    NgxJsonViewerModule,\n    AceEditorModule,\n  ],\n  declarations: [\n    InputDialogComponent,\n    AlertDialogComponent,\n    DetailHeaderComponent,\n    KeyValuePairDirective,\n    KeyValuePairsComponent,\n    JsonViewerComponent,\n    StateLabelComponent,\n    NodeViewerComponent,\n    InputInlineComponent,\n    DataTableComponent,\n    ConfirmDialogComponent,\n    DisabledLabelComponent,\n  ],\n  exports: [\n    RouterModule,\n    MaterialModule,\n    FlexLayoutModule,\n    FormsModule,\n    NgxJsonViewerModule,\n    DetailHeaderComponent,\n    KeyValuePairDirective,\n    KeyValuePairsComponent,\n    JsonViewerComponent,\n    StateLabelComponent,\n    NodeViewerComponent,\n    DisabledLabelComponent,\n  ],\n  providers: [HelperService],\n})\nexport class SharedModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "HelperService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "AlertDialogComponent"
                        },
                        {
                            "name": "ConfirmDialogComponent"
                        },
                        {
                            "name": "DataTableComponent"
                        },
                        {
                            "name": "DetailHeaderComponent"
                        },
                        {
                            "name": "DisabledLabelComponent"
                        },
                        {
                            "name": "InputDialogComponent"
                        },
                        {
                            "name": "InputInlineComponent"
                        },
                        {
                            "name": "JsonViewerComponent"
                        },
                        {
                            "name": "KeyValuePairDirective"
                        },
                        {
                            "name": "KeyValuePairsComponent"
                        },
                        {
                            "name": "NodeViewerComponent"
                        },
                        {
                            "name": "StateLabelComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "MaterialModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": [
                        {
                            "name": "DetailHeaderComponent"
                        },
                        {
                            "name": "DisabledLabelComponent"
                        },
                        {
                            "name": "JsonViewerComponent"
                        },
                        {
                            "name": "KeyValuePairDirective"
                        },
                        {
                            "name": "KeyValuePairsComponent"
                        },
                        {
                            "name": "MaterialModule"
                        },
                        {
                            "name": "NodeViewerComponent"
                        },
                        {
                            "name": "StateLabelComponent"
                        }
                    ]
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "TestingModule",
            "id": "module-TestingModule-0b0e48cee7c40f8e60a36fcdd76dad655b1cde790ae34ec5946a0cc6eadc48e9e05717aff6236714fec246ef2111b21cd9f212c1a9e9e7d02711154c76351bd6",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/testing/testing.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { HttpClientModule } from '@angular/common/http';\nimport { MaterialModule } from '../app/shared/material.module';\nimport { RouterTestingModule } from '@angular/router/testing';\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\n\nimport { HelperService } from '../app/shared/helper.service';\nimport { HelperServiceStub } from './stubs';\n\n@NgModule({\n  imports: [\n    HttpClientModule,\n    MaterialModule,\n    RouterTestingModule,\n    NoopAnimationsModule,\n  ],\n  providers: [\n    {\n      provide: HelperService,\n      useValue: HelperServiceStub,\n    },\n  ],\n  exports: [\n    HttpClientModule,\n    MaterialModule,\n    RouterTestingModule,\n    NoopAnimationsModule,\n  ],\n})\nexport class TestingModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": []
                },
                {
                    "type": "declarations",
                    "elements": []
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "MaterialModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": [
                        {
                            "name": "MaterialModule"
                        }
                    ]
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        },
        {
            "name": "WorkflowModule",
            "id": "module-WorkflowModule-e5885878f7308be21c393d3489b4876e80e02e204744631d7751191f875f9c7d7662b11ef38215101c57ab6cf0918e09f862529c3fb1030abd3b39643a3c7e9f",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "src/app/workflow/workflow.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\nimport { NgxGraphModule } from '@swimlane/ngx-graph';\n\nimport { WorkflowListComponent } from './workflow-list/workflow-list.component';\nimport { WorkflowService } from './shared/workflow.service';\nimport { JobService } from './shared/job.service';\nimport { SharedModule } from '../shared/shared.module';\nimport { WorkflowDetailComponent } from './workflow-detail/workflow-detail.component';\nimport { WorkflowDagComponent } from './workflow-dag/workflow-dag.component';\nimport { JobListComponent } from './job-list/job-list.component';\nimport { JobDetailComponent } from './job-detail/job-detail.component';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    SharedModule,\n    NgxDatatableModule,\n    NgxChartsModule,\n    NgxGraphModule,\n  ],\n  providers: [WorkflowService, JobService],\n  declarations: [\n    WorkflowListComponent,\n    WorkflowDetailComponent,\n    WorkflowDagComponent,\n    JobListComponent,\n    JobDetailComponent,\n  ],\n})\nexport class WorkflowModule {}\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "JobService"
                        },
                        {
                            "name": "WorkflowService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "JobDetailComponent"
                        },
                        {
                            "name": "JobListComponent"
                        },
                        {
                            "name": "WorkflowDagComponent"
                        },
                        {
                            "name": "WorkflowDetailComponent"
                        },
                        {
                            "name": "WorkflowListComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": [
                        {
                            "name": "SharedModule"
                        }
                    ]
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": []
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        }
    ],
    "miscellaneous": {
        "variables": [
            {
                "name": "app",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/app.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "express()"
            },
            {
                "name": "AppRoutingModule",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/app-routing.module.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "ModuleWithProviders<RouterModule>",
                "defaultValue": "RouterModule.forRoot(HELIX_ROUTES, { relativeLinkResolution: 'legacy' })"
            },
            {
                "name": "clusterName",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'cluster1'"
            },
            {
                "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "any",
                "defaultValue": "{}",
                "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
                "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
            },
            {
                "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "any",
                "defaultValue": "{}",
                "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
                "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
            },
            {
                "name": "Default",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "Delete",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "Empty",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "environment",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/environments/environment.prod.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  production: true,\n}"
            },
            {
                "name": "environment",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/environments/environment.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  production: false,\n  piwik: {\n    url: '//vxu-ld1.linkedin.biz/piwik/',\n    id: '3',\n  },\n}"
            },
            {
                "name": "HELIX_ENDPOINTS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  helix: [\n    {\n      default: 'http://localhost:8100/admin/v2',\n    },\n  ],\n}"
            },
            {
                "name": "HELIX_ENDPOINTS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  helix: [\n    {\n      default: 'http://localhost:8100/admin/v2',\n    },\n  ],\n}"
            },
            {
                "name": "HelperServiceStub",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/testing/stubs.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  showError: (message: string) => {},\n  showSnackBar: (message: string) => {},\n  showConfirmation: (message: string): Promise<boolean> =>\n    new Promise<boolean>((f) => f(false)),\n}"
            },
            {
                "name": "IDENTITY_TOKEN_SOURCE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string | undefined",
                "defaultValue": "undefined",
                "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
                "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
            },
            {
                "name": "IDENTITY_TOKEN_SOURCE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string | undefined",
                "defaultValue": "undefined",
                "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
                "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
            },
            {
                "name": "LDAP",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  uri: 'ldap://example.com',\n  base: 'DC=example,DC=com',\n  principalSuffix: '@example.com',\n  adminGroup: 'admin',\n}"
            },
            {
                "name": "LDAP",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  uri: 'ldap://example.com',\n  base: 'DC=example,DC=com',\n  principalSuffix: '@example.com',\n  adminGroup: 'admin',\n}"
            },
            {
                "name": "Leader",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/state-label/state-label.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "Loading",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "Offline",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/state-label/state-label.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "server",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/app.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "http.createServer(app)"
            },
            {
                "name": "SESSION_STORE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "undefined"
            },
            {
                "name": "SESSION_STORE",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "undefined"
            },
            {
                "name": "SSL",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  port: 0,\n  keyfile: '',\n  certfile: '',\n  passfile: '',\n  cafiles: [],\n}"
            },
            {
                "name": "SSL",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n  port: 0,\n  keyfile: '',\n  certfile: '',\n  passfile: '',\n  cafiles: [],\n}"
            },
            {
                "name": "Standby",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/state-label/state-label.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "",
                "defaultValue": "Template.bind({})"
            },
            {
                "name": "Template",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/state-label/state-label.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Story",
                "defaultValue": "(args: any) => ({\n  props: {\n    ...args,\n  },\n  template: `\n  <hi-state-label [state]=\"state\" [isReady]=\"isReady\"></hi-state-label>\n  `,\n})"
            },
            {
                "name": "Template",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Story",
                "defaultValue": "(args: any) => ({\n  props: {\n    ...args,\n  },\n  template: `\n  <div>Workflow List</div>\n  <span>There's no workflow here.</span>\n  <hi-workflow-list [workflowRows]=\"workflowRows\" [clusterName]=\"clusterName\" [isLoading]=\"isLoading\"></hi-workflow-list>\n   <router-outlet></router-outlet>\n`,\n})"
            },
            {
                "name": "Template",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Story",
                "defaultValue": "(args) => ({\n  component: ConfirmDialogTestComponent,\n  template: `<hi-confirm-dialog-test [data]=\"data\"></hi-confirm-dialog-test>`,\n  props: {\n    ...args,\n  },\n})"
            },
            {
                "name": "TOKEN_EXPIRATION_KEY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'expires'",
                "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
                "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
            },
            {
                "name": "TOKEN_EXPIRATION_KEY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'expires'",
                "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
                "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
            },
            {
                "name": "TOKEN_RESPONSE_KEY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.example.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'token'",
                "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
                "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
            },
            {
                "name": "TOKEN_RESPONSE_KEY",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "server/config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "string",
                "defaultValue": "'token'",
                "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
                "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
            },
            {
                "name": "workflowRows",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "[]",
                "defaultValue": "[{ name: 'workflow1' }]"
            }
        ],
        "functions": [
            {
                "name": "setRoutes",
                "file": "server/routes.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "app",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "jsdoctags": [
                    {
                        "name": "app",
                        "type": "",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        ],
        "typealiases": [
            {
                "name": "AgentOptions",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "server/controllers/d.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 181
            },
            {
                "name": "HelixRequestOptions",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "server/controllers/d.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 181
            },
            {
                "name": "IdealState",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "src/app/shared/node-viewer/node-viewer.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 181
            },
            {
                "name": "WorkflowRow",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "src/app/workflow/workflow-list/workflow-list.component.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 181
            }
        ],
        "enumerations": [],
        "groupedVariables": {
            "server/app.ts": [
                {
                    "name": "app",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/app.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "express()"
                },
                {
                    "name": "server",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/app.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "http.createServer(app)"
                }
            ],
            "src/app/app-routing.module.ts": [
                {
                    "name": "AppRoutingModule",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/app-routing.module.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ModuleWithProviders<RouterModule>",
                    "defaultValue": "RouterModule.forRoot(HELIX_ROUTES, { relativeLinkResolution: 'legacy' })"
                }
            ],
            "src/app/workflow/workflow-list/workflow-list.stories.ts": [
                {
                    "name": "clusterName",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'cluster1'"
                },
                {
                    "name": "Default",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Empty",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Loading",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Template",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Story",
                    "defaultValue": "(args: any) => ({\n  props: {\n    ...args,\n  },\n  template: `\n  <div>Workflow List</div>\n  <span>There's no workflow here.</span>\n  <hi-workflow-list [workflowRows]=\"workflowRows\" [clusterName]=\"clusterName\" [isLoading]=\"isLoading\"></hi-workflow-list>\n   <router-outlet></router-outlet>\n`,\n})"
                },
                {
                    "name": "workflowRows",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "[]",
                    "defaultValue": "[{ name: 'workflow1' }]"
                }
            ],
            "server/config.example.ts": [
                {
                    "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "defaultValue": "{}",
                    "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
                    "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
                },
                {
                    "name": "HELIX_ENDPOINTS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  helix: [\n    {\n      default: 'http://localhost:8100/admin/v2',\n    },\n  ],\n}"
                },
                {
                    "name": "IDENTITY_TOKEN_SOURCE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "defaultValue": "undefined",
                    "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
                    "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
                },
                {
                    "name": "LDAP",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  uri: 'ldap://example.com',\n  base: 'DC=example,DC=com',\n  principalSuffix: '@example.com',\n  adminGroup: 'admin',\n}"
                },
                {
                    "name": "SESSION_STORE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "undefined"
                },
                {
                    "name": "SSL",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  port: 0,\n  keyfile: '',\n  certfile: '',\n  passfile: '',\n  cafiles: [],\n}"
                },
                {
                    "name": "TOKEN_EXPIRATION_KEY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'expires'",
                    "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
                    "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
                },
                {
                    "name": "TOKEN_RESPONSE_KEY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.example.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'token'",
                    "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
                    "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
                }
            ],
            "server/config.ts": [
                {
                    "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "defaultValue": "{}",
                    "rawdescription": "Any custom object that you would like\nto include in the body of the request\nto your custom identity source.",
                    "description": "<p>Any custom object that you would like\nto include in the body of the request\nto your custom identity source.</p>\n"
                },
                {
                    "name": "HELIX_ENDPOINTS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  helix: [\n    {\n      default: 'http://localhost:8100/admin/v2',\n    },\n  ],\n}"
                },
                {
                    "name": "IDENTITY_TOKEN_SOURCE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | undefined",
                    "defaultValue": "undefined",
                    "rawdescription": "The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.",
                    "description": "<p>The url of your Identity Token API.\nThis an API that should expect LDAP credentials\nand if the LDAP credentials are valid\nrespond with a unique token of some kind.</p>\n"
                },
                {
                    "name": "LDAP",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  uri: 'ldap://example.com',\n  base: 'DC=example,DC=com',\n  principalSuffix: '@example.com',\n  adminGroup: 'admin',\n}"
                },
                {
                    "name": "SESSION_STORE",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "undefined"
                },
                {
                    "name": "SSL",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  port: 0,\n  keyfile: '',\n  certfile: '',\n  passfile: '',\n  cafiles: [],\n}"
                },
                {
                    "name": "TOKEN_EXPIRATION_KEY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'expires'",
                    "rawdescription": "This is the key that helix-front uses\nto access the token expiration datetime",
                    "description": "<p>This is the key that helix-front uses\nto access the token expiration datetime</p>\n"
                },
                {
                    "name": "TOKEN_RESPONSE_KEY",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "server/config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "defaultValue": "'token'",
                    "rawdescription": "This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.",
                    "description": "<p>This is the key that helix-front uses\nto access the token itself\nfrom the custom identity token response\nsent by your Identity Token API.</p>\n"
                }
            ],
            "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts": [
                {
                    "name": "Delete",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Template",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Story",
                    "defaultValue": "(args) => ({\n  component: ConfirmDialogTestComponent,\n  template: `<hi-confirm-dialog-test [data]=\"data\"></hi-confirm-dialog-test>`,\n  props: {\n    ...args,\n  },\n})"
                }
            ],
            "src/environments/environment.prod.ts": [
                {
                    "name": "environment",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/environments/environment.prod.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  production: true,\n}"
                }
            ],
            "src/environments/environment.ts": [
                {
                    "name": "environment",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/environments/environment.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  production: false,\n  piwik: {\n    url: '//vxu-ld1.linkedin.biz/piwik/',\n    id: '3',\n  },\n}"
                }
            ],
            "src/testing/stubs.ts": [
                {
                    "name": "HelperServiceStub",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/testing/stubs.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n  showError: (message: string) => {},\n  showSnackBar: (message: string) => {},\n  showConfirmation: (message: string): Promise<boolean> =>\n    new Promise<boolean>((f) => f(false)),\n}"
                }
            ],
            "src/app/shared/state-label/state-label.stories.ts": [
                {
                    "name": "Leader",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/state-label/state-label.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Offline",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/state-label/state-label.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Standby",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/state-label/state-label.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "",
                    "defaultValue": "Template.bind({})"
                },
                {
                    "name": "Template",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "src/app/shared/state-label/state-label.stories.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Story",
                    "defaultValue": "(args: any) => ({\n  props: {\n    ...args,\n  },\n  template: `\n  <hi-state-label [state]=\"state\" [isReady]=\"isReady\"></hi-state-label>\n  `,\n})"
                }
            ]
        },
        "groupedFunctions": {
            "server/routes.ts": [
                {
                    "name": "setRoutes",
                    "file": "server/routes.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "app",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "jsdoctags": [
                        {
                            "name": "app",
                            "type": "",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ]
        },
        "groupedEnumerations": {},
        "groupedTypeAliases": {
            "server/controllers/d.ts": [
                {
                    "name": "AgentOptions",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "server/controllers/d.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 181
                },
                {
                    "name": "HelixRequestOptions",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "server/controllers/d.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 181
                }
            ],
            "src/app/shared/node-viewer/node-viewer.component.ts": [
                {
                    "name": "IdealState",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "src/app/shared/node-viewer/node-viewer.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 181
                }
            ],
            "src/app/workflow/workflow-list/workflow-list.component.ts": [
                {
                    "name": "WorkflowRow",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "src/app/workflow/workflow-list/workflow-list.component.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 181
                }
            ]
        }
    },
    "routes": [],
    "coverage": {
        "count": 7,
        "status": "low",
        "files": [
            {
                "filePath": "server/app.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "app",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/app.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "server",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "HELIX_ENDPOINTS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "IDENTITY_TOKEN_SOURCE",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "LDAP",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SESSION_STORE",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SSL",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "TOKEN_EXPIRATION_KEY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.example.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "TOKEN_RESPONSE_KEY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "CUSTOM_IDENTITY_TOKEN_REQUEST_BODY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "HELIX_ENDPOINTS",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "IDENTITY_TOKEN_SOURCE",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "LDAP",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SESSION_STORE",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "SSL",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "TOKEN_EXPIRATION_KEY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/config.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "TOKEN_RESPONSE_KEY",
                "coveragePercent": 100,
                "coverageCount": "1/1",
                "status": "very-good"
            },
            {
                "filePath": "server/controllers/d.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HelixRequest",
                "coveragePercent": 0,
                "coverageCount": "0/2",
                "status": "low"
            },
            {
                "filePath": "server/controllers/d.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "HelixSession",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "server/controllers/helix.ts",
                "type": "class",
                "linktype": "classe",
                "name": "HelixCtrl",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "server/controllers/user.ts",
                "type": "class",
                "linktype": "classe",
                "name": "UserCtrl",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "server/routes.ts",
                "type": "function",
                "linktype": "miscellaneous",
                "linksubtype": "function",
                "name": "setRoutes",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/app-routing.module.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "AppRoutingModule",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/app.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AppComponent",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/chooser/helix-list/helix-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "HelixListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/chooser/shared/chooser.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ChooserService",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/cluster-detail/cluster-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ClusterDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/16",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/cluster-list/cluster-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ClusterListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/cluster.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ClusterComponent",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/shared/cluster.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Cluster",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/shared/cluster.resolver.ts",
                "type": "guard",
                "linktype": "guard",
                "name": "ClusterResolver",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/cluster/shared/cluster.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ClusterService",
                "coveragePercent": 0,
                "coverageCount": "0/18",
                "status": "low"
            },
            {
                "filePath": "src/app/configuration/config-detail/config-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ConfigDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/12",
                "status": "low"
            },
            {
                "filePath": "src/app/configuration/shared/configuration.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ConfigurationService",
                "coveragePercent": 0,
                "coverageCount": "0/18",
                "status": "low"
            },
            {
                "filePath": "src/app/controller/controller-detail/controller-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ControllerDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/controller/shared/controller.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Controller",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/controller/shared/controller.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ControllerService",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/core/helix.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "HelixService",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/core/settings.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Settings",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/core/user.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "UserService",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/dashboard/dashboard.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DashboardComponent",
                "coveragePercent": 0,
                "coverageCount": "0/23",
                "status": "low"
            },
            {
                "filePath": "src/app/history/history-list/history-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "HistoryListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/12",
                "status": "low"
            },
            {
                "filePath": "src/app/history/shared/history.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "History",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/history/shared/history.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "HistoryService",
                "coveragePercent": 0,
                "coverageCount": "0/12",
                "status": "low"
            },
            {
                "filePath": "src/app/instance/instance-detail/instance-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "InstanceDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/13",
                "status": "low"
            },
            {
                "filePath": "src/app/instance/instance-list/instance-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "InstanceListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/instance/shared/instance.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Instance",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/instance/shared/instance.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "InstanceService",
                "coveragePercent": 0,
                "coverageCount": "0/15",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/partition-detail/partition-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "PartitionDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/7",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/partition-list/partition-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "PartitionListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/15",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/resource-detail-for-instance/resource-detail-for-instance.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ResourceDetailForInstanceComponent",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/resource-detail/resource-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ResourceDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/13",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/resource-list/resource-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ResourceListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/14",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/resource-node-viewer/resource-node-viewer.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ResourceNodeViewerComponent",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/shared/resource.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Partition",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/shared/resource.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Resource",
                "coveragePercent": 0,
                "coverageCount": "0/13",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/shared/resource.model.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "IReplica",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/shared/resource.resolver.ts",
                "type": "guard",
                "linktype": "guard",
                "name": "ResourceResolver",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/resource/shared/resource.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "ResourceService",
                "coveragePercent": 0,
                "coverageCount": "0/17",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/data-table/data-table.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DataTableComponent",
                "coveragePercent": 0,
                "coverageCount": "0/16",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/detail-header/detail-header.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DetailHeaderComponent",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/alert-dialog/alert-dialog.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "AlertDialogComponent",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog-test.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ConfirmDialogTestComponent",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "ConfirmDialogComponent",
                "coveragePercent": 0,
                "coverageCount": "0/8",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Delete",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/confirm-dialog/confirm-dialog.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Template",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/dialog/input-dialog/input-dialog.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "InputDialogComponent",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/disabled-label/disabled-label.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "DisabledLabelComponent",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/helper.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "HelperService",
                "coveragePercent": 0,
                "coverageCount": "0/6",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/input-inline/input-inline.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "InputInlineComponent",
                "coveragePercent": 0,
                "coverageCount": "0/31",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/json-viewer/json-viewer.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "JsonViewerComponent",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/key-value-pairs/key-value-pairs.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "KeyValuePairsComponent",
                "coveragePercent": 0,
                "coverageCount": "0/4",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/key-value-pairs/key-value-pairs.component.ts",
                "type": "directive",
                "linktype": "directive",
                "name": "KeyValuePairDirective",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/models/node.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Node",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/models/node.model.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "ListFieldObject",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/models/node.model.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "MapFieldObject",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/models/node.model.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "Payload",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/models/node.model.ts",
                "type": "interface",
                "linktype": "interface",
                "name": "SimpleFieldObject",
                "coveragePercent": 0,
                "coverageCount": "0/3",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/node-viewer/node-viewer.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "NodeViewerComponent",
                "coveragePercent": 0,
                "coverageCount": "0/33",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/state-label/state-label.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "StateLabelComponent",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/state-label/state-label.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Leader",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/state-label/state-label.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Offline",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/state-label/state-label.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Standby",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/shared/state-label/state-label.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Template",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/job-detail/job-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "JobDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/5",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/job-list/job-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "JobListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/shared/job.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "JobService",
                "coveragePercent": 0,
                "coverageCount": "0/10",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/shared/workflow.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Job",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/shared/workflow.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Task",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/shared/workflow.model.ts",
                "type": "class",
                "linktype": "classe",
                "name": "Workflow",
                "coveragePercent": 0,
                "coverageCount": "0/9",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/shared/workflow.service.ts",
                "type": "injectable",
                "linktype": "injectable",
                "name": "WorkflowService",
                "coveragePercent": 0,
                "coverageCount": "0/13",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-dag/workflow-dag.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "WorkflowDagComponent",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-detail/workflow-detail.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "WorkflowDetailComponent",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.component.ts",
                "type": "component",
                "linktype": "component",
                "name": "WorkflowListComponent",
                "coveragePercent": 0,
                "coverageCount": "0/11",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "clusterName",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Default",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Empty",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Loading",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "Template",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/app/workflow/workflow-list/workflow-list.stories.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "workflowRows",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/environments/environment.prod.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "environment",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/environments/environment.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "environment",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            },
            {
                "filePath": "src/testing/stubs.ts",
                "type": "variable",
                "linktype": "miscellaneous",
                "linksubtype": "variable",
                "name": "HelperServiceStub",
                "coveragePercent": 0,
                "coverageCount": "0/1",
                "status": "low"
            }
        ]
    }
}