@undp/carbon-library 1.0.135-ghg-inventory.1 → 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/cjs/index.js CHANGED
@@ -5286,7 +5286,7 @@ var CompanyRoleIcon = function (props) {
5286
5286
  role === 'ProgrammeDeveloper' ? React.createElement("div", null, 'Developer') : React.createElement("div", null, role)));
5287
5287
  };
5288
5288
 
5289
- var TextArea$1 = antd.Input.TextArea;
5289
+ var TextArea$2 = antd.Input.TextArea;
5290
5290
  var UserActionConfirmationModel = function (props) {
5291
5291
  var t = props.t, actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading;
5292
5292
  var _a = React.useState(""), comment = _a[0], setComment = _a[1];
@@ -5301,7 +5301,7 @@ var UserActionConfirmationModel = function (props) {
5301
5301
  onActionConfirmed(comment);
5302
5302
  } },
5303
5303
  React.createElement(antd.Form.Item, { className: "mg-bottom-0", label: t("userProfile:remarks"), name: "remarks", required: actionInfo.type === "danger" },
5304
- React.createElement(TextArea$1, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
5304
+ React.createElement(TextArea$2, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
5305
5305
  errorMsg ? (React.createElement(antd.Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
5306
5306
  React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
5307
5307
  React.createElement(antd.Button, { htmlType: "button", onClick: function () {
@@ -24207,7 +24207,7 @@ var ProgrammeTransferForm = function (props) {
24207
24207
  React.createElement(antd.Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading }, actionBtnText)))));
24208
24208
  };
24209
24209
 
24210
- var TextArea = antd.Input.TextArea;
24210
+ var TextArea$1 = antd.Input.TextArea;
24211
24211
  var RejectDocumentationConfirmationModel = function (props) {
24212
24212
  var actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading, translator = props.translator;
24213
24213
  var t = translator.t;
@@ -24228,7 +24228,7 @@ var RejectDocumentationConfirmationModel = function (props) {
24228
24228
  message: "".concat(t("programme:remarks")) + " " + "".concat(t("common:isRequired")),
24229
24229
  },
24230
24230
  ] },
24231
- React.createElement(TextArea, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
24231
+ React.createElement(TextArea$1, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
24232
24232
  errorMsg ? (React.createElement(antd.Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
24233
24233
  React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
24234
24234
  React.createElement(antd.Button, { htmlType: "button", onClick: function () {
@@ -25017,7 +25017,7 @@ var TimelineBody = function (props) {
25017
25017
  React.createElement("div", { className: "remark-body" }, remark)))));
25018
25018
  };
25019
25019
 
25020
- 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: 25%; }\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 .mg-left-1 {\n margin-left: 1rem; }\n";
25020
+ 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";
25021
25021
  styleInject(css_248z$1);
25022
25022
 
25023
25023
  var EmissionTypes = { co2: 'CO2', ch4: 'CH4', n2o: 'N2O', co2eq: 'CO2-eq' };
@@ -25088,6 +25088,238 @@ var formFields = {
25088
25088
  ],
25089
25089
  other: ['indirectN2oEmissions', 'other'],
25090
25090
  };
25091
+ var emissionCsvFieldMap = {
25092
+ "year": "Year",
25093
+ "energyEmissions_fuelCombustionActivities_transport_ch4": "Transport - CH4",
25094
+ "energyEmissions_fuelCombustionActivities_transport_co2": "Transport - CO2",
25095
+ "energyEmissions_fuelCombustionActivities_transport_n2o": "Transport - N2O",
25096
+ "energyEmissions_fuelCombustionActivities_transport_co2eq": "Transport - CO2-eq",
25097
+ "energyEmissions_fuelCombustionActivities_nonSpecified_ch4": "Non-Specified - CH4",
25098
+ "energyEmissions_fuelCombustionActivities_nonSpecified_co2": "Non-Specified - CO2",
25099
+ "energyEmissions_fuelCombustionActivities_nonSpecified_n2o": "Non-Specified - N2O",
25100
+ "energyEmissions_fuelCombustionActivities_nonSpecified_co2eq": "Non-Specified - CO2-eq",
25101
+ "energyEmissions_fuelCombustionActivities_otherSectors_ch4": "Other Sectors - CH4",
25102
+ "energyEmissions_fuelCombustionActivities_otherSectors_co2": "Other Sectors - CO2",
25103
+ "energyEmissions_fuelCombustionActivities_otherSectors_n2o": "Other Sectors - N2O",
25104
+ "energyEmissions_fuelCombustionActivities_otherSectors_co2eq": "Other Sectors - CO2-eq",
25105
+ "energyEmissions_fuelCombustionActivities_energyIndustries_ch4": "Energy Industries - CH4",
25106
+ "energyEmissions_fuelCombustionActivities_energyIndustries_co2": "Energy Industries - CO2",
25107
+ "energyEmissions_fuelCombustionActivities_energyIndustries_n2o": "Energy Industries - N2O",
25108
+ "energyEmissions_fuelCombustionActivities_energyIndustries_co2eq": "Energy Industries - CO2-eq",
25109
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_ch4": "Manufacturing Industries and Construction - CH4",
25110
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_co2": "Manufacturing Industries and Construction - CO2",
25111
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_n2o": "Manufacturing Industries and Construction - N2O",
25112
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_co2eq": "Manufacturing Industries and Construction - CO2-eq",
25113
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_ch4": "Solid Fuels - CH4",
25114
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_co2": "Solid Fuels - CO2",
25115
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_n2o": "Solid Fuels - N2O",
25116
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_co2eq": "Solid Fuels - CO2-eq",
25117
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_ch4": "Oil and Natural Gas - CH4",
25118
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_co2": "Oil and Natural Gas - CO2",
25119
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_n2o": "Oil and Natural Gas - N2O",
25120
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_co2eq": "Oil and Natural Gas - CO2-eq",
25121
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_ch4": "Other emissions from Energy Production - CH4",
25122
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_co2": "Other emissions from Energy Production - CO2",
25123
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_n2o": "Other emissions from Energy Production - N2O",
25124
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_co2eq": "Other emissions from Energy Production - CO2-eq",
25125
+ "energyEmissions_carbonDioxideTransportStorage_other_ch4": "Other (Carbon dioxide Transport and Storage) - CH4",
25126
+ "energyEmissions_carbonDioxideTransportStorage_other_co2": "Other (Carbon dioxide Transport and Storage) - CO2",
25127
+ "energyEmissions_carbonDioxideTransportStorage_other_n2o": "Other (Carbon dioxide Transport and Storage) - N2O",
25128
+ "energyEmissions_carbonDioxideTransportStorage_other_co2eq": "Other (Carbon dioxide Transport and Storage) - CO2-eq",
25129
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_ch4": "Transport of CO2 - CH4",
25130
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_co2": "Transport of CO2 - CO2",
25131
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_n2o": "Transport of CO2 - N2O",
25132
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_co2eq": "Transport of CO2 - CO2-eq",
25133
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_ch4": "Injection and Storage - CH4",
25134
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_co2": "Injection and Storage - CO2",
25135
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_n2o": "Injection and Storage - N2O",
25136
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_co2eq": "Injection and Storage - CO2-eq",
25137
+ "industrialProcessesProductUse_other_ch4": "Other (Industrial Processes & Product Use) - CH4",
25138
+ "industrialProcessesProductUse_other_co2": "Other (Industrial Processes & Product Use) - CO2",
25139
+ "industrialProcessesProductUse_other_n2o": "Other (Industrial Processes & Product Use) - N2O",
25140
+ "industrialProcessesProductUse_other_co2eq": "Other (Industrial Processes & Product Use) - CO2-eq",
25141
+ "industrialProcessesProductUse_metalIndustry_ch4": "Metal Industry - CH4",
25142
+ "industrialProcessesProductUse_metalIndustry_co2": "Metal Industry - CO2",
25143
+ "industrialProcessesProductUse_metalIndustry_n2o": "Metal Industry - N2O",
25144
+ "industrialProcessesProductUse_metalIndustry_co2eq": "Metal Industry - CO2-eq",
25145
+ "industrialProcessesProductUse_mineralIndustry_ch4": "Mineral Industry - CH4",
25146
+ "industrialProcessesProductUse_mineralIndustry_co2": "Mineral Industry - CO2",
25147
+ "industrialProcessesProductUse_mineralIndustry_n2o": "Mineral Industry - N2O",
25148
+ "industrialProcessesProductUse_mineralIndustry_co2eq": "Mineral Industry - CO2-eq",
25149
+ "industrialProcessesProductUse_chemicalIndustry_ch4": "Chemical Industry - CH4",
25150
+ "industrialProcessesProductUse_chemicalIndustry_co2": "Chemical Industry - CO2",
25151
+ "industrialProcessesProductUse_chemicalIndustry_n2o": "Chemical Industry - N2O",
25152
+ "industrialProcessesProductUse_chemicalIndustry_co2eq": "Chemical Industry - CO2-eq",
25153
+ "industrialProcessesProductUse_electronicsIndustry_ch4": "Electronics Industry - CH4",
25154
+ "industrialProcessesProductUse_electronicsIndustry_co2": "Electronics Industry - CO2",
25155
+ "industrialProcessesProductUse_electronicsIndustry_n2o": "Electronics Industry - N2O",
25156
+ "industrialProcessesProductUse_electronicsIndustry_co2eq": "Electronics Industry - CO2-eq",
25157
+ "industrialProcessesProductUse_otherProductManufactureUse_ch4": "Other Product Manufacture and Use - CH4",
25158
+ "industrialProcessesProductUse_otherProductManufactureUse_co2": "Other Product Manufacture and Use - CO2",
25159
+ "industrialProcessesProductUse_otherProductManufactureUse_n2o": "Other Product Manufacture and Use - N2O",
25160
+ "industrialProcessesProductUse_otherProductManufactureUse_co2eq": "Other Product Manufacture and Use - CO2-eq",
25161
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_ch4": "Non-Energy Products from Fuels and Solvent Use - CH4",
25162
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_co2": "Non-Energy Products from Fuels and Solvent Use - CO2",
25163
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_n2o": "Non-Energy Products from Fuels and Solvent Use - N2O",
25164
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_co2eq": "Non-Energy Products from Fuels and Solvent Use - CO2-eq",
25165
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_ch4": "Product Uses as Substitutes for Ozone Depleting Substances - CH4",
25166
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_co2": "Product Uses as Substitutes for Ozone Depleting Substances - CO2",
25167
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_n2o": "Product Uses as Substitutes for Ozone Depleting Substances - N2O",
25168
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_co2eq": "Product Uses as Substitutes for Ozone Depleting Substances - CO2-eq",
25169
+ "agricultureForestryOtherLandUse_land_ch4": "Land - CH4",
25170
+ "agricultureForestryOtherLandUse_land_co2": "Land - CO2",
25171
+ "agricultureForestryOtherLandUse_land_n2o": "Land - N2O",
25172
+ "agricultureForestryOtherLandUse_land_co2eq": "Land - CO2-eq",
25173
+ "agricultureForestryOtherLandUse_other_ch4": "Other (Agriculture, Forestry, and Other Land Use) - CH4",
25174
+ "agricultureForestryOtherLandUse_other_co2": "Other (Agriculture, Forestry, and Other Land Use) - CO2",
25175
+ "agricultureForestryOtherLandUse_other_n2o": "Other (Agriculture, Forestry, and Other Land Use) - N2O",
25176
+ "agricultureForestryOtherLandUse_other_co2eq": "Other (Agriculture, Forestry, and Other Land Use) - CO2-eq",
25177
+ "agricultureForestryOtherLandUse_livestock_ch4": "Livestock - CH4",
25178
+ "agricultureForestryOtherLandUse_livestock_co2": "Livestock - CO2",
25179
+ "agricultureForestryOtherLandUse_livestock_n2o": "Livestock - N2O",
25180
+ "agricultureForestryOtherLandUse_livestock_co2eq": "Livestock - CO2-eq",
25181
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_ch4": "Aggregate sources and non-CO2 emissions sources on land - CH4",
25182
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_co2": "Aggregate sources and non-CO2 emissions sources on land - CO2",
25183
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_n2o": "Aggregate sources and non-CO2 emissions sources on land - N2O",
25184
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_co2eq": "Aggregate sources and non-CO2 emissions sources on land - CO2-eq",
25185
+ "waste_other_ch4": "Other (Waste) - CH4",
25186
+ "waste_other_co2": "Other (Waste) - CO2",
25187
+ "waste_other_n2o": "Other (Waste) - N2O",
25188
+ "waste_other_co2eq": "Other (Waste) - CO2-eq",
25189
+ "waste_solidWasteDisposal_ch4": "Solid Waste Disposal - CH4",
25190
+ "waste_solidWasteDisposal_co2": "Solid Waste Disposal - CO2",
25191
+ "waste_solidWasteDisposal_n2o": "Solid Waste Disposal - N2O",
25192
+ "waste_solidWasteDisposal_co2eq": "Solid Waste Disposal - CO2-eq",
25193
+ "waste_incinerationOpenBurningWaste_ch4": "Incineration and Open Burning of Waste - CH4",
25194
+ "waste_incinerationOpenBurningWaste_co2": "Incineration and Open Burning of Waste - CO2",
25195
+ "waste_incinerationOpenBurningWaste_n2o": "Incineration and Open Burning of Waste - N2O",
25196
+ "waste_incinerationOpenBurningWaste_co2eq": "Incineration and Open Burning of Waste - CO2-eq",
25197
+ "waste_wastewaterTreatmentDischarge_ch4": "Wastewater Treatment and Discharge - CH4",
25198
+ "waste_wastewaterTreatmentDischarge_co2": "Wastewater Treatment and Discharge - CO2",
25199
+ "waste_wastewaterTreatmentDischarge_n2o": "Wastewater Treatment and Discharge - N2O",
25200
+ "waste_wastewaterTreatmentDischarge_co2eq": "Wastewater Treatment and Discharge - CO2-eq",
25201
+ "waste_biologicalTreatmentSolidWaste_ch4": "Biological Treatment of Solid Waste - CH4",
25202
+ "waste_biologicalTreatmentSolidWaste_co2": "Biological Treatment of Solid Waste - CO2",
25203
+ "waste_biologicalTreatmentSolidWaste_n2o": "Biological Treatment of Solid Waste - N2O",
25204
+ "waste_biologicalTreatmentSolidWaste_co2eq": "Biological Treatment of Solid Waste - CO2-eq",
25205
+ "other_other_ch4": "Other - CH4",
25206
+ "other_other_co2": "Other - CO2",
25207
+ "other_other_n2o": "Other - N2O",
25208
+ "other_other_co2eq": "Other - CO2-eq",
25209
+ "other_indirectN2oEmissions_ch4": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CH4",
25210
+ "other_indirectN2oEmissions_co2": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CO2",
25211
+ "other_indirectN2oEmissions_n2o": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - N2O",
25212
+ "other_indirectN2oEmissions_co2eq": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - CO2-eq",
25213
+ "totalCo2WithoutLand_ch4": "Total CO2 equivalent emissions without land use, land-use change and forestry - CH4",
25214
+ "totalCo2WithoutLand_co2": "Total CO2 equivalent emissions without land use, land-use change and forestry - CO2",
25215
+ "totalCo2WithoutLand_n2o": "Total CO2 equivalent emissions without land use, land-use change and forestry - N2O",
25216
+ "totalCo2WithoutLand_co2eq": "Total CO2 equivalent emissions without land use, land-use change and forestry - CO2-eq",
25217
+ "totalCo2WithLand_ch4": "Total CO2 equivalent emissions with land use, land-use change and forestry - CH4",
25218
+ "totalCo2WithLand_co2": "Total CO2 equivalent emissions with land use, land-use change and forestry - CO2",
25219
+ "totalCo2WithLand_n2o": "Total CO2 equivalent emissions with land use, land-use change and forestry - N2O",
25220
+ "totalCo2WithLand_co2eq": "Total CO2 equivalent emissions with land use, land-use change and forestry - CO2-eq",
25221
+ // "state": "Status"
25222
+ };
25223
+ var projectionsCsvFieldMap = {
25224
+ "year": "Year",
25225
+ "energyEmissions_fuelCombustionActivities_transport_bau": "Transport - BAU",
25226
+ "energyEmissions_fuelCombustionActivities_transport_conditionalNdc": "Transport - Conditional NDC",
25227
+ "energyEmissions_fuelCombustionActivities_transport_unconditionalNdc": "Transport - Unconditional NDC",
25228
+ "energyEmissions_fuelCombustionActivities_nonSpecified_bau": "Non-Specified - BAU",
25229
+ "energyEmissions_fuelCombustionActivities_nonSpecified_conditionalNdc": "Non-Specified - Conditional NDC",
25230
+ "energyEmissions_fuelCombustionActivities_nonSpecified_unconditionalNdc": "Non-Specified - Unconditional NDC",
25231
+ "energyEmissions_fuelCombustionActivities_otherSectors_bau": "Other Sectors - BAU",
25232
+ "energyEmissions_fuelCombustionActivities_otherSectors_conditionalNdc": "Other Sectors - Conditional NDC",
25233
+ "energyEmissions_fuelCombustionActivities_otherSectors_unconditionalNdc": "Other Sectors - Unconditional NDC",
25234
+ "energyEmissions_fuelCombustionActivities_energyIndustries_bau": "Energy Industries - BAU",
25235
+ "energyEmissions_fuelCombustionActivities_energyIndustries_conditionalNdc": "Energy Industries - Conditional NDC",
25236
+ "energyEmissions_fuelCombustionActivities_energyIndustries_unconditionalNdc": "Energy Industries - Unconditional NDC",
25237
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_bau": "Manufacturing Industries and Construction - BAU",
25238
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_conditionalNdc": "Manufacturing Industries and Construction - Conditional NDC",
25239
+ "energyEmissions_fuelCombustionActivities_manufacturingIndustriesConstruction_unconditionalNdc": "Manufacturing Industries and Construction - Unconditional NDC",
25240
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_bau": "Solid Fuels - BAU",
25241
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_conditionalNdc": "Solid Fuels - Conditional NDC",
25242
+ "energyEmissions_fugitiveEmissionsFromFuels_solidFuels_unconditionalNdc": "Solid Fuels - Unconditional NDC",
25243
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_bau": "Oil and Natural Gas - BAU",
25244
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_conditionalNdc": "Oil and Natural Gas - Conditional NDC",
25245
+ "energyEmissions_fugitiveEmissionsFromFuels_oilNaturalGas_unconditionalNdc": "Oil and Natural Gas - Unconditional NDC",
25246
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_bau": "Other emissions from Energy Production - BAU",
25247
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_conditionalNdc": "Other emissions from Energy Production - Conditional NDC",
25248
+ "energyEmissions_fugitiveEmissionsFromFuels_otherEmissionsEnergyProduction_unconditionalNdc": "Other emissions from Energy Production - Unconditional NDC",
25249
+ "energyEmissions_carbonDioxideTransportStorage_other_bau": "Other (Carbon dioxide Transport and Storage) - BAU",
25250
+ "energyEmissions_carbonDioxideTransportStorage_other_conditionalNdc": "Other (Carbon dioxide Transport and Storage) - Conditional NDC",
25251
+ "energyEmissions_carbonDioxideTransportStorage_other_unconditionalNdc": "Other (Carbon dioxide Transport and Storage) - Unconditional NDC",
25252
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_bau": "Transport of CO2 - BAU",
25253
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_conditionalNdc": "Transport of CO2 - Conditional NDC",
25254
+ "energyEmissions_carbonDioxideTransportStorage_transportOfCo2_unconditionalNdc": "Transport of CO2 - Unconditional NDC",
25255
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_bau": "Injection and Storage - BAU",
25256
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_conditionalNdc": "Injection and Storage - Conditional NDC",
25257
+ "energyEmissions_carbonDioxideTransportStorage_injectionStorage_unconditionalNdc": "Injection and Storage - Unconditional NDC",
25258
+ "industrialProcessesProductUse_other_bau": "Other (Industrial Processes & Product Use) - BAU",
25259
+ "industrialProcessesProductUse_other_conditionalNdc": "Other (Industrial Processes & Product Use) - Conditional NDC",
25260
+ "industrialProcessesProductUse_other_unconditionalNdc": "Other (Industrial Processes & Product Use) - Unconditional NDC",
25261
+ "industrialProcessesProductUse_metalIndustry_bau": "Metal Industry - BAU",
25262
+ "industrialProcessesProductUse_metalIndustry_conditionalNdc": "Metal Industry - Conditional NDC",
25263
+ "industrialProcessesProductUse_metalIndustry_unconditionalNdc": "Metal Industry - Unconditional NDC",
25264
+ "industrialProcessesProductUse_mineralIndustry_bau": "Mineral Industry - BAU",
25265
+ "industrialProcessesProductUse_mineralIndustry_conditionalNdc": "Mineral Industry - Conditional NDC",
25266
+ "industrialProcessesProductUse_mineralIndustry_unconditionalNdc": "Mineral Industry - Unconditional NDC",
25267
+ "industrialProcessesProductUse_chemicalIndustry_bau": "Chemical Industry - BAU",
25268
+ "industrialProcessesProductUse_chemicalIndustry_conditionalNdc": "Chemical Industry - Conditional NDC",
25269
+ "industrialProcessesProductUse_chemicalIndustry_unconditionalNdc": "Chemical Industry - Unconditional NDC",
25270
+ "industrialProcessesProductUse_electronicsIndustry_bau": "Electronics Industry - BAU",
25271
+ "industrialProcessesProductUse_electronicsIndustry_conditionalNdc": "Electronics Industry - Conditional NDC",
25272
+ "industrialProcessesProductUse_electronicsIndustry_unconditionalNdc": "Electronics Industry - Unconditional NDC",
25273
+ "industrialProcessesProductUse_otherProductManufactureUse_bau": "Other Product Manufacture and Use - BAU",
25274
+ "industrialProcessesProductUse_otherProductManufactureUse_conditionalNdc": "Other Product Manufacture and Use - Conditional NDC",
25275
+ "industrialProcessesProductUse_otherProductManufactureUse_unconditionalNdc": "Other Product Manufacture and Use - Unconditional NDC",
25276
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_bau": "Non-Energy Products from Fuels and Solvent Use - BAU",
25277
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_conditionalNdc": "Non-Energy Products from Fuels and Solvent Use - Conditional NDC",
25278
+ "industrialProcessesProductUse_nonEnergyProductsFuelsSolventUse_unconditionalNdc": "Non-Energy Products from Fuels and Solvent Use - Unconditional NDC",
25279
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_bau": "Product Uses as Substitutes for Ozone Depleting Substances - BAU",
25280
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_conditionalNdc": "Product Uses as Substitutes for Ozone Depleting Substances - Conditional NDC",
25281
+ "industrialProcessesProductUse_productUsesSubstOzoneDepletingSubs_unconditionalNdc": "Product Uses as Substitutes for Ozone Depleting Substances - Unconditional NDC",
25282
+ "agricultureForestryOtherLandUse_land_bau": "Land - BAU",
25283
+ "agricultureForestryOtherLandUse_land_conditionalNdc": "Land - Conditional NDC",
25284
+ "agricultureForestryOtherLandUse_land_unconditionalNdc": "Land - Unconditional NDC",
25285
+ "agricultureForestryOtherLandUse_other_bau": "Other (Agriculture, Forestry, and Other Land Use) - BAU",
25286
+ "agricultureForestryOtherLandUse_other_conditionalNdc": "Other (Agriculture, Forestry, and Other Land Use) - Conditional NDC",
25287
+ "agricultureForestryOtherLandUse_other_unconditionalNdc": "Other (Agriculture, Forestry, and Other Land Use) - Unconditional NDC",
25288
+ "agricultureForestryOtherLandUse_livestock_bau": "Livestock - BAU",
25289
+ "agricultureForestryOtherLandUse_livestock_conditionalNdc": "Livestock - Conditional NDC",
25290
+ "agricultureForestryOtherLandUse_livestock_unconditionalNdc": "Livestock - Unconditional NDC",
25291
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_bau": "Aggregate sources and non-CO2 emissions sources on land - BAU",
25292
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_conditionalNdc": "Aggregate sources and non-CO2 emissions sources on land - Conditional NDC",
25293
+ "agricultureForestryOtherLandUse_aggregateNonCo2SourcesLand_unconditionalNdc": "Aggregate sources and non-CO2 emissions sources on land - Unconditional NDC",
25294
+ "waste_other_bau": "Other (Waste) - BAU",
25295
+ "waste_other_conditionalNdc": "Other (Waste) - Conditional NDC",
25296
+ "waste_other_unconditionalNdc": "Other (Waste) - Unconditional NDC",
25297
+ "waste_solidWasteDisposal_bau": "Solid Waste Disposal - BAU",
25298
+ "waste_solidWasteDisposal_conditionalNdc": "Solid Waste Disposal - Conditional NDC",
25299
+ "waste_solidWasteDisposal_unconditionalNdc": "Solid Waste Disposal - Unconditional NDC",
25300
+ "waste_incinerationOpenBurningWaste_bau": "Incineration and Open Burning of Waste - BAU",
25301
+ "waste_incinerationOpenBurningWaste_conditionalNdc": "Incineration and Open Burning of Waste - Conditional NDC",
25302
+ "waste_incinerationOpenBurningWaste_unconditionalNdc": "Incineration and Open Burning of Waste - Unconditional NDC",
25303
+ "waste_wastewaterTreatmentDischarge_bau": "Wastewater Treatment and Discharge - BAU",
25304
+ "waste_wastewaterTreatmentDischarge_conditionalNdc": "Wastewater Treatment and Discharge - Conditional NDC",
25305
+ "waste_wastewaterTreatmentDischarge_unconditionalNdc": "Wastewater Treatment and Discharge - Unconditional NDC",
25306
+ "waste_biologicalTreatmentSolidWaste_bau": "Biological Treatment of Solid Waste - BAU",
25307
+ "waste_biologicalTreatmentSolidWaste_conditionalNdc": "Biological Treatment of Solid Waste - Conditional NDC",
25308
+ "waste_biologicalTreatmentSolidWaste_unconditionalNdc": "Biological Treatment of Solid Waste - Unconditional NDC",
25309
+ "other_other_bau": "Other - BAU",
25310
+ "other_other_conditionalNdc": "Other - Conditional NDC",
25311
+ "other_other_unconditionalNdc": "Other - Unconditional NDC",
25312
+ "other_indirectN2oEmissions_bau": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - BAU",
25313
+ "other_indirectN2oEmissions_conditionalNdc": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - Conditional NDC",
25314
+ "other_indirectN2oEmissions_unconditionalNdc": "Indirect N2O emissions from the atmospheric deposition of nitrogen in NOx and NH3 - Unconditional NDC",
25315
+ "totalCo2WithoutLand_bau": "Total CO2 equivalent emissions without land use, land-use change and forestry - BAU",
25316
+ "totalCo2WithoutLand_conditionalNdc": "Total CO2 equivalent emissions without land use, land-use change and forestry - Conditional NDC",
25317
+ "totalCo2WithoutLand_unconditionalNdc": "Total CO2 equivalent emissions without land use, land-use change and forestry - Unconditional NDC",
25318
+ "totalCo2WithLand_bau": "Total CO2 equivalent emissions with land use, land-use change and forestry - BAU",
25319
+ "totalCo2WithLand_conditionalNdc": "Total CO2 equivalent emissions with land use, land-use change and forestry - Conditional NDC",
25320
+ "totalCo2WithLand_unconditionalNdc": "Total CO2 equivalent emissions with land use, land-use change and forestry - Unconditional NDC",
25321
+ // "state": "Status"
25322
+ };
25091
25323
 
25092
25324
  antd.Input.TextArea;
25093
25325
  var DiscardChangesConfirmationModel = function (props) {
@@ -25110,7 +25342,37 @@ var DiscardChangesConfirmationModel = function (props) {
25110
25342
  React.createElement(antd.Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading }, actionInfo.action)))));
25111
25343
  };
25112
25344
 
25113
- // import React from 'react';
25345
+ var GHGRecordState;
25346
+ (function (GHGRecordState) {
25347
+ GHGRecordState["SAVED"] = "SAVED";
25348
+ GHGRecordState["FINALIZED"] = "FINALIZED";
25349
+ })(GHGRecordState || (GHGRecordState = {}));
25350
+
25351
+ var TextArea = antd.Input.TextArea;
25352
+ var GHGUserActionConfirmationModel = function (props) {
25353
+ var t = props.t, actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading;
25354
+ var _a = React.useState(""), comment = _a[0], setComment = _a[1];
25355
+ React.useEffect(function () {
25356
+ setComment("");
25357
+ }, [openModal]);
25358
+ return (React.createElement(antd.Modal, { title: React.createElement("div", { className: "popup-header" },
25359
+ React.createElement("div", { className: "icon" }, actionInfo.icon),
25360
+ React.createElement("div", null, actionInfo.headerText)), className: "popup-" + actionInfo.type, open: openModal, width: Math.min(400, window.innerWidth), centered: true, onCancel: onActionCanceled, destroyOnClose: true, footer: null },
25361
+ React.createElement("p", { style: { whiteSpace: "pre-line" } }, actionInfo.text),
25362
+ React.createElement(antd.Form, { layout: "vertical", onFinish: function () {
25363
+ var status = actionInfo.action === "submit" ? GHGRecordState.SAVED : GHGRecordState.FINALIZED;
25364
+ onActionConfirmed(comment, status);
25365
+ } },
25366
+ React.createElement(antd.Form.Item, { className: "mg-bottom-0", label: t("userProfile:remarks"), name: "remarks", required: actionInfo.type === "danger" },
25367
+ React.createElement(TextArea, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
25368
+ errorMsg ? (React.createElement(antd.Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
25369
+ React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
25370
+ React.createElement(antd.Button, { htmlType: "button", onClick: function () {
25371
+ onActionCanceled();
25372
+ } }, t("userProfile:cancel")),
25373
+ React.createElement(antd.Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading, disabled: actionInfo.type === "danger" && comment === "" }, actionInfo.action)))));
25374
+ };
25375
+
25114
25376
  var GHGEmissionsComponent = function (props) {
25115
25377
  var t = props.t, useUserContext = props.useUserContext, useConnection = props.useConnection;
25116
25378
  var userInfoState = useUserContext().userInfoState;
@@ -25121,7 +25383,7 @@ var GHGEmissionsComponent = function (props) {
25121
25383
  var _e = React.useState(null); _e[0]; var setSelectedYear = _e[1];
25122
25384
  var _f = React.useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
25123
25385
  var _g = React.useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
25124
- var _h = React.useState(); _h[0]; var setChangedValues = _h[1];
25386
+ var _h = React.useState(); _h[0]; _h[1];
25125
25387
  var _j = React.useState(0), totalNationalCo2 = _j[0], setTotalNationalCo2 = _j[1];
25126
25388
  var _k = React.useState(0), totalNationalCh4 = _k[0], setTotalNationalCh4 = _k[1];
25127
25389
  var _l = React.useState(0), totalNationalN2o = _l[0], setTotalNationalN2o = _l[1];
@@ -25159,9 +25421,13 @@ var GHGEmissionsComponent = function (props) {
25159
25421
  var _18 = React.useState(0), otherN2o = _18[0], setOtherN2o = _18[1];
25160
25422
  var _19 = React.useState(0), otherCo2Eq = _19[0], setOtherCo2Eq = _19[1];
25161
25423
  var _20 = React.useState(false), isSavedFormDataSet = _20[0], setIsSavedFormDataSet = _20[1];
25162
- var _21 = React.useState(false), openResetFormModal = _21[0], setOpenResetFormModal = _21[1];
25163
- var _22 = React.useState(''), errorMsg = _22[0], setErrorMsg = _22[1];
25164
- var _23 = React.useState({}), actionInfo = _23[0], setActionInfo = _23[1];
25424
+ var _21 = React.useState(1), formDataVersion = _21[0], setFormDataVersion = _21[1];
25425
+ var _22 = React.useState(false), isFormChanged = _22[0], setIsFormChanged = _22[1];
25426
+ var _23 = React.useState(false), openSaveFormModal = _23[0], setOpenSaveFormModal = _23[1];
25427
+ var _24 = React.useState(false), openFinalizeFormModal = _24[0], setOpenFinalizeFormModal = _24[1];
25428
+ var _25 = React.useState(false), openResetFormModal = _25[0], setOpenResetFormModal = _25[1];
25429
+ var _26 = React.useState(''), errorMsg = _26[0], setErrorMsg = _26[1];
25430
+ var _27 = React.useState({}), actionInfo = _27[0], setActionInfo = _27[1];
25165
25431
  var Panel = antd.Collapse.Panel;
25166
25432
  var form = antd.Form.useForm()[0];
25167
25433
  var createSetFieldObject = function (obj, objName) {
@@ -25258,20 +25524,8 @@ var GHGEmissionsComponent = function (props) {
25258
25524
  setFormValues(upData);
25259
25525
  };
25260
25526
  React.useEffect(function () {
25261
- console.log('++++++++++++++data', data);
25262
25527
  var hasSaveState = data.some(function (item) { return item.state === 'SAVED'; });
25263
- console.log('++++++++++++++hasSaveState', hasSaveState);
25264
- // const years = data.map((item: any) => !(item.state === 'SAVED') && item.year);
25265
- // console.log('++++++++++++++data, years', data, years);
25266
- console.log(uploadedFileName);
25267
25528
  setIsPendingFinalization(hasSaveState);
25268
- // Update 'disabledYears' only if 'years' array has changed
25269
- // setDisabledYears((prevYears) => {
25270
- // if (JSON.stringify(prevYears) !== JSON.stringify(years)) {
25271
- // return years;
25272
- // }
25273
- // return prevYears;
25274
- // });
25275
25529
  }, [data, uploadedFileName]);
25276
25530
  var handleYearChange = function (date, dateString) {
25277
25531
  setSelectedYear(dateString);
@@ -25290,9 +25544,16 @@ var GHGEmissionsComponent = function (props) {
25290
25544
  }
25291
25545
  return sum;
25292
25546
  }
25293
- var onValuesChange = function (changedValues2, allValues) {
25547
+ var onValuesChange = function (changedValues, allValues) {
25294
25548
  // Track the changed values
25295
- setChangedValues(function (prevChangedValues) { return (__assign(__assign({}, prevChangedValues), changedValues2)); });
25549
+ var initialValues = null;
25550
+ if (isPendingFinalization) {
25551
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25552
+ initialValues = savedData[0];
25553
+ }
25554
+ var currentValues = form.getFieldsValue(true);
25555
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
25556
+ setIsFormChanged(isChanged);
25296
25557
  };
25297
25558
  var getBase64 = function (file) {
25298
25559
  return new Promise(function (resolve, reject) {
@@ -25302,7 +25563,7 @@ var GHGEmissionsComponent = function (props) {
25302
25563
  reader.onerror = function (error) { return reject(error); };
25303
25564
  });
25304
25565
  };
25305
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
25566
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25306
25567
  var requestBody, savedEmission, emissionImportBase64;
25307
25568
  var _a;
25308
25569
  return __generator(this, function (_b) {
@@ -25519,7 +25780,9 @@ var GHGEmissionsComponent = function (props) {
25519
25780
  n2o: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_n2o,
25520
25781
  co2eq: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_co2eq,
25521
25782
  },
25522
- state: 'SAVED',
25783
+ state: status,
25784
+ remarks: remarks,
25785
+ version: formDataVersion,
25523
25786
  };
25524
25787
  requestBody = savedEmission;
25525
25788
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -25534,6 +25797,37 @@ var GHGEmissionsComponent = function (props) {
25534
25797
  }
25535
25798
  });
25536
25799
  }); };
25800
+ var clearForm = function () {
25801
+ form.resetFields();
25802
+ setFuelCombustionActivitiesCo2(0);
25803
+ setFuelCombustionActivitiesCh4(0);
25804
+ setFuelCombustionActivitiesN2o(0);
25805
+ setFuelCombustionActivitiesCo2Eq(0);
25806
+ setFugitiveEmissionsFromFuelsCo2(0);
25807
+ setFugitiveEmissionsFromFuelsCh4(0);
25808
+ setFugitiveEmissionsFromFuelsN2o(0);
25809
+ setFugitiveEmissionsFromFuelsCo2Eq(0);
25810
+ setCarbonDioxideTransportStorageCo2(0);
25811
+ setCarbonDioxideTransportStorageCh4(0);
25812
+ setCarbonDioxideTransportStorageN2o(0);
25813
+ setCarbonDioxideTransportStorageCo2Eq(0);
25814
+ setIndustrialProcessesProductUseCo2(0);
25815
+ setIndustrialProcessesProductUseCh4(0);
25816
+ setIndustrialProcessesProductUseN2o(0);
25817
+ setIndustrialProcessesProductUseCo2Eq(0);
25818
+ setAgricultureForestryOtherLandUseCo2(0);
25819
+ setAgricultureForestryOtherLandUseCh4(0);
25820
+ setAgricultureForestryOtherLandUseN2o(0);
25821
+ setAgricultureForestryOtherLandUseCo2Eq(0);
25822
+ setWasteCo2(0);
25823
+ setWasteCh4(0);
25824
+ setWasteN2o(0);
25825
+ setWasteCo2Eq(0);
25826
+ setOtherCo2(0);
25827
+ setOtherCh4(0);
25828
+ setOtherN2o(0);
25829
+ setOtherCo2Eq(0);
25830
+ };
25537
25831
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
25538
25832
  return __generator(this, function (_a) {
25539
25833
  switch (_a.label) {
@@ -25547,36 +25841,14 @@ var GHGEmissionsComponent = function (props) {
25547
25841
  setIsSavedFormDataSet(false);
25548
25842
  clearUploadDoc();
25549
25843
  if (!isPendingFinalization) {
25550
- form.resetFields();
25551
- setFuelCombustionActivitiesCo2(0);
25552
- setFuelCombustionActivitiesCh4(0);
25553
- setFuelCombustionActivitiesN2o(0);
25554
- setFuelCombustionActivitiesCo2Eq(0);
25555
- setFugitiveEmissionsFromFuelsCo2(0);
25556
- setFugitiveEmissionsFromFuelsCh4(0);
25557
- setFugitiveEmissionsFromFuelsN2o(0);
25558
- setFugitiveEmissionsFromFuelsCo2Eq(0);
25559
- setCarbonDioxideTransportStorageCo2(0);
25560
- setCarbonDioxideTransportStorageCh4(0);
25561
- setCarbonDioxideTransportStorageN2o(0);
25562
- setCarbonDioxideTransportStorageCo2Eq(0);
25563
- setIndustrialProcessesProductUseCo2(0);
25564
- setIndustrialProcessesProductUseCh4(0);
25565
- setIndustrialProcessesProductUseN2o(0);
25566
- setIndustrialProcessesProductUseCo2Eq(0);
25567
- setAgricultureForestryOtherLandUseCo2(0);
25568
- setAgricultureForestryOtherLandUseCh4(0);
25569
- setAgricultureForestryOtherLandUseN2o(0);
25570
- setAgricultureForestryOtherLandUseCo2Eq(0);
25571
- setWasteCo2(0);
25572
- setWasteCh4(0);
25573
- setWasteN2o(0);
25574
- setWasteCo2Eq(0);
25575
- setOtherCo2(0);
25576
- setOtherCh4(0);
25577
- setOtherN2o(0);
25578
- setOtherCo2Eq(0);
25844
+ clearForm();
25579
25845
  }
25846
+ antd.message.open({
25847
+ type: 'success',
25848
+ content: t('ghgInventory:formCancelledSuccess'),
25849
+ duration: 4,
25850
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25851
+ });
25580
25852
  return [2 /*return*/];
25581
25853
  }
25582
25854
  });
@@ -25584,7 +25856,7 @@ var GHGEmissionsComponent = function (props) {
25584
25856
  var onResetFormCanceled = function () {
25585
25857
  setOpenResetFormModal(false);
25586
25858
  };
25587
- var onResetFormModel = function () {
25859
+ var onOpenResetFormModel = function () {
25588
25860
  setActionInfo({
25589
25861
  action: "".concat(t('ghgInventory:proceed')),
25590
25862
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -25594,55 +25866,106 @@ var GHGEmissionsComponent = function (props) {
25594
25866
  setErrorMsg('');
25595
25867
  setOpenResetFormModal(true);
25596
25868
  };
25597
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
25598
- var fields, payload, response, error_1;
25869
+ var onSaveFormCanceled = function () {
25870
+ setOpenSaveFormModal(false);
25871
+ };
25872
+ var onOpenSaveFormModel = function () {
25873
+ if (!isFormChanged) {
25874
+ antd.message.open({
25875
+ type: 'error',
25876
+ content: t('ghgInventory:formNotChanged'),
25877
+ duration: 4,
25878
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25879
+ });
25880
+ }
25881
+ else {
25882
+ setActionInfo({
25883
+ action: "".concat(t("ghgInventory:submit")),
25884
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
25885
+ type: "primary",
25886
+ icon: React.createElement(icons.CheckCircleOutlined, null),
25887
+ });
25888
+ setErrorMsg('');
25889
+ setOpenSaveFormModal(true);
25890
+ }
25891
+ };
25892
+ var onFinalizeFormCanceled = function () {
25893
+ setOpenFinalizeFormModal(false);
25894
+ };
25895
+ var onOpenFinalizeFormModel = function () {
25896
+ setActionInfo({
25897
+ action: "".concat(t("ghgInventory:finalize")),
25898
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
25899
+ type: "primary",
25900
+ icon: React.createElement(Icon.ClipboardCheck, null),
25901
+ });
25902
+ setErrorMsg('');
25903
+ setOpenFinalizeFormModal(true);
25904
+ };
25905
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25906
+ var fields, payload, response, messageContent, error_1;
25599
25907
  return __generator(this, function (_a) {
25600
25908
  switch (_a.label) {
25601
25909
  case 0:
25602
25910
  fields = form.getFieldsValue(true);
25603
- return [4 /*yield*/, createSaveRequestPayload(fields)];
25911
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
25604
25912
  case 1:
25605
25913
  payload = _a.sent();
25606
25914
  setLoading(true);
25607
25915
  _a.label = 2;
25608
25916
  case 2:
25609
- _a.trys.push([2, 4, 5, 7]);
25917
+ _a.trys.push([2, 6, 9, 10]);
25610
25918
  return [4 /*yield*/, post('national/emissions', payload)];
25611
25919
  case 3:
25612
25920
  response = _a.sent();
25613
25921
  console.log('Emission creation -> ', response);
25614
- if ((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS') {
25615
- antd.message.open({
25616
- type: 'success',
25617
- content:
25618
- // eslint-disable-next-line eqeqeq
25619
- (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created
25620
- ? t('ghgInventory:emissionCreationSuccess')
25621
- : t('ghgInventory:emissionUpdateSuccess'),
25622
- duration: 4,
25623
- style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25624
- });
25922
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
25923
+ setOpenSaveFormModal(false);
25924
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created ?
25925
+ t('ghgInventory:emissionCreationSuccess')
25926
+ : t('ghgInventory:emissionUpdateSuccess');
25927
+ if (status === GHGRecordState.FINALIZED) {
25928
+ clearUploadDoc();
25929
+ clearForm();
25930
+ messageContent = t('ghgInventory:emissionFinalizedSuccess');
25625
25931
  }
25626
- return [3 /*break*/, 7];
25932
+ setOpenFinalizeFormModal(false);
25933
+ antd.message.open({
25934
+ type: 'success',
25935
+ content: messageContent,
25936
+ duration: 4,
25937
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25938
+ });
25939
+ clearUploadDoc();
25940
+ return [4 /*yield*/, getEmissionData()];
25627
25941
  case 4:
25942
+ _a.sent();
25943
+ _a.label = 5;
25944
+ case 5: return [3 /*break*/, 10];
25945
+ case 6:
25628
25946
  error_1 = _a.sent();
25629
25947
  console.log('Error in emission creation - ', error_1);
25948
+ setOpenSaveFormModal(false);
25949
+ setOpenFinalizeFormModal(false);
25630
25950
  antd.message.open({
25631
25951
  type: 'error',
25632
25952
  content: error_1 === null || error_1 === void 0 ? void 0 : error_1.message,
25633
25953
  duration: 4,
25634
25954
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25635
25955
  });
25636
- return [3 /*break*/, 7];
25637
- case 5:
25638
- // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25639
- return [4 /*yield*/, getEmissionData()];
25640
- case 6:
25641
- // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25956
+ if (!(error_1.statusCode == axios.HttpStatusCode.Conflict)) return [3 /*break*/, 8];
25957
+ return [4 /*yield*/, getEmissionData()];
25958
+ case 7:
25642
25959
  _a.sent();
25960
+ clearUploadDoc();
25961
+ _a.label = 8;
25962
+ case 8: return [3 /*break*/, 10];
25963
+ case 9:
25964
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25965
+ setIsFormChanged(false);
25643
25966
  setLoading(false);
25644
25967
  return [7 /*endfinally*/];
25645
- case 7: return [2 /*return*/];
25968
+ case 10: return [2 /*return*/];
25646
25969
  }
25647
25970
  });
25648
25971
  }); };
@@ -25674,6 +25997,7 @@ var GHGEmissionsComponent = function (props) {
25674
25997
  });
25675
25998
  return [3 /*break*/, 5];
25676
25999
  case 4:
26000
+ setIsFormChanged(false);
25677
26001
  setLoading(false);
25678
26002
  return [7 /*endfinally*/];
25679
26003
  case 5: return [2 /*return*/];
@@ -25745,13 +26069,16 @@ var GHGEmissionsComponent = function (props) {
25745
26069
  setIsSavedFormDataSet(true);
25746
26070
  };
25747
26071
  React.useEffect(function () {
25748
- // if (isPendingFinalization) {
26072
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25749
26073
  if (!isSavedFormDataSet) {
25750
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25751
26074
  if (savedData && savedData.length > 0) {
25752
26075
  setFormValues(savedData[0]);
25753
26076
  }
25754
26077
  }
26078
+ if (savedData && savedData.length > 0) {
26079
+ setFormDataVersion(savedData[0].version);
26080
+ }
26081
+ console.log("data changed - version updated2? = ", formDataVersion);
25755
26082
  var years = data
25756
26083
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
25757
26084
  .map(function (item) { return parseInt(item.year); });
@@ -26234,6 +26561,67 @@ var GHGEmissionsComponent = function (props) {
26234
26561
  React.createElement(antd.Col, { xl: 6 },
26235
26562
  React.createElement(antd.InputNumber, { value: co2eq, disabled: true }))))));
26236
26563
  };
26564
+ var objectToCSV = function (dataToDownload) {
26565
+ var flattenObject = function (obj, prefix) {
26566
+ if (prefix === void 0) { prefix = ''; }
26567
+ return Object.keys(obj).reduce(function (acc, key) {
26568
+ var pre = prefix.length ? "".concat(prefix, "_") : '';
26569
+ if (typeof obj[key] === 'object' && obj[key] !== null) {
26570
+ Object.assign(acc, flattenObject(obj[key], pre + key));
26571
+ }
26572
+ else {
26573
+ acc[pre + key] = obj[key];
26574
+ }
26575
+ return acc;
26576
+ }, {});
26577
+ };
26578
+ var headers = [];
26579
+ var contentKeys = [];
26580
+ var flattenedObj = flattenObject(dataToDownload);
26581
+ var objKeys = Object.keys(flattenedObj);
26582
+ objKeys.map(function (key) {
26583
+ if (emissionCsvFieldMap[key]) {
26584
+ headers.push(emissionCsvFieldMap[key]);
26585
+ contentKeys.push(key);
26586
+ }
26587
+ });
26588
+ var flattenedData = [dataToDownload].map(function (item) {
26589
+ var flattened = flattenObject(item);
26590
+ return contentKeys.map(function (header) { return flattened[header]; });
26591
+ });
26592
+ var csvContent = headers.map(function (header) { return "\"".concat(header, "\""); }).join(',') +
26593
+ '\n' +
26594
+ flattenedData.map(function (row) { return row.map(function (value) { return (value === undefined || value === null) ? "" : value; }).join(','); }).join('\n');
26595
+ return csvContent;
26596
+ };
26597
+ var downloadCSV = function (dataToDownload) {
26598
+ var csvContent = objectToCSV(dataToDownload);
26599
+ var encodedUri = encodeURI("data:text/csv;charset=utf-8,".concat(csvContent));
26600
+ var link = document.createElement('a');
26601
+ link.setAttribute('href', encodedUri);
26602
+ link.setAttribute('download', "GHG-Reporting Emission_".concat(dataToDownload.year, "_V").concat(dataToDownload.version, ".csv"));
26603
+ document.body.appendChild(link);
26604
+ link.click();
26605
+ };
26606
+ var isRowDataEmpty = function (emissionDataObj) {
26607
+ if (emissionDataObj == undefined || emissionDataObj == null) {
26608
+ return true;
26609
+ }
26610
+ var co2 = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.co2;
26611
+ var ch4 = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.ch4;
26612
+ var n2o = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.n2o;
26613
+ var co2eq = emissionDataObj === null || emissionDataObj === void 0 ? void 0 : emissionDataObj.co2eq;
26614
+ if (!co2 && !ch4 && !n2o && !co2eq) {
26615
+ return true;
26616
+ }
26617
+ return false;
26618
+ };
26619
+ var isSectionDataEmpty = function (sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq) {
26620
+ if (!sectionTotalCo2 && !sectionTotalCh4 && !sectionTotalN2o && !sectionTotalCo2eq) {
26621
+ return true;
26622
+ }
26623
+ return false;
26624
+ };
26237
26625
  return (React.createElement("div", null,
26238
26626
  React.createElement("div", { className: "content-container emission-tab-container" },
26239
26627
  React.createElement("div", { className: "emission-title-bar" },
@@ -26245,7 +26633,7 @@ var GHGEmissionsComponent = function (props) {
26245
26633
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT ||
26246
26634
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.MINISTRY) && (React.createElement(antd.Tabs.TabPane, { key: "Add New", tab: t("ghgInventory:addNew") },
26247
26635
  React.createElement("div", null,
26248
- React.createElement(antd.Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-emission", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onSubmitForm },
26636
+ React.createElement(antd.Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-emission", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onOpenSaveFormModel },
26249
26637
  React.createElement(antd.Row, null,
26250
26638
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26251
26639
  React.createElement("div", null,
@@ -26409,10 +26797,13 @@ var GHGEmissionsComponent = function (props) {
26409
26797
  React.createElement(antd.Form.Item, { name: "totalCo2WithLand_co2eq" },
26410
26798
  React.createElement(antd.InputNumber, null)))))),
26411
26799
  React.createElement("div", { className: "steps-actions" },
26412
- React.createElement(antd.Button, { type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26413
- React.createElement(antd.Button, { className: "back-btn", onClick: onResetFormModel, loading: loading }, "Cancel")))))),
26800
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT &&
26801
+ (React.createElement(antd.Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
26802
+ React.createElement(antd.Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26803
+ React.createElement(antd.Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
26414
26804
  data.map(function (tabData) {
26415
- return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
26805
+ var _a, _b, _c, _d, _e, _f, _g, _h;
26806
+ return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { className: 'view-data-panel', key: tabData.id.toString(), tab: React.createElement("span", null,
26416
26807
  tabData.year,
26417
26808
  tabData.state === 'FINALIZED' && React.createElement(icons.LockFilled, { style: { marginLeft: 5 } })) },
26418
26809
  React.createElement("div", null,
@@ -26420,47 +26811,14 @@ var GHGEmissionsComponent = function (props) {
26420
26811
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26421
26812
  React.createElement("div", null,
26422
26813
  React.createElement(antd.Row, { className: "add-new-upload-file-label" }, "Year"),
26423
- React.createElement(antd.DatePicker
26424
- // onChange={handleYearChange}
26425
- , {
26426
- // onChange={handleYearChange}
26427
- picker: "year", disabledDate: isYearDisabled, defaultValue: moment(tabData.year, 'YYYY'), disabled: true, size: "large" }))),
26814
+ React.createElement(antd.DatePicker, { picker: "year", disabledDate: isYearDisabled, defaultValue: moment(tabData.year, 'YYYY'), disabled: true, size: "large" }))),
26428
26815
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
26429
26816
  React.createElement(antd.Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
26430
26817
  React.createElement(antd.Row, null,
26431
- React.createElement(antd.Col, { xl: 5, md: 5, className: "add-new-upload-file-inner-col" },
26432
- React.createElement(antd.Form.Item, null,
26433
- React.createElement(antd.Upload, { accept: ".xlsx", customRequest: function (_a) {
26434
- _a.onSuccess; _a.onError; _a.file;
26435
- var reader = new FileReader();
26436
- reader.onload = function (e) {
26437
- if (e && e.target) {
26438
- // Check if e and e.target are defined
26439
- var xldata = e.target.result;
26440
- if (xldata) {
26441
- try {
26442
- var workbook = XLSX__namespace.read(xldata, { type: 'array' });
26443
- var sheetName = workbook.SheetNames[0];
26444
- var sheet = workbook.Sheets[sheetName];
26445
- var excelData = XLSX__namespace.utils.sheet_to_json(sheet);
26446
- // Use excelData as needed, e.g., display it in a table.
26447
- console.log(excelData);
26448
- // You can perform any further processing with the data here.
26449
- // For example, you can call a function to handle the uploaded data.
26450
- // handleFileUpload(excelData);
26451
- // onSuccess('ok', file);
26452
- }
26453
- catch (error) {
26454
- // onError(error, 'error', file);
26455
- }
26456
- }
26457
- }
26458
- };
26459
- // reader.readAsArrayBuffer(file);
26460
- } },
26461
- React.createElement(antd.Button, { icon: React.createElement(icons.UploadOutlined, null) }, t("ghgInventory:upload"))))),
26462
- React.createElement(antd.Col, { xl: 16, md: 16, className: "add-new-upload-file-name-input" },
26463
- React.createElement(antd.Input, { value: uploadedFileName, readOnly: true }))))),
26818
+ React.createElement(antd.Col, { xl: 15, md: 15, className: "view-download-file-name-input" },
26819
+ React.createElement(antd.Input, { value: "GHG-Reporting Emission_".concat(tabData.year, "_V").concat(tabData.version, ".csv"), disabled: true })),
26820
+ React.createElement(antd.Col, { xl: 5, md: 5, className: "view-download-file-inner-col" },
26821
+ React.createElement(antd.Button, { icon: React.createElement(icons.DownloadOutlined, null), onClick: function () { downloadCSV(tabData); } }, t("ghgInventory:download")))))),
26464
26822
  React.createElement(antd.Row, { gutter: 16 },
26465
26823
  React.createElement(antd.Col, { span: 9, offset: 12 },
26466
26824
  React.createElement(antd.Row, { gutter: 16, className: "table-heading-row" },
@@ -26496,36 +26854,82 @@ var GHGEmissionsComponent = function (props) {
26496
26854
  return isActive ? React.createElement(icons.MinusCircleOutlined, null) : React.createElement(icons.PlusCircleOutlined, null);
26497
26855
  } }, Object.entries(formFields).map(function (_a) {
26498
26856
  var panelHeading = _a[0], panelContent = _a[1];
26499
- return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
26500
- ? panelContent.map(function (item, index) {
26501
- for (var key in tabData) {
26502
- if (key === panelHeading) {
26503
- var emissionsObject = tabData[key];
26504
- var emissionsData = emissionsObject[item];
26505
- 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);
26506
- }
26507
- }
26508
- })
26509
- : Object.entries(panelContent).map(function (_a) {
26510
- var subPanelHeading = _a[0], subPanelContent = _a[1];
26511
- return (React.createElement("div", { className: "sub-panel" },
26512
- React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
26513
- subPanelContent.map(function (item, index) {
26514
- for (var key in tabData.energyEmissions[subPanelHeading]) {
26515
- if (key === item) {
26516
- var emissionsObject = tabData.energyEmissions[subPanelHeading];
26517
- var emissionsData = emissionsObject[item];
26857
+ var emissionsObject = tabData[panelHeading];
26858
+ var sectionTotalCo2 = calculateSumEmissionView(emissionsObject, 'co2');
26859
+ var sectionTotalCh4 = calculateSumEmissionView(emissionsObject, 'ch4');
26860
+ var sectionTotalN2o = calculateSumEmissionView(emissionsObject, 'n2o');
26861
+ var sectionTotalCo2eq = calculateSumEmissionView(emissionsObject, 'co2eq');
26862
+ if (!isSectionDataEmpty(sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq)) {
26863
+ return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
26864
+ ? panelContent.map(function (item, index) {
26865
+ for (var key in tabData) {
26866
+ if (key === panelHeading) {
26867
+ var emissionsObject_1 = tabData[key];
26868
+ var emissionsData = emissionsObject_1[item];
26869
+ if (!isRowDataEmpty(emissionsData)) {
26518
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);
26519
26871
  }
26520
26872
  }
26521
- })));
26522
- })));
26523
- })))));
26873
+ }
26874
+ })
26875
+ : Object.entries(panelContent).map(function (_a) {
26876
+ var subPanelHeading = _a[0], subPanelContent = _a[1];
26877
+ var emissionsObject = tabData.energyEmissions[subPanelHeading];
26878
+ var sectionTotalCo2 = calculateSumEmissionView(emissionsObject, 'co2');
26879
+ var sectionTotalCh4 = calculateSumEmissionView(emissionsObject, 'ch4');
26880
+ var sectionTotalN2o = calculateSumEmissionView(emissionsObject, 'n2o');
26881
+ var sectionTotalCo2eq = calculateSumEmissionView(emissionsObject, 'co2eq');
26882
+ if (!isSectionDataEmpty(sectionTotalCo2, sectionTotalCh4, sectionTotalN2o, sectionTotalCo2eq)) {
26883
+ return (React.createElement("div", { className: "sub-panel" },
26884
+ React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
26885
+ subPanelContent.map(function (item, index) {
26886
+ for (var key in tabData.energyEmissions[subPanelHeading]) {
26887
+ if (key === item) {
26888
+ var emissionsObject_2 = tabData.energyEmissions[subPanelHeading];
26889
+ var emissionsData = emissionsObject_2[item];
26890
+ if (!isRowDataEmpty(emissionsData)) {
26891
+ 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);
26892
+ }
26893
+ }
26894
+ }
26895
+ })));
26896
+ }
26897
+ })));
26898
+ }
26899
+ })),
26900
+ (!isRowDataEmpty(tabData.totalCo2WithoutLand)) && (React.createElement(antd.Row, { gutter: 16, key: 'totalCo2WithoutLand', className: "total-co2-without-land-row" },
26901
+ React.createElement(antd.Col, { xl: 12, md: 12, className: "total-co2-without-land-title" },
26902
+ React.createElement("span", null, t("ghgInventory:totalCo2WithoutLand"))),
26903
+ React.createElement(antd.Col, { xl: 9, md: 9 },
26904
+ React.createElement(antd.Row, { gutter: 16, className: "panel-content-input-box-row" },
26905
+ React.createElement(antd.Col, { xl: 6 },
26906
+ React.createElement(antd.InputNumber, { value: (_a = tabData.totalCo2WithoutLand) === null || _a === void 0 ? void 0 : _a.co2, disabled: true })),
26907
+ React.createElement(antd.Col, { xl: 6 },
26908
+ React.createElement(antd.InputNumber, { value: (_b = tabData.totalCo2WithoutLand) === null || _b === void 0 ? void 0 : _b.ch4, disabled: true })),
26909
+ React.createElement(antd.Col, { xl: 6 },
26910
+ React.createElement(antd.InputNumber, { value: (_c = tabData.totalCo2WithoutLand) === null || _c === void 0 ? void 0 : _c.n2o, disabled: true })),
26911
+ React.createElement(antd.Col, { xl: 6 },
26912
+ React.createElement(antd.InputNumber, { value: (_d = tabData.totalCo2WithoutLand) === null || _d === void 0 ? void 0 : _d.co2eq, disabled: true })))))),
26913
+ (!isRowDataEmpty(tabData.totalCo2WithLand)) && (React.createElement(antd.Row, { gutter: 16, key: 'totalCo2WithLand', className: "total-co2-with-land-row" },
26914
+ React.createElement(antd.Col, { xl: 12, md: 12, className: "total-co2-with-land-title" },
26915
+ React.createElement("span", null, t("ghgInventory:totalCo2WithLand"))),
26916
+ React.createElement(antd.Col, { xl: 9, md: 9 },
26917
+ React.createElement(antd.Row, { gutter: 16, className: "panel-content-input-box-row" },
26918
+ React.createElement(antd.Col, { xl: 6 },
26919
+ React.createElement(antd.InputNumber, { value: (_e = tabData.totalCo2WithLand) === null || _e === void 0 ? void 0 : _e.co2, disabled: true })),
26920
+ React.createElement(antd.Col, { xl: 6 },
26921
+ React.createElement(antd.InputNumber, { value: (_f = tabData.totalCo2WithLand) === null || _f === void 0 ? void 0 : _f.ch4, disabled: true })),
26922
+ React.createElement(antd.Col, { xl: 6 },
26923
+ React.createElement(antd.InputNumber, { value: (_g = tabData.totalCo2WithLand) === null || _g === void 0 ? void 0 : _g.n2o, disabled: true })),
26924
+ React.createElement(antd.Col, { xl: 6 },
26925
+ React.createElement(antd.InputNumber, { value: (_h = tabData.totalCo2WithLand) === null || _h === void 0 ? void 0 : _h.co2eq, disabled: true })))))))));
26524
26926
  })))),
26927
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
26928
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
26525
26929
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
26526
26930
  };
26527
26931
 
26528
- 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: 25%; }\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 .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";
26932
+ 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";
26529
26933
  styleInject(css_248z);
26530
26934
 
26531
26935
  var ProjectionTypes = {
@@ -26544,7 +26948,7 @@ var GHGProjectionsComponent = function (props) {
26544
26948
  var _e = React.useState(null); _e[0]; var setSelectedYear = _e[1];
26545
26949
  var _f = React.useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
26546
26950
  var _g = React.useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
26547
- var _h = React.useState(); _h[0]; var setChangedValues = _h[1];
26951
+ var _h = React.useState(); _h[0]; _h[1];
26548
26952
  var _j = React.useState(0), totalNationalBau = _j[0], setTotalNationalBau = _j[1];
26549
26953
  var _k = React.useState(0), totalNationalConditionalNdc = _k[0], setTotalNationalConditionalNdc = _k[1];
26550
26954
  var _l = React.useState(0), totalNationalUnconditionalNdc = _l[0], setTotalNationalUnconditionalNdc = _l[1];
@@ -26573,9 +26977,13 @@ var GHGProjectionsComponent = function (props) {
26573
26977
  var _9 = React.useState(0), otherConditionalNdc = _9[0], setOtherConditionalNdc = _9[1];
26574
26978
  var _10 = React.useState(0), otherUnconditionalNdc = _10[0], setOtherUnconditionalNdc = _10[1];
26575
26979
  var _11 = React.useState(false), isSavedFormDataSet = _11[0], setIsSavedFormDataSet = _11[1];
26576
- var _12 = React.useState(false), openResetFormModal = _12[0], setOpenResetFormModal = _12[1];
26577
- var _13 = React.useState(''), errorMsg = _13[0], setErrorMsg = _13[1];
26578
- var _14 = React.useState({}), actionInfo = _14[0], setActionInfo = _14[1];
26980
+ var _12 = React.useState(1), formDataVersion = _12[0], setFormDataVersion = _12[1];
26981
+ var _13 = React.useState(false), isFormChanged = _13[0], setIsFormChanged = _13[1];
26982
+ var _14 = React.useState(false), openSaveFormModal = _14[0], setOpenSaveFormModal = _14[1];
26983
+ var _15 = React.useState(false), openFinalizeFormModal = _15[0], setOpenFinalizeFormModal = _15[1];
26984
+ var _16 = React.useState(false), openResetFormModal = _16[0], setOpenResetFormModal = _16[1];
26985
+ var _17 = React.useState(''), errorMsg = _17[0], setErrorMsg = _17[1];
26986
+ var _18 = React.useState({}), actionInfo = _18[0], setActionInfo = _18[1];
26579
26987
  var Panel = antd.Collapse.Panel;
26580
26988
  var form = antd.Form.useForm()[0];
26581
26989
  var createSetFieldObject = function (obj, objName) {
@@ -26675,20 +27083,8 @@ var GHGProjectionsComponent = function (props) {
26675
27083
  setFormValues(upData);
26676
27084
  };
26677
27085
  React.useEffect(function () {
26678
- console.log('++++++++++++++data', data);
26679
27086
  var hasSaveState = data.some(function (item) { return item.state === 'SAVED'; });
26680
- console.log('++++++++++++++hasSaveState', hasSaveState);
26681
- // const years = data.map((item: any) => !(item.state === 'SAVED') && item.year);
26682
- // console.log('++++++++++++++data, years', data, years);
26683
- console.log(uploadedFileName);
26684
27087
  setIsPendingFinalization(hasSaveState);
26685
- // Update 'disabledYears' only if 'years' array has changed
26686
- // setDisabledYears((prevYears) => {
26687
- // if (JSON.stringify(prevYears) !== JSON.stringify(years)) {
26688
- // return years;
26689
- // }
26690
- // return prevYears;
26691
- // });
26692
27088
  }, [data, uploadedFileName]);
26693
27089
  function calculateSumEmissionView(obj, conditionType) {
26694
27090
  var sum = 0;
@@ -26704,10 +27100,15 @@ var GHGProjectionsComponent = function (props) {
26704
27100
  }
26705
27101
  return sum;
26706
27102
  }
26707
- var onValuesChange = function (changedValues2, allValues) {
26708
- // Track the changed values
26709
- console.log('=================onValuesChange changedValues, allValues', changedValues2, allValues);
26710
- setChangedValues(function (prevChangedValues) { return (__assign(__assign({}, prevChangedValues), changedValues2)); });
27103
+ var onValuesChange = function (changedValues, allValues) {
27104
+ var initialValues = null;
27105
+ if (isPendingFinalization) {
27106
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27107
+ initialValues = savedData[0];
27108
+ }
27109
+ var currentValues = form.getFieldsValue(true);
27110
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
27111
+ setIsFormChanged(isChanged);
26711
27112
  };
26712
27113
  var getBase64 = function (file) {
26713
27114
  return new Promise(function (resolve, reject) {
@@ -26717,7 +27118,7 @@ var GHGProjectionsComponent = function (props) {
26717
27118
  reader.onerror = function (error) { return reject(error); };
26718
27119
  });
26719
27120
  };
26720
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
27121
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
26721
27122
  var requestBody, savedEmission, emissionImportBase64;
26722
27123
  var _a;
26723
27124
  return __generator(this, function (_b) {
@@ -26902,7 +27303,9 @@ var GHGProjectionsComponent = function (props) {
26902
27303
  conditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_conditionalNdc,
26903
27304
  unconditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_unconditionalNdc,
26904
27305
  },
26905
- state: 'SAVED',
27306
+ state: status,
27307
+ remarks: remarks,
27308
+ version: formDataVersion,
26906
27309
  };
26907
27310
  requestBody = savedEmission;
26908
27311
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -26917,6 +27320,30 @@ var GHGProjectionsComponent = function (props) {
26917
27320
  }
26918
27321
  });
26919
27322
  }); };
27323
+ var clearForm = function () {
27324
+ form.resetFields();
27325
+ setFuelCombustionActivitiesBau(0);
27326
+ setFuelCombustionActivitiesConditionalNdc(0);
27327
+ setFuelCombustionActivitiesUnconditionalNdc(0);
27328
+ setFugitiveEmissionsFromFuelsBau(0);
27329
+ setFugitiveEmissionsFromFuelsConditionalNdc(0);
27330
+ setFugitiveEmissionsFromFuelsUnconditionalNdc(0);
27331
+ setCarbonDioxideTransportStorageBau(0);
27332
+ setCarbonDioxideTransportStorageConditionalNdc(0);
27333
+ setCarbonDioxideTransportStorageUnconditionalNdc(0);
27334
+ setIndustrialProcessesProductUseBau(0);
27335
+ setIndustrialProcessesProductUseConditionalNdc(0);
27336
+ setIndustrialProcessesProductUseUnconditionalNdc(0);
27337
+ setAgricultureForestryOtherLandUseBau(0);
27338
+ setAgricultureForestryOtherLandUseConditionalNdc(0);
27339
+ setAgricultureForestryOtherLandUseUnconditionalNdc(0);
27340
+ setWasteBau(0);
27341
+ setWasteConditionalNdc(0);
27342
+ setWasteUnconditionalNdc(0);
27343
+ setOtherBau(0);
27344
+ setOtherConditionalNdc(0);
27345
+ setOtherUnconditionalNdc(0);
27346
+ };
26920
27347
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
26921
27348
  return __generator(this, function (_a) {
26922
27349
  switch (_a.label) {
@@ -26930,29 +27357,14 @@ var GHGProjectionsComponent = function (props) {
26930
27357
  setIsSavedFormDataSet(false);
26931
27358
  clearUploadDoc();
26932
27359
  if (!isPendingFinalization) {
26933
- form.resetFields();
26934
- setFuelCombustionActivitiesBau(0);
26935
- setFuelCombustionActivitiesConditionalNdc(0);
26936
- setFuelCombustionActivitiesUnconditionalNdc(0);
26937
- setFugitiveEmissionsFromFuelsBau(0);
26938
- setFugitiveEmissionsFromFuelsConditionalNdc(0);
26939
- setFugitiveEmissionsFromFuelsUnconditionalNdc(0);
26940
- setCarbonDioxideTransportStorageBau(0);
26941
- setCarbonDioxideTransportStorageConditionalNdc(0);
26942
- setCarbonDioxideTransportStorageUnconditionalNdc(0);
26943
- setIndustrialProcessesProductUseBau(0);
26944
- setIndustrialProcessesProductUseConditionalNdc(0);
26945
- setIndustrialProcessesProductUseUnconditionalNdc(0);
26946
- setAgricultureForestryOtherLandUseBau(0);
26947
- setAgricultureForestryOtherLandUseConditionalNdc(0);
26948
- setAgricultureForestryOtherLandUseUnconditionalNdc(0);
26949
- setWasteBau(0);
26950
- setWasteConditionalNdc(0);
26951
- setWasteUnconditionalNdc(0);
26952
- setOtherBau(0);
26953
- setOtherConditionalNdc(0);
26954
- setOtherUnconditionalNdc(0);
27360
+ clearForm();
26955
27361
  }
27362
+ antd.message.open({
27363
+ type: 'success',
27364
+ content: t('ghgInventory:formCancelledSuccess'),
27365
+ duration: 4,
27366
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27367
+ });
26956
27368
  return [2 /*return*/];
26957
27369
  }
26958
27370
  });
@@ -26960,7 +27372,7 @@ var GHGProjectionsComponent = function (props) {
26960
27372
  var onResetFormCanceled = function () {
26961
27373
  setOpenResetFormModal(false);
26962
27374
  };
26963
- var onResetFormModel = function () {
27375
+ var onOpenResetFormModel = function () {
26964
27376
  setActionInfo({
26965
27377
  action: "".concat(t('ghgInventory:proceed')),
26966
27378
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -26970,6 +27382,42 @@ var GHGProjectionsComponent = function (props) {
26970
27382
  setErrorMsg('');
26971
27383
  setOpenResetFormModal(true);
26972
27384
  };
27385
+ var onSaveFormCanceled = function () {
27386
+ setOpenSaveFormModal(false);
27387
+ };
27388
+ var onOpenSaveFormModel = function () {
27389
+ if (!isFormChanged) {
27390
+ antd.message.open({
27391
+ type: 'error',
27392
+ content: t('ghgInventory:formNotChanged'),
27393
+ duration: 4,
27394
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27395
+ });
27396
+ }
27397
+ else {
27398
+ setActionInfo({
27399
+ action: "".concat(t("ghgInventory:submit")),
27400
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
27401
+ type: "primary",
27402
+ icon: React.createElement(icons.CheckCircleOutlined, null),
27403
+ });
27404
+ setErrorMsg('');
27405
+ setOpenSaveFormModal(true);
27406
+ }
27407
+ };
27408
+ var onFinalizeFormCanceled = function () {
27409
+ setOpenFinalizeFormModal(false);
27410
+ };
27411
+ var onOpenFinalizeFormModel = function () {
27412
+ setActionInfo({
27413
+ action: "".concat(t("ghgInventory:finalize")),
27414
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
27415
+ type: "primary",
27416
+ icon: React.createElement(Icon.ClipboardCheck, null),
27417
+ });
27418
+ setErrorMsg('');
27419
+ setOpenFinalizeFormModal(true);
27420
+ };
26973
27421
  var getProjectionData = function () { return __awaiter(void 0, void 0, void 0, function () {
26974
27422
  var response, error_1;
26975
27423
  return __generator(this, function (_a) {
@@ -26998,6 +27446,7 @@ var GHGProjectionsComponent = function (props) {
26998
27446
  });
26999
27447
  return [3 /*break*/, 5];
27000
27448
  case 4:
27449
+ setIsFormChanged(false);
27001
27450
  setLoading(false);
27002
27451
  return [7 /*endfinally*/];
27003
27452
  case 5: return [2 /*return*/];
@@ -27017,47 +27466,70 @@ var GHGProjectionsComponent = function (props) {
27017
27466
  }); };
27018
27467
  fetchData();
27019
27468
  }, []);
27020
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
27021
- var fields, payload, response, error_2;
27469
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
27470
+ var fields, payload, response, messageContent, error_2;
27022
27471
  return __generator(this, function (_a) {
27023
27472
  switch (_a.label) {
27024
27473
  case 0:
27025
27474
  fields = form.getFieldsValue(true);
27026
- return [4 /*yield*/, createSaveRequestPayload(fields)];
27475
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
27027
27476
  case 1:
27028
27477
  payload = _a.sent();
27029
27478
  setLoading(true);
27030
27479
  _a.label = 2;
27031
27480
  case 2:
27032
- _a.trys.push([2, 4, 5, 6]);
27481
+ _a.trys.push([2, 6, 9, 10]);
27033
27482
  return [4 /*yield*/, post('national/projections', payload)];
27034
27483
  case 3:
27035
27484
  response = _a.sent();
27036
27485
  console.log('Projections creation -> ', response);
27037
- if ((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS') {
27038
- antd.message.open({
27039
- type: 'success',
27040
- content: (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created ? t('ghgInventory:projectionCreationSuccess') : t('ghgInventory:projectionUpdateSuccess'),
27041
- duration: 4,
27042
- style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27043
- });
27486
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
27487
+ setOpenSaveFormModal(false);
27488
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created ?
27489
+ t('ghgInventory:projectionCreationSuccess')
27490
+ : t('ghgInventory:projectionUpdateSuccess');
27491
+ if (status === GHGRecordState.FINALIZED) {
27492
+ clearUploadDoc();
27493
+ clearForm();
27494
+ messageContent = t('ghgInventory:projectionFinalizedSuccess');
27044
27495
  }
27045
- return [3 /*break*/, 6];
27496
+ setOpenFinalizeFormModal(false);
27497
+ antd.message.open({
27498
+ type: 'success',
27499
+ content: messageContent,
27500
+ duration: 4,
27501
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27502
+ });
27503
+ clearUploadDoc();
27504
+ return [4 /*yield*/, getProjectionData()];
27046
27505
  case 4:
27506
+ _a.sent();
27507
+ _a.label = 5;
27508
+ case 5: return [3 /*break*/, 10];
27509
+ case 6:
27047
27510
  error_2 = _a.sent();
27048
27511
  console.log('Error in projection creation - ', error_2);
27512
+ setOpenSaveFormModal(false);
27513
+ setOpenFinalizeFormModal(false);
27049
27514
  antd.message.open({
27050
27515
  type: 'error',
27051
27516
  content: error_2 === null || error_2 === void 0 ? void 0 : error_2.message,
27052
27517
  duration: 4,
27053
27518
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27054
27519
  });
27055
- return [3 /*break*/, 6];
27056
- case 5:
27057
- getProjectionData();
27520
+ if (!(error_2.statusCode == axios.HttpStatusCode.Conflict)) return [3 /*break*/, 8];
27521
+ return [4 /*yield*/, getProjectionData()];
27522
+ case 7:
27523
+ _a.sent();
27524
+ clearUploadDoc();
27525
+ _a.label = 8;
27526
+ case 8: return [3 /*break*/, 10];
27527
+ case 9:
27528
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
27529
+ setIsFormChanged(false);
27058
27530
  setLoading(false);
27059
27531
  return [7 /*endfinally*/];
27060
- case 6: return [2 /*return*/];
27532
+ case 10: return [2 /*return*/];
27061
27533
  }
27062
27534
  });
27063
27535
  }); };
@@ -27104,13 +27576,15 @@ var GHGProjectionsComponent = function (props) {
27104
27576
  setIsSavedFormDataSet(true);
27105
27577
  };
27106
27578
  React.useEffect(function () {
27107
- // if (isPendingFinalization) {
27579
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27108
27580
  if (!isSavedFormDataSet) {
27109
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27110
27581
  if (savedData && savedData.length > 0) {
27111
27582
  setFormValues(savedData[0]);
27112
27583
  }
27113
27584
  }
27585
+ if (savedData && savedData.length > 0) {
27586
+ setFormDataVersion(savedData[0].version);
27587
+ }
27114
27588
  var years = data
27115
27589
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
27116
27590
  .map(function (item) { return parseInt(item.year); });
@@ -27505,6 +27979,66 @@ var GHGProjectionsComponent = function (props) {
27505
27979
  React.createElement(antd.Col, { xl: 7 },
27506
27980
  React.createElement(antd.InputNumber, { value: unconditionalNdc, disabled: true }))))));
27507
27981
  };
27982
+ var objectToCSV = function (dataToDownload) {
27983
+ var flattenObject = function (obj, prefix) {
27984
+ if (prefix === void 0) { prefix = ''; }
27985
+ return Object.keys(obj).reduce(function (acc, key) {
27986
+ var pre = prefix.length ? "".concat(prefix, "_") : '';
27987
+ if (typeof obj[key] === 'object' && obj[key] !== null) {
27988
+ Object.assign(acc, flattenObject(obj[key], pre + key));
27989
+ }
27990
+ else {
27991
+ acc[pre + key] = obj[key];
27992
+ }
27993
+ return acc;
27994
+ }, {});
27995
+ };
27996
+ var headers = [];
27997
+ var contentKeys = [];
27998
+ var flattenedObj = flattenObject(dataToDownload);
27999
+ var objKeys = Object.keys(flattenedObj);
28000
+ objKeys.map(function (key) {
28001
+ if (projectionsCsvFieldMap[key]) {
28002
+ headers.push(projectionsCsvFieldMap[key]);
28003
+ contentKeys.push(key);
28004
+ }
28005
+ });
28006
+ var flattenedData = [dataToDownload].map(function (item) {
28007
+ var flattened = flattenObject(item);
28008
+ return contentKeys.map(function (header) { return flattened[header]; });
28009
+ });
28010
+ var csvContent = headers.map(function (header) { return "\"".concat(header, "\""); }).join(',') +
28011
+ '\n' +
28012
+ flattenedData.map(function (row) { return row.map(function (value) { return (value === undefined || value === null) ? "" : value; }).join(','); }).join('\n');
28013
+ return csvContent;
28014
+ };
28015
+ var downloadCSV = function (dataToDownload) {
28016
+ var csvContent = objectToCSV(dataToDownload);
28017
+ var encodedUri = encodeURI("data:text/csv;charset=utf-8,".concat(csvContent));
28018
+ var link = document.createElement('a');
28019
+ link.setAttribute('href', encodedUri);
28020
+ link.setAttribute('download', "GHG-Reporting Projections_".concat(dataToDownload.year, "_V").concat(dataToDownload.version, ".csv"));
28021
+ document.body.appendChild(link);
28022
+ link.click();
28023
+ };
28024
+ var isRowDataEmpty = function (projectionDataObj) {
28025
+ if (projectionDataObj == undefined || projectionDataObj == null) {
28026
+ return true;
28027
+ }
28028
+ var bau = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.bau;
28029
+ var conditionalNdc = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.conditionalNdc;
28030
+ var unconditionalNdc = projectionDataObj === null || projectionDataObj === void 0 ? void 0 : projectionDataObj.unconditionalNdc;
28031
+ if (!bau && !conditionalNdc && !unconditionalNdc) {
28032
+ return true;
28033
+ }
28034
+ return false;
28035
+ };
28036
+ var isSectionDataEmpty = function (sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc) {
28037
+ if (!sectionTotalBau && !sectionTotalConditionalNdc && !sectionTotalUnconditionalNdc) {
28038
+ return true;
28039
+ }
28040
+ return false;
28041
+ };
27508
28042
  return (React.createElement("div", null,
27509
28043
  React.createElement("div", { className: "content-container projection-tab-container" },
27510
28044
  React.createElement("div", { className: "projection-title-bar" },
@@ -27516,7 +28050,7 @@ var GHGProjectionsComponent = function (props) {
27516
28050
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT ||
27517
28051
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.MINISTRY) && (React.createElement(antd.Tabs.TabPane, { key: "Add New", tab: t("ghgInventory:addNew") },
27518
28052
  React.createElement("div", null,
27519
- React.createElement(antd.Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-projection", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onSubmitForm },
28053
+ React.createElement(antd.Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-projection", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onOpenSaveFormModel },
27520
28054
  React.createElement(antd.Row, null,
27521
28055
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
27522
28056
  React.createElement("div", null,
@@ -27662,10 +28196,13 @@ var GHGProjectionsComponent = function (props) {
27662
28196
  React.createElement(antd.Form.Item, { name: "totalCo2WithLand_unconditionalNdc" },
27663
28197
  React.createElement(antd.InputNumber, null)))))),
27664
28198
  React.createElement("div", { className: "steps-actions" },
27665
- React.createElement(antd.Button, { type: "primary", htmlType: "submit", loading: loading }, "Submit"),
27666
- React.createElement(antd.Button, { className: "back-btn", onClick: onResetFormModel, loading: loading }, "Cancel")))))),
28199
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT &&
28200
+ (React.createElement(antd.Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
28201
+ React.createElement(antd.Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
28202
+ React.createElement(antd.Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
27667
28203
  data.map(function (tabData) {
27668
- return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
28204
+ var _a, _b, _c, _d, _e, _f;
28205
+ return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { className: 'view-data-panel', key: tabData.id.toString(), tab: React.createElement("span", null,
27669
28206
  tabData.year,
27670
28207
  tabData.state === 'FINALIZED' && React.createElement(icons.LockFilled, { style: { marginLeft: 5 } })) },
27671
28208
  React.createElement("div", null,
@@ -27681,39 +28218,10 @@ var GHGProjectionsComponent = function (props) {
27681
28218
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
27682
28219
  React.createElement(antd.Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
27683
28220
  React.createElement(antd.Row, null,
27684
- React.createElement(antd.Col, { xl: 5, md: 5, className: "add-new-upload-file-inner-col" },
27685
- React.createElement(antd.Form.Item, null,
27686
- React.createElement(antd.Upload, { accept: ".xlsx", customRequest: function (_a) {
27687
- _a.onSuccess; _a.onError; _a.file;
27688
- var reader = new FileReader();
27689
- reader.onload = function (e) {
27690
- if (e && e.target) {
27691
- // Check if e and e.target are defined
27692
- var xldata = e.target.result;
27693
- if (xldata) {
27694
- try {
27695
- var workbook = XLSX__namespace.read(xldata, { type: 'array' });
27696
- var sheetName = workbook.SheetNames[0];
27697
- var sheet = workbook.Sheets[sheetName];
27698
- var excelData = XLSX__namespace.utils.sheet_to_json(sheet);
27699
- // Use excelData as needed, e.g., display it in a table.
27700
- console.log(excelData);
27701
- // You can perform any further processing with the data here.
27702
- // For example, you can call a function to handle the uploaded data.
27703
- // handleFileUpload(excelData);
27704
- // onSuccess('ok', file);
27705
- }
27706
- catch (error) {
27707
- // onError(error, 'error', file);
27708
- }
27709
- }
27710
- }
27711
- };
27712
- // reader.readAsArrayBuffer(file);
27713
- } },
27714
- React.createElement(antd.Button, { icon: React.createElement(icons.UploadOutlined, null) }, t("ghgInventory:upload"))))),
27715
- React.createElement(antd.Col, { xl: 16, md: 16, className: "add-new-upload-file-name-input" },
27716
- React.createElement(antd.Input, { value: uploadedFileName, readOnly: true }))))),
28221
+ React.createElement(antd.Col, { xl: 15, md: 15, className: "view-download-file-name-input" },
28222
+ React.createElement(antd.Input, { value: "GHG-Reporting Emission_".concat(tabData.year, "_V").concat(tabData.version, ".csv"), disabled: true })),
28223
+ React.createElement(antd.Col, { xl: 5, md: 5, className: "view-download-file-inner-col" },
28224
+ React.createElement(antd.Button, { icon: React.createElement(icons.DownloadOutlined, null), onClick: function () { downloadCSV(tabData); } }, t("ghgInventory:download")))))),
27717
28225
  React.createElement(antd.Row, { gutter: 16 },
27718
28226
  React.createElement(antd.Col, { span: 9, offset: 12 },
27719
28227
  React.createElement(antd.Row, { gutter: 16, className: "table-heading-row" },
@@ -27736,32 +28244,72 @@ var GHGProjectionsComponent = function (props) {
27736
28244
  return isActive ? React.createElement(icons.MinusCircleOutlined, null) : React.createElement(icons.PlusCircleOutlined, null);
27737
28245
  } }, Object.entries(formFields).map(function (_a) {
27738
28246
  var panelHeading = _a[0], panelContent = _a[1];
27739
- return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
27740
- ? panelContent.map(function (item, index) {
27741
- for (var key in tabData) {
27742
- if (key === panelHeading) {
27743
- var emissionsObject = tabData[key];
27744
- var emissionsData = emissionsObject[item];
27745
- 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);
27746
- }
27747
- }
27748
- })
27749
- : Object.entries(panelContent).map(function (_a) {
27750
- var subPanelHeading = _a[0], subPanelContent = _a[1];
27751
- return (React.createElement("div", { className: "sub-panel" },
27752
- React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
27753
- subPanelContent.map(function (item, index) {
27754
- for (var key in tabData.energyEmissions[subPanelHeading]) {
27755
- if (key === item) {
27756
- var emissionsObject = tabData.energyEmissions[subPanelHeading];
27757
- var emissionsData = emissionsObject[item];
28247
+ var projectionsObject = tabData[panelHeading];
28248
+ var sectionTotalBau = calculateSumEmissionView(projectionsObject, 'bau');
28249
+ var sectionTotalConditionalNdc = calculateSumEmissionView(projectionsObject, 'conditionalNdc');
28250
+ var sectionTotalUnconditionalNdc = calculateSumEmissionView(projectionsObject, 'unconditionalNdc');
28251
+ if (!isSectionDataEmpty(sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc)) {
28252
+ return (React.createElement(Panel, { header: renderPanelHeaderView(panelHeading, tabData), key: panelHeading }, Array.isArray(panelContent)
28253
+ ? panelContent.map(function (item, index) {
28254
+ for (var key in tabData) {
28255
+ if (key === panelHeading) {
28256
+ var emissionsObject = tabData[key];
28257
+ var emissionsData = emissionsObject[item];
28258
+ if (!isRowDataEmpty(emissionsData)) {
27758
28259
  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);
27759
28260
  }
27760
28261
  }
27761
- })));
27762
- })));
27763
- })))));
28262
+ }
28263
+ })
28264
+ : Object.entries(panelContent).map(function (_a) {
28265
+ var subPanelHeading = _a[0], subPanelContent = _a[1];
28266
+ var projectionsObject = tabData.energyEmissions[subPanelHeading];
28267
+ var sectionTotalBau = calculateSumEmissionView(projectionsObject, 'bau');
28268
+ var sectionTotalConditionalNdc = calculateSumEmissionView(projectionsObject, 'conditionalNdc');
28269
+ var sectionTotalUnconditionalNdc = calculateSumEmissionView(projectionsObject, 'unconditionalNdc');
28270
+ if (!isSectionDataEmpty(sectionTotalBau, sectionTotalConditionalNdc, sectionTotalUnconditionalNdc)) {
28271
+ return (React.createElement("div", { className: "sub-panel" },
28272
+ React.createElement("div", { className: "sub-panel-heading" }, renderPanelHeaderView(subPanelHeading, tabData.energyEmissions)),
28273
+ subPanelContent.map(function (item, index) {
28274
+ for (var key in tabData.energyEmissions[subPanelHeading]) {
28275
+ if (key === item) {
28276
+ var emissionsObject = tabData.energyEmissions[subPanelHeading];
28277
+ var emissionsData = emissionsObject[item];
28278
+ if (!isRowDataEmpty(emissionsData)) {
28279
+ 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);
28280
+ }
28281
+ }
28282
+ }
28283
+ })));
28284
+ }
28285
+ })));
28286
+ }
28287
+ })),
28288
+ (!isRowDataEmpty(tabData.totalCo2WithoutLand)) && (React.createElement(antd.Row, { gutter: 16, key: 'totalCo2WithoutLand', className: "total-co2-without-land-row" },
28289
+ React.createElement(antd.Col, { xl: 12, md: 12, className: "total-co2-without-land-title" },
28290
+ React.createElement("span", null, t("ghgInventory:totalCo2WithoutLand"))),
28291
+ React.createElement(antd.Col, { xl: 9, md: 9 },
28292
+ React.createElement(antd.Row, { gutter: 16, className: "panel-content-input-box-row" },
28293
+ React.createElement(antd.Col, { xl: 7 },
28294
+ React.createElement(antd.InputNumber, { value: (_a = tabData.totalCo2WithoutLand) === null || _a === void 0 ? void 0 : _a.bau, disabled: true })),
28295
+ React.createElement(antd.Col, { xl: 7 },
28296
+ React.createElement(antd.InputNumber, { value: (_b = tabData.totalCo2WithoutLand) === null || _b === void 0 ? void 0 : _b.conditionalNdc, disabled: true })),
28297
+ React.createElement(antd.Col, { xl: 7 },
28298
+ React.createElement(antd.InputNumber, { value: (_c = tabData.totalCo2WithoutLand) === null || _c === void 0 ? void 0 : _c.unconditionalNdc, disabled: true })))))),
28299
+ (!isRowDataEmpty(tabData.totalCo2WithLand)) && (React.createElement(antd.Row, { gutter: 16, key: 'totalCo2WithLand', className: "total-co2-with-land-row" },
28300
+ React.createElement(antd.Col, { xl: 12, md: 12, className: "total-co2-with-land-title" },
28301
+ React.createElement("span", null, t("ghgInventory:totalCo2WithLand"))),
28302
+ React.createElement(antd.Col, { xl: 9, md: 9 },
28303
+ React.createElement(antd.Row, { gutter: 16, className: "panel-content-input-box-row" },
28304
+ React.createElement(antd.Col, { xl: 7 },
28305
+ React.createElement(antd.InputNumber, { value: (_d = tabData.totalCo2WithLand) === null || _d === void 0 ? void 0 : _d.bau, disabled: true })),
28306
+ React.createElement(antd.Col, { xl: 7 },
28307
+ React.createElement(antd.InputNumber, { value: (_e = tabData.totalCo2WithLand) === null || _e === void 0 ? void 0 : _e.conditionalNdc, disabled: true })),
28308
+ React.createElement(antd.Col, { xl: 7 },
28309
+ React.createElement(antd.InputNumber, { value: (_f = tabData.totalCo2WithLand) === null || _f === void 0 ? void 0 : _f.unconditionalNdc, disabled: true })))))))));
27764
28310
  })))),
28311
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
28312
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
27765
28313
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
27766
28314
  };
27767
28315