@apexcura/ui-components 0.0.12 → 0.0.13-Beta0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -34,12 +34,17 @@ __export(src_exports, {
34
34
  ButtonElement: () => ButtonElement,
35
35
  CheckboxElement: () => CheckboxElement,
36
36
  CkEditor: () => CkEditor,
37
+ DatePickerElement: () => DatePickerElement,
38
+ DateRangePickerElement: () => DateRangePickerElement,
37
39
  MultipleSelectElement: () => MultipleSelectElement,
40
+ Navbar: () => Navbar,
38
41
  NumberElement: () => NumberElement,
39
42
  PasswordElement: () => PasswordElement,
40
43
  RadioElement: () => RadioElement,
41
44
  SelectElement: () => SelectElement,
45
+ Sidebar: () => Sidebar,
42
46
  SingleSelectElement: () => SingleSelectElement,
47
+ TableElement: () => TableElement,
43
48
  TextElement: () => TextElement,
44
49
  TextareaElement: () => TextareaElement
45
50
  });
@@ -49,7 +54,7 @@ module.exports = __toCommonJS(src_exports);
49
54
  var import_react = __toESM(require("react"));
50
55
  var import_antd = require("antd");
51
56
  var TextElement = (props) => {
52
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement("label", { htmlFor: props.name }, props.label), /* @__PURE__ */ import_react.default.createElement(
57
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, props.label && /* @__PURE__ */ import_react.default.createElement("label", { htmlFor: props.name }, props.label), /* @__PURE__ */ import_react.default.createElement(
53
58
  import_antd.Input,
54
59
  {
55
60
  placeholder: props.placeholder,
@@ -62,7 +67,7 @@ var TextElement = (props) => {
62
67
  type: props.type,
63
68
  status: props.status,
64
69
  style: props.styles,
65
- className: props.classNames,
70
+ className: props.className,
66
71
  variant: props.variant,
67
72
  name: props.name,
68
73
  onChange: (e) => props.onChange(e.target.value)
@@ -103,7 +108,7 @@ var NumberElement = (props) => {
103
108
  const newValue = e.target.value.replace(/[^0-9]/g, "");
104
109
  props.onChange(newValue);
105
110
  };
106
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: props.name }, props.label), /* @__PURE__ */ import_react3.default.createElement(
111
+ return /* @__PURE__ */ import_react3.default.createElement(
107
112
  import_antd3.Input,
108
113
  {
109
114
  placeholder: props.placeholder,
@@ -115,13 +120,12 @@ var NumberElement = (props) => {
115
120
  prefix: props.prefix,
116
121
  type: props.type,
117
122
  status: props.status,
118
- style: props.styles,
119
- className: props.classNames,
123
+ className: props.className,
120
124
  variant: props.variant,
121
125
  name: props.name,
122
126
  onChange: handleInputChange
123
127
  }
124
- ));
128
+ );
125
129
  };
126
130
 
127
131
  // src/Components/TextareaElement.tsx
@@ -129,7 +133,7 @@ var import_react4 = __toESM(require("react"));
129
133
  var import_antd4 = require("antd");
130
134
  var { TextArea } = import_antd4.Input;
131
135
  var TextareaElement = (props) => {
132
- return /* @__PURE__ */ import_react4.default.createElement(import_antd4.Flex, { vertical: true, gap: 32 }, /* @__PURE__ */ import_react4.default.createElement(
136
+ return /* @__PURE__ */ import_react4.default.createElement(import_antd4.Flex, null, /* @__PURE__ */ import_react4.default.createElement(
133
137
  TextArea,
134
138
  {
135
139
  placeholder: props.placeholder,
@@ -138,8 +142,7 @@ var TextareaElement = (props) => {
138
142
  disabled: props.disabled,
139
143
  id: props.name,
140
144
  status: props.status,
141
- style: props.styles,
142
- className: props.classNames,
145
+ className: props.className,
143
146
  variant: props.variant,
144
147
  name: props.name,
145
148
  showCount: true,
@@ -177,7 +180,7 @@ var SelectElement = (props) => {
177
180
  id: props.name,
178
181
  status: props.status,
179
182
  style: props.styles,
180
- className: props.classNames,
183
+ className: props.className,
181
184
  variant: props.variant,
182
185
  onChange: handleChange
183
186
  }
@@ -187,15 +190,46 @@ var SelectElement = (props) => {
187
190
  // src/Components/RadioElement.tsx
188
191
  var import_react6 = __toESM(require("react"));
189
192
  var import_antd6 = require("antd");
193
+ var radioDefaultStyle = "bg-[#F2F2F2] border border-[#919191] rounded-[8px] m-[10px] hover:bg-[#F2F2F2] text-center text-black shadow-[0px_0px_1px_1px_#919191]";
194
+ var radioSelectedDefaultStyle = "bg-[#E2D6F8] border border-[#B8A4DE] rounded-[8px] p-[6px] m-[10px] shadow-[0px_0px_1px_1px_#B8A4DE] text-center text-black shadow-[0px_0px_1px_1px_#919191]";
190
195
  var RadioElement = (props) => {
196
+ const [isDisabled, setIsDisabled] = (0, import_react6.useState)(props.disabled);
197
+ const [selectedValue, setSelectedValue] = (0, import_react6.useState)(props.value);
198
+ const optionType = props.optionType === "button" ? "button" : void 0;
191
199
  const handleChange = (e) => {
200
+ console.log(e);
201
+ const selectedVal = e.target.value;
202
+ const selectedLabel = props.options ? props.options.find((f) => f.value === selectedVal)?.label : "";
203
+ const selectedOptions = { label: selectedLabel, value: selectedVal };
204
+ setSelectedValue(selectedVal);
205
+ setIsDisabled(true);
192
206
  if (props.onChange) {
193
- const selectedVal = e.target.value;
194
- const selectedOptions = [{ id: selectedVal, value: selectedVal }];
195
207
  props.onChange(selectedOptions);
196
208
  }
197
209
  };
198
- return /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio.Group, { name: "radiogroup", defaultValue: 1 }, /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 1, onChange: handleChange }, "A"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 2, onChange: handleChange }, "B"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 3, onChange: handleChange }, "C"), /* @__PURE__ */ import_react6.default.createElement(import_antd6.Radio, { value: 4, onChange: handleChange }, "D"));
210
+ const getButtonStyle = (option) => {
211
+ return selectedValue === option.value ? `${radioSelectedDefaultStyle} ${props.activeClassName}` : `${radioDefaultStyle} ${props.className}`;
212
+ };
213
+ return /* @__PURE__ */ import_react6.default.createElement("div", { className: props.containerClassName }, props.label && /* @__PURE__ */ import_react6.default.createElement("p", { className: props.labelClassName }, props.label), /* @__PURE__ */ import_react6.default.createElement(
214
+ import_antd6.Radio.Group,
215
+ {
216
+ onChange: handleChange,
217
+ optionType,
218
+ className: props.radioGroupClassName,
219
+ value: selectedValue
220
+ },
221
+ props.options && props.options.map((option) => /* @__PURE__ */ import_react6.default.createElement(
222
+ import_antd6.Radio,
223
+ {
224
+ key: option.value,
225
+ value: option.value,
226
+ disabled: isDisabled && selectedValue !== option.value,
227
+ className: getButtonStyle(option),
228
+ style: { pointerEvents: isDisabled && selectedValue !== option.value ? "none" : "auto" }
229
+ },
230
+ option.label
231
+ ))
232
+ ));
199
233
  };
200
234
 
201
235
  // src/Components/Checkbox.tsx
@@ -229,7 +263,7 @@ var CheckboxElement = (props) => {
229
263
  disabled: props.disabled,
230
264
  id: props.name,
231
265
  style: props.styles,
232
- className: props.classNames,
266
+ className: props.className,
233
267
  onChange: onHandleAllChanges,
234
268
  checked: checkAll
235
269
  },
@@ -239,7 +273,7 @@ var CheckboxElement = (props) => {
239
273
  {
240
274
  disabled: props.disabled,
241
275
  style: props.styles,
242
- className: props.classNames,
276
+ className: props.className,
243
277
  options: plainOptions,
244
278
  value: checkedList,
245
279
  onChange: handleChange
@@ -266,8 +300,7 @@ var CkEditor = (props) => {
266
300
  {
267
301
  apiKey: "rwpgt7maa54n0pe5mglhkl686p7h57sg6z636n6gf2mio1b9",
268
302
  onInit: (_evt, editor) => {
269
- if (editor)
270
- editorRef.current = editor;
303
+ if (editor) editorRef.current = editor;
271
304
  },
272
305
  initialValue: "<p>This is the initial content of the editor.</p>",
273
306
  init: {
@@ -355,16 +388,419 @@ var MultipleSelectElement = (props) => {
355
388
 
356
389
  // src/Components/Button.tsx
357
390
  var import_react12 = __toESM(require("react"));
358
- var import_antd10 = require("antd");
359
- var ButtonElement = () => /* @__PURE__ */ import_react12.default.createElement(import_antd10.Flex, { gap: "small" }, /* @__PURE__ */ import_react12.default.createElement(import_antd10.Button, { type: "primary" }, "Primary Button"));
391
+ var ButtonElement = (props) => {
392
+ const handleClick = typeof props.action === "string" ? () => {
393
+ console.log("Performing action:", props.action);
394
+ } : props.action;
395
+ return /* @__PURE__ */ import_react12.default.createElement(
396
+ "button",
397
+ {
398
+ onClick: handleClick,
399
+ className: `${props.className ? props.className : ""}`
400
+ },
401
+ props.icon && /* @__PURE__ */ import_react12.default.createElement("img", { src: props.icon }),
402
+ props.label
403
+ );
404
+ };
360
405
 
361
406
  // src/Components/AddMoreTable.tsx
362
407
  var import_react13 = __toESM(require("react"));
408
+ var import_antd10 = require("antd");
409
+ var import_icons2 = require("@ant-design/icons");
363
410
  var AddMoreTable = (props) => {
364
411
  const { thead, tbody } = props;
365
- console.log("tbody----------", tbody);
366
- console.log("thead----------", thead);
367
- return /* @__PURE__ */ import_react13.default.createElement(import_react13.default.Fragment, null);
412
+ const [rows, setRows] = (0, import_react13.useState)(tbody || []);
413
+ const onHandleRows = () => {
414
+ const newId = rows.length > 0 ? rows[rows.length - 1].id + 1 : 1;
415
+ let newRow = {
416
+ id: newId,
417
+ label: "Medicine",
418
+ name: "Medicine",
419
+ type: "text",
420
+ element: "single-select",
421
+ variable_data: [
422
+ {
423
+ id: 1,
424
+ Route: { label: "Route", element: "single-select", type: "text" },
425
+ Dose: { label: "Dose", element: "single-select", type: "text" },
426
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
427
+ When: { label: "When", element: "textarea", type: "text" },
428
+ Duration: { label: "Duration", element: "textarea", type: "text" },
429
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
430
+ SubRows: { delete: "delete", add: "plus" }
431
+ }
432
+ ]
433
+ };
434
+ setRows((prevData) => [...prevData, newRow]);
435
+ };
436
+ const onHandleDelete = (id) => {
437
+ setRows((prevRows) => prevRows.filter((row) => row.id !== id));
438
+ };
439
+ const onHandleSubRowsAdd = (rowIndex) => {
440
+ setRows((prevRows) => {
441
+ return prevRows.map((row, index) => {
442
+ if (index === rowIndex) {
443
+ const newSubRow = {
444
+ id: row.variable_data.length + 1,
445
+ Route: { label: "Route", element: "single-select", type: "text" },
446
+ Dose: { label: "Dose", element: "single-select", type: "text" },
447
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
448
+ When: { label: "When", element: "textarea", type: "text" },
449
+ Duration: { label: "Duration", element: "textarea", type: "text" },
450
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
451
+ SubRows: { delete: "delete", add: "plus" }
452
+ };
453
+ const updatedVariableData = [...row.variable_data, newSubRow];
454
+ return {
455
+ ...row,
456
+ variable_data: updatedVariableData
457
+ };
458
+ }
459
+ return row;
460
+ });
461
+ });
462
+ };
463
+ const onHandleSubRowsDelete = (rowIndex, subIndex) => {
464
+ setRows((prevRows) => {
465
+ return prevRows.map((row, index) => {
466
+ if (index === rowIndex) {
467
+ const updatedVariableData = row.variable_data.filter((_, i) => i !== subIndex);
468
+ return {
469
+ ...row,
470
+ variable_data: updatedVariableData
471
+ };
472
+ }
473
+ return row;
474
+ });
475
+ });
476
+ };
477
+ (0, import_react13.useEffect)(() => {
478
+ console.log(rows);
479
+ }, [rows]);
480
+ const renderInputElement = (element, value) => {
481
+ if (!element) return null;
482
+ const { element: type, label } = element;
483
+ if (type === "single-select") {
484
+ return /* @__PURE__ */ import_react13.default.createElement(SingleSelectElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
485
+ } else if (type === "textarea") {
486
+ return /* @__PURE__ */ import_react13.default.createElement(TextareaElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
487
+ } else {
488
+ return null;
489
+ }
490
+ };
491
+ const dataSource = rows.map((eachRow, rowIndex) => {
492
+ const rowData = {
493
+ key: eachRow.id,
494
+ "#": rowIndex + 1,
495
+ "Medicine": renderInputElement({
496
+ element: eachRow.element,
497
+ label: eachRow.label
498
+ })
499
+ };
500
+ eachRow.variable_data.forEach((variable, subIndex) => {
501
+ Object.keys(variable).forEach((key) => {
502
+ if (key === "SubRows") {
503
+ rowData[`${key}`] = /* @__PURE__ */ import_react13.default.createElement("div", { key: subIndex }, eachRow.variable_data.length > 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd10.Button, { onClick: () => onHandleSubRowsDelete(rowIndex, subIndex) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.DeleteOutlined, null)), subIndex === eachRow.variable_data.length - 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd10.Button, { onClick: () => onHandleSubRowsAdd(rowIndex) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.PlusOutlined, null)));
504
+ } else {
505
+ rowData[`${key}`] = renderInputElement(variable[key]);
506
+ }
507
+ });
508
+ });
509
+ rowData.actions = /* @__PURE__ */ import_react13.default.createElement("div", null, /* @__PURE__ */ import_react13.default.createElement(import_antd10.Button, { onClick: () => onHandleDelete(eachRow.id) }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.DeleteOutlined, null)), rowIndex === rows.length - 1 && /* @__PURE__ */ import_react13.default.createElement(import_antd10.Button, { onClick: onHandleRows }, /* @__PURE__ */ import_react13.default.createElement(import_icons2.PlusOutlined, null)));
510
+ console.log("=====rowdata", rowData);
511
+ return rowData;
512
+ });
513
+ const columns = thead && thead.length > 0 ? thead.map((eachHeadEl) => ({
514
+ title: eachHeadEl.label,
515
+ dataIndex: eachHeadEl.name,
516
+ key: eachHeadEl.id
517
+ })) : [];
518
+ if (!columns.some((col) => col.dataIndex === "actions")) {
519
+ columns.push({
520
+ title: "Actions",
521
+ dataIndex: "actions",
522
+ key: "actions"
523
+ });
524
+ }
525
+ return /* @__PURE__ */ import_react13.default.createElement(
526
+ import_antd10.Table,
527
+ {
528
+ columns,
529
+ dataSource,
530
+ pagination: false,
531
+ bordered: true
532
+ }
533
+ );
534
+ };
535
+
536
+ // src/Components/Sidebar.tsx
537
+ var import_react14 = __toESM(require("react"));
538
+ var Sidebar = (props) => {
539
+ const handleChange = (item) => {
540
+ if (props.onChange) {
541
+ props.onChange(item);
542
+ }
543
+ };
544
+ return /* @__PURE__ */ import_react14.default.createElement("div", { className: props.className, key: props.name }, /* @__PURE__ */ import_react14.default.createElement("div", null, /* @__PURE__ */ import_react14.default.createElement("img", { src: props.img, alt: "logo" })), /* @__PURE__ */ import_react14.default.createElement("ul", { className: props.listClassName }, props.items?.map((item) => {
545
+ return /* @__PURE__ */ import_react14.default.createElement("li", { onClick: () => {
546
+ handleChange(item);
547
+ }, key: item.label, className: `${props.listItemClassName} ${item.active && props.activeClassName}` }, /* @__PURE__ */ import_react14.default.createElement("img", { src: item.icon, className: props.className }), /* @__PURE__ */ import_react14.default.createElement("p", null, item.label));
548
+ })));
549
+ };
550
+
551
+ // src/Components/Navbar.tsx
552
+ var import_react18 = __toESM(require("react"));
553
+
554
+ // src/Components/Notification.tsx
555
+ var import_react15 = __toESM(require("react"));
556
+ var import_antd11 = require("antd");
557
+ var import_io = require("react-icons/io");
558
+ var popoverContentStyle = {
559
+ minWidth: "300px",
560
+ maxWidth: "100%"
561
+ };
562
+ var Notification = (props) => /* @__PURE__ */ import_react15.default.createElement(
563
+ import_antd11.Popover,
564
+ {
565
+ className: props.className,
566
+ content: /* @__PURE__ */ import_react15.default.createElement("div", { style: popoverContentStyle }, " ", /* @__PURE__ */ import_react15.default.createElement(
567
+ import_antd11.List,
568
+ {
569
+ itemLayout: "horizontal",
570
+ dataSource: props.items,
571
+ renderItem: (item, index) => /* @__PURE__ */ import_react15.default.createElement(import_antd11.List.Item, { key: item.text }, /* @__PURE__ */ import_react15.default.createElement(
572
+ import_antd11.List.Item.Meta,
573
+ {
574
+ avatar: /* @__PURE__ */ import_react15.default.createElement(import_antd11.Avatar, { src: `https://api.dicebear.com/7.x/miniavs/svg?seed=${index}` }),
575
+ title: item.text,
576
+ description: item.time
577
+ }
578
+ ))
579
+ }
580
+ )),
581
+ trigger: "focus",
582
+ placement: "bottomRight"
583
+ },
584
+ /* @__PURE__ */ import_react15.default.createElement(import_antd11.Button, { className: props.buttonClassName }, /* @__PURE__ */ import_react15.default.createElement(import_antd11.Badge, { size: "small", count: props.count }, /* @__PURE__ */ import_react15.default.createElement("span", { className: props.iconsClassName }, /* @__PURE__ */ import_react15.default.createElement(import_io.IoIosNotifications, null))))
585
+ );
586
+
587
+ // src/Components/SpanElement.tsx
588
+ var import_react16 = __toESM(require("react"));
589
+ var SpanElement = (props) => /* @__PURE__ */ import_react16.default.createElement("span", { className: props.className }, props.label);
590
+
591
+ // src/Components/Profile.tsx
592
+ var import_react17 = __toESM(require("react"));
593
+ var import_antd12 = require("antd");
594
+ var import_icons3 = require("@ant-design/icons");
595
+ var Profile = (props) => /* @__PURE__ */ import_react17.default.createElement("div", { className: props.className }, /* @__PURE__ */ import_react17.default.createElement(import_antd12.Avatar, { style: { backgroundColor: "#87d068", marginRight: "10px" }, icon: /* @__PURE__ */ import_react17.default.createElement(import_icons3.UserOutlined, null) }), /* @__PURE__ */ import_react17.default.createElement("div", { className: props.profileSubClassName }, /* @__PURE__ */ import_react17.default.createElement("p", null, props.primaryText), /* @__PURE__ */ import_react17.default.createElement("p", { className: props.secondTextClassName }, " ", props.secondaryText)));
596
+
597
+ // src/Components/Navbar.tsx
598
+ var Navbar = (props) => {
599
+ return /* @__PURE__ */ import_react18.default.createElement("div", { className: `${props.className}`, key: props.name }, props.items && props.items.map((item) => {
600
+ if (item.element === "span") {
601
+ return /* @__PURE__ */ import_react18.default.createElement(SpanElement, { ...item });
602
+ } else if (item.element === "notifications") {
603
+ return /* @__PURE__ */ import_react18.default.createElement(Notification, { ...item });
604
+ } else if (item.name === "profile") {
605
+ return /* @__PURE__ */ import_react18.default.createElement(Profile, { ...item });
606
+ }
607
+ return null;
608
+ }));
609
+ };
610
+
611
+ // src/Components/TableElement.tsx
612
+ var import_react21 = __toESM(require("react"));
613
+ var import_antd14 = require("antd");
614
+
615
+ // src/Components/Model.tsx
616
+ var import_react20 = __toESM(require("react"));
617
+ var import_antd13 = require("antd");
618
+
619
+ // src/Components/ModelBody.tsx
620
+ var import_react19 = __toESM(require("react"));
621
+ var ModelBody = (props) => {
622
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: props.modalContent && props.modalContent.className }, props.modalContent && props.modalContent.fields.map((eachField) => {
623
+ if (eachField.element === "div") {
624
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, eachField.label);
625
+ } else if (eachField.element === "input-radio") {
626
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react19.default.createElement(RadioElement, { ...eachField }));
627
+ } else if (eachField.element === "button") {
628
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react19.default.createElement(ButtonElement, { ...eachField }));
629
+ } else {
630
+ return null;
631
+ }
632
+ }));
633
+ };
634
+
635
+ // src/Components/Model.tsx
636
+ var ModelElement = (props) => {
637
+ const { model, onCancel, selectedRecord, columns } = props;
638
+ return /* @__PURE__ */ import_react20.default.createElement(
639
+ import_antd13.Modal,
640
+ {
641
+ centered: true,
642
+ open: model,
643
+ onCancel,
644
+ footer: null,
645
+ width: 850,
646
+ title: /* @__PURE__ */ import_react20.default.createElement(
647
+ "div",
648
+ {
649
+ style: {
650
+ display: "flex",
651
+ flexWrap: "wrap",
652
+ padding: "20px",
653
+ width: "full",
654
+ margin: "-10px"
655
+ }
656
+ },
657
+ Object.entries(selectedRecord).map(([key, value]) => {
658
+ const record = columns.filter((eachColumn) => eachColumn.key === key);
659
+ return record.length > 0 ? /* @__PURE__ */ import_react20.default.createElement("p", { style: { fontWeight: "500", padding: "10px" }, key }, /* @__PURE__ */ import_react20.default.createElement("span", { style: { fontWeight: "200", color: "gray", paddingRight: "10px" } }, record[0].title), String(value)) : "";
660
+ })
661
+ )
662
+ },
663
+ /* @__PURE__ */ import_react20.default.createElement(ModelBody, { ...props })
664
+ );
665
+ };
666
+
667
+ // src/Components/TableElement.tsx
668
+ var TableElement = (props) => {
669
+ const { thead, tbody } = props;
670
+ const [selectedRecord, setSelectedRecord] = (0, import_react21.useState)({});
671
+ const [model, setModel] = (0, import_react21.useState)(false);
672
+ const handleChange = (record) => {
673
+ if (props.onChange) {
674
+ props.onChange(record);
675
+ }
676
+ };
677
+ let columns = [];
678
+ if (thead) {
679
+ columns = [
680
+ {
681
+ title: "#",
682
+ dataIndex: "#",
683
+ key: "#"
684
+ },
685
+ ...thead.map((col, ind) => ({
686
+ title: col.label,
687
+ dataIndex: col.name,
688
+ key: col.key,
689
+ sorter: {
690
+ compare: (a, b) => {
691
+ if (typeof a[col.key] === "number" && typeof a[col.key] === "number") {
692
+ return a[col.key] - b[col.key];
693
+ } else if (typeof a[col.key] === "string" && typeof a[col.key] === "string") {
694
+ return a[col.key].localeCompare(b[col.key]);
695
+ }
696
+ }
697
+ }
698
+ }))
699
+ ];
700
+ }
701
+ const dataSource = tbody && tbody.map((row, index) => ({
702
+ ...row,
703
+ [columns[0].key]: index + 1
704
+ }));
705
+ const count = dataSource ? dataSource.length : 0;
706
+ return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
707
+ import_antd14.Table,
708
+ {
709
+ pagination: {
710
+ showTotal: (total) => `Total: ${total} items`,
711
+ total: count,
712
+ showSizeChanger: count > 10
713
+ },
714
+ dataSource,
715
+ columns,
716
+ bordered: true,
717
+ size: props.size && props.size,
718
+ onRow: (record) => {
719
+ return {
720
+ onClick: () => {
721
+ setSelectedRecord(record);
722
+ handleChange(record);
723
+ setModel(true);
724
+ },
725
+ style: { cursor: "pointer" }
726
+ };
727
+ }
728
+ }
729
+ ), model && /* @__PURE__ */ import_react21.default.createElement(ModelElement, { selectedRecord, ...props, columns, model, onCancel: () => setModel(false) }));
730
+ };
731
+
732
+ // src/Components/DatePicker.tsx
733
+ var import_react22 = __toESM(require("react"));
734
+ var import_antd15 = require("antd");
735
+ var import_icons4 = require("@ant-design/icons");
736
+ var import_moment = __toESM(require("moment"));
737
+ var DatePickerElement = (props) => {
738
+ const [date, setDate] = (0, import_react22.useState)(null);
739
+ const handleChange = (date2, dateString) => {
740
+ console.log("date---------", date2);
741
+ console.log("datestring", dateString);
742
+ if (date2) {
743
+ const formattedDate = dateString;
744
+ console.log("formattedDate-----------------", formattedDate);
745
+ setDate(date2);
746
+ console.log("changedDate------------", date2);
747
+ if (props.onChange) {
748
+ props.onChange(formattedDate);
749
+ }
750
+ } else {
751
+ setDate(null);
752
+ if (props.onChange) {
753
+ props.onChange("");
754
+ }
755
+ }
756
+ };
757
+ const onHandleDecrement = () => {
758
+ const currentDate = date || (0, import_moment.default)();
759
+ const newDate = (0, import_moment.default)(currentDate).subtract(1, "days");
760
+ setDate(newDate);
761
+ if (props.onChange) {
762
+ props.onChange(newDate.format("lll"));
763
+ }
764
+ };
765
+ const onHandleIncrement = () => {
766
+ const currentDate = date || (0, import_moment.default)();
767
+ const newDate = (0, import_moment.default)(currentDate).add(1, "days");
768
+ setDate(newDate);
769
+ if (props.onChange) {
770
+ props.onChange(newDate.format("lll"));
771
+ }
772
+ };
773
+ return /* @__PURE__ */ import_react22.default.createElement("div", null, /* @__PURE__ */ import_react22.default.createElement("button", { onClick: onHandleDecrement }, /* @__PURE__ */ import_react22.default.createElement(import_icons4.LeftOutlined, null)), /* @__PURE__ */ import_react22.default.createElement(
774
+ import_antd15.DatePicker,
775
+ {
776
+ placeholder: props.placeholder,
777
+ value: date,
778
+ variant: "borderless",
779
+ onChange: handleChange
780
+ }
781
+ ), /* @__PURE__ */ import_react22.default.createElement("button", { onClick: onHandleIncrement }, /* @__PURE__ */ import_react22.default.createElement(import_icons4.RightOutlined, null)));
782
+ };
783
+
784
+ // src/Components/DateRangePickerElement.tsx
785
+ var import_react23 = __toESM(require("react"));
786
+ var import_antd16 = require("antd");
787
+ var import_dayjs = __toESM(require("dayjs"));
788
+ var DateRangePickerElement = (props) => {
789
+ const { RangePicker } = import_antd16.DatePicker;
790
+ const handleChange = (dates, dateStrings) => {
791
+ if (dates && props.onChange) {
792
+ props.onChange(dateStrings);
793
+ } else {
794
+ console.log("Clear");
795
+ }
796
+ };
797
+ const rangePresets = [
798
+ { label: "Last 7 Days", value: [(0, import_dayjs.default)().add(-7, "d"), (0, import_dayjs.default)()] },
799
+ { label: "Last 14 Days", value: [(0, import_dayjs.default)().add(-14, "d"), (0, import_dayjs.default)()] },
800
+ { label: "Last 30 Days", value: [(0, import_dayjs.default)().add(-30, "d"), (0, import_dayjs.default)()] },
801
+ { label: "Last 90 Days", value: [(0, import_dayjs.default)().add(-90, "d"), (0, import_dayjs.default)()] }
802
+ ];
803
+ return /* @__PURE__ */ import_react23.default.createElement(import_antd16.Space, { direction: "vertical", size: 12 }, /* @__PURE__ */ import_react23.default.createElement(RangePicker, { presets: rangePresets, onChange: handleChange }));
368
804
  };
369
805
  // Annotate the CommonJS export names for ESM import in node:
370
806
  0 && (module.exports = {
@@ -372,12 +808,17 @@ var AddMoreTable = (props) => {
372
808
  ButtonElement,
373
809
  CheckboxElement,
374
810
  CkEditor,
811
+ DatePickerElement,
812
+ DateRangePickerElement,
375
813
  MultipleSelectElement,
814
+ Navbar,
376
815
  NumberElement,
377
816
  PasswordElement,
378
817
  RadioElement,
379
818
  SelectElement,
819
+ Sidebar,
380
820
  SingleSelectElement,
821
+ TableElement,
381
822
  TextElement,
382
823
  TextareaElement
383
824
  });