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

Sign up to get free protection for your applications and to get access to all the features.
package/dist/esm/index.js CHANGED
@@ -7,7 +7,7 @@ import PhoneInput, { formatPhoneNumberIntl, formatPhoneNumber } from 'react-phon
7
7
  import validator from 'validator';
8
8
  import { plainToClass } from 'class-transformer';
9
9
  import * as Icon from 'react-bootstrap-icons';
10
- import { InfoCircle, Lock, PersonDash, PlayCircle, PauseCircle, CircleFill, Clipboard2Pulse, HandThumbsUp, XCircle, ClockHistory, BoxArrowInRight, ShieldX, BoxArrowRight, ShieldCheck, Gem, ShieldExclamation } from 'react-bootstrap-icons';
10
+ import { InfoCircle, Lock, PersonDash, PlayCircle, PauseCircle, CircleFill, Clipboard2Pulse, HandThumbsUp, XCircle, ClockHistory, BoxArrowInRight, ShieldX, BoxArrowRight, ShieldCheck, Gem, ShieldExclamation, ClipboardCheck } from 'react-bootstrap-icons';
11
11
  import 'react-phone-number-input/style.css';
12
12
  import mapboxgl from 'mapbox-gl';
13
13
  import 'mapbox-gl/dist/mapbox-gl.css';
@@ -5265,7 +5265,7 @@ var CompanyRoleIcon = function (props) {
5265
5265
  role === 'ProgrammeDeveloper' ? React.createElement("div", null, 'Developer') : React.createElement("div", null, role)));
5266
5266
  };
5267
5267
 
5268
- var TextArea$1 = Input.TextArea;
5268
+ var TextArea$2 = Input.TextArea;
5269
5269
  var UserActionConfirmationModel = function (props) {
5270
5270
  var t = props.t, actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading;
5271
5271
  var _a = useState(""), comment = _a[0], setComment = _a[1];
@@ -5280,7 +5280,7 @@ var UserActionConfirmationModel = function (props) {
5280
5280
  onActionConfirmed(comment);
5281
5281
  } },
5282
5282
  React.createElement(Form.Item, { className: "mg-bottom-0", label: t("userProfile:remarks"), name: "remarks", required: actionInfo.type === "danger" },
5283
- React.createElement(TextArea$1, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
5283
+ React.createElement(TextArea$2, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
5284
5284
  errorMsg ? (React.createElement(Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
5285
5285
  React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
5286
5286
  React.createElement(Button, { htmlType: "button", onClick: function () {
@@ -24186,7 +24186,7 @@ var ProgrammeTransferForm = function (props) {
24186
24186
  React.createElement(Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading }, actionBtnText)))));
24187
24187
  };
24188
24188
 
24189
- var TextArea = Input.TextArea;
24189
+ var TextArea$1 = Input.TextArea;
24190
24190
  var RejectDocumentationConfirmationModel = function (props) {
24191
24191
  var actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading, translator = props.translator;
24192
24192
  var t = translator.t;
@@ -24207,7 +24207,7 @@ var RejectDocumentationConfirmationModel = function (props) {
24207
24207
  message: "".concat(t("programme:remarks")) + " " + "".concat(t("common:isRequired")),
24208
24208
  },
24209
24209
  ] },
24210
- React.createElement(TextArea, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
24210
+ React.createElement(TextArea$1, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
24211
24211
  errorMsg ? (React.createElement(Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
24212
24212
  React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
24213
24213
  React.createElement(Button, { htmlType: "button", onClick: function () {
@@ -24996,7 +24996,7 @@ var TimelineBody = function (props) {
24996
24996
  React.createElement("div", { className: "remark-body" }, remark)))));
24997
24997
  };
24998
24998
 
24999
- var css_248z$1 = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.emission-tab-container .add-emission {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .emission-tab-container .add-emission .add-new-year-picker-col {\n padding-left: 5%; }\n .emission-tab-container .add-emission .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .emission-tab-container .add-emission .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .emission-tab-container .add-emission .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .emission-tab-container .add-emission .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .emission-tab-container .add-emission .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .emission-tab-container .add-emission .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 18px;\n font-weight: 600;\n color: #28282899; }\n .emission-tab-container .add-emission .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .emission-tab-container .add-emission .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .emission-tab-container .add-emission .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon {\n margin-top: 5px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .emission-tab-container .add-emission .ant-collapse {\n margin-left: 10px; }\n .emission-tab-container .add-emission .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .emission-tab-container .add-emission .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-content-input-box-row {\n margin-top: 14px; }\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 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";
24999
+ var css_248z$1 = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.emission-tab-container .add-emission {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .emission-tab-container .add-emission .add-new-year-picker-col {\n padding-left: 5%; }\n .emission-tab-container .add-emission .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .emission-tab-container .add-emission .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .emission-tab-container .add-emission .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .emission-tab-container .add-emission .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .emission-tab-container .add-emission .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .emission-tab-container .add-emission .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 18px;\n font-weight: 600;\n color: #28282899; }\n .emission-tab-container .add-emission .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .emission-tab-container .add-emission .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .emission-tab-container .add-emission .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .emission-tab-container .add-emission .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon {\n margin-top: 5px; }\n .emission-tab-container .add-emission .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .emission-tab-container .add-emission .ant-collapse {\n margin-left: 10px; }\n .emission-tab-container .add-emission .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .emission-tab-container .add-emission .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .emission-tab-container .add-emission .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .panel-content-input-box-row {\n margin-top: 14px; }\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 33%; }\n .emission-tab-container .add-emission .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .emission-tab-container .add-emission .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .emission-tab-container .add-emission .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .emission-tab-container .add-emission .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .emission-tab-container .add-emission .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .emission-tab-container .add-emission .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .submit-btn {\n margin-right: 1rem; }\n .emission-tab-container .add-emission .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .emission-tab-container .add-emission .panel-content-input-box-row .ant-input-number {\n margin-left: 25%; } }\n";
25000
25000
  styleInject(css_248z$1);
25001
25001
 
25002
25002
  var EmissionTypes = { co2: 'CO2', ch4: 'CH4', n2o: 'N2O', co2eq: 'CO2-eq' };
@@ -25089,7 +25089,37 @@ var DiscardChangesConfirmationModel = function (props) {
25089
25089
  React.createElement(Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading }, actionInfo.action)))));
25090
25090
  };
25091
25091
 
25092
- // import React from 'react';
25092
+ var GHGRecordState;
25093
+ (function (GHGRecordState) {
25094
+ GHGRecordState["SAVED"] = "SAVED";
25095
+ GHGRecordState["FINALIZED"] = "FINALIZED";
25096
+ })(GHGRecordState || (GHGRecordState = {}));
25097
+
25098
+ var TextArea = Input.TextArea;
25099
+ var GHGUserActionConfirmationModel = function (props) {
25100
+ var t = props.t, actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading;
25101
+ var _a = useState(""), comment = _a[0], setComment = _a[1];
25102
+ useEffect(function () {
25103
+ setComment("");
25104
+ }, [openModal]);
25105
+ return (React.createElement(Modal, { title: React.createElement("div", { className: "popup-header" },
25106
+ React.createElement("div", { className: "icon" }, actionInfo.icon),
25107
+ 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 },
25108
+ React.createElement("p", { style: { whiteSpace: "pre-line" } }, actionInfo.text),
25109
+ React.createElement(Form, { layout: "vertical", onFinish: function () {
25110
+ var status = actionInfo.action === "submit" ? GHGRecordState.SAVED : GHGRecordState.FINALIZED;
25111
+ onActionConfirmed(comment, status);
25112
+ } },
25113
+ React.createElement(Form.Item, { className: "mg-bottom-0", label: t("userProfile:remarks"), name: "remarks", required: actionInfo.type === "danger" },
25114
+ React.createElement(TextArea, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
25115
+ errorMsg ? (React.createElement(Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
25116
+ React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
25117
+ React.createElement(Button, { htmlType: "button", onClick: function () {
25118
+ onActionCanceled();
25119
+ } }, t("userProfile:cancel")),
25120
+ React.createElement(Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading, disabled: actionInfo.type === "danger" && comment === "" }, actionInfo.action)))));
25121
+ };
25122
+
25093
25123
  var GHGEmissionsComponent = function (props) {
25094
25124
  var t = props.t, useUserContext = props.useUserContext, useConnection = props.useConnection;
25095
25125
  var userInfoState = useUserContext().userInfoState;
@@ -25100,7 +25130,7 @@ var GHGEmissionsComponent = function (props) {
25100
25130
  var _e = useState(null); _e[0]; var setSelectedYear = _e[1];
25101
25131
  var _f = useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
25102
25132
  var _g = useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
25103
- var _h = useState(); _h[0]; var setChangedValues = _h[1];
25133
+ var _h = useState(); _h[0]; _h[1];
25104
25134
  var _j = useState(0), totalNationalCo2 = _j[0], setTotalNationalCo2 = _j[1];
25105
25135
  var _k = useState(0), totalNationalCh4 = _k[0], setTotalNationalCh4 = _k[1];
25106
25136
  var _l = useState(0), totalNationalN2o = _l[0], setTotalNationalN2o = _l[1];
@@ -25138,9 +25168,13 @@ var GHGEmissionsComponent = function (props) {
25138
25168
  var _18 = useState(0), otherN2o = _18[0], setOtherN2o = _18[1];
25139
25169
  var _19 = useState(0), otherCo2Eq = _19[0], setOtherCo2Eq = _19[1];
25140
25170
  var _20 = useState(false), isSavedFormDataSet = _20[0], setIsSavedFormDataSet = _20[1];
25141
- var _21 = useState(false), openResetFormModal = _21[0], setOpenResetFormModal = _21[1];
25142
- var _22 = useState(''), errorMsg = _22[0], setErrorMsg = _22[1];
25143
- var _23 = useState({}), actionInfo = _23[0], setActionInfo = _23[1];
25171
+ var _21 = useState(1), formDataVersion = _21[0], setFormDataVersion = _21[1];
25172
+ var _22 = useState(false), isFormChanged = _22[0], setIsFormChanged = _22[1];
25173
+ var _23 = useState(false), openSaveFormModal = _23[0], setOpenSaveFormModal = _23[1];
25174
+ var _24 = useState(false), openFinalizeFormModal = _24[0], setOpenFinalizeFormModal = _24[1];
25175
+ var _25 = useState(false), openResetFormModal = _25[0], setOpenResetFormModal = _25[1];
25176
+ var _26 = useState(''), errorMsg = _26[0], setErrorMsg = _26[1];
25177
+ var _27 = useState({}), actionInfo = _27[0], setActionInfo = _27[1];
25144
25178
  var Panel = Collapse.Panel;
25145
25179
  var form = Form.useForm()[0];
25146
25180
  var createSetFieldObject = function (obj, objName) {
@@ -25237,20 +25271,8 @@ var GHGEmissionsComponent = function (props) {
25237
25271
  setFormValues(upData);
25238
25272
  };
25239
25273
  useEffect(function () {
25240
- console.log('++++++++++++++data', data);
25241
25274
  var hasSaveState = data.some(function (item) { return item.state === 'SAVED'; });
25242
- console.log('++++++++++++++hasSaveState', hasSaveState);
25243
- // const years = data.map((item: any) => !(item.state === 'SAVED') && item.year);
25244
- // console.log('++++++++++++++data, years', data, years);
25245
- console.log(uploadedFileName);
25246
25275
  setIsPendingFinalization(hasSaveState);
25247
- // Update 'disabledYears' only if 'years' array has changed
25248
- // setDisabledYears((prevYears) => {
25249
- // if (JSON.stringify(prevYears) !== JSON.stringify(years)) {
25250
- // return years;
25251
- // }
25252
- // return prevYears;
25253
- // });
25254
25276
  }, [data, uploadedFileName]);
25255
25277
  var handleYearChange = function (date, dateString) {
25256
25278
  setSelectedYear(dateString);
@@ -25269,9 +25291,16 @@ var GHGEmissionsComponent = function (props) {
25269
25291
  }
25270
25292
  return sum;
25271
25293
  }
25272
- var onValuesChange = function (changedValues2, allValues) {
25294
+ var onValuesChange = function (changedValues, allValues) {
25273
25295
  // Track the changed values
25274
- setChangedValues(function (prevChangedValues) { return (__assign(__assign({}, prevChangedValues), changedValues2)); });
25296
+ var initialValues = null;
25297
+ if (isPendingFinalization) {
25298
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25299
+ initialValues = savedData[0];
25300
+ }
25301
+ var currentValues = form.getFieldsValue(true);
25302
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
25303
+ setIsFormChanged(isChanged);
25275
25304
  };
25276
25305
  var getBase64 = function (file) {
25277
25306
  return new Promise(function (resolve, reject) {
@@ -25281,7 +25310,7 @@ var GHGEmissionsComponent = function (props) {
25281
25310
  reader.onerror = function (error) { return reject(error); };
25282
25311
  });
25283
25312
  };
25284
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
25313
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25285
25314
  var requestBody, savedEmission, emissionImportBase64;
25286
25315
  var _a;
25287
25316
  return __generator(this, function (_b) {
@@ -25498,7 +25527,9 @@ var GHGEmissionsComponent = function (props) {
25498
25527
  n2o: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_n2o,
25499
25528
  co2eq: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_co2eq,
25500
25529
  },
25501
- state: 'SAVED',
25530
+ state: status,
25531
+ remarks: remarks,
25532
+ version: formDataVersion,
25502
25533
  };
25503
25534
  requestBody = savedEmission;
25504
25535
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -25513,6 +25544,37 @@ var GHGEmissionsComponent = function (props) {
25513
25544
  }
25514
25545
  });
25515
25546
  }); };
25547
+ var clearForm = function () {
25548
+ form.resetFields();
25549
+ setFuelCombustionActivitiesCo2(0);
25550
+ setFuelCombustionActivitiesCh4(0);
25551
+ setFuelCombustionActivitiesN2o(0);
25552
+ setFuelCombustionActivitiesCo2Eq(0);
25553
+ setFugitiveEmissionsFromFuelsCo2(0);
25554
+ setFugitiveEmissionsFromFuelsCh4(0);
25555
+ setFugitiveEmissionsFromFuelsN2o(0);
25556
+ setFugitiveEmissionsFromFuelsCo2Eq(0);
25557
+ setCarbonDioxideTransportStorageCo2(0);
25558
+ setCarbonDioxideTransportStorageCh4(0);
25559
+ setCarbonDioxideTransportStorageN2o(0);
25560
+ setCarbonDioxideTransportStorageCo2Eq(0);
25561
+ setIndustrialProcessesProductUseCo2(0);
25562
+ setIndustrialProcessesProductUseCh4(0);
25563
+ setIndustrialProcessesProductUseN2o(0);
25564
+ setIndustrialProcessesProductUseCo2Eq(0);
25565
+ setAgricultureForestryOtherLandUseCo2(0);
25566
+ setAgricultureForestryOtherLandUseCh4(0);
25567
+ setAgricultureForestryOtherLandUseN2o(0);
25568
+ setAgricultureForestryOtherLandUseCo2Eq(0);
25569
+ setWasteCo2(0);
25570
+ setWasteCh4(0);
25571
+ setWasteN2o(0);
25572
+ setWasteCo2Eq(0);
25573
+ setOtherCo2(0);
25574
+ setOtherCh4(0);
25575
+ setOtherN2o(0);
25576
+ setOtherCo2Eq(0);
25577
+ };
25516
25578
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
25517
25579
  return __generator(this, function (_a) {
25518
25580
  switch (_a.label) {
@@ -25526,36 +25588,14 @@ var GHGEmissionsComponent = function (props) {
25526
25588
  setIsSavedFormDataSet(false);
25527
25589
  clearUploadDoc();
25528
25590
  if (!isPendingFinalization) {
25529
- form.resetFields();
25530
- setFuelCombustionActivitiesCo2(0);
25531
- setFuelCombustionActivitiesCh4(0);
25532
- setFuelCombustionActivitiesN2o(0);
25533
- setFuelCombustionActivitiesCo2Eq(0);
25534
- setFugitiveEmissionsFromFuelsCo2(0);
25535
- setFugitiveEmissionsFromFuelsCh4(0);
25536
- setFugitiveEmissionsFromFuelsN2o(0);
25537
- setFugitiveEmissionsFromFuelsCo2Eq(0);
25538
- setCarbonDioxideTransportStorageCo2(0);
25539
- setCarbonDioxideTransportStorageCh4(0);
25540
- setCarbonDioxideTransportStorageN2o(0);
25541
- setCarbonDioxideTransportStorageCo2Eq(0);
25542
- setIndustrialProcessesProductUseCo2(0);
25543
- setIndustrialProcessesProductUseCh4(0);
25544
- setIndustrialProcessesProductUseN2o(0);
25545
- setIndustrialProcessesProductUseCo2Eq(0);
25546
- setAgricultureForestryOtherLandUseCo2(0);
25547
- setAgricultureForestryOtherLandUseCh4(0);
25548
- setAgricultureForestryOtherLandUseN2o(0);
25549
- setAgricultureForestryOtherLandUseCo2Eq(0);
25550
- setWasteCo2(0);
25551
- setWasteCh4(0);
25552
- setWasteN2o(0);
25553
- setWasteCo2Eq(0);
25554
- setOtherCo2(0);
25555
- setOtherCh4(0);
25556
- setOtherN2o(0);
25557
- setOtherCo2Eq(0);
25591
+ clearForm();
25558
25592
  }
25593
+ message.open({
25594
+ type: 'success',
25595
+ content: t('ghgInventory:formCancelledSuccess'),
25596
+ duration: 4,
25597
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25598
+ });
25559
25599
  return [2 /*return*/];
25560
25600
  }
25561
25601
  });
@@ -25563,7 +25603,7 @@ var GHGEmissionsComponent = function (props) {
25563
25603
  var onResetFormCanceled = function () {
25564
25604
  setOpenResetFormModal(false);
25565
25605
  };
25566
- var onResetFormModel = function () {
25606
+ var onOpenResetFormModel = function () {
25567
25607
  setActionInfo({
25568
25608
  action: "".concat(t('ghgInventory:proceed')),
25569
25609
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -25573,55 +25613,106 @@ var GHGEmissionsComponent = function (props) {
25573
25613
  setErrorMsg('');
25574
25614
  setOpenResetFormModal(true);
25575
25615
  };
25576
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
25577
- var fields, payload, response, error_1;
25616
+ var onSaveFormCanceled = function () {
25617
+ setOpenSaveFormModal(false);
25618
+ };
25619
+ var onOpenSaveFormModel = function () {
25620
+ if (!isFormChanged) {
25621
+ message.open({
25622
+ type: 'error',
25623
+ content: t('ghgInventory:formNotChanged'),
25624
+ duration: 4,
25625
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25626
+ });
25627
+ }
25628
+ else {
25629
+ setActionInfo({
25630
+ action: "".concat(t("ghgInventory:submit")),
25631
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
25632
+ type: "primary",
25633
+ icon: React.createElement(CheckCircleOutlined, null),
25634
+ });
25635
+ setErrorMsg('');
25636
+ setOpenSaveFormModal(true);
25637
+ }
25638
+ };
25639
+ var onFinalizeFormCanceled = function () {
25640
+ setOpenFinalizeFormModal(false);
25641
+ };
25642
+ var onOpenFinalizeFormModel = function () {
25643
+ setActionInfo({
25644
+ action: "".concat(t("ghgInventory:finalize")),
25645
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
25646
+ type: "primary",
25647
+ icon: React.createElement(ClipboardCheck, null),
25648
+ });
25649
+ setErrorMsg('');
25650
+ setOpenFinalizeFormModal(true);
25651
+ };
25652
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25653
+ var fields, payload, response, messageContent, error_1;
25578
25654
  return __generator(this, function (_a) {
25579
25655
  switch (_a.label) {
25580
25656
  case 0:
25581
25657
  fields = form.getFieldsValue(true);
25582
- return [4 /*yield*/, createSaveRequestPayload(fields)];
25658
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
25583
25659
  case 1:
25584
25660
  payload = _a.sent();
25585
25661
  setLoading(true);
25586
25662
  _a.label = 2;
25587
25663
  case 2:
25588
- _a.trys.push([2, 4, 5, 7]);
25664
+ _a.trys.push([2, 6, 9, 10]);
25589
25665
  return [4 /*yield*/, post('national/emissions', payload)];
25590
25666
  case 3:
25591
25667
  response = _a.sent();
25592
25668
  console.log('Emission creation -> ', response);
25593
- if ((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS') {
25594
- message.open({
25595
- type: 'success',
25596
- content:
25597
- // eslint-disable-next-line eqeqeq
25598
- (response === null || response === void 0 ? void 0 : response.status) == HttpStatusCode.Created
25599
- ? t('ghgInventory:emissionCreationSuccess')
25600
- : t('ghgInventory:emissionUpdateSuccess'),
25601
- duration: 4,
25602
- style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25603
- });
25669
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
25670
+ setOpenSaveFormModal(false);
25671
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == HttpStatusCode.Created ?
25672
+ t('ghgInventory:emissionCreationSuccess')
25673
+ : t('ghgInventory:emissionUpdateSuccess');
25674
+ if (status === GHGRecordState.FINALIZED) {
25675
+ clearUploadDoc();
25676
+ clearForm();
25677
+ messageContent = t('ghgInventory:emissionFinalizedSuccess');
25604
25678
  }
25605
- return [3 /*break*/, 7];
25679
+ setOpenFinalizeFormModal(false);
25680
+ message.open({
25681
+ type: 'success',
25682
+ content: messageContent,
25683
+ duration: 4,
25684
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25685
+ });
25686
+ clearUploadDoc();
25687
+ return [4 /*yield*/, getEmissionData()];
25606
25688
  case 4:
25689
+ _a.sent();
25690
+ _a.label = 5;
25691
+ case 5: return [3 /*break*/, 10];
25692
+ case 6:
25607
25693
  error_1 = _a.sent();
25608
25694
  console.log('Error in emission creation - ', error_1);
25695
+ setOpenSaveFormModal(false);
25696
+ setOpenFinalizeFormModal(false);
25609
25697
  message.open({
25610
25698
  type: 'error',
25611
25699
  content: error_1 === null || error_1 === void 0 ? void 0 : error_1.message,
25612
25700
  duration: 4,
25613
25701
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25614
25702
  });
25615
- return [3 /*break*/, 7];
25616
- case 5:
25617
- // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25618
- return [4 /*yield*/, getEmissionData()];
25619
- case 6:
25620
- // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25703
+ if (!(error_1.statusCode == HttpStatusCode.Conflict)) return [3 /*break*/, 8];
25704
+ return [4 /*yield*/, getEmissionData()];
25705
+ case 7:
25621
25706
  _a.sent();
25707
+ clearUploadDoc();
25708
+ _a.label = 8;
25709
+ case 8: return [3 /*break*/, 10];
25710
+ case 9:
25711
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25712
+ setIsFormChanged(false);
25622
25713
  setLoading(false);
25623
25714
  return [7 /*endfinally*/];
25624
- case 7: return [2 /*return*/];
25715
+ case 10: return [2 /*return*/];
25625
25716
  }
25626
25717
  });
25627
25718
  }); };
@@ -25653,6 +25744,7 @@ var GHGEmissionsComponent = function (props) {
25653
25744
  });
25654
25745
  return [3 /*break*/, 5];
25655
25746
  case 4:
25747
+ setIsFormChanged(false);
25656
25748
  setLoading(false);
25657
25749
  return [7 /*endfinally*/];
25658
25750
  case 5: return [2 /*return*/];
@@ -25724,13 +25816,16 @@ var GHGEmissionsComponent = function (props) {
25724
25816
  setIsSavedFormDataSet(true);
25725
25817
  };
25726
25818
  useEffect(function () {
25727
- // if (isPendingFinalization) {
25819
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25728
25820
  if (!isSavedFormDataSet) {
25729
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25730
25821
  if (savedData && savedData.length > 0) {
25731
25822
  setFormValues(savedData[0]);
25732
25823
  }
25733
25824
  }
25825
+ if (savedData && savedData.length > 0) {
25826
+ setFormDataVersion(savedData[0].version);
25827
+ }
25828
+ console.log("data changed - version updated2? = ", formDataVersion);
25734
25829
  var years = data
25735
25830
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
25736
25831
  .map(function (item) { return parseInt(item.year); });
@@ -26224,7 +26319,7 @@ var GHGEmissionsComponent = function (props) {
26224
26319
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT ||
26225
26320
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.MINISTRY) && (React.createElement(Tabs.TabPane, { key: "Add New", tab: t("ghgInventory:addNew") },
26226
26321
  React.createElement("div", null,
26227
- React.createElement(Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-emission", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onSubmitForm },
26322
+ React.createElement(Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-emission", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onOpenSaveFormModel },
26228
26323
  React.createElement(Row, null,
26229
26324
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26230
26325
  React.createElement("div", null,
@@ -26388,8 +26483,10 @@ var GHGEmissionsComponent = function (props) {
26388
26483
  React.createElement(Form.Item, { name: "totalCo2WithLand_co2eq" },
26389
26484
  React.createElement(InputNumber, null)))))),
26390
26485
  React.createElement("div", { className: "steps-actions" },
26391
- React.createElement(Button, { type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26392
- React.createElement(Button, { className: "back-btn", onClick: onResetFormModel, loading: loading }, "Cancel")))))),
26486
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT &&
26487
+ (React.createElement(Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
26488
+ React.createElement(Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26489
+ React.createElement(Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
26393
26490
  data.map(function (tabData) {
26394
26491
  return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
26395
26492
  tabData.year,
@@ -26399,11 +26496,7 @@ var GHGEmissionsComponent = function (props) {
26399
26496
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26400
26497
  React.createElement("div", null,
26401
26498
  React.createElement(Row, { className: "add-new-upload-file-label" }, "Year"),
26402
- React.createElement(DatePicker
26403
- // onChange={handleYearChange}
26404
- , {
26405
- // onChange={handleYearChange}
26406
- picker: "year", disabledDate: isYearDisabled, defaultValue: moment(tabData.year, 'YYYY'), disabled: true, size: "large" }))),
26499
+ React.createElement(DatePicker, { picker: "year", disabledDate: isYearDisabled, defaultValue: moment(tabData.year, 'YYYY'), disabled: true, size: "large" }))),
26407
26500
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
26408
26501
  React.createElement(Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
26409
26502
  React.createElement(Row, null,
@@ -26501,10 +26594,12 @@ var GHGEmissionsComponent = function (props) {
26501
26594
  })));
26502
26595
  })))));
26503
26596
  })))),
26597
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
26598
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
26504
26599
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
26505
26600
  };
26506
26601
 
26507
- 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";
26602
+ var css_248z = ".ant-tabs-tab-btn {\n padding: 5px 30px;\n text-align: center;\n font-weight: 600;\n color: rgba(58, 53, 65, 0.5); }\n\n.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n background: #16b1ff !important;\n line-height: 30px !important; }\n\n.ant-picker-cell-disabled::before {\n width: 65px !important;\n height: 32px !important;\n text-align: center !important;\n border-radius: 50px !important;\n line-height: 30px !important; }\n\n.ant-picker-cell::before {\n left: 11px; }\n\n.ant-input-suffix {\n display: flex;\n flex: none;\n align-items: center;\n height: 50px; }\n .ant-input-suffix button {\n border: none;\n color: #8C8C8C; }\n\n.ant-input-affix-wrapper {\n padding: 0 11px;\n border-radius: 5px; }\n\n.projection-tab-container .add-projection {\n display: flex;\n flex-direction: column;\n background-color: #ffffff;\n margin: 1rem 0 1rem 0;\n border-radius: 10px;\n padding: 0 1.5rem 2.5rem 1.5rem; }\n .projection-tab-container .add-projection .add-new-year-picker-col {\n padding-left: 5%; }\n .projection-tab-container .add-projection .ant-picker {\n border-radius: 5px !important;\n height: 50px !important;\n width: 80%; }\n .projection-tab-container .add-projection .add-new-upload-file-label {\n color: rgba(58, 53, 65, 0.5);\n padding: 0 0 8px;\n line-height: 1.5715;\n white-space: initial;\n text-align: left; }\n .projection-tab-container .add-projection .add-new-upload-file-name-input input {\n height: 50px;\n color: #16b1ff; }\n .projection-tab-container .add-projection .add-new-upload-file-inner-col button {\n height: 50px;\n font-size: 11px;\n width: 120px; }\n .projection-tab-container .add-projection .table-heading-row {\n padding-top: 20px;\n padding-bottom: 25px;\n margin-left: 10px !important; }\n .projection-tab-container .add-projection .table-heading-row .table-heading-col {\n text-align: center;\n font-size: 16px;\n font-weight: 600;\n color: #28282899; }\n .projection-tab-container .add-projection .total-emission-row {\n padding: 12px 16px;\n margin-left: 30px !important; }\n .projection-tab-container .add-projection .total-emission-row span {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-emission-row .total-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .panel-header-col {\n font-size: 20px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-header-emission-value-col {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel .panel-header-emission-value-col {\n border-bottom: none !important;\n padding-bottom: 10px; }\n .projection-tab-container .add-projection .sub-panel-heading {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n margin-top: 35px; }\n .projection-tab-container .add-projection .sub-panel-heading .panel-header-col {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .ant-collapse-ghost > .ant-collapse-item > .ant-collapse-content > .ant-collapse-content-box {\n padding-top: 0px;\n padding-bottom: 12px;\n margin-left: 25px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon {\n margin-top: 5px; }\n .projection-tab-container .add-projection .ant-collapse-expand-icon svg {\n font-size: 20px;\n color: #976ED7; }\n .projection-tab-container .add-projection .ant-collapse {\n margin-left: 10px; }\n .projection-tab-container .add-projection .co2-total-pill {\n border-radius: 20px;\n background-color: rgba(145, 85, 253, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .ch4-total-pill {\n border-radius: 20px;\n background-color: rgba(217, 217, 217, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .n2o-total-pill {\n border-radius: 20px;\n background-color: rgba(185, 226, 244, 0.4);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .co2eq-total-pill {\n border-radius: 20px;\n background-color: rgba(255, 166, 166, 0.6);\n padding: 4px 15px;\n height: 28px;\n color: #5B5B5B;\n font-size: 12px;\n font-weight: 900;\n margin-left: auto;\n margin-right: auto;\n width: 90px;\n text-align: center; }\n .projection-tab-container .add-projection .panel-content-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6);\n padding-bottom: 10px;\n height: 68px;\n align-items: center; }\n .projection-tab-container .add-projection .panel-content-row .panel-content-title {\n font-size: 16px;\n font-weight: 500;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .panel-content-input-box-row {\n margin-top: 14px; }\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n height: 40px;\n width: 50px;\n margin-left: 35%; }\n .projection-tab-container .add-projection .total-co2-without-land-row {\n margin-left: 40px !important;\n align-items: center;\n margin-top: 50px; }\n .projection-tab-container .add-projection .total-co2-without-land-row .total-co2-without-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-without-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .total-co2-with-land-row {\n margin-left: 40px !important;\n align-items: center; }\n .projection-tab-container .add-projection .total-co2-with-land-row .total-co2-with-land-title {\n font-size: 16px;\n font-weight: 600;\n color: #3A3541CC; }\n .projection-tab-container .add-projection .total-co2-with-land-row .panel-content-input-box-row {\n border-bottom: 1px solid rgba(217, 217, 217, 0.6); }\n .projection-tab-container .add-projection .steps-actions {\n display: flex;\n flex-direction: row-reverse;\n margin-right: 1rem;\n margin-top: 3rem; }\n .projection-tab-container .add-projection .steps-actions .action-btn {\n border: 1px solid #16b1ff;\n color: #16b1ff;\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .submit-btn {\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .back-btn {\n border: 1px solid rgba(140, 140, 140, 0.7);\n color: rgba(140, 140, 140, 0.7);\n margin-right: 1rem; }\n .projection-tab-container .add-projection .steps-actions .mg-left-1 {\n margin-left: 1rem; }\n @media only screen and (max-width: 1600px) {\n .projection-tab-container .add-projection .panel-content-input-box-row .ant-input-number {\n margin-left: 30%; } }\n";
26508
26603
  styleInject(css_248z);
26509
26604
 
26510
26605
  var ProjectionTypes = {
@@ -26523,7 +26618,7 @@ var GHGProjectionsComponent = function (props) {
26523
26618
  var _e = useState(null); _e[0]; var setSelectedYear = _e[1];
26524
26619
  var _f = useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
26525
26620
  var _g = useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
26526
- var _h = useState(); _h[0]; var setChangedValues = _h[1];
26621
+ var _h = useState(); _h[0]; _h[1];
26527
26622
  var _j = useState(0), totalNationalBau = _j[0], setTotalNationalBau = _j[1];
26528
26623
  var _k = useState(0), totalNationalConditionalNdc = _k[0], setTotalNationalConditionalNdc = _k[1];
26529
26624
  var _l = useState(0), totalNationalUnconditionalNdc = _l[0], setTotalNationalUnconditionalNdc = _l[1];
@@ -26552,9 +26647,13 @@ var GHGProjectionsComponent = function (props) {
26552
26647
  var _9 = useState(0), otherConditionalNdc = _9[0], setOtherConditionalNdc = _9[1];
26553
26648
  var _10 = useState(0), otherUnconditionalNdc = _10[0], setOtherUnconditionalNdc = _10[1];
26554
26649
  var _11 = useState(false), isSavedFormDataSet = _11[0], setIsSavedFormDataSet = _11[1];
26555
- var _12 = useState(false), openResetFormModal = _12[0], setOpenResetFormModal = _12[1];
26556
- var _13 = useState(''), errorMsg = _13[0], setErrorMsg = _13[1];
26557
- var _14 = useState({}), actionInfo = _14[0], setActionInfo = _14[1];
26650
+ var _12 = useState(1), formDataVersion = _12[0], setFormDataVersion = _12[1];
26651
+ var _13 = useState(false), isFormChanged = _13[0], setIsFormChanged = _13[1];
26652
+ var _14 = useState(false), openSaveFormModal = _14[0], setOpenSaveFormModal = _14[1];
26653
+ var _15 = useState(false), openFinalizeFormModal = _15[0], setOpenFinalizeFormModal = _15[1];
26654
+ var _16 = useState(false), openResetFormModal = _16[0], setOpenResetFormModal = _16[1];
26655
+ var _17 = useState(''), errorMsg = _17[0], setErrorMsg = _17[1];
26656
+ var _18 = useState({}), actionInfo = _18[0], setActionInfo = _18[1];
26558
26657
  var Panel = Collapse.Panel;
26559
26658
  var form = Form.useForm()[0];
26560
26659
  var createSetFieldObject = function (obj, objName) {
@@ -26654,20 +26753,8 @@ var GHGProjectionsComponent = function (props) {
26654
26753
  setFormValues(upData);
26655
26754
  };
26656
26755
  useEffect(function () {
26657
- console.log('++++++++++++++data', data);
26658
26756
  var hasSaveState = data.some(function (item) { return item.state === 'SAVED'; });
26659
- console.log('++++++++++++++hasSaveState', hasSaveState);
26660
- // const years = data.map((item: any) => !(item.state === 'SAVED') && item.year);
26661
- // console.log('++++++++++++++data, years', data, years);
26662
- console.log(uploadedFileName);
26663
26757
  setIsPendingFinalization(hasSaveState);
26664
- // Update 'disabledYears' only if 'years' array has changed
26665
- // setDisabledYears((prevYears) => {
26666
- // if (JSON.stringify(prevYears) !== JSON.stringify(years)) {
26667
- // return years;
26668
- // }
26669
- // return prevYears;
26670
- // });
26671
26758
  }, [data, uploadedFileName]);
26672
26759
  function calculateSumEmissionView(obj, conditionType) {
26673
26760
  var sum = 0;
@@ -26683,10 +26770,15 @@ var GHGProjectionsComponent = function (props) {
26683
26770
  }
26684
26771
  return sum;
26685
26772
  }
26686
- var onValuesChange = function (changedValues2, allValues) {
26687
- // Track the changed values
26688
- console.log('=================onValuesChange changedValues, allValues', changedValues2, allValues);
26689
- setChangedValues(function (prevChangedValues) { return (__assign(__assign({}, prevChangedValues), changedValues2)); });
26773
+ var onValuesChange = function (changedValues, allValues) {
26774
+ var initialValues = null;
26775
+ if (isPendingFinalization) {
26776
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
26777
+ initialValues = savedData[0];
26778
+ }
26779
+ var currentValues = form.getFieldsValue(true);
26780
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
26781
+ setIsFormChanged(isChanged);
26690
26782
  };
26691
26783
  var getBase64 = function (file) {
26692
26784
  return new Promise(function (resolve, reject) {
@@ -26696,7 +26788,7 @@ var GHGProjectionsComponent = function (props) {
26696
26788
  reader.onerror = function (error) { return reject(error); };
26697
26789
  });
26698
26790
  };
26699
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
26791
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
26700
26792
  var requestBody, savedEmission, emissionImportBase64;
26701
26793
  var _a;
26702
26794
  return __generator(this, function (_b) {
@@ -26881,7 +26973,9 @@ var GHGProjectionsComponent = function (props) {
26881
26973
  conditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_conditionalNdc,
26882
26974
  unconditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_unconditionalNdc,
26883
26975
  },
26884
- state: 'SAVED',
26976
+ state: status,
26977
+ remarks: remarks,
26978
+ version: formDataVersion,
26885
26979
  };
26886
26980
  requestBody = savedEmission;
26887
26981
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -26896,6 +26990,30 @@ var GHGProjectionsComponent = function (props) {
26896
26990
  }
26897
26991
  });
26898
26992
  }); };
26993
+ var clearForm = function () {
26994
+ form.resetFields();
26995
+ setFuelCombustionActivitiesBau(0);
26996
+ setFuelCombustionActivitiesConditionalNdc(0);
26997
+ setFuelCombustionActivitiesUnconditionalNdc(0);
26998
+ setFugitiveEmissionsFromFuelsBau(0);
26999
+ setFugitiveEmissionsFromFuelsConditionalNdc(0);
27000
+ setFugitiveEmissionsFromFuelsUnconditionalNdc(0);
27001
+ setCarbonDioxideTransportStorageBau(0);
27002
+ setCarbonDioxideTransportStorageConditionalNdc(0);
27003
+ setCarbonDioxideTransportStorageUnconditionalNdc(0);
27004
+ setIndustrialProcessesProductUseBau(0);
27005
+ setIndustrialProcessesProductUseConditionalNdc(0);
27006
+ setIndustrialProcessesProductUseUnconditionalNdc(0);
27007
+ setAgricultureForestryOtherLandUseBau(0);
27008
+ setAgricultureForestryOtherLandUseConditionalNdc(0);
27009
+ setAgricultureForestryOtherLandUseUnconditionalNdc(0);
27010
+ setWasteBau(0);
27011
+ setWasteConditionalNdc(0);
27012
+ setWasteUnconditionalNdc(0);
27013
+ setOtherBau(0);
27014
+ setOtherConditionalNdc(0);
27015
+ setOtherUnconditionalNdc(0);
27016
+ };
26899
27017
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
26900
27018
  return __generator(this, function (_a) {
26901
27019
  switch (_a.label) {
@@ -26909,29 +27027,14 @@ var GHGProjectionsComponent = function (props) {
26909
27027
  setIsSavedFormDataSet(false);
26910
27028
  clearUploadDoc();
26911
27029
  if (!isPendingFinalization) {
26912
- form.resetFields();
26913
- setFuelCombustionActivitiesBau(0);
26914
- setFuelCombustionActivitiesConditionalNdc(0);
26915
- setFuelCombustionActivitiesUnconditionalNdc(0);
26916
- setFugitiveEmissionsFromFuelsBau(0);
26917
- setFugitiveEmissionsFromFuelsConditionalNdc(0);
26918
- setFugitiveEmissionsFromFuelsUnconditionalNdc(0);
26919
- setCarbonDioxideTransportStorageBau(0);
26920
- setCarbonDioxideTransportStorageConditionalNdc(0);
26921
- setCarbonDioxideTransportStorageUnconditionalNdc(0);
26922
- setIndustrialProcessesProductUseBau(0);
26923
- setIndustrialProcessesProductUseConditionalNdc(0);
26924
- setIndustrialProcessesProductUseUnconditionalNdc(0);
26925
- setAgricultureForestryOtherLandUseBau(0);
26926
- setAgricultureForestryOtherLandUseConditionalNdc(0);
26927
- setAgricultureForestryOtherLandUseUnconditionalNdc(0);
26928
- setWasteBau(0);
26929
- setWasteConditionalNdc(0);
26930
- setWasteUnconditionalNdc(0);
26931
- setOtherBau(0);
26932
- setOtherConditionalNdc(0);
26933
- setOtherUnconditionalNdc(0);
27030
+ clearForm();
26934
27031
  }
27032
+ message.open({
27033
+ type: 'success',
27034
+ content: t('ghgInventory:formCancelledSuccess'),
27035
+ duration: 4,
27036
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27037
+ });
26935
27038
  return [2 /*return*/];
26936
27039
  }
26937
27040
  });
@@ -26939,7 +27042,7 @@ var GHGProjectionsComponent = function (props) {
26939
27042
  var onResetFormCanceled = function () {
26940
27043
  setOpenResetFormModal(false);
26941
27044
  };
26942
- var onResetFormModel = function () {
27045
+ var onOpenResetFormModel = function () {
26943
27046
  setActionInfo({
26944
27047
  action: "".concat(t('ghgInventory:proceed')),
26945
27048
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -26949,6 +27052,42 @@ var GHGProjectionsComponent = function (props) {
26949
27052
  setErrorMsg('');
26950
27053
  setOpenResetFormModal(true);
26951
27054
  };
27055
+ var onSaveFormCanceled = function () {
27056
+ setOpenSaveFormModal(false);
27057
+ };
27058
+ var onOpenSaveFormModel = function () {
27059
+ if (!isFormChanged) {
27060
+ message.open({
27061
+ type: 'error',
27062
+ content: t('ghgInventory:formNotChanged'),
27063
+ duration: 4,
27064
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27065
+ });
27066
+ }
27067
+ else {
27068
+ setActionInfo({
27069
+ action: "".concat(t("ghgInventory:submit")),
27070
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
27071
+ type: "primary",
27072
+ icon: React.createElement(CheckCircleOutlined, null),
27073
+ });
27074
+ setErrorMsg('');
27075
+ setOpenSaveFormModal(true);
27076
+ }
27077
+ };
27078
+ var onFinalizeFormCanceled = function () {
27079
+ setOpenFinalizeFormModal(false);
27080
+ };
27081
+ var onOpenFinalizeFormModel = function () {
27082
+ setActionInfo({
27083
+ action: "".concat(t("ghgInventory:finalize")),
27084
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
27085
+ type: "primary",
27086
+ icon: React.createElement(ClipboardCheck, null),
27087
+ });
27088
+ setErrorMsg('');
27089
+ setOpenFinalizeFormModal(true);
27090
+ };
26952
27091
  var getProjectionData = function () { return __awaiter(void 0, void 0, void 0, function () {
26953
27092
  var response, error_1;
26954
27093
  return __generator(this, function (_a) {
@@ -26977,6 +27116,7 @@ var GHGProjectionsComponent = function (props) {
26977
27116
  });
26978
27117
  return [3 /*break*/, 5];
26979
27118
  case 4:
27119
+ setIsFormChanged(false);
26980
27120
  setLoading(false);
26981
27121
  return [7 /*endfinally*/];
26982
27122
  case 5: return [2 /*return*/];
@@ -26996,47 +27136,70 @@ var GHGProjectionsComponent = function (props) {
26996
27136
  }); };
26997
27137
  fetchData();
26998
27138
  }, []);
26999
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
27000
- var fields, payload, response, error_2;
27139
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
27140
+ var fields, payload, response, messageContent, error_2;
27001
27141
  return __generator(this, function (_a) {
27002
27142
  switch (_a.label) {
27003
27143
  case 0:
27004
27144
  fields = form.getFieldsValue(true);
27005
- return [4 /*yield*/, createSaveRequestPayload(fields)];
27145
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
27006
27146
  case 1:
27007
27147
  payload = _a.sent();
27008
27148
  setLoading(true);
27009
27149
  _a.label = 2;
27010
27150
  case 2:
27011
- _a.trys.push([2, 4, 5, 6]);
27151
+ _a.trys.push([2, 6, 9, 10]);
27012
27152
  return [4 /*yield*/, post('national/projections', payload)];
27013
27153
  case 3:
27014
27154
  response = _a.sent();
27015
27155
  console.log('Projections creation -> ', response);
27016
- if ((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS') {
27017
- message.open({
27018
- type: 'success',
27019
- content: (response === null || response === void 0 ? void 0 : response.status) == HttpStatusCode.Created ? t('ghgInventory:projectionCreationSuccess') : t('ghgInventory:projectionUpdateSuccess'),
27020
- duration: 4,
27021
- style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27022
- });
27156
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
27157
+ setOpenSaveFormModal(false);
27158
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == HttpStatusCode.Created ?
27159
+ t('ghgInventory:projectionCreationSuccess')
27160
+ : t('ghgInventory:projectionUpdateSuccess');
27161
+ if (status === GHGRecordState.FINALIZED) {
27162
+ clearUploadDoc();
27163
+ clearForm();
27164
+ messageContent = t('ghgInventory:projectionFinalizedSuccess');
27023
27165
  }
27024
- return [3 /*break*/, 6];
27166
+ setOpenFinalizeFormModal(false);
27167
+ message.open({
27168
+ type: 'success',
27169
+ content: messageContent,
27170
+ duration: 4,
27171
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27172
+ });
27173
+ clearUploadDoc();
27174
+ return [4 /*yield*/, getProjectionData()];
27025
27175
  case 4:
27176
+ _a.sent();
27177
+ _a.label = 5;
27178
+ case 5: return [3 /*break*/, 10];
27179
+ case 6:
27026
27180
  error_2 = _a.sent();
27027
27181
  console.log('Error in projection creation - ', error_2);
27182
+ setOpenSaveFormModal(false);
27183
+ setOpenFinalizeFormModal(false);
27028
27184
  message.open({
27029
27185
  type: 'error',
27030
27186
  content: error_2 === null || error_2 === void 0 ? void 0 : error_2.message,
27031
27187
  duration: 4,
27032
27188
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27033
27189
  });
27034
- return [3 /*break*/, 6];
27035
- case 5:
27036
- getProjectionData();
27190
+ if (!(error_2.statusCode == HttpStatusCode.Conflict)) return [3 /*break*/, 8];
27191
+ return [4 /*yield*/, getProjectionData()];
27192
+ case 7:
27193
+ _a.sent();
27194
+ clearUploadDoc();
27195
+ _a.label = 8;
27196
+ case 8: return [3 /*break*/, 10];
27197
+ case 9:
27198
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
27199
+ setIsFormChanged(false);
27037
27200
  setLoading(false);
27038
27201
  return [7 /*endfinally*/];
27039
- case 6: return [2 /*return*/];
27202
+ case 10: return [2 /*return*/];
27040
27203
  }
27041
27204
  });
27042
27205
  }); };
@@ -27083,13 +27246,15 @@ var GHGProjectionsComponent = function (props) {
27083
27246
  setIsSavedFormDataSet(true);
27084
27247
  };
27085
27248
  useEffect(function () {
27086
- // if (isPendingFinalization) {
27249
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27087
27250
  if (!isSavedFormDataSet) {
27088
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27089
27251
  if (savedData && savedData.length > 0) {
27090
27252
  setFormValues(savedData[0]);
27091
27253
  }
27092
27254
  }
27255
+ if (savedData && savedData.length > 0) {
27256
+ setFormDataVersion(savedData[0].version);
27257
+ }
27093
27258
  var years = data
27094
27259
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
27095
27260
  .map(function (item) { return parseInt(item.year); });
@@ -27495,7 +27660,7 @@ var GHGProjectionsComponent = function (props) {
27495
27660
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT ||
27496
27661
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.MINISTRY) && (React.createElement(Tabs.TabPane, { key: "Add New", tab: t("ghgInventory:addNew") },
27497
27662
  React.createElement("div", null,
27498
- React.createElement(Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-projection", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onSubmitForm },
27663
+ React.createElement(Form, { labelCol: { span: 20 }, wrapperCol: { span: 24 }, name: "add-projection", className: "programme-details-form", layout: "vertical", requiredMark: true, form: form, onValuesChange: onValuesChange, onFinish: onOpenSaveFormModel },
27499
27664
  React.createElement(Row, null,
27500
27665
  React.createElement(Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
27501
27666
  React.createElement("div", null,
@@ -27641,8 +27806,10 @@ var GHGProjectionsComponent = function (props) {
27641
27806
  React.createElement(Form.Item, { name: "totalCo2WithLand_unconditionalNdc" },
27642
27807
  React.createElement(InputNumber, null)))))),
27643
27808
  React.createElement("div", { className: "steps-actions" },
27644
- React.createElement(Button, { type: "primary", htmlType: "submit", loading: loading }, "Submit"),
27645
- React.createElement(Button, { className: "back-btn", onClick: onResetFormModel, loading: loading }, "Cancel")))))),
27809
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT &&
27810
+ (React.createElement(Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
27811
+ React.createElement(Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
27812
+ React.createElement(Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
27646
27813
  data.map(function (tabData) {
27647
27814
  return tabData.state === 'FINALIZED' && (React.createElement(Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
27648
27815
  tabData.year,
@@ -27741,6 +27908,8 @@ var GHGProjectionsComponent = function (props) {
27741
27908
  })));
27742
27909
  })))));
27743
27910
  })))),
27911
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
27912
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
27744
27913
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
27745
27914
  };
27746
27915