@undp/carbon-library 1.0.16-CARBON-363.0 → 1.0.16-CARBON-363.34

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cjs/index.js CHANGED
@@ -24754,23 +24754,21 @@ var NdcActionType;
24754
24754
  NdcActionType[NdcActionType["sub"] = 1] = "sub";
24755
24755
  })(NdcActionType || (NdcActionType = {}));
24756
24756
  var NdcDetailsComponent = function (props) {
24757
- var t = props.t; props.useConnection; var useUserContext = props.useUserContext;
24757
+ var t = props.t, useConnection = props.useConnection, useUserContext = props.useUserContext;
24758
24758
  var RangePicker = antd.DatePicker.RangePicker;
24759
24759
  var _a = React.useState([]), ndcDetailsData = _a[0], setNdcDetailsData = _a[1];
24760
24760
  var _b = React.useState(false), loading = _b[0]; _b[1];
24761
- var periodItemsRef = React.useRef([]);
24762
24761
  var _c = React.useState([]), periodItems = _c[0], setPeriodItems = _c[1];
24763
- var _d = React.useState("add_new"), selectedTab = _d[0], setSelectedTab = _d[1];
24764
- var selectedPeriod = React.useRef({});
24762
+ var _d = React.useState({}), selectedPeriod = _d[0], setSelectedPeriod = _d[1];
24763
+ var selectedDateRangeRef = React.useRef({});
24765
24764
  var addedNdcDetailId = React.useRef(0);
24766
24765
  var selectedNdcDetail = React.useRef({});
24767
24766
  var _e = React.useState(0), tableKey = _e[0], setTableKey = _e[1];
24767
+ var _f = useConnection(), get = _f.get, post = _f.post;
24768
24768
  var userInfoState = useUserContext().userInfoState;
24769
- var isAddRangeVisible = function () {
24770
- return (((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.MINISTRY ||
24771
- (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT) &&
24772
- (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== exports.Role.ViewOnly);
24773
- };
24769
+ var isAddRangeVisible = ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.MINISTRY ||
24770
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT) &&
24771
+ (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== exports.Role.ViewOnly;
24774
24772
  var isAddNdcActionVisible = function () {
24775
24773
  return ((userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === exports.CompanyRole.GOVERNMENT &&
24776
24774
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== exports.Role.ViewOnly);
@@ -24779,7 +24777,8 @@ var NdcDetailsComponent = function (props) {
24779
24777
  return num >= min && num <= max;
24780
24778
  };
24781
24779
  function onAddNewSubNdcDetail() {
24782
- var range = selectedTab.split('-');
24780
+ //const range = selectedPeriod.split("-");
24781
+ var range = [];
24783
24782
  var ndcDetail = ndcDetailsData.find(function (item) { return item.key === selectedNdcDetail.current.key; });
24784
24783
  var ndcDetailItemIndex = ndcDetailsData.findIndex(function (item) { return item.key === selectedNdcDetail.current.key; });
24785
24784
  if (ndcDetail) {
@@ -24789,9 +24788,9 @@ var NdcDetailsComponent = function (props) {
24789
24788
  startDate: new Date("".concat(Number(range[0]), "-01-24 23:12:00")),
24790
24789
  endDate: new Date("".concat(Number(range[0]), "-12-24 23:12:00")),
24791
24790
  ndcActionId: ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.key,
24792
- nationalPlanObj: '',
24793
- kpi: '',
24794
- ministry: '',
24791
+ nationalPlanObj: "",
24792
+ kpi: "",
24793
+ ministry: "",
24795
24794
  };
24796
24795
  if (!ndcDetail.subNdcDetails) {
24797
24796
  ndcDetail.subNdcDetails = [];
@@ -24835,7 +24834,8 @@ var NdcDetailsComponent = function (props) {
24835
24834
  });
24836
24835
  };
24837
24836
  var getNdcDetailsForPeriod = function () {
24838
- var range = selectedTab.split("-");
24837
+ //const range = selectedPeriod.split("-");
24838
+ var range = [];
24839
24839
  if (range.length > 1) {
24840
24840
  var filteredData = ndcDetailsData.filter(function (item) {
24841
24841
  return inRange(Number(moment(item.startDate).year()), Number(range[0]), Number(range[1]));
@@ -24850,12 +24850,11 @@ var NdcDetailsComponent = function (props) {
24850
24850
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
24851
24851
  var ndcDetail = ndcDetailsData.find(function (item) { return item.key === key; });
24852
24852
  if (ndcDetail) {
24853
- if (((_b = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_a = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _a === void 0 ? void 0 : _a.length) - 1]) === null || _b === void 0 ? void 0 : _b.ministry.trim()) !== '' &&
24853
+ if (((_b = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_a = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _a === void 0 ? void 0 : _a.length) - 1]) === null || _b === void 0 ? void 0 : _b.ministry.trim()) !== "" &&
24854
24854
  ((_d = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_c = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _c === void 0 ? void 0 : _c.length) - 1]) === null || _d === void 0 ? void 0 : _d.ministry) &&
24855
- ((_f = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_e = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _e === void 0 ? void 0 : _e.length) - 1]) === null || _f === void 0 ? void 0 : _f.nationalPlanObj.trim()) !==
24856
- '' &&
24855
+ ((_f = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_e = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _e === void 0 ? void 0 : _e.length) - 1]) === null || _f === void 0 ? void 0 : _f.nationalPlanObj.trim()) !== "" &&
24857
24856
  ((_h = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_g = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _g === void 0 ? void 0 : _g.length) - 1]) === null || _h === void 0 ? void 0 : _h.nationalPlanObj) &&
24858
- String((_k = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_j = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _j === void 0 ? void 0 : _j.length) - 1]) === null || _k === void 0 ? void 0 : _k.kpi).trim() !== '' &&
24857
+ String((_k = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_j = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _j === void 0 ? void 0 : _j.length) - 1]) === null || _k === void 0 ? void 0 : _k.kpi).trim() !== "" &&
24859
24858
  String((_m = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails[((_l = ndcDetail === null || ndcDetail === void 0 ? void 0 : ndcDetail.subNdcDetails) === null || _l === void 0 ? void 0 : _l.length) - 1]) === null || _m === void 0 ? void 0 : _m.kpi)) {
24860
24859
  onAddNewSubNdcDetail();
24861
24860
  }
@@ -24910,7 +24909,8 @@ var NdcDetailsComponent = function (props) {
24910
24909
  }); } });
24911
24910
  });
24912
24911
  function onAddNewNdcDetail() {
24913
- var range = selectedTab.split("-");
24912
+ //const range = selectedPeriod.split("-");
24913
+ var range = [];
24914
24914
  var ndcActionId = ++addedNdcDetailId.current;
24915
24915
  var newData = {
24916
24916
  key: ndcActionId,
@@ -24941,86 +24941,138 @@ var NdcDetailsComponent = function (props) {
24941
24941
  cell: EditableCell,
24942
24942
  },
24943
24943
  };
24944
- //commented because rendering issue
24945
- function ndcDetailsTableContent() {
24946
- return (React.createElement("div", null)
24947
- // <div>
24948
- // <Button
24949
- // onClick={onAddNewNdcDetail}
24950
- // type="primary"
24951
- // style={{
24952
- // marginBottom: 16,
24953
- // }}
24954
- // >
24955
- // Add a row
24956
- // </Button>
24957
- // <Table
24958
- // components={components}
24959
- // rowClassName={() => 'editable-row'}
24960
- // bordered
24961
- // dataSource={ndcDetailsData}
24962
- // columns={columns}
24963
- // />
24964
- // </div>
24965
- );
24966
- }
24967
- var onCancelPeriod = function () { };
24968
- var onAddNewPeriod = function () {
24969
- if (selectedPeriod && selectedPeriod.current) {
24970
- var newPeriodItem_1 = {
24971
- key: "".concat(selectedPeriod.current.start, "-").concat(selectedPeriod.current.end),
24972
- label: "".concat(selectedPeriod.current.start, "-").concat(selectedPeriod.current.end),
24973
- start: selectedPeriod.current.start,
24974
- end: selectedPeriod.current.end,
24975
- children: ndcDetailsTableContent(),
24976
- };
24977
- var existingIndex = periodItemsRef.current.findIndex(function (item) {
24978
- return inRange(newPeriodItem_1.start, item.start, item.end) ||
24979
- inRange(newPeriodItem_1.end, item.start, item.end);
24980
- });
24981
- if (existingIndex === -1) {
24982
- setPeriodItems(function (items) { return __spreadArray(__spreadArray([], items, true), [newPeriodItem_1], false); });
24983
- periodItemsRef.current = __spreadArray(__spreadArray([], periodItemsRef.current, true), [newPeriodItem_1], false);
24984
- }
24985
- else {
24986
- antd.message.open({
24987
- type: "error",
24988
- content: t("ndc:rangeAlreadyExists"),
24989
- duration: 3,
24990
- style: { textAlign: "right", marginRight: 15, marginTop: 10 },
24991
- });
24944
+ var onDeletePeriod = function () { return __awaiter(void 0, void 0, void 0, function () {
24945
+ var result;
24946
+ return __generator(this, function (_a) {
24947
+ switch (_a.label) {
24948
+ case 0: return [4 /*yield*/, post("national/programme/deleteNdcDetailsPeriod", {
24949
+ id: selectedPeriod.id,
24950
+ })];
24951
+ case 1:
24952
+ result = _a.sent();
24953
+ if (result) {
24954
+ fetchNdcDetailPeriods();
24955
+ }
24956
+ return [2 /*return*/];
24992
24957
  }
24993
- }
24958
+ });
24959
+ }); };
24960
+ var onFinalizePeriod = function () {
24961
+ //
24994
24962
  };
24995
- React.useEffect(function () {
24996
- if (periodItems && periodItems.length > 3) {
24997
- setSelectedTab(periodItems[periodItems.length - 1].key);
24998
- }
24999
- }, [periodItems]);
24963
+ function ndcDetailsTableContent() {
24964
+ return (React.createElement("div", null,
24965
+ React.createElement(antd.Row, null,
24966
+ React.createElement(antd.Col, { span: 24 },
24967
+ React.createElement(antd.Table, { key: tableKey, components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: getNdcDetailsForPeriod(), columns: columns, expandable: {
24968
+ expandedRowRender: function (record) { return getSubNdcActionContent(record); },
24969
+ indentSize: 0,
24970
+ defaultExpandedRowKeys: [selectedNdcDetail.current.key],
24971
+ }, footer: function () {
24972
+ return isAddNdcActionVisible() && (React.createElement(antd.Row, { justify: "center" },
24973
+ React.createElement(antd.Button, { onClick: onAddNewNdcDetail, type: "default", style: {
24974
+ marginBottom: 16,
24975
+ width: "100%",
24976
+ } }, t("ndc:addNdcAction"))));
24977
+ } }))),
24978
+ React.createElement(antd.Row, null,
24979
+ React.createElement(antd.Col, { span: 24 },
24980
+ React.createElement(antd.Button, { type: "primary", onClick: onDeletePeriod, htmlType: "submit", loading: loading }, t("ndc:delete")),
24981
+ React.createElement(antd.Button, { type: "primary", onClick: onFinalizePeriod, htmlType: "submit", loading: loading }, t("ndc:finalize"))))));
24982
+ }
24983
+ var onAddNewPeriod = function () { return __awaiter(void 0, void 0, void 0, function () {
24984
+ var periodItem_1, existingIndex, response, addedPeriodItem, updatedPeriodItem_1;
24985
+ return __generator(this, function (_a) {
24986
+ switch (_a.label) {
24987
+ case 0:
24988
+ if (!(selectedDateRangeRef && selectedDateRangeRef.current)) return [3 /*break*/, 3];
24989
+ periodItem_1 = {
24990
+ startYear: selectedDateRangeRef.current.startYear,
24991
+ endYear: selectedDateRangeRef.current.endYear,
24992
+ finalized: false,
24993
+ };
24994
+ existingIndex = periodItems.findIndex(function (item) {
24995
+ return inRange(periodItem_1.startYear, item.startYear, item.endYear) ||
24996
+ inRange(periodItem_1.endYear, item.startYear, item.endYear);
24997
+ });
24998
+ if (!(existingIndex === -1)) return [3 /*break*/, 2];
24999
+ return [4 /*yield*/, post("national/programme/addNdcDetailsPeriod", __assign({}, periodItem_1))];
25000
+ case 1:
25001
+ response = _a.sent();
25002
+ if (response && response.data) {
25003
+ addedPeriodItem = response.data;
25004
+ updatedPeriodItem_1 = __assign(__assign({}, addedPeriodItem), { key: addedPeriodItem.id, label: "".concat(addedPeriodItem.startYear, "-").concat(addedPeriodItem.endYear) });
25005
+ setPeriodItems(function (items) { return __spreadArray(__spreadArray([], items, true), [updatedPeriodItem_1], false); });
25006
+ setSelectedPeriod(updatedPeriodItem_1);
25007
+ }
25008
+ return [3 /*break*/, 3];
25009
+ case 2:
25010
+ antd.message.open({
25011
+ type: "error",
25012
+ content: t("ndc:rangeAlreadyExists"),
25013
+ duration: 3,
25014
+ style: { textAlign: "right", marginRight: 15, marginTop: 10 },
25015
+ });
25016
+ _a.label = 3;
25017
+ case 3: return [2 /*return*/];
25018
+ }
25019
+ });
25020
+ }); };
25000
25021
  var onDateRangeChanged = function (range) {
25001
25022
  var period = {
25002
- start: Number(moment(range[0]).year()),
25003
- end: Number(moment(range[1]).year()),
25023
+ startYear: Number(moment(range[0]).year()),
25024
+ endYear: Number(moment(range[1]).year()),
25004
25025
  };
25005
- selectedPeriod.current = period;
25026
+ selectedDateRangeRef.current = period;
25006
25027
  };
25007
25028
  function addNewPeriodContent() {
25008
25029
  return (React.createElement("div", null,
25009
- React.createElement(antd.Row, null,
25010
- React.createElement(RangePicker, { onChange: onDateRangeChanged, picker: "year" })),
25011
- React.createElement(antd.Row, { className: "mg-top-1" },
25012
- React.createElement("div", { className: "ndc-steps-actions" },
25013
- React.createElement(antd.Button, { type: "primary", onClick: onAddNewPeriod, htmlType: "submit", loading: loading }, t("ndc:submit")),
25014
- React.createElement(antd.Button, { className: "back-btn", onClick: onCancelPeriod, loading: loading }, t("ndc:back"))))));
25030
+ React.createElement(antd.Row, { justify: "start", align: "middle", gutter: [16, 16] },
25031
+ React.createElement(antd.Col, { flex: "340px" },
25032
+ React.createElement(RangePicker, { onChange: onDateRangeChanged, picker: "year" })),
25033
+ React.createElement(antd.Col, { flex: "auto" },
25034
+ React.createElement(antd.Button, { type: "primary", onClick: onAddNewPeriod, htmlType: "submit", loading: loading }, t("ndc:submit"))))));
25015
25035
  }
25016
25036
  function getSubNdcActionContent(record) {
25017
25037
  selectedNdcDetail.current = record;
25018
25038
  return (React.createElement(antd.Table, { components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: getSubNdcDetails(record.key), columns: columns, showHeader: false, pagination: false }));
25019
25039
  }
25020
25040
  var onTabChange = function (key) {
25021
- setSelectedTab(key);
25041
+ var selectedPeriod = periodItems.find(function (item) { return item.key === key; });
25042
+ setSelectedPeriod(selectedPeriod);
25022
25043
  };
25044
+ var fetchNdcDetailPeriods = function () { return __awaiter(void 0, void 0, void 0, function () {
25045
+ var periods, addNewTab, response;
25046
+ return __generator(this, function (_a) {
25047
+ switch (_a.label) {
25048
+ case 0:
25049
+ periods = [];
25050
+ addNewTab = {
25051
+ id: "add_new",
25052
+ key: "add_new",
25053
+ label: "Add New",
25054
+ startYear: 0,
25055
+ endYear: 0,
25056
+ };
25057
+ return [4 /*yield*/, get("national/programme/queryNdcDetailsPeriod")];
25058
+ case 1:
25059
+ response = _a.sent();
25060
+ if (response && response.data) {
25061
+ periods = response.data.map(function (period) {
25062
+ return __assign(__assign({}, period), { key: period.id, label: "".concat(period.startYear, "-").concat(period.endYear) });
25063
+ });
25064
+ }
25065
+ if (isAddRangeVisible) {
25066
+ periods.unshift(addNewTab);
25067
+ }
25068
+ setPeriodItems(periods);
25069
+ setSelectedPeriod(addNewTab);
25070
+ return [2 /*return*/];
25071
+ }
25072
+ });
25073
+ }); };
25023
25074
  React.useEffect(function () {
25075
+ fetchNdcDetailPeriods();
25024
25076
  var defaultNdcDetails = [
25025
25077
  {
25026
25078
  key: 1,
@@ -25226,7 +25278,7 @@ var NdcDetailsComponent = function (props) {
25226
25278
  startDate: new Date("2022-03-25"),
25227
25279
  endDate: new Date("2023-03-25"),
25228
25280
  nationalPlanObj: "Other",
25229
- kpi: '',
25281
+ kpi: "",
25230
25282
  ministry: "Ministry of Environment",
25231
25283
  subNdcDetails: [
25232
25284
  {
@@ -25252,34 +25304,7 @@ var NdcDetailsComponent = function (props) {
25252
25304
  ],
25253
25305
  },
25254
25306
  ];
25255
- var initialPeriods = [
25256
- {
25257
- key: "2019-2020",
25258
- label: "2019-2020",
25259
- start: 2019,
25260
- end: 2020,
25261
- children: ndcDetailsTableContent(),
25262
- },
25263
- {
25264
- key: "2021-2023",
25265
- label: "2021-2023",
25266
- start: 2021,
25267
- end: 2021,
25268
- children: ndcDetailsTableContent(),
25269
- },
25270
- ];
25271
- if (isAddRangeVisible()) {
25272
- initialPeriods.unshift({
25273
- key: "add_new",
25274
- label: "Add New",
25275
- start: 0,
25276
- end: 0,
25277
- children: addNewPeriodContent(),
25278
- });
25279
- }
25280
25307
  addedNdcDetailId.current = 20;
25281
- setPeriodItems(initialPeriods);
25282
- periodItemsRef.current = initialPeriods;
25283
25308
  setNdcDetailsData(defaultNdcDetails);
25284
25309
  }, []);
25285
25310
  return (React.createElement("div", { className: "ndc-management content-container" },
@@ -25289,20 +25314,10 @@ var NdcDetailsComponent = function (props) {
25289
25314
  React.createElement("div", { className: "body-title" }, t("ndc:ndcTitle")),
25290
25315
  React.createElement("div", { className: "body-sub-title" }, t("ndc:ndcSubTitle"))))),
25291
25316
  React.createElement("div", null,
25292
- React.createElement(antd.Tabs, { centered: false, defaultActiveKey: "1", items: periodItems, activeKey: selectedTab, onChange: onTabChange })),
25293
- selectedTab !== "add_new" && (React.createElement("div", null,
25294
- React.createElement("div", null,
25295
- React.createElement(antd.Table, { key: tableKey, components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: getNdcDetailsForPeriod(), columns: columns, expandable: {
25296
- expandedRowRender: function (record) { return getSubNdcActionContent(record); },
25297
- indentSize: 0,
25298
- defaultExpandedRowKeys: [selectedNdcDetail.current.key],
25299
- }, footer: function () {
25300
- return isAddNdcActionVisible() && (React.createElement(antd.Row, { justify: "center" },
25301
- React.createElement(antd.Button, { onClick: onAddNewNdcDetail, type: "default", style: {
25302
- marginBottom: 16,
25303
- width: "100%",
25304
- } }, t("ndc:addNdcAction"))));
25305
- } }))))));
25317
+ React.createElement(antd.Tabs, { centered: false, defaultActiveKey: "1", items: periodItems, activeKey: selectedPeriod, onChange: onTabChange })),
25318
+ React.createElement("div", null, selectedPeriod.id === "add_new"
25319
+ ? addNewPeriodContent()
25320
+ : ndcDetailsTableContent())));
25306
25321
  };
25307
25322
 
25308
25323
  var ImgWithFallback = function (_a) {