@undp/carbon-library 1.0.135-CARBON-343.1 → 1.0.135-CARBON-343.2

Sign up to get free protection for your applications and to get access to all the features.
package/dist/cjs/index.js CHANGED
@@ -23568,7 +23568,239 @@ var RegistryDashboardComponent = function (props) {
23568
23568
  lastUpdateTransferLocations))))))))) : ("")));
23569
23569
  };
23570
23570
 
23571
- React.createContext(null);
23571
+ var EditableContext = React.createContext(null);
23572
+ var EditableRow = function (_a) {
23573
+ _a.index; var props = __rest(_a, ["index"]);
23574
+ var form = antd.Form.useForm()[0];
23575
+ return (React.createElement(antd.Form, { form: form, component: false },
23576
+ React.createElement(EditableContext.Provider, { value: form },
23577
+ React.createElement("tr", __assign({}, props)))));
23578
+ };
23579
+ var EditableCell = function (_a) {
23580
+ var title = _a.title, editable = _a.editable, children = _a.children, dataIndex = _a.dataIndex, record = _a.record, handleSave = _a.handleSave, restProps = __rest(_a, ["title", "editable", "children", "dataIndex", "record", "handleSave"]);
23581
+ var _b = React.useState(false), editing = _b[0], setEditing = _b[1];
23582
+ var inputRef = React.useRef(null);
23583
+ var form = React.useContext(EditableContext);
23584
+ React.useEffect(function () {
23585
+ if (editing) {
23586
+ inputRef.current.focus();
23587
+ }
23588
+ }, [editing]);
23589
+ var toggleEdit = function () {
23590
+ var _a;
23591
+ setEditing(!editing);
23592
+ form.setFieldsValue((_a = {}, _a[dataIndex] = record[dataIndex], _a));
23593
+ };
23594
+ var save = function () { return __awaiter(void 0, void 0, void 0, function () {
23595
+ var values, errInfo_1;
23596
+ return __generator(this, function (_a) {
23597
+ switch (_a.label) {
23598
+ case 0:
23599
+ _a.trys.push([0, 2, , 3]);
23600
+ return [4 /*yield*/, form.validateFields()];
23601
+ case 1:
23602
+ values = _a.sent();
23603
+ toggleEdit();
23604
+ handleSave(__assign(__assign({}, record), values));
23605
+ return [3 /*break*/, 3];
23606
+ case 2:
23607
+ errInfo_1 = _a.sent();
23608
+ console.log('Save failed:', errInfo_1);
23609
+ return [3 /*break*/, 3];
23610
+ case 3: return [2 /*return*/];
23611
+ }
23612
+ });
23613
+ }); };
23614
+ var childNode = children;
23615
+ if (editable) {
23616
+ childNode = editing ? (React.createElement(antd.Form.Item, { style: { margin: 0 }, name: dataIndex, rules: [
23617
+ {
23618
+ required: true,
23619
+ message: "".concat(title, " is required."),
23620
+ },
23621
+ ] },
23622
+ React.createElement(antd.Input, { ref: inputRef, onPressEnter: save, onBlur: save }))) : (React.createElement("div", { className: "editable-cell-value-wrap", style: { paddingRight: 24 }, onClick: toggleEdit }, children));
23623
+ }
23624
+ return React.createElement("td", __assign({}, restProps), childNode);
23625
+ };
23626
+
23627
+ var NdcDetailsComponent = function (props) {
23628
+ var t = props.t; props.useConnection;
23629
+ var RangePicker = antd.DatePicker.RangePicker;
23630
+ var _a = React.useState([]), ndcDetailsData = _a[0], setNdcDetailsData = _a[1];
23631
+ var _b = React.useState(false), loading = _b[0]; _b[1];
23632
+ var _c = React.useState([]), periodItems = _c[0], setPeriodItems = _c[1];
23633
+ var _d = React.useState('add_new'), selectedTab = _d[0], setSelectedTab = _d[1];
23634
+ var selectedPeriod = React.useRef({});
23635
+ var handleSave = function (row) {
23636
+ var newData = __spreadArray([], ndcDetailsData, true);
23637
+ var index = newData.findIndex(function (item) { return row.key === item.key; });
23638
+ var item = newData[index];
23639
+ newData.splice(index, 1, __assign(__assign({}, item), row));
23640
+ setNdcDetailsData(newData);
23641
+ };
23642
+ var defaultColumns = [
23643
+ {
23644
+ title: t('ndc:ndcColumnsStartDate'),
23645
+ dataIndex: 'startDate',
23646
+ key: 'startDate',
23647
+ align: 'left',
23648
+ editable: true,
23649
+ render: function (record) {
23650
+ return (React.createElement("div", null,
23651
+ React.createElement("p", null, moment(record.startDate).format('DD-MM-YYYY'))));
23652
+ },
23653
+ },
23654
+ {
23655
+ title: t('ndc:ndcColumnsEndDate'),
23656
+ dataIndex: 'endDate',
23657
+ key: 'endDate',
23658
+ align: 'left',
23659
+ editable: true,
23660
+ render: function (record) {
23661
+ return (React.createElement("div", null,
23662
+ React.createElement("p", null, moment(record.endDate).format('DD-MM-YYYY'))));
23663
+ },
23664
+ },
23665
+ {
23666
+ title: t('ndc:ndcColumnsNationalPlanObj'),
23667
+ dataIndex: 'nationalPlanObj',
23668
+ key: 'nationalPlanObj',
23669
+ align: 'left',
23670
+ editable: true,
23671
+ },
23672
+ {
23673
+ title: t('ndc:ndcColumnsKpi'),
23674
+ dataIndex: 'kpi',
23675
+ key: 'kpi',
23676
+ align: 'left',
23677
+ editable: true,
23678
+ },
23679
+ ];
23680
+ var columns = defaultColumns.map(function (col) {
23681
+ if (!col.editable) {
23682
+ return col;
23683
+ }
23684
+ return __assign(__assign({}, col), { onCell: function (record) { return ({
23685
+ record: record,
23686
+ editable: col.editable,
23687
+ dataIndex: col.dataIndex,
23688
+ title: col.title,
23689
+ handleSave: handleSave,
23690
+ }); } });
23691
+ });
23692
+ function onAddNewNdcDetail() {
23693
+ var newData = {
23694
+ startDate: new Date('2014-12-24 23:12:00'),
23695
+ endDate: new Date('2014-12-24 23:12:00'),
23696
+ nationalPlanObj: 'sample text2',
23697
+ kpi: 34,
23698
+ };
23699
+ setNdcDetailsData(__spreadArray(__spreadArray([], ndcDetailsData, true), [newData], false));
23700
+ }
23701
+ var components = {
23702
+ body: {
23703
+ row: EditableRow,
23704
+ cell: EditableCell,
23705
+ },
23706
+ };
23707
+ //commented because rendering issue
23708
+ function ndcDetailsTableContent() {
23709
+ return (React.createElement("div", null)
23710
+ // <div>
23711
+ // <Button
23712
+ // onClick={onAddNewNdcDetail}
23713
+ // type="primary"
23714
+ // style={{
23715
+ // marginBottom: 16,
23716
+ // }}
23717
+ // >
23718
+ // Add a row
23719
+ // </Button>
23720
+ // <Table
23721
+ // components={components}
23722
+ // rowClassName={() => 'editable-row'}
23723
+ // bordered
23724
+ // dataSource={ndcDetailsData}
23725
+ // columns={columns}
23726
+ // />
23727
+ // </div>
23728
+ );
23729
+ }
23730
+ var onCancelPeriod = function () { };
23731
+ var onAddNewPeriod = function () {
23732
+ if (selectedPeriod && selectedPeriod.current) {
23733
+ var newPeriodItem_1 = {
23734
+ key: "".concat(selectedPeriod.current.start, "-").concat(selectedPeriod.current.end),
23735
+ label: "".concat(selectedPeriod.current.start, "-").concat(selectedPeriod.current.end),
23736
+ children: ndcDetailsTableContent(),
23737
+ };
23738
+ setPeriodItems(function (items) { return __spreadArray(__spreadArray([], items, true), [newPeriodItem_1], false); });
23739
+ }
23740
+ };
23741
+ var onDateRangeChanged = function (range) {
23742
+ var period = {
23743
+ start: Number(moment(range[0]).year()),
23744
+ end: Number(moment(range[1]).year()),
23745
+ };
23746
+ selectedPeriod.current = period;
23747
+ };
23748
+ function addNewPeriodContent() {
23749
+ return (React.createElement("div", null,
23750
+ React.createElement(antd.Row, null,
23751
+ React.createElement(RangePicker, { onChange: onDateRangeChanged, picker: "year" })),
23752
+ React.createElement(antd.Row, null,
23753
+ React.createElement("div", { className: "steps-actions" },
23754
+ React.createElement(antd.Button, { type: "primary", onClick: onAddNewPeriod, htmlType: "submit", loading: loading }, t('ndc:submit')),
23755
+ React.createElement(antd.Button, { className: "back-btn", onClick: onCancelPeriod, loading: loading }, t('ndc:back'))))));
23756
+ }
23757
+ var onTabChange = function (key) {
23758
+ setSelectedTab(key);
23759
+ };
23760
+ React.useEffect(function () {
23761
+ var defaultNdcDetails = [
23762
+ {
23763
+ startDate: new Date('2022-03-25'),
23764
+ endDate: new Date('2023-03-25'),
23765
+ nationalPlanObj: 'sample text1',
23766
+ kpi: 23,
23767
+ },
23768
+ {
23769
+ startDate: new Date('2023-03-25'),
23770
+ endDate: new Date('2024-03-25'),
23771
+ nationalPlanObj: 'sample text2',
23772
+ kpi: 34,
23773
+ },
23774
+ {
23775
+ startDate: new Date('2024-03-25'),
23776
+ endDate: new Date('2025-03-25'),
23777
+ nationalPlanObj: 'sample text3',
23778
+ kpi: 25,
23779
+ },
23780
+ ];
23781
+ var addNewItem = {
23782
+ key: 'add_new',
23783
+ label: 'Add New',
23784
+ children: addNewPeriodContent(),
23785
+ };
23786
+ setPeriodItems([addNewItem]);
23787
+ setNdcDetailsData(defaultNdcDetails);
23788
+ }, []);
23789
+ return (React.createElement("div", { className: "ndc-management content-container" },
23790
+ React.createElement("div", { className: "title-bar" },
23791
+ React.createElement(antd.Row, { justify: "space-between", align: "middle" },
23792
+ React.createElement(antd.Col, { span: 20 },
23793
+ React.createElement("div", { className: "body-title" }, t('ndc:NdcTitle')),
23794
+ React.createElement("div", { className: "body-sub-title" }, t('ndc:NdcSubTitle'))))),
23795
+ React.createElement("div", null,
23796
+ React.createElement(antd.Tabs, { defaultActiveKey: "1", items: periodItems, onChange: onTabChange })),
23797
+ selectedTab !== 'add_new' && (React.createElement("div", null,
23798
+ React.createElement("div", null,
23799
+ React.createElement(antd.Button, { onClick: onAddNewNdcDetail, type: "primary", style: {
23800
+ marginBottom: 16,
23801
+ } }, "Add a row"),
23802
+ React.createElement(antd.Table, { components: components, rowClassName: function () { return 'editable-row'; }, bordered: true, dataSource: ndcDetailsData, columns: columns }))))));
23803
+ };
23572
23804
 
23573
23805
  var ImgWithFallback = function (_a) {
23574
23806
  var src = _a.src, alt = _a.alt, fallbackSrc = _a.fallbackSrc, mediaType = _a.mediaType, className = _a.className, delegated = __rest(_a, ["src", "alt", "fallbackSrc", "mediaType", "className"]);
@@ -25039,6 +25271,7 @@ exports.MrvDashboardComponent = MrvDashboardComponent;
25039
25271
  exports.NdcActionBody = NdcActionBody;
25040
25272
  exports.NdcActionManagementComponent = NdcActionManagementComponent;
25041
25273
  exports.NdcActionViewComponent = NdcActionViewComponent;
25274
+ exports.NdcDetailsComponent = NdcDetailsComponent;
25042
25275
  exports.OrganisationStatus = OrganisationStatus;
25043
25276
  exports.ProfileIcon = ProfileIcon;
25044
25277
  exports.ProgrammeCertify = ProgrammeCertify;