@apexcura/ui-components 0.0.12 → 0.0.13-Beta1

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,45 @@ 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) => {
191
- const handleChange = (e) => {
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;
199
+ const handleChange = (option) => {
200
+ console.log(option);
201
+ setSelectedValue(option);
202
+ setIsDisabled(true);
192
203
  if (props.onChange) {
193
- const selectedVal = e.target.value;
194
- const selectedOptions = [{ id: selectedVal, value: selectedVal }];
195
- props.onChange(selectedOptions);
204
+ props.onChange(option);
196
205
  }
197
206
  };
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"));
207
+ const getButtonStyle = (option) => {
208
+ return selectedValue === option.value ? `${radioSelectedDefaultStyle} ${props.activeClassName}` : `${radioDefaultStyle} ${props.className}`;
209
+ };
210
+ 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(
211
+ import_antd6.Radio.Group,
212
+ {
213
+ optionType,
214
+ className: props.radioGroupClassName,
215
+ value: selectedValue
216
+ },
217
+ props.options && props.options.map((option) => /* @__PURE__ */ import_react6.default.createElement(
218
+ import_antd6.Radio,
219
+ {
220
+ onChange: () => {
221
+ handleChange(option);
222
+ },
223
+ key: option.value,
224
+ value: option.value,
225
+ disabled: isDisabled && selectedValue !== option.value,
226
+ className: getButtonStyle(option),
227
+ style: { pointerEvents: isDisabled && selectedValue !== option.value ? "none" : "auto" }
228
+ },
229
+ option.label
230
+ ))
231
+ ));
199
232
  };
200
233
 
201
234
  // src/Components/Checkbox.tsx
@@ -229,7 +262,7 @@ var CheckboxElement = (props) => {
229
262
  disabled: props.disabled,
230
263
  id: props.name,
231
264
  style: props.styles,
232
- className: props.classNames,
265
+ className: props.className,
233
266
  onChange: onHandleAllChanges,
234
267
  checked: checkAll
235
268
  },
@@ -239,7 +272,7 @@ var CheckboxElement = (props) => {
239
272
  {
240
273
  disabled: props.disabled,
241
274
  style: props.styles,
242
- className: props.classNames,
275
+ className: props.className,
243
276
  options: plainOptions,
244
277
  value: checkedList,
245
278
  onChange: handleChange
@@ -266,8 +299,7 @@ var CkEditor = (props) => {
266
299
  {
267
300
  apiKey: "rwpgt7maa54n0pe5mglhkl686p7h57sg6z636n6gf2mio1b9",
268
301
  onInit: (_evt, editor) => {
269
- if (editor)
270
- editorRef.current = editor;
302
+ if (editor) editorRef.current = editor;
271
303
  },
272
304
  initialValue: "<p>This is the initial content of the editor.</p>",
273
305
  init: {
@@ -355,16 +387,419 @@ var MultipleSelectElement = (props) => {
355
387
 
356
388
  // src/Components/Button.tsx
357
389
  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"));
390
+ var ButtonElement = (props) => {
391
+ const handleClick = typeof props.action === "string" ? () => {
392
+ console.log("Performing action:", props.action);
393
+ } : props.action;
394
+ return /* @__PURE__ */ import_react12.default.createElement(
395
+ "button",
396
+ {
397
+ onClick: handleClick,
398
+ className: `${props.className ? props.className : ""}`
399
+ },
400
+ props.icon && /* @__PURE__ */ import_react12.default.createElement("img", { src: props.icon }),
401
+ props.label
402
+ );
403
+ };
360
404
 
361
405
  // src/Components/AddMoreTable.tsx
362
406
  var import_react13 = __toESM(require("react"));
407
+ var import_antd10 = require("antd");
408
+ var import_icons2 = require("@ant-design/icons");
363
409
  var AddMoreTable = (props) => {
364
410
  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);
411
+ const [rows, setRows] = (0, import_react13.useState)(tbody || []);
412
+ const onHandleRows = () => {
413
+ const newId = rows.length > 0 ? rows[rows.length - 1].id + 1 : 1;
414
+ let newRow = {
415
+ id: newId,
416
+ label: "Medicine",
417
+ name: "Medicine",
418
+ type: "text",
419
+ element: "single-select",
420
+ variable_data: [
421
+ {
422
+ id: 1,
423
+ Route: { label: "Route", element: "single-select", type: "text" },
424
+ Dose: { label: "Dose", element: "single-select", type: "text" },
425
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
426
+ When: { label: "When", element: "textarea", type: "text" },
427
+ Duration: { label: "Duration", element: "textarea", type: "text" },
428
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
429
+ SubRows: { delete: "delete", add: "plus" }
430
+ }
431
+ ]
432
+ };
433
+ setRows((prevData) => [...prevData, newRow]);
434
+ };
435
+ const onHandleDelete = (id) => {
436
+ setRows((prevRows) => prevRows.filter((row) => row.id !== id));
437
+ };
438
+ const onHandleSubRowsAdd = (rowIndex) => {
439
+ setRows((prevRows) => {
440
+ return prevRows.map((row, index) => {
441
+ if (index === rowIndex) {
442
+ const newSubRow = {
443
+ id: row.variable_data.length + 1,
444
+ Route: { label: "Route", element: "single-select", type: "text" },
445
+ Dose: { label: "Dose", element: "single-select", type: "text" },
446
+ Frequency: { label: "Frequency", element: "single-select", type: "text" },
447
+ When: { label: "When", element: "textarea", type: "text" },
448
+ Duration: { label: "Duration", element: "textarea", type: "text" },
449
+ Instructions: { label: "Instructions", element: "textarea", type: "text" },
450
+ SubRows: { delete: "delete", add: "plus" }
451
+ };
452
+ const updatedVariableData = [...row.variable_data, newSubRow];
453
+ return {
454
+ ...row,
455
+ variable_data: updatedVariableData
456
+ };
457
+ }
458
+ return row;
459
+ });
460
+ });
461
+ };
462
+ const onHandleSubRowsDelete = (rowIndex, subIndex) => {
463
+ setRows((prevRows) => {
464
+ return prevRows.map((row, index) => {
465
+ if (index === rowIndex) {
466
+ const updatedVariableData = row.variable_data.filter((_, i) => i !== subIndex);
467
+ return {
468
+ ...row,
469
+ variable_data: updatedVariableData
470
+ };
471
+ }
472
+ return row;
473
+ });
474
+ });
475
+ };
476
+ (0, import_react13.useEffect)(() => {
477
+ console.log(rows);
478
+ }, [rows]);
479
+ const renderInputElement = (element, value) => {
480
+ if (!element) return null;
481
+ const { element: type, label } = element;
482
+ if (type === "single-select") {
483
+ return /* @__PURE__ */ import_react13.default.createElement(SingleSelectElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
484
+ } else if (type === "textarea") {
485
+ return /* @__PURE__ */ import_react13.default.createElement(TextareaElement, { onChange: (value2) => console.log(label, value2), optionType: "", className: void 0, selectedStyle: false, style: false });
486
+ } else {
487
+ return null;
488
+ }
489
+ };
490
+ const dataSource = rows.map((eachRow, rowIndex) => {
491
+ const rowData = {
492
+ key: eachRow.id,
493
+ "#": rowIndex + 1,
494
+ "Medicine": renderInputElement({
495
+ element: eachRow.element,
496
+ label: eachRow.label
497
+ })
498
+ };
499
+ eachRow.variable_data.forEach((variable, subIndex) => {
500
+ Object.keys(variable).forEach((key) => {
501
+ if (key === "SubRows") {
502
+ 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)));
503
+ } else {
504
+ rowData[`${key}`] = renderInputElement(variable[key]);
505
+ }
506
+ });
507
+ });
508
+ 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)));
509
+ console.log("=====rowdata", rowData);
510
+ return rowData;
511
+ });
512
+ const columns = thead && thead.length > 0 ? thead.map((eachHeadEl) => ({
513
+ title: eachHeadEl.label,
514
+ dataIndex: eachHeadEl.name,
515
+ key: eachHeadEl.id
516
+ })) : [];
517
+ if (!columns.some((col) => col.dataIndex === "actions")) {
518
+ columns.push({
519
+ title: "Actions",
520
+ dataIndex: "actions",
521
+ key: "actions"
522
+ });
523
+ }
524
+ return /* @__PURE__ */ import_react13.default.createElement(
525
+ import_antd10.Table,
526
+ {
527
+ columns,
528
+ dataSource,
529
+ pagination: false,
530
+ bordered: true
531
+ }
532
+ );
533
+ };
534
+
535
+ // src/Components/Sidebar.tsx
536
+ var import_react14 = __toESM(require("react"));
537
+ var Sidebar = (props) => {
538
+ const handleChange = (item) => {
539
+ if (props.onChange) {
540
+ props.onChange(item);
541
+ }
542
+ };
543
+ 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) => {
544
+ return /* @__PURE__ */ import_react14.default.createElement("li", { onClick: () => {
545
+ handleChange(item);
546
+ }, 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));
547
+ })));
548
+ };
549
+
550
+ // src/Components/Navbar.tsx
551
+ var import_react18 = __toESM(require("react"));
552
+
553
+ // src/Components/Notification.tsx
554
+ var import_react15 = __toESM(require("react"));
555
+ var import_antd11 = require("antd");
556
+ var import_io = require("react-icons/io");
557
+ var popoverContentStyle = {
558
+ minWidth: "300px",
559
+ maxWidth: "100%"
560
+ };
561
+ var Notification = (props) => /* @__PURE__ */ import_react15.default.createElement(
562
+ import_antd11.Popover,
563
+ {
564
+ className: props.className,
565
+ content: /* @__PURE__ */ import_react15.default.createElement("div", { style: popoverContentStyle }, " ", /* @__PURE__ */ import_react15.default.createElement(
566
+ import_antd11.List,
567
+ {
568
+ itemLayout: "horizontal",
569
+ dataSource: props.items,
570
+ renderItem: (item, index) => /* @__PURE__ */ import_react15.default.createElement(import_antd11.List.Item, { key: item.text }, /* @__PURE__ */ import_react15.default.createElement(
571
+ import_antd11.List.Item.Meta,
572
+ {
573
+ avatar: /* @__PURE__ */ import_react15.default.createElement(import_antd11.Avatar, { src: `https://api.dicebear.com/7.x/miniavs/svg?seed=${index}` }),
574
+ title: item.text,
575
+ description: item.time
576
+ }
577
+ ))
578
+ }
579
+ )),
580
+ trigger: "focus",
581
+ placement: "bottomRight"
582
+ },
583
+ /* @__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))))
584
+ );
585
+
586
+ // src/Components/SpanElement.tsx
587
+ var import_react16 = __toESM(require("react"));
588
+ var SpanElement = (props) => /* @__PURE__ */ import_react16.default.createElement("span", { className: props.className }, props.label);
589
+
590
+ // src/Components/Profile.tsx
591
+ var import_react17 = __toESM(require("react"));
592
+ var import_antd12 = require("antd");
593
+ var import_icons3 = require("@ant-design/icons");
594
+ 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)));
595
+
596
+ // src/Components/Navbar.tsx
597
+ var Navbar = (props) => {
598
+ return /* @__PURE__ */ import_react18.default.createElement("div", { className: `${props.className}`, key: props.name }, props.items && props.items.map((item) => {
599
+ if (item.element === "span") {
600
+ return /* @__PURE__ */ import_react18.default.createElement(SpanElement, { ...item });
601
+ } else if (item.element === "notifications") {
602
+ return /* @__PURE__ */ import_react18.default.createElement(Notification, { ...item });
603
+ } else if (item.name === "profile") {
604
+ return /* @__PURE__ */ import_react18.default.createElement(Profile, { ...item });
605
+ }
606
+ return null;
607
+ }));
608
+ };
609
+
610
+ // src/Components/TableElement.tsx
611
+ var import_react21 = __toESM(require("react"));
612
+ var import_antd14 = require("antd");
613
+
614
+ // src/Components/Model.tsx
615
+ var import_react20 = __toESM(require("react"));
616
+ var import_antd13 = require("antd");
617
+
618
+ // src/Components/ModelBody.tsx
619
+ var import_react19 = __toESM(require("react"));
620
+ var ModelBody = (props) => {
621
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: props.modalContent && props.modalContent.className }, props.modalContent && props.modalContent.fields.map((eachField) => {
622
+ if (eachField.element === "div") {
623
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, eachField.label);
624
+ } else if (eachField.element === "input-radio") {
625
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react19.default.createElement(RadioElement, { ...eachField }));
626
+ } else if (eachField.element === "button") {
627
+ return /* @__PURE__ */ import_react19.default.createElement("div", { className: eachField.className }, /* @__PURE__ */ import_react19.default.createElement(ButtonElement, { ...eachField }));
628
+ } else {
629
+ return null;
630
+ }
631
+ }));
632
+ };
633
+
634
+ // src/Components/Model.tsx
635
+ var ModelElement = (props) => {
636
+ const { model, onCancel, selectedRecord, columns } = props;
637
+ return /* @__PURE__ */ import_react20.default.createElement(
638
+ import_antd13.Modal,
639
+ {
640
+ centered: true,
641
+ open: model,
642
+ onCancel,
643
+ footer: null,
644
+ width: 850,
645
+ title: /* @__PURE__ */ import_react20.default.createElement(
646
+ "div",
647
+ {
648
+ style: {
649
+ display: "flex",
650
+ flexWrap: "wrap",
651
+ padding: "20px",
652
+ width: "full",
653
+ margin: "-10px"
654
+ }
655
+ },
656
+ Object.entries(selectedRecord).map(([key, value]) => {
657
+ const record = columns.filter((eachColumn) => eachColumn.key === key);
658
+ 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)) : "";
659
+ })
660
+ )
661
+ },
662
+ /* @__PURE__ */ import_react20.default.createElement(ModelBody, { ...props })
663
+ );
664
+ };
665
+
666
+ // src/Components/TableElement.tsx
667
+ var TableElement = (props) => {
668
+ const { thead, tbody } = props;
669
+ const [selectedRecord, setSelectedRecord] = (0, import_react21.useState)({});
670
+ const [model, setModel] = (0, import_react21.useState)(false);
671
+ const handleChange = (record) => {
672
+ if (props.onChange) {
673
+ props.onChange(record);
674
+ }
675
+ };
676
+ let columns = [];
677
+ if (thead) {
678
+ columns = [
679
+ {
680
+ title: "#",
681
+ dataIndex: "#",
682
+ key: "#"
683
+ },
684
+ ...thead.map((col, ind) => ({
685
+ title: col.label,
686
+ dataIndex: col.name,
687
+ key: col.key,
688
+ sorter: {
689
+ compare: (a, b) => {
690
+ if (typeof a[col.key] === "number" && typeof a[col.key] === "number") {
691
+ return a[col.key] - b[col.key];
692
+ } else if (typeof a[col.key] === "string" && typeof a[col.key] === "string") {
693
+ return a[col.key].localeCompare(b[col.key]);
694
+ }
695
+ }
696
+ }
697
+ }))
698
+ ];
699
+ }
700
+ const dataSource = tbody && tbody.map((row, index) => ({
701
+ ...row,
702
+ [columns[0].key]: index + 1
703
+ }));
704
+ const count = dataSource ? dataSource.length : 0;
705
+ return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
706
+ import_antd14.Table,
707
+ {
708
+ pagination: {
709
+ showTotal: (total) => `Total: ${total} items`,
710
+ total: count,
711
+ showSizeChanger: count > 10
712
+ },
713
+ dataSource,
714
+ columns,
715
+ bordered: true,
716
+ size: props.size && props.size,
717
+ onRow: (record) => {
718
+ return {
719
+ onClick: () => {
720
+ setSelectedRecord(record);
721
+ handleChange(record);
722
+ setModel(true);
723
+ },
724
+ style: { cursor: "pointer" }
725
+ };
726
+ }
727
+ }
728
+ ), model && /* @__PURE__ */ import_react21.default.createElement(ModelElement, { selectedRecord, ...props, columns, model, onCancel: () => setModel(false) }));
729
+ };
730
+
731
+ // src/Components/DatePicker.tsx
732
+ var import_react22 = __toESM(require("react"));
733
+ var import_antd15 = require("antd");
734
+ var import_icons4 = require("@ant-design/icons");
735
+ var import_moment = __toESM(require("moment"));
736
+ var DatePickerElement = (props) => {
737
+ const [date, setDate] = (0, import_react22.useState)(null);
738
+ const handleChange = (date2, dateString) => {
739
+ console.log("date---------", date2);
740
+ console.log("datestring", dateString);
741
+ if (date2) {
742
+ const formattedDate = dateString;
743
+ console.log("formattedDate-----------------", formattedDate);
744
+ setDate(date2);
745
+ console.log("changedDate------------", date2);
746
+ if (props.onChange) {
747
+ props.onChange(formattedDate);
748
+ }
749
+ } else {
750
+ setDate(null);
751
+ if (props.onChange) {
752
+ props.onChange("");
753
+ }
754
+ }
755
+ };
756
+ const onHandleDecrement = () => {
757
+ const currentDate = date || (0, import_moment.default)();
758
+ const newDate = (0, import_moment.default)(currentDate).subtract(1, "days");
759
+ setDate(newDate);
760
+ if (props.onChange) {
761
+ props.onChange(newDate.format("lll"));
762
+ }
763
+ };
764
+ const onHandleIncrement = () => {
765
+ const currentDate = date || (0, import_moment.default)();
766
+ const newDate = (0, import_moment.default)(currentDate).add(1, "days");
767
+ setDate(newDate);
768
+ if (props.onChange) {
769
+ props.onChange(newDate.format("lll"));
770
+ }
771
+ };
772
+ 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(
773
+ import_antd15.DatePicker,
774
+ {
775
+ placeholder: props.placeholder,
776
+ value: date,
777
+ variant: "borderless",
778
+ onChange: handleChange
779
+ }
780
+ ), /* @__PURE__ */ import_react22.default.createElement("button", { onClick: onHandleIncrement }, /* @__PURE__ */ import_react22.default.createElement(import_icons4.RightOutlined, null)));
781
+ };
782
+
783
+ // src/Components/DateRangePickerElement.tsx
784
+ var import_react23 = __toESM(require("react"));
785
+ var import_antd16 = require("antd");
786
+ var import_dayjs = __toESM(require("dayjs"));
787
+ var DateRangePickerElement = (props) => {
788
+ const { RangePicker } = import_antd16.DatePicker;
789
+ const handleChange = (dates, dateStrings) => {
790
+ if (dates && props.onChange) {
791
+ props.onChange(dateStrings);
792
+ } else {
793
+ console.log("Clear");
794
+ }
795
+ };
796
+ const rangePresets = [
797
+ { label: "Last 7 Days", value: [(0, import_dayjs.default)().add(-7, "d"), (0, import_dayjs.default)()] },
798
+ { label: "Last 14 Days", value: [(0, import_dayjs.default)().add(-14, "d"), (0, import_dayjs.default)()] },
799
+ { label: "Last 30 Days", value: [(0, import_dayjs.default)().add(-30, "d"), (0, import_dayjs.default)()] },
800
+ { label: "Last 90 Days", value: [(0, import_dayjs.default)().add(-90, "d"), (0, import_dayjs.default)()] }
801
+ ];
802
+ return /* @__PURE__ */ import_react23.default.createElement(import_antd16.Space, { direction: "vertical", size: 12 }, /* @__PURE__ */ import_react23.default.createElement(RangePicker, { presets: rangePresets, onChange: handleChange }));
368
803
  };
369
804
  // Annotate the CommonJS export names for ESM import in node:
370
805
  0 && (module.exports = {
@@ -372,12 +807,17 @@ var AddMoreTable = (props) => {
372
807
  ButtonElement,
373
808
  CheckboxElement,
374
809
  CkEditor,
810
+ DatePickerElement,
811
+ DateRangePickerElement,
375
812
  MultipleSelectElement,
813
+ Navbar,
376
814
  NumberElement,
377
815
  PasswordElement,
378
816
  RadioElement,
379
817
  SelectElement,
818
+ Sidebar,
380
819
  SingleSelectElement,
820
+ TableElement,
381
821
  TextElement,
382
822
  TextareaElement
383
823
  });