@undp/carbon-library 1.0.175-CARBON-363.19 → 1.0.175-CARBON-363.30

Sign up to get free protection for your applications and to get access to all the features.
package/dist/esm/index.js CHANGED
@@ -26128,10 +26128,10 @@ var EditableCell = function (_a) {
26128
26128
  var editing = _a.editing, dataIndex = _a.dataIndex, title = _a.title; _a.inputType; _a.record; _a.index; var children = _a.children, restProps = __rest(_a, ["editing", "dataIndex", "title", "inputType", "record", "index", "children"]);
26129
26129
  var inputNode;
26130
26130
  if (dataIndex === "nationalPlanObjective") {
26131
- inputNode = React.createElement(Input, { placeholder: "Enter National Plan Objective" });
26131
+ inputNode = React.createElement(Input, { onClick: function (event) { return event.stopPropagation(); }, placeholder: "Enter National Plan Objective" });
26132
26132
  }
26133
26133
  else if (dataIndex === "kpi") {
26134
- inputNode = React.createElement(InputNumber, { placeholder: "Enter Kpi" });
26134
+ inputNode = React.createElement(InputNumber, { onClick: function (event) { return event.stopPropagation(); }, placeholder: "Enter Kpi" });
26135
26135
  }
26136
26136
  return (React.createElement("td", __assign({}, restProps), editing ? (React.createElement(Form.Item, { name: dataIndex, style: { margin: 0 }, rules: [
26137
26137
  {
@@ -26184,19 +26184,25 @@ var NdcDetailsComponent = function (props) {
26184
26184
  var _c = useState([]), periodItems = _c[0], setPeriodItems = _c[1];
26185
26185
  var _d = useState({}), selectedPeriod = _d[0], setSelectedPeriod = _d[1];
26186
26186
  var selectedDateRangeRef = useRef({});
26187
- var selectedNdcDetail = useRef({});
26188
26187
  var _e = useState(0), tableKey = _e[0], setTableKey = _e[1];
26189
- var _f = useConnection(), get = _f.get, post = _f.post, put = _f.put;
26190
- var _g = useState([]), ministryOrgList = _g[0], setMinistryOrgList = _g[1];
26191
- var _h = useState({}), actionInfo = _h[0], setActionInfo = _h[1];
26192
- var _j = useState(false), openConfirmationModal = _j[0], setOpenConfirmationModal = _j[1];
26188
+ var _f = useState(0), subTableKey = _f[0]; _f[1];
26189
+ var _g = useConnection(), get = _g.get, post = _g.post, put = _g.put;
26190
+ var _h = useState([]), ministryOrgList = _h[0], setMinistryOrgList = _h[1];
26191
+ var _j = useState({}), actionInfo = _j[0], setActionInfo = _j[1];
26192
+ var _k = useState(false), openConfirmationModal = _k[0], setOpenConfirmationModal = _k[1];
26193
26193
  var form = Form.useForm()[0];
26194
- var _k = useState(-1), editingKey = _k[0], setEditingKey = _k[1];
26195
- var _l = useState(0), nextAvailableActionId = _l[0], setNextAvailableActionId = _l[1];
26196
- var _m = useState([]), expandedRowKeys = _m[0], setExpandedRowKeys = _m[1];
26197
- var _o = useState([]), subNdcDetailsForPeriod = _o[0], setSubNdcDetailsForPeriod = _o[1];
26194
+ var _l = useState(-1), editingKey = _l[0], setEditingKey = _l[1];
26195
+ var _m = useState(0), nextAvailableActionId = _m[0], setNextAvailableActionId = _m[1];
26196
+ var _o = useState([]), expandedRowKeys = _o[0], setExpandedRowKeys = _o[1];
26197
+ var _p = useState([]), subNdcDetailsForPeriod = _p[0], setSubNdcDetailsForPeriod = _p[1];
26198
26198
  var isEditing = function (record) { return record.id === editingKey; };
26199
26199
  var userInfoState = useUserContext().userInfoState;
26200
+ useEffect(function () {
26201
+ if (expandedRowKeys && expandedRowKeys.length > 0) {
26202
+ var expandedKey = expandedRowKeys[0];
26203
+ setNdcSubActionsForMainAction(expandedKey);
26204
+ }
26205
+ }, ndcDetailsData);
26200
26206
  var loginMinistry = (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT
26201
26207
  ? process.env.REACT_APP_GOVERNMENT_MINISTRY
26202
26208
  ? process.env.REACT_APP_GOVERNMENT_MINISTRY
@@ -26206,12 +26212,6 @@ var NdcDetailsComponent = function (props) {
26206
26212
  : undefined;
26207
26213
  var isGovernmentUser = (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT &&
26208
26214
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== Role.ViewOnly;
26209
- var ndcMainDetailsForPeriod = selectedPeriod.key !== "add_new"
26210
- ? ndcDetailsData.filter(function (ndcDetail) {
26211
- return (ndcDetail.periodId === parseInt(selectedPeriod.key) &&
26212
- ndcDetail.actionType === NdcDetailsActionType.MainAction);
26213
- })
26214
- : [];
26215
26215
  var isMainNdcActionsEditable = !selectedPeriod.finalized &&
26216
26216
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyRole) === CompanyRole.GOVERNMENT &&
26217
26217
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== Role.ViewOnly;
@@ -26223,6 +26223,45 @@ var NdcDetailsComponent = function (props) {
26223
26223
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.companyName) === record.ministryName)) &&
26224
26224
  (userInfoState === null || userInfoState === void 0 ? void 0 : userInfoState.userRole) !== Role.ViewOnly);
26225
26225
  };
26226
+ var isNdcActionEditable = function (record) {
26227
+ if (record.actionType === NdcDetailsActionType.MainAction) {
26228
+ return isMainNdcActionsEditable;
26229
+ }
26230
+ else if (record.actionType === NdcDetailsActionType.SubAction) {
26231
+ return isSubNdcActionsEditable(record);
26232
+ }
26233
+ };
26234
+ var ndcMainDetailsForPeriod = selectedPeriod.key !== "add_new"
26235
+ ? ndcDetailsData.filter(function (ndcDetail) {
26236
+ return (ndcDetail.periodId === parseInt(selectedPeriod.key) &&
26237
+ ndcDetail.actionType === NdcDetailsActionType.MainAction);
26238
+ })
26239
+ : [];
26240
+ var setNdcSubActionsForMainAction = function (mainActionId) {
26241
+ var subNdcDetails = ndcDetailsData.filter(function (ndcDetail) {
26242
+ return (ndcDetail.parentActionId === mainActionId &&
26243
+ ndcDetail.actionType === NdcDetailsActionType.SubAction);
26244
+ });
26245
+ var emptySubNdcRow = {
26246
+ id: nextAvailableActionId,
26247
+ actionType: NdcDetailsActionType.SubAction,
26248
+ nationalPlanObjective: "",
26249
+ kpi: "",
26250
+ ministryName: loginMinistry,
26251
+ status: NdcDetailsActionStatus.New,
26252
+ parentActionId: mainActionId,
26253
+ };
26254
+ if (!selectedPeriod.finalized) {
26255
+ subNdcDetails = __spreadArray(__spreadArray([], subNdcDetails, true), [emptySubNdcRow], false);
26256
+ setEditingKey(nextAvailableActionId);
26257
+ setNextAvailableActionId(function (value) { return value + 1; });
26258
+ form.setFieldsValue({
26259
+ nationalPlanObjective: "",
26260
+ kpi: "",
26261
+ });
26262
+ }
26263
+ setSubNdcDetailsForPeriod(subNdcDetails);
26264
+ };
26226
26265
  var inRange = function (num, min, max) {
26227
26266
  return num >= min && num <= max;
26228
26267
  };
@@ -26237,14 +26276,20 @@ var NdcDetailsComponent = function (props) {
26237
26276
  updatedFields = (_a.sent());
26238
26277
  updatedItem = __assign(__assign({}, row), updatedFields);
26239
26278
  if (!(updatedItem.status === NdcDetailsActionStatus.New)) return [3 /*break*/, 3];
26240
- updatedItem.status = NdcDetailsActionStatus.Pending;
26241
- return [4 /*yield*/, post("national/programme/addNdcDetailsAction", __assign(__assign({}, updatedItem), { kpi: parseInt(updatedItem.kpi) }))];
26279
+ if (isGovernmentUser &&
26280
+ updatedItem.actionType === NdcDetailsActionType.SubAction) {
26281
+ updatedItem.status = NdcDetailsActionStatus.Approved;
26282
+ }
26283
+ else {
26284
+ updatedItem.status = NdcDetailsActionStatus.Pending;
26285
+ }
26286
+ return [4 /*yield*/, post("national/programme/addNdcDetailsAction", __assign(__assign({}, updatedItem), { kpi: parseInt(updatedItem.kpi.toString()) }))];
26242
26287
  case 2:
26243
26288
  _a.sent();
26244
26289
  return [3 /*break*/, 5];
26245
26290
  case 3:
26246
26291
  updatedItem.status = NdcDetailsActionStatus.Pending;
26247
- return [4 /*yield*/, put("national/programme/updateNdcDetailsAction", __assign(__assign({}, updatedItem), { kpi: parseInt(updatedItem.kpi) }))];
26292
+ return [4 /*yield*/, put("national/programme/updateNdcDetailsAction", __assign(__assign({}, updatedItem), { kpi: parseInt(updatedItem.kpi.toString()) }))];
26248
26293
  case 4:
26249
26294
  _a.sent();
26250
26295
  _a.label = 5;
@@ -26261,7 +26306,9 @@ var NdcDetailsComponent = function (props) {
26261
26306
  });
26262
26307
  }); };
26263
26308
  var actionMenu = function (record) {
26264
- if (record.status === NdcDetailsActionStatus.Pending && isGovernmentUser) {
26309
+ if (record.status === NdcDetailsActionStatus.Pending &&
26310
+ isGovernmentUser &&
26311
+ !selectedPeriod.finalized) {
26265
26312
  return (React.createElement(List, { className: "action-menu", size: "small", dataSource: [
26266
26313
  {
26267
26314
  text: t("ndc:approve"),
@@ -26307,6 +26354,15 @@ var NdcDetailsComponent = function (props) {
26307
26354
  align: "left",
26308
26355
  width: "40%",
26309
26356
  editable: true,
26357
+ render: function (_, record) { return (React.createElement(Space, { size: "middle", onClick: function (event) {
26358
+ if (record.id &&
26359
+ isNdcActionEditable(record) &&
26360
+ !isEditing(record)) {
26361
+ form.setFieldsValue(__assign({}, record));
26362
+ setEditingKey(record.id);
26363
+ }
26364
+ event.stopPropagation();
26365
+ } }, record.nationalPlanObjective ? (React.createElement("span", null, record.nationalPlanObjective)) : (React.createElement(Input, { placeholder: "Enter National Plan Objective" })))); },
26310
26366
  },
26311
26367
  {
26312
26368
  title: t("ndc:ndcColumnsKpi"),
@@ -26315,6 +26371,15 @@ var NdcDetailsComponent = function (props) {
26315
26371
  align: "left",
26316
26372
  width: "15%",
26317
26373
  editable: true,
26374
+ render: function (_, record) { return (React.createElement(Space, { size: "middle", onClick: function (event) {
26375
+ if (record.id &&
26376
+ isNdcActionEditable(record) &&
26377
+ !isEditing(record)) {
26378
+ form.setFieldsValue(__assign({}, record));
26379
+ setEditingKey(record.id);
26380
+ }
26381
+ event.stopPropagation();
26382
+ } }, record.kpi ? (React.createElement("span", null, record.kpi)) : (React.createElement(Input, { placeholder: "Enter Kpi" })))); },
26318
26383
  },
26319
26384
  {
26320
26385
  title: t("ndc:ndcColumnsMinistry"),
@@ -26324,7 +26389,15 @@ var NdcDetailsComponent = function (props) {
26324
26389
  width: "30%",
26325
26390
  editable: false,
26326
26391
  render: function (_, record) { return (React.createElement(React.Fragment, null,
26327
- React.createElement(Select, { disabled: !(isSubNdcActionsEditable(record) && isEditing(record)), defaultValue: record.ministryName ? record.ministryName : loginMinistry, style: { width: 320 }, onChange: function (value, option) {
26392
+ React.createElement(Select, { disabled: !(isSubNdcActionsEditable(record) && isEditing(record)), defaultValue: record.ministryName ? record.ministryName : loginMinistry, onClick: function (event) {
26393
+ if (record.id &&
26394
+ isNdcActionEditable(record) &&
26395
+ !isEditing(record)) {
26396
+ form.setFieldsValue(__assign({}, record));
26397
+ setEditingKey(record.id);
26398
+ }
26399
+ event.stopPropagation();
26400
+ }, style: { width: 320 }, onChange: function (value, option) {
26328
26401
  record.ministryName = option.label;
26329
26402
  handleSave(record);
26330
26403
  }, options: ministryOrgList }))); },
@@ -26432,50 +26505,45 @@ var NdcDetailsComponent = function (props) {
26432
26505
  keys.push(record.id);
26433
26506
  }
26434
26507
  setExpandedRowKeys(keys);
26435
- var subNdcDetails = ndcDetailsData.filter(function (ndcDetail) {
26436
- return (ndcDetail.parentActionId === record.id &&
26437
- ndcDetail.actionType === NdcDetailsActionType.SubAction);
26438
- });
26439
- var emptySubNdcRow = {
26440
- id: nextAvailableActionId,
26441
- actionType: NdcDetailsActionType.SubAction,
26442
- nationalPlanObjective: "",
26443
- kpi: "",
26444
- ministryName: loginMinistry,
26445
- status: NdcDetailsActionStatus.New,
26446
- parentActionId: record.id,
26447
- };
26448
- setEditingKey(nextAvailableActionId);
26449
- setNextAvailableActionId(function (value) { return value + 1; });
26450
- form.setFieldsValue({
26451
- nationalPlanObjective: "",
26452
- kpi: "",
26453
- });
26454
- setSubNdcDetailsForPeriod(__spreadArray(__spreadArray([], subNdcDetails, true), [emptySubNdcRow], false));
26508
+ setNdcSubActionsForMainAction(record.id);
26455
26509
  };
26456
- function ndcDetailsTableContent() {
26510
+ function addNewPeriodContent() {
26511
+ return (React.createElement("div", null,
26512
+ React.createElement(Row, { justify: "start", align: "middle", gutter: [16, 16] },
26513
+ React.createElement(Col, { flex: "340px" },
26514
+ React.createElement(RangePicker, { onChange: onDateRangeChanged, picker: "year" })),
26515
+ React.createElement(Col, { flex: "auto" },
26516
+ React.createElement(Button, { type: "primary", onClick: onAddNewPeriod, htmlType: "submit", loading: loading }, t("ndc:submit"))))));
26517
+ }
26518
+ function mainNdcActionTableContent() {
26457
26519
  return (React.createElement("div", null,
26458
26520
  React.createElement(Row, null,
26459
26521
  React.createElement(Col, { span: 24 },
26460
26522
  React.createElement(Form, { form: form, component: false },
26461
26523
  React.createElement(Table, { key: tableKey, rowKey: "id", components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: ndcMainDetailsForPeriod, columns: columns, expandedRowKeys: expandedRowKeys, onExpand: onMainTableRowExpand, expandable: {
26462
- expandedRowRender: function (record) { return getSubNdcActionContent(record); },
26524
+ expandedRowRender: function (record) {
26525
+ return subNdcActionTableContent();
26526
+ },
26463
26527
  indentSize: 0,
26464
- //defaultExpandedRowKeys: [parseInt(selectedNdcDetail.current.id)],
26465
26528
  }, onRow: function (record, rowIndex) {
26466
26529
  return {
26467
26530
  onClick: function () {
26468
- if (record.id && isMainNdcActionsEditable && !isEditing(record)) {
26469
- form.setFieldsValue(__assign({}, record));
26470
- setEditingKey(record.id);
26471
- }
26472
- },
26473
- onMouseLeave: function () {
26474
26531
  if (isEditing(record)) {
26475
26532
  handleSave(record);
26476
26533
  }
26477
26534
  },
26478
26535
  };
26536
+ }, onHeaderRow: function () {
26537
+ return {
26538
+ onClick: function () {
26539
+ if (editingKey === -1) {
26540
+ var record = ndcDetailsData.find(function (item) { return item.id === editingKey; });
26541
+ if (record) {
26542
+ handleSave(record);
26543
+ }
26544
+ }
26545
+ },
26546
+ };
26479
26547
  }, footer: function () {
26480
26548
  return isGovernmentUser &&
26481
26549
  !selectedPeriod.finalized && (React.createElement(Row, { justify: "center" },
@@ -26488,6 +26556,29 @@ var NdcDetailsComponent = function (props) {
26488
26556
  React.createElement(Button, { className: "mg-left-1", type: "primary", onClick: onClickedDeletePeriod, htmlType: "submit", loading: loading }, t("ndc:delete")),
26489
26557
  React.createElement(Button, { className: "mg-left-1", type: "primary", onClick: onClickedFinalizePeriod, htmlType: "submit", loading: loading }, t("ndc:finalize")))) : ("")));
26490
26558
  }
26559
+ function subNdcActionTableContent(record) {
26560
+ console.log("d1 return subNdcActionTableContent", subNdcDetailsForPeriod);
26561
+ return (React.createElement(Table, { key: subTableKey, rowKey: "id", components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: subNdcDetailsForPeriod, onRow: function (record, rowIndex) {
26562
+ return {
26563
+ onClick: function () {
26564
+ if (isEditing(record)) {
26565
+ handleSave(record);
26566
+ }
26567
+ },
26568
+ };
26569
+ }, onHeaderRow: function () {
26570
+ return {
26571
+ onClick: function () {
26572
+ if (editingKey === -1) {
26573
+ var record_1 = ndcDetailsData.find(function (item) { return item.id === editingKey; });
26574
+ if (record_1) {
26575
+ handleSave(record_1);
26576
+ }
26577
+ }
26578
+ },
26579
+ };
26580
+ }, columns: columns, showHeader: false, pagination: false }));
26581
+ }
26491
26582
  var onAddNewPeriod = function () { return __awaiter(void 0, void 0, void 0, function () {
26492
26583
  var periodItem_1, existingIndex, response, addedPeriodItem, updatedPeriodItem_1;
26493
26584
  return __generator(this, function (_a) {
@@ -26533,32 +26624,6 @@ var NdcDetailsComponent = function (props) {
26533
26624
  };
26534
26625
  selectedDateRangeRef.current = period;
26535
26626
  };
26536
- function addNewPeriodContent() {
26537
- return (React.createElement("div", null,
26538
- React.createElement(Row, { justify: "start", align: "middle", gutter: [16, 16] },
26539
- React.createElement(Col, { flex: "340px" },
26540
- React.createElement(RangePicker, { onChange: onDateRangeChanged, picker: "year" })),
26541
- React.createElement(Col, { flex: "auto" },
26542
- React.createElement(Button, { type: "primary", onClick: onAddNewPeriod, htmlType: "submit", loading: loading }, t("ndc:submit"))))));
26543
- }
26544
- function getSubNdcActionContent(record) {
26545
- selectedNdcDetail.current = record;
26546
- return (React.createElement(Table, { rowKey: "id", components: components, rowClassName: function () { return "editable-row"; }, bordered: true, dataSource: subNdcDetailsForPeriod, onRow: function (record, rowIndex) {
26547
- return {
26548
- onClick: function () {
26549
- if (record.id && isSubNdcActionsEditable(record) && !isEditing(record)) {
26550
- form.setFieldsValue(__assign({}, record));
26551
- setEditingKey(record.id);
26552
- }
26553
- },
26554
- onMouseLeave: function () {
26555
- if (isEditing(record)) {
26556
- handleSave(record);
26557
- }
26558
- },
26559
- };
26560
- }, columns: columns, showHeader: false, pagination: false }));
26561
- }
26562
26627
  var onTabChange = function (key) {
26563
26628
  var selectedPeriod = periodItems.find(function (item) { return item.key === key; });
26564
26629
  if (selectedPeriod) {
@@ -26566,24 +26631,24 @@ var NdcDetailsComponent = function (props) {
26566
26631
  }
26567
26632
  };
26568
26633
  var onActionConfirmed = function () { return __awaiter(void 0, void 0, void 0, function () {
26569
- var response, response, response, result;
26634
+ var actionResponse;
26570
26635
  return __generator(this, function (_a) {
26571
26636
  switch (_a.label) {
26572
26637
  case 0:
26573
26638
  if (!(actionInfo.action === "Approve")) return [3 /*break*/, 2];
26574
- return [4 /*yield*/, get("national/programme/approveNdcDetailsAction", {
26639
+ return [4 /*yield*/, post("national/programme/approveNdcDetailsAction", {
26575
26640
  id: actionInfo.recordId,
26576
26641
  })];
26577
26642
  case 1:
26578
- response = _a.sent();
26643
+ actionResponse = _a.sent();
26579
26644
  return [3 /*break*/, 8];
26580
26645
  case 2:
26581
26646
  if (!(actionInfo.action === "Reject")) return [3 /*break*/, 4];
26582
- return [4 /*yield*/, get("national/programme/rejectNdcDetailsAction", {
26647
+ return [4 /*yield*/, post("national/programme/rejectNdcDetailsAction", {
26583
26648
  id: actionInfo.recordId,
26584
26649
  })];
26585
26650
  case 3:
26586
- response = _a.sent();
26651
+ actionResponse = _a.sent();
26587
26652
  return [3 /*break*/, 8];
26588
26653
  case 4:
26589
26654
  if (!(actionInfo.action === "Finalize")) return [3 /*break*/, 6];
@@ -26591,10 +26656,7 @@ var NdcDetailsComponent = function (props) {
26591
26656
  id: selectedPeriod.key,
26592
26657
  })];
26593
26658
  case 5:
26594
- response = _a.sent();
26595
- if (response) {
26596
- fetchNdcDetailPeriods();
26597
- }
26659
+ actionResponse = _a.sent();
26598
26660
  return [3 /*break*/, 8];
26599
26661
  case 6:
26600
26662
  if (!(actionInfo.action === "Delete")) return [3 /*break*/, 8];
@@ -26602,12 +26664,12 @@ var NdcDetailsComponent = function (props) {
26602
26664
  id: selectedPeriod.key,
26603
26665
  })];
26604
26666
  case 7:
26605
- result = _a.sent();
26606
- if (result) {
26607
- fetchNdcDetailPeriods();
26608
- }
26667
+ actionResponse = _a.sent();
26609
26668
  _a.label = 8;
26610
26669
  case 8:
26670
+ if (actionResponse) {
26671
+ fetchNdcDetailPeriods();
26672
+ }
26611
26673
  setOpenConfirmationModal(false);
26612
26674
  return [2 /*return*/];
26613
26675
  }
@@ -26704,7 +26766,7 @@ var NdcDetailsComponent = function (props) {
26704
26766
  React.createElement(Tabs, { centered: false, defaultActiveKey: "1", items: periodItems, activeKey: selectedPeriod.key, onChange: onTabChange })),
26705
26767
  React.createElement("div", null, selectedPeriod.key === "add_new"
26706
26768
  ? addNewPeriodContent()
26707
- : ndcDetailsTableContent()),
26769
+ : mainNdcActionTableContent()),
26708
26770
  React.createElement(UserActionConfirmationModel, { t: t, actionInfo: actionInfo, onActionConfirmed: onActionConfirmed, onActionCanceled: onActionCanceled, openModal: openConfirmationModal, errorMsg: "", loading: false })));
26709
26771
  };
26710
26772