@undp/carbon-library 1.0.135-ghg-inventory.2 → 1.0.135-ghg-inventory.3

Sign up to get free protection for your applications and to get access to all the features.
package/dist/esm/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { PlusOutlined, FilterOutlined, BankOutlined, SafetyOutlined, AuditOutlined, ExperimentOutlined, UploadOutlined, UserOutlined, MinusCircleOutlined, StarOutlined, ToolOutlined, EyeOutlined, SearchOutlined, EllipsisOutlined, EditOutlined, DeleteOutlined, FileAddOutlined, CheckCircleOutlined, ExclamationCircleOutlined, BookOutlined, CaretDownOutlined, EyeInvisibleOutlined, GlobalOutlined, FlagOutlined, LineChartOutlined, LikeOutlined, DislikeOutlined, PlusCircleOutlined, LockFilled, CloseCircleOutlined } from '@ant-design/icons';
1
+ import { PlusOutlined, FilterOutlined, BankOutlined, SafetyOutlined, AuditOutlined, ExperimentOutlined, UploadOutlined, UserOutlined, MinusCircleOutlined, StarOutlined, ToolOutlined, EyeOutlined, SearchOutlined, EllipsisOutlined, EditOutlined, DeleteOutlined, FileAddOutlined, CheckCircleOutlined, ExclamationCircleOutlined, BookOutlined, CaretDownOutlined, EyeInvisibleOutlined, GlobalOutlined, FlagOutlined, LineChartOutlined, LikeOutlined, DislikeOutlined, PlusCircleOutlined, LockFilled, DownloadOutlined, CloseCircleOutlined } from '@ant-design/icons';
2
2
  import { Input, Radio, Space, Row, Col, Button, Dropdown, Table, Empty, message, Form, Steps, Upload, Tooltip, Select, Modal, Alert, Skeleton, Card, Tag, Checkbox, DatePicker, InputNumber, Popover, List, Typography, Spin, Tabs, Progress, Collapse } from 'antd';
3
3
  import React, { useState, useEffect, useRef } from 'react';
4
4
  import { DateTime } from 'luxon';
@@ -24996,7 +24996,7 @@ var TimelineBody = function (props) {
24996
24996
  React.createElement("div", { className: "remark-body" }, remark)))));
24997
24997
  };
24998
24998
 
24999
- var css_248z$1 = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.emission-tab-container .add-emission {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .emission-tab-container .add-emission .add-new-year-picker-col {\n padding-left: 5%; }\n .emission-tab-container .add-emission .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .emission-tab-container .add-emission .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .emission-tab-container .add-emission .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .emission-tab-container .add-emission .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .emission-tab-container .add-emission .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .emission-tab-container .add-emission .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 18px;\n font-weight: 600;\n color: #28282899; }\n .emission-tab-container .add-emission .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .emission-tab-container .add-emission .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .emission-tab-container .add-emission .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon {\n margin-top: 5px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .emission-tab-container .add-emission .ant-collapse {\n margin-left: 10px; }\n .emission-tab-container .add-emission .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .emission-tab-container .add-emission .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-content-input-box-row {\n margin-top: 14px; }\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 33%; }\n .emission-tab-container .add-emission .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .emission-tab-container .add-emission .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .emission-tab-container .add-emission .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .emission-tab-container .add-emission .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .submit-btn {\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n margin-left: 25%; } }\n";
24999
+ var css_248z$1 = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.emission-tab-container .add-emission {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .emission-tab-container .add-emission .add-new-year-picker-col {\n padding-left: 5%; }\n .emission-tab-container .add-emission .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .emission-tab-container .add-emission .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .emission-tab-container .add-emission .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .emission-tab-container .add-emission .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px;\n color: #8C8C8C;\n border-radius: 4px; }\n .emission-tab-container .add-emission .view-download-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .emission-tab-container .add-emission .view-download-file-inner-col button {\n height: 50px;\n font-size: 12px;\n font-weight: 400;\n width: 135px;\n margin-left: 5px;\n color: #8C8C8C;\n border-radius: 4px; }\n .emission-tab-container .add-emission .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .emission-tab-container .add-emission .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 18px;\n font-weight: 600;\n color: #28282899; }\n .emission-tab-container .add-emission .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .emission-tab-container .add-emission .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .emission-tab-container .add-emission .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon {\n margin-top: 5px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .emission-tab-container .add-emission .ant-collapse {\n margin-left: 10px; }\n .emission-tab-container .add-emission .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .emission-tab-container .add-emission .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-content-input-box-row {\n margin-top: 14px; }\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 33%; }\n .emission-tab-container .add-emission .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .emission-tab-container .add-emission .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .view-data-panel .panel-content-input-box-row {\n padding-bottom: 24px; }\n .emission-tab-container .add-emission .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .emission-tab-container .add-emission .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .emission-tab-container .add-emission .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .submit-btn {\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n margin-left: 25%; } }\n";
25000
25000
  styleInject(css_248z$1);
25001
25001
 
25002
25002
  var EmissionTypes = { co2: 'CO2', ch4: 'CH4', n2o: 'N2O', co2eq: 'CO2-eq' };
@@ -25067,6 +25067,238 @@ var formFields = {
25067
25067
  ],
25068
25068
  other: ['indirectN2oEmissions', 'other'],
25069
25069
  };
25070
+ var emissionCsvFieldMap = {
25071
+ "year": "Year",
25072
+ "energyEmissions_fuelCombustionActivities_transport_ch4": "Transport - CH4",
25073
+ "energyEmissions_fuelCombustionActivities_transport_co2": "Transport - CO2",
25074
+ "energyEmissions_fuelCombustionActivities_transport_n2o": "Transport - N2O",
25075
+ "energyEmissions_fuelCombustionActivities_transport_co2eq": "Transport - CO2-eq",
25076
+ "energyEmissions_fuelCombustionActivities_nonSpecified_ch4": "Non-Specified - CH4",
25077
+ "energyEmissions_fuelCombustionActivities_nonSpecified_co2": "Non-Specified - CO2",
25078
+ "energyEmissions_fuelCombustionActivities_nonSpecified_n2o": "Non-Specified - N2O",
25079
+ "energyEmissions_fuelCombustionActivities_nonSpecified_co2eq": "Non-Specified - CO2-eq",
25080
+ "energyEmissions_fuelCombustionActivities_otherSectors_ch4": "Other Sectors - CH4",
25081
+ "energyEmissions_fuelCombustionActivities_otherSectors_co2": "Other Sectors - CO2",
25082
+ "energyEmissions_fuelCombustionActivities_otherSectors_n2o": "Other Sectors - N2O",
25083
+ "energyEmissions_fuelCombustionActivities_otherSectors_co2eq": "Other Sectors - CO2-eq",
25084
+ "energyEmissions_fuelCombustionActivities_energyIndustries_ch4": "Energy Industries - CH4",
25085
+ "energyEmissions_fuelCombustionActivities_energyIndustries_co2": "Energy Industries - CO2",
25086
+ "energyEmissions_fuelCombustionActivities_energyIndustries_n2o": "Energy Industries - N2O",
25087
+ "energyEmissions_fuelCombustionActivities_energyIndustries_co2eq": "Energy Industries - CO2-eq",
25088
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_ch4": "Manufacturing Industries and Construction - CH4",
25089
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_co2": "Manufacturing Industries and Construction - CO2",
25090
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_n2o": "Manufacturing Industries and Construction - N2O",
25091
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_co2eq": "Manufacturing Industries and Construction - CO2-eq",
25092
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_ch4": "Solid Fuels - CH4",
25093
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_co2": "Solid Fuels - CO2",
25094
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_n2o": "Solid Fuels - N2O",
25095
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_co2eq": "Solid Fuels - CO2-eq",
25096
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_ch4": "Oil and Natural Gas - CH4",
25097
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_co2": "Oil and Natural Gas - CO2",
25098
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_n2o": "Oil and Natural Gas - N2O",
25099
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_co2eq": "Oil and Natural Gas - CO2-eq",
25100
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_ch4": "Other emissions from Energy Production - CH4",
25101
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_co2": "Other emissions from Energy Production - CO2",
25102
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_n2o": "Other emissions from Energy Production - N2O",
25103
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_co2eq": "Other emissions from Energy Production - CO2-eq",
25104
+ "energyEmissions_carbonDioxideTransportStorage_other_ch4": "Other (Carbon dioxide Transport and Storage) - CH4",
25105
+ "energyEmissions_carbonDioxideTransportStorage_other_co2": "Other (Carbon dioxide Transport and Storage) - CO2",
25106
+ "energyEmissions_carbonDioxideTransportStorage_other_n2o": "Other (Carbon dioxide Transport and Storage) - N2O",
25107
+ "energyEmissions_carbonDioxideTransportStorage_other_co2eq": "Other (Carbon dioxide Transport and Storage) - CO2-eq",
25108
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_ch4": "Transport of CO2 - CH4",
25109
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_co2": "Transport of CO2 - CO2",
25110
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_n2o": "Transport of CO2 - N2O",
25111
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_co2eq": "Transport of CO2 - CO2-eq",
25112
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_ch4": "Injection and Storage - CH4",
25113
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_co2": "Injection and Storage - CO2",
25114
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_n2o": "Injection and Storage - N2O",
25115
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_co2eq": "Injection and Storage - CO2-eq",
25116
+ "industrialProcessesProductUse_other_ch4": "Other (Industrial Processes & Product Use) - CH4",
25117
+ "industrialProcessesProductUse_other_co2": "Other (Industrial Processes & Product Use) - CO2",
25118
+ "industrialProcessesProductUse_other_n2o": "Other (Industrial Processes & Product Use) - N2O",
25119
+ "industrialProcessesProductUse_other_co2eq": "Other (Industrial Processes & Product Use) - CO2-eq",
25120
+ "industrialProcessesProductUse_metalIndustry_ch4": "Metal Industry - CH4",
25121
+ "industrialProcessesProductUse_metalIndustry_co2": "Metal Industry - CO2",
25122
+ "industrialProcessesProductUse_metalIndustry_n2o": "Metal Industry - N2O",
25123
+ "industrialProcessesProductUse_metalIndustry_co2eq": "Metal Industry - CO2-eq",
25124
+ "industrialProcessesProductUse_mineralIndustry_ch4": "Mineral Industry - CH4",
25125
+ "industrialProcessesProductUse_mineralIndustry_co2": "Mineral Industry - CO2",
25126
+ "industrialProcessesProductUse_mineralIndustry_n2o": "Mineral Industry - N2O",
25127
+ "industrialProcessesProductUse_mineralIndustry_co2eq": "Mineral Industry - CO2-eq",
25128
+ "industrialProcessesProductUse_chemicalIndustry_ch4": "Chemical Industry - CH4",
25129
+ "industrialProcessesProductUse_chemicalIndustry_co2": "Chemical Industry - CO2",
25130
+ "industrialProcessesProductUse_chemicalIndustry_n2o": "Chemical Industry - N2O",
25131
+ "industrialProcessesProductUse_chemicalIndustry_co2eq": "Chemical Industry - CO2-eq",
25132
+ "industrialProcessesProductUse_electronicsIndustry_ch4": "Electronics Industry - CH4",
25133
+ "industrialProcessesProductUse_electronicsIndustry_co2": "Electronics Industry - CO2",
25134
+ "industrialProcessesProductUse_electronicsIndustry_n2o": "Electronics Industry - N2O",
25135
+ "industrialProcessesProductUse_electronicsIndustry_co2eq": "Electronics Industry - CO2-eq",
25136
+ "industrialProcessesProductUse_otherProductManufactureUse_ch4": "Other Product Manufacture and Use - CH4",
25137
+ "industrialProcessesProductUse_otherProductManufactureUse_co2": "Other Product Manufacture and Use - CO2",
25138
+ "industrialProcessesProductUse_otherProductManufactureUse_n2o": "Other Product Manufacture and Use - N2O",
25139
+ "industrialProcessesProductUse_otherProductManufactureUse_co2eq": "Other Product Manufacture and Use - CO2-eq",
25140
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_ch4": "Non-Energy Products from Fuels and Solvent Use - CH4",
25141
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_co2": "Non-Energy Products from Fuels and Solvent Use - CO2",
25142
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_n2o": "Non-Energy Products from Fuels and Solvent Use - N2O",
25143
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_co2eq": "Non-Energy Products from Fuels and Solvent Use - CO2-eq",
25144
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_ch4": "Product Uses as Substitutes for Ozone Depleting Substances - CH4",
25145
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_co2": "Product Uses as Substitutes for Ozone Depleting Substances - CO2",
25146
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_n2o": "Product Uses as Substitutes for Ozone Depleting Substances - N2O",
25147
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_co2eq": "Product Uses as Substitutes for Ozone Depleting Substances - CO2-eq",
25148
+ "agricultureForestryOtherLandUse_land_ch4": "Land - CH4",
25149
+ "agricultureForestryOtherLandUse_land_co2": "Land - CO2",
25150
+ "agricultureForestryOtherLandUse_land_n2o": "Land - N2O",
25151
+ "agricultureForestryOtherLandUse_land_co2eq": "Land - CO2-eq",
25152
+ "agricultureForestryOtherLandUse_other_ch4": "Other (Agriculture, Forestry, and Other Land Use) - CH4",
25153
+ "agricultureForestryOtherLandUse_other_co2": "Other (Agriculture, Forestry, and Other Land Use) - CO2",
25154
+ "agricultureForestryOtherLandUse_other_n2o": "Other (Agriculture, Forestry, and Other Land Use) - N2O",
25155
+ "agricultureForestryOtherLandUse_other_co2eq": "Other (Agriculture, Forestry, and Other Land Use) - CO2-eq",
25156
+ "agricultureForestryOtherLandUse_livestock_ch4": "Livestock - CH4",
25157
+ "agricultureForestryOtherLandUse_livestock_co2": "Livestock - CO2",
25158
+ "agricultureForestryOtherLandUse_livestock_n2o": "Livestock - N2O",
25159
+ "agricultureForestryOtherLandUse_livestock_co2eq": "Livestock - CO2-eq",
25160
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_ch4": "Aggregate sources and non-CO2 emissions sources on land - CH4",
25161
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_co2": "Aggregate sources and non-CO2 emissions sources on land - CO2",
25162
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_n2o": "Aggregate sources and non-CO2 emissions sources on land - N2O",
25163
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_co2eq": "Aggregate sources and non-CO2 emissions sources on land - CO2-eq",
25164
+ "waste_other_ch4": "Other (Waste) - CH4",
25165
+ "waste_other_co2": "Other (Waste) - CO2",
25166
+ "waste_other_n2o": "Other (Waste) - N2O",
25167
+ "waste_other_co2eq": "Other (Waste) - CO2-eq",
25168
+ "waste_solidWasteDisposal_ch4": "Solid Waste Disposal - CH4",
25169
+ "waste_solidWasteDisposal_co2": "Solid Waste Disposal - CO2",
25170
+ "waste_solidWasteDisposal_n2o": "Solid Waste Disposal - N2O",
25171
+ "waste_solidWasteDisposal_co2eq": "Solid Waste Disposal - CO2-eq",
25172
+ "waste_incinerationOpenBurningWaste_ch4": "Incineration and Open Burning of Waste - CH4",
25173
+ "waste_incinerationOpenBurningWaste_co2": "Incineration and Open Burning of Waste - CO2",
25174
+ "waste_incinerationOpenBurningWaste_n2o": "Incineration and Open Burning of Waste - N2O",
25175
+ "waste_incinerationOpenBurningWaste_co2eq": "Incineration and Open Burning of Waste - CO2-eq",
25176
+ "waste_wastewaterTreatmentDischarge_ch4": "Wastewater Treatment and Discharge - CH4",
25177
+ "waste_wastewaterTreatmentDischarge_co2": "Wastewater Treatment and Discharge - CO2",
25178
+ "waste_wastewaterTreatmentDischarge_n2o": "Wastewater Treatment and Discharge - N2O",
25179
+ "waste_wastewaterTreatmentDischarge_co2eq": "Wastewater Treatment and Discharge - CO2-eq",
25180
+ "waste_biologicalTreatmentSolidWaste_ch4": "Biological Treatment of Solid Waste - CH4",
25181
+ "waste_biologicalTreatmentSolidWaste_co2": "Biological Treatment of Solid Waste - CO2",
25182
+ "waste_biologicalTreatmentSolidWaste_n2o": "Biological Treatment of Solid Waste - N2O",
25183
+ "waste_biologicalTreatmentSolidWaste_co2eq": "Biological Treatment of Solid Waste - CO2-eq",
25184
+ "other_other_ch4": "Other - CH4",
25185
+ "other_other_co2": "Other - CO2",
25186
+ "other_other_n2o": "Other - N2O",
25187
+ "other_other_co2eq": "Other - CO2-eq",
25188
+ "other_indirectN2oEmissions_ch4": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CH4",
25189
+ "other_indirectN2oEmissions_co2": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CO2",
25190
+ "other_indirectN2oEmissions_n2o": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - N2O",
25191
+ "other_indirectN2oEmissions_co2eq": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CO2-eq",
25192
+ "totalCo2WithoutLand_ch4": "Total CO2 equivalent emissions without land use, land-use change and forestry - CH4",
25193
+ "totalCo2WithoutLand_co2": "Total CO2 equivalent emissions without land use, land-use change and forestry - CO2",
25194
+ "totalCo2WithoutLand_n2o": "Total CO2 equivalent emissions without land use, land-use change and forestry - N2O",
25195
+ "totalCo2WithoutLand_co2eq": "Total CO2 equivalent emissions without land use, land-use change and forestry - CO2-eq",
25196
+ "totalCo2WithLand_ch4": "Total CO2 equivalent emissions with land use, land-use change and forestry - CH4",
25197
+ "totalCo2WithLand_co2": "Total CO2 equivalent emissions with land use, land-use change and forestry - CO2",
25198
+ "totalCo2WithLand_n2o": "Total CO2 equivalent emissions with land use, land-use change and forestry - N2O",
25199
+ "totalCo2WithLand_co2eq": "Total CO2 equivalent emissions with land use, land-use change and forestry - CO2-eq",
25200
+ // "state": "Status"
25201
+ };
25202
+ var projectionsCsvFieldMap = {
25203
+ "year": "Year",
25204
+ "energyEmissions_fuelCombustionActivities_transport_bau": "Transport - BAU",
25205
+ "energyEmissions_fuelCombustionActivities_transport_conditionalNdc": "Transport - Conditional NDC",
25206
+ "energyEmissions_fuelCombustionActivities_transport_unconditionalNdc": "Transport - Unconditional NDC",
25207
+ "energyEmissions_fuelCombustionActivities_nonSpecified_bau": "Non-Specified - BAU",
25208
+ "energyEmissions_fuelCombustionActivities_nonSpecified_conditionalNdc": "Non-Specified - Conditional NDC",
25209
+ "energyEmissions_fuelCombustionActivities_nonSpecified_unconditionalNdc": "Non-Specified - Unconditional NDC",
25210
+ "energyEmissions_fuelCombustionActivities_otherSectors_bau": "Other Sectors - BAU",
25211
+ "energyEmissions_fuelCombustionActivities_otherSectors_conditionalNdc": "Other Sectors - Conditional NDC",
25212
+ "energyEmissions_fuelCombustionActivities_otherSectors_unconditionalNdc": "Other Sectors - Unconditional NDC",
25213
+ "energyEmissions_fuelCombustionActivities_energyIndustries_bau": "Energy Industries - BAU",
25214
+ "energyEmissions_fuelCombustionActivities_energyIndustries_conditionalNdc": "Energy Industries - Conditional NDC",
25215
+ "energyEmissions_fuelCombustionActivities_energyIndustries_unconditionalNdc": "Energy Industries - Unconditional NDC",
25216
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_bau": "Manufacturing Industries and Construction - BAU",
25217
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_conditionalNdc": "Manufacturing Industries and Construction - Conditional NDC",
25218
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_unconditionalNdc": "Manufacturing Industries and Construction - Unconditional NDC",
25219
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_bau": "Solid Fuels - BAU",
25220
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_conditionalNdc": "Solid Fuels - Conditional NDC",
25221
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_unconditionalNdc": "Solid Fuels - Unconditional NDC",
25222
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_bau": "Oil and Natural Gas - BAU",
25223
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_conditionalNdc": "Oil and Natural Gas - Conditional NDC",
25224
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_unconditionalNdc": "Oil and Natural Gas - Unconditional NDC",
25225
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_bau": "Other emissions from Energy Production - BAU",
25226
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_conditionalNdc": "Other emissions from Energy Production - Conditional NDC",
25227
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_unconditionalNdc": "Other emissions from Energy Production - Unconditional NDC",
25228
+ "energyEmissions_carbonDioxideTransportStorage_other_bau": "Other (Carbon dioxide Transport and Storage) - BAU",
25229
+ "energyEmissions_carbonDioxideTransportStorage_other_conditionalNdc": "Other (Carbon dioxide Transport and Storage) - Conditional NDC",
25230
+ "energyEmissions_carbonDioxideTransportStorage_other_unconditionalNdc": "Other (Carbon dioxide Transport and Storage) - Unconditional NDC",
25231
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_bau": "Transport of CO2 - BAU",
25232
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_conditionalNdc": "Transport of CO2 - Conditional NDC",
25233
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_unconditionalNdc": "Transport of CO2 - Unconditional NDC",
25234
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_bau": "Injection and Storage - BAU",
25235
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_conditionalNdc": "Injection and Storage - Conditional NDC",
25236
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_unconditionalNdc": "Injection and Storage - Unconditional NDC",
25237
+ "industrialProcessesProductUse_other_bau": "Other (Industrial Processes & Product Use) - BAU",
25238
+ "industrialProcessesProductUse_other_conditionalNdc": "Other (Industrial Processes & Product Use) - Conditional NDC",
25239
+ "industrialProcessesProductUse_other_unconditionalNdc": "Other (Industrial Processes & Product Use) - Unconditional NDC",
25240
+ "industrialProcessesProductUse_metalIndustry_bau": "Metal Industry - BAU",
25241
+ "industrialProcessesProductUse_metalIndustry_conditionalNdc": "Metal Industry - Conditional NDC",
25242
+ "industrialProcessesProductUse_metalIndustry_unconditionalNdc": "Metal Industry - Unconditional NDC",
25243
+ "industrialProcessesProductUse_mineralIndustry_bau": "Mineral Industry - BAU",
25244
+ "industrialProcessesProductUse_mineralIndustry_conditionalNdc": "Mineral Industry - Conditional NDC",
25245
+ "industrialProcessesProductUse_mineralIndustry_unconditionalNdc": "Mineral Industry - Unconditional NDC",
25246
+ "industrialProcessesProductUse_chemicalIndustry_bau": "Chemical Industry - BAU",
25247
+ "industrialProcessesProductUse_chemicalIndustry_conditionalNdc": "Chemical Industry - Conditional NDC",
25248
+ "industrialProcessesProductUse_chemicalIndustry_unconditionalNdc": "Chemical Industry - Unconditional NDC",
25249
+ "industrialProcessesProductUse_electronicsIndustry_bau": "Electronics Industry - BAU",
25250
+ "industrialProcessesProductUse_electronicsIndustry_conditionalNdc": "Electronics Industry - Conditional NDC",
25251
+ "industrialProcessesProductUse_electronicsIndustry_unconditionalNdc": "Electronics Industry - Unconditional NDC",
25252
+ "industrialProcessesProductUse_otherProductManufactureUse_bau": "Other Product Manufacture and Use - BAU",
25253
+ "industrialProcessesProductUse_otherProductManufactureUse_conditionalNdc": "Other Product Manufacture and Use - Conditional NDC",
25254
+ "industrialProcessesProductUse_otherProductManufactureUse_unconditionalNdc": "Other Product Manufacture and Use - Unconditional NDC",
25255
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_bau": "Non-Energy Products from Fuels and Solvent Use - BAU",
25256
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_conditionalNdc": "Non-Energy Products from Fuels and Solvent Use - Conditional NDC",
25257
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_unconditionalNdc": "Non-Energy Products from Fuels and Solvent Use - Unconditional NDC",
25258
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_bau": "Product Uses as Substitutes for Ozone Depleting Substances - BAU",
25259
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_conditionalNdc": "Product Uses as Substitutes for Ozone Depleting Substances - Conditional NDC",
25260
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_unconditionalNdc": "Product Uses as Substitutes for Ozone Depleting Substances - Unconditional NDC",
25261
+ "agricultureForestryOtherLandUse_land_bau": "Land - BAU",
25262
+ "agricultureForestryOtherLandUse_land_conditionalNdc": "Land - Conditional NDC",
25263
+ "agricultureForestryOtherLandUse_land_unconditionalNdc": "Land - Unconditional NDC",
25264
+ "agricultureForestryOtherLandUse_other_bau": "Other (Agriculture, Forestry, and Other Land Use) - BAU",
25265
+ "agricultureForestryOtherLandUse_other_conditionalNdc": "Other (Agriculture, Forestry, and Other Land Use) - Conditional NDC",
25266
+ "agricultureForestryOtherLandUse_other_unconditionalNdc": "Other (Agriculture, Forestry, and Other Land Use) - Unconditional NDC",
25267
+ "agricultureForestryOtherLandUse_livestock_bau": "Livestock - BAU",
25268
+ "agricultureForestryOtherLandUse_livestock_conditionalNdc": "Livestock - Conditional NDC",
25269
+ "agricultureForestryOtherLandUse_livestock_unconditionalNdc": "Livestock - Unconditional NDC",
25270
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_bau": "Aggregate sources and non-CO2 emissions sources on land - BAU",
25271
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_conditionalNdc": "Aggregate sources and non-CO2 emissions sources on land - Conditional NDC",
25272
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_unconditionalNdc": "Aggregate sources and non-CO2 emissions sources on land - Unconditional NDC",
25273
+ "waste_other_bau": "Other (Waste) - BAU",
25274
+ "waste_other_conditionalNdc": "Other (Waste) - Conditional NDC",
25275
+ "waste_other_unconditionalNdc": "Other (Waste) - Unconditional NDC",
25276
+ "waste_solidWasteDisposal_bau": "Solid Waste Disposal - BAU",
25277
+ "waste_solidWasteDisposal_conditionalNdc": "Solid Waste Disposal - Conditional NDC",
25278
+ "waste_solidWasteDisposal_unconditionalNdc": "Solid Waste Disposal - Unconditional NDC",
25279
+ "waste_incinerationOpenBurningWaste_bau": "Incineration and Open Burning of Waste - BAU",
25280
+ "waste_incinerationOpenBurningWaste_conditionalNdc": "Incineration and Open Burning of Waste - Conditional NDC",
25281
+ "waste_incinerationOpenBurningWaste_unconditionalNdc": "Incineration and Open Burning of Waste - Unconditional NDC",
25282
+ "waste_wastewaterTreatmentDischarge_bau": "Wastewater Treatment and Discharge - BAU",
25283
+ "waste_wastewaterTreatmentDischarge_conditionalNdc": "Wastewater Treatment and Discharge - Conditional NDC",
25284
+ "waste_wastewaterTreatmentDischarge_unconditionalNdc": "Wastewater Treatment and Discharge - Unconditional NDC",
25285
+ "waste_biologicalTreatmentSolidWaste_bau": "Biological Treatment of Solid Waste - BAU",
25286
+ "waste_biologicalTreatmentSolidWaste_conditionalNdc": "Biological Treatment of Solid Waste - Conditional NDC",
25287
+ "waste_biologicalTreatmentSolidWaste_unconditionalNdc": "Biological Treatment of Solid Waste - Unconditional NDC",
25288
+ "other_other_bau": "Other - BAU",
25289
+ "other_other_conditionalNdc": "Other - Conditional NDC",
25290
+ "other_other_unconditionalNdc": "Other - Unconditional NDC",
25291
+ "other_indirectN2oEmissions_bau": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - BAU",
25292
+ "other_indirectN2oEmissions_conditionalNdc": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - Conditional NDC",
25293
+ "other_indirectN2oEmissions_unconditionalNdc": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - Unconditional NDC",
25294
+ "totalCo2WithoutLand_bau": "Total CO2 equivalent emissions without land use, land-use change and forestry - BAU",
25295
+ "totalCo2WithoutLand_conditionalNdc": "Total CO2 equivalent emissions without land use, land-use change and forestry - Conditional NDC",
25296
+ "totalCo2WithoutLand_unconditionalNdc": "Total CO2 equivalent emissions without land use, land-use change and forestry - Unconditional NDC",
25297
+ "totalCo2WithLand_bau": "Total CO2 equivalent emissions with land use, land-use change and forestry - BAU",
25298
+ "totalCo2WithLand_conditionalNdc": "Total CO2 equivalent emissions with land use, land-use change and forestry - Conditional NDC",
25299
+ "totalCo2WithLand_unconditionalNdc": "Total CO2 equivalent emissions with land use, land-use change and forestry - Unconditional NDC",
25300
+ // "state": "Status"
25301
+ };
25070
25302
 
25071
25303
  Input.TextArea;
25072
25304
  var DiscardChangesConfirmationModel = function (props) {
@@ -26308,6 +26540,67 @@ var GHGEmissionsComponent = function (props) {
26308
26540
  React.createElement(Col, { xl: 6 },
26309
26541
  React.createElement(InputNumber, { value: co2eq, disabled: true }))))));
26310
26542
  };
26543
+ var objectToCSV = function (dataToDownload) {
26544
+ var flattenObject = function (obj, prefix) {
26545
+ if (prefix === void 0) { prefix = ''; }
26546
+ return Object.keys(obj).reduce(function (acc, key) {
26547
+ var pre = prefix.length ? "".concat(prefix, "_") : '';
26548
+ if (typeof obj[key] === 'object' && obj[key] !== null) {
26549
+ Object.assign(acc, flattenObject(obj[key], pre + key));
26550
+ }
26551
+ else {
26552
+ acc[pre + key] = obj[key];
26553
+ }
26554
+ return acc;
26555
+ }, {});
26556
+ };
26557
+ var headers = [];
26558
+ var contentKeys = [];
26559
+ var flattenedObj = flattenObject(dataToDownload);
26560
+ var objKeys = Object.keys(flattenedObj);
26561
+ objKeys.map(function (key) {
26562
+ if (emissionCsvFieldMap[key]) {
26563
+ headers.push(emissionCsvFieldMap[key]);
26564
+ contentKeys.push(key);
26565
+ }
26566
+ });
26567
+ var flattenedData = [dataToDownload].map(function (item) {
26568
+ var flattened = flattenObject(item);
26569
+ return contentKeys.map(function (header) { return flattened[header]; });
26570
+ });
26571
+ var csvContent = headers.map(function (header) { return "\"".concat(header, "\""); }).join(',') +
26572
+ '\n' +
26573
+ flattenedData.map(function (row) { return row.map(function (value) { return (value === undefined || value === null) ? "" : value; }).join(','); }).join('\n');
26574
+ return csvContent;
26575
+ };
26576
+ var downloadCSV = function (dataToDownload) {
26577
+ var csvContent = objectToCSV(dataToDownload);
26578
+ var encodedUri = encodeURI("data:text/csv;charset=utf-8,".concat(csvContent));
26579
+ var link = document.createElement('a');
26580
+ link.setAttribute('href', encodedUri);
26581
+ link.setAttribute('download', "GHG-Reporting Emission_".concat(dataToDownload.year, "_V").concat(dataToDownload.version, ".csv"));
26582
+ document.body.appendChild(link);
26583
+ link.click();
26584
+ };
26585
+ var isRowDataEmpty = function (emissionDataObj) {
26586
+ if (emissionDataObj == undefined || emissionDataObj == null) {
26587
+ return true;
26588
+ }
26589
+ var co2 = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.co2;
26590
+ var ch4 = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.ch4;
26591
+ var n2o = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.n2o;
26592
+ var co2eq = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.co2eq;
26593
+ if (!co2 && !ch4 && !n2o && !co2eq) {
26594
+ return true;
26595
+ }
26596
+ return false;
26597
+ };
26598
+ var isSectionDataEmpty = function (sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq) {
26599
+ if (!sectionTotalCo2 && !sectionTotalCh4 && !sectionTotalN2o && !sectionTotalCo2eq) {
26600
+ return true;
26601
+ }
26602
+ return false;
26603
+ };
26311
26604
  return (React.createElement("div", null,
26312
26605
  React.createElement("div", { className: "content-container emission-tab-container" },
26313
26606
  React.createElement("div", { className: "emission-title-bar" },
@@ -26488,7 +26781,8 @@ var GHGEmissionsComponent = function (props) {
26488
26781
  React.createElement(Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26489
26782
  React.createElement(Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
26490
26783
  data.map(function (tabData) {
26491
- return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
26784
+ var _a, _b, _c, _d, _e, _f, _g, _h;
26785
+ return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { className: 'view-data-panel', key: tabData.id.toString(), tab: React.createElement("span", null,
26492
26786
  tabData.year,
26493
26787
  tabData.state === 'FINALIZED' && React.createElement(LockFilled, { style: { marginLeft: 5 } })) },
26494
26788
  React.createElement("div", null,
@@ -26500,39 +26794,10 @@ var GHGEmissionsComponent = function (props) {
26500
26794
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
26501
26795
  React.createElement(Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
26502
26796
  React.createElement(Row, null,
26503
- React.createElement(Col, { xl: 5, md: 5, className: "add-new-upload-file-inner-col" },
26504
- React.createElement(Form.Item, null,
26505
- React.createElement(Upload, { accept: ".xlsx", customRequest: function (_a) {
26506
- _a.onSuccess; _a.onError; _a.file;
26507
- var reader = new FileReader();
26508
- reader.onload = function (e) {
26509
- if (e && e.target) {
26510
- // Check if e and e.target are defined
26511
- var xldata = e.target.result;
26512
- if (xldata) {
26513
- try {
26514
- var workbook = XLSX.read(xldata, { type: 'array' });
26515
- var sheetName = workbook.SheetNames[0];
26516
- var sheet = workbook.Sheets[sheetName];
26517
- var excelData = XLSX.utils.sheet_to_json(sheet);
26518
- // Use excelData as needed, e.g., display it in a table.
26519
- console.log(excelData);
26520
- // You can perform any further processing with the data here.
26521
- // For example, you can call a function to handle the uploaded data.
26522
- // handleFileUpload(excelData);
26523
- // onSuccess('ok', file);
26524
- }
26525
- catch (error) {
26526
- // onError(error, 'error', file);
26527
- }
26528
- }
26529
- }
26530
- };
26531
- // reader.readAsArrayBuffer(file);
26532
- } },
26533
- React.createElement(Button, { icon: React.createElement(UploadOutlined, null) }, t("ghgInventory:upload"))))),
26534
- React.createElement(Col, { xl: 16, md: 16, className: "add-new-upload-file-name-input" },
26535
- React.createElement(Input, { value: uploadedFileName, readOnly: true }))))),
26797
+ React.createElement(Col, { xl: 15, md: 15, className: "view-download-file-name-input" },
26798
+ React.createElement(Input, { value: "GHG-Reporting Emission_".concat(tabData.year, "_V").concat(tabData.version, ".csv"), disabled: true })),
26799
+ React.createElement(Col, { xl: 5, md: 5, className: "view-download-file-inner-col" },
26800
+ React.createElement(Button, { icon: React.createElement(DownloadOutlined, null), onClick: function () { downloadCSV(tabData); } }, t("ghgInventory:download")))))),
26536
26801
  React.createElement(Row, { gutter: 16 },
26537
26802
  React.createElement(Col, { span: 9, offset: 12 },
26538
26803
  React.createElement(Row, { gutter: 16, className: "table-heading-row" },
@@ -26568,38 +26833,82 @@ var GHGEmissionsComponent = function (props) {
26568
26833
  return isActive ? React.createElement(MinusCircleOutlined, null) : React.createElement(PlusCircleOutlined, null);
26569
26834
  } }, Object.entries(formFields).map(function (_a) {
26570
26835
  var panelHeading = _a[0], panelContent = _a[1];
26571
- return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
26572
- ? panelContent.map(function (item, index) {
26573
- for (var key in tabData) {
26574
- if (key === panelHeading) {
26575
- var emissionsObject = tabData[key];
26576
- var emissionsData = emissionsObject[item];
26577
- return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.ch4, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.n2o, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2eq, item, index);
26578
- }
26579
- }
26580
- })
26581
- : Object.entries(panelContent).map(function (_a) {
26582
- var subPanelHeading = _a[0], subPanelContent = _a[1];
26583
- return (React.createElement("div", { className: "sub-panel" },
26584
- React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
26585
- subPanelContent.map(function (item, index) {
26586
- for (var key in tabData.energyEmissions[subPanelHeading]) {
26587
- if (key === item) {
26588
- var emissionsObject = tabData.energyEmissions[subPanelHeading];
26589
- var emissionsData = emissionsObject[item];
26836
+ var emissionsObject = tabData[panelHeading];
26837
+ var sectionTotalCo2 = calculateSumEmissionView(emissionsObject, 'co2');
26838
+ var sectionTotalCh4 = calculateSumEmissionView(emissionsObject, 'ch4');
26839
+ var sectionTotalN2o = calculateSumEmissionView(emissionsObject, 'n2o');
26840
+ var sectionTotalCo2eq = calculateSumEmissionView(emissionsObject, 'co2eq');
26841
+ if (!isSectionDataEmpty(sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq)) {
26842
+ return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
26843
+ ? panelContent.map(function (item, index) {
26844
+ for (var key in tabData) {
26845
+ if (key === panelHeading) {
26846
+ var emissionsObject_1 = tabData[key];
26847
+ var emissionsData = emissionsObject_1[item];
26848
+ if (!isRowDataEmpty(emissionsData)) {
26590
26849
  return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.ch4, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.n2o, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2eq, item, index);
26591
26850
  }
26592
26851
  }
26593
- })));
26594
- })));
26595
- })))));
26852
+ }
26853
+ })
26854
+ : Object.entries(panelContent).map(function (_a) {
26855
+ var subPanelHeading = _a[0], subPanelContent = _a[1];
26856
+ var emissionsObject = tabData.energyEmissions[subPanelHeading];
26857
+ var sectionTotalCo2 = calculateSumEmissionView(emissionsObject, 'co2');
26858
+ var sectionTotalCh4 = calculateSumEmissionView(emissionsObject, 'ch4');
26859
+ var sectionTotalN2o = calculateSumEmissionView(emissionsObject, 'n2o');
26860
+ var sectionTotalCo2eq = calculateSumEmissionView(emissionsObject, 'co2eq');
26861
+ if (!isSectionDataEmpty(sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq)) {
26862
+ return (React.createElement("div", { className: "sub-panel" },
26863
+ React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
26864
+ subPanelContent.map(function (item, index) {
26865
+ for (var key in tabData.energyEmissions[subPanelHeading]) {
26866
+ if (key === item) {
26867
+ var emissionsObject_2 = tabData.energyEmissions[subPanelHeading];
26868
+ var emissionsData = emissionsObject_2[item];
26869
+ if (!isRowDataEmpty(emissionsData)) {
26870
+ return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.ch4, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.n2o, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.co2eq, item, index);
26871
+ }
26872
+ }
26873
+ }
26874
+ })));
26875
+ }
26876
+ })));
26877
+ }
26878
+ })),
26879
+ (!isRowDataEmpty(tabData.totalCo2WithoutLand)) && (React.createElement(Row, { gutter: 16, key: 'totalCo2WithoutLand', className: "total-co2-without-land-row" },
26880
+ React.createElement(Col, { xl: 12, md: 12, className: "total-co2-without-land-title" },
26881
+ React.createElement("span", null, t("ghgInventory:totalCo2WithoutLand"))),
26882
+ React.createElement(Col, { xl: 9, md: 9 },
26883
+ React.createElement(Row, { gutter: 16, className: "panel-content-input-box-row" },
26884
+ React.createElement(Col, { xl: 6 },
26885
+ React.createElement(InputNumber, { value: (_a = tabData.totalCo2WithoutLand) === null || _a === void 0 ? void 0 : _a.co2, disabled: true })),
26886
+ React.createElement(Col, { xl: 6 },
26887
+ React.createElement(InputNumber, { value: (_b = tabData.totalCo2WithoutLand) === null || _b === void 0 ? void 0 : _b.ch4, disabled: true })),
26888
+ React.createElement(Col, { xl: 6 },
26889
+ React.createElement(InputNumber, { value: (_c = tabData.totalCo2WithoutLand) === null || _c === void 0 ? void 0 : _c.n2o, disabled: true })),
26890
+ React.createElement(Col, { xl: 6 },
26891
+ React.createElement(InputNumber, { value: (_d = tabData.totalCo2WithoutLand) === null || _d === void 0 ? void 0 : _d.co2eq, disabled: true })))))),
26892
+ (!isRowDataEmpty(tabData.totalCo2WithLand)) && (React.createElement(Row, { gutter: 16, key: 'totalCo2WithLand', className: "total-co2-with-land-row" },
26893
+ React.createElement(Col, { xl: 12, md: 12, className: "total-co2-with-land-title" },
26894
+ React.createElement("span", null, t("ghgInventory:totalCo2WithLand"))),
26895
+ React.createElement(Col, { xl: 9, md: 9 },
26896
+ React.createElement(Row, { gutter: 16, className: "panel-content-input-box-row" },
26897
+ React.createElement(Col, { xl: 6 },
26898
+ React.createElement(InputNumber, { value: (_e = tabData.totalCo2WithLand) === null || _e === void 0 ? void 0 : _e.co2, disabled: true })),
26899
+ React.createElement(Col, { xl: 6 },
26900
+ React.createElement(InputNumber, { value: (_f = tabData.totalCo2WithLand) === null || _f === void 0 ? void 0 : _f.ch4, disabled: true })),
26901
+ React.createElement(Col, { xl: 6 },
26902
+ React.createElement(InputNumber, { value: (_g = tabData.totalCo2WithLand) === null || _g === void 0 ? void 0 : _g.n2o, disabled: true })),
26903
+ React.createElement(Col, { xl: 6 },
26904
+ React.createElement(InputNumber, { value: (_h = tabData.totalCo2WithLand) === null || _h === void 0 ? void 0 : _h.co2eq, disabled: true })))))))));
26596
26905
  })))),
26597
26906
  React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
26598
26907
  React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
26599
26908
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
26600
26909
  };
26601
26910
 
26602
- var css_248z = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.projection-tab-container .add-projection {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .projection-tab-container .add-projection .add-new-year-picker-col {\n padding-left: 5%; }\n .projection-tab-container .add-projection .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .projection-tab-container .add-projection .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .projection-tab-container .add-projection .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .projection-tab-container .add-projection .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .projection-tab-container .add-projection .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .projection-tab-container .add-projection .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #28282899; }\n .projection-tab-container .add-projection .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .projection-tab-container .add-projection .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .projection-tab-container .add-projection .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon {\n margin-top: 5px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .projection-tab-container .add-projection .ant-collapse {\n margin-left: 10px; }\n .projection-tab-container .add-projection .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .projection-tab-container .add-projection .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-content-input-box-row {\n margin-top: 14px; }\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 35%; }\n .projection-tab-container .add-projection .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .projection-tab-container .add-projection .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .projection-tab-container .add-projection .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .projection-tab-container .add-projection .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .submit-btn {\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n margin-left: 30%; } }\n";
26911
+ var css_248z = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.projection-tab-container .add-projection {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .projection-tab-container .add-projection .add-new-year-picker-col {\n padding-left: 5%; }\n .projection-tab-container .add-projection .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .projection-tab-container .add-projection .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .projection-tab-container .add-projection .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .projection-tab-container .add-projection .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .projection-tab-container .add-projection .view-download-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .projection-tab-container .add-projection .view-download-file-inner-col button {\n height: 50px;\n font-size: 12px;\n font-weight: 400;\n width: 135px;\n margin-left: 5px;\n color: #8C8C8C;\n border-radius: 4px; }\n .projection-tab-container .add-projection .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .projection-tab-container .add-projection .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #28282899; }\n .projection-tab-container .add-projection .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .projection-tab-container .add-projection .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .projection-tab-container .add-projection .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon {\n margin-top: 5px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .projection-tab-container .add-projection .ant-collapse {\n margin-left: 10px; }\n .projection-tab-container .add-projection .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .projection-tab-container .add-projection .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-content-input-box-row {\n margin-top: 14px; }\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 35%; }\n .projection-tab-container .add-projection .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .projection-tab-container .add-projection .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .projection-tab-container .add-projection .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .view-data-panel .panel-content-input-box-row {\n padding-bottom: 24px; }\n .projection-tab-container .add-projection .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .projection-tab-container .add-projection .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .submit-btn {\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n margin-left: 30%; } }\n";
26603
26912
  styleInject(css_248z);
26604
26913
 
26605
26914
  var ProjectionTypes = {
@@ -27649,6 +27958,66 @@ var GHGProjectionsComponent = function (props) {
27649
27958
  React.createElement(Col, { xl: 7 },
27650
27959
  React.createElement(InputNumber, { value: unconditionalNdc, disabled: true }))))));
27651
27960
  };
27961
+ var objectToCSV = function (dataToDownload) {
27962
+ var flattenObject = function (obj, prefix) {
27963
+ if (prefix === void 0) { prefix = ''; }
27964
+ return Object.keys(obj).reduce(function (acc, key) {
27965
+ var pre = prefix.length ? "".concat(prefix, "_") : '';
27966
+ if (typeof obj[key] === 'object' && obj[key] !== null) {
27967
+ Object.assign(acc, flattenObject(obj[key], pre + key));
27968
+ }
27969
+ else {
27970
+ acc[pre + key] = obj[key];
27971
+ }
27972
+ return acc;
27973
+ }, {});
27974
+ };
27975
+ var headers = [];
27976
+ var contentKeys = [];
27977
+ var flattenedObj = flattenObject(dataToDownload);
27978
+ var objKeys = Object.keys(flattenedObj);
27979
+ objKeys.map(function (key) {
27980
+ if (projectionsCsvFieldMap[key]) {
27981
+ headers.push(projectionsCsvFieldMap[key]);
27982
+ contentKeys.push(key);
27983
+ }
27984
+ });
27985
+ var flattenedData = [dataToDownload].map(function (item) {
27986
+ var flattened = flattenObject(item);
27987
+ return contentKeys.map(function (header) { return flattened[header]; });
27988
+ });
27989
+ var csvContent = headers.map(function (header) { return "\"".concat(header, "\""); }).join(',') +
27990
+ '\n' +
27991
+ flattenedData.map(function (row) { return row.map(function (value) { return (value === undefined || value === null) ? "" : value; }).join(','); }).join('\n');
27992
+ return csvContent;
27993
+ };
27994
+ var downloadCSV = function (dataToDownload) {
27995
+ var csvContent = objectToCSV(dataToDownload);
27996
+ var encodedUri = encodeURI("data:text/csv;charset=utf-8,".concat(csvContent));
27997
+ var link = document.createElement('a');
27998
+ link.setAttribute('href', encodedUri);
27999
+ link.setAttribute('download', "GHG-Reporting Projections_".concat(dataToDownload.year, "_V").concat(dataToDownload.version, ".csv"));
28000
+ document.body.appendChild(link);
28001
+ link.click();
28002
+ };
28003
+ var isRowDataEmpty = function (projectionDataObj) {
28004
+ if (projectionDataObj == undefined || projectionDataObj == null) {
28005
+ return true;
28006
+ }
28007
+ var bau = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.bau;
28008
+ var conditionalNdc = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.conditionalNdc;
28009
+ var unconditionalNdc = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.unconditionalNdc;
28010
+ if (!bau && !conditionalNdc && !unconditionalNdc) {
28011
+ return true;
28012
+ }
28013
+ return false;
28014
+ };
28015
+ var isSectionDataEmpty = function (sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc) {
28016
+ if (!sectionTotalBau && !sectionTotalConditionalNdc && !sectionTotalUnconditionalNdc) {
28017
+ return true;
28018
+ }
28019
+ return false;
28020
+ };
27652
28021
  return (React.createElement("div", null,
27653
28022
  React.createElement("div", { className: "content-container projection-tab-container" },
27654
28023
  React.createElement("div", { className: "projection-title-bar" },
@@ -27811,7 +28180,8 @@ var GHGProjectionsComponent = function (props) {
27811
28180
  React.createElement(Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
27812
28181
  React.createElement(Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
27813
28182
  data.map(function (tabData) {
27814
- return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
28183
+ var _a, _b, _c, _d, _e, _f;
28184
+ return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { className: 'view-data-panel', key: tabData.id.toString(), tab: React.createElement("span", null,
27815
28185
  tabData.year,
27816
28186
  tabData.state === 'FINALIZED' && React.createElement(LockFilled, { style: { marginLeft: 5 } })) },
27817
28187
  React.createElement("div", null,
@@ -27827,39 +28197,10 @@ var GHGProjectionsComponent = function (props) {
27827
28197
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
27828
28198
  React.createElement(Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
27829
28199
  React.createElement(Row, null,
27830
- React.createElement(Col, { xl: 5, md: 5, className: "add-new-upload-file-inner-col" },
27831
- React.createElement(Form.Item, null,
27832
- React.createElement(Upload, { accept: ".xlsx", customRequest: function (_a) {
27833
- _a.onSuccess; _a.onError; _a.file;
27834
- var reader = new FileReader();
27835
- reader.onload = function (e) {
27836
- if (e && e.target) {
27837
- // Check if e and e.target are defined
27838
- var xldata = e.target.result;
27839
- if (xldata) {
27840
- try {
27841
- var workbook = XLSX.read(xldata, { type: 'array' });
27842
- var sheetName = workbook.SheetNames[0];
27843
- var sheet = workbook.Sheets[sheetName];
27844
- var excelData = XLSX.utils.sheet_to_json(sheet);
27845
- // Use excelData as needed, e.g., display it in a table.
27846
- console.log(excelData);
27847
- // You can perform any further processing with the data here.
27848
- // For example, you can call a function to handle the uploaded data.
27849
- // handleFileUpload(excelData);
27850
- // onSuccess('ok', file);
27851
- }
27852
- catch (error) {
27853
- // onError(error, 'error', file);
27854
- }
27855
- }
27856
- }
27857
- };
27858
- // reader.readAsArrayBuffer(file);
27859
- } },
27860
- React.createElement(Button, { icon: React.createElement(UploadOutlined, null) }, t("ghgInventory:upload"))))),
27861
- React.createElement(Col, { xl: 16, md: 16, className: "add-new-upload-file-name-input" },
27862
- React.createElement(Input, { value: uploadedFileName, readOnly: true }))))),
28200
+ React.createElement(Col, { xl: 15, md: 15, className: "view-download-file-name-input" },
28201
+ React.createElement(Input, { value: "GHG-Reporting Emission_".concat(tabData.year, "_V").concat(tabData.version, ".csv"), disabled: true })),
28202
+ React.createElement(Col, { xl: 5, md: 5, className: "view-download-file-inner-col" },
28203
+ React.createElement(Button, { icon: React.createElement(DownloadOutlined, null), onClick: function () { downloadCSV(tabData); } }, t("ghgInventory:download")))))),
27863
28204
  React.createElement(Row, { gutter: 16 },
27864
28205
  React.createElement(Col, { span: 9, offset: 12 },
27865
28206
  React.createElement(Row, { gutter: 16, className: "table-heading-row" },
@@ -27882,31 +28223,69 @@ var GHGProjectionsComponent = function (props) {
27882
28223
  return isActive ? React.createElement(MinusCircleOutlined, null) : React.createElement(PlusCircleOutlined, null);
27883
28224
  } }, Object.entries(formFields).map(function (_a) {
27884
28225
  var panelHeading = _a[0], panelContent = _a[1];
27885
- return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
27886
- ? panelContent.map(function (item, index) {
27887
- for (var key in tabData) {
27888
- if (key === panelHeading) {
27889
- var emissionsObject = tabData[key];
27890
- var emissionsData = emissionsObject[item];
27891
- return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.bau, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.conditionalNdc, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.unconditionalNdc, item, index);
27892
- }
27893
- }
27894
- })
27895
- : Object.entries(panelContent).map(function (_a) {
27896
- var subPanelHeading = _a[0], subPanelContent = _a[1];
27897
- return (React.createElement("div", { className: "sub-panel" },
27898
- React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
27899
- subPanelContent.map(function (item, index) {
27900
- for (var key in tabData.energyEmissions[subPanelHeading]) {
27901
- if (key === item) {
27902
- var emissionsObject = tabData.energyEmissions[subPanelHeading];
27903
- var emissionsData = emissionsObject[item];
28226
+ var projectionsObject = tabData[panelHeading];
28227
+ var sectionTotalBau = calculateSumEmissionView(projectionsObject, 'bau');
28228
+ var sectionTotalConditionalNdc = calculateSumEmissionView(projectionsObject, 'conditionalNdc');
28229
+ var sectionTotalUnconditionalNdc = calculateSumEmissionView(projectionsObject, 'unconditionalNdc');
28230
+ if (!isSectionDataEmpty(sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc)) {
28231
+ return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
28232
+ ? panelContent.map(function (item, index) {
28233
+ for (var key in tabData) {
28234
+ if (key === panelHeading) {
28235
+ var emissionsObject = tabData[key];
28236
+ var emissionsData = emissionsObject[item];
28237
+ if (!isRowDataEmpty(emissionsData)) {
27904
28238
  return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.bau, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.conditionalNdc, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.unconditionalNdc, item, index);
27905
28239
  }
27906
28240
  }
27907
- })));
27908
- })));
27909
- })))));
28241
+ }
28242
+ })
28243
+ : Object.entries(panelContent).map(function (_a) {
28244
+ var subPanelHeading = _a[0], subPanelContent = _a[1];
28245
+ var projectionsObject = tabData.energyEmissions[subPanelHeading];
28246
+ var sectionTotalBau = calculateSumEmissionView(projectionsObject, 'bau');
28247
+ var sectionTotalConditionalNdc = calculateSumEmissionView(projectionsObject, 'conditionalNdc');
28248
+ var sectionTotalUnconditionalNdc = calculateSumEmissionView(projectionsObject, 'unconditionalNdc');
28249
+ if (!isSectionDataEmpty(sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc)) {
28250
+ return (React.createElement("div", { className: "sub-panel" },
28251
+ React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
28252
+ subPanelContent.map(function (item, index) {
28253
+ for (var key in tabData.energyEmissions[subPanelHeading]) {
28254
+ if (key === item) {
28255
+ var emissionsObject = tabData.energyEmissions[subPanelHeading];
28256
+ var emissionsData = emissionsObject[item];
28257
+ if (!isRowDataEmpty(emissionsData)) {
28258
+ return renderPanelContentView(emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.bau, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.conditionalNdc, emissionsData === null || emissionsData === void 0 ? void 0 : emissionsData.unconditionalNdc, item, index);
28259
+ }
28260
+ }
28261
+ }
28262
+ })));
28263
+ }
28264
+ })));
28265
+ }
28266
+ })),
28267
+ (!isRowDataEmpty(tabData.totalCo2WithoutLand)) && (React.createElement(Row, { gutter: 16, key: 'totalCo2WithoutLand', className: "total-co2-without-land-row" },
28268
+ React.createElement(Col, { xl: 12, md: 12, className: "total-co2-without-land-title" },
28269
+ React.createElement("span", null, t("ghgInventory:totalCo2WithoutLand"))),
28270
+ React.createElement(Col, { xl: 9, md: 9 },
28271
+ React.createElement(Row, { gutter: 16, className: "panel-content-input-box-row" },
28272
+ React.createElement(Col, { xl: 7 },
28273
+ React.createElement(InputNumber, { value: (_a = tabData.totalCo2WithoutLand) === null || _a === void 0 ? void 0 : _a.bau, disabled: true })),
28274
+ React.createElement(Col, { xl: 7 },
28275
+ React.createElement(InputNumber, { value: (_b = tabData.totalCo2WithoutLand) === null || _b === void 0 ? void 0 : _b.conditionalNdc, disabled: true })),
28276
+ React.createElement(Col, { xl: 7 },
28277
+ React.createElement(InputNumber, { value: (_c = tabData.totalCo2WithoutLand) === null || _c === void 0 ? void 0 : _c.unconditionalNdc, disabled: true })))))),
28278
+ (!isRowDataEmpty(tabData.totalCo2WithLand)) && (React.createElement(Row, { gutter: 16, key: 'totalCo2WithLand', className: "total-co2-with-land-row" },
28279
+ React.createElement(Col, { xl: 12, md: 12, className: "total-co2-with-land-title" },
28280
+ React.createElement("span", null, t("ghgInventory:totalCo2WithLand"))),
28281
+ React.createElement(Col, { xl: 9, md: 9 },
28282
+ React.createElement(Row, { gutter: 16, className: "panel-content-input-box-row" },
28283
+ React.createElement(Col, { xl: 7 },
28284
+ React.createElement(InputNumber, { value: (_d = tabData.totalCo2WithLand) === null || _d === void 0 ? void 0 : _d.bau, disabled: true })),
28285
+ React.createElement(Col, { xl: 7 },
28286
+ React.createElement(InputNumber, { value: (_e = tabData.totalCo2WithLand) === null || _e === void 0 ? void 0 : _e.conditionalNdc, disabled: true })),
28287
+ React.createElement(Col, { xl: 7 },
28288
+ React.createElement(InputNumber, { value: (_f = tabData.totalCo2WithLand) === null || _f === void 0 ? void 0 : _f.unconditionalNdc, disabled: true })))))))));
27910
28289
  })))),
27911
28290
  React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
27912
28291
  React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),