ato-water-lib 0.0.43 → 0.0.45
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/components/asset-flow/asset-flow.component.mjs +16 -22
- package/esm2020/lib/components/asset-params-view/asset-params-view.component.mjs +2 -2
- package/esm2020/lib/constants/components-group-const.mjs +4 -163
- package/fesm2015/ato-water-lib.mjs +19 -183
- package/fesm2015/ato-water-lib.mjs.map +1 -1
- package/fesm2020/ato-water-lib.mjs +19 -184
- package/fesm2020/ato-water-lib.mjs.map +1 -1
- package/lib/components/asset-flow/asset-flow.component.d.ts +2 -3
- package/package.json +1 -1
@@ -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/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/constants/icon-base64.const.ts","../../../projects/ato-water-lib/src/lib/models/default-gojs-editor.model.ts","../../../projects/ato-water-lib/src/lib/directive/ato-loading.directive.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/constants/base64.const.ts","../../../projects/ato-water-lib/src/lib/constants/components-group-const.ts","../../../projects/ato-water-lib/src/lib/components/asset-params-view/asset-params-view.component.ts","../../../projects/ato-water-lib/src/lib/components/asset-params-view/asset-params-view.component.html","../../../projects/ato-water-lib/src/lib/components/asset-flow/asset-flow.component.ts","../../../projects/ato-water-lib/src/lib/components/asset-flow/asset-flow.component.html","../../../projects/ato-water-lib/src/lib/directive/ng-var.directive.ts","../../../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 AtoGojsEditorModel {\n initialOptions: any;\n data: any; // FlowGoJsComponentModel\n\n constructor(data: any) {\n this.data = data;\n }\n}\n\nexport namespace AtoGojsEditorModel {\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 CARROT_ORANGE = '#F69122',\n FLAMINGO = '#E95F47',\n SNOW = '#FEF7F6'\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 TEXT_LABEL = 'label',\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 AtoGojsEditorModel.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 = [\n WITH_DRAW_SYSTEM_TYPES.WATER_SOURCE,\n ];\n export const DISCHARGE_SYSTEM_TYPE_LIST = [\n DISCHARGE_TYPES_SYSTEM_TYPES.GROUND_WATER_RANEWABLE,\n ];\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 AtoGojsEditorModel.WaterWithdrawSources,\n AtoGojsEditorModel.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 =\n '/assets/images/icons/hoskote_plant';\n export const IMAGE_RO_WATER_TREATMENT_PATH =\n '/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 =\n 'assets/images/process-water/cooling-tower-4.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 AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n fill: AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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.TEXT_LABEL]: {\n name: ENUM_TEMPLATES.TEXT_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 AtoGojsEditorModel.WaterWithdrawSources,\n AtoGojsEditorModel.WaterDischargeDestinations,\n ];\n\n // Template type includes Water\n export const TYPE_TEMPLATE_WATER_NORMAL: string[] = [\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BOILER,\n AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER,\n AtoGojsEditorModel.ENUM_TEMPLATES.ETP_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.ZLD_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.MBR_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.DAF_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.DEMIN_WATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.DOMESTIC_USE,\n AtoGojsEditorModel.ENUM_TEMPLATES.LANDSCAPING_IRRIGATION,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.FRESH_SURFACE_WATER,\n AtoGojsEditorModel.ENUM_TEMPLATES.BRACKISH_SURFACE_WATER,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_RENEWABLE,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PRODUCED_ENTRAINED,\n AtoGojsEditorModel.ENUM_TEMPLATES.THIRD_PARTY_SOURCES,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.GRID,\n AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SOLAR_POWER,\n AtoGojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS,\n AtoGojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS,\n AtoGojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTINGS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUNDING,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC,\n AtoGojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_PIPELINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE,\n AtoGojsEditorModel.ENUM_TEMPLATES.ON_SITE_PRODUCTION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n AtoGojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FURNACES,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COGENERATION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.GAS_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BURNERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GASON_LINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.BIODIESELS,\n AtoGojsEditorModel.ENUM_TEMPLATES.KEROSENSE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROPANES,\n AtoGojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PIPELINE,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.VALUES,\n AtoGojsEditorModel.ENUM_TEMPLATES.STEAM_TRAPS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PRESSURE_REGULATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SAFETY_VALUES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.CONDENSATE_RETURN_SYSTEM,\n AtoGojsEditorModel.ENUM_TEMPLATES.DEAERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FEEDWATER_PUMPS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BLOWDOWN_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.EXPANSION_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.HEAT_EXCHANGERS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n AtoGojsEditorModel.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","export const ICONS_BASE64 = {\n \"uf044\": \"data:image/png;base64,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\"\n}","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { AtoGojsEditorModel } 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';\nimport { ICONS_BASE64 } from '../constants/icon-base64.const';\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: AtoGojsEditorModel.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 = AtoGojsEditorModel.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: AtoGojsEditorModel;\n @Input() set editor(v: AtoGojsEditorModel) {\n this._editor = v;\n if (v) {\n setTimeout(() => {\n this.initDiagram();\n }, 100);\n }\n }\n\n get editor(): AtoGojsEditorModel {\n return this._editor;\n }\n\n @Input() isShowNodeInfo: boolean = false;\n @Input() plantSatus: string;\n\n constructor(\n private _elRef: ElementRef,\n ) {\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.unsubscribeAll();\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 === AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT) {\n this.makeGroupROPlantTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.BOILER) {\n this.makeGroupBoilerTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER) {\n this.makeGroupCoolingTowerTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.ZONE) {\n this.makeGroupZoneTemplate();\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && node?.isGroup) {\n this.groupPlantCellTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_INPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 50, 0, 0),\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_OUTPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 0, 0, 50),\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.GROUP_BASIC_COMPONENT) {\n this.makeGroupBasicComponent(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.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 (AtoGojsEditorModel.TYPE_TEMPLATE_WATER_NORMAL?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n // Component Water Withdraw Or Discharge\n if (AtoGojsEditorModel.TYPE_TEMPLATE_WATER_WITHDRAW_OR_DISCHARGE?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityWithdrawOrDischarge(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n // Component Energy Normal\n if (\n (AtoGojsEditorModel.TYPE_TEMPLATE_ELECTRICITY?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_NATURAL_GAS?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_FUEL?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_STEAM?.includes(node?.type)) &&\n !node?.isGroup\n ) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE) {\n this.makeImageTemplate();\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE) {\n this.makeParamTable();\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE) {\n this.makeMassBalance();\n }\n // Text Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {\n this.makeTextTemplate();\n }\n // Value Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_NODE) {\n this.makeValueNodeTemplate();\n }\n\n // Value Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY) {\n this.makeEmptyNodeTemplate();\n }\n\n // Value Label\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL) {\n this.makeValueLabelTemplate();\n }\n // Label\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL) {\n this.makeTextLabelTemplate();\n }\n // Zone item\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM) {\n this.makeZoneItemTemplate();\n }\n // data box\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX) {\n this.makeDataBoxTemplate();\n }\n\n // Special template\n if (AtoGojsEditorModel.TYPE_TEMPLATE_SPECIAL?.includes(node?.type)) {\n this.makeSpecialTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n }\n\n // Plant Cell\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && !node?.isGroup) {\n this.plantCellTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.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\n const diagramDiv = this._elRef.nativeElement.querySelector(`#${this.myDiagramDiv}`);\n this.myDiagram = this.$(go.Diagram, diagramDiv, 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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeGroupTemplate(AtoGojsEditorModel.NODE_TEMPLATES[e].icon, AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initElectricGroupTemplate() {\n const listItems = [\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTINGS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GROUNDING],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BATTERIES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GASON_LINES],\n\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BIODIESELS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.KEROSENSE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROPANES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PIPELINE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS],\n\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GENERATORS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS],\n ];\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FURNACES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COGENERATION],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BURNERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS],\n ];\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [SOLAR_POWER, POWER_CONDITIONING_UNIT, BATTERY, INVERTER];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n strokeWidth: AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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) => AtoGojsEditorModel.LINK_TEMPLATES[x]?.strokeWidth),\n ),\n );\n\n // animation\n elements.push(\n this.$(go.Shape, {\n ...AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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 { ...AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.ENUM_LINK_TYPES.SIMPLE]?.arrow },\n new go.Binding(\n 'visible',\n 'type',\n (x) =>\n ![\n AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION,\n AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE,\n AtoGojsEditorModel.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: AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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 === AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION ? 11 : 10)),\n new go.Binding('toShortLength', 'type', (x) => AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL, node);\n }\n\n makeTextLabelTemplate(size: { w: number; h: number } = { w: NaN, h: 20 }) {\n const node = this.$(\n go.Node,\n 'Auto',\n {\n movable: false,\n isSelected: false,\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 'Horizontal',\n\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: 'bold 16px Arial',\n wrap: go.TextBlock.WrapFit,\n stroke: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n },\n new go.Binding('stroke', 'color'),\n new go.Binding('text', 'name'),\n new go.Binding('visible', 'visible'),\n ),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL, node);\n }\n\n makeTextTemplate(\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[\n AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT\n ].name,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 ?? AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.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 !== AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE &&\n AtoGojsEditorModel.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 if (action === AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW &&\n self.plantSatus === ATO_EPlantType.BASIC_PLANT && \n obj.part?.data?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE\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 if (\n e === AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS &&\n obj?.part?.['ob']?.systemType === AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER\n ) {\n return AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD;\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 case AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD:\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 === AtoGojsEditorModel.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 ...{\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: `${\n AtoGojsEditorModel.ACTION_RIGHT_MENU_GROUP.DATA_BOX\n }_${moment().valueOf()}`,\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n }, \n ...self.setProFOrNewNode(self)\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 setProFOrNewNode(self) {\n if (self.plantSatus === ATO_EPlantType.BASIC_PLANT) {\n return {\n movable: false,\n isNotAllowConnect: true,\n }\n }\n return {};\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: AtoGojsEditorModel.DATA_COLLECTION_METHOD.MANUAL,\n color: AtoGojsEditorModel.COLOR_COLLECTION_METHOD[AtoGojsEditorModel.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 / AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH) *\n AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH;\n pt.y =\n Math.round(pt.y / AtoGojsEditorModel.BASIC_GRID_SIZE_HEIGHT) *\n AtoGojsEditorModel.BASIC_GRID_SIZE_HEIGHT;\n return pt;\n },\n },\n {\n // minSize: new go.Size(AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH, AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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 : AtoGojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH;\n }),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(AtoGojsEditorModel.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 new go.Binding('visible', '', (data) => {\n return typeof data?.visible === 'boolean' ? data?.visible : true;\n }),\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 {\n cursor: 'pointer',\n click: (e, obj: any) => {\n if (obj.panel.part.data?.dataTable[obj.row]?.isEditable === false) {\n return;\n }\n self.onClikParamOfTable.emit({\n ...obj.panel.part.data?.dataTable[obj.row],\n });\n },\n background: 'transparent',\n },\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 return new go.Size(panel.part?.data?.minSizeValue?.width, NaN);\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 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.Picture,\n {\n alignment: go.Spot.Right,\n column: 1,\n margin: new go.Margin(0, 0, 0, 5),\n source: ICONS_BASE64[\"uf044\"],\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 height: 14,\n width: 14,\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(AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 = AtoGojsEditorModel.ENUM_COLORS.WHITE;\n // // }\n // },\n },\n new go.Binding('layout', '', function (data, node) {\n // return data?.layoutValue === AtoGojsEditorModel.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 === AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n // stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.WHITE,\n // stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 14, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: 0,\n color: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n // name: 0,\n // color: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.ZONE, node);\n }\n\n makeZoneItemTemplate(\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 12, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM, node);\n }\n\n makeSpecialTemplate(\n icon,\n title,\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.GRID_SIZE * 5 },\n ) {\n let node: any = null;\n switch (title) {\n case AtoGojsEditorModel.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, AtoGojsEditorModel.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 AtoGojsEditorModel.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, AtoGojsEditorModel.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 AtoGojsEditorModel.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 AtoGojsEditorModel.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 AtoGojsEditorModel.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 FLOW_DETAILS_AND_WIZARD = 'Flow details & wizard', // only now for Cooling Tower\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.FLOW_DETAILS_AND_WIZARD]: {\n name: ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD,\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 { Directive, ElementRef, Renderer2, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[atoLoading]'\n})\nexport class AtoLoadingDirective implements OnChanges {\n\n @Input() appLoading: boolean;\n\n private spinnerWrapper: HTMLElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n this.spinnerWrapper = this.renderer.createElement('div');\n this.renderer.setStyle(this.spinnerWrapper, 'position', 'absolute');\n this.renderer.setStyle(this.spinnerWrapper, 'top', '0');\n this.renderer.setStyle(this.spinnerWrapper, 'left', '0');\n this.renderer.setStyle(this.spinnerWrapper, 'width', '100%');\n this.renderer.setStyle(this.spinnerWrapper, 'height', '100%');\n this.renderer.setStyle(this.spinnerWrapper, 'display', 'flex');\n this.renderer.setStyle(this.spinnerWrapper, 'align-items', 'center');\n this.renderer.setStyle(this.spinnerWrapper, 'justify-content', 'center');\n this.renderer.setStyle(this.spinnerWrapper, 'background', 'rgba(255, 255, 255, 0.7)');\n this.renderer.setStyle(this.spinnerWrapper, 'z-index', '10');\n\n const spinner = this.renderer.createElement('img');\n this.renderer.setAttribute(spinner, 'src', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');\n this.renderer.setStyle(spinner, 'width', '30px');\n this.renderer.setStyle(spinner, 'height', '30px');\n this.renderer.setStyle(spinner, 'border-radius', '50%');\n\n this.renderer.appendChild(this.spinnerWrapper, spinner);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['appLoading']) {\n if (this.appLoading) {\n this.showSpinner();\n } else {\n this.hideSpinner();\n }\n }\n }\n\n private showSpinner(): void {\n this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');\n this.renderer.appendChild(this.el.nativeElement, this.spinnerWrapper);\n }\n\n private hideSpinner(): void {\n if (this.el.nativeElement.contains(this.spinnerWrapper)) {\n this.renderer.removeChild(this.el.nativeElement, this.spinnerWrapper);\n }\n }\n\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport _ from 'lodash';\n\nimport { AtoDefaultGojsEditor } from '../../models/default-gojs-editor.model';\nimport { AtoGojsEditorModel } 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() 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 _elRef: ElementRef,\n ) {\n super(_elRef);\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 loadDiagram() {\n this.editor = new AtoGojsEditorModel({\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 class=\"w-100 h-100 gj-flow-diagram-wrapper\" atoLoading [appLoading]=\"data === null || !!isLoading\">\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 No Data\n </div>\n </div>\n</div>\n","import { AtoGojsEditorModel } from \"../models/gojs-editor.model\";\n\nexport const AtoGoJSBase64 = {\n [AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER]: \"data:image/png;base64,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\"\n}","import * as go from 'gojs';\nimport { AtoGojsEditorModel } from '../models/gojs-editor.model';\n\nexport enum ENUM_ASSET_PARAMETERS {\n FEED_FLOW_RATE = 'Feed Flow Rate',\n FEED_CONDUCTIVITY = 'Feed Conductivity',\n FEED_TEMPERATURE = 'Feed Temperature',\n PRIMARY_PRESSURE = 'Primary Pressure',\n REJECTION_RATE_SALT_PASSAGE = 'Rejection Rate/Salt Passage',\n PRESSURE_DROP = 'Pressure Drop',\n SYSTEM_RECOVERY_RATE = 'System Recovery Rate',\n PERMEATE_FLOW_RATE = 'Permeate Flow Rate',\n PERMEATE_CONDUCTIVITY = 'Permeate Conductivity',\n PERMEATE_PRESSURE = 'Permeate Pressure',\n CONCENTRATE_FLOW_RATE = 'Concentrate Flow Rate',\n CONCENTRATE_PRESSURE = 'Stage2 Concentrate Pressure',\n CONCENTRATE_CONDUCTIVITY = 'Concentrate Conductivity',\n // Makeup Water\n MAKEUP_WATER_FLOW_RATE = 'MakeupWaterFlowRate',\n MAKEUP_WATER_FLOW = 'MakeupWaterFlow',\n MAKEUP_WATER_CONDUCTIVITY = 'MakeupWaterConductivity',\n MAKEUP_WATER_PH = 'MakeupWaterpH',\n MAKEUP_WATER_CALCIUM = 'MakeupWaterCalcium',\n MAKEUP_WATER_TOTAL_IRON = 'MakeupWaterTotalIron',\n // Evaporation Loss\n EVAPORATION_LOSS_FLOW_RATE = 'EvaporationLossFlowRate',\n EVAPORATION_LOSS_FLOW = 'EvaporationLossFlow',\n // Blowndown Water\n BLOWDOWN_WATER_FLOW_RATE = 'BlowdownWaterFlowRate',\n BLOWDOWN_WATER_FLOW = 'BlowdownWaterFlow',\n // Warmer Water\n WARMER_WATER_FLOW_RATE = 'WarmerWaterFlowRate',\n WARMER_WATER_FLOW = 'WarmerWaterFlow',\n // Cooling Tower Analysis\n ANALYSIS_CONDUCTIVITY = 'AnalysisConductivity',\n ANALYSIS_PH = 'AnalysispH',\n ANALYSIS_CALCIUM = 'AnalysisCalcium',\n ANALYSIS_TOTAL_IRON = 'AnalysisTotalIron',\n // Cooling Tower Chemistry\n CHEMISTRY_PHOSPHATE = 'ChemistryPhosphate',\n CHEMISTRY_CHLORINE = 'ChemistryChlorine',\n CHEMISTRY_STP_RESIDUAL = 'ChemistrySTPResidual',\n CHEMISTRY_CS_CORROSION = 'ChemistryCSCorrosion',\n // Cooling Tower KPI\n KPI_CYCLES = 'KpiCycles',\n KPI_ATP = 'KpiATP'\n}\n\nexport enum WATER_SYSTEMS_NAME {\n EVAPORATION_LOSS = 'Evaporation Loss',\n MAKEUP_WATER__FLOW = 'Makeup Water',\n MAKEUP_WATER__CHEMISTRY = 'Makeup Water',\n WARMER_WATER = 'Warmer Water (Recirculation)',\n BLOWDOWN_WATER = 'Blowdown Water',\n COOLING_TOWER_ANALYSIS = 'Cooling Water Analysis',\n COOLING_WATER_CHEMISTRY = 'Cooling Water Chemistry',\n SYSTEM_KPIS = `System KPI's`\n}\n\nexport const DATA_ASSET_PARAMETER_FIELDS = {\n [ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n },\n [ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE]: {\n name: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n key: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n },\n [ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE]: {\n name: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n key: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n },\n [ENUM_ASSET_PARAMETERS.PRESSURE_DROP]: {\n name: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n key: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n },\n [ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE]: {\n name: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n key: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n },\n // Makeup Water\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY]: {\n name: 'Conductivity',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH]: {\n name: 'pH',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM]: {\n name: 'Calcium',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON]: {\n name: 'Total Iron',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n // Evaporation Loss\n [ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n },\n [ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n },\n // Blowndown Water\n [ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n },\n [ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n },\n // Warmer Water\n [ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.WARMER_WATER,\n },\n [ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.WARMER_WATER,\n },\n // Cooling Tower Analysis\n [ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY]: {\n name: 'Conductivity',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_PH]: {\n name: 'pH',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_PH,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM]: {\n name: 'Calcium',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON]: {\n name: 'Iron',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n // Cooling Tower Chemistry\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE]: {\n name: 'Phosphate',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE]: {\n name: 'Chlorine',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL]: {\n name: 'STP Residual',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION]: {\n name: 'CS Corrosion',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n // Cooling Tower KPI\n [ENUM_ASSET_PARAMETERS.KPI_CYCLES]: {\n name: 'Cycles',\n key: ENUM_ASSET_PARAMETERS.KPI_CYCLES,\n waterSystem: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n },\n [ENUM_ASSET_PARAMETERS.KPI_ATP]: {\n name: 'ATP',\n key: ENUM_ASSET_PARAMETERS.KPI_ATP,\n waterSystem: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n },\n};\n\nexport const DATA_WATER_SYSTEMS = {\n [WATER_SYSTEMS_NAME.EVAPORATION_LOSS]: {\n title: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n color: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.SNOW,\n },\n [WATER_SYSTEMS_NAME.WARMER_WATER]: {\n title: WATER_SYSTEMS_NAME.WARMER_WATER,\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.OLD_LACE,\n },\n [WATER_SYSTEMS_NAME.BLOWDOWN_WATER]: {\n title: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.OLD_LACE,\n },\n\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW]: {\n title: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.CERULEAN_ALICE_BLUE,\n },\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY]: {\n title: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.CERULEAN_ALICE_BLUE,\n },\n\n [WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS]: {\n title: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n [WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY]: {\n title: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n [WATER_SYSTEMS_NAME.SYSTEM_KPIS]: {\n title: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n};\n\nexport const ASSET_CATEGORY_PARAMS = {\n [WATER_SYSTEMS_NAME.EVAPORATION_LOSS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW],\n ],\n [WATER_SYSTEMS_NAME.WARMER_WATER]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON],\n ],\n [WATER_SYSTEMS_NAME.BLOWDOWN_WATER]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_PH],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON],\n ],\n [WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION],\n ],\n [WATER_SYSTEMS_NAME.SYSTEM_KPIS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.KPI_CYCLES],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.KPI_ATP],\n ],\n};\n\nexport enum COMPONENTS_GROUP_TYPE {\n INFLOW = 'Inflow',\n LOSS = 'Loss',\n OUTFLOW = 'Outflow',\n RECIRCULATED = 'Recirculated',\n EMBODIED = 'Embodied',\n INFLOW_VALUE = 'InFlowValue',\n OUTFLOW_VALUE = 'OutFlowValue',\n LOSS_VALUE = 'LossValue',\n RECIRCULATED_VALUE = 'RecirculatedValue',\n}\n\nexport enum ATO_ASSET_LAYERS {\n FLOW = 'Flow',\n CHEMISTRY = 'Chemistry',\n ANALYTICS = 'Analytics'\n}\n\nexport const ATO_COMPONENTS_GROUP_DATA = {\n [AtoGojsEditorModel.ENUM_TYPES.STORAGE]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 130.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '300 130.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '152.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.STORAGE, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'T' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DEMIN_WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.RO_WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE,\n group: 100,\n loc: '830 10',\n selectable: false,\n value: 'NA',\n font: 'bold 15px Arial',\n colorValue: '',\n tooltip: '',\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '20 10',\n padding: new go.Margin(0, 0, 0, 20),\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.CERULEAN],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '420 40',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.DANUBE],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '590 150',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '30 370',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.GALLIANO],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH,\n group: 100,\n loc: '0 0',\n margin: new go.Margin(130, 0, 0, 0),\n selectable: false,\n },\n {\n key: 100,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT,\n isGroup: true,\n name: 'Grid',\n loc: '0 0',\n selectable: false,\n // isViewGeneral: true,\n },\n ],\n linkDataArray: [],\n },\n [AtoGojsEditorModel.ENUM_TYPES.PROCESS]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 190',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '104 -20',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Embodied',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '144.5 297',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '90 80',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 94, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DAF_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.ETP_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.MBR_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.ZLD_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DOMESTIC_USE]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '-20 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '320 134.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '150.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '82.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.DOMESTIC_USE, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER]: {\n nodeDataArray: [\n {\n key: 86,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n group: 100,\n loc: '0 0',\n data: {\n quantity: 2222,\n unit: 'm³',\n },\n name: 'top-left-marker',\n color: '#a8438d',\n },\n {\n key: 87,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n group: 100,\n data: {\n quantity: 3333,\n unit: 'm³',\n },\n name: 'bottom-right-marker',\n color: '#a8438d',\n extendedData: {\n loc: '1000 700',\n },\n extendedDataResponsive: {\n loc: '700 300',\n }\n },\n {\n key: 88,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '320 60',\n padding: new go.Margin(0, 0, 0, 0),\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 140,\n })),\n visible: true,\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 89,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 270',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 270',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '580 250',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.WARMER_WATER],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.WARMER_WATER].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '580 560',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '450 20',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '730 20',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 50',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.SYSTEM_KPIS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.SYSTEM_KPIS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_COOLING_TOWER_PATH,\n group: 100,\n loc: '0 0',\n selectable: false,\n extendedData: {\n margin: new go.Margin(195, 20, 0, 0),\n },\n extendedDataResponsive: {\n margin: new go.Margin(20, 20, 0, 0),\n }\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '250 25',\n name: 'Evaporation Loss',\n color: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n {\n key: 98,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '110 290',\n name: 'Makeup Water',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '580 435',\n name: 'Blowdown Water',\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [],\n },\n // [AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER + '_RESPONSIVE']: {\n // nodeDataArray: [\n // {\n // key: 88,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n // group: 100,\n // loc: '0 0',\n // data: {\n // quantity: 2222,\n // unit: 'm³',\n // },\n // name: 'top-left-marker',\n // color: '#a8438d',\n // },\n // {\n // key: 89,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n // group: 100,\n // loc: '700 300',\n // data: {\n // quantity: 3333,\n // unit: 'm³',\n // },\n // name: 'bottom-right-marker',\n // color: '#a8438d',\n // },\n // {\n // key: 90,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 130,\n // })),\n // visible: false,\n // },\n // {\n // key: 91,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 130,\n // })),\n // visible: false,\n // },\n // {\n // key: 92,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 140,\n // })),\n // visible: false,\n // },\n // {\n // key: 93,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.MAKEUP_WATER],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.MAKEUP_WATER].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 120,\n // })),\n // visible: false,\n // },\n // {\n // key: 94,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.WARMER_WATER],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.WARMER_WATER].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 120,\n // })),\n // visible: false,\n // },\n\n // {\n // key: 95,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n // group: 100,\n // padding: new go.Margin(0, 0, 0, 0),\n // ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER],\n // minSizeValue: new go.Size(100, NaN),\n // selectable: false,\n // dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER].map((e) => ({\n // ...e,\n // value: '',\n // isEditable: true,\n // maxSizeValue: 120,\n // })),\n // visible: false,\n // },\n\n // {\n // key: 96,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n // source: AtoGojsEditorModel.IMAGE_COOLING_TOWER_PATH,\n // group: 100,\n // loc: '0 0',\n // margin: new go.Margin(20, 20, 0, 0),\n // selectable: false,\n // },\n // {\n // key: 97,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n // group: 100,\n // loc: '250 25',\n // name: 'Evaporation Loss',\n // color: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n // },\n // {\n // key: 98,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n // group: 100,\n // loc: '110 290',\n // name: 'Makeup Water',\n // color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n // },\n // {\n // key: 99,\n // type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n // group: 100,\n // loc: '580 435',\n // name: 'Blowdown Water',\n // color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n // },\n // { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER, isGroup: true, name: 'Group' },\n // ],\n // linkDataArray: [],\n // },\n [AtoGojsEditorModel.ENUM_TYPES.BOILER]: {\n nodeDataArray: [\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_BOILER_PATH,\n group: 100,\n loc: '0 0',\n margin: new go.Margin(0, 0, 0, 0),\n selectable: false,\n width: 1038,\n height: 516,\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '0 380',\n data: {\n quantity: 2222,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.INFLOW_VALUE,\n color: '#a8438d',\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '670 430',\n data: {\n quantity: 3333,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.OUTFLOW_VALUE,\n color: '#a8438d',\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '612 0',\n data: {\n quantity: 4444,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.LOSS_VALUE,\n color: '#a8438d',\n },\n {\n key: 98,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '310 0',\n data: {\n quantity: 5555,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.RECIRCULATED_VALUE,\n color: '#a8438d',\n },\n {\n key: 100,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.BOILER,\n isGroup: true,\n name: 'Group',\n loc: '0 0',\n selectable: false,\n },\n ],\n linkDataArray: [],\n },\n [AtoGojsEditorModel.ENUM_TYPES.OTHER]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 140.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '300 134.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_OTHER,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.OTHER, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.LANDSCAPING_IRRIGATION]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 140.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '300 140.5',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.LANDSCAPING_IRRIGATION, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'ato-asset-params-view',\n templateUrl: './asset-params-view.component.html',\n styleUrls: ['./asset-params-view.component.scss']\n})\nexport class AtoAssetParamsViewComponent {\n @Input() isEditView = false;\n @Input() data: any[] = [];\n @Output() clickParamTableRow = new EventEmitter();\n\n onClickRowParam(itemTable) {\n this.clickParamTableRow.emit(itemTable);\n }\n}\n","<div class=\"d-flex flex-column flex-gap-2\">\n <div class=\"\" *ngFor=\"let tableParam of data\">\n <ng-template\n [ngTemplateOutlet]=\"tableParamTemplate\"\n [ngTemplateOutletContext]=\"{\n data: tableParam\n }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #tableParamTemplate let-data=\"data\">\n <div\n class=\"d-flex flex-column asset-param-item w-100\"\n [style.backgroundColor]=\"data?.color\"\n >\n <div\n class=\"d-flex align-items-center justify-content-between py-1 pl-1 pr-2 cursor-pointer\"\n (click)=\"data.isCollapsed = !data.isCollapsed\"\n >\n <div class=\"font-size-14px flex-grow-1 text-truncate color-white\">\n {{ data?.title }}\n </div>\n <svg\n *ngIf=\"data.isCollapsed\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"#FFFF\"\n class=\"fa-solid font-size-14px color-white svg-15px\"\n >\n <path\n d=\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"\n />\n </svg>\n <svg\n *ngIf=\"!data.isCollapsed\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 448 512\"\n fill=\"#FFFF\"\n class=\"fa-solid font-size-14px color-white svg-15px\"\n >\n <path\n d=\"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"\n />\n </svg>\n </div>\n <div class=\"px-1 pb-1\" *ngIf=\"!data.isCollapsed\">\n <div\n class=\"table-asset-param-wrapper\"\n [style.backgroundColor]=\"data?.bgColor\"\n >\n <table>\n <tbody>\n <tr\n *ngFor=\"let itemTable of data?.dataTable\"\n (click)=\"onClickRowParam(itemTable)\"\n class=\"cursor-pointer\"\n >\n <td\n class=\"font-size-13px\"\n [style.borderColor]=\"data?.borderTable\"\n >\n {{ itemTable?.name }}\n </td>\n <td\n class=\"font-size-13px\"\n [style.borderColor]=\"data?.borderTable\"\n >\n <div class=\"d-flex align-items-center\">\n <div\n class=\"mr-auto font-size-13px text-truncate flex-grow-1\"\n [style.color]=\"itemTable?.color\"\n >\n {{ itemTable?.value }}\n </div>\n <svg *ngIf=\"isEditView\" class=\"svg-15px\" fill=\"#333333\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z\"/></svg>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport * as go from 'gojs';\nimport _ from 'lodash';\nimport { AtoGoJSBase64 } from '../../constants/base64.const';\nimport {\n ATO_ASSET_LAYERS,\n ATO_COMPONENTS_GROUP_DATA,\n} from '../../constants/components-group-const';\nimport { AtoDefaultFlowData } from '../../models/ato-asset-flow.model';\nimport { AtoGoJSData } from '../../models/gojs-data.model';\nimport { AtoGojsEditorModel } from '../../models/gojs-editor.model';\nimport { AtoAssetParamsViewComponent } from '../asset-params-view/asset-params-view.component';\nimport { AtoFlowDiagramLibComponent } from '../flow-diagram-lib/flow-diagram-lib.component';\n\n@Component({\n selector: 'ato-asset-flow',\n templateUrl: './asset-flow.component.html',\n styleUrls: ['./asset-flow.component.scss'],\n})\nexport class AssetFlowComponent implements OnInit {\n @Input() assetLayer: ATO_ASSET_LAYERS;\n @ViewChild(AtoFlowDiagramLibComponent)\n gjFlowDiagramTemp: AtoFlowDiagramLibComponent;\n @ViewChild(AtoAssetParamsViewComponent)\n assetParamsViewTemp: AtoAssetParamsViewComponent;\n @Input() selectedComponent: any;\n @Input() systemType: AtoGojsEditorModel.ENUM_TYPES;\n @Output() onClickParamOfTableEvent: EventEmitter<any> =\n new EventEmitter<any>();\n @Input() isUseBase64 = false;\n $ = go.GraphObject.make;\n options = {\n layout: this.$(go.LayeredDigraphLayout, {\n // direction: 0,\n }),\n // isReadOnly: true,\n };\n\n private _flowData: any;\n @Input() set flowData(v: AtoGoJSData) {\n this._flowData = v;\n this.updateDataTableAssetParams({ ...v, assetLayer: this.assetLayer });\n }\n get flowData(): AtoGoJSData {\n return this._flowData;\n }\n\n // Reponsive\n dataTableAssetParams: any[];\n @Input() isResponsiveView = false;\n @Input() getFlowDataCallBack: Function;\n\n timeoutResizeWindow;\n @HostListener('window:resize', ['$event'])\n onResize(event: Event): void {\n // Now only Support Cooling Tower Responsive\n if (this.timeoutResizeWindow) {\n clearTimeout(this.timeoutResizeWindow);\n }\n this.timeoutResizeWindow = setTimeout(() => {\n this.checkResponsiveView();\n this.updateLocationReponsive();\n }, 1000);\n }\n\n checkResponsiveView() {\n if (this?.systemType === AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER) {\n this.isResponsiveView = window.innerWidth < 1024;\n } else {\n this.isResponsiveView = false;\n }\n }\n\n updateLocationReponsive() {\n if (!this.flowData?.nodeDataArray) {\n this.flowData = AssetFlowComponent.getDefaultFlowData({\n systemType: this.systemType,\n isUseBase64: this.isUseBase64,\n assetLayer: this.assetLayer,\n });\n }\n _.forEach(this.flowData?.nodeDataArray, (node: any) => {\n node = _.merge(\n node,\n node[`extendedData${this.isResponsiveView ? 'Responsive' : ''}`]\n );\n });\n this.setFlowData(_.cloneDeep(this.flowData));\n }\n\n ngOnInit() {\n this.checkResponsiveView();\n this.updateLocationReponsive();\n }\n onClickParamOfTable($event: any) {\n this.onClickParamOfTableEvent.emit($event);\n }\n\n static getDefaultFlowData(defaultData: AtoDefaultFlowData) {\n const flowData = {\n ...defaultData,\n ..._.cloneDeep(ATO_COMPONENTS_GROUP_DATA)[defaultData?.systemType],\n linkFromPortIdProperty: 'fromPort',\n linkToPortIdProperty: 'toPort',\n };\n // Reponsive\n _.forEach(flowData?.nodeDataArray, (node: any) => {\n node = _.merge(\n node,\n node[`extendedData${window.innerWidth < 1024 ? 'Responsive' : ''}`]\n );\n if (node?.assetLayers) {\n node.visible =\n node?.assetLayers ===\n (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW);\n }\n });\n // assetLayer\n // flowData.nodeDataArray = _.filter(flowData.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW)))\n if (defaultData?.isUseBase64) {\n const itemImageTemp = (flowData as AtoGoJSData)?.nodeDataArray?.find(\n (x) => x?.type === 'Image Template'\n );\n if (itemImageTemp) {\n itemImageTemp.source = AtoGoJSBase64[defaultData?.systemType];\n }\n }\n return flowData;\n }\n\n setFlowData(data: AtoGoJSData) {\n // const layer = data?.assetLayer ?? this?.assetLayer ?? ATO_ASSET_LAYERS.FLOW;\n _.forEach(data.nodeDataArray, (node) => {\n if (node?.assetLayers) {\n node.visible = node?.assetLayers === data.assetLayer;\n }\n });\n this.flowData = {\n ...data,\n // nodeDataArray: _.filter(data.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === data?.assetLayer))\n };\n this.updateDataTableAssetParams(data);\n }\n\n updateDataTableAssetParams(data: AtoGoJSData) {\n this.dataTableAssetParams = _.forEach(\n this.flowData?.nodeDataArray?.filter(\n (e) =>\n e?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE &&\n e?.assetLayers === data?.assetLayer\n ),\n (x) => {\n if (!data?.isRefresh) {\n x.isCollapsed = this.assetParamsViewTemp?.data?.find(\n (y) => y?.key === x?.key\n )?.isCollapsed;\n }\n }\n );\n }\n}\n","<div class=\"h-100 d-flex flex-column flex-gap-3 flex-grow-1 overflow-auto px-3 pb-3\">\n <div class=\"h-100 d-flex flex-column\" atoLoading [appLoading]=\"flowData === null\">\n <ato-flow-diagram-lib\n *ngIf=\"flowData !== null\"\n #gjFlowDiagramTemp\n [data]=\"flowData\"\n [initialOptions]=\"options\"\n (onClikParamOfTable)=\"onClickParamOfTable($event)\"\n [class]=\"!!isResponsiveView ? 'diagram-responsive-view' : 'flex-grow-1'\"\n ></ato-flow-diagram-lib>\n <div class=\"mt-2\" *ngIf=\"isResponsiveView\">\n <ato-asset-params-view\n #assetParamsViewTemp\n [data]=\"dataTableAssetParams\"\n [isEditView]=\"true\"\n (clickParamTableRow)=\"onClickParamOfTable($event)\"\n ></ato-asset-params-view>\n </div>\n </div>\n</div>\n\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngAtoVar]',\n})\nexport class AtoNgVarDirective {\n @Input()\n set ngAtoVar(context: unknown) {\n this.context.$implicit = this.context.ngAtoVar = context;\n\n if (!this.hasView) {\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n this.hasView = true;\n }\n }\n\n private context: {\n $implicit: unknown;\n ngAtoVar: unknown;\n } = {\n $implicit: null,\n ngAtoVar: null,\n };\n\n private hasView: boolean = false;\n\n constructor(private templateRef: TemplateRef<any>, private vcRef: ViewContainerRef) {}\n}","import { NgModule } from '@angular/core';\nimport { AtoWaterLibComponent } from './ato-water-lib.component';\nimport { AtoFlowDiagramLibComponent } from './components/flow-diagram-lib/flow-diagram-lib.component';\nimport { AssetFlowComponent } from './components/asset-flow/asset-flow.component';\nimport { CommonModule } from '@angular/common';\nimport { AtoLoadingDirective } from './directive/ato-loading.directive';\nimport { AtoAssetParamsViewComponent } from './components/asset-params-view/asset-params-view.component';\nimport { AtoNgVarDirective } from './directive/ng-var.directive';\n\n@NgModule({\n declarations: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent,\n AssetFlowComponent,\n AtoLoadingDirective,\n AtoAssetParamsViewComponent,\n AtoNgVarDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent,\n AssetFlowComponent,\n AtoLoadingDirective,\n AtoAssetParamsViewComponent,\n AtoNgVarDirective,\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';\n// Component\nexport * from './lib/components/flow-diagram-lib/flow-diagram-lib.component';\nexport * from './lib/components/asset-flow/asset-flow.component';\nexport * from './lib/components/asset-params-view/asset-params-view.component';\n// Directive\nexport * from './lib/directive/ato-loading.directive';\nexport * from './lib/directive/ng-var.directive';\n// Enum\nexport * from './lib/constants/components-group-const';\n// Model\nexport * from './lib/models/gojs-editor.model';\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidV4","i2.AtoLoadingDirective","i2.AtoFlowDiagramLibComponent","i3.AtoLoadingDirective","i4.AtoAssetParamsViewComponent"],"mappings":"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CA;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;AA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AAA,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,CAA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,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,GAAG,GAAG,iBAAiB;AACzC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"}
|
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/constants/icon-base64.const.ts","../../../projects/ato-water-lib/src/lib/models/default-gojs-editor.model.ts","../../../projects/ato-water-lib/src/lib/directive/ato-loading.directive.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/constants/base64.const.ts","../../../projects/ato-water-lib/src/lib/constants/components-group-const.ts","../../../projects/ato-water-lib/src/lib/components/asset-params-view/asset-params-view.component.ts","../../../projects/ato-water-lib/src/lib/components/asset-params-view/asset-params-view.component.html","../../../projects/ato-water-lib/src/lib/components/asset-flow/asset-flow.component.ts","../../../projects/ato-water-lib/src/lib/components/asset-flow/asset-flow.component.html","../../../projects/ato-water-lib/src/lib/directive/ng-var.directive.ts","../../../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 AtoGojsEditorModel {\n initialOptions: any;\n data: any; // FlowGoJsComponentModel\n\n constructor(data: any) {\n this.data = data;\n }\n}\n\nexport namespace AtoGojsEditorModel {\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 CARROT_ORANGE = '#F69122',\n FLAMINGO = '#E95F47',\n SNOW = '#FEF7F6'\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 TEXT_LABEL = 'label',\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 AtoGojsEditorModel.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 = [\n WITH_DRAW_SYSTEM_TYPES.WATER_SOURCE,\n ];\n export const DISCHARGE_SYSTEM_TYPE_LIST = [\n DISCHARGE_TYPES_SYSTEM_TYPES.GROUND_WATER_RANEWABLE,\n ];\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 AtoGojsEditorModel.WaterWithdrawSources,\n AtoGojsEditorModel.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 =\n '/assets/images/icons/hoskote_plant';\n export const IMAGE_RO_WATER_TREATMENT_PATH =\n '/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 =\n 'assets/images/process-water/cooling-tower-4.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 AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n fill: AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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.TEXT_LABEL]: {\n name: ENUM_TEMPLATES.TEXT_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 AtoGojsEditorModel.WaterWithdrawSources,\n AtoGojsEditorModel.WaterDischargeDestinations,\n ];\n\n // Template type includes Water\n export const TYPE_TEMPLATE_WATER_NORMAL: string[] = [\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BOILER,\n AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER,\n AtoGojsEditorModel.ENUM_TEMPLATES.ETP_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.ZLD_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.MBR_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.DAF_WASTEWATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.DEMIN_WATER_TREATMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.DOMESTIC_USE,\n AtoGojsEditorModel.ENUM_TEMPLATES.LANDSCAPING_IRRIGATION,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.FRESH_SURFACE_WATER,\n AtoGojsEditorModel.ENUM_TEMPLATES.BRACKISH_SURFACE_WATER,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_RENEWABLE,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUND_WATER_NON_RENEWABLE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PRODUCED_ENTRAINED,\n AtoGojsEditorModel.ENUM_TEMPLATES.THIRD_PARTY_SOURCES,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.GRID,\n AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SOLAR_POWER,\n AtoGojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS,\n AtoGojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS,\n AtoGojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTINGS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GROUNDING,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC,\n AtoGojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.NATURAL_GAS_PIPELINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.LIQUEFIED_NATURAL_GAS,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE,\n AtoGojsEditorModel.ENUM_TEMPLATES.ON_SITE_PRODUCTION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PRODUCTION,\n AtoGojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FURNACES,\n AtoGojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COGENERATION,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.GAS_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BURNERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GASON_LINES,\n AtoGojsEditorModel.ENUM_TEMPLATES.BIODIESELS,\n AtoGojsEditorModel.ENUM_TEMPLATES.KEROSENSE,\n AtoGojsEditorModel.ENUM_TEMPLATES.PROPANES,\n AtoGojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PIPELINE,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.GENERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS,\n AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_METERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.VALUES,\n AtoGojsEditorModel.ENUM_TEMPLATES.STEAM_TRAPS,\n AtoGojsEditorModel.ENUM_TEMPLATES.PRESSURE_REGULATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SAFETY_VALUES_AND_EQUIPMENT,\n AtoGojsEditorModel.ENUM_TEMPLATES.CONDENSATE_RETURN_SYSTEM,\n AtoGojsEditorModel.ENUM_TEMPLATES.DEAERATORS,\n AtoGojsEditorModel.ENUM_TEMPLATES.FEEDWATER_PUMPS,\n AtoGojsEditorModel.ENUM_TEMPLATES.BLOWDOWN_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.EXPANSION_TANKS,\n AtoGojsEditorModel.ENUM_TEMPLATES.HEAT_EXCHANGERS,\n AtoGojsEditorModel.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 AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORAGE,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE,\n AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n AtoGojsEditorModel.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","export const ICONS_BASE64 = {\n \"uf044\": \"data:image/png;base64,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\"\n}","import { Directive, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { AtoGojsEditorModel } 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';\nimport { ICONS_BASE64 } from '../constants/icon-base64.const';\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: AtoGojsEditorModel.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 = AtoGojsEditorModel.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: AtoGojsEditorModel;\n @Input() set editor(v: AtoGojsEditorModel) {\n this._editor = v;\n if (v) {\n setTimeout(() => {\n this.initDiagram();\n }, 100);\n }\n }\n\n get editor(): AtoGojsEditorModel {\n return this._editor;\n }\n\n @Input() isShowNodeInfo: boolean = false;\n @Input() plantSatus: string;\n\n constructor(\n private _elRef: ElementRef,\n ) {\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.unsubscribeAll();\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 === AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT) {\n this.makeGroupROPlantTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.BOILER) {\n this.makeGroupBoilerTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER) {\n this.makeGroupCoolingTowerTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.ZONE) {\n this.makeGroupZoneTemplate();\n return;\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && node?.isGroup) {\n this.groupPlantCellTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_INPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 50, 0, 0),\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL_OUTPUT_GROUP) {\n this.groupPCInputOrOutTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n new go.Margin(0, 0, 0, 50),\n );\n return;\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.GROUP_BASIC_COMPONENT) {\n this.makeGroupBasicComponent(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n return;\n }\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.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 (AtoGojsEditorModel.TYPE_TEMPLATE_WATER_NORMAL?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n // Component Water Withdraw Or Discharge\n if (AtoGojsEditorModel.TYPE_TEMPLATE_WATER_WITHDRAW_OR_DISCHARGE?.includes(node?.type) && !node?.isGroup) {\n this.makeEntityWithdrawOrDischarge(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n // Component Energy Normal\n if (\n (AtoGojsEditorModel.TYPE_TEMPLATE_ELECTRICITY?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_NATURAL_GAS?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_FUEL?.includes(node?.type) ||\n AtoGojsEditorModel.TYPE_TEMPLATE_STEAM?.includes(node?.type)) &&\n !node?.isGroup\n ) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon ?? '',\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name ?? '',\n );\n }\n\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE) {\n this.makeImageTemplate();\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE) {\n this.makeParamTable();\n }\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE) {\n this.makeMassBalance();\n }\n // Text Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE) {\n this.makeTextTemplate();\n }\n // Value Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_NODE) {\n this.makeValueNodeTemplate();\n }\n\n // Value Node\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY) {\n this.makeEmptyNodeTemplate();\n }\n\n // Value Label\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL) {\n this.makeValueLabelTemplate();\n }\n // Label\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL) {\n this.makeTextLabelTemplate();\n }\n // Zone item\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM) {\n this.makeZoneItemTemplate();\n }\n // data box\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX) {\n this.makeDataBoxTemplate();\n }\n\n // Special template\n if (AtoGojsEditorModel.TYPE_TEMPLATE_SPECIAL?.includes(node?.type)) {\n this.makeSpecialTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].name,\n );\n }\n\n // Plant Cell\n if (node?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PLANT_CELL && !node?.isGroup) {\n this.plantCellTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[node?.type].icon,\n AtoGojsEditorModel.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\n const diagramDiv = this._elRef.nativeElement.querySelector(`#${this.myDiagramDiv}`);\n this.myDiagram = this.$(go.Diagram, diagramDiv, 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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeGroupTemplate(AtoGojsEditorModel.NODE_TEMPLATES[e].icon, AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[e].name,\n );\n }\n });\n }\n\n initElectricGroupTemplate() {\n const listItems = [\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BATTERY_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.TRANSFORMERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTINGS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.SWITCH_GEARS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_INDUSTRIAL_MOTORS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GROUNDING],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.MOTOR_CONTROLS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.LIGHTING_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.REFRIGERATION_COOLING_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_CONTROL_AUTOMATION_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.OFFICE_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_AIR_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS_EQUIPMENT_MACHINES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.MATERIAL_HANDLING_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_DISTRIBUTION_CONTROL_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BATTERIES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.VARIABLE_FREQUENCY_DRIVERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_FLYWHEEL_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PUMPED_HYDRO_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.THERMAL_ENERGY_STORAGE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.DIESEL_FUELS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GASON_LINES],\n\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BIODIESELS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.KEROSENSE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PROPANES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.TANKER_TRUCKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.PIPELINE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_BOILERS],\n\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GENERATORS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_FURNACES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_OVENS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.INDUSTRIAL_VEHICLES_AND_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.ELECTRIC_HVAC],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS],\n ];\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMPRESSED_NATURAL_GAS_PIPELINE],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BOILERS_AND_HEATERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FURNACES],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.POWER_GENERATION],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COGENERATION],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMBINED_CYCLE_POWER_PLANTS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FOR_VEHICLES_AND_EQUIPMENT],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_METERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.BURNERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FLUE_GAS_ANALYZERS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.COMBUSTION_CONTROL_SYSTEMS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_STORAGE_TANKS],\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.GAS_PRESSURE_REGULATORS],\n ];\n\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_DISPENSERS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_STRORAGE_TANKS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_FILTRATIONS].name,\n );\n this.makeGroupTemplate(\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.ENUM_TEMPLATES.FUEL_MANAGEMENTS].icon,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.ENUM_TEMPLATES;\n const ListItemsCreateEntityTemplate = [SOLAR_POWER, POWER_CONDITIONING_UNIT, BATTERY, INVERTER];\n ListItemsCreateEntityTemplate.map((e) => {\n if (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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 } = AtoGojsEditorModel.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 (!!AtoGojsEditorModel.NODE_TEMPLATES[e]) {\n this.makeEntityTemplateEnergy(\n AtoGojsEditorModel.NODE_TEMPLATES[e].icon,\n AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n strokeWidth: AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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) => AtoGojsEditorModel.LINK_TEMPLATES[x]?.strokeWidth),\n ),\n );\n\n // animation\n elements.push(\n this.$(go.Shape, {\n ...AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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 { ...AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.ENUM_LINK_TYPES.SIMPLE]?.arrow },\n new go.Binding(\n 'visible',\n 'type',\n (x) =>\n ![\n AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION,\n AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE,\n AtoGojsEditorModel.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: AtoGojsEditorModel.LINK_TEMPLATES[AtoGojsEditorModel.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 === AtoGojsEditorModel.ENUM_LINK_TYPES.PIPE_ANIMATION ? 11 : 10)),\n new go.Binding('toShortLength', 'type', (x) => AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL, node);\n }\n\n makeTextLabelTemplate(size: { w: number; h: number } = { w: NaN, h: 20 }) {\n const node = this.$(\n go.Node,\n 'Auto',\n {\n movable: false,\n isSelected: false,\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 'Horizontal',\n\n this.$(\n go.TextBlock,\n {\n margin: new go.Margin(0, 5, 10, 0),\n textAlign: 'center',\n font: 'bold 16px Arial',\n wrap: go.TextBlock.WrapFit,\n stroke: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n },\n new go.Binding('stroke', 'color'),\n new go.Binding('text', 'name'),\n new go.Binding('visible', 'visible'),\n ),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL, node);\n }\n\n makeTextTemplate(\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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 AtoGojsEditorModel.NODE_TEMPLATES[\n AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT\n ].name,\n AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 ?? AtoGojsEditorModel.NODE_TEMPLATES[AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.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: AtoGojsEditorModel.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 !== AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE &&\n AtoGojsEditorModel.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 if (action === AtoDefaultGojsEditor.ENUM_ACTIONS.OUTFLOW &&\n self.plantSatus === ATO_EPlantType.BASIC_PLANT && \n obj.part?.data?.type === AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE\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 if (\n e === AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS &&\n obj?.part?.['ob']?.systemType === AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER\n ) {\n return AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD;\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 case AtoDefaultGojsEditor.ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD:\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 === AtoGojsEditorModel.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 ...{\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: `${\n AtoGojsEditorModel.ACTION_RIGHT_MENU_GROUP.DATA_BOX\n }_${moment().valueOf()}`,\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n }, \n ...self.setProFOrNewNode(self)\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 setProFOrNewNode(self) {\n if (self.plantSatus === ATO_EPlantType.BASIC_PLANT) {\n return {\n movable: false,\n isNotAllowConnect: true,\n }\n }\n return {};\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: AtoGojsEditorModel.DATA_COLLECTION_METHOD.MANUAL,\n color: AtoGojsEditorModel.COLOR_COLLECTION_METHOD[AtoGojsEditorModel.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 / AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH) *\n AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH;\n pt.y =\n Math.round(pt.y / AtoGojsEditorModel.BASIC_GRID_SIZE_HEIGHT) *\n AtoGojsEditorModel.BASIC_GRID_SIZE_HEIGHT;\n return pt;\n },\n },\n {\n // minSize: new go.Size(AtoGojsEditorModel.BASIC_GRID_SIZE_WIDTH, AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 AtoGojsEditorModel.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 : AtoGojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH;\n }),\n ),\n ),\n );\n this.myDiagram.nodeTemplateMap.set(AtoGojsEditorModel.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 new go.Binding('visible', '', (data) => {\n return typeof data?.visible === 'boolean' ? data?.visible : true;\n }),\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 {\n cursor: 'pointer',\n click: (e, obj: any) => {\n if (obj.panel.part.data?.dataTable[obj.row]?.isEditable === false) {\n return;\n }\n self.onClikParamOfTable.emit({\n ...obj.panel.part.data?.dataTable[obj.row],\n });\n },\n background: 'transparent',\n },\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 return new go.Size(panel.part?.data?.minSizeValue?.width, NaN);\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 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.Picture,\n {\n alignment: go.Spot.Right,\n column: 1,\n margin: new go.Margin(0, 0, 0, 5),\n source: ICONS_BASE64[\"uf044\"],\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 height: 14,\n width: 14,\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(AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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 = AtoGojsEditorModel.ENUM_COLORS.WHITE;\n // // }\n // },\n },\n new go.Binding('layout', '', function (data, node) {\n // return data?.layoutValue === AtoGojsEditorModel.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 === AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.RESOLUTION_BLUE,\n // stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.WHITE,\n // stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.GRID_SIZE * 14, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n name: 0,\n color: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_NODE,\n // name: 0,\n // color: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.ZONE, node);\n }\n\n makeZoneItemTemplate(\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 12, h: AtoGojsEditorModel.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: AtoGojsEditorModel.ENUM_COLORS.LIGHT_BLUE,\n stroke: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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: AtoGojsEditorModel.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(AtoGojsEditorModel.ENUM_TEMPLATES.ZONE_ENERGY_ITEM, node);\n }\n\n makeSpecialTemplate(\n icon,\n title,\n size: { w: number; h: number } = { w: AtoGojsEditorModel.GRID_SIZE * 5, h: AtoGojsEditorModel.GRID_SIZE * 5 },\n ) {\n let node: any = null;\n switch (title) {\n case AtoGojsEditorModel.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, AtoGojsEditorModel.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 AtoGojsEditorModel.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, AtoGojsEditorModel.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 AtoGojsEditorModel.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 AtoGojsEditorModel.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 AtoGojsEditorModel.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 FLOW_DETAILS_AND_WIZARD = 'Flow details & wizard', // only now for Cooling Tower\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.FLOW_DETAILS_AND_WIZARD]: {\n name: ENUM_ACTIONS.FLOW_DETAILS_AND_WIZARD,\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 { Directive, ElementRef, Renderer2, Input, OnChanges, SimpleChanges } from '@angular/core';\n\n@Directive({\n selector: '[atoLoading]'\n})\nexport class AtoLoadingDirective implements OnChanges {\n\n @Input() appLoading: boolean;\n\n private spinnerWrapper: HTMLElement;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n this.spinnerWrapper = this.renderer.createElement('div');\n this.renderer.setStyle(this.spinnerWrapper, 'position', 'absolute');\n this.renderer.setStyle(this.spinnerWrapper, 'top', '0');\n this.renderer.setStyle(this.spinnerWrapper, 'left', '0');\n this.renderer.setStyle(this.spinnerWrapper, 'width', '100%');\n this.renderer.setStyle(this.spinnerWrapper, 'height', '100%');\n this.renderer.setStyle(this.spinnerWrapper, 'display', 'flex');\n this.renderer.setStyle(this.spinnerWrapper, 'align-items', 'center');\n this.renderer.setStyle(this.spinnerWrapper, 'justify-content', 'center');\n this.renderer.setStyle(this.spinnerWrapper, 'background', 'rgba(255, 255, 255, 0.7)');\n this.renderer.setStyle(this.spinnerWrapper, 'z-index', '10');\n\n const spinner = this.renderer.createElement('img');\n this.renderer.setAttribute(spinner, 'src', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBzdHlsZT0ibWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kOiByZ2IoMjU1LCAyNTUsIDI1NSk7IGRpc3BsYXk6IGJsb2NrOyBzaGFwZS1yZW5kZXJpbmc6IGF1dG87IGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyIgd2lkdGg9Ijg4cHgiIGhlaWdodD0iODhweCIgdmlld0JveD0iMCAwIDEwMCAxMDAiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIj4KPGRlZnMgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgPG1hc2sgaWQ9ImxkaW8tdmN5YjQ1YmFvdWstbWFzayIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0id2hpdGUiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KICA8L21hc2s+CjwvZGVmcz4KPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiM1Y2FhZWEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvcmVjdD4KPGcgbWFzaz0idXJsKCNsZGlvLXZjeWI0NWJhb3VrLW1hc2spIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICA8cmVjdCB4PSItMTAwIiB5PSItMjUwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjkwIiByeT0iOTAiIGZpbGw9IiM4MmNlZmYiIG9wYWNpdHk9IjAuNCIgc3R5bGU9ImFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nOyBhbmltYXRpb24tZGVsYXk6IDBzOyI+CiAgICA8YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIHZhbHVlcz0iMCA1MCAtMTAwOzkwIDUwIC0xMDAiIGtleVRpbWVzPSIwOzEiIHN0eWxlPSJhbmltYXRpb24tcGxheS1zdGF0ZTogcnVubmluZzsgYW5pbWF0aW9uLWRlbGF5OiAwczsiPjwvYW5pbWF0ZVRyYW5zZm9ybT4KICA8L3JlY3Q+CgogIDxyZWN0IHg9Ii0xMDAiIHk9Ii0yNjAiIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIiByeD0iOTUiIHJ5PSI5NSIgZmlsbD0iI2E1ZGNmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjEuNTE1MTUxNTE1MTUxNTE1MXMiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTExMDs5MCA1MCAtMTEwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKICA8cmVjdCB4PSItMTAwIiB5PSItMjcwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgcng9IjEwMCIgcnk9IjEwMCIgZmlsbD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC40IiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij4KICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRyYW5zZm9ybSIgdHlwZT0icm90YXRlIiBkdXI9IjMuMDMwMzAzMDMwMzAzMDMwM3MiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiB2YWx1ZXM9IjAgNTAgLTEyMDs5MCA1MCAtMTIwIiBrZXlUaW1lcz0iMDsxIiBzdHlsZT0iYW5pbWF0aW9uLXBsYXktc3RhdGU6IHJ1bm5pbmc7IGFuaW1hdGlvbi1kZWxheTogMHM7Ij48L2FuaW1hdGVUcmFuc2Zvcm0+CiAgPC9yZWN0PgoKPC9nPgo8IS0tIFtsZGlvXSBnZW5lcmF0ZWQgYnkgaHR0cHM6Ly9sb2FkaW5nLmlvLyAtLT48L3N2Zz4=');\n this.renderer.setStyle(spinner, 'width', '30px');\n this.renderer.setStyle(spinner, 'height', '30px');\n this.renderer.setStyle(spinner, 'border-radius', '50%');\n\n this.renderer.appendChild(this.spinnerWrapper, spinner);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['appLoading']) {\n if (this.appLoading) {\n this.showSpinner();\n } else {\n this.hideSpinner();\n }\n }\n }\n\n private showSpinner(): void {\n this.renderer.setStyle(this.el.nativeElement, 'position', 'relative');\n this.renderer.appendChild(this.el.nativeElement, this.spinnerWrapper);\n }\n\n private hideSpinner(): void {\n if (this.el.nativeElement.contains(this.spinnerWrapper)) {\n this.renderer.removeChild(this.el.nativeElement, this.spinnerWrapper);\n }\n }\n\n}\n","import { Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport _ from 'lodash';\n\nimport { AtoDefaultGojsEditor } from '../../models/default-gojs-editor.model';\nimport { AtoGojsEditorModel } 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() 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 _elRef: ElementRef,\n ) {\n super(_elRef);\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 loadDiagram() {\n this.editor = new AtoGojsEditorModel({\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 class=\"w-100 h-100 gj-flow-diagram-wrapper\" atoLoading [appLoading]=\"data === null || !!isLoading\">\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 No Data\n </div>\n </div>\n</div>\n","import { AtoGojsEditorModel } from \"../models/gojs-editor.model\";\n\nexport const AtoGoJSBase64 = {\n [AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER]: \"data:image/png;base64,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\"\n}","import * as go from 'gojs';\nimport { AtoGojsEditorModel } from '../models/gojs-editor.model';\n\nexport enum ENUM_ASSET_PARAMETERS {\n FEED_FLOW_RATE = 'Feed Flow Rate',\n FEED_CONDUCTIVITY = 'Feed Conductivity',\n FEED_TEMPERATURE = 'Feed Temperature',\n PRIMARY_PRESSURE = 'Primary Pressure',\n REJECTION_RATE_SALT_PASSAGE = 'Rejection Rate/Salt Passage',\n PRESSURE_DROP = 'Pressure Drop',\n SYSTEM_RECOVERY_RATE = 'System Recovery Rate',\n PERMEATE_FLOW_RATE = 'Permeate Flow Rate',\n PERMEATE_CONDUCTIVITY = 'Permeate Conductivity',\n PERMEATE_PRESSURE = 'Permeate Pressure',\n CONCENTRATE_FLOW_RATE = 'Concentrate Flow Rate',\n CONCENTRATE_PRESSURE = 'Stage2 Concentrate Pressure',\n CONCENTRATE_CONDUCTIVITY = 'Concentrate Conductivity',\n // Makeup Water\n MAKEUP_WATER_FLOW_RATE = 'MakeupWaterFlowRate',\n MAKEUP_WATER_FLOW = 'MakeupWaterFlow',\n MAKEUP_WATER_CONDUCTIVITY = 'MakeupWaterConductivity',\n MAKEUP_WATER_PH = 'MakeupWaterpH',\n MAKEUP_WATER_CALCIUM = 'MakeupWaterCalcium',\n MAKEUP_WATER_TOTAL_IRON = 'MakeupWaterTotalIron',\n // Evaporation Loss\n EVAPORATION_LOSS_FLOW_RATE = 'EvaporationLossFlowRate',\n EVAPORATION_LOSS_FLOW = 'EvaporationLossFlow',\n // Blowndown Water\n BLOWDOWN_WATER_FLOW_RATE = 'BlowdownWaterFlowRate',\n BLOWDOWN_WATER_FLOW = 'BlowdownWaterFlow',\n // Warmer Water\n WARMER_WATER_FLOW_RATE = 'WarmerWaterFlowRate',\n WARMER_WATER_FLOW = 'WarmerWaterFlow',\n // Cooling Tower Analysis\n ANALYSIS_CONDUCTIVITY = 'AnalysisConductivity',\n ANALYSIS_PH = 'AnalysispH',\n ANALYSIS_CALCIUM = 'AnalysisCalcium',\n ANALYSIS_TOTAL_IRON = 'AnalysisTotalIron',\n // Cooling Tower Chemistry\n CHEMISTRY_PHOSPHATE = 'ChemistryPhosphate',\n CHEMISTRY_CHLORINE = 'ChemistryChlorine',\n CHEMISTRY_STP_RESIDUAL = 'ChemistrySTPResidual',\n CHEMISTRY_CS_CORROSION = 'ChemistryCSCorrosion',\n // Cooling Tower KPI\n KPI_CYCLES = 'KpiCycles',\n KPI_ATP = 'KpiATP'\n}\n\nexport enum WATER_SYSTEMS_NAME {\n EVAPORATION_LOSS = 'Evaporation Loss',\n MAKEUP_WATER__FLOW = 'Makeup Water',\n MAKEUP_WATER__CHEMISTRY = 'Makeup Water',\n WARMER_WATER = 'Warmer Water (Recirculation)',\n BLOWDOWN_WATER = 'Blowdown Water',\n COOLING_TOWER_ANALYSIS = 'Cooling Water Analysis',\n COOLING_WATER_CHEMISTRY = 'Cooling Water Chemistry',\n SYSTEM_KPIS = `System KPI's`\n}\n\nexport const DATA_ASSET_PARAMETER_FIELDS = {\n [ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n },\n [ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE]: {\n name: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n key: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n },\n [ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE]: {\n name: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n key: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n },\n [ENUM_ASSET_PARAMETERS.PRESSURE_DROP]: {\n name: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n key: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n },\n [ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE]: {\n name: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n key: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n },\n [ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n },\n [ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY]: {\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n key: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n },\n // Makeup Water\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY]: {\n name: 'Conductivity',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH]: {\n name: 'pH',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM]: {\n name: 'Calcium',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON]: {\n name: 'Total Iron',\n key: ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON,\n waterSystem: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n },\n // Evaporation Loss\n [ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n },\n [ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n },\n // Blowndown Water\n [ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n },\n [ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n },\n // Warmer Water\n [ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE]: {\n name: 'Flow Rate',\n key: ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE,\n waterSystem: WATER_SYSTEMS_NAME.WARMER_WATER,\n },\n [ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW]: {\n name: 'Flow',\n key: ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW,\n waterSystem: WATER_SYSTEMS_NAME.WARMER_WATER,\n },\n // Cooling Tower Analysis\n [ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY]: {\n name: 'Conductivity',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_PH]: {\n name: 'pH',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_PH,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM]: {\n name: 'Calcium',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n [ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON]: {\n name: 'Iron',\n key: ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n },\n // Cooling Tower Chemistry\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE]: {\n name: 'Phosphate',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE]: {\n name: 'Chlorine',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL]: {\n name: 'STP Residual',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n [ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION]: {\n name: 'CS Corrosion',\n key: ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION,\n waterSystem: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n },\n // Cooling Tower KPI\n [ENUM_ASSET_PARAMETERS.KPI_CYCLES]: {\n name: 'Cycles',\n key: ENUM_ASSET_PARAMETERS.KPI_CYCLES,\n waterSystem: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n },\n [ENUM_ASSET_PARAMETERS.KPI_ATP]: {\n name: 'ATP',\n key: ENUM_ASSET_PARAMETERS.KPI_ATP,\n waterSystem: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n },\n};\n\nexport const DATA_WATER_SYSTEMS = {\n [WATER_SYSTEMS_NAME.EVAPORATION_LOSS]: {\n title: WATER_SYSTEMS_NAME.EVAPORATION_LOSS,\n color: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.SNOW,\n },\n [WATER_SYSTEMS_NAME.WARMER_WATER]: {\n title: WATER_SYSTEMS_NAME.WARMER_WATER,\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.OLD_LACE,\n },\n [WATER_SYSTEMS_NAME.BLOWDOWN_WATER]: {\n title: WATER_SYSTEMS_NAME.BLOWDOWN_WATER,\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.OLD_LACE,\n },\n\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW]: {\n title: WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW,\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.CERULEAN_ALICE_BLUE,\n },\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY]: {\n title: WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY,\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.CERULEAN_ALICE_BLUE,\n },\n\n [WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS]: {\n title: WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n [WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY]: {\n title: WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n [WATER_SYSTEMS_NAME.SYSTEM_KPIS]: {\n title: WATER_SYSTEMS_NAME.SYSTEM_KPIS,\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n borderTable: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n bgColor: AtoGojsEditorModel.ENUM_COLORS.AZURE,\n },\n};\n\nexport const ASSET_CATEGORY_PARAMS = {\n [WATER_SYSTEMS_NAME.EVAPORATION_LOSS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.EVAPORATION_LOSS_FLOW],\n ],\n [WATER_SYSTEMS_NAME.WARMER_WATER]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.WARMER_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CONDUCTIVITY],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_PH],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_CALCIUM],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.MAKEUP_WATER_TOTAL_IRON],\n ],\n [WATER_SYSTEMS_NAME.BLOWDOWN_WATER]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW_RATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.BLOWDOWN_WATER_FLOW],\n ],\n [WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_CONDUCTIVITY],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_PH],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_CALCIUM],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.ANALYSIS_TOTAL_IRON],\n ],\n [WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_PHOSPHATE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_CHLORINE],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_STP_RESIDUAL],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.CHEMISTRY_CS_CORROSION],\n ],\n [WATER_SYSTEMS_NAME.SYSTEM_KPIS]: [\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.KPI_CYCLES],\n DATA_ASSET_PARAMETER_FIELDS[ENUM_ASSET_PARAMETERS.KPI_ATP],\n ],\n};\n\nexport enum COMPONENTS_GROUP_TYPE {\n INFLOW = 'Inflow',\n LOSS = 'Loss',\n OUTFLOW = 'Outflow',\n RECIRCULATED = 'Recirculated',\n EMBODIED = 'Embodied',\n INFLOW_VALUE = 'InFlowValue',\n OUTFLOW_VALUE = 'OutFlowValue',\n LOSS_VALUE = 'LossValue',\n RECIRCULATED_VALUE = 'RecirculatedValue',\n}\n\nexport enum ATO_ASSET_LAYERS {\n FLOW = 'Flow',\n CHEMISTRY = 'Chemistry',\n ANALYTICS = 'Analytics'\n}\n\nexport const ATO_COMPONENTS_GROUP_DATA = {\n [AtoGojsEditorModel.ENUM_TYPES.STORAGE]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 130.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '300 130.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '152.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_STORE,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.STORAGE, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'T' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DEMIN_WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.RO_WATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.MASS_BALANCE,\n group: 100,\n loc: '830 10',\n selectable: false,\n value: 'NA',\n font: 'bold 15px Arial',\n colorValue: '',\n tooltip: '',\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '20 10',\n padding: new go.Margin(0, 0, 0, 20),\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.CERULEAN],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.FEED_TEMPERATURE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PRIMARY_PRESSURE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '420 40',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.DANUBE],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.REJECTION_RATE_SALT_PASSAGE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PRESSURE_DROP,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.SYSTEM_RECOVERY_RATE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '590 150',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.PERMEATE_PRESSURE,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '30 370',\n ...AtoGojsEditorModel.PARAM_TABLE_STYLE[AtoGojsEditorModel.ENUM_COLORS.GALLIANO],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: [\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_FLOW_RATE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_PRESSURE,\n value: '',\n isEditable: true,\n },\n {\n key: '',\n name: ENUM_ASSET_PARAMETERS.CONCENTRATE_CONDUCTIVITY,\n value: '',\n isEditable: true,\n },\n ],\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_RO_WATER_TREATMENT_PATH,\n group: 100,\n loc: '0 0',\n margin: new go.Margin(130, 0, 0, 0),\n selectable: false,\n },\n {\n key: 100,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.RO_WATER_TREATMENT,\n isGroup: true,\n name: 'Grid',\n loc: '0 0',\n selectable: false,\n // isViewGeneral: true,\n },\n ],\n linkDataArray: [],\n },\n [AtoGojsEditorModel.ENUM_TYPES.PROCESS]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 190',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '104 -20',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Embodied',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.FOUNTAIN_BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '144.5 297',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '90 80',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.PROCESS, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 94, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DAF_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.ETP_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.MBR_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.ZLD_WASTEWATER_TREATMENT]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '126 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '333 170',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 297',\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Recirculated',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.VIVID_VIOLET,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '266 32',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '125 110',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.WASTEWATER_TREATMENT, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 93, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'T', toPort: 'L' },\n { from: 93, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE, fromPort: 'B', toPort: 'R' },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.DOMESTIC_USE]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '-20 134.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '320 134.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '150.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_PROCESS,\n group: 100,\n loc: '82.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.DOMESTIC_USE, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.COOLING_TOWER]: {\n nodeDataArray: [\n {\n key: 86,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n group: 100,\n loc: '0 0',\n data: {\n quantity: 2222,\n unit: 'm³',\n },\n name: 'top-left-marker',\n color: '#a8438d',\n },\n {\n key: 87,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.EMPTY,\n group: 100,\n data: {\n quantity: 3333,\n unit: 'm³',\n },\n name: 'bottom-right-marker',\n color: '#a8438d',\n extendedData: {\n loc: '1000 700',\n },\n extendedDataResponsive: {\n loc: '700 300',\n }\n },\n {\n key: 88,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n loc: '320 60',\n padding: new go.Margin(0, 0, 0, 0),\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.EVAPORATION_LOSS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 140,\n })),\n visible: true,\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 89,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 270',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__FLOW].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 270',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.MAKEUP_WATER__CHEMISTRY].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '570 250',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.WARMER_WATER],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.WARMER_WATER].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '570 560',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.BLOWDOWN_WATER].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 120,\n })),\n assetLayers: ATO_ASSET_LAYERS.FLOW,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 93,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '450 20',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_TOWER_ANALYSIS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 94,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '730 20',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.COOLING_WATER_CHEMISTRY].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE,\n group: 100,\n padding: new go.Margin(0, 0, 0, 0),\n loc: '30 20',\n ...DATA_WATER_SYSTEMS[WATER_SYSTEMS_NAME.SYSTEM_KPIS],\n minSizeValue: new go.Size(100, NaN),\n selectable: false,\n dataTable: ASSET_CATEGORY_PARAMS[WATER_SYSTEMS_NAME.SYSTEM_KPIS].map((e) => ({\n ...e,\n value: '',\n isEditable: true,\n maxSizeValue: 130,\n })),\n assetLayers: ATO_ASSET_LAYERS.CHEMISTRY,\n extendedData: {\n visible: true,\n },\n extendedDataResponsive: {\n visible: false,\n }\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_COOLING_TOWER_PATH,\n group: 100,\n loc: '0 0',\n selectable: false,\n extendedData: {\n margin: new go.Margin(195, 20, 0, 0),\n },\n extendedDataResponsive: {\n margin: new go.Margin(20, 20, 0, 0),\n }\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '250 25',\n name: 'Evaporation Loss',\n color: AtoGojsEditorModel.ENUM_COLORS.FLAMINGO,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n {\n key: 98,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '110 290',\n name: 'Makeup Water',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.TEXT_LABEL,\n group: 100,\n loc: '580 435',\n name: 'Blowdown Water',\n color: AtoGojsEditorModel.ENUM_COLORS.CARROT_ORANGE,\n extendedData: {\n visible: false,\n },\n extendedDataResponsive: {\n visible: true,\n }\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.COOLING_TOWER, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [],\n },\n [AtoGojsEditorModel.ENUM_TYPES.BOILER]: {\n nodeDataArray: [\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.IMAGE_TEMPLATE,\n source: AtoGojsEditorModel.IMAGE_BOILER_PATH,\n group: 100,\n loc: '0 0',\n margin: new go.Margin(0, 0, 0, 0),\n selectable: false,\n width: 1038,\n height: 516,\n },\n {\n key: 95,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '0 380',\n data: {\n quantity: 2222,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.INFLOW_VALUE,\n color: '#a8438d',\n },\n {\n key: 96,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '670 430',\n data: {\n quantity: 3333,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.OUTFLOW_VALUE,\n color: '#a8438d',\n },\n {\n key: 97,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '612 0',\n data: {\n quantity: 4444,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.LOSS_VALUE,\n color: '#a8438d',\n },\n {\n key: 98,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.VALUE_LABEL,\n group: 100,\n loc: '310 0',\n data: {\n quantity: 5555,\n unit: 'm3',\n },\n name: COMPONENTS_GROUP_TYPE.RECIRCULATED_VALUE,\n color: '#a8438d',\n },\n {\n key: 100,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.BOILER,\n isGroup: true,\n name: 'Group',\n loc: '0 0',\n selectable: false,\n },\n ],\n linkDataArray: [],\n },\n [AtoGojsEditorModel.ENUM_TYPES.OTHER]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 140.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Outflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '300 134.5',\n },\n {\n key: 92,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '160.5 0',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_OTHER,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.OTHER, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 92, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n [AtoGojsEditorModel.ENUM_TYPES.LANDSCAPING_IRRIGATION]: {\n nodeDataArray: [\n {\n key: 90,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Inflow',\n value: '0 kl',\n color: AtoGojsEditorModel.ENUM_COLORS.CERULEAN,\n group: 100,\n loc: '0 140.5',\n },\n {\n key: 91,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.DATA_BOX,\n name: 'Loss',\n value: 'M',\n color: AtoGojsEditorModel.ENUM_COLORS.BLUE,\n group: 100,\n colorValue: AtoGojsEditorModel.ENUM_COLORS.GRAY,\n loc: '300 140.5',\n },\n {\n key: 99,\n type: AtoGojsEditorModel.ENUM_TEMPLATES.SPECIAL_DISCHARGE,\n group: 100,\n loc: '92.5 95',\n },\n { key: 100, type: AtoGojsEditorModel.ENUM_TEMPLATES.LANDSCAPING_IRRIGATION, isGroup: true, name: 'Group' },\n ],\n linkDataArray: [\n { from: 90, to: 99, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n { from: 99, to: 91, color: AtoGojsEditorModel.ENUM_COLORS.BLUE },\n ],\n },\n};\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'ato-asset-params-view',\n templateUrl: './asset-params-view.component.html',\n styleUrls: ['./asset-params-view.component.scss']\n})\nexport class AtoAssetParamsViewComponent {\n @Input() isEditView = false;\n @Input() data: any[] = [];\n @Output() clickParamTableRow = new EventEmitter();\n\n onClickRowParam(itemTable) {\n this.clickParamTableRow.emit(itemTable);\n }\n}\n","<div class=\"d-flex flex-column flex-gap-2\">\n <div class=\"\" *ngFor=\"let tableParam of data\">\n <ng-template\n [ngTemplateOutlet]=\"tableParamTemplate\"\n [ngTemplateOutletContext]=\"{\n data: tableParam\n }\"\n ></ng-template>\n </div>\n</div>\n\n<ng-template #tableParamTemplate let-data=\"data\">\n <div\n class=\"d-flex flex-column asset-param-item w-100\"\n [style.backgroundColor]=\"data?.color\"\n >\n <div\n class=\"d-flex align-items-center justify-content-between py-1 pl-1 pr-2 cursor-pointer\"\n (click)=\"data.isCollapsed = !data.isCollapsed\"\n >\n <div class=\"font-size-14px flex-grow-1 text-truncate color-white\">\n {{ data?.title }}\n </div>\n <svg\n *ngIf=\"data.isCollapsed\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 320 512\"\n fill=\"#FFFF\"\n class=\"fa-solid font-size-14px color-white svg-15px\"\n >\n <path\n d=\"M278.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L210.7 256 73.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"\n />\n </svg>\n <svg\n *ngIf=\"!data.isCollapsed\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 448 512\"\n fill=\"#FFFF\"\n class=\"fa-solid font-size-14px color-white svg-15px\"\n >\n <path\n d=\"M201.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 306.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"\n />\n </svg>\n </div>\n <div class=\"px-1 pb-1\" *ngIf=\"!data.isCollapsed\">\n <div\n class=\"table-asset-param-wrapper\"\n [style.backgroundColor]=\"data?.bgColor\"\n >\n <table>\n <tbody>\n <tr\n *ngFor=\"let itemTable of data?.dataTable\"\n (click)=\"onClickRowParam(itemTable)\"\n class=\"cursor-pointer\"\n >\n <td\n class=\"font-size-13px\"\n [style.borderColor]=\"data?.borderTable\"\n >\n {{ itemTable?.name }}\n </td>\n <td\n class=\"font-size-13px\"\n [style.borderColor]=\"data?.borderTable\"\n >\n <div class=\"d-flex align-items-center\">\n <div\n class=\"mr-auto font-size-13px text-truncate flex-grow-1\"\n [style.color]=\"itemTable?.color\"\n >\n {{ itemTable?.value }}\n </div>\n <svg *ngIf=\"isEditView\" class=\"svg-15px\" fill=\"#333333\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path d=\"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152V424c0 48.6 39.4 88 88 88H360c48.6 0 88-39.4 88-88V312c0-13.3-10.7-24-24-24s-24 10.7-24 24V424c0 22.1-17.9 40-40 40H88c-22.1 0-40-17.9-40-40V152c0-22.1 17.9-40 40-40H200c13.3 0 24-10.7 24-24s-10.7-24-24-24H88z\"/></svg>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n</ng-template>\n","import {\n Component,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport * as go from 'gojs';\nimport _ from 'lodash';\nimport { AtoGoJSBase64 } from '../../constants/base64.const';\nimport {\n ATO_ASSET_LAYERS,\n ATO_COMPONENTS_GROUP_DATA,\n} from '../../constants/components-group-const';\nimport { AtoDefaultFlowData } from '../../models/ato-asset-flow.model';\nimport { AtoGoJSData } from '../../models/gojs-data.model';\nimport { AtoGojsEditorModel } from '../../models/gojs-editor.model';\nimport { AtoAssetParamsViewComponent } from '../asset-params-view/asset-params-view.component';\nimport { AtoFlowDiagramLibComponent } from '../flow-diagram-lib/flow-diagram-lib.component';\n\n@Component({\n selector: 'ato-asset-flow',\n templateUrl: './asset-flow.component.html',\n styleUrls: ['./asset-flow.component.scss'],\n})\nexport class AssetFlowComponent implements OnInit {\n @Input() assetLayer: ATO_ASSET_LAYERS;\n @ViewChild(AtoFlowDiagramLibComponent)\n gjFlowDiagramTemp: AtoFlowDiagramLibComponent;\n @ViewChild(AtoAssetParamsViewComponent)\n assetParamsViewTemp: AtoAssetParamsViewComponent;\n @Input() selectedComponent: any;\n @Input() systemType: AtoGojsEditorModel.ENUM_TYPES;\n @Output() onClickParamOfTableEvent: EventEmitter<any> =\n new EventEmitter<any>();\n @Input() isUseBase64 = false;\n $ = go.GraphObject.make;\n options = {\n layout: this.$(go.LayeredDigraphLayout, {\n // direction: 0,\n }),\n // isReadOnly: true,\n };\n\n private _flowData: any;\n @Input() set flowData(v: AtoGoJSData) {\n this._flowData = v;\n this.updateDataTableAssetParams({ ...v, assetLayer: this.assetLayer });\n }\n get flowData(): AtoGoJSData {\n return this._flowData;\n }\n\n // Reponsive\n dataTableAssetParams: any[];\n // @Input() isResponsiveView = false;\n get isResponsiveView() {\n return window.innerWidth < 1024;\n }\n @Input() getFlowDataCallBack: Function;\n\n timeoutResizeWindow;\n @HostListener('window:resize', ['$event'])\n onResize(event: Event): void {\n // Now only Support Cooling Tower Responsive\n if (this.timeoutResizeWindow) {\n clearTimeout(this.timeoutResizeWindow);\n }\n this.timeoutResizeWindow = setTimeout(() => {\n this.updateLocationReponsive();\n }, 1000);\n }\n\n updateLocationReponsive() {\n if (!this.flowData?.nodeDataArray) {\n this.flowData = AssetFlowComponent.getDefaultFlowData({\n systemType: this.systemType,\n isUseBase64: this.isUseBase64,\n assetLayer: this.assetLayer,\n });\n }\n _.forEach(this.flowData?.nodeDataArray, (node: any) => {\n node = _.merge(\n node,\n node[`extendedData${this.isResponsiveView ? 'Responsive' : ''}`]\n );\n });\n this.setFlowData(_.cloneDeep(this.flowData));\n }\n\n ngOnInit() {\n this.updateLocationReponsive();\n }\n onClickParamOfTable($event: any) {\n this.onClickParamOfTableEvent.emit($event);\n }\n\n static getDefaultFlowData(defaultData: AtoDefaultFlowData) {\n const flowData = {\n ...defaultData,\n ..._.cloneDeep(ATO_COMPONENTS_GROUP_DATA)[defaultData?.systemType],\n linkFromPortIdProperty: 'fromPort',\n linkToPortIdProperty: 'toPort',\n };\n const isResponsiveView = window.innerWidth < 1024;\n // Reponsive\n _.forEach(flowData?.nodeDataArray, (node: any) => {\n node = _.merge(\n node,\n node[`extendedData${isResponsiveView ? 'Responsive' : ''}`]\n );\n if (node?.assetLayers) {\n node.visible =\n node?.assetLayers === defaultData?.assetLayer &&\n node[`extendedData${isResponsiveView ? 'Responsive' : ''}`]?.visible;\n }\n });\n // assetLayer\n // flowData.nodeDataArray = _.filter(flowData.nodeDataArray, x => !x?.assetLayers || (x?.assetLayers && x?.assetLayers === (defaultData?.assetLayer ?? ATO_ASSET_LAYERS.FLOW)))\n if (defaultData?.isUseBase64) {\n const itemImageTemp = (flowData as AtoGoJSData)?.nodeDataArray?.find(\n (x) => x?.type === 'Image Template'\n );\n if (itemImageTemp) {\n itemImageTemp.source = AtoGoJSBase64[defaultData?.systemType];\n }\n }\n return flowData;\n }\n\n setFlowData(data: AtoGoJSData) {\n _.forEach(data.nodeDataArray, (node) => {\n node = _.merge(\n node,\n node[`extendedData${this.isResponsiveView ? 'Responsive' : ''}`],\n );\n if (node?.assetLayers) {\n node.visible =\n node?.assetLayers === data.assetLayer &&\n node[`extendedData${this.isResponsiveView ? 'Responsive' : ''}`]\n ?.visible;\n }\n });\n this.flowData = {\n ...data,\n };\n this.updateDataTableAssetParams(data);\n }\n\n updateDataTableAssetParams(data: AtoGoJSData) {\n this.dataTableAssetParams = _.forEach(\n this.flowData?.nodeDataArray?.filter(\n (e) =>\n e?.type === AtoGojsEditorModel.ENUM_TEMPLATES.PARAM_TABLE &&\n e?.assetLayers === data?.assetLayer\n ),\n (x) => {\n if (!data?.isRefresh) {\n x.isCollapsed = this.assetParamsViewTemp?.data?.find(\n (y) => y?.key === x?.key\n )?.isCollapsed;\n }\n }\n );\n }\n}\n","<div class=\"h-100 d-flex flex-column flex-gap-3 flex-grow-1 overflow-auto px-3 pb-3\">\n <div class=\"h-100 d-flex flex-column\" atoLoading [appLoading]=\"flowData === null\">\n <ato-flow-diagram-lib\n *ngIf=\"flowData !== null\"\n #gjFlowDiagramTemp\n [data]=\"flowData\"\n [initialOptions]=\"options\"\n (onClikParamOfTable)=\"onClickParamOfTable($event)\"\n [class]=\"!!isResponsiveView ? 'diagram-responsive-view' : 'flex-grow-1'\"\n ></ato-flow-diagram-lib>\n <div class=\"mt-2\" *ngIf=\"isResponsiveView\">\n <ato-asset-params-view\n #assetParamsViewTemp\n [data]=\"dataTableAssetParams\"\n [isEditView]=\"true\"\n (clickParamTableRow)=\"onClickParamOfTable($event)\"\n ></ato-asset-params-view>\n </div>\n </div>\n</div>\n\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Directive({\n selector: '[ngAtoVar]',\n})\nexport class AtoNgVarDirective {\n @Input()\n set ngAtoVar(context: unknown) {\n this.context.$implicit = this.context.ngAtoVar = context;\n\n if (!this.hasView) {\n this.vcRef.createEmbeddedView(this.templateRef, this.context);\n this.hasView = true;\n }\n }\n\n private context: {\n $implicit: unknown;\n ngAtoVar: unknown;\n } = {\n $implicit: null,\n ngAtoVar: null,\n };\n\n private hasView: boolean = false;\n\n constructor(private templateRef: TemplateRef<any>, private vcRef: ViewContainerRef) {}\n}","import { NgModule } from '@angular/core';\nimport { AtoWaterLibComponent } from './ato-water-lib.component';\nimport { AtoFlowDiagramLibComponent } from './components/flow-diagram-lib/flow-diagram-lib.component';\nimport { AssetFlowComponent } from './components/asset-flow/asset-flow.component';\nimport { CommonModule } from '@angular/common';\nimport { AtoLoadingDirective } from './directive/ato-loading.directive';\nimport { AtoAssetParamsViewComponent } from './components/asset-params-view/asset-params-view.component';\nimport { AtoNgVarDirective } from './directive/ng-var.directive';\n\n@NgModule({\n declarations: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent,\n AssetFlowComponent,\n AtoLoadingDirective,\n AtoAssetParamsViewComponent,\n AtoNgVarDirective,\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n AtoWaterLibComponent,\n AtoFlowDiagramLibComponent,\n AssetFlowComponent,\n AtoLoadingDirective,\n AtoAssetParamsViewComponent,\n AtoNgVarDirective,\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';\n// Component\nexport * from './lib/components/flow-diagram-lib/flow-diagram-lib.component';\nexport * from './lib/components/asset-flow/asset-flow.component';\nexport * from './lib/components/asset-params-view/asset-params-view.component';\n// Directive\nexport * from './lib/directive/ato-loading.directive';\nexport * from './lib/directive/ng-var.directive';\n// Enum\nexport * from './lib/constants/components-group-const';\n// Model\nexport * from './lib/models/gojs-editor.model';\n\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidV4","i2.AtoLoadingDirective","i2.AtoFlowDiagramLibComponent","i3.AtoLoadingDirective","i4.AtoAssetParamsViewComponent"],"mappings":"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CA;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;AA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AAA,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,CAA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,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,GAAG,GAAG,iBAAiB;AACzC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"}
|