ato-water-lib 0.0.7 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/ato-water-lib.module.mjs +6 -6
- package/esm2020/lib/components/flow-diagram-lib/flow-diagram-lib.component.mjs +71 -0
- package/esm2020/lib/constants/applicable-prefixes-const.mjs +441 -0
- package/esm2020/lib/constants/key.const.mjs +4 -0
- package/esm2020/lib/constants/plant.constant.mjs +51 -0
- package/esm2020/lib/constants/value.const.mjs +782 -0
- package/esm2020/lib/models/default-gojs-editor.model.mjs +3182 -0
- package/esm2020/lib/models/gojs-editor.model.mjs +1743 -0
- package/esm2020/lib/services/utils/utils.service.mjs +133 -0
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/ato-water-lib.mjs +6421 -12
- package/fesm2015/ato-water-lib.mjs.map +1 -1
- package/fesm2020/ato-water-lib.mjs +6392 -12
- package/fesm2020/ato-water-lib.mjs.map +1 -1
- package/lib/ato-water-lib.module.d.ts +2 -2
- package/lib/components/flow-diagram-lib/flow-diagram-lib.component.d.ts +17 -0
- package/lib/constants/applicable-prefixes-const.d.ts +162 -0
- package/lib/constants/key.const.d.ts +1 -0
- package/lib/constants/plant.constant.d.ts +7 -0
- package/lib/constants/value.const.d.ts +71 -0
- package/lib/models/default-gojs-editor.model.d.ts +184 -0
- package/lib/models/gojs-editor.model.d.ts +432 -0
- package/lib/services/utils/utils.service.d.ts +24 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -1
- package/esm2020/lib/test-button/test-button.component.mjs +0 -11
- package/lib/test-button/test-button.component.d.ts +0 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ato-water-lib.mjs","sources":["../../../projects/ato-water-lib/src/lib/ato-water-lib.service.ts","../../../projects/ato-water-lib/src/lib/ato-water-lib.component.ts","../../../projects/ato-water-lib/src/lib/test-button/test-button.component.ts","../../../projects/ato-water-lib/src/lib/test-button/test-button.component.html","../../../projects/ato-water-lib/src/lib/ato-water-lib.module.ts","../../../projects/ato-water-lib/src/public-api.ts","../../../projects/ato-water-lib/src/ato-water-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AtoWaterLibService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ato-water-lib',\n template: `\n <p>\n ato-water-lib works!\n </p>\n `,\n styles: [\n ]\n})\nexport class AtoWaterLibComponent {\n\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'ato-test-button',\n templateUrl: './test-button.component.html',\n styleUrls: ['./test-button.component.css']\n})\nexport class TestButtonComponent {\n\n}\n","<p>test-button works!</p>\n","import { NgModule } from '@angular/core';\nimport { AtoWaterLibComponent } from './ato-water-lib.component';\nimport { TestButtonComponent } from './test-button/test-button.component';\n\n\n\n@NgModule({\n declarations: [\n AtoWaterLibComponent,\n TestButtonComponent\n ],\n imports: [\n ],\n exports: [\n AtoWaterLibComponent,\n TestButtonComponent\n ]\n})\nexport class AtoWaterLibModule { }\n","/*\n * Public API Surface of ato-water-lib\n */\n\nexport * from './lib/ato-water-lib.service';\nexport * from './lib/ato-water-lib.component';\nexport * from './lib/ato-water-lib.module';\nexport * from './lib/test-button/test-button.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,kBAAkB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAiB;;gHAFN,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;MCQY,oBAAoB,CAAA;;kHAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EARrB,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;MCDU,mBAAmB,CAAA;;iHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,uDCPhC,6BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,6BAAA,EAAA,CAAA;;;MEehB,iBAAiB,CAAA;;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,iBAV1B,oBAAoB;AACpB,QAAA,mBAAmB,aAKnB,oBAAoB;QACpB,mBAAmB,CAAA,EAAA,CAAA,CAAA;gHAGV,iBAAiB,EAAA,CAAA,CAAA;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,mBAAmB;AACpB,qBAAA;AACD,oBAAA,OAAO,EAAE,EACR;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,mBAAmB;AACpB,qBAAA;iBACF,CAAA;;;ACjBD;;AAEG;;ACFH;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"ato-water-lib.mjs","sources":["../../../projects/ato-water-lib/src/lib/ato-water-lib.service.ts","../../../projects/ato-water-lib/src/lib/ato-water-lib.component.ts","../../../projects/ato-water-lib/src/lib/constants/value.const.ts","../../../projects/ato-water-lib/src/lib/models/gojs-editor.model.ts","../../../projects/ato-water-lib/src/lib/constants/key.const.ts","../../../projects/ato-water-lib/src/lib/constants/applicable-prefixes-const.ts","../../../projects/ato-water-lib/src/lib/services/utils/utils.service.ts","../../../projects/ato-water-lib/src/lib/constants/plant.constant.ts","../../../projects/ato-water-lib/src/lib/models/default-gojs-editor.model.ts","../../../projects/ato-water-lib/src/lib/components/flow-diagram-lib/flow-diagram-lib.component.ts","../../../projects/ato-water-lib/src/lib/components/flow-diagram-lib/flow-diagram-lib.component.html","../../../projects/ato-water-lib/src/lib/ato-water-lib.module.ts","../../../projects/ato-water-lib/src/public-api.ts","../../../projects/ato-water-lib/src/ato-water-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AtoWaterLibService {\n\n constructor() { }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'lib-ato-water-lib',\n template: `\n <p>\n ato-water-lib works!\n </p>\n `,\n styles: [\n ]\n})\nexport class AtoWaterLibComponent {\n\n}\n","// import { AnalyticsService } from '@dashboards-shared/services/analytics.service';\n// import { E_Frequency } from './frequency.enum';\n// import { ENUM_RISK_COLOR } from './information.const';\n// import { ABBREVIATION } from './applicable-prefixes-const';\n\n// export const DEFAULT_NAMES_MAPPING: any = {\n// CMS: 'CMS',\n// ETP: 'ETP',\n// ZLD: 'ZLD',\n// RO: 'RO',\n// CMSLabWashing: 'CMS Lab Washing',\n// };\n\nexport const VALUE_NA = 'NA';\nexport const NO_DATA = 'No Data';\nexport const VALUE_NA_SPECIAL = 'N/A';\nexport const TEXT_UNKNOWN = '?';\nexport const TEXT_ERR = '!Err';\nexport const NO_ENOUGH_DATA = 'Not enough data';\n\n// For Element DOM\nexport const KEY_CREATE_DOM_TO_DOWNLOAD = 'newCreateToDownload';\nexport const NO_HIDDEN = 'noHidden';\n\nexport const GROUP_PLANT_CELL_KEY = 3000;\nexport const GROUP_PC_INPUTS_KEY = 1000;\nexport const GROUP_PC_OUTPUTS_KEY = 2000;\nexport const ENUM_ROLES = 'ROLES';\n\nexport enum E_FILTER_KEY {\n VIEW_MODE = 'viewMode',\n WATER_UNIT = 'waterUnit',\n ENERGY_UNIT = 'energyUnit',\n ELECTRICITY_UNIT = 'electricityUnit',\n NATURAL_GAS_UNIT = 'naturalGasUnit',\n FUEL_UNIT = 'fuelUnit',\n CURRENCY_UNIT = 'currencyUnit',\n}\n\nexport enum ATO_ECOMPONENT_PLANT_TYPE {\n WATER = 'water',\n ENERGY = 'energy',\n ELECTRICITY = 'electricity',\n NATURAL_GAS = 'gas',\n FUEL = 'fuel',\n STEAM = 'steam',\n EMISSION = 'emission',\n COST = 'cost',\n\n WATER_PLANT_CELL = 'water-plant-cell',\n ENERGY_PLANT_CELL = 'energy-plant-cell',\n ELECTRICITY_PLANT_CELL = 'electricity-plant-cell',\n NATURAL_GAS_PLANT_CELL = 'gas-plant-cell',\n FUEL_PLANT_CELL = 'fuel-plant-cell',\n STEAM_PLANT_CELL = 'steam-plant-cell',\n EMISSION_PLANT_CELL = 'emission-plant-cell',\n COST_PLANT_CELL = 'cost-plant-cell',\n}\n\nexport const COMPOTYPE_CALL_PLANT_TOPOLOGY_DETAILS: string[] = [\n ATO_ECOMPONENT_PLANT_TYPE.WATER,\n ATO_ECOMPONENT_PLANT_TYPE.WATER_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.ENERGY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.FUEL_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.STEAM_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.EMISSION_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.COST_PLANT_CELL,\n];\n\nexport const COMPONENT_TYPE_OF_PLANT_CELL: string[] = [\n ATO_ECOMPONENT_PLANT_TYPE.WATER_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.ENERGY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.FUEL_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.STEAM_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.EMISSION_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.COST_PLANT_CELL,\n];\n\nexport const COMPONENT_TYPE_OF_PLANT_CELL_ENERGY: string[] = [\n ATO_ECOMPONENT_PLANT_TYPE.ENERGY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.FUEL_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.STEAM_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.EMISSION_PLANT_CELL,\n ATO_ECOMPONENT_PLANT_TYPE.COST_PLANT_CELL,\n];\n\n// export enum E_TOPOLOGY_TYPE {\n// OVER_VIEW = 'over-view',\n// PLANT_CELL = 'plant-cell',\n// }\n\nexport enum E_COMPONENT_DATA_TYPE {\n COMPONENT_WATER_FLOW = 'ComponentWaterFlow',\n COMPONENT_ENERGY_FLOW = 'ComponentEnergyFlow',\n}\n\nexport enum E_FLOW_RECORD {\n INFLOW_WATER_RECORD = 'InflowWaterRecord',\n OUTFLOW_WATER_RECORD = 'OutflowWaterRecord',\n INFLOW_ENERGY_RECORD = 'InflowEnergyRecord',\n OUTFLOW_ENERGY_RECORD = 'OutflowEnergyRecord',\n}\n\n// export enum TAB_DASHBOARD {\n// WATER = 'water',\n// WATER_LABEL = 'Water',\n// ENERGY_EMISSION = 'energy & emissions',\n// ENERGY_EMISSION_LABEL = 'Energy & Emissions',\n// }\n\n// export enum TAB_SETUP_COMPLIANCE {\n// PLANT_LEVEL = 'Plant level',\n// PROCESS_LEVEL = 'Process Level',\n// }\n\n// export enum PLANT_ENERGY_DIAGRAM_TABS_INDEX {\n// ENERGY = 0,\n// ELECTRICITY = 1,\n// NATURAL_GAS = 2,\n// FUEL = 3,\n// EMISSIONS = 4\n// }\n\nexport enum TAG_TYPE {\n WATER = 'Water',\n ELECTRICITY = 'Electricity',\n NATURAL_GAS = 'Natural Gas',\n FUEL = 'Fuel',\n STEAM = 'Steam',\n ENERGY = 'Energy',\n EMISSION = 'Emission',\n COST = 'Cost',\n WATER_ANALYTIC = 'Water Analytic',\n}\n\n// export enum TAB_WS_ENERGY_EMISSION {\n// TABLE = 'table',\n// DIAGRAM = 'diagram',\n// }\n\nexport const PLANT_ENERGY_DIAGRAM_TABS: {\n [key in ATO_ECOMPONENT_PLANT_TYPE]: any;\n} = {\n [ATO_ECOMPONENT_PLANT_TYPE.WATER]: {\n keyUnitFromList: 'Water',\n keyUnit: 'waterUnit',\n keyFlowTopology: 'Water',\n keyTab: 'Water',\n indexTab: -1,\n keyComponent: 'waterComponents',\n keyRoute: 'Water',\n subSystemId: 'subWaterSystemId',\n nameTab: 'Water',\n loc: 'locWater',\n keyToUpdateModel: 'waterData',\n topologyType: 'PlantTopology',\n type: 'water',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_WATER_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.WATER,\n iconClassName: 'fa-regular fa-tank-water font-size-16px',\n tagType: TAG_TYPE.WATER,\n inflowRecord: E_FLOW_RECORD.INFLOW_WATER_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_WATER_RECORD,\n keyGroupMenu: 'Water',\n },\n [ATO_ECOMPONENT_PLANT_TYPE.ENERGY]: {\n keyUnitFromList: 'Energy',\n keyUnit: 'energyUnit',\n keyFlowTopology: 'Energy',\n keyTab: 'Energy',\n indexTab: 4,\n keyComponent: '',\n keyRoute: 'energy',\n nameTab: 'Energy',\n loc: 'locEnergy',\n keyToUpdateModel: '',\n type: 'water',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.ENERGY,\n tagType: TAG_TYPE.ENERGY,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY]: {\n keyUnitFromList: 'Electricity',\n keyUnit: 'electricityUnit',\n keyFlowTopology: 'Electricity',\n keyTab: 'Electricals',\n indexTab: 0,\n keyComponent: 'electricComponents',\n keyRoute: 'electricity',\n subSystemId: 'subElectricSystemId',\n nameTab: 'Electricity',\n loc: 'locElectricity',\n keyToUpdateModel: 'electricData',\n topologyType: 'Electricity',\n type: 'electricity',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY,\n iconClassName: 'fa-regular fa-bolt font-size-16px',\n tagType: TAG_TYPE.ELECTRICITY,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n keyGroupMenu: 'Electricity',\n },\n [ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS]: {\n keyUnitFromList: 'Gas',\n keyUnit: 'naturalGasUnit',\n keyFlowTopology: 'NaturalGas',\n keyTab: 'NaturalGases',\n indexTab: 1,\n keyComponent: 'gasComponents',\n keyRoute: 'gas',\n subSystemId: 'subGasSystemId',\n nameTab: 'Natural Gas',\n loc: 'locGas',\n keyToUpdateModel: 'gasData',\n topologyType: 'NaturalGas',\n type: 'naturalgas',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS,\n iconClassName: 'fa-regular fa-fire-flame-curved font-size-16px',\n tagType: TAG_TYPE.NATURAL_GAS,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n keyGroupMenu: 'NaturalGases',\n },\n [ATO_ECOMPONENT_PLANT_TYPE.FUEL]: {\n keyUnitFromList: 'Fuel',\n keyUnit: 'fuelUnit',\n keyFlowTopology: 'Fuel',\n keyTab: 'Fuels',\n indexTab: 2,\n keyComponent: 'fuelComponents',\n keyRoute: 'fuel',\n subSystemId: 'subFuelSystemId',\n nameTab: 'Fuel',\n loc: 'locFuel',\n keyToUpdateModel: 'fuelData',\n topologyType: 'Fuel',\n type: 'fuel',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.FUEL,\n iconClassName: 'fa-regular fa-gas-pump font-size-16px',\n tagType: TAG_TYPE.FUEL,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n keyGroupMenu: 'Fuels',\n },\n [ATO_ECOMPONENT_PLANT_TYPE.STEAM]: {\n keyUnitFromList: 'Steam',\n keyUnit: 'steamUnit',\n keyFlowTopology: 'Steam',\n keyTab: 'Steams',\n indexTab: 3,\n keyComponent: 'steamComponents',\n keyRoute: 'steam',\n subSystemId: 'subSteamSystemId',\n nameTab: 'Steam',\n loc: 'locSteam',\n keyToUpdateModel: 'steamData',\n topologyType: 'Steam',\n type: 'steam',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.STEAM,\n iconClassName: 'fa-regular fa-heat font-size-16px',\n tagType: TAG_TYPE.STEAM,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n keyGroupMenu: 'Steams',\n },\n [ATO_ECOMPONENT_PLANT_TYPE.EMISSION]: {\n keyUnitFromList: 'Emissions',\n keyUnit: 'Emissions',\n keyFlowTopology: 'Emissions',\n keyTab: 'Emissions',\n indexTab: 5,\n keyComponent: 'emissionComponents',\n keyRoute: 'emission',\n loc: 'locEmission',\n keyToUpdateModel: 'emissionData',\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.EMISSION,\n tagType: TAG_TYPE.EMISSION,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.COST]: {\n keyUnitFromList: 'Cost',\n keyUnit: 'Cost',\n keyFlowTopology: 'Cost',\n keyTab: 'Cost',\n indexTab: 4,\n keyComponent: 'costComponents',\n keyRoute: 'cost',\n loc: 'locCost',\n keyToUpdateModel: 'costData',\n type: 'cost',\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.COST,\n tagType: TAG_TYPE.COST,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.WATER_PLANT_CELL]: {\n keyUnitFromList: 'Water',\n keyUnit: 'waterUnit',\n keyFlowTopology: 'Water',\n keyTab: 'Water',\n indexTab: -1,\n keyComponent: 'waterComponents_PlantCell',\n keyRoute: 'Water',\n subSystemId: 'subWaterSystemId',\n loc: 'locWater',\n keyToUpdateModel: 'waterDataPlantCell',\n topologyType: 'PlantTopology',\n type: 'water',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_WATER_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.WATER,\n tagType: TAG_TYPE.WATER,\n inflowRecord: E_FLOW_RECORD.INFLOW_WATER_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_WATER_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.ENERGY_PLANT_CELL]: {\n keyUnitFromList: 'Energy',\n keyUnit: 'energyUnit',\n keyFlowTopology: 'Energy',\n keyTab: 'Energy',\n indexTab: 3,\n keyComponent: '',\n keyRoute: 'energy',\n loc: 'locEnergy',\n keyToUpdateModel: '',\n type: 'water',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_WATER_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.ENERGY,\n tagType: TAG_TYPE.ENERGY,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY_PLANT_CELL]: {\n keyUnitFromList: 'Electricity',\n keyUnit: 'electricityUnit',\n keyFlowTopology: 'Electricity',\n keyTab: 'Electricals',\n indexTab: 0,\n keyComponent: 'electricComponents_PlantCell',\n keyRoute: 'electricity',\n subSystemId: 'subElectricSystemId',\n nameTab: 'Electricity',\n loc: 'locElectricity',\n keyToUpdateModel: 'electricDataPlantCell',\n topologyType: 'Electricity',\n type: 'electricity',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.ELECTRICITY,\n tagType: TAG_TYPE.ELECTRICITY,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS_PLANT_CELL]: {\n keyUnitFromList: 'Gas',\n keyUnit: 'naturalGasUnit',\n keyFlowTopology: 'NaturalGas',\n keyTab: 'NaturalGases',\n indexTab: 1,\n keyComponent: 'gasComponents_PlantCell',\n keyRoute: 'gas',\n subSystemId: 'subGasSystemId',\n nameTab: 'Natural Gas',\n loc: 'locGas',\n keyToUpdateModel: 'gasDataPlantCell',\n topologyType: 'NaturalGas',\n type: 'naturalgas',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.NATURAL_GAS,\n tagType: TAG_TYPE.NATURAL_GAS,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.FUEL_PLANT_CELL]: {\n keyUnitFromList: 'Fuel',\n keyUnit: 'fuelUnit',\n keyFlowTopology: 'Fuel',\n keyTab: 'Fuels',\n indexTab: 2,\n keyComponent: 'fuelComponents_PlantCell',\n keyRoute: 'fuel',\n subSystemId: 'subFuelSystemId',\n nameTab: 'Fuel',\n loc: 'locFuel',\n keyToUpdateModel: 'fuelDataPlantCell',\n topologyType: 'Fuel',\n type: 'fuel',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.FUEL,\n tagType: TAG_TYPE.FUEL,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n\n [ATO_ECOMPONENT_PLANT_TYPE.STEAM_PLANT_CELL]: {\n keyUnitFromList: 'Steam',\n keyUnit: 'steamUnit',\n keyFlowTopology: 'Steam',\n keyTab: 'Steams',\n indexTab: 2,\n keyComponent: 'steamComponents_PlantCell',\n keyRoute: 'steam',\n subSystemId: 'subSteamSystemId',\n nameTab: 'Steam',\n loc: 'locSteam',\n keyToUpdateModel: 'steamDataPlantCell',\n topologyType: 'Steam',\n type: 'steam',\n componentFlow: E_COMPONENT_DATA_TYPE.COMPONENT_ENERGY_FLOW,\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.STEAM,\n tagType: TAG_TYPE.STEAM,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n\n [ATO_ECOMPONENT_PLANT_TYPE.EMISSION_PLANT_CELL]: {\n keyUnitFromList: 'Emissions',\n keyUnit: 'Emissions',\n keyFlowTopology: 'Emissions',\n keyTab: 'Emissions',\n indexTab: 5,\n keyComponent: '',\n keyRoute: 'emission',\n loc: 'locEmission',\n keyToUpdateModel: '',\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.EMISSION,\n tagType: TAG_TYPE.EMISSION,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n [ATO_ECOMPONENT_PLANT_TYPE.COST_PLANT_CELL]: {\n keyUnitFromList: 'Cost',\n keyUnit: 'Cost',\n keyFlowTopology: 'Cost',\n keyTab: 'Cost',\n indexTab: 4,\n keyComponent: 'costComponents_PlantCell',\n keyRoute: 'cost',\n loc: 'locCost',\n keyToUpdateModel: 'costDataPlantCell',\n type: 'cost',\n topologyViewType: ATO_ECOMPONENT_PLANT_TYPE.COST,\n tagType: TAG_TYPE.COST,\n inflowRecord: E_FLOW_RECORD.INFLOW_ENERGY_RECORD,\n outflowRecord: E_FLOW_RECORD.OUTFLOW_ENERGY_RECORD,\n },\n\n // // Add water to plant type\n // [ATO_ECOMPONENT_PLANT_TYPE.WATER]: {\n // keyUnitFromList: 'Water',\n // keyUnit: 'Water',\n // keyFlowTopology: 'Water',\n // keyTab: 'Water',\n // indexTab: 5,\n // keyComponent: 'waterComponents',\n // keyRoute: 'water'\n // },\n};\n\n// export enum TARGET_E_TYPE {\n// TARGET = 'Target',\n// GOAL = 'Goal',\n// PROJECT = 'Project',\n// MILESTONE = 'Milestone',\n// }\n\n// const COLOR_STATUS = {\n// RED: {\n// hexColor: '#EC1B24',\n// classColor: 'color-alizarin',\n// },\n// YELLOW: {\n// hexColor: '#E09F25',\n// classColor: 'color-galliano-2',\n// },\n// GREEN: {\n// hexColor: '#199C69',\n// classColor: 'color-elf-green',\n// },\n// };\n\n// export const TARGET_STATUS_COLOR = {\n// [TARGET_E_TYPE.TARGET]: {\n// 0: COLOR_STATUS.YELLOW,\n// 1: COLOR_STATUS.YELLOW,\n// 2: COLOR_STATUS.YELLOW,\n// 3: COLOR_STATUS.GREEN,\n// 4: COLOR_STATUS.RED,\n// 5: COLOR_STATUS.RED,\n// 6: COLOR_STATUS.RED,\n// },\n// [TARGET_E_TYPE.GOAL]: {\n// 0: COLOR_STATUS.YELLOW,\n// 1: COLOR_STATUS.YELLOW,\n// 2: COLOR_STATUS.YELLOW,\n// 3: COLOR_STATUS.YELLOW,\n// 4: COLOR_STATUS.YELLOW,\n// 5: COLOR_STATUS.RED,\n// 6: COLOR_STATUS.RED,\n// 7: COLOR_STATUS.GREEN,\n// 10: COLOR_STATUS.RED,\n// },\n\n// [TARGET_E_TYPE.PROJECT]: {\n// 0: COLOR_STATUS.YELLOW,\n// 1: COLOR_STATUS.YELLOW,\n// 2: COLOR_STATUS.RED,\n// 3: COLOR_STATUS.GREEN,\n// 4: COLOR_STATUS.RED,\n// 5: COLOR_STATUS.RED,\n// 6: COLOR_STATUS.RED,\n// 10: COLOR_STATUS.RED,\n// },\n// [TARGET_E_TYPE.MILESTONE]: {\n// 0: COLOR_STATUS.YELLOW,\n// 1: COLOR_STATUS.YELLOW,\n// 2: COLOR_STATUS.YELLOW,\n// 3: COLOR_STATUS.RED,\n// 4: COLOR_STATUS.GREEN,\n// 5: COLOR_STATUS.RED,\n// 6: COLOR_STATUS.RED,\n// 10: COLOR_STATUS.RED,\n// },\n// };\n\n// export enum DATA_TYPES {\n// STRING = 'string',\n// NUMBER = 'number',\n// BOOLEAN = 'boolean',\n// DATE = 'Date',\n// VALUE_UNIT = 'valueUnit',\n// VALUE_CURRENCY = 'valueCost',\n// VALUE_CURRENCY_PER_UNIT = 'valueCurrencyPerUnit',\n// // VALUE_WATER = 'valueWater',\n// // VALUE_ELECTRICITY = 'valueElectricity',\n// // VALUE_NATURAL_GAS = 'valueNaturalGas',\n// // VALUE_FUEL = 'valueFuel',\n// // VALUE_CO2e_EMISSION = 'valueCO2eEmission',\n// // VALUE_ENERY = 'valueEnergy',\n// SPECIAL = 'special',\n// }\n\n// export enum E_DATE_PICKER_MODE {\n// DATE = 'date',\n// WEEK = 'week',\n// MONTH = 'month',\n// YEAR = 'year',\n// RAW = 'raw',\n// }\n\n// export const DATE_PICKER_MODE: {\n// [key in string]: any;\n// } = {\n// [E_Frequency.current]: {\n// value: E_DATE_PICKER_MODE.DATE,\n// format: 'MM/DD/YYYY',\n// formatPicker: 'MM/dd/yyyy',\n// index: 0,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.DAY,\n// },\n// [E_Frequency.daily]: {\n// value: E_DATE_PICKER_MODE.DATE,\n// format: 'MM/DD/YYYY',\n// formatPicker: 'MM/dd/yyyy',\n// index: 0,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.DAY,\n// },\n// [E_Frequency.weekly]: {\n// value: E_DATE_PICKER_MODE.WEEK,\n// index: 1,\n// // format: 'MM/DD/YYYY'\n// },\n// [E_Frequency.monthly]: {\n// value: E_DATE_PICKER_MODE.MONTH,\n// format: 'MM/YYYY',\n// formatPicker: 'MM/yyyy',\n// index: 2,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.MONTH,\n// },\n// [E_Frequency.yearly]: {\n// value: E_DATE_PICKER_MODE.YEAR,\n// format: 'YYYY',\n// formatPicker: 'yyyy',\n// index: 3,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.YEAR,\n// },\n// [E_Frequency.annual]: {\n// value: E_DATE_PICKER_MODE.YEAR,\n// format: 'YYYY',\n// formatPicker: 'yyyy',\n// index: 3,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.YEAR,\n// },\n// [E_Frequency.raw]: {\n// value: E_DATE_PICKER_MODE.RAW,\n// format: 'MM/DD/YYYY',\n// formatPicker: 'MM/dd/yyyy',\n// index: 0,\n// valueAnalytics: AnalyticsService.ENUM_DATE_TYPE.DAY,\n// },\n// };\n\n// export enum E_PRODUCTION_TYPE {\n// PRODUCT = 'product',\n// PRODUCT_LINE = 'product-line',\n// }\n\n// export enum E_PRODUCTION_MEASUREMENT_TYPE {\n// PRODUCT_WATER_IN_SOURCE = 'ProductWaterInSource',\n// PRODUCT_WATER_OUT_SOURCE = 'ProductWaterOutSource',\n// PRODUCT_ENERGY_IN_SOURCE = 'ProductEnergyInSource',\n// PRODUCT_ENERGY_OUT_SOURCE = 'ProductEnergyOutSource',\n// }\n\n// export const E_PRODUCTION_MEASUREMENT_PAYLOAD = {\n// [E_PRODUCTION_MEASUREMENT_TYPE.PRODUCT_WATER_IN_SOURCE]: {\n// createParentPayload: 'CreateProductWaterInSource',\n// updateParentPayload: 'UpdateProductWaterInSource',\n// payload: 'ProductWaterInSource',\n// keyResponse: 'waterInflows',\n// keyForm: 'waterIntakeMeasurement',\n// keyComponent: ['waterComponents'],\n// textAdd: 'intake measurement',\n// componentType: 'Water',\n// },\n// [E_PRODUCTION_MEASUREMENT_TYPE.PRODUCT_WATER_OUT_SOURCE]: {\n// createParentPayload: 'CreateProductWaterOutSource',\n// updateParentPayload: 'UpdateProductWaterOutSource',\n// payload: 'ProductWaterOutSource',\n// keyResponse: 'waterOutflows',\n// keyForm: 'waterOutputMeasurement',\n// keyComponent: ['waterComponents'],\n// textAdd: 'output measurement',\n// componentType: 'Water',\n// },\n// [E_PRODUCTION_MEASUREMENT_TYPE.PRODUCT_ENERGY_IN_SOURCE]: {\n// createParentPayload: 'CreateProductEnergyInSource',\n// updateParentPayload: 'UpdateProductEnergyInSource',\n// payload: 'ProductEnergyInSource',\n// keyResponse: 'energyInflows',\n// keyForm: 'energyIntakeMeasurement',\n// keyComponent: ['electricComponents', 'fuelComponents', 'gasComponents'],\n// textAdd: 'intake measurement',\n// componentType: 'Energy',\n// },\n// [E_PRODUCTION_MEASUREMENT_TYPE.PRODUCT_ENERGY_OUT_SOURCE]: {\n// createParentPayload: 'CreateProductEnergyOutSource',\n// updateParentPayload: 'UpdateProductEnergyOutSource',\n// payload: 'ProductEnergyOutSource',\n// keyResponse: 'energyOutflows',\n// keyForm: 'energyExportMeasurement',\n// keyComponent: ['electricComponents', 'fuelComponents', 'gasComponents'],\n// textAdd: 'export measurement',\n// componentType: 'Energy',\n// },\n// };\n\n// export enum SORT_DIRECTION {\n// ASCEND = 'ascend',\n// DESCEND = 'descend',\n// }\n\n// export enum ROUTE_COMPONENT_TYPE {\n// COMPONENT = 'component',\n// PLANT_CELL = 'plant-cell',\n// }\n\n// export enum PLACEHOLDER_INPUT {\n// FIELD_FILE = 'Enter the file URL',\n// }\n\n// export enum TYPE_SIZE_CONTROL {\n// NORMAL = 'normal',\n// SMALL = 'small',\n// }\n\n// export enum RATE_WATER_QUALITY_INDEX_INFO {\n// EXCELLENT = 'excellent',\n// GOOD = 'good',\n// AVERAGE = 'average',\n// FAIR = 'fair',\n// POOR = 'poor',\n// }\n\n// // export const COLOR_WATER_QUALITY_INDEX_INFO = {\n// // [RATE_WATER_QUALITY_INDEX_INFO.EXCELLENT]: {\n// // color: ENUM_RISK_COLOR.GREEN,\n// // colorClass: 'color-elf-green',\n// // },\n// // [RATE_WATER_QUALITY_INDEX_INFO.GOOD]: {\n// // color: ENUM_RISK_COLOR.LIGHT_GREEN,\n// // colorClass: 'color-yellow-green',\n// // },\n// // [RATE_WATER_QUALITY_INDEX_INFO.AVERAGE]: {\n// // color: ENUM_RISK_COLOR.YELLOW,\n// // colorClass: 'color-grandis',\n// // },\n// // [RATE_WATER_QUALITY_INDEX_INFO.FAIR]: {\n// // color: ENUM_RISK_COLOR.ORANGE,\n// // colorClass: 'color-carrot-orange',\n// // },\n// // [RATE_WATER_QUALITY_INDEX_INFO.POOR]: {\n// // color: ENUM_RISK_COLOR.RED,\n// // colorClass: 'color-sunset-orange',\n// // },\n// // };\n\n// // export const RANGE_COLOR_WATER_QUALITY_INDEX = [\n// // {\n// // from: 0,\n// // to: 25,\n// // colorInfo: COLOR_WATER_QUALITY_INDEX_INFO[RATE_WATER_QUALITY_INDEX_INFO.POOR],\n// // },\n// // {\n// // from: 25,\n// // to: 50,\n// // colorInfo: COLOR_WATER_QUALITY_INDEX_INFO[RATE_WATER_QUALITY_INDEX_INFO.FAIR],\n// // },\n// // {\n// // from: 50,\n// // to: 70,\n// // colorInfo: COLOR_WATER_QUALITY_INDEX_INFO[RATE_WATER_QUALITY_INDEX_INFO.AVERAGE],\n// // },\n// // {\n// // from: 70,\n// // to: 90,\n// // colorInfo: COLOR_WATER_QUALITY_INDEX_INFO[RATE_WATER_QUALITY_INDEX_INFO.GOOD],\n// // },\n// // {\n// // from: 90,\n// // to: 100,\n// // colorInfo: COLOR_WATER_QUALITY_INDEX_INFO[RATE_WATER_QUALITY_INDEX_INFO.EXCELLENT],\n// // },\n// // ];\n\n// export enum ENUM_INSIGHT_TABS {\n// VOLUME = 'Volume',\n// QUALITY = 'Quality',\n// ASSET_PARAMETERS = 'Asset Parameters',\n// }\n\n// export enum ENUM_INSIGHT_MAPPING_STEP {\n// ASSETS = 'assets',\n// TAGS = 'tags',\n// CONFIGURATION = 'configuration',\n// }\n\n// export enum STEAM_OPTION_KEY {\n// MASS_FLOW = 'massflow',\n// MASS_FLOW_RATE = 'massflowrate',\n// PRESSURE = 'pressure',\n// TEMPERATURE = 'temperature',\n// ENERGY = 'energy',\n// }\n\n// export const STEAM_OPTIONS_FILTER = {\n// [STEAM_OPTION_KEY.MASS_FLOW]: {\n// name: 'Mass Flow',\n// key: STEAM_OPTION_KEY.MASS_FLOW,\n// icon: '',\n// urlIcon: 'assets/images/icons/steam/Mass flow.svg',\n// isDisabled: false,\n// keyUnit: 'SteamMassFlow',\n// keyUnitSetting: 'steamMassFlow',\n// listUnits: [ABBREVIATION.g, ABBREVIATION.lbs],\n// },\n\n// [STEAM_OPTION_KEY.MASS_FLOW_RATE]: {\n// name: 'Mass Flow Rate',\n// key: STEAM_OPTION_KEY.MASS_FLOW_RATE,\n// icon: '',\n// urlIcon: 'assets/images/icons/steam/Mass flow rate.svg',\n// isDisabled: false,\n// keyUnit: 'MassFlowRate',\n// keyUnitSetting: 'steamFlowRate',\n// listUnits: [ABBREVIATION.g_hr, ABBREVIATION.lbs_hr],\n// },\n// [STEAM_OPTION_KEY.PRESSURE]: {\n// name: 'Pressure',\n// key: STEAM_OPTION_KEY.PRESSURE,\n// icon: 'fal fa-gauge-high',\n// isDisabled: false,\n// keyUnit: 'SteamPressure',\n// keyUnitSetting: 'steamPressure',\n// listUnits: [ABBREVIATION.MPa, ABBREVIATION.psi],\n// },\n// [STEAM_OPTION_KEY.TEMPERATURE]: {\n// name: 'Temperature',\n// key: STEAM_OPTION_KEY.TEMPERATURE,\n// icon: 'fal fa-temperature-high',\n// isDisabled: false,\n// keyUnit: 'SteamTemperature',\n// keyUnitSetting: 'steamTemperature',\n// listUnits: [ABBREVIATION.degC, ABBREVIATION.degF],\n// },\n// [STEAM_OPTION_KEY.ENERGY]: {\n// name: 'Energy',\n// key: STEAM_OPTION_KEY.ENERGY,\n// icon: 'fa-regular fa-transformer-bolt',\n// keyUnit: 'Energy',\n// keyUnitSetting: 'energyUnit',\n// isDisabled: false,\n// listUnits: [ABBREVIATION.BTU, ABBREVIATION.J],\n// },\n// };\n\nexport enum ATO_ENUM_FLOW_DIRECTION {\n INFLOW = 'Inflow',\n OUTFLOW = 'Outflow',\n NONE = '',\n}\n","import { ATO_ECOMPONENT_PLANT_TYPE } from '../constants/value.const';\n\nexport class GojsEditorModel {\n initialOptions: any;\n data: any; // FlowGoJsComponentModel\n\n constructor(data: any) {\n this.data = data;\n }\n}\n\nexport namespace GojsEditorModel {\n export const GRID_SIZE = 20;\n export const BASIC_GRID_INTERVAL_X = 24;\n export const BASIC_GRID_INTERVAL_Y = 10;\n export const BASIC_GRID_SIZE_WIDTH = GRID_SIZE * BASIC_GRID_INTERVAL_X;\n export const BASIC_GRID_SIZE_HEIGHT = GRID_SIZE * BASIC_GRID_INTERVAL_Y;\n export const DISTANCE_LAST_TO_ADD = 50;\n export const PLANT_CELL_HEIGHT = 160;\n export enum ENUM_LAYOUT_EDITOR {\n AUTO = 'AUTO ALIGN',\n GRID = 'GRID SUPPORTED',\n FREEFORM = 'FREE FORM',\n }\n\n export const LAYOUT_LIST = [\n {\n name: 'Auto-align',\n key: ENUM_LAYOUT_EDITOR.AUTO,\n },\n {\n name: 'Grid Supported',\n key: ENUM_LAYOUT_EDITOR.GRID,\n },\n {\n name: 'Freeform',\n key: ENUM_LAYOUT_EDITOR.FREEFORM,\n },\n ];\n\n export enum ENUM_COLORS {\n RED = '#EC7C4E',\n ORANGE = '#EBB868',\n BLUE = '#81B8FF',\n LIGHT_BLUE = '#F4F6FB',\n LIGHT_SKY_BLUE = '#cfe7fd',\n WHITE = '#FFFFFF',\n GRAY = '#919CA5',\n CERULEAN = '#0062A9',\n VIVID_VIOLET = '#804180',\n RESOLUTION_BLUE = '#2D3B77',\n CASHMERE = '#D6AB95',\n GALLIANO = '#E09F25',\n FOUNTAIN_BLUE = '#54BBBA',\n ELF_GREEN = '#199C69',\n MEDIUM_RED_VIOLET = '#A8438D',\n GRANDIS = '#FBC96C',\n SALMON = '#F47769',\n NIGHT_RIDER = '#2C2C2C',\n ALIZARIN = '#EC1B24',\n LINK_WATER = '#CAD3DB',\n ZIRCON = '#E5EBEB',\n CERULEAN_ALICE_BLUE = '#E6F0F7',\n DANUBE = '#7197CA',\n DANUBE_ALICE_BLUE = '#F1F5FA',\n AZURE = '#EEF8F8',\n OLD_LACE = '#FCF6EA',\n }\n\n export enum ENUM_LINK_TYPES {\n SIMPLE = 'simple',\n PIPE_ANIMATION = 'pipe animation',\n PIPE = 'pipe',\n PIPE_HIDDEN = 'pipe hidden',\n }\n\n // Components types\n export enum ENUM_TEMPLATES {\n STORAGE = 'Storage',\n COOLING_TOWER = 'Cooling Tower',\n\n WATER_TREATMENT = 'Water Treatment',\n DEMIN_WATER_TREATMENT = 'Demin Water Treatment',\n RO_WATER_TREATMENT = 'RO Water Treatment',\n\n DOMESTIC_USE = 'Domestic Use',\n PROCESS = 'Process',\n BOILER = 'Boiler',\n\n WASTEWATER_TREATMENT = 'Wastewater Treatment',\n DAF_WASTEWATER_TREATMENT = 'DAF Wastewater Treatment',\n ETP_WASTEWATER_TREATMENT = 'ETP Wastewater Treatment',\n MBR_WASTEWATER_TREATMENT = 'MBR Wastewater Treatment',\n ZLD_WASTEWATER_TREATMENT = 'ZLD Wastewater Treatment',\n\n OTHER = 'Other',\n LANDSCAPING_IRRIGATION = 'Landscaping/Irrigation',\n TEXT_NODE = 'TextNode',\n VALUE_NODE = 'ValueNode',\n DATA_BOX = 'DataBox',\n VALUE_LABEL = 'ValueLabel',\n EMPTY = 'Empty',\n\n SPECIAL_PROCESS = 'SPECIAL_PROCESS',\n SPECIAL_STORE = 'SPECIAL_STORE',\n SPECIAL_STORAGE = 'STORAGE',\n SPECIAL_DISCHARGE = 'SPECIAL_DISCHARGE',\n SPECIAL_OTHER = 'SPECIAL_OTHER',\n\n // TANKER = 'Tanker',\n // RAIN_WATER = 'Rainwater',\n FRESH_SURFACE_WATER = 'Fresh surface water', // 'RAIN_WATER',\n THIRD_PARTY_SOURCES = 'Third party sources', // TANKER\n THIRD_PARTY_DESTINATIONS = 'Third party destinations',\n GROUND_WATER_NON_RENEWABLE = 'Groundwater - non-renewable',\n PRODUCED_ENTRAINED = 'Produced / entrained water',\n BRACKISH_SURFACE_WATER = 'Brackish surface water/ seawater',\n\n UTILITY = 'UTILITY',\n GROUND_WATER_RENEWABLE = 'Groundwater - Renewable',\n // Energy\n ZONE = 'EnergyZones',\n ZONE_ENERGY_ITEM = 'SubSystem',\n //Electric\n GRID = 'Grid',\n DIESEL_GENERATORS = 'Diesel Generators',\n ELECTRIC_METERS = 'Electric Meters',\n\n BATTERY_ENERGY_STORAGE = 'Battery energy storage',\n TRANSFORMERS = 'Transformers',\n LIGHTING_SYSTEMS = 'Lighting systems',\n LIGHTINGS = 'Lightings',\n\n ELECTRIC_FLYWHEEL_ENERGY_STORAGE = 'Flywheel energy storage',\n PUMPED_HYDRO_STORAGE = 'Pumped hydro storage',\n THERMAL_ENERGY_STORAGE = 'Thermal energy storage',\n SUPER_CAPACITOR_ENERGY_STORAGE = 'Supercapacitor energy storage',\n SWITCH_GEARS = 'Switchgears',\n MOTOR_CONTROLS = 'MotorControls',\n VARIABLE_FREQUENCY_DRIVERS = 'VariableFrequencyDrives',\n ELECTRIC_HVAC = 'Heating, ventilation, and air conditioning (HVAC) systems',\n COMPRESSED_AIR_SYSTEMS = 'Compressed air',\n REFRIGERATION_COOLING_SYSTEMS = 'Refrigeration and cooling',\n PROCESS_CONTROL_AUTOMATION_SYSTEMS = 'Process control and automation',\n OFFICE_EQUIPMENT = 'Office equipment',\n PROCESS_EQUIPMENT_MACHINES = 'Process equipment and machines',\n MATERIAL_HANDLING_EQUIPMENT = 'Material handling equipment',\n POWER_DISTRIBUTION_CONTROL_SYSTEMS = 'Power distribution and control',\n POWER_DISTRIBUTION_SYSTEMS = 'Power distribution systems',\n WIND_POWER = 'Wind Power',\n NATURAL_GAS_GENERATORS = 'Natural gas generators',\n ELECTRIC_INDUSTRIAL_MOTORS = 'Industrial motors',\n GROUNDING = 'Grounding',\n\n // Fuel\n FUELS = 'Fuels',\n DIESEL_FUELS = 'DieselFuels',\n GASON_LINES = 'Gasonlines',\n BIODIESELS = 'Biodiesels',\n KEROSENSE = 'Kerosenes',\n PROPANES = 'Propanes',\n\n TANKER_TRUCKS = 'Tanker Trucks',\n PIPELINE = 'Pipeline',\n\n INDUSTRIAL_BOILERS = 'Industrial boilers',\n GENERATORS = 'Generators',\n INDUSTRIAL_FURNACES = 'Industrial furnaces',\n INDUSTRIAL_OVENS = 'Industrial ovens',\n INDUSTRIAL_VEHICLES_AND_EQUIPMENT = 'Industrial vehicles and equipment',\n\n FUEL_METERS = 'FuelMeters',\n FUEL_DISPENSERS = 'FuelDispensers',\n FUEL_STRORAGE_TANKS = 'FuelStorageTanks',\n FUEL_FILTRATIONS = 'FuelFiltrations',\n FUEL_MANAGEMENTS = 'FuelManagements',\n\n // Gas\n NATURAL_GAS_PIPELINES = 'Natural gas pipelines',\n LIQUEFIED_NATURAL_GAS = 'Liquefied natural gas',\n COMPRESSED_NATURAL_GAS_PIPELINE = 'Compressed natural gas pipeline',\n ON_SITE_PRODUCTION = 'On-site production',\n COMPRESSED_NATURAL_GAS_PRODUCTION = 'Compressed natural gas production',\n BOILERS_AND_HEATERS = 'Boilers and heaters',\n FURNACES = 'Furnaces',\n POWER_GENERATION = 'Power generation',\n COGENERATION = 'Cogeneration',\n COMBINED_CYCLE_POWER_PLANTS = 'Combined cycle power plants',\n FUEL_FOR_VEHICLES_AND_EQUIPMENT = 'Fuel for vehicles and equipment',\n GAS_METERS = 'Gas meters',\n BURNERS = 'Burners',\n FLUE_GAS_ANALYZERS = 'Flue gas analyzers',\n COMBUSTION_CONTROL_SYSTEMS = 'Combustion control systems',\n GAS_STORAGE_TANKS = 'Gas storage tanks',\n GAS_PRESSURE_REGULATORS = 'Gas pressure regulators',\n NATURAL_GAS = 'Natural Gas',\n // Solar\n SOLAR_POWER = 'Solar Power',\n POWER_CONDITIONING_UNIT = 'Power conditioning unit (PCU)',\n INVERTERS = 'Inverters',\n BATTERIES = 'Batteries',\n\n // Uncategorized of Proxy Plant\n UNCATEGORIZED = 'Uncategorized',\n\n // Plant Cell\n PLANT_CELL = 'Plant Cell',\n INPUT_PLANT_CELL = 'Input Plant Cell',\n OUTPUT_PLANT_CELL = 'Output Plant Cell',\n\n PLANT_CELL_INPUT_GROUP = 'PC Input Group',\n PLANT_CELL_OUTPUT_GROUP = 'PC Output Group',\n\n // Image\n IMAGE_TEMPLATE = 'Image Template',\n PARAM_TABLE = 'Param Table',\n MASS_BALANCE = 'Mass Balance',\n\n // Steam Type\n VALUES = 'Valves',\n STEAM_TRAPS = 'Steam Traps',\n PRESSURE_REGULATORS = 'Pressure Regulator',\n SAFETY_VALUES_AND_EQUIPMENT = 'Safety Valves and Equipment',\n CONDENSATE_RETURN_SYSTEM = 'Condensate Return System',\n DEAERATORS = 'Deaerators',\n FEEDWATER_PUMPS = 'Feedwater Pumps',\n BLOWDOWN_TANKS = 'Blowdown Tanks',\n EXPANSION_TANKS = 'Expansion Tanks',\n HEAT_EXCHANGERS = 'Heat Exchangers',\n TURBINES = 'Turbines',\n\n // Plant Basic\n GROUP_BASIC_COMPONENT = 'Group Basic Component',\n }\n\n // System Types\n export enum ENUM_TYPES {\n STORAGE = 'WaterStorageTanks',\n\n WATER_TREATMENT = 'WaterTreatmentProcesses',\n DEMIN_WATER_TREATMENT = 'DeminWaterTreatments',\n RO_WATER_TREATMENT = 'ROWaterTreatments',\n\n PROCESS = 'GenericProcesses',\n SPECIAL_STORAGE = 'STORAGE',\n\n WASTEWATER_TREATMENT = 'WasteWaterTreatmentProcesses',\n DAF_WASTEWATER_TREATMENT = 'DAFWasteWaterTreatments',\n ETP_WASTEWATER_TREATMENT = 'ETPWasteWaterTreatments',\n MBR_WASTEWATER_TREATMENT = 'MBRWasteWaterTreatments',\n ZLD_WASTEWATER_TREATMENT = 'ZLDWasteWaterTreatments',\n\n DOMESTIC_USE = 'DomesticUse',\n COOLING_TOWER = 'CoolingTowers',\n BOILER = 'Boilers',\n OTHER = 'OtherWaterUse',\n LANDSCAPING_IRRIGATION = 'IrrigationUse',\n\n FRESH_SURFACE_WATER = 'Fresh surface water', // 'RAIN_WATER',\n THIRD_PARTY_SOURCES = 'Third party sources', // TANKER\n THIRD_PARTY_DESTINATIONS = 'Third party destinations',\n GROUND_WATER_NON_RENEWABLE = 'Groundwater - non-renewable',\n PRODUCED_ENTRAINED = 'Produced / entrained water',\n\n // FRESH_SURFACE_WAER = 'Fresh surface water',\n BRACKISH_SURFACE_WATER = 'Brackish surface water/ seawater',\n GROUND_WATER_RENEWABLE = 'Groundwater - Renewable',\n\n TANKER_WATER = 'Tanker Water',\n // ENERGY\n ZONE = 'EnergyZones',\n // Electric\n ELECTRIC_SOURCES = 'ElectricSources',\n GRID = 'Grid Power',\n DIESEL_GENERATORS = 'Diesel Generators',\n ELECTRIC_METERS = 'ElectricMeters',\n TRANSFORMERS = 'Transformers',\n // Electric New\n BATTERY_ENERGY_STORAGE = 'Battery energy storage',\n ELECTRIC_PRODUCTIONS = 'ElectricProductions',\n ELECTRIC_COMSUMINGS = 'ElectricConsumings',\n ELECTRIC_STORAGES = 'ElectricityStorages',\n ELECTRIC_FLYWHEEL_ENERGY_STORAGE = 'Flywheel energy storage',\n PUMPED_HYDRO_STORAGE = 'Pumped hydro storage',\n THERMAL_ENERGY_STORAGE = 'Thermal energy storage',\n SUPER_CAPACITOR_ENERGY_STORAGE = 'Supercapacitor energy storage',\n SWITCH_GEARS = 'Switchgears',\n MOTOR_CONTROLS = 'MotorControls',\n VARIABLE_FREQUENCY_DRIVERS = 'VariableFrequencyDrives',\n LIGHTING_SYSTEMS = 'Lighting systems',\n LIGHTINGS = 'Lightings',\n ELECTRIC_HVAC = 'Heating, ventilation, and air conditioning (HVAC) systems',\n COMPRESSED_AIR_SYSTEMS = 'Compressed air',\n REFRIGERATION_COOLING_SYSTEMS = 'Refrigeration and cooling',\n PROCESS_CONTROL_AUTOMATION_SYSTEMS = 'Process control and automation',\n PROCESS_EQUIPMENT_MACHINES = 'Process equipment and machines',\n OFFICE_EQUIPMENT = 'Office equipment',\n MATERIAL_HANDLING_EQUIPMENT = 'Material handling equipment',\n POWER_DISTRIBUTION_CONTROL_SYSTEMS = 'Power distribution and control',\n POWER_DISTRIBUTION_SYSTEMS = 'PowerDistributions',\n WIND_POWER = 'Wind Power',\n NATURAL_GAS_GENERATORS = 'Natural gas generators',\n ELECTRIC_INDUSTRIAL_MOTORS = 'Industrial motors',\n GROUNDING = 'Groundings',\n Electricals = 'Electricals',\n\n // Gas\n NATURAL_GAS_PIPELINES = 'Natural gas pipelines',\n LIQUEFIED_NATURAL_GAS = 'Liquefied natural gas (LNG) shipments',\n COMPRESSED_NATURAL_GAS_PIPELINE = 'Compressed natural gas pipeline (CNG)',\n ON_SITE_PRODUCTION = 'On-site production',\n COMPRESSED_NATURAL_GAS_PRODUCTION = 'Compressed natural gas production (CNG)',\n BOILERS_AND_HEATERS = 'Boilers and heaters',\n FURNACES = 'Furnaces',\n POWER_GENERATION = 'Power generation',\n COGENERATION = 'Cogeneration',\n COMBINED_CYCLE_POWER_PLANTS = 'Combined cycle power plants',\n FUEL_FOR_VEHICLES_AND_EQUIPMENT = 'Fuel for vehicles and equipment',\n GAS_METERS = 'GasMeters',\n BURNERS = 'Burners',\n FLUE_GAS_ANALYZERS = 'FlueGasAnalyzers',\n COMBUSTION_CONTROL_SYSTEMS = 'ConbustionControls',\n GAS_STORAGE_TANKS = 'GasStorageTanks',\n GAS_PRESSURE_REGULATORS = 'GasPressureRegulators',\n NATURAL_GAS = 'Natural Gas',\n // TYPE_COMPONENT Gas\n GAS_SOURCE = 'GasSources',\n GAS_PRODUCTION = 'GasProductions',\n GAS_CONSUMINGS = 'GasConsumings',\n NATURAL_GAS_SPECIAL = 'NaturalGases',\n\n // Fuel\n FUELS = 'Fuels',\n DIESEL_FUELS = 'DieselFuels',\n GASON_LINES = 'Gasonlines',\n BIODIESELS = 'Biodiesels',\n KEROSENSE = 'Kerosenes',\n PROPANES = 'Propanes',\n\n FUEL_SOURCES = 'FuelSources',\n\n TANKER_TRUCKS = 'Tanker Trucks',\n PIPELINE = 'Pipeline',\n\n FUEL_CONSUMINGS = 'FuelConsumings',\n\n INDUSTRIAL_BOILERS = 'Industrial boilers',\n GENERATORS = 'Generators',\n INDUSTRIAL_FURNACES = 'Industrial furnaces',\n INDUSTRIAL_OVENS = 'Industrial ovens',\n INDUSTRIAL_VEHICLES_AND_EQUIPMENT = 'Industrial vehicles and equipment',\n\n FUEL_METERS = 'FuelMeters',\n FUEL_DISPENSERS = 'FuelDispensers',\n FUEL_STRORAGE_TANKS = 'FuelStorageTanks',\n FUEL_FILTRATIONS = 'FuelFiltrations',\n FUEL_MANAGEMENTS = 'FuelManagements',\n\n // Solar\n SOLAR_POWER = 'Solar Power',\n POWER_CONDITIONING_UNIT = 'Power conditioning unit (PCU)',\n INVERTERS = 'Inverters',\n BATTERIES = 'Batteries',\n\n // Plant Cell\n PLANT_CELL = 'PlantCells',\n PLANT_CELL_INPUT_GROUP = 'PC Input Group',\n PLANT_CELL_OUTPUT_GROUP = 'PC Output Group',\n\n // Steam\n VALUES = 'Valves',\n STEAM_TRAPS = 'Steam Traps',\n PRESSURE_REGULATORS = 'Pressure Regulator',\n SAFETY_VALUES_AND_EQUIPMENT = 'Safety Valves and Equipment',\n CONDENSATE_RETURN_SYSTEM = 'Condensate Return System',\n DEAERATORS = 'Deaerators',\n FEEDWATER_PUMPS = 'Feedwater Pumps',\n BLOWDOWN_TANKS = 'Blowdown Tanks',\n EXPANSION_TANKS = 'Expansion Tanks',\n HEAT_EXCHANGERS = 'SteamConsumings',\n TURBINES = 'EnergyConverters',\n\n STEAM_COMPONENT = 'SteamComponents',\n STEAM_CONSUMING_SYSTEM = 'SteamConsumings',\n ENERGY_CONVERTER = 'EnergyConverters',\n }\n\n export enum ENUM_CATEGORY {}\n\n export enum DATA_COLLECTION_METHOD {\n MEASURED = 'Measured',\n MANUAL = 'Manual',\n COMPUTED = 'Computed',\n ESTIMATED = 'Estimated',\n WATER_CAPACITY = 'Water Capacity',\n KEY_MODEL_COMPUTED = 'M',\n }\n\n export const COLOR_COLLECTION_METHOD: {\n [key in GojsEditorModel.DATA_COLLECTION_METHOD]: any;\n } = {\n [DATA_COLLECTION_METHOD.MEASURED]: {\n name: DATA_COLLECTION_METHOD.MEASURED,\n color: ENUM_COLORS.RED,\n classNameColor: 'color-burnt-sienna',\n },\n [DATA_COLLECTION_METHOD.MANUAL]: {\n name: DATA_COLLECTION_METHOD.MANUAL,\n color: ENUM_COLORS.ELF_GREEN,\n classNameColor: 'color-elf-green',\n },\n [DATA_COLLECTION_METHOD.COMPUTED]: {\n name: DATA_COLLECTION_METHOD.COMPUTED,\n color: ENUM_COLORS.CERULEAN,\n classNameColor: 'color-cerulean',\n },\n [DATA_COLLECTION_METHOD.ESTIMATED]: {\n name: DATA_COLLECTION_METHOD.ESTIMATED,\n color: ENUM_COLORS.MEDIUM_RED_VIOLET,\n classNameColor: 'color-medium-red-violet',\n },\n [DATA_COLLECTION_METHOD.WATER_CAPACITY]: {\n name: DATA_COLLECTION_METHOD.WATER_CAPACITY,\n color: ENUM_COLORS.VIVID_VIOLET,\n classNameColor: 'color-vivid-violet',\n },\n [DATA_COLLECTION_METHOD.KEY_MODEL_COMPUTED]: {\n name: DATA_COLLECTION_METHOD.KEY_MODEL_COMPUTED,\n color: ENUM_COLORS.GRAY,\n classNameColor: 'color-bali-hai',\n },\n };\n\n // export enum WITH_DRAW_TYPES {\n // TANKER = 'Tanker',\n // RAIN_WATER = 'Rainwater',\n // }\n\n export enum WITH_DRAW_SYSTEM_TYPES {\n WATER_SOURCE = 'WaterSource',\n }\n\n // export enum DISCHARGE_TYPES {\n // GROUND_WATER_RENEWABLE = 'Ground Water Renewable',\n // }\n\n export enum DISCHARGE_TYPES_SYSTEM_TYPES {\n GROUND_WATER_RANEWABLE = 'GroundWaterRenewable',\n }\n\n export const WaterWithdrawSources = 'WaterWithdrawSources';\n export const WaterWithdrawSourcesPath =\n 'GetFlowTopology.Plant.WaterWithdrawSources.ComponentWaterFlow.InFlows.InflowWaterRecord.QuantityParams';\n\n export const WaterDischargeDestinations = 'WaterDischargeDestinations';\n export const WaterDischargeDestinationsPath =\n 'GetFlowTopology.Plant.WaterDischargeDestinations.ComponentWaterFlow.InFlows.InflowWaterRecord.QuantityParams';\n\n export const SOURCES_COMPONENTS = [\n WaterWithdrawSources,\n WaterDischargeDestinations,\n ENUM_TYPES.ELECTRIC_SOURCES,\n ENUM_TYPES.ELECTRIC_PRODUCTIONS,\n ENUM_TYPES.GAS_SOURCE,\n ENUM_TYPES.GAS_PRODUCTION,\n ENUM_TYPES.FUEL_SOURCES,\n // ENUM_TYPES.FUEL_STORAGE_TANKS,\n ];\n\n export const SOURCES_WITHDRAW = [\n WaterWithdrawSources,\n ENUM_TYPES.ELECTRIC_SOURCES,\n ENUM_TYPES.ELECTRIC_PRODUCTIONS,\n ENUM_TYPES.GAS_SOURCE,\n ENUM_TYPES.GAS_PRODUCTION,\n ENUM_TYPES.FUEL_SOURCES,\n // ENUM_TYPES.FUEL_STORAGE_TANKS,\n ];\n\n export const SOURCES_DISCHARGE = [\n WaterDischargeDestinations,\n // ENUM_TYPES.ELECTRIC_SOURCES,\n // ENUM_TYPES.ELECTRIC_PRODUCTIONS,\n // ENUM_TYPES.GAS_SOURCE,\n // ENUM_TYPES.GAS_PRODUCTION,\n // ENUM_TYPES.FUEL_SOURCES,\n ];\n\n export const COMPONENTS_HAVE_SPECIAL_CATEGORY = [\n // Water\n WaterWithdrawSources,\n WaterDischargeDestinations,\n\n // ENUM_TYPES.FRESH_SURFACE_WAER,\n // ENUM_TYPES.THIRD_PARTY_SOURCES,\n // ENUM_TYPES.GROUND_WATER_NON_RENEWABLE,\n // ENUM_TYPES.PRODUCED_ENTRAINED,\n // ENUM_TYPES.BRACKISH_SURFACE_WATER,\n // ENUM_TYPES.GROUND_WATER_RENEWABLE,\n\n // Energy\n ENUM_TYPES.ZONE,\n // Electric===================\n ENUM_TYPES.GRID,\n ENUM_TYPES.ELECTRIC_PRODUCTIONS,\n ENUM_TYPES.DIESEL_GENERATORS,\n ENUM_TYPES.NATURAL_GAS_GENERATORS,\n ENUM_TYPES.SOLAR_POWER,\n ENUM_TYPES.ELECTRIC_SOURCES,\n ENUM_TYPES.Electricals,\n // ENUM_TYPES.ELECTRIC_COMSUMINGS,\n // ENUM_TYPES.ELECTRIC_STORAGES,\n // ENUM_TYPES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n // ENUM_TYPES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n\n // Gas========================\n // ENUM_TYPES.NATURAL_GAS_PIPELINES,\n ENUM_TYPES.GAS_SOURCE,\n ENUM_TYPES.GAS_PRODUCTION,\n ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n ENUM_TYPES.ON_SITE_PRODUCTION,\n ENUM_TYPES.NATURAL_GAS_PIPELINES,\n ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n ENUM_TYPES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n // ENUM_TYPES.COMPRESSED_NATURAL_GAS_PIPELINE,\n // ENUM_TYPES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n // ENUM_TYPES.FURNACES,\n // ENUM_TYPES.POWER_GENERATION,\n // ENUM_TYPES.COGENERATION,\n // ENUM_TYPES.COMBINED_CYCLE_POWER_PLANTS,\n // ENUM_TYPES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n ENUM_TYPES.NATURAL_GAS_SPECIAL,\n //Fuel========================\n ENUM_TYPES.FUEL_SOURCES,\n ENUM_TYPES.TANKER_TRUCKS,\n ENUM_TYPES.PIPELINE,\n ENUM_TYPES.FUELS,\n ];\n\n export const WITH_DRAW_TYPE_LIST = [\n ENUM_TYPES.THIRD_PARTY_SOURCES,\n ENUM_TYPES.FRESH_SURFACE_WATER,\n ENUM_TYPES.BRACKISH_SURFACE_WATER,\n ENUM_TYPES.GROUND_WATER_RENEWABLE,\n ENUM_TYPES.GROUND_WATER_NON_RENEWABLE,\n ENUM_TYPES.PRODUCED_ENTRAINED,\n ] as string[];\n export const DISCHARGE_TYPE_LIST = [\n ENUM_TYPES.FRESH_SURFACE_WATER,\n ENUM_TYPES.BRACKISH_SURFACE_WATER,\n ENUM_TYPES.GROUND_WATER_RENEWABLE,\n ENUM_TYPES.THIRD_PARTY_DESTINATIONS,\n ] as string[];\n\n export const WITH_DRAW_SYSTEM_TYPE_LIST = [WITH_DRAW_SYSTEM_TYPES.WATER_SOURCE];\n export const DISCHARGE_SYSTEM_TYPE_LIST = [DISCHARGE_TYPES_SYSTEM_TYPES.GROUND_WATER_RANEWABLE];\n\n // system type\n export const TYPE_COMPONENT = [\n ENUM_TYPES.STORAGE,\n\n ENUM_TYPES.WATER_TREATMENT,\n ENUM_TYPES.DEMIN_WATER_TREATMENT,\n ENUM_TYPES.RO_WATER_TREATMENT,\n\n ENUM_TYPES.PROCESS,\n\n ENUM_TYPES.WASTEWATER_TREATMENT,\n ENUM_TYPES.DAF_WASTEWATER_TREATMENT,\n ENUM_TYPES.ETP_WASTEWATER_TREATMENT,\n ENUM_TYPES.MBR_WASTEWATER_TREATMENT,\n ENUM_TYPES.ZLD_WASTEWATER_TREATMENT,\n\n ENUM_TYPES.DOMESTIC_USE,\n ENUM_TYPES.COOLING_TOWER,\n ENUM_TYPES.BOILER,\n ENUM_TYPES.OTHER,\n ENUM_TYPES.LANDSCAPING_IRRIGATION,\n GojsEditorModel.WaterWithdrawSources,\n GojsEditorModel.WaterDischargeDestinations,\n // Energy\n ENUM_TYPES.ZONE,\n // Electricity==========================\n ENUM_TYPES.GRID,\n ENUM_TYPES.DIESEL_GENERATORS,\n ENUM_TYPES.BATTERY_ENERGY_STORAGE,\n ENUM_TYPES.LIGHTING_SYSTEMS,\n ENUM_TYPES.LIGHTINGS,\n ENUM_TYPES.ELECTRIC_METERS,\n ENUM_TYPES.TRANSFORMERS,\n ENUM_TYPES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n ENUM_TYPES.PUMPED_HYDRO_STORAGE,\n ENUM_TYPES.THERMAL_ENERGY_STORAGE,\n ENUM_TYPES.SUPER_CAPACITOR_ENERGY_STORAGE,\n ENUM_TYPES.SWITCH_GEARS,\n ENUM_TYPES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n ENUM_TYPES.PROCESS_EQUIPMENT_MACHINES,\n ENUM_TYPES.OFFICE_EQUIPMENT,\n ENUM_TYPES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n ENUM_TYPES.POWER_DISTRIBUTION_SYSTEMS,\n ENUM_TYPES.NATURAL_GAS_GENERATORS,\n ENUM_TYPES.MOTOR_CONTROLS,\n ENUM_TYPES.VARIABLE_FREQUENCY_DRIVERS,\n ENUM_TYPES.ELECTRIC_HVAC,\n ENUM_TYPES.COMPRESSED_AIR_SYSTEMS,\n ENUM_TYPES.REFRIGERATION_COOLING_SYSTEMS,\n ENUM_TYPES.MATERIAL_HANDLING_EQUIPMENT,\n ENUM_TYPES.WIND_POWER,\n ENUM_TYPES.ELECTRIC_INDUSTRIAL_MOTORS,\n ENUM_TYPES.GROUNDING,\n ENUM_TYPES.ELECTRIC_STORAGES,\n ENUM_TYPES.ELECTRIC_COMSUMINGS,\n\n // TEST\n ENUM_TYPES.ELECTRIC_SOURCES,\n // Gas==========================\n ENUM_TYPES.NATURAL_GAS_PIPELINES,\n ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n ENUM_TYPES.COMPRESSED_NATURAL_GAS_PIPELINE,\n ENUM_TYPES.ON_SITE_PRODUCTION,\n ENUM_TYPES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n ENUM_TYPES.BOILERS_AND_HEATERS,\n ENUM_TYPES.FURNACES,\n ENUM_TYPES.POWER_GENERATION,\n ENUM_TYPES.COGENERATION,\n ENUM_TYPES.COMBINED_CYCLE_POWER_PLANTS,\n ENUM_TYPES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n ENUM_TYPES.GAS_METERS,\n ENUM_TYPES.BURNERS,\n ENUM_TYPES.FLUE_GAS_ANALYZERS,\n ENUM_TYPES.COMBUSTION_CONTROL_SYSTEMS,\n ENUM_TYPES.GAS_STORAGE_TANKS,\n ENUM_TYPES.GAS_PRESSURE_REGULATORS,\n ENUM_TYPES.NATURAL_GAS,\n\n ENUM_TYPES.GAS_SOURCE,\n // ENUM_TYPES.GAS_PRODUCTION,\n ENUM_TYPES.GAS_CONSUMINGS,\n\n // Fuel==========================\n ENUM_TYPES.DIESEL_FUELS,\n ENUM_TYPES.GASON_LINES,\n ENUM_TYPES.BIODIESELS,\n ENUM_TYPES.KEROSENSE,\n ENUM_TYPES.PROPANES,\n ENUM_TYPES.FUEL_CONSUMINGS,\n ENUM_TYPES.INDUSTRIAL_BOILERS,\n ENUM_TYPES.GENERATORS,\n ENUM_TYPES.INDUSTRIAL_FURNACES,\n ENUM_TYPES.INDUSTRIAL_OVENS,\n ENUM_TYPES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n ENUM_TYPES.FUEL_METERS,\n ENUM_TYPES.FUEL_DISPENSERS,\n ENUM_TYPES.FUEL_STRORAGE_TANKS,\n ENUM_TYPES.FUEL_FILTRATIONS,\n ENUM_TYPES.FUEL_MANAGEMENTS,\n ENUM_TYPES.FUELS,\n\n // Solar =============================\n ENUM_TYPES.SOLAR_POWER,\n ENUM_TYPES.BATTERIES,\n ENUM_TYPES.INVERTERS,\n ENUM_TYPES.POWER_CONDITIONING_UNIT,\n\n // Plant Cell\n ENUM_TYPES.PLANT_CELL,\n\n // Copy form ENUM_TYPES\n ENUM_TYPES.STORAGE,\n\n ENUM_TYPES.WATER_TREATMENT,\n ENUM_TYPES.DEMIN_WATER_TREATMENT,\n ENUM_TYPES.RO_WATER_TREATMENT,\n\n ENUM_TYPES.PROCESS,\n ENUM_TYPES.SPECIAL_STORAGE,\n\n ENUM_TYPES.WASTEWATER_TREATMENT,\n ENUM_TYPES.DAF_WASTEWATER_TREATMENT,\n ENUM_TYPES.ETP_WASTEWATER_TREATMENT,\n ENUM_TYPES.MBR_WASTEWATER_TREATMENT,\n ENUM_TYPES.ZLD_WASTEWATER_TREATMENT,\n\n ENUM_TYPES.DOMESTIC_USE,\n ENUM_TYPES.COOLING_TOWER,\n ENUM_TYPES.BOILER,\n ENUM_TYPES.OTHER,\n ENUM_TYPES.LANDSCAPING_IRRIGATION,\n\n ENUM_TYPES.FRESH_SURFACE_WATER,\n ENUM_TYPES.THIRD_PARTY_SOURCES,\n ENUM_TYPES.THIRD_PARTY_DESTINATIONS,\n ENUM_TYPES.GROUND_WATER_NON_RENEWABLE,\n ENUM_TYPES.PRODUCED_ENTRAINED,\n\n // FRESH_SURFACE_WAER = 'Fresh surface water',\n ENUM_TYPES.BRACKISH_SURFACE_WATER,\n ENUM_TYPES.GROUND_WATER_RENEWABLE,\n\n ENUM_TYPES.TANKER_WATER,\n // ENERGY\n ENUM_TYPES.ZONE,\n // Electric\n ENUM_TYPES.ELECTRIC_SOURCES,\n ENUM_TYPES.GRID,\n ENUM_TYPES.DIESEL_GENERATORS,\n ENUM_TYPES.ELECTRIC_METERS,\n ENUM_TYPES.TRANSFORMERS,\n // Electric New\n ENUM_TYPES.BATTERY_ENERGY_STORAGE,\n ENUM_TYPES.ELECTRIC_PRODUCTIONS,\n ENUM_TYPES.ELECTRIC_COMSUMINGS,\n ENUM_TYPES.ELECTRIC_STORAGES,\n ENUM_TYPES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n ENUM_TYPES.PUMPED_HYDRO_STORAGE,\n ENUM_TYPES.THERMAL_ENERGY_STORAGE,\n ENUM_TYPES.SUPER_CAPACITOR_ENERGY_STORAGE,\n ENUM_TYPES.SWITCH_GEARS,\n ENUM_TYPES.MOTOR_CONTROLS,\n ENUM_TYPES.VARIABLE_FREQUENCY_DRIVERS,\n ENUM_TYPES.LIGHTING_SYSTEMS,\n ENUM_TYPES.LIGHTINGS,\n ENUM_TYPES.ELECTRIC_HVAC,\n ENUM_TYPES.COMPRESSED_AIR_SYSTEMS,\n ENUM_TYPES.REFRIGERATION_COOLING_SYSTEMS,\n ENUM_TYPES.PROCESS_EQUIPMENT_MACHINES,\n ENUM_TYPES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n ENUM_TYPES.OFFICE_EQUIPMENT,\n ENUM_TYPES.MATERIAL_HANDLING_EQUIPMENT,\n ENUM_TYPES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n ENUM_TYPES.POWER_DISTRIBUTION_SYSTEMS,\n ENUM_TYPES.WIND_POWER,\n ENUM_TYPES.NATURAL_GAS_GENERATORS,\n ENUM_TYPES.ELECTRIC_INDUSTRIAL_MOTORS,\n ENUM_TYPES.GROUNDING,\n ENUM_TYPES.Electricals,\n\n // Gas\n ENUM_TYPES.NATURAL_GAS_PIPELINES,\n ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n ENUM_TYPES.COMPRESSED_NATURAL_GAS_PIPELINE,\n ENUM_TYPES.ON_SITE_PRODUCTION,\n ENUM_TYPES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n ENUM_TYPES.BOILERS_AND_HEATERS,\n ENUM_TYPES.FURNACES,\n ENUM_TYPES.POWER_GENERATION,\n ENUM_TYPES.COGENERATION,\n ENUM_TYPES.COMBINED_CYCLE_POWER_PLANTS,\n ENUM_TYPES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n ENUM_TYPES.GAS_METERS,\n ENUM_TYPES.BURNERS,\n ENUM_TYPES.FLUE_GAS_ANALYZERS,\n ENUM_TYPES.COMBUSTION_CONTROL_SYSTEMS,\n ENUM_TYPES.GAS_STORAGE_TANKS,\n ENUM_TYPES.GAS_PRESSURE_REGULATORS,\n ENUM_TYPES.NATURAL_GAS,\n // TYPE_COMPONENT Gas\n ENUM_TYPES.GAS_SOURCE,\n ENUM_TYPES.GAS_PRODUCTION,\n ENUM_TYPES.GAS_CONSUMINGS,\n ENUM_TYPES.NATURAL_GAS_SPECIAL,\n\n // Fuel\n ENUM_TYPES.FUELS,\n ENUM_TYPES.DIESEL_FUELS,\n ENUM_TYPES.GASON_LINES,\n ENUM_TYPES.BIODIESELS,\n ENUM_TYPES.KEROSENSE,\n ENUM_TYPES.PROPANES,\n\n ENUM_TYPES.FUEL_SOURCES,\n\n ENUM_TYPES.TANKER_TRUCKS,\n ENUM_TYPES.PIPELINE,\n\n ENUM_TYPES.FUEL_CONSUMINGS,\n\n ENUM_TYPES.INDUSTRIAL_BOILERS,\n ENUM_TYPES.GENERATORS,\n ENUM_TYPES.INDUSTRIAL_FURNACES,\n ENUM_TYPES.INDUSTRIAL_OVENS,\n ENUM_TYPES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n\n ENUM_TYPES.FUEL_METERS,\n ENUM_TYPES.FUEL_DISPENSERS,\n ENUM_TYPES.FUEL_STRORAGE_TANKS,\n ENUM_TYPES.FUEL_FILTRATIONS,\n ENUM_TYPES.FUEL_MANAGEMENTS,\n\n // Solar\n ENUM_TYPES.SOLAR_POWER,\n ENUM_TYPES.POWER_CONDITIONING_UNIT,\n ENUM_TYPES.INVERTERS,\n ENUM_TYPES.BATTERIES,\n\n // Plant Cell\n ENUM_TYPES.PLANT_CELL,\n ENUM_TYPES.PLANT_CELL_INPUT_GROUP,\n ENUM_TYPES.PLANT_CELL_OUTPUT_GROUP,\n\n // Steam\n ENUM_TYPES.VALUES,\n ENUM_TYPES.STEAM_TRAPS,\n ENUM_TYPES.PRESSURE_REGULATORS,\n ENUM_TYPES.SAFETY_VALUES_AND_EQUIPMENT,\n ENUM_TYPES.CONDENSATE_RETURN_SYSTEM,\n ENUM_TYPES.DEAERATORS,\n ENUM_TYPES.FEEDWATER_PUMPS,\n ENUM_TYPES.BLOWDOWN_TANKS,\n ENUM_TYPES.EXPANSION_TANKS,\n ENUM_TYPES.HEAT_EXCHANGERS,\n ENUM_TYPES.TURBINES,\n ENUM_TYPES.STEAM_COMPONENT,\n ENUM_TYPES.STEAM_CONSUMING_SYSTEM,\n ENUM_TYPES.ENERGY_CONVERTER,\n ] as string[];\n\n export const ICON_ASSET_PATH: string = 'assets/images/editor/icons';\n export const ICON_ASSET_WITHDRAW_DISCHARGE_ICON: string = '/assets/images/icons/hoskote_plant';\n export const IMAGE_RO_WATER_TREATMENT_PATH = '/assets/images/ro-water-treatment/RO_WATER_TREATMENT_BG.png';\n export const IMAGE_BOILER_PATH = 'assets/images/boiler/cms_boiler.png';\n export const IMAGE_COOLING_TOWER_PATH = 'assets/images/process-water/cooling_tower.png';\n export const SPECIAL_ICON_ASSET_PATH: string = 'assets/images/editor/special';\n export const ENERGY_ICON_ASSET_PATH = 'assets/images/editor/energy';\n export const GAS_ICON_ASSET_PATH = 'assets/images/editor/gas';\n export const FUEL_ICON_ASSET_PATH = 'assets/images/editor/fuel';\n export const STEAM_ICON_ASSET_PATH = 'assets/images/editor/steam';\n export const PLANT_CELL_PATH = 'assets/images/editor/plant-cell';\n export const DATA_BOX = 'assets/images/editor/data-box';\n\n export const LINK_TEMPLATES: {\n [key in GojsEditorModel.ENUM_LINK_TYPES]: any;\n } = {\n [ENUM_LINK_TYPES.SIMPLE]: {\n toShortLength: 8,\n strokeWidth: 8,\n arrow: {\n toArrow: 'Triangle',\n visible: true,\n stroke: GojsEditorModel.ENUM_COLORS.GRAY,\n fill: GojsEditorModel.ENUM_COLORS.GRAY,\n scale: 1.7,\n },\n },\n [ENUM_LINK_TYPES.PIPE]: {\n strokeWidth: 8,\n },\n [ENUM_LINK_TYPES.PIPE_ANIMATION]: {\n strokeWidth: 8,\n animation: {\n isPanelMain: true,\n stroke: 'white',\n strokeWidth: 2,\n name: 'PIPE',\n strokeDashArray: [10, 20],\n visible: false,\n },\n },\n [ENUM_LINK_TYPES.PIPE_HIDDEN]: {\n strokeWidth: 0,\n selectable: false,\n arrow: {\n visible: false,\n },\n },\n };\n\n export interface I_TEMPLATE_ITEM {\n name: GojsEditorModel.ENUM_TEMPLATES;\n icon?: string;\n size?: { w: number; h: number };\n systemType?: string;\n }\n\n export const ATTRNAME_COMPONENT: any[] = [\n 'waterWithdrawName',\n 'waterDischargeName',\n 'wasteWaterProcessName',\n 'waterTreatmentName',\n 'waterStorageTankName',\n 'genericProcessName',\n 'boilerName',\n 'coolingTowerName',\n 'facilityFunctionName',\n 'miscWaterUseName',\n 'plantTopologyName',\n ];\n\n // export enum GROUP_COMPONENT_TYPE {\n // WITHDRAW_SOURCES = 'Withdraw Sources',\n // PROCESSE = 'Processe',\n // WASTEWATER_TREATEMENTS = 'WasteWater Treatements',\n // WATER_TREATMENT = 'Water Treatments',\n // DISCHARGE_DESTINATIONS = 'Discharge Destinations',\n // WATER_STORAGE = 'Water Storage',\n // FACILITY_FUNCTIONS = 'Facility functions',\n // OTHER = 'Other',\n // }\n\n export const NODE_TEMPLATES: {\n [key in GojsEditorModel.ENUM_TEMPLATES]: I_TEMPLATE_ITEM;\n } = {\n [ENUM_TEMPLATES.STORAGE]: {\n name: ENUM_TEMPLATES.STORAGE,\n icon: `${ICON_ASSET_PATH}/Raw Water Tank.svg`,\n systemType: ENUM_TYPES.STORAGE,\n },\n [ENUM_TEMPLATES.COOLING_TOWER]: {\n name: ENUM_TEMPLATES.COOLING_TOWER,\n icon: `${ICON_ASSET_PATH}/cooling_tower.svg`,\n systemType: ENUM_TYPES.COOLING_TOWER,\n },\n\n // WATER_TREATMENT\n [ENUM_TEMPLATES.WATER_TREATMENT]: {\n name: ENUM_TEMPLATES.WATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/water_treatment.svg`,\n systemType: ENUM_TYPES.WATER_TREATMENT,\n },\n [ENUM_TEMPLATES.DEMIN_WATER_TREATMENT]: {\n name: ENUM_TEMPLATES.DEMIN_WATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/Demin.svg`,\n systemType: ENUM_TYPES.DEMIN_WATER_TREATMENT,\n },\n [ENUM_TEMPLATES.RO_WATER_TREATMENT]: {\n name: ENUM_TEMPLATES.RO_WATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/RO.svg`,\n systemType: ENUM_TYPES.RO_WATER_TREATMENT,\n },\n\n [ENUM_TEMPLATES.DOMESTIC_USE]: {\n name: ENUM_TEMPLATES.DOMESTIC_USE,\n icon: `${ICON_ASSET_PATH}/Domestic_new.svg`,\n systemType: ENUM_TYPES.DOMESTIC_USE,\n },\n [ENUM_TEMPLATES.PROCESS]: {\n name: ENUM_TEMPLATES.PROCESS,\n // icon: `${ICON_ASSET_PATH}/process.svg`,\n icon: `${ICON_ASSET_PATH}/Generic Process.svg`,\n systemType: ENUM_TYPES.PROCESS,\n },\n [ENUM_TEMPLATES.SPECIAL_STORAGE]: {\n name: ENUM_TEMPLATES.SPECIAL_STORAGE,\n icon: `${ICON_ASSET_PATH}/process.svg`,\n systemType: ENUM_TYPES.SPECIAL_STORAGE,\n },\n [ENUM_TEMPLATES.BOILER]: {\n name: ENUM_TEMPLATES.BOILER,\n icon: `${ICON_ASSET_PATH}/Boiler.svg`,\n systemType: ENUM_TYPES.BOILER,\n },\n\n // WASTEWATER_TREATMENT\n [ENUM_TEMPLATES.WASTEWATER_TREATMENT]: {\n name: ENUM_TEMPLATES.WASTEWATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/wastewater_treatment.svg`,\n // size: {\n // w: GRID_SIZE * 8,\n // h: GRID_SIZE * 6,\n // },\n systemType: ENUM_TYPES.WASTEWATER_TREATMENT,\n },\n [ENUM_TEMPLATES.DAF_WASTEWATER_TREATMENT]: {\n name: ENUM_TEMPLATES.DAF_WASTEWATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/DAF.svg`,\n // size: {\n // w: GRID_SIZE * 8,\n // h: GRID_SIZE * 6,\n // },\n systemType: ENUM_TYPES.DAF_WASTEWATER_TREATMENT,\n },\n [ENUM_TEMPLATES.ETP_WASTEWATER_TREATMENT]: {\n name: ENUM_TEMPLATES.ETP_WASTEWATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/water_treatment.svg`,\n systemType: ENUM_TYPES.ETP_WASTEWATER_TREATMENT,\n },\n [ENUM_TEMPLATES.MBR_WASTEWATER_TREATMENT]: {\n name: ENUM_TEMPLATES.MBR_WASTEWATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/MBR.svg`,\n // size: {\n // w: GRID_SIZE * 8,\n // h: GRID_SIZE * 6,\n // },\n systemType: ENUM_TYPES.MBR_WASTEWATER_TREATMENT,\n },\n [ENUM_TEMPLATES.ZLD_WASTEWATER_TREATMENT]: {\n name: ENUM_TEMPLATES.ZLD_WASTEWATER_TREATMENT,\n icon: `${ICON_ASSET_PATH}/ZLD.svg`,\n // size: {\n // w: GRID_SIZE * 8,\n // h: GRID_SIZE * 6,\n // },\n systemType: ENUM_TYPES.ZLD_WASTEWATER_TREATMENT,\n },\n\n [ENUM_TEMPLATES.LANDSCAPING_IRRIGATION]: {\n name: ENUM_TEMPLATES.LANDSCAPING_IRRIGATION,\n icon: `${ICON_ASSET_PATH}/Irrigation.svg`,\n // size: {\n // w: GRID_SIZE * 8,\n // h: GRID_SIZE * 6,\n // },\n systemType: ENUM_TYPES.LANDSCAPING_IRRIGATION,\n },\n [ENUM_TEMPLATES.OTHER]: {\n name: ENUM_TEMPLATES.OTHER,\n icon: `${ICON_ASSET_PATH}/other.svg`,\n systemType: ENUM_TYPES.OTHER,\n },\n [ENUM_TEMPLATES.TEXT_NODE]: {\n name: ENUM_TEMPLATES.TEXT_NODE,\n },\n [ENUM_TEMPLATES.EMPTY]: {\n name: ENUM_TEMPLATES.EMPTY,\n },\n\n [ENUM_TEMPLATES.VALUE_NODE]: {\n name: ENUM_TEMPLATES.VALUE_NODE,\n },\n [ENUM_TEMPLATES.VALUE_LABEL]: {\n name: ENUM_TEMPLATES.VALUE_LABEL,\n },\n [ENUM_TEMPLATES.DATA_BOX]: {\n name: ENUM_TEMPLATES.DATA_BOX,\n },\n\n [ENUM_TEMPLATES.SPECIAL_PROCESS]: {\n name: ENUM_TEMPLATES.SPECIAL_PROCESS,\n icon: `${SPECIAL_ICON_ASSET_PATH}/process.svg`,\n },\n [ENUM_TEMPLATES.SPECIAL_STORE]: {\n name: ENUM_TEMPLATES.SPECIAL_STORE,\n icon: `${SPECIAL_ICON_ASSET_PATH}/Discharge.svg`,\n },\n [ENUM_TEMPLATES.SPECIAL_DISCHARGE]: {\n name: ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n icon: `${SPECIAL_ICON_ASSET_PATH}/Discharge.svg`,\n },\n\n [ENUM_TEMPLATES.THIRD_PARTY_SOURCES]: {\n name: ENUM_TEMPLATES.THIRD_PARTY_SOURCES,\n // icon: `${ICON_ASSET_PATH}/Intake.svg`,\n icon: `${ICON_ASSET_PATH}/Third Party Sources.svg`,\n systemType: ENUM_TYPES.THIRD_PARTY_SOURCES,\n },\n\n [ENUM_TEMPLATES.THIRD_PARTY_DESTINATIONS]: {\n name: ENUM_TEMPLATES.THIRD_PARTY_DESTINATIONS,\n // icon: `${ICON_ASSET_PATH}/Intake.svg`,\n icon: `${ICON_ASSET_PATH}/Third party destinations.svg`,\n systemType: ENUM_TYPES.THIRD_PARTY_DESTINATIONS,\n },\n\n [ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE]: {\n name: ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE,\n icon: `${ICON_ASSET_PATH}/Groundwater - Non-Renewable.svg`,\n systemType: ENUM_TYPES.GROUND_WATER_NON_RENEWABLE,\n },\n [ENUM_TEMPLATES.PRODUCED_ENTRAINED]: {\n name: ENUM_TEMPLATES.PRODUCED_ENTRAINED,\n icon: `${ICON_ASSET_PATH}/Produced Entrained Water.svg`,\n systemType: ENUM_TYPES.PRODUCED_ENTRAINED,\n },\n [ENUM_TEMPLATES.BRACKISH_SURFACE_WATER]: {\n name: ENUM_TEMPLATES.BRACKISH_SURFACE_WATER,\n icon: `${ICON_ASSET_PATH}/Brackisk Surface Water Seawater.svg`,\n systemType: ENUM_TYPES.BRACKISH_SURFACE_WATER,\n },\n\n [ENUM_TEMPLATES.FRESH_SURFACE_WATER]: {\n name: ENUM_TEMPLATES.FRESH_SURFACE_WATER,\n icon: `${ICON_ASSET_PATH}/Fresh Surface Water.svg`,\n systemType: ENUM_TYPES.FRESH_SURFACE_WATER,\n },\n [ENUM_TEMPLATES.UTILITY]: {\n name: ENUM_TEMPLATES.UTILITY,\n icon: '',\n // `${ICON_ASSET_PATH}/rain.svg`,\n },\n\n [ENUM_TEMPLATES.GROUND_WATER_RENEWABLE]: {\n name: ENUM_TEMPLATES.GROUND_WATER_RENEWABLE,\n icon: `${ICON_ASSET_PATH}/Groundwater - Renewable.svg`,\n systemType: ENUM_TYPES.GROUND_WATER_RENEWABLE,\n },\n [ENUM_TEMPLATES.SPECIAL_OTHER]: {\n name: ENUM_TEMPLATES.SPECIAL_OTHER,\n icon: `${SPECIAL_ICON_ASSET_PATH}/Discharge.svg`,\n },\n // Energy\n // Electric Node Template ====================================================================\n [ENUM_TEMPLATES.GRID]: {\n name: ENUM_TEMPLATES.GRID,\n icon: `${ENERGY_ICON_ASSET_PATH}/Grid.svg`,\n systemType: ENUM_TYPES.GRID,\n // size: {\n // h: GRID_SIZE * 8,\n // w: GRID_SIZE * 6,\n // },\n },\n [ENUM_TEMPLATES.DIESEL_GENERATORS]: {\n name: ENUM_TEMPLATES.DIESEL_GENERATORS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Diesel Generators.svg`,\n systemType: ENUM_TYPES.DIESEL_GENERATORS,\n // size: {\n // h: GRID_SIZE * 8,\n // w: GRID_SIZE * 6,\n // },\n },\n [ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE]: {\n name: ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE,\n icon: `${ENERGY_ICON_ASSET_PATH}/Battery.svg`,\n systemType: ENUM_TYPES.BATTERY_ENERGY_STORAGE,\n },\n [ENUM_TEMPLATES.LIGHTING_SYSTEMS]: {\n name: ENUM_TEMPLATES.LIGHTING_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Lighting systems.svg`,\n systemType: ENUM_TYPES.LIGHTING_SYSTEMS,\n },\n [ENUM_TEMPLATES.LIGHTINGS]: {\n name: ENUM_TEMPLATES.LIGHTINGS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Lights.svg`,\n systemType: ENUM_TYPES.LIGHTINGS,\n },\n [ENUM_TEMPLATES.ELECTRIC_METERS]: {\n name: ENUM_TEMPLATES.ELECTRIC_METERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Meter.svg`,\n systemType: ENUM_TYPES.ELECTRIC_METERS,\n },\n\n [ENUM_TEMPLATES.TRANSFORMERS]: {\n name: ENUM_TEMPLATES.TRANSFORMERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Transformer.svg`,\n systemType: ENUM_TYPES.TRANSFORMERS,\n },\n [ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE]: {\n name: ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n icon: `${ENERGY_ICON_ASSET_PATH}/Pumped hydro storage systems.svg`,\n systemType: ENUM_TYPES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n },\n [ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE]: {\n name: ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE,\n icon: `${ENERGY_ICON_ASSET_PATH}/Pumped hydro storage systems.svg`,\n systemType: ENUM_TYPES.PUMPED_HYDRO_STORAGE,\n },\n [ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE]: {\n name: ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE,\n icon: `${ENERGY_ICON_ASSET_PATH}/Thermal energy storage systems.svg`,\n systemType: ENUM_TYPES.THERMAL_ENERGY_STORAGE,\n },\n [ENUM_TEMPLATES.SUPER_CAPACITOR_ENERGY_STORAGE]: {\n name: ENUM_TEMPLATES.SUPER_CAPACITOR_ENERGY_STORAGE,\n icon: `${ENERGY_ICON_ASSET_PATH}/Supercapacitor energy storage systems.svg`,\n systemType: ENUM_TYPES.SUPER_CAPACITOR_ENERGY_STORAGE,\n },\n [ENUM_TEMPLATES.SWITCH_GEARS]: {\n name: ENUM_TEMPLATES.SWITCH_GEARS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Switchgear.svg`,\n systemType: ENUM_TYPES.SWITCH_GEARS,\n },\n [ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS]: {\n name: ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Process control and automation systems.svg`,\n systemType: ENUM_TYPES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n },\n [ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES]: {\n name: ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES,\n icon: `${ENERGY_ICON_ASSET_PATH}/Process equipment and machines.svg`,\n systemType: ENUM_TYPES.PROCESS_EQUIPMENT_MACHINES,\n },\n [ENUM_TEMPLATES.OFFICE_EQUIPMENT]: {\n name: ENUM_TEMPLATES.OFFICE_EQUIPMENT,\n icon: `${ENERGY_ICON_ASSET_PATH}/Office equipment.svg`,\n systemType: ENUM_TYPES.OFFICE_EQUIPMENT,\n },\n [ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS]: {\n name: ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Power distribution and control systems.svg`,\n systemType: ENUM_TYPES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n },\n [ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS]: {\n name: ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Power distribution systems.svg`,\n systemType: ENUM_TYPES.POWER_DISTRIBUTION_SYSTEMS,\n },\n [ENUM_TEMPLATES.NATURAL_GAS_GENERATORS]: {\n name: ENUM_TEMPLATES.NATURAL_GAS_GENERATORS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Natural gas generators.svg`,\n systemType: ENUM_TYPES.NATURAL_GAS_GENERATORS,\n },\n [ENUM_TEMPLATES.MOTOR_CONTROLS]: {\n name: ENUM_TEMPLATES.MOTOR_CONTROLS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Motor control centers (MCCs).svg`,\n systemType: ENUM_TYPES.MOTOR_CONTROLS,\n },\n [ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS]: {\n name: ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Variable frequency drives (VFDs).svg`,\n systemType: ENUM_TYPES.VARIABLE_FREQUENCY_DRIVERS,\n },\n [ENUM_TEMPLATES.ELECTRIC_HVAC]: {\n name: ENUM_TEMPLATES.ELECTRIC_HVAC,\n icon: `${ENERGY_ICON_ASSET_PATH}/Gas HVAC.svg`,\n systemType: ENUM_TYPES.ELECTRIC_HVAC,\n },\n [ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS]: {\n name: ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Compressed air.svg`,\n systemType: ENUM_TYPES.COMPRESSED_AIR_SYSTEMS,\n },\n [ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS]: {\n name: ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Refrigeration and cooling systems.svg`,\n systemType: ENUM_TYPES.REFRIGERATION_COOLING_SYSTEMS,\n },\n\n [ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT]: {\n name: ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT,\n icon: `${ENERGY_ICON_ASSET_PATH}/Material handling equipment.svg`,\n systemType: ENUM_TYPES.MATERIAL_HANDLING_EQUIPMENT,\n },\n [ENUM_TEMPLATES.WIND_POWER]: {\n name: ENUM_TEMPLATES.WIND_POWER,\n icon: `${ENERGY_ICON_ASSET_PATH}/Wind Power.svg`,\n systemType: ENUM_TYPES.WIND_POWER,\n },\n\n [ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS]: {\n name: ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Industrial motors.svg`,\n systemType: ENUM_TYPES.ELECTRIC_INDUSTRIAL_MOTORS,\n },\n [ENUM_TEMPLATES.GROUNDING]: {\n name: ENUM_TEMPLATES.GROUNDING,\n icon: `${ENERGY_ICON_ASSET_PATH}/Grounding systems.svg`,\n systemType: ENUM_TYPES.GROUNDING,\n },\n // Gas ================================================================================\n\n [ENUM_TEMPLATES.NATURAL_GAS_PIPELINES]: {\n name: ENUM_TEMPLATES.NATURAL_GAS_PIPELINES,\n icon: `${GAS_ICON_ASSET_PATH}/Natural gas pipelines.svg`,\n systemType: ENUM_TYPES.NATURAL_GAS_PIPELINES,\n },\n // [ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS]: {\n // name: ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS,\n // icon: `${GAS_ICON_ASSET_PATH}/Liquefied natural gas (LNG) shipments.svg`,\n // systemType: ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n // },\n [ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE]: {\n name: ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE,\n icon: `${GAS_ICON_ASSET_PATH}/Compressed natural gas pipeline (CNG).svg`,\n systemType: ENUM_TYPES.COMPRESSED_NATURAL_GAS_PIPELINE,\n },\n // [ENUM_TEMPLATES.ON_SITE_PRODUCTION]: {\n // name: ENUM_TEMPLATES.ON_SITE_PRODUCTION,\n // icon: `${GAS_ICON_ASSET_PATH}/On-site production.svg`,\n // systemType: ENUM_TYPES.ON_SITE_PRODUCTION,\n // },\n [ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PRODUCTION]: {\n name: ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n icon: `${GAS_ICON_ASSET_PATH}/Compressed natural gas pipeline (CNG).svg`,\n systemType: ENUM_TYPES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n },\n [ENUM_TEMPLATES.BOILERS_AND_HEATERS]: {\n name: ENUM_TEMPLATES.BOILERS_AND_HEATERS,\n icon: `${GAS_ICON_ASSET_PATH}/Boilers and heaters.svg`,\n systemType: ENUM_TYPES.BOILERS_AND_HEATERS,\n },\n [ENUM_TEMPLATES.FURNACES]: {\n name: ENUM_TEMPLATES.FURNACES,\n icon: `${GAS_ICON_ASSET_PATH}/Furnaces.svg`,\n systemType: ENUM_TYPES.FURNACES,\n },\n [ENUM_TEMPLATES.POWER_GENERATION]: {\n name: ENUM_TEMPLATES.POWER_GENERATION,\n icon: `${GAS_ICON_ASSET_PATH}/Power generation.svg`,\n systemType: ENUM_TYPES.POWER_GENERATION,\n },\n [ENUM_TEMPLATES.COGENERATION]: {\n name: ENUM_TEMPLATES.COGENERATION,\n icon: `${GAS_ICON_ASSET_PATH}/Cogeneration.svg`,\n systemType: ENUM_TYPES.COGENERATION,\n },\n [ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS]: {\n name: ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS,\n icon: `${GAS_ICON_ASSET_PATH}/Combined cycle power plants.svg`,\n systemType: ENUM_TYPES.COMBINED_CYCLE_POWER_PLANTS,\n },\n [ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT]: {\n name: ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n icon: `${GAS_ICON_ASSET_PATH}/Fuel for vehicles and equipment.svg`,\n systemType: ENUM_TYPES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n },\n [ENUM_TEMPLATES.GAS_METERS]: {\n name: ENUM_TEMPLATES.GAS_METERS,\n icon: `${GAS_ICON_ASSET_PATH}/Gas meters.svg`,\n systemType: ENUM_TYPES.GAS_METERS,\n },\n // [ENUM_TEMPLATES.BURNERS]: {\n // name: ENUM_TEMPLATES.BURNERS,\n // icon: `${GAS_ICON_ASSET_PATH}/Burners.svg`,\n // systemType: ENUM_TYPES.BURNERS,\n // },\n // [ENUM_TEMPLATES.FLUE_GAS_ANALYZERS]: {\n // name: ENUM_TEMPLATES.FLUE_GAS_ANALYZERS,\n // icon: `${GAS_ICON_ASSET_PATH}/Flue gas analyzers.svg`,\n // systemType: ENUM_TYPES.FLUE_GAS_ANALYZERS,\n // },\n [ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS]: {\n name: ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS,\n icon: `${GAS_ICON_ASSET_PATH}/Combustion control systems.svg`,\n systemType: ENUM_TYPES.COMBUSTION_CONTROL_SYSTEMS,\n },\n [ENUM_TEMPLATES.GAS_STORAGE_TANKS]: {\n name: ENUM_TEMPLATES.GAS_STORAGE_TANKS,\n icon: `${GAS_ICON_ASSET_PATH}/Gas storage tanks.svg`,\n systemType: ENUM_TYPES.GAS_STORAGE_TANKS,\n },\n [ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS]: {\n name: ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS,\n icon: `${GAS_ICON_ASSET_PATH}/Gas pressure regulators.svg`,\n systemType: ENUM_TYPES.GAS_PRESSURE_REGULATORS,\n },\n [ENUM_TEMPLATES.NATURAL_GAS]: {\n name: ENUM_TEMPLATES.NATURAL_GAS,\n icon: `${GAS_ICON_ASSET_PATH}/Natural Gas.svg`,\n systemType: ENUM_TYPES.NATURAL_GAS,\n },\n // Fuel==========================================================\n [ENUM_TEMPLATES.DIESEL_FUELS]: {\n name: ENUM_TEMPLATES.DIESEL_FUELS,\n icon: `${FUEL_ICON_ASSET_PATH}/Diesel fuel.svg`,\n systemType: ENUM_TYPES.DIESEL_FUELS,\n },\n [ENUM_TEMPLATES.GASON_LINES]: {\n name: ENUM_TEMPLATES.GASON_LINES,\n icon: `${FUEL_ICON_ASSET_PATH}/Gasoline.svg`,\n systemType: ENUM_TYPES.GASON_LINES,\n },\n [ENUM_TEMPLATES.BIODIESELS]: {\n name: ENUM_TEMPLATES.BIODIESELS,\n icon: `${FUEL_ICON_ASSET_PATH}/Biodiesel.svg`,\n systemType: ENUM_TYPES.BIODIESELS,\n },\n [ENUM_TEMPLATES.KEROSENSE]: {\n name: ENUM_TEMPLATES.KEROSENSE,\n icon: `${FUEL_ICON_ASSET_PATH}/Kerosene.svg`,\n systemType: ENUM_TYPES.KEROSENSE,\n },\n [ENUM_TEMPLATES.PROPANES]: {\n name: ENUM_TEMPLATES.PROPANES,\n icon: `${FUEL_ICON_ASSET_PATH}/Propane.svg`,\n systemType: ENUM_TYPES.PROPANES,\n },\n [ENUM_TEMPLATES.TANKER_TRUCKS]: {\n name: ENUM_TEMPLATES.TANKER_TRUCKS,\n icon: `${FUEL_ICON_ASSET_PATH}/Tanker Trucks.svg`,\n systemType: ENUM_TYPES.TANKER_TRUCKS,\n },\n [ENUM_TEMPLATES.PIPELINE]: {\n name: ENUM_TEMPLATES.PIPELINE,\n icon: `${FUEL_ICON_ASSET_PATH}/Pipeline.svg`,\n systemType: ENUM_TYPES.PIPELINE,\n },\n\n [ENUM_TEMPLATES.INDUSTRIAL_BOILERS]: {\n name: ENUM_TEMPLATES.INDUSTRIAL_BOILERS,\n icon: `${FUEL_ICON_ASSET_PATH}/Industrial boilers.svg`,\n systemType: ENUM_TYPES.INDUSTRIAL_BOILERS,\n },\n [ENUM_TEMPLATES.GENERATORS]: {\n name: ENUM_TEMPLATES.GENERATORS,\n icon: `${FUEL_ICON_ASSET_PATH}/Generators.svg`,\n systemType: ENUM_TYPES.GENERATORS,\n },\n [ENUM_TEMPLATES.INDUSTRIAL_FURNACES]: {\n name: ENUM_TEMPLATES.INDUSTRIAL_FURNACES,\n icon: `${FUEL_ICON_ASSET_PATH}/Industrial furnaces.svg`,\n systemType: ENUM_TYPES.INDUSTRIAL_FURNACES,\n },\n [ENUM_TEMPLATES.INDUSTRIAL_OVENS]: {\n name: ENUM_TEMPLATES.INDUSTRIAL_OVENS,\n icon: `${FUEL_ICON_ASSET_PATH}/Industrial ovens.svg`,\n systemType: ENUM_TYPES.INDUSTRIAL_OVENS,\n },\n [ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT]: {\n name: ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n icon: `${FUEL_ICON_ASSET_PATH}/Industrial vehicles and equipment.svg`,\n systemType: ENUM_TYPES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n },\n\n [ENUM_TEMPLATES.FUEL_METERS]: {\n name: ENUM_TEMPLATES.FUEL_METERS,\n icon: `${FUEL_ICON_ASSET_PATH}/Fuel meters.svg`,\n systemType: ENUM_TYPES.FUEL_METERS,\n },\n [ENUM_TEMPLATES.FUEL_DISPENSERS]: {\n name: ENUM_TEMPLATES.FUEL_DISPENSERS,\n icon: `${FUEL_ICON_ASSET_PATH}/Fuel dispensers.svg`,\n systemType: ENUM_TYPES.FUEL_DISPENSERS,\n },\n [ENUM_TEMPLATES.FUEL_STRORAGE_TANKS]: {\n name: ENUM_TEMPLATES.FUEL_STRORAGE_TANKS,\n icon: `${FUEL_ICON_ASSET_PATH}/Fuel storage tanks.svg`,\n systemType: ENUM_TYPES.FUEL_STRORAGE_TANKS,\n },\n [ENUM_TEMPLATES.FUEL_FILTRATIONS]: {\n name: ENUM_TEMPLATES.FUEL_FILTRATIONS,\n icon: `${FUEL_ICON_ASSET_PATH}/Fuel filtration systems.svg`,\n systemType: ENUM_TYPES.FUEL_FILTRATIONS,\n },\n [ENUM_TEMPLATES.FUEL_MANAGEMENTS]: {\n name: ENUM_TEMPLATES.FUEL_MANAGEMENTS,\n icon: `${FUEL_ICON_ASSET_PATH}/Fuel management systems.svg`,\n systemType: ENUM_TYPES.FUEL_MANAGEMENTS,\n },\n\n [ENUM_TEMPLATES.FUELS]: {\n name: ENUM_TEMPLATES.FUELS,\n icon: `${FUEL_ICON_ASSET_PATH}/Diesel fuel.svg`,\n systemType: ENUM_TYPES.FUELS,\n },\n\n // Gas new\n [ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS]: {\n name: ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Natural gas generators.svg`,\n systemType: ENUM_TYPES.LIQUEFIED_NATURAL_GAS,\n },\n [ENUM_TEMPLATES.ON_SITE_PRODUCTION]: {\n name: ENUM_TEMPLATES.ON_SITE_PRODUCTION,\n icon: `${ENERGY_ICON_ASSET_PATH}/Natural gas generators.svg`,\n systemType: ENUM_TYPES.ON_SITE_PRODUCTION,\n },\n\n [ENUM_TEMPLATES.BURNERS]: {\n name: ENUM_TEMPLATES.BURNERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Power conditioning unit (PCU).svg`,\n systemType: ENUM_TYPES.BURNERS,\n },\n [ENUM_TEMPLATES.FLUE_GAS_ANALYZERS]: {\n name: ENUM_TEMPLATES.FLUE_GAS_ANALYZERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Power conditioning unit (PCU).svg`,\n systemType: ENUM_TYPES.FLUE_GAS_ANALYZERS,\n },\n // Solar ==========================================================\n [ENUM_TEMPLATES.SOLAR_POWER]: {\n name: ENUM_TEMPLATES.SOLAR_POWER,\n icon: `${ENERGY_ICON_ASSET_PATH}/Solar.svg`,\n systemType: ENUM_TYPES.SOLAR_POWER,\n },\n [ENUM_TEMPLATES.POWER_CONDITIONING_UNIT]: {\n name: ENUM_TEMPLATES.POWER_CONDITIONING_UNIT,\n icon: `${ENERGY_ICON_ASSET_PATH}/Power conditioning unit (PCU).svg`,\n systemType: ENUM_TYPES.POWER_CONDITIONING_UNIT,\n },\n [ENUM_TEMPLATES.INVERTERS]: {\n name: ENUM_TEMPLATES.INVERTERS,\n icon: `${ENERGY_ICON_ASSET_PATH}/Inverter.svg`,\n systemType: ENUM_TYPES.INVERTERS,\n },\n [ENUM_TEMPLATES.BATTERIES]: {\n name: ENUM_TEMPLATES.BATTERIES,\n icon: `${ENERGY_ICON_ASSET_PATH}/Battery.svg`,\n systemType: ENUM_TYPES.BATTERIES,\n },\n\n [ENUM_TEMPLATES.ZONE]: {\n name: ENUM_TEMPLATES.ZONE,\n // icon: `${ENERGY_ICON_ASSET_PATH}/Battery.svg`,\n },\n [ENUM_TEMPLATES.ZONE_ENERGY_ITEM]: {\n name: ENUM_TEMPLATES.ZONE_ENERGY_ITEM,\n },\n\n // UNCATEGORIZED\n [ENUM_TEMPLATES.UNCATEGORIZED]: {\n name: ENUM_TEMPLATES.UNCATEGORIZED,\n icon: '',\n // `${ICON_ASSET_PATH}/rain.svg`,\n },\n\n // Plant Cell\n [ENUM_TEMPLATES.PLANT_CELL]: {\n name: ENUM_TEMPLATES.PLANT_CELL,\n icon: `${PLANT_CELL_PATH}/Cell.svg`,\n systemType: ENUM_TYPES.PLANT_CELL,\n },\n [ENUM_TEMPLATES.INPUT_PLANT_CELL]: {\n name: ENUM_TEMPLATES.INPUT_PLANT_CELL,\n icon: '',\n },\n [ENUM_TEMPLATES.OUTPUT_PLANT_CELL]: {\n name: ENUM_TEMPLATES.OUTPUT_PLANT_CELL,\n icon: '',\n },\n\n [ENUM_TEMPLATES.PLANT_CELL_INPUT_GROUP]: {\n name: ENUM_TEMPLATES.PLANT_CELL_INPUT_GROUP,\n icon: ``,\n },\n [ENUM_TEMPLATES.PLANT_CELL_OUTPUT_GROUP]: {\n name: ENUM_TEMPLATES.PLANT_CELL_OUTPUT_GROUP,\n icon: ``,\n },\n\n [ENUM_TEMPLATES.IMAGE_TEMPLATE]: {\n name: ENUM_TEMPLATES.IMAGE_TEMPLATE,\n icon: ``,\n },\n [ENUM_TEMPLATES.PARAM_TABLE]: {\n name: ENUM_TEMPLATES.PARAM_TABLE,\n icon: ``,\n },\n [ENUM_TEMPLATES.MASS_BALANCE]: {\n name: ENUM_TEMPLATES.MASS_BALANCE,\n icon: ``,\n },\n\n // STEAM\n [ENUM_TEMPLATES.VALUES]: {\n name: ENUM_TEMPLATES.VALUES,\n icon: `${STEAM_ICON_ASSET_PATH}/Steam_Valve.png`,\n },\n [ENUM_TEMPLATES.STEAM_TRAPS]: {\n name: ENUM_TEMPLATES.STEAM_TRAPS,\n icon: `${STEAM_ICON_ASSET_PATH}/Trap.png`,\n },\n [ENUM_TEMPLATES.PRESSURE_REGULATORS]: {\n name: ENUM_TEMPLATES.PRESSURE_REGULATORS,\n icon: `${STEAM_ICON_ASSET_PATH}/Pressure_Regulator.png`,\n },\n [ENUM_TEMPLATES.SAFETY_VALUES_AND_EQUIPMENT]: {\n name: ENUM_TEMPLATES.SAFETY_VALUES_AND_EQUIPMENT,\n icon: `${STEAM_ICON_ASSET_PATH}/safety valve.png`,\n },\n [ENUM_TEMPLATES.CONDENSATE_RETURN_SYSTEM]: {\n name: ENUM_TEMPLATES.CONDENSATE_RETURN_SYSTEM,\n icon: `${STEAM_ICON_ASSET_PATH}/Condensate Return System.png`,\n },\n [ENUM_TEMPLATES.DEAERATORS]: {\n name: ENUM_TEMPLATES.DEAERATORS,\n icon: `${STEAM_ICON_ASSET_PATH}/Deaerators.png`,\n },\n [ENUM_TEMPLATES.FEEDWATER_PUMPS]: {\n name: ENUM_TEMPLATES.FEEDWATER_PUMPS,\n icon: `${STEAM_ICON_ASSET_PATH}/Feed Water Pump.png`,\n },\n [ENUM_TEMPLATES.BLOWDOWN_TANKS]: {\n name: ENUM_TEMPLATES.BLOWDOWN_TANKS,\n icon: `${STEAM_ICON_ASSET_PATH}/Blowdown tank.png`,\n },\n [ENUM_TEMPLATES.EXPANSION_TANKS]: {\n name: ENUM_TEMPLATES.EXPANSION_TANKS,\n icon: `${STEAM_ICON_ASSET_PATH}/Expansion Tanks.png`,\n },\n [ENUM_TEMPLATES.HEAT_EXCHANGERS]: {\n name: ENUM_TEMPLATES.HEAT_EXCHANGERS,\n icon: `${STEAM_ICON_ASSET_PATH}/heat exchangers.png`,\n },\n [ENUM_TEMPLATES.TURBINES]: {\n name: ENUM_TEMPLATES.TURBINES,\n icon: `${STEAM_ICON_ASSET_PATH}/steam turbine.png`,\n },\n\n // Plant Basic\n [ENUM_TEMPLATES.GROUP_BASIC_COMPONENT]: {\n name: ENUM_TEMPLATES.GROUP_BASIC_COMPONENT,\n icon: ``,\n },\n };\n\n export const WITHDRAW_DISCHARGE_ICON: {\n [key in string]: any;\n } = {\n [ENUM_TYPES.FRESH_SURFACE_WATER]: {\n name: ENUM_TEMPLATES.FRESH_SURFACE_WATER,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Fresh surface water - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Fresh surface water.svg`,\n },\n [ENUM_TYPES.THIRD_PARTY_SOURCES]: {\n name: ENUM_TEMPLATES.THIRD_PARTY_SOURCES,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Third party sources - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Third party sources.svg`,\n isHasWaterCapcity: true,\n },\n [ENUM_TYPES.THIRD_PARTY_DESTINATIONS]: {\n name: ENUM_TEMPLATES.THIRD_PARTY_DESTINATIONS,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Third party sources - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Third party sources.svg`,\n isHasWaterCapcity: true,\n },\n [ENUM_TYPES.GROUND_WATER_NON_RENEWABLE]: {\n name: ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - non-renewable - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - non-renewable.svg`,\n },\n [ENUM_TYPES.PRODUCED_ENTRAINED]: {\n name: ENUM_TEMPLATES.PRODUCED_ENTRAINED,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - renewable - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - renewable.svg`,\n },\n [ENUM_TYPES.BRACKISH_SURFACE_WATER]: {\n name: ENUM_TEMPLATES.BRACKISH_SURFACE_WATER,\n iconiconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Brackish surface - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Brackish surface.svg`,\n },\n [ENUM_TYPES.GROUND_WATER_RENEWABLE]: {\n name: ENUM_TEMPLATES.GROUND_WATER_RENEWABLE,\n iconActive: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - renewable - Duo.svg`,\n iconDisabled: `${ICON_ASSET_WITHDRAW_DISCHARGE_ICON}/Groundwater - renewable.svg`,\n },\n };\n\n export const WITHDRAW_DISCHARGE_DIAGRAM_HOME = {\n withdrawSourcesChildren: [\n ENUM_TYPES.WATER_TREATMENT,\n ENUM_TYPES.DEMIN_WATER_TREATMENT,\n ENUM_TYPES.RO_WATER_TREATMENT,\n ],\n dischargeDestinationsChildren: [\n ENUM_TYPES.WASTEWATER_TREATMENT,\n ENUM_TYPES.DAF_WASTEWATER_TREATMENT,\n ENUM_TYPES.ETP_WASTEWATER_TREATMENT,\n ENUM_TYPES.MBR_WASTEWATER_TREATMENT,\n ENUM_TYPES.ZLD_WASTEWATER_TREATMENT,\n ],\n };\n\n export enum ACTION_RIGHT_MENU_GROUP {\n PLANT_TEMPLATES = 'Plant Templates',\n PLANT_CELLS = 'Plant Cell',\n DATA_BOX = 'Measurement',\n SYSTEM_TEMPLATES = 'System Templates',\n WATER_COMPONENT = 'Water Components',\n }\n\n export enum DATA_BOX_NAME_OF_COMPONENT {\n INFLOW = 'Inflow Of',\n OUTFLOW = 'Outflow From',\n }\n\n export enum ACTION_RIGHT_MENU {\n APPLY_TEMPLATE = 'ApplyTemplate',\n NEW_PLANT_CELL = 'NewPlantCell',\n NAME_PLANT_CELL = 'NamePlantCell',\n ADD_COMPONENT = 'AddComponent',\n }\n\n export const DATA_MENU = [\n {\n name: 'Plant Templates',\n componentType: ATO_ECOMPONENT_PLANT_TYPE.WATER,\n isFilterType: true,\n groupType: ACTION_RIGHT_MENU_GROUP.PLANT_TEMPLATES,\n children: [\n {\n name: 'Food and Beverages',\n children: [],\n actionType: ACTION_RIGHT_MENU.APPLY_TEMPLATE,\n isDrag: true,\n },\n {\n name: 'Power plant',\n children: [],\n actionType: ACTION_RIGHT_MENU.APPLY_TEMPLATE,\n isDrag: true,\n },\n ],\n },\n\n // {\n // name: 'Plant Cells',\n // groupType: ACTION_RIGHT_MENU_GROUP.PLANT_CELLS,\n // componentType: E_COMPONENT_PLANT_TYPE.WATER,\n // isFilterType: true,\n // children: [\n // {\n // name: 'Beer Production cell',\n // children: [],\n // actionType: ACTION_RIGHT_MENU.NAME_PLANT_CELL,\n // isDrag: true,\n // isViewMode: true,\n // systemType: ENUM_TYPES.PLANT_CELL,\n // type: ENUM_TYPES.PLANT_CELL,\n // inputType: TYPE_INPUT.TEXT,\n // fc: new FormControl('Beer Production cell', Validators.required),\n // fcBackup: new FormControl('Beer Production cell', Validators.required),\n // },\n // {\n // name: 'New Plant Cell',\n // children: [],\n // actionType: ACTION_RIGHT_MENU.NEW_PLANT_CELL,\n // isDrag: false,\n // },\n // ],\n // },\n ];\n\n export const WATER_USING_SYSTEM = [\n ENUM_TYPES.COOLING_TOWER,\n ENUM_TYPES.BOILER,\n ENUM_TYPES.OTHER,\n ENUM_TYPES.PROCESS,\n ENUM_TYPES.DOMESTIC_USE,\n ENUM_TYPES.LANDSCAPING_IRRIGATION,\n ];\n\n export const PARAM_TABLE_STYLE = {\n [ENUM_COLORS.CERULEAN]: {\n borderTable: ENUM_COLORS.CERULEAN,\n bgColor: ENUM_COLORS.CERULEAN_ALICE_BLUE,\n },\n [ENUM_COLORS.DANUBE]: {\n borderTable: ENUM_COLORS.DANUBE,\n bgColor: ENUM_COLORS.DANUBE_ALICE_BLUE,\n },\n [ENUM_COLORS.FOUNTAIN_BLUE]: {\n borderTable: ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: ENUM_COLORS.AZURE,\n },\n [ENUM_COLORS.GALLIANO]: {\n borderTable: ENUM_COLORS.GALLIANO,\n bgColor: ENUM_COLORS.OLD_LACE,\n },\n [ENUM_COLORS.WHITE]: {\n borderTable: ENUM_COLORS.WHITE,\n bgColor: ENUM_COLORS.WHITE,\n },\n };\n\n // System type include Water\n export const TYPE_COMPONENT_WATER: string[] = [\n ENUM_TYPES.STORAGE,\n\n ENUM_TYPES.WATER_TREATMENT,\n ENUM_TYPES.DEMIN_WATER_TREATMENT,\n ENUM_TYPES.RO_WATER_TREATMENT,\n\n ENUM_TYPES.PROCESS,\n\n ENUM_TYPES.WASTEWATER_TREATMENT,\n ENUM_TYPES.DAF_WASTEWATER_TREATMENT,\n ENUM_TYPES.ETP_WASTEWATER_TREATMENT,\n ENUM_TYPES.MBR_WASTEWATER_TREATMENT,\n ENUM_TYPES.ZLD_WASTEWATER_TREATMENT,\n\n ENUM_TYPES.DOMESTIC_USE,\n ENUM_TYPES.COOLING_TOWER,\n ENUM_TYPES.BOILER,\n ENUM_TYPES.OTHER,\n ENUM_TYPES.LANDSCAPING_IRRIGATION,\n GojsEditorModel.WaterWithdrawSources,\n GojsEditorModel.WaterDischargeDestinations,\n ];\n\n // Template type includes Water\n export const TYPE_TEMPLATE_WATER_NORMAL: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.PROCESS,\n GojsEditorModel.ENUM_TEMPLATES.BOILER,\n GojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER,\n GojsEditorModel.ENUM_TEMPLATES.ETP_WASTEWATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.ZLD_WASTEWATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.MBR_WASTEWATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.DAF_WASTEWATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.DEMIN_WATER_TREATMENT,\n GojsEditorModel.ENUM_TEMPLATES.STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.DOMESTIC_USE,\n GojsEditorModel.ENUM_TEMPLATES.LANDSCAPING_IRRIGATION,\n GojsEditorModel.ENUM_TEMPLATES.OTHER,\n ];\n // ['Process', 'Boiler', 'Cooling Tower', 'ETP Wastewater Treatment', 'ZLD Wastewater Treatment', 'MBR Wastewater Treatment', 'DAF Wastewater Treatment',\n // 'RO Water Treatment', 'Demin Water Treatment', 'Storage', 'Domestic Use', 'Landscaping/Irrigation', 'Other'];\n export const TYPE_TEMPLATE_WATER_WITHDRAW_OR_DISCHARGE: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.FRESH_SURFACE_WATER,\n GojsEditorModel.ENUM_TEMPLATES.BRACKISH_SURFACE_WATER,\n GojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_RENEWABLE,\n GojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE,\n GojsEditorModel.ENUM_TEMPLATES.PRODUCED_ENTRAINED,\n GojsEditorModel.ENUM_TEMPLATES.THIRD_PARTY_SOURCES,\n GojsEditorModel.ENUM_TEMPLATES.THIRD_PARTY_DESTINATIONS,\n ];\n // ['Fresh surface water', 'Brackish surface water/ seawater', 'Groundwater - Renewable', 'Groundwater - non-renewable', 'Produced / entrained water', 'Third party sources', 'Third party destinations'];\n export const TYPE_TEMPLATE_ELECTRICITY: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.GRID,\n GojsEditorModel.ENUM_TEMPLATES.DIESEL_GENERATORS,\n GojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_GENERATORS,\n GojsEditorModel.ENUM_TEMPLATES.SOLAR_POWER,\n GojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS,\n GojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS,\n GojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS,\n GojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS,\n GojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.LIGHTINGS,\n GojsEditorModel.ENUM_TEMPLATES.GROUNDING,\n GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS,\n GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS,\n GojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC,\n GojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT,\n GojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES,\n GojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT,\n GojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.SUPER_CAPACITOR_ENERGY_STORAGE,\n ];\n // ['Grid', 'Diesel Generators', 'Natural gas generators', 'Solar Power', 'Transformers', 'Switchgears', 'MotorControls', 'VariableFrequencyDrives',\n // 'Power distribution systems', 'Lightings', 'Grounding', 'Electric Meters', 'Industrial motors',\n // 'Lighting systems', 'Heating, ventilation, and air conditioning (HVAC) systems', 'Refrigeration and cooling', 'Process control and automation', 'Office equipment', 'Compressed air',\n // 'Process equipment and machines', 'Material handling equipment', 'Power distribution and control', 'Battery energy storage', 'Flywheel energy storage',\n // 'Pumped hydro storage', 'Thermal energy storage', 'Supercapacitor energy storage'];\n export const TYPE_TEMPLATE_NATURAL_GAS: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_PIPELINES,\n GojsEditorModel.ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS,\n GojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE,\n GojsEditorModel.ENUM_TEMPLATES.ON_SITE_PRODUCTION,\n GojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n GojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS,\n GojsEditorModel.ENUM_TEMPLATES.FURNACES,\n GojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION,\n GojsEditorModel.ENUM_TEMPLATES.COGENERATION,\n GojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n GojsEditorModel.ENUM_TEMPLATES.GAS_METERS,\n GojsEditorModel.ENUM_TEMPLATES.BURNERS,\n GojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS,\n GojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS,\n GojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS,\n GojsEditorModel.ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS,\n ];\n // ['Natural gas pipelines', 'Liquefied natural gas', 'Compressed natural gas pipeline', 'On-site production',\n // 'Compressed natural gas production', 'Boilers and heaters', 'Furnaces', 'Power generation', 'Cogeneration', 'Combined cycle power plants',\n // 'Fuel for vehicles and equipment', 'Gas meters', 'Burners', 'Flue gas analyzers', 'Combustion control systems', 'Gas storage tanks',\n // 'Gas pressure regulators'];\n export const TYPE_TEMPLATE_FUEL: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS,\n GojsEditorModel.ENUM_TEMPLATES.GASON_LINES,\n GojsEditorModel.ENUM_TEMPLATES.BIODIESELS,\n GojsEditorModel.ENUM_TEMPLATES.KEROSENSE,\n GojsEditorModel.ENUM_TEMPLATES.PROPANES,\n GojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS,\n GojsEditorModel.ENUM_TEMPLATES.PIPELINE,\n GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS,\n GojsEditorModel.ENUM_TEMPLATES.GENERATORS,\n GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES,\n GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS,\n GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_METERS,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS,\n GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS,\n ];\n // ['DieselFuels', 'Gasonlines', 'Biodiesels', 'Kerosenes', 'Propanes', 'Tanker Trucks',\n // 'Pipeline', 'Industrial boilers', 'Generators', 'Industrial furnaces', 'Industrial ovens', 'Industrial vehicles and equipment',\n // 'FuelMeters', 'FuelDispensers', 'FuelStorageTanks', 'FuelFiltrations', 'FuelManagements'];\n export const TYPE_TEMPLATE_STEAM: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.VALUES,\n GojsEditorModel.ENUM_TEMPLATES.STEAM_TRAPS,\n GojsEditorModel.ENUM_TEMPLATES.PRESSURE_REGULATORS,\n GojsEditorModel.ENUM_TEMPLATES.SAFETY_VALUES_AND_EQUIPMENT,\n GojsEditorModel.ENUM_TEMPLATES.CONDENSATE_RETURN_SYSTEM,\n GojsEditorModel.ENUM_TEMPLATES.DEAERATORS,\n GojsEditorModel.ENUM_TEMPLATES.FEEDWATER_PUMPS,\n GojsEditorModel.ENUM_TEMPLATES.BLOWDOWN_TANKS,\n GojsEditorModel.ENUM_TEMPLATES.EXPANSION_TANKS,\n GojsEditorModel.ENUM_TEMPLATES.HEAT_EXCHANGERS,\n GojsEditorModel.ENUM_TEMPLATES.TURBINES,\n ];\n // ['Valves', 'Steam Traps', 'Pressure Regulator', 'Safety Valves and Equipment', 'Condensate Return System', 'Deaerators',\n // 'Feedwater Pumps', 'Blowdown Tanks', 'Expansion Tanks', 'Heat Exchangers', 'Turbines'];\n export const TYPE_TEMPLATE_SPECIAL: string[] = [\n GojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n GojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORAGE,\n GojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE,\n GojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n GojsEditorModel.ENUM_TEMPLATES.SPECIAL_OTHER,\n ];\n}\n","// export const GO_LICENSE_KEY =\n// '73f946e5b26328a800ca0d2b113f69ed1bb37f3b9e8c1bf15e5041f0ea08681c3089ee7d02da8b9481fb1aa91a7ac089d5c46c7b9e4b013ce037d38f44e480fbe13f77b4435f559ea25676c599a87aa0ee6872f3c1b568a0c5788d';\n\nexport const GO_LICENSE_KEY =\n '298647e0b2604cc702d90676423d6bf919a175639c841ba4090310f6ee083806329fbb2801d38d90d4af4efe1c7f93d0d9c16f209248063db730d2db44e084aeb73320e5410b479cb40573939ffa78f1fd6a61f1c3b672bddf678ffb';\n","export enum ATO_ABBREVIATION {\n L = 'L',\n KL = 'KL',\n gal = 'gal',\n kGal='Kgal',\n m3 = 'm3',\n m3_Special = 'm³',\n Wh = 'Wh',\n kWh = 'kWh',\n cf = 'cf',\n th = 'th',\n BTU = 'BTU',\n BTU_UNIT = 'BTU/unit',\n MM_BTU = 'MMBTU',\n m3_unit = 'm3/unit',\n m3_unit_Special = 'm³/unit',\n J = 'J',\n Bbl = 'Bbl',\n mg = 'mg',\n // Currency\n ALL = 'ALL',\n AFN = 'AFN',\n ARS = 'ARS',\n AWG = 'AWG',\n AUD = 'AUD',\n AZN = 'AZN',\n BSD = 'BSD',\n BBD = 'BBD',\n BYN = 'BYN',\n BZD = 'BZD',\n BMD = 'BMD',\n BOB = 'BOB',\n BAM = 'BAM',\n BWP = 'BWP',\n BGN = 'BGN',\n BRL = 'BRL',\n BND = 'BND',\n KHR = 'KHR',\n CAD = 'CAD',\n KYD = 'KYD',\n CLP = 'CLP',\n CNY = 'CNY',\n COP = 'COP',\n CRC = 'CRC',\n HRK = 'HRK',\n CUP = 'CUP',\n CZK = 'CZK',\n DKK = 'DKK',\n DOP = 'DOP',\n XCD = 'XCD',\n EGP = 'EGP',\n SVC = 'SVC',\n EUR = 'EUR',\n FKP = 'FKP',\n FJD = 'FJD',\n GHS = 'GHS',\n GIP = 'GIP',\n GTQ = 'GTQ',\n GGP = 'GGP',\n GYD = 'GYD',\n HNL = 'HNL',\n HKD = 'HKD',\n HUF = 'HUF',\n ISK = 'ISK',\n INR = 'INR',\n IDR = 'IDR',\n IRR = 'IRR',\n IMP = 'IMP',\n ILS = 'ILS',\n JMD = 'JMD',\n JPY = 'JPY',\n JEP = 'JEP',\n KZT = 'KZT',\n KPW = 'KPW',\n KRW = 'KRW',\n KGS = 'KGS',\n LAK = 'LAK',\n LBP = 'LBP',\n LRD = 'LRD',\n MKD = 'MKD',\n MYR = 'MYR',\n MUR = 'MUR',\n MXN = 'MXN',\n MNT = 'MNT',\n MZN = 'MZN',\n NAD = 'NAD',\n NPR = 'NPR',\n ANG = 'ANG',\n NZD = 'NZD',\n NIO = 'NIO',\n NGN = 'NGN',\n NOK = 'NOK',\n OMR = 'OMR',\n PKR = 'PKR',\n PAB = 'PAB',\n PYG = 'PYG',\n PEN = 'PEN',\n PHP = 'PHP',\n PLN = 'PLN',\n QAR = 'QAR',\n RON = 'RON',\n RUB = 'RUB',\n SHP = 'SHP',\n SAR = 'SAR',\n RSD = 'RSD',\n SCR = 'SCR',\n SGD = 'SGD',\n SBD = 'SBD',\n SOS = 'SOS',\n ZAR = 'ZAR',\n LKR = 'LKR',\n SEK = 'SEK',\n CHF = 'CHF',\n SRD = 'SRD',\n SYP = 'SYP',\n TWD = 'TWD',\n THB = 'THB',\n TTD = 'TTD',\n TRY = 'TRY',\n TVD = 'TVD',\n UAH = 'UAH',\n AED = 'AED',\n GBP = 'GBP',\n USD = 'USD',\n UYU = 'UYU',\n UZS = 'UZS',\n VEF = 'VEF',\n VND = 'VND',\n YER = 'YER',\n ZWD = 'ZWD',\n\n\n // For Steam\n g = 'g',\n lbs = 'lbs',\n g_hr = 'g/hr',\n lbs_hr = 'lbs/hr',\n MPa = 'MPa',\n GPa = 'GPa',\n psi = 'psi',\n degC = 'degC',\n degF = 'degF',\n degC_unit_Special = '°C',\n degF_unit_Special = '°F',\n ton = 'ton',\n kg = 'kg',\n\n // Emission\n CO2 = 'CO2',\n CO2_Special = 'CO₂'\n}\n\nexport enum METRIC_PREFIXES {\n K = 'K',\n Mn = 'Mn',\n Bn = 'Bn',\n //\n M = 'M',\n MM = 'MM',\n B = 'B',\n //\n G = 'G', // 1000000000\n}\n\nexport enum ROUNDED_NUMBER {\n THOUSAND = 1000,\n MILLION = 1000000,\n BILLION = 1000000000,\n}\n\nconst PREFIXES_CURRENCY = {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n};\n\nexport const APPLICABLE_PREFIXES: {\n [key in ATO_ABBREVIATION]: any;\n} = {\n [ATO_ABBREVIATION.KL]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.L]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.gal]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.kGal]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.m3]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n [ATO_ABBREVIATION.m3_Special]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n\n [ATO_ABBREVIATION.m3_unit]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n [ATO_ABBREVIATION.m3_unit_Special]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n\n [ATO_ABBREVIATION.Wh]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.G,\n },\n [ATO_ABBREVIATION.kWh]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.G,\n },\n [ATO_ABBREVIATION.cf]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n [ATO_ABBREVIATION.th]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n\n [ATO_ABBREVIATION.BTU]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n [ATO_ABBREVIATION.BTU_UNIT]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.MM,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n [ATO_ABBREVIATION.MM_BTU]: {},\n [ATO_ABBREVIATION.J]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.G,\n },\n [ATO_ABBREVIATION.Bbl]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.mg]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.B,\n },\n\n // For Steam\n [ATO_ABBREVIATION.g]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.lbs]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.g_hr]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.lbs_hr]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.MPa]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.GPa]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.psi]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.M,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.G,\n },\n [ATO_ABBREVIATION.degC]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.degF]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.degC_unit_Special]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.degF_unit_Special]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.kg]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n [ATO_ABBREVIATION.ton]: {\n [ROUNDED_NUMBER.THOUSAND]: METRIC_PREFIXES.K,\n [ROUNDED_NUMBER.MILLION]: METRIC_PREFIXES.Mn,\n [ROUNDED_NUMBER.BILLION]: METRIC_PREFIXES.Bn,\n },\n\n // Currency\n [ATO_ABBREVIATION.ALL]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.AFN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ARS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.AWG]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.AUD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.AZN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BSD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BBD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BYN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BZD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BMD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BOB]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BAM]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BWP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BGN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BRL]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.BND]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KHR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CAD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KYD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CLP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CNY]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.COP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CRC]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.HRK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CUP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CZK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.DKK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.DOP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.XCD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.EGP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SVC]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.EUR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.FKP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.FJD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GHS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GIP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GTQ]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GGP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GYD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.HNL]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.HKD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.HUF]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ISK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.INR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.IDR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.IRR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.IMP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ILS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.JMD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.JPY]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.JEP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KZT]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KPW]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KRW]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.KGS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.LAK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.LBP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.LRD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MKD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MYR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MUR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MXN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MNT]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.MZN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NAD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NPR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ANG]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NZD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NIO]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NGN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.NOK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.OMR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PKR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PAB]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PYG]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PEN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PHP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.PLN]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.QAR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.RON]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.RUB]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SHP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SAR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.RSD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SCR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SGD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SBD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SOS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ZAR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.LKR]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SEK]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.CHF]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SRD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.SYP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.TWD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.THB]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.TTD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.TRY]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.TVD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.UAH]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.AED]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.GBP]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.USD]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.UYU]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.UZS]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.VEF]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.VND]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.YER]: PREFIXES_CURRENCY,\n [ATO_ABBREVIATION.ZWD]: PREFIXES_CURRENCY,\n\n // Emission\n [ATO_ABBREVIATION.CO2]: null,\n [ATO_ABBREVIATION.CO2_Special]: null,\n};\n","import { DecimalPipe } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { ATO_ABBREVIATION, APPLICABLE_PREFIXES, ROUNDED_NUMBER, } from '../../constants/applicable-prefixes-const';\nimport { v4 as uuidV4 } from 'uuid';\nimport _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UtilsService {\n static convertPrefixesData(data: { value: number | string | any; unit: string | any; isChangeUnitKwh?: boolean }): {\n shortenedNumber: number | string | null;\n unitPrefixes: number | null | string;\n } {\n if (!data?.unit || (!+data?.value && data?.value !== '0')) {\n return {\n shortenedNumber: data?.value ?? '0',\n unitPrefixes: '',\n };\n }\n\n const [unitToConvert, suffixUnit] = data?.unit?.split('/');\n\n if (unitToConvert === ATO_ABBREVIATION.kWh) {\n return this.getDataFormatSpecialKwh(data?.value, data?.isChangeUnitKwh);\n }\n\n return this.getDataFormatUnit(data?.value, unitToConvert);\n }\n\n static getDataFormatSpecialKwh(value: any, isChangeUnitKwh: any) {\n const _DecimalPipe = new DecimalPipe('en');\n\n if (!!isChangeUnitKwh) {\n // 1.000.000 KWh => 1 GWh\n if (Math.abs(value) >= ROUNDED_NUMBER.MILLION) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.MILLION) ?? 0, '1.0-2'),\n unitPrefixes: APPLICABLE_PREFIXES?.[ATO_ABBREVIATION.kWh]?.[ROUNDED_NUMBER.BILLION],\n };\n }\n // 1000 KWh => 1 MWh\n if (Math.abs(value) >= ROUNDED_NUMBER.THOUSAND) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.THOUSAND) ?? 0, '1.0-2'),\n unitPrefixes: APPLICABLE_PREFIXES?.[ATO_ABBREVIATION.kWh]?.[ROUNDED_NUMBER.MILLION],\n };\n }\n }\n if (Math.abs(value) >= ROUNDED_NUMBER.BILLION) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.MILLION) ?? 0, '1.0-2'),\n unitPrefixes: APPLICABLE_PREFIXES?.[ATO_ABBREVIATION.kWh]?.[ROUNDED_NUMBER.BILLION],\n };\n }\n if (Math.abs(value) >= ROUNDED_NUMBER.MILLION) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.MILLION) ?? 0, '1.0-2'),\n unitPrefixes: APPLICABLE_PREFIXES?.[ATO_ABBREVIATION.kWh]?.[ROUNDED_NUMBER.MILLION],\n };\n }\n if (Math.abs(value) >= ROUNDED_NUMBER.THOUSAND) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.THOUSAND) ?? 0, '1.0-2'),\n unitPrefixes: APPLICABLE_PREFIXES?.[ATO_ABBREVIATION.kWh]?.[ROUNDED_NUMBER.THOUSAND],\n };\n }\n\n return {\n shortenedNumber: _DecimalPipe.transform(+value ?? 0, '1.0-2') ?? '0',\n unitPrefixes: '',\n };\n }\n\n static getDataFormatUnit(value: any, unit: string) {\n const _DecimalPipe = new DecimalPipe('en');\n\n if (Math.abs(value) >= ROUNDED_NUMBER.BILLION) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.BILLION) ?? 0, '1.0-2'),\n unitPrefixes: (APPLICABLE_PREFIXES as any)?.[unit]?.[ROUNDED_NUMBER.BILLION],\n };\n }\n if (Math.abs(value) >= ROUNDED_NUMBER.MILLION) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.MILLION) ?? 0, '1.0-2'),\n unitPrefixes: (APPLICABLE_PREFIXES as any)?.[unit]?.[ROUNDED_NUMBER.MILLION],\n };\n }\n if (Math.abs(value) >= ROUNDED_NUMBER.THOUSAND) {\n return {\n shortenedNumber: _DecimalPipe.transform(+(value / ROUNDED_NUMBER.THOUSAND) ?? 0, '1.0-2'),\n unitPrefixes: (APPLICABLE_PREFIXES as any)?.[unit]?.[ROUNDED_NUMBER.THOUSAND],\n };\n }\n return {\n shortenedNumber: _DecimalPipe.transform(+value ?? 0, '1.0-2') ?? '0',\n unitPrefixes: '',\n };\n }\n\n static convertSpecialUnit(unit: string, unitPrefixes?: any) {\n switch (unit) {\n case ATO_ABBREVIATION.kWh: {\n return unitPrefixes ? ATO_ABBREVIATION.Wh : ATO_ABBREVIATION.kWh;\n }\n case ATO_ABBREVIATION.m3: {\n return ATO_ABBREVIATION.m3_Special;\n }\n case ATO_ABBREVIATION.m3_unit: {\n return ATO_ABBREVIATION.m3_unit_Special;\n }\n case ATO_ABBREVIATION.degC: {\n return ATO_ABBREVIATION.degC_unit_Special;\n }\n case ATO_ABBREVIATION.degF: {\n return ATO_ABBREVIATION.degF_unit_Special;\n }\n default: {\n unit = UtilsService.replaceAll(unit ?? '', ATO_ABBREVIATION.m3, ATO_ABBREVIATION.m3_Special);\n return UtilsService.replaceAll(unit ?? '', ATO_ABBREVIATION.CO2, ATO_ABBREVIATION.CO2_Special);\n }\n }\n }\n\n static generateUUID() {\n const id = UtilsService.replaceAll(uuidV4(), '-', '').toUpperCase();\n const randomPosition = _.random(0, 32);\n const randomNumber = _.random(0, 9).toString();\n const leftChar = id.slice(0, randomPosition);\n const rightChar = id.slice(randomPosition);\n return `${leftChar}${randomNumber}${rightChar}`;\n }\n\n static replaceAll(text: any, find: any, replace: any): string {\n function escapeRegExp(str: any) {\n return str.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1');\n }\n return text.replace(new RegExp(escapeRegExp(find), 'g'), replace);\n }\n}\n","\nexport enum ATO_EPlantType {\n ENTERPRISE = 'Enterprise',\n DIVISION = 'Division',\n PROXY_PLANT = 'proxy',\n BASIC_PLANT = 'basic',\n PLANT = 'plant',\n}\n\n// const PLANT_TYPE_ACTIVE = {\n// key: E_PlantType.PLANT,\n// iconClassName: 'fa-light fa-industry-windows font-size-18px',\n// keyMapingMenu: 'plants',\n// status: PlantComponentModel.PLANT_STATUS.active,\n// description: 'Complete plant setup. Full HWF functionality available.',\n// hexColor: '#199c69',\n// classColor: 'color-elf-green',\n// };\n\n// export const PLANT_TYPE = {\n// [E_PlantType.ENTERPRISE]: {\n// iconClassName: 'fa-light fa-building-user',\n// keyMapingMenu: 'Enterprise',\n// status: '',\n// },\n// [E_PlantType.DIVISION]: {\n// iconClassName: 'fa-light fa-puzzle',\n// keyMapingMenu: 'divisions',\n// status: '',\n// },\n// [E_PlantType.PROXY_PLANT]: {\n// key: E_PlantType.PROXY_PLANT,\n// iconClassName: 'fa-light fa-calendar-users font-size-18px',\n// keyMapingMenu: 'plants',\n// status: PlantComponentModel.PLANT_STATUS.proxy,\n// description: 'No plant dashboard. Fully enterprise managed plant.',\n// hexColor: '#00aec7',\n// classColor: 'color-iris-blue',\n// },\n// [E_PlantType.BASIC_PLANT]: {\n// key: E_PlantType.BASIC_PLANT,\n// iconClassName: 'basic-plant-icon h-23px',\n// keyMapingMenu: 'plants',\n// status: PlantComponentModel.PLANT_STATUS.basic,\n// description: 'Plant dashboard. No topology needed. Limited functionality.',\n// hexColor: '#E09F25',\n// classColor: 'color-galliano-2',\n// },\n// // Same active\n// [E_PlantType.PLANT]: PLANT_TYPE_ACTIVE,\n// [PlantComponentModel.PLANT_STATUS.active]: PLANT_TYPE_ACTIVE,\n// };\n","import { Directive, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { GojsEditorModel } from './gojs-editor.model';\nimport * as go from 'gojs';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { GO_LICENSE_KEY } from '../constants/key.const';\nimport { Subject } from 'rxjs';\nimport { UtilsService } from '../services/utils/utils.service';\nimport { ATO_ENUM_FLOW_DIRECTION, ATO_ECOMPONENT_PLANT_TYPE,\n NO_DATA,\n TEXT_UNKNOWN,\n VALUE_NA, } from '../constants/value.const';\nimport { ATO_EPlantType } from '../constants/plant.constant';\n\nconst ICON_ALERT = '/assets/images/icons/Station.svg';\nconst ARROW = '/assets/images/icons/arrow.svg';\nconst ARROW_GRAY = '/assets/images/icons/arrow-gray.svg';\nconst RO_LINE_DIRTY = '/assets/images/icons/ro_line_dirty.svg';\nconst OUTFLOW_LINE_DIRTY = '/assets/images/icons/outflow_line_dirty.png';\nimport { Subscription } from 'rxjs';\n\n@Directive()\nexport class AtoDefaultGojsEditor implements OnDestroy {\n @ViewChild('menuTrigger') menuTrigger: any;\n @Input() linkValidation: (\n fromNode: go.Node,\n fromPort: go.GraphObject,\n toNode: go.Node,\n toPort: go.GraphObject,\n link: go.Link,\n ) => boolean;\n\n actions: any[] = [];\n actionMenuId: string = 'actionMenuId';\n\n myDiagramDiv: any = this.constructor.name + '-' + moment().valueOf();\n myDiagram: any;\n $ = go.GraphObject.make;\n animationInterval: any;\n defaultScaleZoomToFit?: number;\n\n private _initialOptions: any = {\n 'toolManager.hoverDelay': 200,\n // 'draggingTool.isEnabled': false,\n // initialAutoScale: go.Diagram.UniformToFill,\n // autoScrollRegion: GojsEditorModel.GRID_SIZE * 5,\n layout: this.$(go.LayeredDigraphLayout, { direction: 0 }),\n initialContentAlignment: go.Spot.Center,\n initialAutoScale: go.Diagram.Uniform,\n // contentAlignment: go.Spot.Center,\n // this.$(go.ForceDirectedLayout),\n 'undoManager.isEnabled': true, // enable undo & redo\n // \"animationManager.isInitial\": false,\n // \"animationManager.isEnabled\": false,\n // \"draggingTool.isGridSnapEnabled\": true\n dragSelectingTool: this.$(\n go.DragSelectingTool,\n { isPartialInclusion: true, delay: 50 },\n {\n box: this.$(\n go.Part, // replace the magenta box with a red one\n { layerName: 'Tool', selectable: false },\n this.$(go.Shape, {\n name: 'SHAPE',\n fill: 'rgba(255,0,0,0)',\n stroke: '#E95F47',\n strokeWidth: 2,\n }),\n ),\n },\n ),\n 'linkingTool.linkValidation': this.checkLinkCondition.bind(this),\n 'draggingTool.doMouseMove': function () {\n // do the standard behavior by calling the super method\n go.DraggingTool.prototype.doMouseMove.call(this);\n // if dragging-out from the diagram is not allowed, and\n // if mouse is outside of viewport\n if (\n !this.diagram.allowDragOut &&\n !this.diagram.viewportBounds.containsPoint(this.diagram.lastInput.documentPoint)\n ) {\n this.diagram.ensureBounds();\n const vp = this.diagram.lastInput.viewPoint;\n const dp = this.diagram.position.copy();\n if (vp.x < 0) dp.x -= 10;\n else if (vp.x > 0) dp.x += 10;\n if (vp.y < 0) dp.y -= 10;\n else if (vp.y > 0) dp.y += 10;\n this.diagram.position = dp; // scroll in the direction of the mouse\n }\n },\n // LayoutCompleted: () => {\n // this.myDiagram.zoomToFit();\n // this.defaultScaleZoomToFit = this.myDiagram.scale;\n // if (!this.initialOptions.isReadOnly) {\n // const sizeMargin = GojsEditorModel.GRID_SIZE * 15;\n // this.myDiagram.padding = new go.Margin(sizeMargin);\n // }\n // },\n };\n\n checkLinkCondition(\n fromNode: go.Node,\n fromPort: go.GraphObject,\n toNode: go.Node,\n toPort: go.GraphObject,\n link: go.Link,\n ): boolean {\n if (this.linkValidation) {\n return this.linkValidation(fromNode, fromPort, toNode, toPort, link);\n }\n return true; // Mặc định cho trường hợp không có hàm linkValidation được truyền vào\n }\n\n @Input() set initialOptions(v: any) {\n this._initialOptions = _.merge(this._initialOptions, v);\n // _.extend(v, this._initialOptions);\n }\n\n get initialOptions() {\n return this._initialOptions;\n }\n\n private _editor: GojsEditorModel;\n @Input() set editor(v: GojsEditorModel) {\n this._editor = v;\n if (v) {\n setTimeout(() => {\n this.initDiagram();\n }, 100);\n }\n }\n\n get editor(): GojsEditorModel {\n return this._editor;\n }\n\n @Input() isShowNodeInfo: boolean = false;\n @Input() plantSatus: string;\n\n constructor() {\n go.Diagram.licenseKey = GO_LICENSE_KEY;\n }\n\n @Output() onModelChangeListenerEvent: EventEmitter<any> = new EventEmitter<any>();\n @Output() onClickInfoButton: EventEmitter<any> = new EventEmitter<any>();\n @Output() onOpenWizard: EventEmitter<any> = new EventEmitter<any>();\n @Output() onOpenDetail: EventEmitter<any> = new EventEmitter<any>();\n @Output() onOpenAssetParameter: EventEmitter<any> = new EventEmitter<any>();\n @Output() onOpenInsightMapping: EventEmitter<any> = new EventEmitter<any>();\n @Output() onHoverInfoButton: EventEmitter<any> = new EventEmitter<any>();\n @Output() onHoverAlert: EventEmitter<any> = new EventEmitter<any>();\n @Output() onDoubleClickNode: EventEmitter<any> = new EventEmitter<any>();\n @Output() onOpenChangeIcon: EventEmitter<any> = new EventEmitter<any>();\n // Click component\n @Output() onClickCompoent: EventEmitter<any> = new EventEmitter<any>();\n @Output() callbackImageTopology: EventEmitter<any> = new EventEmitter<any>();\n\n // Click param on ParamTable\n @Output() onClikParamOfTable: EventEmitter<any> = new EventEmitter<any>();\n\n // Delete Node\n @Output() onDeleteNode: EventEmitter<any> = new EventEmitter<any>();\n @Output() onUndo: EventEmitter<any> = new EventEmitter<any>();\n // Rename\n @Output() onRename: EventEmitter<any> = new EventEmitter<any>();\n\n isAddedModelChangedListeners: boolean;\n committedTransactionSubject = new Subject<any>();\n\n // AddSub and UnSub\n _subscriptionList: Subscription = new Subscription();\n\n ngOnDestroy() {\n this.stopAnimation();\n // this.myDiagram?.clear();\n if (!!this.myDiagram?.div) {\n this.myDiagram.div = null;\n }\n if (this.myDiagram) {\n this.myDiagram.clear();\n }\n if (this.myDiagram != null && this.myDiagram.nodeTemplateMap != null) {\n this.myDiagram.nodeTemplateMap.clear();\n }\n\n if (this.myDiagram != null && this.myDiagram.groupTemplateMap != null) {\n this.myDiagram.groupTemplateMap.clear();\n }\n if (this.myDiagram != null && this.myDiagram.linkTemplate != null) {\n for (var key in this.myDiagram.linkTemplateMap.toArray()) {\n this.myDiagram.linkTemplateMap.remove(key);\n }\n }\n this.myDiagram = null;\n }\n\n addOrRemoveCompoentTemplate() {\n // Add Node and Node Group\n _.forEach(this.editor.data?.nodeDataArray, (node) => {\n this.addTemplate(node);\n });\n // Remove Node and Node Group\n _.forEach(this.myDiagram.nodeTemplateMap?.Hb, (temp) => {\n if (temp?.key && !this.editor.data?.nodeDataArray?.some((node) => node?.type === temp?.key)) {\n this.myDiagram.nodeTemplateMap.remove(temp?.key);\n }\n });\n _.forEach(this.myDiagram.groupTemplateMap?.Hb, (temp) => {\n if (temp?.key && !this.editor.data?.nodeDataArray?.some((node) => node?.type === temp?.key)) {\n this.myDiagram.groupTemplateMap.remove(temp?.key);\n }\n });\n }\n\n addTemplate(node) {\n this.addNodeTemplate(node);\n this.addGroupTemplate(node);\n }\n\n addGroupTemplate(node) {\n if (this.myDiagram.groupTemplateMap?.Hb?.[node?.type] || !node?.isGroup) {\n return;\n }\n // Group\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT) {\n this.makeGroupROPlantTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.BOILER) {\n this.makeGroupBoilerTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER) {\n this.makeGroupCoolingTowerTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.ZONE) {\n this.makeGroupZoneTemplate();\n return;\n }\n\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && node?.isGroup) {\n this.groupPlantCellTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_INPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 50, 0, 0),\n );\n return;\n }\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_OUTPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 0, 0, 50),\n );\n return;\n }\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.GROUP_BASIC_COMPONENT) {\n this.makeGroupBasicComponent(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n }\n\n addNodeTemplate(node) {\n if (this.myDiagram.nodeTemplateMap?.Hb[node?.type] || node?.isGroup) {\n return;\n }\n // Not Group\n // Component Water Normal\n if (GojsEditorModel.TYPE_TEMPLATE_WATER_NORMAL?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n GojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n // Component Water Withdraw Or Discharge\n if (GojsEditorModel.TYPE_TEMPLATE_WATER_WITHDRAW_OR_DISCHARGE?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityWithdrawOrDischarge(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n GojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n // Component Energy Normal\n if (\n (GojsEditorModel.TYPE_TEMPLATE_ELECTRICITY?.includes(node?.type) ||\n GojsEditorModel.TYPE_TEMPLATE_NATURAL_GAS?.includes(node?.type) ||\n GojsEditorModel.TYPE_TEMPLATE_FUEL?.includes(node?.type) ||\n GojsEditorModel.TYPE_TEMPLATE_STEAM?.includes(node?.type)) &&\n !node?.isGroup\n ) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n GojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE) {\n this.makeImageTemplate();\n }\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE) {\n this.makeParamTable();\n }\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE) {\n this.makeMassBalance();\n }\n // Text Node\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {\n this.makeTextTemplate();\n }\n // Value Node\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.VALUE_NODE) {\n this.makeValueNodeTemplate();\n }\n\n // Value Node\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.EMPTY) {\n this.makeEmptyNodeTemplate();\n }\n\n // Value Label\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL) {\n this.makeValueLabelTemplate();\n }\n // Zone item\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM) {\n this.makeZoneItemTemplate();\n }\n // data box\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.DATA_BOX) {\n this.makeDataBoxTemplate();\n }\n\n // Special template\n if (GojsEditorModel.TYPE_TEMPLATE_SPECIAL?.includes(node?.type)) {\n this.makeSpecialTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n }\n\n // Plant Cell\n if (node?.type === GojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && !node?.isGroup) {\n this.plantCellTemplate(\n GojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n GojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n }\n }\n\n initDiagram() {\n if (!!this.myDiagram?.div) {\n // this.myDiagram.div = null;\n if (this.initialOptions?.grid) {\n this.myDiagram['grid'] = this.initialOptions?.grid;\n } else {\n this.myDiagram['grid'] = this.$(go.Panel, 'Grid');\n }\n if (this.initialOptions?.LayoutCompleted) {\n this.myDiagram.addDiagramListener('LayoutCompleted', this.initialOptions?.LayoutCompleted);\n }\n if (this.initialOptions?.LinkReshaped) {\n this.myDiagram.addDiagramListener('LinkReshaped', this.initialOptions?.LinkReshaped);\n }\n if (this.initialOptions?.SelectionMoved) {\n this.myDiagram.addDiagramListener('SelectionMoved', this.initialOptions?.SelectionMoved);\n }\n if (this.initialOptions?.ChangedSelection) {\n this.myDiagram.addDiagramListener('ChangedSelection', this.initialOptions?.ChangedSelection);\n }\n this.myDiagram.dragSelectingTool = this.initialOptions?.dragSelectingTool;\n this.myDiagram.toolManager.draggingTool.isGridSnapEnabled =\n this.initialOptions?.['draggingTool.isGridSnapEnabled'] ?? false;\n if (this.myDiagram.toolManager && this.myDiagram.toolManager.draggingTool) {\n if (this.initialOptions?.['draggingTool.gridSnapCellSize']) {\n this.myDiagram.toolManager.draggingTool.gridSnapCellSize =\n this.initialOptions?.['draggingTool.gridSnapCellSize'];\n }\n // if (this.initialOptions?.['draggingTool.isGridSnapEnabled']) {\n // this.myDiagram.toolManager.draggingTool.isGridSnapEnabled =\n // this.initialOptions?.['draggingTool.isGridSnapEnabled'];\n // }\n if (this.initialOptions?.['draggingTool.doMouseMove']) {\n this.myDiagram.toolManager.draggingTool.doMouseMove =\n this.initialOptions?.['draggingTool.doMouseMove'];\n }\n\n if (this.initialOptions?.['linkingTool.linkValidation']) {\n this.myDiagram.toolManager.linkingTool.linkValidation =\n this.initialOptions?.['linkingTool.linkValidation'];\n }\n }\n this.myDiagram.contentAlignment = this.initialOptions?.contentAlignment ?? go.Spot.Center;\n this.myDiagram.layout = this.initialOptions?.layout;\n // this.myDiagram.minViewportBounds = new go.Rect(0, 0, 1200, 1200);\n if (!!this.editor?.data) {\n this.addOrRemoveCompoentTemplate();\n this.myDiagram.model = go.Model.fromJson(this.editor.data);\n }\n\n return;\n }\n if (this.animationInterval) {\n clearInterval(this.animationInterval);\n }\n this.myDiagram = this.$(go.Diagram, this.myDiagramDiv, this.initialOptions);\n // this.myDiagram.initialPosition = new go.Point(0, 0);\n this.addOrRemoveCompoentTemplate();\n\n this.makeLinkTemplate();\n // animation\n this.startAnimation();\n\n setTimeout(() => {\n const self = this;\n // if (!this.isAddedModelChangedListeners) {\n this.isAddedModelChangedListeners = true;\n this.myDiagram.addModelChangedListener(function (e) {\n if (e.change === go.ChangedEvent.Remove && e.propertyName === 'nodeDataArray') {\n const data = e.oldValue;\n self.onDeleteNode.emit(data);\n }\n if (e.isTransactionFinished) {\n self.committedTransactionSubject?.next(e);\n }\n });\n this.myDiagram.commandHandler.undo = function () {\n self.onUndo.emit();\n };\n });\n\n if (!!this.editor) {\n this.myDiagram.model = go.Model.fromJson(this.editor.data);\n }\n }\n\n initGroupTemplateEnergy() {\n // for water\n const {\n STORAGE,\n WATER_TREATMENT,\n DEMIN_WATER_TREATMENT,\n // RO_WATER_TREATMENT,\n PROCESS,\n WASTEWATER_TREATMENT,\n DAF_WASTEWATER_TREATMENT,\n ETP_WASTEWATER_TREATMENT,\n MBR_WASTEWATER_TREATMENT,\n ZLD_WASTEWATER_TREATMENT,\n COOLING_TOWER,\n BOILER,\n OTHER,\n LANDSCAPING_IRRIGATION,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const waterGroups = [\n STORAGE,\n WATER_TREATMENT,\n DEMIN_WATER_TREATMENT,\n // RO_WATER_TREATMENT,\n PROCESS,\n WASTEWATER_TREATMENT,\n DAF_WASTEWATER_TREATMENT,\n ETP_WASTEWATER_TREATMENT,\n MBR_WASTEWATER_TREATMENT,\n ZLD_WASTEWATER_TREATMENT,\n COOLING_TOWER,\n BOILER,\n OTHER,\n LANDSCAPING_IRRIGATION,\n ];\n waterGroups.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeGroupTemplate(GojsEditorModel.NODE_TEMPLATES[e].icon, GojsEditorModel.NODE_TEMPLATES[e].name);\n }\n });\n\n // electrical\n this.initElectricGroupTemplate();\n\n // Fuel\n this.initFuelGroupTemplate();\n\n // Gas\n this.initGasGroupTemplate();\n }\n\n initElectricDiagram() {\n const {\n GRID,\n DIESEL_GENERATORS,\n BATTERY_ENERGY_STORAGE,\n LIGHTING_SYSTEMS,\n LIGHTINGS,\n ELECTRIC_METERS,\n TRANSFORMERS,\n ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n PUMPED_HYDRO_STORAGE,\n THERMAL_ENERGY_STORAGE,\n SUPER_CAPACITOR_ENERGY_STORAGE,\n SWITCH_GEARS,\n PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n PROCESS_EQUIPMENT_MACHINES,\n OFFICE_EQUIPMENT,\n POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n POWER_DISTRIBUTION_SYSTEMS,\n NATURAL_GAS_GENERATORS,\n MOTOR_CONTROLS,\n VARIABLE_FREQUENCY_DRIVERS,\n ELECTRIC_HVAC,\n COMPRESSED_AIR_SYSTEMS,\n REFRIGERATION_COOLING_SYSTEMS,\n MATERIAL_HANDLING_EQUIPMENT,\n WIND_POWER,\n ELECTRIC_INDUSTRIAL_MOTORS,\n GROUNDING,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [\n GRID,\n DIESEL_GENERATORS,\n BATTERY_ENERGY_STORAGE,\n LIGHTING_SYSTEMS,\n LIGHTINGS,\n ELECTRIC_METERS,\n TRANSFORMERS,\n ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n PUMPED_HYDRO_STORAGE,\n THERMAL_ENERGY_STORAGE,\n SUPER_CAPACITOR_ENERGY_STORAGE,\n SWITCH_GEARS,\n PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n PROCESS_EQUIPMENT_MACHINES,\n OFFICE_EQUIPMENT,\n POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n POWER_DISTRIBUTION_SYSTEMS,\n NATURAL_GAS_GENERATORS,\n MOTOR_CONTROLS,\n VARIABLE_FREQUENCY_DRIVERS,\n ELECTRIC_HVAC,\n COMPRESSED_AIR_SYSTEMS,\n REFRIGERATION_COOLING_SYSTEMS,\n MATERIAL_HANDLING_EQUIPMENT,\n WIND_POWER,\n ELECTRIC_INDUSTRIAL_MOTORS,\n GROUNDING,\n ];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[e].icon,\n GojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initElectricGroupTemplate() {\n const listItems = [\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.LIGHTINGS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GROUNDING],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.BATTERIES],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.SUPER_CAPACITOR_ENERGY_STORAGE],\n ];\n listItems.forEach((e) => {\n this.makeGroupTemplate(e?.icon, e.name);\n });\n }\n\n initFuelGroupTemplate() {\n const listItems = [\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GASON_LINES],\n\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.BIODIESELS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.KEROSENSE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PROPANES],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PIPELINE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS],\n\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GENERATORS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_METERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS],\n ];\n\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].name,\n );\n listItems.forEach((e) => {\n this.makeGroupTemplate(e?.icon, e.name);\n });\n }\n\n initGasGroupTemplate() {\n const listItems = [\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FURNACES],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COGENERATION],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GAS_METERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.BURNERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS],\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS],\n ];\n\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].name,\n );\n listItems.forEach((e) => {\n this.makeGroupTemplate(e?.icon, e.name);\n });\n }\n\n initGasDiagram() {\n const {\n NATURAL_GAS_PIPELINES,\n LIQUEFIED_NATURAL_GAS,\n COMPRESSED_NATURAL_GAS_PIPELINE,\n COMPRESSED_NATURAL_GAS_PRODUCTION,\n BOILERS_AND_HEATERS,\n FURNACES,\n POWER_GENERATION,\n COGENERATION,\n COMBINED_CYCLE_POWER_PLANTS,\n FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n GAS_METERS,\n BURNERS,\n FLUE_GAS_ANALYZERS,\n COMBUSTION_CONTROL_SYSTEMS,\n GAS_STORAGE_TANKS,\n GAS_PRESSURE_REGULATORS,\n NATURAL_GAS,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [\n NATURAL_GAS_PIPELINES,\n LIQUEFIED_NATURAL_GAS,\n COMPRESSED_NATURAL_GAS_PIPELINE,\n COMPRESSED_NATURAL_GAS_PRODUCTION,\n BOILERS_AND_HEATERS,\n FURNACES,\n POWER_GENERATION,\n COGENERATION,\n COMBINED_CYCLE_POWER_PLANTS,\n FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n GAS_METERS,\n BURNERS,\n FLUE_GAS_ANALYZERS,\n COMBUSTION_CONTROL_SYSTEMS,\n GAS_STORAGE_TANKS,\n GAS_PRESSURE_REGULATORS,\n NATURAL_GAS,\n ];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[e].icon,\n GojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initFuelDiagram() {\n const {\n DIESEL_FUELS,\n GASON_LINES,\n BIODIESELS,\n KEROSENSE,\n PROPANES,\n TANKER_TRUCKS,\n PIPELINE,\n INDUSTRIAL_BOILERS,\n GENERATORS,\n INDUSTRIAL_FURNACES,\n INDUSTRIAL_OVENS,\n INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n FUEL_METERS,\n FUEL_DISPENSERS,\n FUEL_STRORAGE_TANKS,\n FUEL_FILTRATIONS,\n FUEL_MANAGEMENTS,\n FUELS,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [\n DIESEL_FUELS,\n GASON_LINES,\n BIODIESELS,\n KEROSENSE,\n PROPANES,\n TANKER_TRUCKS,\n PIPELINE,\n INDUSTRIAL_BOILERS,\n GENERATORS,\n INDUSTRIAL_FURNACES,\n INDUSTRIAL_OVENS,\n INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n FUEL_METERS,\n FUEL_DISPENSERS,\n FUEL_STRORAGE_TANKS,\n FUEL_FILTRATIONS,\n FUEL_MANAGEMENTS,\n FUELS,\n ];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[e].icon,\n GojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initSolarDiagram() {\n const {\n SOLAR_POWER,\n POWER_CONDITIONING_UNIT,\n BATTERIES: BATTERY,\n INVERTERS: INVERTER,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [SOLAR_POWER, POWER_CONDITIONING_UNIT, BATTERY, INVERTER];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[e].icon,\n GojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initSteamDiagram() {\n const {\n VALUES,\n STEAM_TRAPS,\n PRESSURE_REGULATORS,\n SAFETY_VALUES_AND_EQUIPMENT,\n CONDENSATE_RETURN_SYSTEM,\n DEAERATORS,\n FEEDWATER_PUMPS,\n BLOWDOWN_TANKS,\n EXPANSION_TANKS,\n HEAT_EXCHANGERS,\n TURBINES,\n } = GojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [\n VALUES,\n STEAM_TRAPS,\n PRESSURE_REGULATORS,\n SAFETY_VALUES_AND_EQUIPMENT,\n CONDENSATE_RETURN_SYSTEM,\n DEAERATORS,\n FEEDWATER_PUMPS,\n BLOWDOWN_TANKS,\n EXPANSION_TANKS,\n HEAT_EXCHANGERS,\n TURBINES,\n ];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!GojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n GojsEditorModel.NODE_TEMPLATES[e].icon,\n GojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n onModelChangeListener(e: go.ChangedEvent) {\n // this.onModelChangeListenerEvent.emit(e);\n }\n\n makeLinkTemplate() {\n const elements: any[] = [];\n // line\n elements.push(\n this.$(\n go.Shape,\n {\n isPanelMain: true,\n stroke: GojsEditorModel.ENUM_COLORS.GRAY,\n strokeWidth: GojsEditorModel.LINK_TEMPLATES[GojsEditorModel.ENUM_LINK_TYPES.SIMPLE]?.strokeWidth,\n // strokeWidth: 0,\n },\n new go.Binding('stroke', 'color'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('strokeWidth', 'type', (x) => GojsEditorModel.LINK_TEMPLATES[x]?.strokeWidth),\n ),\n );\n\n // animation\n elements.push(\n this.$(go.Shape, {\n ...GojsEditorModel.LINK_TEMPLATES[GojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION]?.animation,\n visible: true,\n fill: 'transparent',\n }),\n );\n\n elements.push(\n this.$(\n go.Panel,\n 'Top',\n {\n height: 38,\n // maxSize: new go.Size(NaN, 36),\n // width: 100,\n // minSize: new go.Size(100, 5), // Đặt kích thước tối thiểu là 100x50\n background: 'transparent',\n // layerName: 'BackgroundLayer',\n // alignment: go.Spot.Top,\n // alignmentFocus: go.Spot.Left,\n // margin: new go.Margin(0, 0, 50, 0),\n // selectable: false,\n },\n new go.Binding('visible', 'textComponent', (x) => {\n return x ? true : false;\n }),\n // this.$(go.Shape, {\n // height: 30,\n // background: 'transparent',\n // fill: 'transparent',\n // // visible: false,\n // }),\n this.$(\n go.TextBlock,\n {\n // margin: new go.Margin(0, 0, 50, 0),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'left',\n background: 'transparent',\n // editable: false,\n // alignment: go.Spot.Center, // Đảm bảo văn bản nằm ở trung tâm của nút\n // alignmentFocus: go.Spot.Center, // Đảm bảo văn bản không bị dịch chuyển ra khỏi trung tâm\n wrap: go.TextBlock.WrapFit, // Chuyển dòng để văn bản không vượt ra ngoài\n // selectable: true,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'textComponent'),\n ),\n ),\n },\n new go.Binding('text', 'textComponent'),\n new go.Binding('background', 'textComponent', (x) => (x ? 'white' : 'transparent')),\n // new go.Binding('margin', 'isFormat', (x) =>\n // x ? new go.Margin(5, 0, 5, 5) : new go.Margin(5, 5, 5, 5),\n // ),\n ),\n ),\n );\n\n // arrow\n elements.push(\n this.$(\n go.Shape, // the \"from\" arrowhead\n { ...GojsEditorModel.LINK_TEMPLATES[GojsEditorModel.ENUM_LINK_TYPES.SIMPLE]?.arrow },\n new go.Binding(\n 'visible',\n 'type',\n (x) =>\n ![\n GojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION,\n GojsEditorModel.ENUM_LINK_TYPES.PIPE,\n GojsEditorModel.ENUM_LINK_TYPES.PIPE_HIDDEN,\n ].includes(x),\n ),\n new go.Binding('fill', 'color'),\n new go.Binding('stroke', 'color'),\n ),\n );\n\n // TODO fix link cannot selected inside group template\n this.myDiagram.linkTemplate = this.$(\n go.Link,\n go.Link.Orthogonal,\n {\n // layerName: 'Background', // link cannot select inside group template\n // curviness: 20,\n // corner: 5,\n routing: go.Link.AvoidsNodes,\n reshapable: true,\n resegmentable: true,\n relinkableFrom: true,\n relinkableTo: true,\n selectable: true,\n toShortLength: GojsEditorModel.LINK_TEMPLATES[GojsEditorModel.ENUM_LINK_TYPES.SIMPLE].toShortLength, // assume arrowhead at \"to\" end, need to avoid bad appearance when path is thick\n },\n new go.Binding('layerName', '', (data) => {\n return data?.textComponent ? 'Background' : '';\n }),\n new go.Binding('zOrder', 'type', (x) => (x === GojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION ? 11 : 10)),\n new go.Binding('toShortLength', 'type', (x) => GojsEditorModel.LINK_TEMPLATES[x].toShortLength || 0),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('visible', 'visible'),\n\n // make sure links come in from the proper direction and go out appropriately\n ...elements,\n );\n }\n\n makeValueNodeTemplate(size: { w: number; h: number } = { w: 82, h: 36 }) {\n const self = this;\n const node = this.$(\n go.Node,\n 'Spot',\n {},\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n\n this.$(\n go.Panel,\n 'Auto',\n { minSize: new go.Size(size.w, size.h) },\n this.$(go.Shape, 'Rectangle', {\n fill: GojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: 'transparent',\n }),\n this.$(\n go.Panel,\n 'Horizontal',\n this.$(\n go.TextBlock,\n {\n row: 2,\n font: 'bold 14px Arial',\n textAlign: 'center',\n stroke: GojsEditorModel.ENUM_COLORS.CERULEAN,\n },\n new go.Binding('editable', 'isEditable'),\n new go.Binding('text', 'shortenedNumber').makeTwoWay(),\n new go.Binding('stroke', 'color'),\n new go.Binding('margin', 'isFormat', (x) =>\n x ? new go.Margin(5, 0, 5, 5) : new go.Margin(5, 5, 5, 5),\n ),\n new go.Binding('visible', '', function (data) {\n return data.value !== VALUE_NA;\n }),\n ),\n // Icon Err when lack of value\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(10, 10, 10, 10),\n text: VALUE_NA, // Old version: TEXT_ERROR\n textAlign: 'center',\n font: 'bold 10pt sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.SALMON,\n wrap: go.TextBlock.WrapFit,\n editable: false,\n isMultiline: false,\n },\n new go.Binding('visible', '', function (data) {\n return data.value === VALUE_NA;\n }),\n ),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.VALUE_NODE, node);\n }\n\n makeEmptyNodeTemplate(size: { w: number; h: number } = { w: 0, h: 0 }) {\n const node = this.$(\n go.Node,\n 'Spot',\n {},\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.EMPTY, node);\n }\n\n makeValueLabelTemplate(size: { w: number; h: number } = { w: 82, h: 36 }) {\n const node = this.$(\n go.Node,\n 'Auto',\n {\n movable: false,\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { minSize: new go.Size(size.w, size.h) },\n this.$(\n go.Panel,\n 'Horizontal',\n {\n margin: new go.Margin(0, 10, 0, 10),\n },\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: 'bold 15px sans-serif',\n wrap: go.TextBlock.WrapFit,\n stroke: GojsEditorModel.ENUM_COLORS.CERULEAN,\n minSize: new go.Size(150, 30), // Set the width of the text block\n },\n new go.Binding('stroke', 'color'),\n new go.Binding('text', 'data', (x) => {\n if (typeof x?.quantity !== 'number') {\n return '';\n }\n const formatted: any = UtilsService.convertPrefixesData({\n value: x?.quantity,\n unit: UtilsService.convertSpecialUnit(x?.unit),\n });\n\n let retValue =\n formatted.shortenedNumber +\n ' ' +\n formatted.unitPrefixes +\n UtilsService.convertSpecialUnit(x?.unit) ?? '';\n if (x?.percent) {\n retValue += ` (${x?.percent}%)`;\n }\n return retValue;\n }),\n new go.Binding('visible', 'data', (x) => typeof x?.quantity === 'number'),\n ),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL, node);\n }\n\n makeTextTemplate(\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 2 },\n ) {\n const self = this;\n const contextMenu = this.$(\n go.Adornment,\n 'Vertical',\n this.$('ContextMenuButton', this.$(go.TextBlock, 'Option 1'), {\n click: function (e, obj) {\n alert('Option 1 clicked!');\n },\n }),\n this.$('ContextMenuButton', this.$(go.TextBlock, 'Option 2'), {\n click: function (e, obj) {\n alert('Option 2 clicked!');\n },\n }),\n // ... add more options as needed ...\n );\n const node = this.$(\n go.Node,\n 'Spot',\n {\n // fromSpot: go.Spot.RightSide,\n // toSpot: go.Spot.LeftSide,\n locationSpot: go.Spot.Center,\n // selectionChanged: (e) => {\n // if (e?.data.onSelected) {\n // e?.data.onSelected(e?.data);\n // }\n // },\n // mouseHover: (e, obj) => {\n // const node = obj.part;\n // if ((obj as any).part?.ob?.value === VALUE_NA) {\n // self.onHoverInfoButton.emit({\n // left: e?.['Wr']?.x + 8,\n // top: e?.['Wr']?.y,\n // node: node,\n // });\n // }\n // },\n // mouseLeave: (e, obj) => {\n // if ((obj as any).part?.ob?.value === VALUE_NA) {\n // self.onHoverInfoButton.emit(null);\n // }\n // },\n click: (e, obj: any) => {\n const node = obj.part;\n if (node?.ob?.isTypeInflowOfPlantCell) {\n // obj?.data?.onSelected(node?.ob?.nodePlantCellParent);\n // self.onClickCompoent.emit({\n // left: e?.['Wr']?.x,\n // top: e?.['Wr']?.y,\n // node: {\n // ob: node?.ob?.nodePlantCellParent,\n // },\n // component: node?.ob?.nodePlantCellParent,\n // });\n return;\n }\n if (this._initialOptions?.isReadOnly) {\n this.isShowNodeInfo\n ? self.onClickInfoButton.emit({\n left: e?.['Wr']?.x,\n top: e?.['Wr']?.y,\n node: node,\n })\n : null;\n }\n },\n doubleClick: (e, obj: any) => {\n const node = obj.part;\n if (node?.ob?.isTypeInflowOfPlantCell && !this._initialOptions?.isReadOnly) {\n // obj?.data?.onSelected(node?.ob?.nodePlantCellParent);\n // this.isShowNodeInfo\n // ? self.onDoubleClickNode.emit({\n // left: e?.['Wr']?.x,\n // top: e?.['Wr']?.y,\n // node: {\n // ob: node?.ob?.nodePlantCellParent,\n // },\n // })\n // : null;\n return;\n }\n if (!this._initialOptions?.isReadOnly) {\n this.isShowNodeInfo\n ? self.onClickInfoButton.emit({\n left: e?.['Wr']?.x,\n top: e?.['Wr']?.y,\n node: node,\n })\n : null;\n }\n },\n selectionAdornmentTemplate: this.$(\n go.Adornment,\n 'Spot',\n this.$(\n go.Panel,\n 'Auto',\n // { height: 62 },\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(\n go.Placeholder,\n // { padding: new go.Margin(8, 3, 0, 3) },\n new go.Binding('padding', '', (x) => {\n return x?.isTypeInflowOfPlantCell\n ? x?.flowOfPlantCell === ATO_ENUM_FLOW_DIRECTION.INFLOW\n ? new go.Margin(0, 0, 0, 20)\n : new go.Margin(0, 20, 0, 0)\n : null;\n }),\n ),\n // this.$(go.Placeholder, { padding: 3 }),\n new go.Binding('height', '', (x) => {\n return x?.isTypeInflowOfPlantCell ? x?.height + 10 : null;\n }),\n new go.Binding('width', '', (x) => {\n return x?.isTypeInflowOfPlantCell ? x?.width + 12 : null;\n }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n { alignment: go.Spot.TopRight, alignmentFocus: go.Spot.Bottom },\n // more\n !this._initialOptions.isReadOnly\n ? this.generateActionGroup([\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.INSIGHT,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ])\n : {},\n ),\n ),\n },\n new go.Binding('fromSpot', 'fromSpot'),\n new go.Binding('toSpot', 'toSpot'),\n new go.Binding('movable', 'movable'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n // new go.Binding('alignment', 'alignment', function(loc) {\n // return new go.Spot(0, 0, loc.x, 0);\n // }).ofObject(),\n\n this.$(\n go.Panel,\n 'Auto',\n {\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 2,\n },\n new go.Binding('text', '', function (data) {\n if (!self._initialOptions.isReadOnly) {\n return data?.name ?? VALUE_NA;\n }\n if (data?.value === VALUE_NA || _.isNil(data?.value)) {\n return NO_DATA;\n // return TEXT_UNKNOWN;\n }\n return _.round(data?.value, 2).toFixed(2);\n }).makeTwoWay(),\n ),\n ),\n },\n this.$(\n go.Panel,\n 'Table',\n this.arrowForPlantCell(size, ATO_ENUM_FLOW_DIRECTION.OUTFLOW),\n this.$(\n go.Panel,\n 'Auto',\n // { width: size.w, height: size.h },\n {\n // minSize: new go.Size(size.w, size.h),\n // maxSize: new go.Size(size.w, size.h),\n desiredSize: new go.Size(size.w, size.h),\n column: 1,\n row: 2,\n },\n new go.Binding('width', 'width'),\n new go.Binding('height', 'height'),\n\n this.$(\n go.Shape,\n 'RoundedRectangle',\n {\n fill: GojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n name: 'textNodeShape',\n },\n new go.Binding('fill', 'fill'),\n new go.Binding('stroke', 'stroke'),\n ),\n this.$(\n go.Panel,\n 'Vertical',\n this.$(\n go.Panel,\n 'Horizontal',\n { alignment: go.Spot.Center },\n // Alert\n\n this.$(\n go.Panel,\n 'Auto',\n {\n margin: new go.Margin(0, 0, 0, 5),\n visible: false,\n },\n new go.Binding('visible', 'recommendation'),\n this.$(go.Shape, 'Circle', {\n fill: '#E95F47',\n stroke: '#E95F47',\n width: 15,\n height: 15,\n }),\n this.$(go.TextBlock, {\n text: '\\uf649',\n margin: new go.Margin(1.5, 0, 0, 0),\n font: '8px \"Font Awesome 6 Pro\"',\n stroke: '#fff',\n }),\n ),\n this._initialOptions.isReadOnly\n ? this.$(\n go.Panel,\n 'Position',\n {\n width: 18,\n height: 15,\n visible: false,\n alignment: go.Spot.Center,\n margin: new go.Margin(0, 0, 0, 5),\n mouseEnter: (e, obj) => {\n self.onHoverAlert.emit({\n left: e?.['Wr']?.x + 8,\n top: e?.['Wr']?.y,\n messageAlert: (obj as any).part?.ob?.messageAlert,\n });\n },\n mouseLeave: (e, obj) => {\n self.onHoverAlert.emit(null);\n },\n },\n new go.Binding('visible', 'alert'),\n\n this.$(go.Picture, ICON_ALERT, {\n alignment: go.Spot.Center,\n maxSize: new go.Size(30, 30),\n imageStretch: go.GraphObject.Uniform,\n }),\n )\n : '',\n ),\n\n this.$(\n go.Panel,\n 'Auto',\n this.$(\n go.TextBlock,\n {\n name: 'textBlockValue',\n row: 2,\n editable: false,\n desiredSize: new go.Size(size.w - 8, 18),\n font: 'bold 22px Arial',\n textAlign: 'center',\n stroke: GojsEditorModel.ENUM_COLORS.GRAY,\n overflow: go.TextBlock.OverflowEllipsis,\n },\n // new go.Binding('editable', 'isEditable'),\n new go.Binding('angle', 'angle'),\n new go.Binding('margin', '', (data) => {\n if (data?.alert) {\n return new go.Margin(0, 0, 0, 0);\n }\n return new go.Margin(0, 0, 0, 0);\n }),\n new go.Binding('stroke', 'color'),\n new go.Binding('text', '', function (data) {\n return self.getTextDataBox(data);\n }).makeTwoWay(),\n new go.Binding('visible', '', (data) => !data?.isHiddenValue),\n ),\n ),\n ),\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, false, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, false),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n ),\n this.arrowForPlantCell(size, ATO_ENUM_FLOW_DIRECTION.INFLOW),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE, node);\n }\n\n arrowForPlantCell(size, flowDirection) {\n return this.$(\n go.Panel,\n 'Table',\n {\n height: size.h,\n },\n new go.Binding('height', 'height'),\n new go.Binding('visible', '', (data) => data?.flowOfPlantCell === flowDirection),\n {\n column: flowDirection === ATO_ENUM_FLOW_DIRECTION.OUTFLOW ? 0 : 2,\n row: 2,\n },\n new go.Binding('itemArray', 'dataLinkArray'),\n {\n itemTemplate: this.$(\n go.Panel,\n new go.Binding('row', 'indexRow'),\n // new go.Binding('height', 'height'),\n this.$(\n go.Picture,\n ARROW,\n {\n alignment: go.Spot.Center,\n maxSize: new go.Size(20, 40),\n // imageStretch: go.GraphObject.Uniform,\n },\n new go.Binding('source', '', (data, panel) => {\n // panel.part?.data?.id\n return data?.isCreated ? panel?.$p : ARROW_GRAY;\n }),\n ),\n ),\n },\n );\n }\n\n getTextDataBox(data) {\n if (data?.value === VALUE_NA) {\n return TEXT_UNKNOWN;\n }\n return `${data?.shortenedNumber}${data?.unitPrefixes ? ' ' + data?.unitPrefixes : ''}`;\n }\n\n makeDataBoxTemplate(\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n const self = this;\n let node = this.$(\n go.Node,\n 'Spot',\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {},\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n this.$(\n go.Panel,\n 'Table',\n {\n mouseHover: (e, obj) => {\n if ((obj as any).part?.ob?.value === VALUE_NA) {\n self.onHoverInfoButton.emit({\n left: e?.['Wr']?.x + 8,\n top: e?.['Wr']?.y,\n node: node,\n });\n }\n },\n mouseLeave: (e, obj) => {\n if ((obj as any).part?.ob?.value === VALUE_NA) {\n self.onHoverInfoButton.emit(null);\n }\n },\n },\n\n this.$(\n go.Panel,\n 'Auto',\n { row: 0, stretch: go.GraphObject.Horizontal },\n this.$(\n go.Shape,\n 'Rectangle',\n {\n fill: GojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n },\n new go.Binding('fill', 'color'),\n ),\n this.$(\n go.TextBlock,\n {\n row: 0,\n margin: new go.Margin(10, 10, 5, 10),\n maxSize: new go.Size(size.w, NaN),\n stroke: 'white',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n spacingBelow: 5,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n this.$(\n go.Panel,\n 'Auto',\n { row: 1, stretch: go.GraphObject.Horizontal },\n this.$(go.Shape, 'Rectangle', {\n fill: GojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n }),\n this.$(\n go.Panel,\n 'Horizontal',\n this.$(\n go.TextBlock,\n {\n row: 2,\n // editable: true,\n // maxSize: new go.Size(size.w - 10, 40),\n // minSize: new go.Size(size.w - 10, size.h),\n margin: new go.Margin(5, 0, 5, 5),\n font: 'bold 12pt Arial',\n textAlign: 'center',\n stroke: GojsEditorModel.ENUM_COLORS.GRAY,\n },\n new go.Binding('editable', 'isEditable'),\n new go.Binding('text', 'shortenedNumber').makeTwoWay(),\n new go.Binding('stroke', 'color'),\n new go.Binding('visible', '', function (data) {\n return data.value !== VALUE_NA;\n }),\n ),\n this.$(\n go.TextBlock,\n {\n row: 2,\n // editable: true,\n // maxSize: new go.Size(size.w - 10, 40),\n // minSize: new go.Size(size.w - 10, size.h),\n margin: new go.Margin(5, 5, 5, 0),\n font: 'bold 12pt Arial',\n textAlign: 'center',\n stroke: GojsEditorModel.ENUM_COLORS.GRAY,\n },\n new go.Binding('visible', '', function (data) {\n return data.value !== VALUE_NA;\n }),\n new go.Binding('text', 'unitPrefixes'),\n new go.Binding('stroke', 'color'),\n ),\n // Icon Err when lack of value\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(10, 10, 10, 10),\n text: VALUE_NA, // Old version: TEXT_ERROR\n textAlign: 'center',\n font: 'bold 10pt sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.SALMON,\n wrap: go.TextBlock.WrapFit,\n editable: false,\n isMultiline: false,\n },\n new go.Binding('visible', '', function (data) {\n return data.value === VALUE_NA;\n }),\n ),\n ),\n ),\n ),\n ),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n // four named ports, one on each side:\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, true, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, true),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.DATA_BOX, node);\n }\n\n showPoint(loc) {\n const docLoc = this.myDiagram.transformDocToView(loc);\n }\n\n makeEntityTemplate(\n icon,\n title,\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n const self = this;\n let node = this.$(\n go.Node,\n 'Spot',\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {\n // self.showPoint(obj?.part?.location);\n },\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n self.onClickCompoent.emit({\n left: e?.['Wr']?.x,\n top: e?.['Wr']?.y,\n node: node,\n component: obj?.data,\n });\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n selectionAdornmentTemplate: this._initialOptions.isReadOnly\n ? null\n : this.$(\n go.Adornment,\n 'Spot',\n {\n shadowVisible: true,\n shadowBlur: 6,\n shadowOffset: new go.Point(0, 2),\n shadowColor: '#00000029',\n },\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(go.Placeholder, { padding: 3 }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n {\n alignment: go.Spot.TopRight,\n alignmentFocus: go.Spot.Bottom,\n background: 'white',\n },\n // more\n !this._initialOptions.isReadOnly\n ? this.generateActionGroup(\n [\n GojsEditorModel.NODE_TEMPLATES[\n GojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT\n ].name,\n GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER]\n .name,\n ].includes(title)\n ? [\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.ASSET_PARAMETERS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ]\n : [\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ],\n )\n : {},\n ),\n ),\n },\n // new go.Binding('location', 'loc', go.Point.parse),\n new go.Binding('movable', 'movable'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'white',\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n strokeWidth: 1,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.Picture, icon, {\n row: 1,\n alignment: go.Spot.Center,\n desiredSize: new go.Size(size.w - 20, size.h - 50),\n // maxSize: new go.Size(60, 60),\n imageStretch: go.GraphObject.Uniform,\n toolTip: this.$(\n 'ToolTip',\n this.$(go.TextBlock, {\n margin: 4,\n text: title,\n }),\n ),\n }),\n this.$(\n go.TextBlock,\n {\n row: 2,\n margin: new go.Margin(10, 0, 3, 0),\n editable: true,\n desiredSize: new go.Size(size.w - 20, 15),\n stroke: '#000D42',\n font: 'bold 10pt Arial',\n textAlign: 'center',\n // wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(go.TextBlock, { margin: 4 }, new go.Binding('text', 'name')),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n new go.Binding('editable', '', (data) => {\n return !(\n GojsEditorModel.TYPE_COMPONENT_WATER?.includes(data?.systemType) &&\n data?.topologyType !== ATO_ECOMPONENT_PLANT_TYPE.WATER &&\n data?.topologyType !== ATO_ECOMPONENT_PLANT_TYPE.WATER_PLANT_CELL\n );\n }),\n ),\n ),\n ),\n\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, false, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, false),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n this.myDiagram.nodeTemplateMap.set(title, node);\n }\n\n makeEntityTemplateEnergy(\n icon,\n title,\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n const self = this;\n let node = this.$(\n go.Node,\n 'Spot',\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {\n // self.showPoint(obj?.part?.location);\n },\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n selectionAdornmentTemplate: this._initialOptions.isReadOnly\n ? null\n : this.$(\n go.Adornment,\n 'Spot',\n {\n shadowVisible: true,\n shadowBlur: 6,\n shadowOffset: new go.Point(0, 2),\n shadowColor: '#00000029',\n },\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(go.Placeholder, { padding: 3 }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n {\n alignment: go.Spot.TopRight,\n alignmentFocus: go.Spot.Bottom,\n background: 'white',\n },\n // more\n this.generateActionGroup([\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ]),\n ),\n ),\n },\n new go.Binding('movable', 'movable'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'white',\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, title, {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, 15),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n toolTip: this.$(\n 'ToolTip',\n this.$(go.TextBlock, {\n margin: 4,\n text: title,\n }),\n ),\n }),\n this.$(go.Picture, icon, {\n row: 1,\n alignment: go.Spot.Center,\n desiredSize: new go.Size(size.w - 20, size.h - 65),\n imageStretch: go.GraphObject.Uniform,\n }),\n this.$(\n go.TextBlock,\n {\n row: 2,\n margin: new go.Margin(10, 3, 3, 3),\n editable: true,\n maxSize: new go.Size(size.w - 20, 15),\n stroke: '#2C2C2C',\n font: 'bold 10pt Arial',\n textAlign: 'center',\n // wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n ),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n // four named ports, one on each side:\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, false, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, false),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n this.myDiagram.nodeTemplateMap.set(title, node);\n }\n\n // Plant Cell\n plantCellTemplate(icon, title, size: { w: number; h: number } = { w: 260, h: GojsEditorModel.PLANT_CELL_HEIGHT }) {\n const self = this;\n let node = this.$(\n go.Group,\n 'Spot',\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {\n // self.showPoint(obj?.part?.location);\n },\n\n mouseEnter: (e, obj) => {\n // self.onHoverAlert.emit({\n // left: e?.['Wr']?.x + 8,\n // top: e?.['Wr']?.y,\n // messageAlert: (obj as any).part?.ob?.messageAlert,\n // });\n const node = obj.part;\n self.onHoverInfoButton.emit({\n left: e?.['Wr']?.x + 8,\n top: e?.['Wr']?.y,\n node: node,\n });\n\n let shape = (node as any)?.findObject('SHAPE_KEY'); // Thay 'SHAPE_KEY' bằng khóa bạn đặt cho hình Shape\n // debugger;\n if (shape) {\n shape.stroke = 'blue'; // Thay đổi màu stroke thành blue\n }\n },\n mouseLeave: (e, obj) => {\n self.onHoverInfoButton.emit(null);\n // self.onHoverAlert.emit(null);\n },\n\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n self.onClickCompoent.emit({\n left: e?.['Wr']?.x,\n top: e?.['Wr']?.y,\n node: node,\n component: obj?.data,\n });\n }\n },\n\n doubleClick: (e, obj: any) => {\n if (!this._initialOptions?.isReadOnly) {\n const node = obj.part;\n this.isShowNodeInfo\n ? self.onDoubleClickNode.emit({\n left: e?.['Wr']?.x,\n top: e?.['Wr']?.y,\n node: node,\n })\n : null;\n }\n },\n\n // Todo\n\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n\n selectionAdornmentTemplate: this._initialOptions.isReadOnly\n ? null\n : this.$(\n go.Adornment,\n 'Spot',\n {\n shadowVisible: true,\n shadowBlur: 6,\n shadowOffset: new go.Point(0, 2),\n shadowColor: '#00000029',\n },\n this.$(\n go.Panel,\n 'Auto',\n { width: 170 },\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(go.Placeholder, { padding: 3 }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n { alignment: go.Spot.TopRight, alignmentFocus: go.Spot.Bottom },\n // more\n this.generateActionGroup([\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.CHANGE_ICON,\n AtoDefaultGojsEditor.ENUM_ACTIONS.ONLY_DETAILS,\n // DefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ]),\n // new go.Binding('visible', 'isNotAction', (x) => !x),\n ),\n\n // this.$(\n // go.Panel,\n // 'Horizontal',\n // { alignment: go.Spot.TopRight, alignmentFocus: go.Spot.Bottom },\n // this.generateActionGroup([DefaultGojsEditor.ENUM_ACTIONS.ONLY_DETAILS]),\n // new go.Binding('visible', '', (x) => {\n // return x?.isOnlyDetails && !x?.isNotAction ? true : false;\n // }),\n // ),\n ),\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n // this.$(go.Shape, 'RoundedRectangle', {\n // fill: 'white',\n // stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n // // strokeDashArray: [5, 5],\n // }),\n // this.$(go.Placeholder, { padding: new go.Margin(0, 0, 0, 0), visible: false }),\n this.$(\n go.Panel,\n 'Auto',\n {\n alignmentFocus: go.Spot.Center,\n margin: new go.Margin(0, 50, 0, 50),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'white',\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, title, {\n row: 0,\n margin: new go.Margin(3, 0, 10, 0),\n desiredSize: new go.Size(size.w - 20, 15),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n toolTip: this.$(\n 'ToolTip',\n this.$(go.TextBlock, {\n margin: 4,\n text: title,\n }),\n ),\n }),\n this.$(\n go.Picture,\n icon,\n {\n row: 1,\n alignment: go.Spot.Center,\n desiredSize: new go.Size(size.w - 20, size.h - 65),\n imageStretch: go.GraphObject.Uniform,\n },\n new go.Binding(\n 'source',\n 'pathImage',\n (x) =>\n x ?? GojsEditorModel.NODE_TEMPLATES[GojsEditorModel.ENUM_TEMPLATES.PLANT_CELL].icon,\n ),\n ),\n this.$(\n go.TextBlock,\n {\n row: 2,\n margin: new go.Margin(10, 0, 3, 0),\n editable: true,\n desiredSize: new go.Size(size.w - 20, 15),\n stroke: '#2C2C2C',\n font: 'bold 10pt Arial',\n textAlign: 'center',\n // wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n ),\n ),\n\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n\n // this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n // this.makePort('L', go.Spot.Left, go.Spot.LeftSide, false, true),\n // this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, false),\n // this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n this.myDiagram.nodeTemplateMap.set(title, node);\n }\n\n makeEntityWithdrawOrDischarge(\n icon,\n title,\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n const self = this;\n let node = this.$(\n go.Node,\n 'Spot',\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {\n // self.showPoint(obj?.part?.location);\n },\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n selectionAdornmentTemplate: this._initialOptions.isReadOnly\n ? null\n : this.$(\n go.Adornment,\n 'Spot',\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(go.Placeholder, { padding: 3 }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n { alignment: go.Spot.TopRight, alignmentFocus: go.Spot.Bottom },\n this.generateActionGroup([\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ]),\n ),\n ),\n },\n // new go.Binding('location', 'loc', go.Point.parse),\n new go.Binding('movable', 'movable'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'white',\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n // this.$(go.TextBlock, title, {\n // row: 0,\n // margin: new go.Margin(3, 3, 10, 3),\n // maxSize: new go.Size(size.w - 20, NaN),\n // stroke: '#444444',\n // font: 'normal 10pt Arial',\n // textAlign: 'center',\n // }),\n this.$(go.Picture, icon, {\n row: 1,\n alignment: go.Spot.Center,\n desiredSize: new go.Size(size.w - 20, size.h - 50),\n imageStretch: go.GraphObject.Uniform,\n }),\n this.$(\n go.TextBlock,\n {\n row: 2,\n margin: new go.Margin(10, 0, 3, 0),\n editable: true,\n desiredSize: new go.Size(size.w - 20, 15),\n stroke: '#000D42',\n font: 'bold 10pt Arial',\n textAlign: 'center',\n // wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n // {\n // // define a tooltip for each node that displays the color as text\n // toolTip: this.$(\n // 'ToolTip',\n // this.$(go.TextBlock, { margin: 4 }, new go.Binding('text', 'name')),\n // ), // end of Adornment\n // },\n ),\n ),\n ),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n // four named ports, one on each side:\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, false, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, false),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n this.myDiagram.nodeTemplateMap.set(title, node);\n }\n\n editTextGroupZone(e, button) {\n const nodeGroup = button.part.adornedPart;\n const diagram = nodeGroup.diagram;\n e.diagram.commandHandler.editTextBlock(nodeGroup.findObject('TEXTBLOCK'));\n }\n\n editText(e, button) {\n const node = button.part.adornedPart;\n e.diagram.commandHandler.editTextBlock(node.findObject('TEXTBLOCK'));\n }\n\n async dragNewNode(e, button) {\n const tool = e.diagram.toolManager.draggingTool;\n\n if (tool.isBeyondDragSize()) {\n const data = button._dragData;\n if (!data) return;\n e.diagram.startTransaction('button drag'); // see doDeactivate, below\n\n const fromnode = button.part.adornedPart;\n const diagram = fromnode.diagram;\n const model = diagram.model;\n const nodedata = { ...model.copyNodeData(data), key: UtilsService.generateUUID() };\n model.addNodeData(nodedata);\n const newnode = diagram.findNodeForData(nodedata);\n const linkdata = model.copyLinkData({});\n model.setFromKeyForLinkData(linkdata, model.getKeyForNodeData(fromnode.data));\n model.setToKeyForLinkData(linkdata, model.getKeyForNodeData(newnode.data));\n model.addLinkData(linkdata);\n diagram.select(newnode);\n // this.createNodeAndLink(data, button.part.adornedPart);\n\n newnode.location = e.diagram.lastInput.documentPoint;\n // don't commitTransaction here, but in tool.doDeactivate, after drag operation finished\n // set tool.currentPart to a selected movable Part and then activate the DraggingTool\n tool.currentPart = newnode;\n e.diagram.currentTool = tool;\n tool.doActivate();\n }\n }\n\n addItemOnGroupZone(e, button) {\n const data = button._dragData;\n if (!data) return;\n e.diagram.startTransaction('Add Item On Group Zone');\n const fromnode = button.part.adornedPart;\n const dragData = button._dragData;\n const diagram = fromnode.diagram;\n const model = diagram.model;\n const nodedata = model.copyNodeData(dragData);\n model.addNodeData({\n ...nodedata,\n type: 'SubSystem',\n name: '[Title...]',\n nameItem: '[Name...]',\n group: fromnode?.ob?.key,\n });\n e.diagram.commitTransaction('Add Item On Group Zone');\n // const newnode = diagram.findNodeForData(nodedata);\n // const linkdata = model.copyLinkData({});\n // model.setFromKeyForLinkData(linkdata, model.getKeyForNodeData(fromnode.data));\n // model.setToKeyForLinkData(linkdata, model.getKeyForNodeData(newnode.data));\n // model.addLinkData(linkdata);\n // diagram.select(newnode);\n\n // newnode.location = new go.Point(fromnode.location.x + 200, fromnode.location.y);\n // e.diagram.commitTransaction('Create Node and Link');\n }\n\n generateActionGroup(actions: AtoDefaultGojsEditor.ENUM_ACTIONS[]) {\n const self = this;\n return this.$(\n 'Button',\n {\n click: function (e, obj) {\n self.openActionMenu();\n const filteredActions = _.filter(obj.part?.['ob']?.actions ?? actions, (action) => {\n // Filter Insight button\n if (action === AtoDefaultGojsEditor.ENUM_ACTIONS.INSIGHT) {\n return !!obj.part?.['ob']?.id;\n }\n if (\n action === AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME &&\n obj.part?.['ob']?.type !== GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE &&\n GojsEditorModel.TYPE_COMPONENT_WATER?.includes(obj.part?.['ob']?.systemType) &&\n obj.part?.['ob']?.topologyType !== ATO_ECOMPONENT_PLANT_TYPE.WATER &&\n obj.part?.['ob']?.topologyType !== ATO_ECOMPONENT_PLANT_TYPE.WATER_PLANT_CELL\n ) {\n return false;\n }\n return true;\n }).map((e) => {\n if (\n ATO_ECOMPONENT_PLANT_TYPE.STEAM === obj.part?.['ob']?.topologyType &&\n e === AtoDefaultGojsEditor.ENUM_ACTIONS.INSIGHT\n ) {\n return AtoDefaultGojsEditor.ENUM_ACTIONS.DATA_MAPPING;\n }\n return e;\n });\n self.actions = filteredActions.map((action) => {\n let onClickFn = () => {};\n switch (action) {\n case AtoDefaultGojsEditor.ENUM_ACTIONS.INSIGHT:\n case AtoDefaultGojsEditor.ENUM_ACTIONS.DATA_MAPPING:\n onClickFn = () => {\n self.onOpenInsightMapping.emit({\n node: obj.part,\n });\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS:\n case AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS:\n onClickFn = () => {\n self.onOpenDetail.emit({\n node: obj.part,\n });\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.ONLY_DETAILS:\n onClickFn = () => {\n self.onOpenDetail.emit({\n node: obj.part,\n });\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.ASSET_PARAMETERS:\n onClickFn = () => {\n self.onOpenAssetParameter.emit({\n node: obj.part,\n });\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME:\n onClickFn = () => {\n if (obj.part?.data?.type === GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {\n self.onRename.emit({\n left: e?.['Wr']?.x - 50,\n top: e?.['Wr']?.y,\n ...obj.part?.data,\n })\n // LayoutService.setToolTipComponentDataStatic({\n // component: RenameBoxComponent,\n // data: {\n // left: e?.['Wr']?.x - 50,\n // top: e?.['Wr']?.y,\n // ...obj.part?.data,\n // },\n // });\n } else {\n self.editText(e, obj);\n }\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW:\n onClickFn = () => {\n self.clickNewNode(\n e,\n _.merge(obj, {\n actionMove: self.dragNewNode, // defined below, to support dragging from the button\n _dragData: {\n type: GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: `${\n GojsEditorModel.ACTION_RIGHT_MENU_GROUP.DATA_BOX\n }_${moment().valueOf()}`,\n color: GojsEditorModel.ENUM_COLORS.BLUE,\n movable: self.plantSatus === ATO_EPlantType.BASIC_PLANT ? false : null,\n isNotAllowConnect:\n self.plantSatus === ATO_EPlantType.BASIC_PLANT ? true : null,\n },\n }),\n );\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE:\n onClickFn = () => {\n self.deleteNode(e);\n };\n break;\n case AtoDefaultGojsEditor.ENUM_ACTIONS.CHANGE_ICON:\n onClickFn = () => {\n self.onOpenChangeIcon.emit({\n node: obj.part,\n });\n };\n break;\n }\n return {\n ...AtoDefaultGojsEditor.ACTIONS[action],\n onClick: () => {\n onClickFn();\n },\n };\n });\n },\n 'ButtonBorder.strokeWidth': 0,\n 'ButtonBorder.fill': 'white',\n },\n // new go.Binding('visible', 'isNotDragNewNode', (x) => !x),\n // new go.Binding('visible', 'isNotDelete', (x) => !x),\n new go.Binding('visible', 'isNotAction', (x) => !x),\n this.$(go.TextBlock, {\n margin: 4,\n text: '\\ue489',\n font: '20px \"Font Awesome 6 Pro\"',\n cursor: 'pointer',\n }),\n );\n }\n\n async clickNewNode(e, button) {\n const data = button._dragData;\n if (!data) return;\n e.diagram.startTransaction('Create Node and Link');\n const fromnode = button.part.adornedPart;\n\n // this.createNodeAndLink(button._dragData, fromnode);\n const dragData = button._dragData;\n const diagram = fromnode.diagram;\n const model = diagram.model;\n const nodedata = { ...model.copyNodeData(dragData), key: UtilsService.generateUUID() };\n model.addNodeData({\n ...nodedata,\n isEditable: true,\n shortenedNumber: 0,\n isFormat: false,\n dataCollectionMethod: GojsEditorModel.DATA_COLLECTION_METHOD.MANUAL,\n color: GojsEditorModel.COLOR_COLLECTION_METHOD[GojsEditorModel.DATA_COLLECTION_METHOD.MANUAL].color,\n group: fromnode?.ob?.group,\n value: 0,\n });\n const newnode = diagram.findNodeForData(nodedata);\n\n const linkdata = model.copyLinkData({});\n model.setFromKeyForLinkData(linkdata, model.getKeyForNodeData(fromnode.data));\n model.setToKeyForLinkData(linkdata, model.getKeyForNodeData(newnode.data));\n model.addLinkData(linkdata);\n diagram.select(newnode);\n if (nodedata?.movable !== undefined && nodedata?.movable !== null) {\n newnode.movable = nodedata?.movable;\n }\n\n newnode.location = new go.Point(\n fromnode.location.x + 160,\n fromnode.location.y + this.findLocYFromnode(fromnode) * AtoDefaultGojsEditor.DISTANCE_2_OUTPUT,\n );\n e.diagram.commitTransaction('Create Node and Link');\n }\n\n findLocYFromnode(fromnode) {\n // Find location auto right\n const locYFromnode = fromnode.data?.loc?.split(' ')?.[1];\n const locYAlreadyExist: any = [];\n fromnode.findLinksOutOf().each(function (link) {\n const targetNode = link.toNode;\n if (targetNode) {\n locYAlreadyExist.push(targetNode.data?.loc?.split(' ')?.[1] - locYFromnode);\n }\n });\n\n let i = 0;\n while (this.isEmptyYLoc(locYAlreadyExist, i) === null && i < 100) {\n i++;\n }\n return this.isEmptyYLoc(locYAlreadyExist, i);\n }\n\n isEmptyYLoc(locYAlreadyExist, i) {\n if (\n !_.some(\n locYAlreadyExist,\n (x) =>\n x < i * AtoDefaultGojsEditor.DISTANCE_2_OUTPUT + AtoDefaultGojsEditor.DISTANCE_2_OUTPUT / 2 &&\n x > i * AtoDefaultGojsEditor.DISTANCE_2_OUTPUT - AtoDefaultGojsEditor.DISTANCE_2_OUTPUT / 2,\n )\n ) {\n return i;\n }\n if (\n !_.some(\n locYAlreadyExist,\n (x) =>\n x < -i * AtoDefaultGojsEditor.DISTANCE_2_OUTPUT + AtoDefaultGojsEditor.DISTANCE_2_OUTPUT / 2 &&\n x > -i * AtoDefaultGojsEditor.DISTANCE_2_OUTPUT - AtoDefaultGojsEditor.DISTANCE_2_OUTPUT / 2,\n )\n ) {\n return -i;\n }\n return null;\n }\n\n createNewNode(newnode) {\n this.addTemplate(newnode);\n this.myDiagram.startTransaction('add group node');\n this.myDiagram.model.addNodeData(newnode);\n this.myDiagram.commitTransaction('add group node');\n }\n\n deleteNode(e) {\n e.diagram.startTransaction('Delete group node');\n e.diagram.removeParts(e.diagram.selection);\n e.diagram.commitTransaction('Delete group node');\n }\n\n deleteNodeOnDiagram(e) {\n e.startTransaction('Delete group node');\n e.removeParts(e.selection);\n e.commitTransaction('Delete group node');\n }\n\n insightNode(e) {}\n\n drawLink(e, button) {\n const node = button.part.adornedPart;\n const tool = e.diagram.toolManager.linkingTool;\n tool.startObject = node.port;\n e.diagram.currentTool = tool;\n tool.doActivate();\n }\n\n makePortGroup(name, align, spot, output, input) {\n const horizontal = align.equals(go.Spot.Top) || align.equals(go.Spot.Bottom);\n return this.$(\n go.Panel,\n 'Table',\n {\n background: '#919CA5',\n width: 40,\n height: 40,\n alignment: align,\n stretch: horizontal ? go.GraphObject.Horizontal : go.GraphObject.Vertical,\n portId: name,\n fromSpot: spot,\n fromLinkable: output,\n toSpot: spot,\n toLinkable: input,\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n alignmentFocus: go.Spot.Center, // tập trung vào trung tâm của Panel\n // mouseEnter: this._initialOptions.isReadOnly\n // ? null\n // : (e, panel) => {\n // const textBlock = (panel as any)?.findObject('textBlock') as go.TextBlock | null;\n // if (textBlock) {\n // // && output\n // textBlock.visible = true;\n // switch (name) {\n // case 'B':\n // case 'R': {\n // panel.background = 'rgb(243 144 171)';\n // break;\n // }\n // case 'T':\n // case 'L': {\n // panel.background = 'rgb(103,151,207)';\n // break;\n // }\n // default: {\n // panel.background = 'rgb(243 144 171)';\n // }\n // }\n // }\n // },\n\n // mouseLeave: this._initialOptions.isReadOnly\n // ? null\n // : (e, panel) => {\n // const textBlock = (panel as any).findObject('textBlock') as go.TextBlock | null;\n // if (textBlock) {\n // textBlock.visible = false; // Ẩn TextBlock khi rời khỏi Panel\n // }\n // panel.background = 'transparent';\n // },\n },\n\n this.$(go.Shape, 'Ellipse', {\n fill: 'white', // Background color of the circle\n strokeWidth: 2,\n stroke: '#919CA5', // Border color of the circle\n width: 40, // Match the panel's width\n height: 40, // Match the panel's height\n }),\n\n // this.$(\n // go.TextBlock,\n // {\n // name: 'textBlock',\n // margin: 4,\n // text: '\\uf0da', // Mã Unicode tương ứng với fa-caret-left\n // font: '900 12px \"Font Awesome 6 Pro\"',\n // stroke: 'white', // Đặt màu chữ thành màu trắng\n // cursor: 'pointer',\n // visible: false,\n // },\n // new go.Binding('text', 'name', (_) => {\n // switch (name) {\n // case 'T':\n // case 'B': {\n // return '\\uf0d7';\n // }\n // case 'L':\n // case 'R': {\n // return '\\uf0da';\n // }\n // default: {\n // return '\\uf0d7';\n // }\n // }\n // }),\n // ),\n );\n }\n\n makePort(name, align, spot, output, input) {\n // if (this._initialOptions.isReadOnly) {\n // return {};\n // }\n const horizontal = align.equals(go.Spot.Top) || align.equals(go.Spot.Bottom);\n // const vertical = align.equals(go.Spot.Left) || align.equals(go.Spot.Right);\n // the port is basically just a transparent rectangle that stretches along the side of the node,\n // and becomes colored when the mouse passes over it\n return this.$(\n go.Panel,\n 'Table',\n {\n background: 'transparent',\n width: horizontal ? NaN : 8,\n height: !horizontal ? NaN : 8,\n alignment: align,\n stretch: horizontal ? go.GraphObject.Horizontal : go.GraphObject.Vertical,\n portId: name,\n fromSpot: spot,\n fromLinkable: output,\n toSpot: spot,\n toLinkable: input,\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n alignmentFocus: go.Spot.Center, // tập trung vào trung tâm của Panel\n mouseEnter: this._initialOptions.isReadOnly\n ? null\n : (e, panel) => {\n const textBlock = (panel as any)?.findObject('textBlock') as go.TextBlock | null;\n if (textBlock) {\n // && output\n textBlock.visible = true;\n switch (name) {\n case 'B':\n case 'R': {\n panel.background = 'rgb(243 144 171)';\n break;\n }\n case 'T':\n case 'L': {\n panel.background = 'rgb(103,151,207)';\n break;\n }\n default: {\n panel.background = 'rgb(243 144 171)';\n }\n }\n }\n },\n\n mouseLeave: this._initialOptions.isReadOnly\n ? null\n : (e, panel) => {\n const textBlock = (panel as any).findObject('textBlock') as go.TextBlock | null;\n if (textBlock) {\n textBlock.visible = false; // Ẩn TextBlock khi rời khỏi Panel\n }\n panel.background = 'transparent';\n },\n },\n\n new go.Binding('visible', '', function (data) {\n if (data?.isNotAllowConnect) {\n return false;\n }\n if (data?.selectable === false && !data?.isAllowConnect) {\n return false;\n }\n if (data?.flowOfPlantCell) {\n if (data?.flowOfPlantCell === ATO_ENUM_FLOW_DIRECTION.INFLOW && name === 'L') {\n return true;\n }\n if (data?.flowOfPlantCell === ATO_ENUM_FLOW_DIRECTION.OUTFLOW && name === 'R') {\n return true;\n }\n return false;\n }\n switch (name) {\n case 'B':\n case 'R': {\n return !data?.isNotSelectOutput;\n }\n case 'T':\n case 'L': {\n return !data?.isNotSelectInput;\n }\n default: {\n return true;\n }\n }\n }),\n\n this.$(\n go.TextBlock,\n {\n name: 'textBlock',\n margin: 4,\n text: '\\uf0da', // Mã Unicode tương ứng với fa-caret-left\n font: '900 12px \"Font Awesome 6 Pro\"',\n stroke: 'white', // Đặt màu chữ thành màu trắng\n cursor: 'pointer',\n visible: false,\n },\n new go.Binding('text', 'name', (_) => {\n switch (name) {\n case 'T':\n case 'B': {\n return '\\uf0d7';\n }\n case 'L':\n case 'R': {\n return '\\uf0da';\n }\n default: {\n return '\\uf0d7';\n }\n }\n }),\n ),\n );\n\n // return this.$(go.Shape, {\n // fill: 'transparent', // changed to a color in the mouseEnter event handler\n // strokeWidth: 0, // no stroke\n // width: horizontal ? NaN : 8, // if not stretching horizontally, just 8 wide\n // height: !horizontal ? NaN : 8, // if not stretching vertically, just 8 tall\n // alignment: align, // align the port on the main Shape\n // stretch: horizontal ? go.GraphObject.Horizontal : go.GraphObject.Vertical,\n // portId: name, // declare this object to be a \"port\"\n // fromSpot: spot, // declare where links may connect at this port\n // fromLinkable: output, // declare whether the user may draw links from here\n // toSpot: spot, // declare where links may connect at this port\n // toLinkable: input, // declare whether the user may draw links to here\n // cursor: 'pointer', // show a different cursor to indicate potential link point\n // mouseEnter: (e, port) => {\n // // the PORT argument will be this Shape\n // if (!e.diagram.isReadOnly && output) {\n // port.fill = 'rgba(255,0,255,0.5)'\n // };\n // },\n // mouseLeave: (e, port) => {\n // return (port.fill = 'transparent');\n // },\n // });\n }\n\n makeGroupBasicComponent(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n let node = this.$(\n go.Group,\n 'Spot',\n {\n // layout: this.$(go.LayeredDigraphLayout, { direction: 0 }),\n alignment: go.Spot.Center,\n layout: this.$(go.Layout),\n movable: false,\n selectable: false,\n // movable: true,\n // selectable: true,\n dragComputation: (node, pt, gridpt) => {\n pt.x =\n Math.round(pt.x / GojsEditorModel.BASIC_GRID_SIZE_WIDTH) *\n GojsEditorModel.BASIC_GRID_SIZE_WIDTH;\n pt.y =\n Math.round(pt.y / GojsEditorModel.BASIC_GRID_SIZE_HEIGHT) *\n GojsEditorModel.BASIC_GRID_SIZE_HEIGHT;\n return pt;\n },\n },\n {\n // minSize: new go.Size(GojsEditorModel.BASIC_GRID_SIZE_WIDTH, GojsEditorModel.BASIC_GRID_SIZE_HEIGHT),\n minSize: new go.Size(1, 1),\n maxSize: new go.Size(1, 1),\n // minSize: new go.Size(100, 100),\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'transparent',\n stroke: 'transparent',\n // stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n // this.$(go.Placeholder),\n // this.$(go.Placeholder, { padding: new go.Margin(0, 0, 0, 0) }),\n ),\n // this.$(go.TextBlock, title, {\n // row: 0,\n // margin: new go.Margin(0, 0, 0, 0),\n // stroke: '#444444',\n // font: 'normal 10pt Arial',\n // textAlign: 'center',\n // alignment: go.Spot.Left,\n // },\n // new go.Binding('text', 'key').makeTwoWay(),),\n\n // this.$(\n // go.Panel,\n // 'Table',\n // {\n // alignment: go.Spot.TopLeft,\n // alignmentFocus: new go.Spot(0, 0, -10, -10),\n // // padding: new go.Margin(0, 0, 50, 0),\n // },\n // this.$(\n // go.Panel,\n // 'Horizontal',\n // {\n // row: 0,\n // alignment: go.Spot.Left,\n // },\n // this.$(go.Picture, icon, {\n // row: 0,\n // // alignment: go.Spot.Center,\n // alignment: go.Spot.Left,\n // maxSize: new go.Size(40, 40),\n // imageStretch: go.GraphObject.Uniform,\n // }),\n // this.$(\n // go.Panel,\n // 'Table',\n // {\n // column: 1,\n // defaultAlignment: go.Spot.Left,\n // alignmentFocus: new go.Spot(0, 0, 0, 20),\n // },\n // this.$(go.TextBlock, title, {\n // row: 0,\n // margin: new go.Margin(3, 3, 5, 10),\n // // maxSize: new go.Size(size.w - 20, NaN),\n // stroke: '#444444',\n // font: 'normal 10pt Arial',\n // textAlign: 'center',\n // alignment: go.Spot.Left,\n // }),\n // this.$(\n // go.TextBlock,\n // {\n // row: 1,\n // margin: new go.Margin(0, 3, 3, 10),\n // editable: true,\n // // maxSize: new go.Size(size.w - 20, 40),\n // stroke: '#000D42',\n // font: 'bold 10pt Arial',\n // textAlign: 'center',\n // wrap: go.TextBlock.None,\n // overflow: go.TextBlock.OverflowEllipsis,\n // },\n // new go.Binding('text', 'name').makeTwoWay(),\n // {\n // // define a tooltip for each node that displays the color as text\n // toolTip: this.$(\n // 'ToolTip',\n // this.$(go.TextBlock, { margin: 4 }, new go.Binding('text', 'name')),\n // ), // end of Adornment\n // },\n // ),\n // ),\n // ),\n // ),\n );\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n makeGroupTemplate(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n let node = this.$(\n go.Group,\n 'Spot',\n {\n // // layout: this.$(go.ForceDirectedLayout , {\n // // direction: 0,\n // // setsPortSpots: false,\n // // }),\n\n // layout: this.$(go.LayeredDigraphLayout, {\n // direction: 0,\n // setsPortSpots: false,\n // }),\n\n layout: this.$(go.Layout),\n\n // // // adornment when a group is selected\n // // // selectionAdornmentTemplate: this.$(\n // // // go.Adornment,\n // // // 'Auto',\n // // // this.$(go.Shape, 'Rectangle', { fill: null, stroke: 'dodgerblue', strokeWidth: 8 }),\n // // // this.$(go.Placeholder),\n // // // ),\n },\n\n // new go.Binding('layout', 'layout', (x) =>\n // {\n // return this.$(go.ForceDirectedLayout , {\n // direction: 0,\n // setsPortSpots: false,\n // });\n // }\n // ),\n {\n minSize: new go.Size(400, 400),\n },\n // new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'transparent',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(go.Placeholder, { padding: new go.Margin(60, 20, 20, 20) }),\n ),\n\n // this.$(\n // go.Panel,\n // 'Table',\n // {\n // alignment: go.Spot.TopLeft,\n // alignmentFocus: new go.Spot(0, 0, -10, -10),\n // },\n // this.$(go.TextBlock, title, {\n // row: 0,\n // margin: new go.Margin(3, 3, 5, 3),\n // maxSize: new go.Size(size.w - 20, NaN),\n // stroke: '#444444',\n // font: 'normal 8pt Arial',\n // textAlign: 'center',\n // }),\n // this.$(go.Picture, icon, {\n // row: 1,\n // alignment: go.Spot.Center,\n // maxSize: new go.Size(40, 40),\n // imageStretch: go.GraphObject.Uniform,\n // }),\n // this.$(\n // go.TextBlock,\n // {\n // row: 2,\n // margin: new go.Margin(10, 3, 3, 3),\n // editable: true,\n // maxSize: new go.Size(size.w - 20, 40),\n // stroke: '#000D42',\n // font: 'bold 8pt Arial',\n // textAlign: 'center',\n // wrap: go.TextBlock.None,\n // overflow: go.TextBlock.OverflowEllipsis,\n // },\n // new go.Binding('text', 'name').makeTwoWay(),\n // {\n // // define a tooltip for each node that displays the color as text\n // toolTip: this.$('ToolTip', this.$(go.TextBlock, { margin: 4 }, new go.Binding('text', 'name'))), // end of Adornment\n // },\n // ),\n // // new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n // ),\n\n this.$(\n go.Panel,\n 'Table',\n {\n alignment: go.Spot.TopLeft,\n alignmentFocus: new go.Spot(0, 0, -10, -10),\n // padding: new go.Margin(0, 0, 50, 0),\n },\n this.$(\n go.Panel,\n 'Horizontal',\n {\n row: 0,\n alignment: go.Spot.Left,\n },\n this.$(go.Picture, icon, {\n row: 0,\n // alignment: go.Spot.Center,\n alignment: go.Spot.Left,\n maxSize: new go.Size(40, 40),\n imageStretch: go.GraphObject.Uniform,\n }),\n this.$(\n go.Panel,\n 'Table',\n {\n column: 1,\n defaultAlignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0, 0, 20),\n },\n this.$(go.TextBlock, title, {\n row: 0,\n margin: new go.Margin(3, 3, 5, 10),\n // maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n alignment: go.Spot.Left,\n }),\n this.$(\n go.TextBlock,\n {\n row: 1,\n margin: new go.Margin(0, 3, 3, 10),\n editable: true,\n // maxSize: new go.Size(size.w - 20, 40),\n stroke: '#000D42',\n font: 'bold 10pt Arial',\n textAlign: 'center',\n wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n {\n // define a tooltip for each node that displays the color as text\n toolTip: this.$(\n 'ToolTip',\n this.$(go.TextBlock, { margin: 4 }, new go.Binding('text', 'name')),\n ), // end of Adornment\n },\n ),\n ),\n ),\n ),\n );\n\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n makeImageTemplate() {\n const node = this.$(\n go.Node,\n 'Spot',\n {\n zOrder: 1,\n },\n new go.Binding('selectable', 'selectable'),\n this.$(\n go.Panel,\n 'Horizontal',\n {\n row: 0,\n alignment: go.Spot.Left,\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Picture,\n GojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH,\n {\n alignment: go.Spot.Center,\n // maxSize: new go.Size(500, 500),\n // imageStretch: go.GraphObject.Uniform,\n // margin: new go.Margin(130, 0, 0, 0),\n },\n new go.Binding('margin', 'margin'),\n new go.Binding('width', 'width'),\n new go.Binding('height', 'height'),\n new go.Binding('source', '', (data) => {\n return data?.source ? data?.source : GojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH;\n }),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE, node);\n }\n\n makeParamTable() {\n const self = this;\n const node = this.$(\n go.Part,\n 'Vertical',\n // this.$(go.Shape, { fill: '#E6F0F7', stroke: '#0063A9', strokeWidth: 3, geometryString: 'M 5 0 L 95 0 Q 100 0 100 5 L 100 95 Q 100 100 95 100 L 5 100 Q 0 100 0 95 L 0 5 Q 0 0 5 0' }),\n {\n zOrder: 2,\n // padding: new go.Margin(0, 0, 0, 200),\n },\n\n new go.Binding('padding', 'padding'),\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n // Header\n this.$(\n go.Panel,\n 'Auto',\n {\n stretch: go.GraphObject.Fill,\n minSize: new go.Size(150, 27),\n margin: new go.Margin(0, 0, -6, 0),\n },\n new go.Binding('visible', '', (data) => !!data?.title),\n this.$(\n go.Shape,\n 'RoundedRectangle',\n {\n parameter1: 5,\n },\n new go.Binding('fill', '', (data) => {\n return data?.color;\n }),\n new go.Binding('stroke', '', (data) => {\n return data?.color;\n }),\n ),\n\n this.$(\n go.TextBlock,\n {\n stroke: 'white',\n margin: new go.Margin(0, 0, 0, 5),\n stretch: go.GraphObject.Fill,\n alignment: go.Spot.Left,\n verticalAlignment: go.Spot.Center,\n font: '14px sans-serif',\n },\n new go.Binding('text', 'title'),\n ),\n ),\n this.$(\n go.Shape,\n 'Rectangle',\n {\n height: 6,\n margin: new go.Margin(0, 0, -6, 0),\n stretch: go.GraphObject.Fill,\n },\n new go.Binding('fill', '', (data) => {\n return data?.color;\n }),\n new go.Binding('stroke', '', (data) => {\n return data?.color;\n }),\n new go.Binding('visible', '', (data) => !!data?.title),\n ),\n this.$(\n go.Panel,\n 'Auto',\n this.$(\n go.Shape,\n 'RoundedRectangle',\n { fill: '#E6F0F7', stroke: '#0063A9', strokeWidth: 4, parameter1: 5 },\n new go.Binding('fill', 'bgColor'),\n new go.Binding('stroke', 'borderTable'),\n ),\n this.$(\n go.Panel,\n 'Table',\n // Set defaults for all rows and columns:\n {\n padding: 1.5,\n defaultRowSeparatorStroke: '#0062A9',\n defaultColumnSeparatorStroke: '#0062A9',\n defaultSeparatorPadding: new go.Margin(5, 10, 5, 10),\n },\n new go.Binding('defaultRowSeparatorStroke', 'borderTable'),\n new go.Binding('defaultColumnSeparatorStroke', 'borderTable'),\n // this.$(\n // go.Panel,\n // 'TableRow',\n // { row: 0 },\n // this.$(go.TextBlock, 'row 1 col 1', { column: 0, margin: 2 }),\n // this.$(go.TextBlock, 'row 1 col 2', { column: 1, margin: 2 }),\n // ),\n // this.$(\n // go.Panel,\n // 'TableRow',\n // { row: 1 },\n // this.$(go.TextBlock, 'row 2 col 1', { column: 0, margin: 2 }),\n // this.$(go.TextBlock, 'row 2 col 2', { column: 1, margin: 2 }),\n // ),\n new go.Binding('itemArray', 'dataTable'),\n {\n // itemTemplate: this.$(\n // go.Panel,\n // new go.Binding('row', 'indexRow'),\n // // new go.Binding('height', 'height'),\n // this.$(\n // go.Picture,\n // ARROW,\n // {\n // alignment: go.Spot.Center,\n // maxSize: new go.Size(20, 40),\n // // imageStretch: go.GraphObject.Uniform,\n // },\n // new go.Binding('source', '', (data, panel) => {\n // // panel.part?.data?.id\n // return data?.isCreated ? panel?.$p : ARROW_GRAY;\n // }),\n // ),\n // ),\n\n itemTemplate: this.$(\n go.Panel,\n 'TableRow',\n this.$(\n go.TextBlock,\n '',\n { column: 0, margin: 2, textAlign: 'left', alignment: go.Spot.Left },\n new go.Binding('text', '', (data, panel) => {\n return data?.name;\n }),\n ),\n this.$(\n go.Panel,\n 'Table',\n {\n column: 1,\n margin: 2,\n padding: 0,\n defaultSeparatorPadding: new go.Margin(0, 0, 0, 0),\n stretch: go.GraphObject.Fill,\n },\n new go.Binding('minSize', '', (data, panel) => {\n return panel.part?.data?.minSizeValue;\n }),\n this.$(\n go.TextBlock,\n '',\n {\n column: 0,\n margin: 0,\n alignment: go.Spot.Left,\n overflow: go.TextBlock.OverflowEllipsis,\n cursor: 'pointer',\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', '', (data, panel) => {\n return `${\n !!this._initialOptions.isReadOnly\n ? `${data?.tagName || ''} `\n : ''\n }${data?.value}`;\n }),\n new go.Binding('visible', '', (data) => {\n if (!!this._initialOptions.isReadOnly && data?.tagName) {\n return true;\n }\n\n return !!data?.value;\n }),\n ),\n ),\n },\n {\n click: (e, obj: any) => {\n self.onClikParamOfTable.emit({\n pramTable: obj.panel.part.data,\n ...obj.panel.part.data?.dataTable[obj?.panel.row],\n });\n },\n },\n\n new go.Binding('text', '', (data, panel) => {\n return data?.value;\n }),\n new go.Binding('stroke', '', (data) => {\n if (!this._initialOptions.isReadOnly) {\n return;\n }\n return data.color;\n }),\n new go.Binding('maxSize', '', (data) => {\n return new go.Size(data?.maxSizeValue || 190, 14);\n }),\n ),\n this.$(\n go.TextBlock,\n {\n alignment: go.Spot.Right,\n column: 1,\n margin: new go.Margin(0, 0, 0, 5),\n text: '\\uf044',\n font: '13px \"Font Awesome 6 Pro\"',\n cursor: 'pointer',\n visible: false,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', '', (data, panel) => {\n return data?.toolTipAction;\n }),\n ),\n new go.Binding('visible', '', (data) => !!data?.toolTipAction),\n ),\n },\n {\n click: (e, obj: any) => {\n if (obj.panel.part.data?.dataTable[obj?.panel.row]?.isEditable === false) {\n return;\n }\n self.onClikParamOfTable.emit({\n pramTable: obj.panel.part.data,\n ...obj.panel.part.data?.dataTable[obj?.panel.row],\n });\n },\n },\n new go.Binding('visible', '', (data, panel) => {\n return !this._initialOptions.isReadOnly;\n }),\n new go.Binding('opacity', '', (data, panel) => {\n return data?.isEditable === false ? 0.6 : 1;\n }),\n ),\n ),\n ),\n },\n // new go.Binding('text', 'name')\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE, node);\n }\n\n makeMassBalance() {\n const self = this;\n const node = this.$(\n go.Part,\n 'Auto',\n {},\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n new go.Binding('selectable', 'selectable'),\n this.$(\n go.Panel,\n 'Horizontal',\n // Set defaults for all rows and columns:\n {\n padding: 4,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n maxSize: new go.Size(450, 30),\n },\n new go.Binding('text', 'tooltip'),\n ),\n ),\n visible: this._initialOptions.isReadOnly,\n },\n this.$(\n go.TextBlock,\n '',\n {\n margin: new go.Margin(0, 5, 0, 0),\n text: 'Mass Balance:',\n },\n new go.Binding('font', 'font'),\n ),\n this.$(\n go.TextBlock,\n '',\n {\n stroke: GojsEditorModel.ENUM_COLORS.ALIZARIN,\n },\n new go.Binding('font', 'font'),\n new go.Binding('stroke', 'colorValue'),\n new go.Binding('text', '', (data, panel) => {\n return data?.value;\n }),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE, node);\n }\n\n makeGroupROPlantTemplate(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n let node = this.$(\n go.Group,\n 'Spot',\n {\n layout: this.$(go.Layout),\n },\n {\n // minSize: new go.Size(NaN, 600),\n },\n new go.Binding('selectable', 'selectable'),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Table',\n\n this.$(\n go.Panel,\n 'Auto',\n {\n row: 0,\n padding: new go.Margin(0, 0, 0, 0),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n name: 'SHAPE_KEY',\n fill: '#FCFCFD',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n\n this.$(go.Placeholder, { padding: new go.Margin(15, 0, 0, 0) }),\n ),\n this.$(\n go.Picture,\n RO_LINE_DIRTY,\n {\n row: 1,\n },\n new go.Binding('visible', '', (x) => {\n return x?.isViewGeneral && x?.hasOutFlow ? true : false;\n }),\n ),\n ),\n\n this.$(go.Panel, 'Table', {\n width: 0,\n height: 0,\n alignment: new go.Spot(0, 0, 0, 183),\n alignmentFocus: go.Spot.Left,\n // stretch: go.GraphObject.Vertical,\n portId: 'Inflow',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n // alignmentFocus: new go.Spot(0, 0, 0, 150),\n fromSpot: go.Spot.Left,\n toSpot: go.Spot.Left,\n fromLinkable: true,\n toLinkable: true,\n }),\n this.$(go.Panel, 'Table', {\n width: 0,\n height: 0,\n alignment: new go.Spot(0, 0, 970, 315),\n alignmentFocus: go.Spot.Bottom,\n portId: 'OutFlow_Clean',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Bottom,\n toSpot: go.Spot.Bottom,\n fromLinkable: true,\n toLinkable: true,\n }),\n this.$(\n go.Panel,\n 'Table',\n {\n width: 0,\n height: 0,\n // alignment: new go.Spot(0, 0, 480, 525),\n // alignment: new go.Spot(0, 0, 475, 552),\n alignmentFocus: go.Spot.Bottom,\n portId: 'OutFlow_Dirty',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Bottom,\n toSpot: go.Spot.Bottom,\n fromLinkable: true,\n toLinkable: true,\n },\n new go.Binding('alignment', '', (x) => {\n return x?.isViewGeneral && x?.hasOutFlow\n ? new go.Spot(0, 0, 475, 552)\n : new go.Spot(0, 0, 480, 525);\n }),\n ),\n );\n\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n makeGroupBoilerTemplate(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n let node = this.$(\n go.Group,\n 'Spot',\n {\n selectable: false,\n },\n {\n // minSize: new go.Size(NaN, 600),\n },\n new go.Binding('selectable', 'selectable'),\n this.$(\n go.Panel,\n 'Auto',\n {\n padding: new go.Margin(0, 0, 0, 0),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n name: 'SHAPE_KEY',\n fill: '#FCFCFD',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n }),\n\n this.$(\n go.Placeholder,\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n { padding: new go.Margin(0, 0, 0, 0) },\n ),\n ),\n\n this.$(go.Panel, 'Spot', {\n width: 0,\n height: 0,\n alignment: new go.Spot(0, 0.5, 0, 83),\n alignmentFocus: go.Spot.Left,\n portId: 'Inflow',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Left,\n toSpot: go.Spot.Left,\n fromLinkable: true,\n toLinkable: true,\n }),\n this.$(\n go.Panel,\n 'Spot',\n {\n alignmentFocus: go.Spot.Top,\n alignment: new go.Spot(1, 1, -215, 0),\n },\n this.$(\n go.Picture,\n OUTFLOW_LINE_DIRTY,\n {\n width: 10,\n height: 20,\n },\n new go.Binding('visible', '', (x) => {\n return x?.isViewGeneral && x?.hasOutFlow ? true : false;\n }),\n ),\n this.$(go.Panel, {\n alignment: go.Spot.BottomLeft,\n alignmentFocus: go.Spot.Top,\n portId: 'OutFlow',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Bottom,\n fromLinkable: true,\n toLinkable: true,\n }),\n ),\n );\n\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n makeGroupCoolingTowerTemplate(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n let node = this.$(\n go.Group,\n 'Spot',\n {\n selectable: false,\n layout: this.$(go.Layout),\n padding: new go.Margin(0, 30, 0, 0),\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n {\n row: 0,\n padding: new go.Margin(0, 0, 0, 0),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n name: 'SHAPE_KEY',\n fill: '#FCFCFD',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n strokeDashArray: [5, 5],\n }),\n\n this.$(go.Placeholder, { padding: new go.Margin(0, 0, 0, 0) }),\n ),\n this.$(go.Panel, 'Table', {\n width: 0,\n height: 0,\n alignment: new go.Spot(0, 0, 0, 533),\n alignmentFocus: go.Spot.Bottom,\n portId: 'Inflow',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Left,\n toSpot: go.Spot.Left,\n fromLinkable: true,\n toLinkable: true,\n }),\n this.$(\n go.Panel,\n 'Spot',\n {\n alignmentFocus: go.Spot.Top,\n alignment: new go.Spot(0.5, 1, 23, 0),\n },\n this.$(\n go.Picture,\n OUTFLOW_LINE_DIRTY,\n {\n width: 10,\n height: 20,\n },\n new go.Binding('visible', '', (x) => {\n return x?.isViewGeneral && x?.hasOutFlow ? true : false;\n }),\n ),\n this.$(go.Panel, {\n alignment: new go.Spot(0, 0, 0, 18),\n alignmentFocus: go.Spot.Top,\n portId: 'OutFlow',\n cursor: this._initialOptions.isReadOnly ? '' : 'pointer',\n fromSpot: go.Spot.Center,\n toSpot: go.Spot.Right,\n fromLinkable: true,\n toLinkable: true,\n }),\n ),\n );\n\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n groupPlantCellTemplate(icon, title, size: { w: number; h: number } = { w: 80, h: 80 }) {\n const self = this;\n let node = this.$(\n go.Group,\n 'Spot',\n {\n // layout: this.$(go.Layout),\n // layout: this.$(go.LayeredDigraphLayout, { direction: 0 }),\n // isSubGraphExpanded: false,\n // background: 'transparent',\n // layerName: 'Foreground',\n // wasSubGraphExpanded: false,\n movable: false,\n selectable: false,\n avoidable: false,\n // resizable: true,\n\n // resizable: false,\n // width: data?.ob?.minWith ?? 50,\n // height: 500,\n\n // isSubGraphExpanded: true, // ensure the group is always expanded\n // computesBoundsAfterDrag: true,\n // handlesDragDropForMembers: true, // handle drag-and-drop events for its member nodes\n\n // maxSize: new go.Size(500, 500),\n // minSize: new go.Size(500, 500),\n\n // isSubGraphExpanded: true,\n // layerName: DIAGRAM.LAYERS.BACKGROUND,\n\n // mouseDrop: function (e, grp) {\n // // disallow dropping anything onto an Adornment\n // if (grp instanceof go.Adornment) return;\n // },\n // dragComputation: function (node, pt, gridPt) {\n // let grp = node.containingGroup;\n // if (grp !== null) {\n // let rect = grp.actualBounds;\n // pt.x = Math.max(rect.left, Math.min(pt.x, rect.right));\n // pt.y = Math.max(rect.top, Math.min(pt.y, rect.bottom));\n // }\n // return pt;\n // },\n\n // dropComputation: function (node, pt, gridPt) {\n // let grp = node.containingGroup;\n // if (grp !== null) {\n // let rect = grp.actualBounds;\n // pt.x = Math.max(rect.left, Math.min(pt.x, rect.right));\n // pt.y = Math.max(rect.top, Math.min(pt.y, rect.bottom));\n // }\n // return pt;\n // },\n\n // dragComputation: function (part, pt, gridpt) {\n // // Get the current group's actual bounds\n // const grp = part.containingGroup;\n // if (grp) {\n // const bnds = grp.actualBounds;\n // const loc = part.location;\n\n // // See if the part's new location would be out of bounds\n // const newx = Math.max(bnds.x, Math.min(pt.x, bnds.right - part.actualBounds.width / 2));\n // const newy = Math.max(bnds.y, Math.min(pt.y, bnds.bottom - part.actualBounds.height / 2));\n\n // // Modify the result point to keep the Part inside the Group\n // return new go.Point(newx, newy);\n // }\n // return pt;\n // },\n click: (e, obj: any) => {\n self.myDiagram?.clearSelection();\n },\n },\n {\n // mouseDragEnter: (e, obj) => {\n // },\n // mouseDrop: (e, obj) => {\n // },\n // mouseEnter: (e, obj) => {\n // const node = obj.part;\n // self.onHoverInfoButton.emit({\n // left: e?.['Wr']?.x + 8,\n // top: e?.['Wr']?.y,\n // node: node,\n // });\n // // let shape = (node as any)?.findObject('SHAPE_KEY');\n // // if (shape) {\n // // shape.stroke = 'blue';\n // // }\n // },\n // mouseLeave: (e, obj) => {\n // self.onHoverInfoButton.emit(null);\n // // let shape = (node as any)?.findObject('SHAPE_KEY');\n // // if (shape) {\n // // shape.stroke = GojsEditorModel.ENUM_COLORS.WHITE;\n // // }\n // },\n },\n new go.Binding('layout', '', function (data, node) {\n // return data?.layoutValue === GojsEditorModel.ENUM_LAYOUT_EDITOR.AUTO\n // ? self.$(go.LayeredDigraphLayout, { direction: 0 })\n // : node?.layout;\n if (data?.layoutValue !== data?.layoutValueClone) {\n data.layoutValueClone = data?.layoutValue;\n return data?.layoutValue === GojsEditorModel.ENUM_LAYOUT_EDITOR.AUTO\n ? self.$(go.LayeredDigraphLayout, { direction: 0 })\n : self.$(go.Layout);\n } else {\n return node?.layout;\n }\n // : self.$(go.Layout);\n // return data?.layout;\n // return data?.previousLayout || self.$(go.LayeredDigraphLayout, { direction: 0 });\n // return self.$(go.LayeredDigraphLayout, { direction: 0 });\n }),\n // new go.Binding('grid', 'grid'),\n new go.Binding('selectable', 'selectable'),\n // new go.Binding('width', '', function (data) {\n // return data?.ob?.minWith ?? 50;\n // }),\n new go.Binding('minSize', '', function (data) {\n return new go.Size(data?.ob?.minWith ?? 50, data?.ob?.minHeight ?? 50); // Customize minSize based on data\n }).ofObject(),\n // new go.Binding('width', '', function (data) {\n // return data?.ob?.minWith ?? 50; // Customize minSize based on data\n // }).ofObject(),\n // new go.Binding('height', '', function (data) {\n // return data?.ob?.minHeight ?? 50; // Customize minSize based on data\n // }).ofObject(),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n // new go.Binding('isSubGraphExpanded', 'expanded').makeTwoWay(),\n this.$(\n go.Panel,\n 'Auto',\n {\n padding: new go.Margin(0, 0, 0, 0),\n // margin:new go.Margin(0, 50, 0, 50),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n name: 'SHAPE_KEY',\n fill: 'transparent',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n strokeDashArray: [5, 5],\n }),\n this.$(go.Placeholder, { padding: new go.Margin(0, 0, 0, 0) }),\n ),\n );\n\n // node.memberValidation = function (node, group) {\n // if (!group) return true; // allow ungrouping\n // const groupBounds = group.actualBounds;\n // const nodeBounds = node.actualBounds;\n // return groupBounds.containsRect(nodeBounds);\n // };\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n groupPCInputOrOutTemplate(icon, title, padding: go.Margin) {\n // let node = this.$(\n // go.Group,\n // 'Spot',\n // {\n // layout: this.$(go.Layout),\n // movable: false,\n // selectable: false,\n // },\n // // {\n // // // minSize: new go.Size(500, 500),\n // // movable: false,\n // // ariaReadOnly: true,\n // // },\n // this.$(\n // go.Panel,\n // 'Auto',\n // {\n // padding: new go.Margin(0, 0, 0, 0),\n // },\n // this.$(go.Shape, 'RoundedRectangle', {\n // fill: 'transparent',\n // // stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n // stroke: GojsEditorModel.ENUM_COLORS.WHITE,\n // strokeWidth: 2,\n // strokeDashArray: [5, 5],\n // }),\n // this.$(go.Placeholder, {\n // padding: new go.Margin(0, 0, 0, 0),\n // }),\n // ),\n // );\n let node = this.$(\n go.Group,\n 'Spot',\n {\n layout: this.$(go.LayeredDigraphLayout, { direction: 0 }),\n movable: false,\n selectable: false,\n avoidable: false,\n // isSubGraphExpanded: false,\n // isSubGraphExpanded: false,\n // layerName: 'Foreground',\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n {\n padding: padding ?? new go.Margin(0, 0, 0, 0),\n },\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'transparent',\n stroke: GojsEditorModel.ENUM_COLORS.WHITE,\n // stroke: GojsEditorModel.ENUM_COLORS.ALIZARIN,\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(go.Placeholder, {\n padding: new go.Margin(0, 0, 0, 0),\n }),\n ),\n );\n this.myDiagram.groupTemplateMap.set(title, node);\n }\n\n makeGroupZoneTemplate(\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 14, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n const self = this;\n let node = this.$(\n go.Group,\n 'Vertical',\n {\n layout: this.$(go.GridLayout, { wrappingColumn: 1, spacing: new go.Size(0, 0) }),\n },\n\n {\n locationSpot: go.Spot.Center,\n mouseOver: function (e, obj) {\n // self.showPoint(obj?.part?.location);\n },\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n\n selectionAdornmentTemplate: this._initialOptions.isReadOnly\n ? null\n : this.$(\n go.Adornment,\n 'Spot',\n {\n shadowVisible: true,\n shadowBlur: 6,\n shadowOffset: new go.Point(0, 2),\n shadowColor: '#00000029',\n },\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, { fill: null, stroke: 'dodgerblue', strokeWidth: 4 }),\n this.$(go.Placeholder, { padding: 3 }),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n {\n alignment: go.Spot.TopRight,\n alignmentFocus: go.Spot.Bottom,\n background: 'white',\n },\n this.$(\n 'Button',\n {\n _dragData: {\n type: GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: 0,\n color: GojsEditorModel.ENUM_COLORS.BLUE,\n },\n click: self.addItemOnGroupZone, // defined below, to support a click on the button\n 'ButtonBorder.strokeWidth': 0,\n 'ButtonBorder.fill': 'white',\n },\n this.$(go.TextBlock, {\n margin: 4,\n text: '\\uf055',\n font: '20px \"Font Awesome 6 Pro\"',\n cursor: 'pointer',\n stroke: '#2c2c2c',\n }),\n ),\n // more\n this.generateActionGroup([\n AtoDefaultGojsEditor.ENUM_ACTIONS.RENAME,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS,\n AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW,\n AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE,\n ]),\n // this.$(\n // // Edit Text\n // 'Button',\n // {\n // click: self.editTextGroupZone,\n // 'ButtonBorder.strokeWidth': 0,\n // 'ButtonBorder.fill': 'white',\n // },\n // this.$(go.TextBlock, {\n // margin: 4,\n // text: '\\ue1bf',\n // font: '20px \"Font Awesome 6 Pro\"',\n // cursor: 'pointer',\n // stroke: '#2c2c2c',\n // }),\n // ),\n // this.$(\n // // Open Detail\n // 'Button',\n // {\n // click: (e, obj: any) => {\n // const node = obj.part;\n // self.onOpenDetail.emit({\n // node,\n // });\n // },\n // 'ButtonBorder.strokeWidth': 0,\n // 'ButtonBorder.fill': 'white',\n // },\n //\n // this.$(go.TextBlock, {\n // margin: 4,\n // text: '\\ue49a',\n // font: '20px \"Font Awesome 6 Pro\"',\n // cursor: 'pointer',\n // }),\n // ),\n // !this._initialOptions.isReadOnly\n // ? this.$(\n // 'Button',\n // {\n // actionMove: self.dragNewNode, // defined below, to support dragging from the button\n // _dragData: {\n // type: GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n // name: 0,\n // color: GojsEditorModel.ENUM_COLORS.BLUE,\n // },\n // click: self.clickNewNode, // defined below, to support a click on the button\n // 'ButtonBorder.strokeWidth': 0,\n // 'ButtonBorder.fill': 'white',\n // },\n // this.$(go.TextBlock, {\n // margin: 4,\n // text: '\\ue157',\n // font: '20px \"Font Awesome 6 Pro\"',\n // cursor: 'pointer',\n // stroke: '#2c2c2c',\n // }),\n // )\n // : {},\n\n // this.$(\n // 'Button',\n // {\n // click: self.deleteNode,\n // 'ButtonBorder.strokeWidth': 0,\n // 'ButtonBorder.fill': 'white',\n // },\n // this.$(go.TextBlock, {\n // margin: 4,\n // text: '\\uf2ed',\n // font: '20px \"Font Awesome 6 Pro\"',\n // cursor: 'pointer',\n // }),\n // ),\n ),\n ),\n },\n\n this.$(\n go.Panel,\n 'Auto',\n this.$(go.Shape, 'RoundedRectangle', {\n fill: 'transparent',\n stroke: GojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n strokeWidth: 2,\n strokeDashArray: [5, 5],\n maxSize: new go.Size(size.w, NaN),\n }),\n this.$(\n go.Panel,\n 'Table',\n {\n alignment: go.Spot.Top,\n padding: new go.Margin(17, 10, 16, 10),\n },\n this.$(\n go.TextBlock,\n {\n row: 0,\n margin: new go.Margin(5, 0, 10, 0),\n editable: true,\n desiredSize: new go.Size(size.w - 20, 25),\n stroke: GojsEditorModel.ENUM_COLORS.NIGHT_RIDER,\n font: 'bold 16px Arial',\n textAlign: 'center',\n wrap: go.TextBlock.None,\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n this.$(go.Placeholder, 'Vertical', {\n row: 1,\n }),\n ),\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, true, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, true),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n ),\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n );\n this.myDiagram.groupTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.ZONE, node);\n }\n\n makeZoneItemTemplate(\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 12, h: GojsEditorModel.GRID_SIZE * 2 },\n ) {\n const self = this;\n const node = this.$(\n go.Node,\n 'Auto',\n // {\n // mouseHover: (e, obj) => {\n // const node = obj.part;\n // if ((obj as any).part?.ob?.value === VALUE_NA) {\n // self.onHoverInfoButton.emit({\n // left: e?.['Wr']?.x + 8,\n // top: e?.['Wr']?.y,\n // node: node\n // });\n // }\n // },\n // mouseLeave: (e, obj) => {\n // if ((obj as any).part?.ob?.value === VALUE_NA) {\n // self.onHoverInfoButton.emit(null);\n // }\n // },\n // click: (e, obj: any) => {\n // const node = obj.part;\n // this.isShowNodeInfo ? self.onClickInfoButton.emit({\n // left: e?.['Wr']?.x,\n // top: e?.['Wr']?.y,\n // node: node\n // }) : null;\n // },\n // },\n // new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n {\n movable: false,\n },\n this.$(\n go.Panel,\n 'Auto',\n {\n width: size.w,\n height: size.h,\n },\n this.$(go.Shape, 'Rectangle', {\n fill: GojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: GojsEditorModel.ENUM_COLORS.LINK_WATER,\n }),\n this.$(\n go.Panel,\n 'Vertical',\n this.$(\n go.TextBlock,\n {\n editable: true,\n row: 2,\n margin: new go.Margin(10, 0, 5, 0),\n font: 'bold 12px Arial',\n textAlign: 'center',\n stroke: GojsEditorModel.ENUM_COLORS.NIGHT_RIDER,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'name').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'name').makeTwoWay(),\n new go.Binding('visible', 'name', (x) => !!x),\n ),\n this.$(\n go.Panel,\n 'Horizontal',\n\n {\n margin: new go.Margin(0, 10, 0, 10),\n },\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: '12px sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.NIGHT_RIDER,\n wrap: go.TextBlock.WrapFit,\n editable: true,\n isMultiline: false,\n maxSize: new go.Size(size.w - 100, 15),\n overflow: go.TextBlock.OverflowEllipsis,\n toolTip: this.$(\n 'ToolTip',\n this.$(\n go.TextBlock,\n {\n margin: 4,\n },\n new go.Binding('text', 'nameItem').makeTwoWay(),\n ),\n ),\n },\n new go.Binding('text', 'nameItem').makeTwoWay(),\n new go.Binding('visible', 'nameItem', (x) => !!x),\n ),\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: '12px sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.CERULEAN,\n wrap: go.TextBlock.WrapFit,\n text: '< ',\n },\n\n new go.Binding('visible', 'data', (x) => typeof x?.quantity === 'number'),\n ),\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: '12px sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.CERULEAN,\n wrap: go.TextBlock.WrapFit,\n },\n new go.Binding('text', 'data', (x) => {\n if (typeof x?.quantity !== 'number') {\n return '';\n }\n const formatted: any = UtilsService.convertPrefixesData({\n value: x?.quantity,\n unit: x?.unit,\n });\n return formatted.shortenedNumber + ' ' + formatted.unitPrefixes + x?.unit ?? '';\n }),\n new go.Binding('visible', 'data', (x) => typeof x?.quantity === 'number'),\n ),\n\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: '12px sans-serif',\n stroke: GojsEditorModel.ENUM_COLORS.CERULEAN,\n wrap: go.TextBlock.WrapFit,\n text: ' >',\n },\n new go.Binding('visible', 'data', (x) => typeof x?.quantity === 'number'),\n ),\n ),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(GojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM, node);\n }\n\n makeSpecialTemplate(\n icon,\n title,\n size: { w: number; h: number } = { w: GojsEditorModel.GRID_SIZE * 5, h: GojsEditorModel.GRID_SIZE * 5 },\n ) {\n let node: any = null;\n switch (title) {\n case GojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS:\n node = this.$(\n go.Node,\n 'Spot',\n // {\n // fromSpot: go.Spot.Right, // coming out from middle-right\n // toSpot: go.Spot.Left\n // },\n {\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'Circle', {\n fill: 'white',\n stroke: '#2D3B77',\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, GojsEditorModel.ENUM_TEMPLATES.PROCESS, {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n }),\n this.$(go.Picture, icon, {\n row: 1,\n margin: new go.Margin(0, 0, 10, 0),\n alignment: go.Spot.Center,\n maxSize: new go.Size(60, 60),\n imageStretch: go.GraphObject.Uniform,\n }),\n ),\n ),\n\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n // four named ports, one on each side:\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, true, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, true),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n break;\n case GojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORAGE:\n node = this.$(\n go.Node,\n 'Spot',\n {\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'Circle', {\n fill: 'white',\n stroke: '#2D3B77',\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, GojsEditorModel.ENUM_TEMPLATES.STORAGE, {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n }),\n this.$(\n go.Picture,\n icon,\n {\n row: 1,\n margin: new go.Margin(0, 0, 10, 0),\n alignment: go.Spot.Center,\n minSize: new go.Size(40, 40),\n maxSize: new go.Size(50, 50),\n imageStretch: go.GraphObject.Uniform,\n },\n new go.Binding('source', 'icon').makeTwoWay(),\n ),\n ),\n ),\n\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Left,\n alignmentFocus: new go.Spot(0, 0.5, 8, 0),\n }),\n this.$(go.Panel, 'Vertical', {\n alignment: go.Spot.Right,\n alignmentFocus: new go.Spot(1, 0.5, -8, 0),\n }),\n // four named ports, one on each side:\n\n this.makePort('T', go.Spot.Top, go.Spot.TopSide, false, true),\n this.makePort('L', go.Spot.Left, go.Spot.LeftSide, true, true),\n this.makePort('R', go.Spot.Right, go.Spot.RightSide, true, true),\n this.makePort('B', go.Spot.Bottom, go.Spot.BottomSide, true, false),\n );\n break;\n case GojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE:\n node = this.$(\n go.Node,\n 'Spot',\n {\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'Circle', {\n fill: 'white',\n stroke: '#2D3B77',\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, 'Store', {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n }),\n this.$(go.Picture, icon, {\n row: 1,\n margin: new go.Margin(0, 0, 10, 0),\n alignment: go.Spot.Center,\n maxSize: new go.Size(60, 60),\n imageStretch: go.GraphObject.Uniform,\n }),\n ),\n ),\n );\n break;\n\n case GojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE:\n node = this.$(\n go.Node,\n 'Spot',\n {\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'Circle', {\n fill: 'white',\n stroke: '#2D3B77',\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, 'Discharge', {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n }),\n this.$(go.Picture, icon, {\n row: 1,\n margin: new go.Margin(0, 0, 10, 0),\n alignment: go.Spot.Center,\n maxSize: new go.Size(60, 60),\n imageStretch: go.GraphObject.Uniform,\n }),\n ),\n ),\n );\n break;\n\n case GojsEditorModel.ENUM_TEMPLATES.SPECIAL_OTHER:\n node = this.$(\n go.Node,\n 'Spot',\n {\n click: (e, obj: any) => {\n if (obj?.data?.onSelected) {\n obj?.data?.onSelected(obj?.data);\n }\n },\n selectionChanged: (e) => {\n if (!e.isSelected && e?.data?.onSelected) {\n e?.data?.onSelected(null);\n }\n },\n },\n new go.Binding('location', 'loc', go.Point.parse).makeTwoWay(go.Point.stringify),\n this.$(\n go.Panel,\n 'Auto',\n { width: size.w, height: size.h },\n this.$(go.Shape, 'Circle', {\n fill: 'white',\n stroke: '#2D3B77',\n strokeWidth: 2,\n // strokeDashArray: [5, 5],\n }),\n this.$(\n go.Panel,\n 'Table',\n this.$(go.TextBlock, 'Other', {\n row: 0,\n margin: new go.Margin(3, 3, 10, 3),\n maxSize: new go.Size(size.w - 20, NaN),\n stroke: '#444444',\n font: 'normal 10pt Arial',\n textAlign: 'center',\n }),\n this.$(go.Picture, icon, {\n row: 1,\n margin: new go.Margin(0, 0, 10, 0),\n alignment: go.Spot.Center,\n maxSize: new go.Size(60, 60),\n imageStretch: go.GraphObject.Uniform,\n }),\n ),\n ),\n );\n break;\n }\n\n if (node) {\n this.myDiagram.nodeTemplateMap.set(title, node);\n }\n }\n\n startAnimation() {\n const diagram = this.myDiagram;\n // setTimeout(() => {\n // diagram.links.each((link) => {\n // });\n // });\n try {\n this.animationInterval = setInterval(() => {\n const oldskips = diagram.skipsUndoManager;\n diagram.skipsUndoManager = true;\n\n diagram.links.each((link) => {\n const shape = link.findObject('PIPE');\n if (!!shape) {\n // const off = shape?.strokeDashOffset - 3;\n const off = shape?.strokeDashOffset - 9;\n // animate (move) the stroke dash\n shape.strokeDashOffset = off <= 0 ? 60 : off;\n }\n });\n diagram.skipsUndoManager = oldskips;\n }, 600);\n // 60\n } catch (e) {}\n }\n\n stopAnimation() {\n if (this.animationInterval) {\n clearInterval(this.animationInterval);\n }\n }\n\n toDataURL(url, callback) {\n const xhr = new XMLHttpRequest();\n xhr.onload = function () {\n const reader = new FileReader();\n reader.onloadend = function () {\n callback(reader.result);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.send();\n }\n\n getBase64DiagramWithEmptyData() {\n const self = this;\n // Test\n // const newWindow = window.open('', 'newWindow');\n // if (!newWindow) {\n // return;\n // }\n // const newDocument = newWindow?.document;\n if (!this.myDiagram?.model?.nodeDataArray?.length && !this.myDiagram?.model?.linkDataArray?.length) {\n return;\n }\n\n const svg = this.myDiagram.makeSvg({\n scale: this.defaultScaleZoomToFit,\n maxSize: new go.Size(1200, NaN),\n background: 'white',\n padding: 20,\n elementFinished: function (graphObject, svgElement) {\n svgElement.removeAttribute('clip-path');\n // Replace Image URL to base64 -> For showing Picture element\n if (graphObject instanceof go.Picture) {\n self.toDataURL(svgElement.href.baseVal, function (dataUrl) {\n svgElement.setAttribute('href', dataUrl);\n });\n }\n // Make Text Node Shape Border\n if (graphObject?.name === 'textNodeShape') {\n svgElement.setAttribute('stroke', 'rgba(64, 181, 206, 0.6)');\n }\n // Empty Value\n if (graphObject?.name === 'textBlockValue' || graphObject?.name === 'textBlockUnitPrefixes') {\n svgElement.textContent = '';\n }\n if (svgElement.clipPath) {\n svgElement.clipPath = null;\n }\n },\n callback: (svg) => {\n setTimeout(() => {\n const svgStr = new XMLSerializer().serializeToString(svg);\n // For Test\n // newDocument?.body?.appendChild(svg);\n\n const base64Svg = `data:image/svg+xml;base64,${window.btoa(unescape(encodeURIComponent(svgStr)))}`;\n const img = new Image();\n img.src = base64Svg;\n const canvas = document.createElement('canvas');\n // get canvas context for drawing on canvas\n const context = canvas.getContext('2d');\n img.onload = function () {\n const svgWidth = img.width;\n const svgHeight = img.height;\n\n canvas.width = svgWidth;\n canvas.height = svgHeight;\n\n if (context) {\n context.drawImage(img, 0, 0);\n const base64PNG = canvas.toDataURL('image/jpeg');\n self.emitImageTopology(base64PNG.replace('data:image/jpeg;base64,', ''));\n }\n };\n }, 1000);\n },\n });\n }\n\n emitImageTopology(base64) {\n this.callbackImageTopology.emit(base64);\n }\n\n openActionMenu() {\n // When this node is clicked, adjust the menu position\n const mousePt = this.myDiagram.lastInput.viewPoint;\n\n // // When this node is clicked, display the dropdown menu\n const menu = document.getElementById(this.actionMenuId);\n if (menu) {\n menu.style.display = '';\n menu.style.position = 'absolute';\n menu.style.left = mousePt.x + 'px';\n menu.style.top = mousePt.y + 'px';\n\n this.menuTrigger.openMenu();\n }\n }\n\n unsubscribeAll() {\n if (this._subscriptionList) {\n this._subscriptionList.unsubscribe();\n }\n this._subscriptionList = new Subscription();\n }\n \n addSubscribes(...subscriptions: Subscription[]) {\n subscriptions.forEach((el) => {\n this._subscriptionList.add(el);\n });\n }\n}\n\nexport namespace AtoDefaultGojsEditor {\n export enum ENUM_ACTIONS {\n DETAILS = 'Open details & wizard',\n ONLY_DETAILS = 'Open details',\n RENAME = 'Rename this box',\n OUTFLOW = 'Create an outflow',\n DELETE = 'Delete',\n INSIGHT = 'Insight tag mapping',\n DATA_MAPPING = 'Data Mapping',\n MORE = 'More',\n FLOW_DETAILS = 'Flow details',\n ASSET_PARAMETERS = 'Asset parameters',\n CHANGE_ICON = 'Change icon',\n }\n\n export const ACTIONS: any = {\n [ENUM_ACTIONS.DETAILS]: {\n name: ENUM_ACTIONS.DETAILS,\n iconClassName: 'far fa-memo-circle-info',\n onClick: () => {},\n },\n [ENUM_ACTIONS.FLOW_DETAILS]: {\n name: ENUM_ACTIONS.FLOW_DETAILS,\n iconClassName: 'far fa-arrow-progress',\n onClick: () => {},\n },\n [ENUM_ACTIONS.ASSET_PARAMETERS]: {\n name: ENUM_ACTIONS.ASSET_PARAMETERS,\n iconClassName: 'far fa-box-archive',\n onClick: () => {},\n },\n [ENUM_ACTIONS.ONLY_DETAILS]: {\n name: ENUM_ACTIONS.ONLY_DETAILS,\n iconClassName: 'far fa-memo-circle-info',\n onClick: () => {},\n },\n [ENUM_ACTIONS.RENAME]: {\n name: ENUM_ACTIONS.RENAME,\n iconClassName: 'far fa-input-text',\n onClick: () => {},\n },\n [ENUM_ACTIONS.OUTFLOW]: {\n name: ENUM_ACTIONS.OUTFLOW,\n iconClassName: 'far fa-diagram-nested',\n onClick: () => {},\n },\n [ENUM_ACTIONS.DELETE]: {\n name: ENUM_ACTIONS.DELETE,\n iconClassName: 'fal fa-trash-can',\n onClick: () => {},\n },\n [ENUM_ACTIONS.INSIGHT]: {\n name: ENUM_ACTIONS.INSIGHT,\n iconClassName: 'far fa-tag',\n onClick: () => {},\n },\n [ENUM_ACTIONS.DATA_MAPPING]: {\n name: ENUM_ACTIONS.DATA_MAPPING,\n iconClassName: 'far fa-tag',\n onClick: () => {},\n },\n [ENUM_ACTIONS.MORE]: {\n name: ENUM_ACTIONS.MORE,\n iconClassName: 'fal fa-memo-circle-info',\n onClick: () => {},\n },\n [ENUM_ACTIONS.CHANGE_ICON]: {\n name: ENUM_ACTIONS.CHANGE_ICON,\n iconClassName: 'far fa-image',\n onClick: () => {},\n },\n };\n\n export const DISTANCE_2_OUTPUT = 60;\n}\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport _ from 'lodash';\n\nimport { AtoDefaultGojsEditor } from '../../models/default-gojs-editor.model';\nimport { GojsEditorModel } from '../../models/gojs-editor.model';\n\n@Component({\n selector: 'ato-flow-diagram-lib',\n templateUrl: './flow-diagram-lib.component.html',\n styleUrls: ['./flow-diagram-lib.component.css']\n})\nexport class AtoFlowDiagramLibComponent extends AtoDefaultGojsEditor implements OnInit {\n @ViewChild('myDiagramDivTemp') myDiagramDivTemp: any;\n _data: any = null;\n @Input() showNotificationIcon; // Alert, Recommendation, Discoveries.\n @Input() set data(v) {\n this._data = v;\n this.loadDiagram();\n }\n\n @Input() isLoading = false;\n\n get data() {\n return this._data;\n }\n\n constructor() {\n super();\n this.actions = [\n AtoDefaultGojsEditor.ACTIONS[AtoDefaultGojsEditor.ENUM_ACTIONS.DETAILS],\n AtoDefaultGojsEditor.ACTIONS[AtoDefaultGojsEditor.ENUM_ACTIONS.DELETE],\n ];\n this.unsubscribeAll();\n }\n\n\n\n ngOnInit(): void {\n this.addSubscribes(\n this.committedTransactionSubject?.subscribe((e) => {\n this.onModelChangeListenerEvent.emit(e);\n }),\n // this._GjUtilsService?.updateNameDataBox$?.subscribe((rs) => {\n // if (rs && rs?.key) {\n // const node = this.myDiagram.findNodeForKey(rs?.key);\n // this.myDiagram.model.setDataProperty(node?.data, 'name', rs?.name);\n // }\n // }),\n );\n }\n\n\n\n\n loadDiagram() {\n if (this.data?.nodeDataArray?.length && !!this.showNotificationIcon) {\n _.map(this.data?.nodeDataArray, (node) => {\n // if (node?.type === GojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {\n // node.recommendation = _.some(\n // this._RecommendationsService.activeRecommendations$?.value,\n // (x) => x?.BoxId === node?.id,\n // );\n // // node.discoveries = !!_.get(\n // // this._RecommendationsService.activeDiscoveries$?.value,\n // // `${ENUM_KPI_METRIC.TOPOLOGY}-${node?.id}.0`,\n // // null,\n // // );\n // }\n });\n }\n // setTimeout(() => {\n this.editor = new GojsEditorModel({\n class: 'go.GraphLinksModel',\n nodeCategoryProperty: 'type',\n ...this.data,\n });\n }\n\n findNodeForKey(key: number | string) {\n this.myDiagram.select(this.myDiagram.findNodeForKey(key));\n }\n}\n\n\n\n\n\n","<!-- <div tqlSpin [spinning]=\"data === null || !!isLoading\" class=\"w-100 h-100 gj-flow-diagram-wrapper\">\n <div class=\"w-100 h-100 d-flex\">\n <button\n id=\"actionMenuId\"\n class=\"invisible-btn\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n #menuTrigger=\"matMenuTrigger\"\n ></button>\n <mat-menu #menu=\"matMenu\">\n <button mat-menu-item *ngFor=\"let item of actions\" (click)=\"item?.onClick($event)\">\n <div class=\"d-flex flex-gap-2\">\n <div><i class=\"{{ item?.iconClassName }}\"></i></div>\n <div>{{ item?.name }}</div>\n </div>\n </button>\n </mat-menu>\n\n <div #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n <div *ngIf=\"initialOptions?.isReadOnly && !data?.nodeDataArray?.length\" class=\"empty-data\">\n <nz-empty nzNotFoundImage=\"simple\"></nz-empty>\n </div>\n </div>\n</div> -->\n<div style=\"height: 100%\" #myDiagramDivTemp [id]=\"myDiagramDiv\" class=\"flex-grow-1\"></div>\n","import { NgModule } from '@angular/core';\nimport { AtoWaterLibComponent } from './ato-water-lib.component';\nimport { AtoFlowDiagramLibComponent } from './components/flow-diagram-lib/flow-diagram-lib.component';\n\n@NgModule({\n declarations: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent\n ],\n imports: [\n ],\n exports: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent\n ]\n})\nexport class AtoWaterLibModule { }\n","/*\n * Public API Surface of ato-water-lib\n */\n\nexport * from './lib/ato-water-lib.service';\nexport * from './lib/ato-water-lib.component';\nexport * from './lib/ato-water-lib.module';\nexport * from './lib/components/flow-diagram-lib/flow-diagram-lib.component';\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidV4"],"mappings":"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A;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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,CAAA,GAAA,IAAS,CAAA;;AAET,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW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G,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAAG,GAAG,iBAAiB;AACzC,IAAA,CAAC,gBAAgB,CAAC,GAA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"}
|