@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/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 .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";
25021
25021
  styleInject(css_248z$1);
25022
25022
 
25023
25023
  var EmissionTypes = { co2: 'CO2', ch4: 'CH4', n2o: 'N2O', co2eq: 'CO2-eq' };
@@ -25110,7 +25110,37 @@ var DiscardChangesConfirmationModel = function (props) {
25110
25110
  React.createElement(antd.Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading }, actionInfo.action)))));
25111
25111
  };
25112
25112
 
25113
- // import React from 'react';
25113
+ var GHGRecordState;
25114
+ (function (GHGRecordState) {
25115
+ GHGRecordState["SAVED"] = "SAVED";
25116
+ GHGRecordState["FINALIZED"] = "FINALIZED";
25117
+ })(GHGRecordState || (GHGRecordState = {}));
25118
+
25119
+ var TextArea = antd.Input.TextArea;
25120
+ var GHGUserActionConfirmationModel = function (props) {
25121
+ var t = props.t, actionInfo = props.actionInfo, onActionConfirmed = props.onActionConfirmed, onActionCanceled = props.onActionCanceled, openModal = props.openModal, errorMsg = props.errorMsg, loading = props.loading;
25122
+ var _a = React.useState(""), comment = _a[0], setComment = _a[1];
25123
+ React.useEffect(function () {
25124
+ setComment("");
25125
+ }, [openModal]);
25126
+ return (React.createElement(antd.Modal, { title: React.createElement("div", { className: "popup-header" },
25127
+ React.createElement("div", { className: "icon" }, actionInfo.icon),
25128
+ 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 },
25129
+ React.createElement("p", { style: { whiteSpace: "pre-line" } }, actionInfo.text),
25130
+ React.createElement(antd.Form, { layout: "vertical", onFinish: function () {
25131
+ var status = actionInfo.action === "submit" ? GHGRecordState.SAVED : GHGRecordState.FINALIZED;
25132
+ onActionConfirmed(comment, status);
25133
+ } },
25134
+ React.createElement(antd.Form.Item, { className: "mg-bottom-0", label: t("userProfile:remarks"), name: "remarks", required: actionInfo.type === "danger" },
25135
+ React.createElement(TextArea, { defaultValue: comment, rows: 2, onChange: function (v) { return setComment(v.target.value); } })),
25136
+ errorMsg ? (React.createElement(antd.Alert, { className: "mg-top-1", message: errorMsg, type: "error", showIcon: true })) : (""),
25137
+ React.createElement("div", { className: "mg-top-1 ant-modal-footer padding-bottom-0" },
25138
+ React.createElement(antd.Button, { htmlType: "button", onClick: function () {
25139
+ onActionCanceled();
25140
+ } }, t("userProfile:cancel")),
25141
+ React.createElement(antd.Button, { className: "mg-left-2", type: "primary", htmlType: "submit", loading: loading, disabled: actionInfo.type === "danger" && comment === "" }, actionInfo.action)))));
25142
+ };
25143
+
25114
25144
  var GHGEmissionsComponent = function (props) {
25115
25145
  var t = props.t, useUserContext = props.useUserContext, useConnection = props.useConnection;
25116
25146
  var userInfoState = useUserContext().userInfoState;
@@ -25121,7 +25151,7 @@ var GHGEmissionsComponent = function (props) {
25121
25151
  var _e = React.useState(null); _e[0]; var setSelectedYear = _e[1];
25122
25152
  var _f = React.useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
25123
25153
  var _g = React.useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
25124
- var _h = React.useState(); _h[0]; var setChangedValues = _h[1];
25154
+ var _h = React.useState(); _h[0]; _h[1];
25125
25155
  var _j = React.useState(0), totalNationalCo2 = _j[0], setTotalNationalCo2 = _j[1];
25126
25156
  var _k = React.useState(0), totalNationalCh4 = _k[0], setTotalNationalCh4 = _k[1];
25127
25157
  var _l = React.useState(0), totalNationalN2o = _l[0], setTotalNationalN2o = _l[1];
@@ -25159,9 +25189,13 @@ var GHGEmissionsComponent = function (props) {
25159
25189
  var _18 = React.useState(0), otherN2o = _18[0], setOtherN2o = _18[1];
25160
25190
  var _19 = React.useState(0), otherCo2Eq = _19[0], setOtherCo2Eq = _19[1];
25161
25191
  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];
25192
+ var _21 = React.useState(1), formDataVersion = _21[0], setFormDataVersion = _21[1];
25193
+ var _22 = React.useState(false), isFormChanged = _22[0], setIsFormChanged = _22[1];
25194
+ var _23 = React.useState(false), openSaveFormModal = _23[0], setOpenSaveFormModal = _23[1];
25195
+ var _24 = React.useState(false), openFinalizeFormModal = _24[0], setOpenFinalizeFormModal = _24[1];
25196
+ var _25 = React.useState(false), openResetFormModal = _25[0], setOpenResetFormModal = _25[1];
25197
+ var _26 = React.useState(''), errorMsg = _26[0], setErrorMsg = _26[1];
25198
+ var _27 = React.useState({}), actionInfo = _27[0], setActionInfo = _27[1];
25165
25199
  var Panel = antd.Collapse.Panel;
25166
25200
  var form = antd.Form.useForm()[0];
25167
25201
  var createSetFieldObject = function (obj, objName) {
@@ -25258,20 +25292,8 @@ var GHGEmissionsComponent = function (props) {
25258
25292
  setFormValues(upData);
25259
25293
  };
25260
25294
  React.useEffect(function () {
25261
- console.log('++++++++++++++data', data);
25262
25295
  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
25296
  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
25297
  }, [data, uploadedFileName]);
25276
25298
  var handleYearChange = function (date, dateString) {
25277
25299
  setSelectedYear(dateString);
@@ -25290,9 +25312,16 @@ var GHGEmissionsComponent = function (props) {
25290
25312
  }
25291
25313
  return sum;
25292
25314
  }
25293
- var onValuesChange = function (changedValues2, allValues) {
25315
+ var onValuesChange = function (changedValues, allValues) {
25294
25316
  // Track the changed values
25295
- setChangedValues(function (prevChangedValues) { return (__assign(__assign({}, prevChangedValues), changedValues2)); });
25317
+ var initialValues = null;
25318
+ if (isPendingFinalization) {
25319
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25320
+ initialValues = savedData[0];
25321
+ }
25322
+ var currentValues = form.getFieldsValue(true);
25323
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
25324
+ setIsFormChanged(isChanged);
25296
25325
  };
25297
25326
  var getBase64 = function (file) {
25298
25327
  return new Promise(function (resolve, reject) {
@@ -25302,7 +25331,7 @@ var GHGEmissionsComponent = function (props) {
25302
25331
  reader.onerror = function (error) { return reject(error); };
25303
25332
  });
25304
25333
  };
25305
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
25334
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25306
25335
  var requestBody, savedEmission, emissionImportBase64;
25307
25336
  var _a;
25308
25337
  return __generator(this, function (_b) {
@@ -25519,7 +25548,9 @@ var GHGEmissionsComponent = function (props) {
25519
25548
  n2o: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_n2o,
25520
25549
  co2eq: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_co2eq,
25521
25550
  },
25522
- state: 'SAVED',
25551
+ state: status,
25552
+ remarks: remarks,
25553
+ version: formDataVersion,
25523
25554
  };
25524
25555
  requestBody = savedEmission;
25525
25556
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -25534,6 +25565,37 @@ var GHGEmissionsComponent = function (props) {
25534
25565
  }
25535
25566
  });
25536
25567
  }); };
25568
+ var clearForm = function () {
25569
+ form.resetFields();
25570
+ setFuelCombustionActivitiesCo2(0);
25571
+ setFuelCombustionActivitiesCh4(0);
25572
+ setFuelCombustionActivitiesN2o(0);
25573
+ setFuelCombustionActivitiesCo2Eq(0);
25574
+ setFugitiveEmissionsFromFuelsCo2(0);
25575
+ setFugitiveEmissionsFromFuelsCh4(0);
25576
+ setFugitiveEmissionsFromFuelsN2o(0);
25577
+ setFugitiveEmissionsFromFuelsCo2Eq(0);
25578
+ setCarbonDioxideTransportStorageCo2(0);
25579
+ setCarbonDioxideTransportStorageCh4(0);
25580
+ setCarbonDioxideTransportStorageN2o(0);
25581
+ setCarbonDioxideTransportStorageCo2Eq(0);
25582
+ setIndustrialProcessesProductUseCo2(0);
25583
+ setIndustrialProcessesProductUseCh4(0);
25584
+ setIndustrialProcessesProductUseN2o(0);
25585
+ setIndustrialProcessesProductUseCo2Eq(0);
25586
+ setAgricultureForestryOtherLandUseCo2(0);
25587
+ setAgricultureForestryOtherLandUseCh4(0);
25588
+ setAgricultureForestryOtherLandUseN2o(0);
25589
+ setAgricultureForestryOtherLandUseCo2Eq(0);
25590
+ setWasteCo2(0);
25591
+ setWasteCh4(0);
25592
+ setWasteN2o(0);
25593
+ setWasteCo2Eq(0);
25594
+ setOtherCo2(0);
25595
+ setOtherCh4(0);
25596
+ setOtherN2o(0);
25597
+ setOtherCo2Eq(0);
25598
+ };
25537
25599
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
25538
25600
  return __generator(this, function (_a) {
25539
25601
  switch (_a.label) {
@@ -25547,36 +25609,14 @@ var GHGEmissionsComponent = function (props) {
25547
25609
  setIsSavedFormDataSet(false);
25548
25610
  clearUploadDoc();
25549
25611
  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);
25612
+ clearForm();
25579
25613
  }
25614
+ antd.message.open({
25615
+ type: 'success',
25616
+ content: t('ghgInventory:formCancelledSuccess'),
25617
+ duration: 4,
25618
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25619
+ });
25580
25620
  return [2 /*return*/];
25581
25621
  }
25582
25622
  });
@@ -25584,7 +25624,7 @@ var GHGEmissionsComponent = function (props) {
25584
25624
  var onResetFormCanceled = function () {
25585
25625
  setOpenResetFormModal(false);
25586
25626
  };
25587
- var onResetFormModel = function () {
25627
+ var onOpenResetFormModel = function () {
25588
25628
  setActionInfo({
25589
25629
  action: "".concat(t('ghgInventory:proceed')),
25590
25630
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -25594,55 +25634,106 @@ var GHGEmissionsComponent = function (props) {
25594
25634
  setErrorMsg('');
25595
25635
  setOpenResetFormModal(true);
25596
25636
  };
25597
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
25598
- var fields, payload, response, error_1;
25637
+ var onSaveFormCanceled = function () {
25638
+ setOpenSaveFormModal(false);
25639
+ };
25640
+ var onOpenSaveFormModel = function () {
25641
+ if (!isFormChanged) {
25642
+ antd.message.open({
25643
+ type: 'error',
25644
+ content: t('ghgInventory:formNotChanged'),
25645
+ duration: 4,
25646
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25647
+ });
25648
+ }
25649
+ else {
25650
+ setActionInfo({
25651
+ action: "".concat(t("ghgInventory:submit")),
25652
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
25653
+ type: "primary",
25654
+ icon: React.createElement(icons.CheckCircleOutlined, null),
25655
+ });
25656
+ setErrorMsg('');
25657
+ setOpenSaveFormModal(true);
25658
+ }
25659
+ };
25660
+ var onFinalizeFormCanceled = function () {
25661
+ setOpenFinalizeFormModal(false);
25662
+ };
25663
+ var onOpenFinalizeFormModel = function () {
25664
+ setActionInfo({
25665
+ action: "".concat(t("ghgInventory:finalize")),
25666
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
25667
+ type: "primary",
25668
+ icon: React.createElement(Icon.ClipboardCheck, null),
25669
+ });
25670
+ setErrorMsg('');
25671
+ setOpenFinalizeFormModal(true);
25672
+ };
25673
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
25674
+ var fields, payload, response, messageContent, error_1;
25599
25675
  return __generator(this, function (_a) {
25600
25676
  switch (_a.label) {
25601
25677
  case 0:
25602
25678
  fields = form.getFieldsValue(true);
25603
- return [4 /*yield*/, createSaveRequestPayload(fields)];
25679
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
25604
25680
  case 1:
25605
25681
  payload = _a.sent();
25606
25682
  setLoading(true);
25607
25683
  _a.label = 2;
25608
25684
  case 2:
25609
- _a.trys.push([2, 4, 5, 7]);
25685
+ _a.trys.push([2, 6, 9, 10]);
25610
25686
  return [4 /*yield*/, post('national/emissions', payload)];
25611
25687
  case 3:
25612
25688
  response = _a.sent();
25613
25689
  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
- });
25690
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
25691
+ setOpenSaveFormModal(false);
25692
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created ?
25693
+ t('ghgInventory:emissionCreationSuccess')
25694
+ : t('ghgInventory:emissionUpdateSuccess');
25695
+ if (status === GHGRecordState.FINALIZED) {
25696
+ clearUploadDoc();
25697
+ clearForm();
25698
+ messageContent = t('ghgInventory:emissionFinalizedSuccess');
25625
25699
  }
25626
- return [3 /*break*/, 7];
25700
+ setOpenFinalizeFormModal(false);
25701
+ antd.message.open({
25702
+ type: 'success',
25703
+ content: messageContent,
25704
+ duration: 4,
25705
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25706
+ });
25707
+ clearUploadDoc();
25708
+ return [4 /*yield*/, getEmissionData()];
25627
25709
  case 4:
25710
+ _a.sent();
25711
+ _a.label = 5;
25712
+ case 5: return [3 /*break*/, 10];
25713
+ case 6:
25628
25714
  error_1 = _a.sent();
25629
25715
  console.log('Error in emission creation - ', error_1);
25716
+ setOpenSaveFormModal(false);
25717
+ setOpenFinalizeFormModal(false);
25630
25718
  antd.message.open({
25631
25719
  type: 'error',
25632
25720
  content: error_1 === null || error_1 === void 0 ? void 0 : error_1.message,
25633
25721
  duration: 4,
25634
25722
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
25635
25723
  });
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
25724
+ if (!(error_1.statusCode == axios.HttpStatusCode.Conflict)) return [3 /*break*/, 8];
25725
+ return [4 /*yield*/, getEmissionData()];
25726
+ case 7:
25642
25727
  _a.sent();
25728
+ clearUploadDoc();
25729
+ _a.label = 8;
25730
+ case 8: return [3 /*break*/, 10];
25731
+ case 9:
25732
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
25733
+ setIsFormChanged(false);
25643
25734
  setLoading(false);
25644
25735
  return [7 /*endfinally*/];
25645
- case 7: return [2 /*return*/];
25736
+ case 10: return [2 /*return*/];
25646
25737
  }
25647
25738
  });
25648
25739
  }); };
@@ -25674,6 +25765,7 @@ var GHGEmissionsComponent = function (props) {
25674
25765
  });
25675
25766
  return [3 /*break*/, 5];
25676
25767
  case 4:
25768
+ setIsFormChanged(false);
25677
25769
  setLoading(false);
25678
25770
  return [7 /*endfinally*/];
25679
25771
  case 5: return [2 /*return*/];
@@ -25745,13 +25837,16 @@ var GHGEmissionsComponent = function (props) {
25745
25837
  setIsSavedFormDataSet(true);
25746
25838
  };
25747
25839
  React.useEffect(function () {
25748
- // if (isPendingFinalization) {
25840
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25749
25841
  if (!isSavedFormDataSet) {
25750
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
25751
25842
  if (savedData && savedData.length > 0) {
25752
25843
  setFormValues(savedData[0]);
25753
25844
  }
25754
25845
  }
25846
+ if (savedData && savedData.length > 0) {
25847
+ setFormDataVersion(savedData[0].version);
25848
+ }
25849
+ console.log("data changed - version updated2? = ", formDataVersion);
25755
25850
  var years = data
25756
25851
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
25757
25852
  .map(function (item) { return parseInt(item.year); });
@@ -26245,7 +26340,7 @@ var GHGEmissionsComponent = function (props) {
26245
26340
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT ||
26246
26341
  (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
26342
  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 },
26343
+ 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
26344
  React.createElement(antd.Row, null,
26250
26345
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26251
26346
  React.createElement("div", null,
@@ -26409,8 +26504,10 @@ var GHGEmissionsComponent = function (props) {
26409
26504
  React.createElement(antd.Form.Item, { name: "totalCo2WithLand_co2eq" },
26410
26505
  React.createElement(antd.InputNumber, null)))))),
26411
26506
  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")))))),
26507
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT &&
26508
+ (React.createElement(antd.Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
26509
+ React.createElement(antd.Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
26510
+ React.createElement(antd.Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
26414
26511
  data.map(function (tabData) {
26415
26512
  return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
26416
26513
  tabData.year,
@@ -26420,11 +26517,7 @@ var GHGEmissionsComponent = function (props) {
26420
26517
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
26421
26518
  React.createElement("div", null,
26422
26519
  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" }))),
26520
+ React.createElement(antd.DatePicker, { picker: "year", disabledDate: isYearDisabled, defaultValue: moment(tabData.year, 'YYYY'), disabled: true, size: "large" }))),
26428
26521
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-upload-file-col" },
26429
26522
  React.createElement(antd.Row, { className: "add-new-upload-file-label" }, t("ghgInventory:emissionRemovalDocument")),
26430
26523
  React.createElement(antd.Row, null,
@@ -26522,10 +26615,12 @@ var GHGEmissionsComponent = function (props) {
26522
26615
  })));
26523
26616
  })))));
26524
26617
  })))),
26618
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
26619
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
26525
26620
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
26526
26621
  };
26527
26622
 
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";
26623
+ 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";
26529
26624
  styleInject(css_248z);
26530
26625
 
26531
26626
  var ProjectionTypes = {
@@ -26544,7 +26639,7 @@ var GHGProjectionsComponent = function (props) {
26544
26639
  var _e = React.useState(null); _e[0]; var setSelectedYear = _e[1];
26545
26640
  var _f = React.useState(''), uploadedFileName = _f[0], setUploadedFileName = _f[1];
26546
26641
  var _g = React.useState([]), disabledYears = _g[0], setDisabledYears = _g[1];
26547
- var _h = React.useState(); _h[0]; var setChangedValues = _h[1];
26642
+ var _h = React.useState(); _h[0]; _h[1];
26548
26643
  var _j = React.useState(0), totalNationalBau = _j[0], setTotalNationalBau = _j[1];
26549
26644
  var _k = React.useState(0), totalNationalConditionalNdc = _k[0], setTotalNationalConditionalNdc = _k[1];
26550
26645
  var _l = React.useState(0), totalNationalUnconditionalNdc = _l[0], setTotalNationalUnconditionalNdc = _l[1];
@@ -26573,9 +26668,13 @@ var GHGProjectionsComponent = function (props) {
26573
26668
  var _9 = React.useState(0), otherConditionalNdc = _9[0], setOtherConditionalNdc = _9[1];
26574
26669
  var _10 = React.useState(0), otherUnconditionalNdc = _10[0], setOtherUnconditionalNdc = _10[1];
26575
26670
  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];
26671
+ var _12 = React.useState(1), formDataVersion = _12[0], setFormDataVersion = _12[1];
26672
+ var _13 = React.useState(false), isFormChanged = _13[0], setIsFormChanged = _13[1];
26673
+ var _14 = React.useState(false), openSaveFormModal = _14[0], setOpenSaveFormModal = _14[1];
26674
+ var _15 = React.useState(false), openFinalizeFormModal = _15[0], setOpenFinalizeFormModal = _15[1];
26675
+ var _16 = React.useState(false), openResetFormModal = _16[0], setOpenResetFormModal = _16[1];
26676
+ var _17 = React.useState(''), errorMsg = _17[0], setErrorMsg = _17[1];
26677
+ var _18 = React.useState({}), actionInfo = _18[0], setActionInfo = _18[1];
26579
26678
  var Panel = antd.Collapse.Panel;
26580
26679
  var form = antd.Form.useForm()[0];
26581
26680
  var createSetFieldObject = function (obj, objName) {
@@ -26675,20 +26774,8 @@ var GHGProjectionsComponent = function (props) {
26675
26774
  setFormValues(upData);
26676
26775
  };
26677
26776
  React.useEffect(function () {
26678
- console.log('++++++++++++++data', data);
26679
26777
  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
26778
  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
26779
  }, [data, uploadedFileName]);
26693
26780
  function calculateSumEmissionView(obj, conditionType) {
26694
26781
  var sum = 0;
@@ -26704,10 +26791,15 @@ var GHGProjectionsComponent = function (props) {
26704
26791
  }
26705
26792
  return sum;
26706
26793
  }
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)); });
26794
+ var onValuesChange = function (changedValues, allValues) {
26795
+ var initialValues = null;
26796
+ if (isPendingFinalization) {
26797
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
26798
+ initialValues = savedData[0];
26799
+ }
26800
+ var currentValues = form.getFieldsValue(true);
26801
+ var isChanged = !(JSON.stringify(currentValues) === JSON.stringify(initialValues));
26802
+ setIsFormChanged(isChanged);
26711
26803
  };
26712
26804
  var getBase64 = function (file) {
26713
26805
  return new Promise(function (resolve, reject) {
@@ -26717,7 +26809,7 @@ var GHGProjectionsComponent = function (props) {
26717
26809
  reader.onerror = function (error) { return reject(error); };
26718
26810
  });
26719
26811
  };
26720
- var createSaveRequestPayload = function (fields) { return __awaiter(void 0, void 0, void 0, function () {
26812
+ var createSaveRequestPayload = function (fields, remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
26721
26813
  var requestBody, savedEmission, emissionImportBase64;
26722
26814
  var _a;
26723
26815
  return __generator(this, function (_b) {
@@ -26902,7 +26994,9 @@ var GHGProjectionsComponent = function (props) {
26902
26994
  conditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_conditionalNdc,
26903
26995
  unconditionalNdc: fields === null || fields === void 0 ? void 0 : fields.totalCo2WithLand_unconditionalNdc,
26904
26996
  },
26905
- state: 'SAVED',
26997
+ state: status,
26998
+ remarks: remarks,
26999
+ version: formDataVersion,
26906
27000
  };
26907
27001
  requestBody = savedEmission;
26908
27002
  if (!(fields === null || fields === void 0 ? void 0 : fields.emissionsDocument)) return [3 /*break*/, 2];
@@ -26917,6 +27011,30 @@ var GHGProjectionsComponent = function (props) {
26917
27011
  }
26918
27012
  });
26919
27013
  }); };
27014
+ var clearForm = function () {
27015
+ form.resetFields();
27016
+ setFuelCombustionActivitiesBau(0);
27017
+ setFuelCombustionActivitiesConditionalNdc(0);
27018
+ setFuelCombustionActivitiesUnconditionalNdc(0);
27019
+ setFugitiveEmissionsFromFuelsBau(0);
27020
+ setFugitiveEmissionsFromFuelsConditionalNdc(0);
27021
+ setFugitiveEmissionsFromFuelsUnconditionalNdc(0);
27022
+ setCarbonDioxideTransportStorageBau(0);
27023
+ setCarbonDioxideTransportStorageConditionalNdc(0);
27024
+ setCarbonDioxideTransportStorageUnconditionalNdc(0);
27025
+ setIndustrialProcessesProductUseBau(0);
27026
+ setIndustrialProcessesProductUseConditionalNdc(0);
27027
+ setIndustrialProcessesProductUseUnconditionalNdc(0);
27028
+ setAgricultureForestryOtherLandUseBau(0);
27029
+ setAgricultureForestryOtherLandUseConditionalNdc(0);
27030
+ setAgricultureForestryOtherLandUseUnconditionalNdc(0);
27031
+ setWasteBau(0);
27032
+ setWasteConditionalNdc(0);
27033
+ setWasteUnconditionalNdc(0);
27034
+ setOtherBau(0);
27035
+ setOtherConditionalNdc(0);
27036
+ setOtherUnconditionalNdc(0);
27037
+ };
26920
27038
  var resetForm = function () { return __awaiter(void 0, void 0, void 0, function () {
26921
27039
  return __generator(this, function (_a) {
26922
27040
  switch (_a.label) {
@@ -26930,29 +27048,14 @@ var GHGProjectionsComponent = function (props) {
26930
27048
  setIsSavedFormDataSet(false);
26931
27049
  clearUploadDoc();
26932
27050
  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);
27051
+ clearForm();
26955
27052
  }
27053
+ antd.message.open({
27054
+ type: 'success',
27055
+ content: t('ghgInventory:formCancelledSuccess'),
27056
+ duration: 4,
27057
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27058
+ });
26956
27059
  return [2 /*return*/];
26957
27060
  }
26958
27061
  });
@@ -26960,7 +27063,7 @@ var GHGProjectionsComponent = function (props) {
26960
27063
  var onResetFormCanceled = function () {
26961
27064
  setOpenResetFormModal(false);
26962
27065
  };
26963
- var onResetFormModel = function () {
27066
+ var onOpenResetFormModel = function () {
26964
27067
  setActionInfo({
26965
27068
  action: "".concat(t('ghgInventory:proceed')),
26966
27069
  headerText: "".concat(t('ghgInventory:discardHeaderText')),
@@ -26970,6 +27073,42 @@ var GHGProjectionsComponent = function (props) {
26970
27073
  setErrorMsg('');
26971
27074
  setOpenResetFormModal(true);
26972
27075
  };
27076
+ var onSaveFormCanceled = function () {
27077
+ setOpenSaveFormModal(false);
27078
+ };
27079
+ var onOpenSaveFormModel = function () {
27080
+ if (!isFormChanged) {
27081
+ antd.message.open({
27082
+ type: 'error',
27083
+ content: t('ghgInventory:formNotChanged'),
27084
+ duration: 4,
27085
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27086
+ });
27087
+ }
27088
+ else {
27089
+ setActionInfo({
27090
+ action: "".concat(t("ghgInventory:submit")),
27091
+ headerText: "".concat(t("ghgInventory:submitModelHeader")),
27092
+ type: "primary",
27093
+ icon: React.createElement(icons.CheckCircleOutlined, null),
27094
+ });
27095
+ setErrorMsg('');
27096
+ setOpenSaveFormModal(true);
27097
+ }
27098
+ };
27099
+ var onFinalizeFormCanceled = function () {
27100
+ setOpenFinalizeFormModal(false);
27101
+ };
27102
+ var onOpenFinalizeFormModel = function () {
27103
+ setActionInfo({
27104
+ action: "".concat(t("ghgInventory:finalize")),
27105
+ headerText: "".concat(t("ghgInventory:finalizeModelHeader")),
27106
+ type: "primary",
27107
+ icon: React.createElement(Icon.ClipboardCheck, null),
27108
+ });
27109
+ setErrorMsg('');
27110
+ setOpenFinalizeFormModal(true);
27111
+ };
26973
27112
  var getProjectionData = function () { return __awaiter(void 0, void 0, void 0, function () {
26974
27113
  var response, error_1;
26975
27114
  return __generator(this, function (_a) {
@@ -26998,6 +27137,7 @@ var GHGProjectionsComponent = function (props) {
26998
27137
  });
26999
27138
  return [3 /*break*/, 5];
27000
27139
  case 4:
27140
+ setIsFormChanged(false);
27001
27141
  setLoading(false);
27002
27142
  return [7 /*endfinally*/];
27003
27143
  case 5: return [2 /*return*/];
@@ -27017,47 +27157,70 @@ var GHGProjectionsComponent = function (props) {
27017
27157
  }); };
27018
27158
  fetchData();
27019
27159
  }, []);
27020
- var onSubmitForm = function (values) { return __awaiter(void 0, void 0, void 0, function () {
27021
- var fields, payload, response, error_2;
27160
+ var onSubmitForm = function (remarks, status) { return __awaiter(void 0, void 0, void 0, function () {
27161
+ var fields, payload, response, messageContent, error_2;
27022
27162
  return __generator(this, function (_a) {
27023
27163
  switch (_a.label) {
27024
27164
  case 0:
27025
27165
  fields = form.getFieldsValue(true);
27026
- return [4 /*yield*/, createSaveRequestPayload(fields)];
27166
+ return [4 /*yield*/, createSaveRequestPayload(fields, remarks, status)];
27027
27167
  case 1:
27028
27168
  payload = _a.sent();
27029
27169
  setLoading(true);
27030
27170
  _a.label = 2;
27031
27171
  case 2:
27032
- _a.trys.push([2, 4, 5, 6]);
27172
+ _a.trys.push([2, 6, 9, 10]);
27033
27173
  return [4 /*yield*/, post('national/projections', payload)];
27034
27174
  case 3:
27035
27175
  response = _a.sent();
27036
27176
  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
- });
27177
+ if (!((response === null || response === void 0 ? void 0 : response.statusText) === 'SUCCESS')) return [3 /*break*/, 5];
27178
+ setOpenSaveFormModal(false);
27179
+ messageContent = (response === null || response === void 0 ? void 0 : response.status) == axios.HttpStatusCode.Created ?
27180
+ t('ghgInventory:projectionCreationSuccess')
27181
+ : t('ghgInventory:projectionUpdateSuccess');
27182
+ if (status === GHGRecordState.FINALIZED) {
27183
+ clearUploadDoc();
27184
+ clearForm();
27185
+ messageContent = t('ghgInventory:projectionFinalizedSuccess');
27044
27186
  }
27045
- return [3 /*break*/, 6];
27187
+ setOpenFinalizeFormModal(false);
27188
+ antd.message.open({
27189
+ type: 'success',
27190
+ content: messageContent,
27191
+ duration: 4,
27192
+ style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27193
+ });
27194
+ clearUploadDoc();
27195
+ return [4 /*yield*/, getProjectionData()];
27046
27196
  case 4:
27197
+ _a.sent();
27198
+ _a.label = 5;
27199
+ case 5: return [3 /*break*/, 10];
27200
+ case 6:
27047
27201
  error_2 = _a.sent();
27048
27202
  console.log('Error in projection creation - ', error_2);
27203
+ setOpenSaveFormModal(false);
27204
+ setOpenFinalizeFormModal(false);
27049
27205
  antd.message.open({
27050
27206
  type: 'error',
27051
27207
  content: error_2 === null || error_2 === void 0 ? void 0 : error_2.message,
27052
27208
  duration: 4,
27053
27209
  style: { textAlign: 'right', marginRight: 15, marginTop: 10 },
27054
27210
  });
27055
- return [3 /*break*/, 6];
27056
- case 5:
27057
- getProjectionData();
27211
+ if (!(error_2.statusCode == axios.HttpStatusCode.Conflict)) return [3 /*break*/, 8];
27212
+ return [4 /*yield*/, getProjectionData()];
27213
+ case 7:
27214
+ _a.sent();
27215
+ clearUploadDoc();
27216
+ _a.label = 8;
27217
+ case 8: return [3 /*break*/, 10];
27218
+ case 9:
27219
+ // eslint-disable-next-line no-use-before-define, @typescript-eslint/no-use-before-define
27220
+ setIsFormChanged(false);
27058
27221
  setLoading(false);
27059
27222
  return [7 /*endfinally*/];
27060
- case 6: return [2 /*return*/];
27223
+ case 10: return [2 /*return*/];
27061
27224
  }
27062
27225
  });
27063
27226
  }); };
@@ -27104,13 +27267,15 @@ var GHGProjectionsComponent = function (props) {
27104
27267
  setIsSavedFormDataSet(true);
27105
27268
  };
27106
27269
  React.useEffect(function () {
27107
- // if (isPendingFinalization) {
27270
+ var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27108
27271
  if (!isSavedFormDataSet) {
27109
- var savedData = data.filter(function (item) { return item.state === 'SAVED'; });
27110
27272
  if (savedData && savedData.length > 0) {
27111
27273
  setFormValues(savedData[0]);
27112
27274
  }
27113
27275
  }
27276
+ if (savedData && savedData.length > 0) {
27277
+ setFormDataVersion(savedData[0].version);
27278
+ }
27114
27279
  var years = data
27115
27280
  .filter(function (item) { return !(item.state === 'SAVED' && item.year); }) // Filter out items where state is not 'SAVED'
27116
27281
  .map(function (item) { return parseInt(item.year); });
@@ -27516,7 +27681,7 @@ var GHGProjectionsComponent = function (props) {
27516
27681
  ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT ||
27517
27682
  (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
27683
  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 },
27684
+ 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
27685
  React.createElement(antd.Row, null,
27521
27686
  React.createElement(antd.Col, { xl: 12, md: 12, className: "add-new-year-picker-col" },
27522
27687
  React.createElement("div", null,
@@ -27662,8 +27827,10 @@ var GHGProjectionsComponent = function (props) {
27662
27827
  React.createElement(antd.Form.Item, { name: "totalCo2WithLand_unconditionalNdc" },
27663
27828
  React.createElement(antd.InputNumber, null)))))),
27664
27829
  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")))))),
27830
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT &&
27831
+ (React.createElement(antd.Button, { className: "finalize-btn", type: "primary", loading: loading, onClick: onOpenFinalizeFormModel }, "Finalize")),
27832
+ React.createElement(antd.Button, { className: "submit-btn", type: "primary", htmlType: "submit", loading: loading }, "Submit"),
27833
+ React.createElement(antd.Button, { className: "back-btn", onClick: onOpenResetFormModel, loading: loading }, "Cancel")))))),
27667
27834
  data.map(function (tabData) {
27668
27835
  return tabData.state === 'FINALIZED' && (React.createElement(antd.Tabs.TabPane, { key: tabData.id.toString(), tab: React.createElement("span", null,
27669
27836
  tabData.year,
@@ -27762,6 +27929,8 @@ var GHGProjectionsComponent = function (props) {
27762
27929
  })));
27763
27930
  })))));
27764
27931
  })))),
27932
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onSaveFormCanceled, openModal: openSaveFormModal, errorMsg: errorMsg, loading: loading }),
27933
+ React.createElement(GHGUserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onSubmitForm, onActionCanceled: onFinalizeFormCanceled, openModal: openFinalizeFormModal, errorMsg: errorMsg, loading: loading }),
27765
27934
  React.createElement(DiscardChangesConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: resetForm, onActionCanceled: onResetFormCanceled, openModal: openResetFormModal, errorMsg: errorMsg, loading: loading })));
27766
27935
  };
27767
27936