sccoreui 5.7.6 → 5.7.7

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.
Files changed (110) hide show
  1. package/dist/App.scss +3 -0
  2. package/dist/assets/sccoreui.css +1 -1
  3. package/dist/components/ag-grid/AgGrid.js +1 -1
  4. package/dist/components/ag-grid/ParentForGrid.js +13 -14
  5. package/dist/components/ag-grid/RowDetailsRenderer.js +9 -0
  6. package/dist/components/ag-grid/StatusDropdown.js +24 -0
  7. package/dist/components/ag-grid/Types.js +23 -9
  8. package/dist/components/ag-grid/advancedFeature/advanced-feature.js +2 -3
  9. package/dist/components/ag-grid/advancedFeature/bulk-actions.js +33 -0
  10. package/dist/components/ag-grid/advancedFeature/bulkActions/bulk-actions.js +19 -7
  11. package/dist/components/ag-grid/advancedFeature/bulkActions/input-box.js +2 -2
  12. package/dist/components/ag-grid/advancedFeature/custom-sort.js +44 -19
  13. package/dist/components/ag-grid/advancedFeature/filter/filter.js +73 -3
  14. package/dist/components/ag-grid/advancedFeature/filter/querty.js +120 -2
  15. package/dist/components/ag-grid/advancedFeature/filter.js +7 -0
  16. package/dist/components/ag-grid/constants.js +35 -21
  17. package/dist/pages/aggrid/AgGrid.js +174 -0
  18. package/dist/pages/avatar/avatar.js +338 -0
  19. package/dist/pages/badges/badge.js +73 -0
  20. package/dist/pages/breadcrumb/breadcrumb.js +14 -0
  21. package/dist/pages/button/button.js +10 -0
  22. package/dist/pages/button-group/button-group.js +10 -0
  23. package/dist/pages/chart/chart.js +257 -0
  24. package/dist/pages/checkbox/checkbox.js +26 -0
  25. package/dist/pages/checkbox-group/checkbox-group-component.js +21 -0
  26. package/dist/pages/color-picker/color-picker.js +13 -0
  27. package/dist/pages/content-dividers/content-dividers.js +11 -0
  28. package/dist/pages/custom-color-picker/custom-color-picker.js +12 -0
  29. package/dist/pages/date-picker/date-picker.js +20 -0
  30. package/dist/pages/dropdown/dropdown-component.js +39 -0
  31. package/dist/pages/file-upload/file-upload.js +34 -0
  32. package/dist/pages/flex.js +15 -0
  33. package/dist/pages/formulaTemplate/formulaTemplate.js +154 -0
  34. package/dist/pages/frolaTextEditor/froala-text-editor.js +12 -0
  35. package/dist/pages/home.js +47 -0
  36. package/dist/pages/input/input-text.js +112 -0
  37. package/dist/pages/list-box-dropdown/listboxdropdown.js +52 -0
  38. package/dist/pages/loader-indicator/loader-indicator.js +10 -0
  39. package/dist/pages/mega-mennu/mega-menu.js +84 -0
  40. package/dist/pages/multi-select-dropdown/multi-select-dropdown.js +51 -0
  41. package/dist/pages/not-found/not-found.js +10 -0
  42. package/dist/pages/paginator/pagination.js +122 -0
  43. package/dist/pages/progress-bar/progress-bar.js +27 -0
  44. package/dist/pages/progress-steps/progress-steps.js +24 -0
  45. package/dist/pages/radio-button/radio-button-component.js +11 -0
  46. package/dist/pages/shadows/shadows.js +7 -0
  47. package/dist/pages/slideout-menus/slideout-menus.js +104 -0
  48. package/dist/pages/sliders/slider.js +39 -0
  49. package/dist/pages/tabels/table-data.js +2193 -0
  50. package/dist/pages/tabels/table.js +98 -0
  51. package/dist/pages/tabs/tabs.js +9 -0
  52. package/dist/pages/tags/tags.js +70 -0
  53. package/dist/pages/toast/toast.js +47 -0
  54. package/dist/pages/toggle/toggle.js +10 -0
  55. package/dist/pages/tooltip/tooltip.js +13 -0
  56. package/dist/pages/treeDropdownSelect/treedropdowselect.js +34 -0
  57. package/dist/pages/types/type.js +2 -0
  58. package/dist/types/components/ag-grid/RowDetailsRenderer.d.ts +4 -0
  59. package/dist/types/components/ag-grid/StatusDropdown.d.ts +5 -0
  60. package/dist/types/components/ag-grid/Types.d.ts +46 -9
  61. package/dist/types/components/ag-grid/advancedFeature/advanced-feature.d.ts +2 -1
  62. package/dist/types/components/ag-grid/advancedFeature/bulk-actions.d.ts +4 -0
  63. package/dist/types/components/ag-grid/advancedFeature/bulkActions/bulk-actions.d.ts +1 -0
  64. package/dist/types/components/ag-grid/advancedFeature/custom-sort.d.ts +2 -1
  65. package/dist/types/components/ag-grid/advancedFeature/filter/filter.d.ts +8 -2
  66. package/dist/types/components/ag-grid/advancedFeature/filter/querty.d.ts +9 -1
  67. package/dist/types/components/ag-grid/advancedFeature/filter.d.ts +2 -0
  68. package/dist/types/components/ag-grid/constants.d.ts +3 -19
  69. package/dist/types/pages/aggrid/AgGrid.d.ts +2 -0
  70. package/dist/types/pages/avatar/avatar.d.ts +2 -0
  71. package/dist/types/pages/badges/badge.d.ts +3 -0
  72. package/dist/types/pages/breadcrumb/breadcrumb.d.ts +2 -0
  73. package/dist/types/pages/button/button.d.ts +2 -0
  74. package/dist/types/pages/button-group/button-group.d.ts +2 -0
  75. package/dist/types/pages/chart/chart.d.ts +2 -0
  76. package/dist/types/pages/checkbox/checkbox.d.ts +2 -0
  77. package/dist/types/pages/checkbox-group/checkbox-group-component.d.ts +3 -0
  78. package/dist/types/pages/color-picker/color-picker.d.ts +2 -0
  79. package/dist/types/pages/content-dividers/content-dividers.d.ts +2 -0
  80. package/dist/types/pages/custom-color-picker/custom-color-picker.d.ts +2 -0
  81. package/dist/types/pages/date-picker/date-picker.d.ts +2 -0
  82. package/dist/types/pages/dropdown/dropdown-component.d.ts +2 -0
  83. package/dist/types/pages/file-upload/file-upload.d.ts +3 -0
  84. package/dist/types/pages/flex.d.ts +2 -0
  85. package/dist/types/pages/formulaTemplate/formulaTemplate.d.ts +2 -0
  86. package/dist/types/pages/frolaTextEditor/froala-text-editor.d.ts +2 -0
  87. package/dist/types/pages/home.d.ts +2 -0
  88. package/dist/types/pages/input/input-text.d.ts +3 -0
  89. package/dist/types/pages/list-box-dropdown/listboxdropdown.d.ts +2 -0
  90. package/dist/types/pages/loader-indicator/loader-indicator.d.ts +3 -0
  91. package/dist/types/pages/mega-mennu/mega-menu.d.ts +2 -0
  92. package/dist/types/pages/multi-select-dropdown/multi-select-dropdown.d.ts +2 -0
  93. package/dist/types/pages/not-found/not-found.d.ts +2 -0
  94. package/dist/types/pages/paginator/pagination.d.ts +2 -0
  95. package/dist/types/pages/progress-bar/progress-bar.d.ts +3 -0
  96. package/dist/types/pages/progress-steps/progress-steps.d.ts +2 -0
  97. package/dist/types/pages/radio-button/radio-button-component.d.ts +2 -0
  98. package/dist/types/pages/shadows/shadows.d.ts +2 -0
  99. package/dist/types/pages/slideout-menus/slideout-menus.d.ts +2 -0
  100. package/dist/types/pages/sliders/slider.d.ts +1 -0
  101. package/dist/types/pages/tabels/table-data.d.ts +3 -0
  102. package/dist/types/pages/tabels/table.d.ts +2 -0
  103. package/dist/types/pages/tabs/tabs.d.ts +3 -0
  104. package/dist/types/pages/tags/tags.d.ts +3 -0
  105. package/dist/types/pages/toast/toast.d.ts +2 -0
  106. package/dist/types/pages/toggle/toggle.d.ts +2 -0
  107. package/dist/types/pages/tooltip/tooltip.d.ts +2 -0
  108. package/dist/types/pages/treeDropdownSelect/treedropdowselect.d.ts +2 -0
  109. package/dist/types/pages/types/type.d.ts +64 -0
  110. package/package.json +1 -1
package/dist/App.scss CHANGED
@@ -4,6 +4,9 @@
4
4
  @import url("./assets/flex.css");
5
5
  @import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap');
6
6
 
7
+
8
+ // variables
9
+
7
10
  @font-face {
8
11
  font-family: 'RobotoBold';
9
12
  src: url('./assets/fonts/Roboto-Bold.ttf') format('truetype');
@@ -1051,7 +1051,7 @@ a {
1051
1051
  width: 3rem;
1052
1052
  display: flex;
1053
1053
  align-items: center;
1054
- justify-content: center;
1054
+ /* justify-content: center; */
1055
1055
  }
1056
1056
 
1057
1057
  .p-dropdown .p-dropdown-label.p-placeholder {
@@ -12,6 +12,6 @@ const infinite_row_model_1 = require("@ag-grid-community/infinite-row-model");
12
12
  core_1.ModuleRegistry.registerModules([client_side_row_model_1.ClientSideRowModelModule, range_selection_1.RangeSelectionModule, infinite_row_model_1.InfiniteRowModelModule]);
13
13
  core_2.LicenseManager.setLicenseKey("Using_this_{AG_Grid}_Enterprise_key_{AG-056800}_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_legal@ag-grid.com___For_help_with_changing_this_key_please_contact_info@ag-grid.com___{Sellers_Commerce_LLC}_is_granted_a_{Single_Application}_Developer_License_for_the_application_{SellersCommerce}_only_for_{2}_Front-End_JavaScript_developers___All_Front-End_JavaScript_developers_working_on_{SellersCommerce}_need_to_be_licensed___{SellersCommerce}_has_been_granted_a_Deployment_License_Add-on_for_{1}_Production_Environment___This_key_works_with_{AG_Grid}_Enterprise_versions_released_before_{14_April_2025}____[v3]_[01]_MTc0NDU4NTIwMDAwMA==895f2234e1659afcfba586110daf0549");
14
14
  const AgGrid = ({ style, gridOptions, onGridReady }) => {
15
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "ag-theme-quartz ", style: { height: style.height, width: style.width } }, { children: (0, jsx_runtime_1.jsx)(react_1.AgGridReact, Object.assign({ onGridReady: onGridReady }, gridOptions)) })) }) }));
15
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "ag-theme-quartz ", style: { height: style.height, width: style.width } }, { children: (0, jsx_runtime_1.jsx)(react_1.AgGridReact, Object.assign({ onGridReady: onGridReady, reactiveCustomComponents: true }, gridOptions)) })) }) }));
16
16
  };
17
17
  exports.default = AgGrid;
@@ -17,15 +17,11 @@ function ParentForGrid(props) {
17
17
  const [featureDetails, setFeatureDetails] = (0, react_1.useState)({
18
18
  searchedText: "",
19
19
  filterQueries: [],
20
- sort: {
21
- isSortable: false,
22
- columnToSort: "",
23
- orderToSort: "",
24
- },
25
- bulkAction: {
26
- columnData: {},
27
- updatedValue: "",
28
- },
20
+ sort: {}
21
+ // bulkAction: {
22
+ // columnData: {},
23
+ // updatedValue: "",
24
+ // },
29
25
  });
30
26
  const defaultColDef = (0, react_1.useMemo)(() => {
31
27
  return {
@@ -38,8 +34,7 @@ function ParentForGrid(props) {
38
34
  }, []);
39
35
  // Callback to products for getting data
40
36
  const getData = (startRow, endRow) => tslib_1.__awaiter(this, void 0, void 0, function* () {
41
- const response = (yield props.getRowData(startRow, endRow)) || [];
42
- console.log(response.length, 'length of data');
37
+ const response = (yield props.getRowData(startRow, endRow, featureDetails)) || [];
43
38
  return response.rowData;
44
39
  });
45
40
  // Gets call onLoad,scroll and whenever any featureDetails changed
@@ -84,11 +79,15 @@ function ParentForGrid(props) {
84
79
  rowHeight: 60,
85
80
  rowModelType: "infinite", // Infinite scroll
86
81
  };
82
+ // Fucntion to call the grid
83
+ const callGrid = () => {
84
+ onGridReady(gridReadyEvent);
85
+ };
87
86
  (0, react_1.useEffect)(() => {
88
87
  if (api && gridReadyEvent) {
89
- onGridReady(gridReadyEvent);
88
+ callGrid();
90
89
  }
91
- }, [featureDetails]);
92
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ style: { height: style.height, width: style.width } }, { children: [(0, jsx_runtime_1.jsx)(advanced_feature_1.default, { featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, columnData: gridData.columnData, checkedRow: checkedRow, props: props }), (0, jsx_runtime_1.jsx)(AgGrid_1.default, { style: style, gridOptions: gridOptions, onGridReady: onGridReady })] })));
90
+ }, [featureDetails.searchedText]);
91
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ style: { height: style.height, width: style.width } }, { children: [(0, jsx_runtime_1.jsx)(advanced_feature_1.default, { featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, columnData: gridData.columnData, checkedRow: checkedRow, props: props, callGrid: callGrid }), (0, jsx_runtime_1.jsx)(AgGrid_1.default, { style: style, gridOptions: gridOptions, onGridReady: onGridReady })] })));
93
92
  }
94
93
  exports.default = ParentForGrid;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const RowDetailsRenderer = ({ node }) => {
5
+ const data = node === null || node === void 0 ? void 0 : node.data;
6
+ console.log(data, node, 'details from node');
7
+ return ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsxs)("div", { children: [data.gold, " "] }) }));
8
+ };
9
+ exports.default = RowDetailsRenderer;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const primereact_1 = require("primereact");
5
+ const react_1 = require("react");
6
+ function StatusDropdown({ value, statusChanged }) {
7
+ let options;
8
+ if (value === 1) {
9
+ options = [
10
+ { id: 1, name: "Draft", value: 1 },
11
+ { id: 2, name: "Active", value: 2 },
12
+ { id: 3, name: "Inactive", value: 3 },
13
+ ];
14
+ }
15
+ else {
16
+ options = [
17
+ { id: 2, name: "Active", value: 2 },
18
+ { id: 3, name: "Inactive", value: 3 },
19
+ ];
20
+ }
21
+ const selectedOption = (0, react_1.useMemo)(() => options.find((option) => option.value === value), [value]);
22
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [" ", (0, jsx_runtime_1.jsx)(primereact_1.Dropdown, { value: selectedOption.value, options: options, onChange: (e) => { statusChanged(e.target.value), console.log(e, 'value selected'); }, optionLabel: "name", placeholder: "Select a Status" })] }));
23
+ }
24
+ exports.default = StatusDropdown;
@@ -1,12 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var columnDatatype;
4
- (function (columnDatatype) {
5
- columnDatatype[columnDatatype["STRING"] = 0] = "STRING";
6
- columnDatatype[columnDatatype["NUMBER"] = 1] = "NUMBER";
7
- columnDatatype[columnDatatype["BOOLEAN"] = 2] = "BOOLEAN";
8
- columnDatatype[columnDatatype["SELECT"] = 4] = "SELECT";
9
- columnDatatype[columnDatatype["CHECKBOX"] = 5] = "CHECKBOX";
10
- columnDatatype[columnDatatype["MULTISELECT"] = 6] = "MULTISELECT";
11
- })(columnDatatype || (columnDatatype = {}));
3
+ exports.ATTRIBUTEDATATYPES = void 0;
4
+ // enum columnDatatype {
5
+ // STRING=0,
6
+ // NUMBER=1,
7
+ // BOOLEAN=2,
8
+ // SELECT=4,
9
+ // CHECKBOX=5,
10
+ // MULTISELECT=6
11
+ // }
12
+ var ATTRIBUTEDATATYPES;
13
+ (function (ATTRIBUTEDATATYPES) {
14
+ ATTRIBUTEDATATYPES["STRING"] = "string";
15
+ ATTRIBUTEDATATYPES["DATE"] = "date";
16
+ ATTRIBUTEDATATYPES["INTEGER"] = "integer";
17
+ ATTRIBUTEDATATYPES["IMAGE"] = "image";
18
+ ATTRIBUTEDATATYPES["PRICE"] = "price";
19
+ ATTRIBUTEDATATYPES["BOOLEAN"] = "boolean";
20
+ ATTRIBUTEDATATYPES["DATE_AND_TIME"] = "dateandtime";
21
+ ATTRIBUTEDATATYPES["DECIMAL"] = "decimal";
22
+ ATTRIBUTEDATATYPES["PERCENT"] = "percent";
23
+ ATTRIBUTEDATATYPES["SELECT"] = "select";
24
+ ATTRIBUTEDATATYPES["MULTI_SELECT"] = "multiselect";
25
+ })(ATTRIBUTEDATATYPES = exports.ATTRIBUTEDATATYPES || (exports.ATTRIBUTEDATATYPES = {}));
12
26
  // export type { ColDef as gridColType} from "@ag-grid-community/core"
@@ -7,8 +7,7 @@ const custom_sort_1 = tslib_1.__importDefault(require("./custom-sort"));
7
7
  const record_detail_1 = tslib_1.__importDefault(require("./record-detail"));
8
8
  const bulk_actions_1 = tslib_1.__importDefault(require("./bulkActions/bulk-actions"));
9
9
  const filter_1 = tslib_1.__importDefault(require("./filter/filter"));
10
- function AdvancedFeatures({ featureDetails, setFeatureDetails, columnData, checkedRow, props }) {
11
- console.log(columnData, setFeatureDetails, 'column data in advanced feature');
12
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex justify-content-between" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex" }, { children: [(0, jsx_runtime_1.jsx)(global_search_1.default, { featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, searchPlaceHolder: props === null || props === void 0 ? void 0 : props.placeholder }), (0, jsx_runtime_1.jsx)(filter_1.default, {})] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex " }, { children: [checkedRow.length > 1 && (0, jsx_runtime_1.jsx)(bulk_actions_1.default, { columnData: columnData }), (0, jsx_runtime_1.jsx)(custom_sort_1.default, { columnData: columnData, featureDetails: featureDetails, setFeatureDetails: setFeatureDetails }), (0, jsx_runtime_1.jsx)(record_detail_1.default, { totalLength: (props === null || props === void 0 ? void 0 : props.totalRowLength) || 100 })] }))] })));
10
+ function AdvancedFeatures({ featureDetails, setFeatureDetails, columnData, checkedRow, props, callGrid }) {
11
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex justify-content-between" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex" }, { children: [(0, jsx_runtime_1.jsx)(global_search_1.default, { featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, searchPlaceHolder: props === null || props === void 0 ? void 0 : props.placeholder }), (0, jsx_runtime_1.jsx)(filter_1.default, { columnData: columnData, featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, callBackForSelect: props === null || props === void 0 ? void 0 : props.myInputData, callGrid: callGrid })] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex " }, { children: [checkedRow.length > 1 && (0, jsx_runtime_1.jsx)(bulk_actions_1.default, { columnData: columnData }), (0, jsx_runtime_1.jsx)(custom_sort_1.default, { columnData: columnData, featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, callGrid: callGrid }), (0, jsx_runtime_1.jsx)(record_detail_1.default, { totalLength: (props === null || props === void 0 ? void 0 : props.totalRowLength) || 100 })] }))] })));
13
12
  }
14
13
  exports.default = AdvancedFeatures;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const svg_component_1 = tslib_1.__importDefault(require("../../../directives/svg-component"));
6
+ const overlaypanel_1 = require("primereact/overlaypanel");
7
+ const react_1 = require("react");
8
+ function BulkActions({ columnData }) {
9
+ var _a;
10
+ const [activeOption, setActiveOption] = (0, react_1.useState)({});
11
+ const [bulkOptions, setBulkOptions] = (0, react_1.useState)([]);
12
+ const actionRef = (0, react_1.useRef)(null);
13
+ (0, react_1.useEffect)(() => {
14
+ getColumnsToEdit();
15
+ }, []);
16
+ const getColumnsToEdit = () => {
17
+ const columns = [];
18
+ columnData.filter((col) => {
19
+ if (col.editable) {
20
+ columns.push(col);
21
+ }
22
+ });
23
+ setBulkOptions(columns);
24
+ };
25
+ console.log(columnData, 'column data in bulk action');
26
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'cursor-pointer p-1 sc_icon_hover', onClick: (e) => actionRef.current.toggle(e) }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "settings-01", size: 20 }) })), (0, jsx_runtime_1.jsx)(overlaypanel_1.OverlayPanel, Object.assign({ ref: actionRef, className: "w-30rem pb-5" }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "relative pb-5 mb-5" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: "flex align-items-center justify-content-between p-4 border-bottom-1 border-gray-200" }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "text-lg font-semibold line-height-4 text-gray-900" }, { children: "Bulk Actions " })) })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex border-bottom-1 border-gray-200" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: " border-right-1 px-1 py-4 border-gray-200" }, { children: bulkOptions.map((option, index) => {
27
+ {
28
+ console.log(option, 'option data in map');
29
+ }
30
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: `text-lg px-3 border-round-lg cursor-pointer font-medium line-height-4 text-gray-600 ${(activeOption === null || activeOption === void 0 ? void 0 : activeOption.field) === (option === null || option === void 0 ? void 0 : option.field) ? "bg-primary-50" : ""}`, onClick: () => setActiveOption(option) }, { children: option.headerName }), index));
31
+ }) })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "p-4 w-full" }, { children: (_a = bulkOptions.find((optons) => optons.id === activeOption.id)) === null || _a === void 0 ? void 0 : _a.content }))] }))] })) }))] }));
32
+ }
33
+ exports.default = BulkActions;
@@ -6,6 +6,8 @@ const svg_component_1 = tslib_1.__importDefault(require("../../../../directives/
6
6
  const overlaypanel_1 = require("primereact/overlaypanel");
7
7
  const react_1 = require("react");
8
8
  const input_box_1 = tslib_1.__importDefault(require("./input-box"));
9
+ require("./bulk-actions.scss");
10
+ const button_1 = tslib_1.__importDefault(require("../../../button/button"));
9
11
  function BulkActions({ columnData }) {
10
12
  const [activeOption, setActiveOption] = (0, react_1.useState)({});
11
13
  const [bulkOptions, setBulkOptions] = (0, react_1.useState)([]);
@@ -22,12 +24,22 @@ function BulkActions({ columnData }) {
22
24
  });
23
25
  setBulkOptions(columns);
24
26
  };
25
- console.log(columnData, activeOption, 'column data in bulk action');
26
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: 'cursor-pointer p-1 sc_icon_hover', onClick: (e) => actionRef.current.toggle(e) }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "settings-01", size: 20 }) })), (0, jsx_runtime_1.jsx)(overlaypanel_1.OverlayPanel, Object.assign({ ref: actionRef, className: "w-30rem pb-5" }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "relative pb-5 mb-5" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: "flex align-items-center justify-content-between p-4 border-bottom-1 border-gray-200" }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "text-lg font-semibold line-height-4 text-gray-900" }, { children: "Bulk Actions " })) })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex border-bottom-1 border-gray-200" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: " border-right-1 px-1 py-4 border-gray-200" }, { children: bulkOptions.map((option, index) => {
27
- {
28
- console.log(option, 'option data in map');
29
- }
30
- return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: `text-lg px-3 border-round-lg cursor-pointer font-medium line-height-4 text-gray-600 ${(activeOption === null || activeOption === void 0 ? void 0 : activeOption.field) === (option === null || option === void 0 ? void 0 : option.field) ? "bg-primary-50" : ""}`, onClick: () => setActiveOption(option) }, { children: option.headerName }), index));
31
- }) })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "p-4 w-full" }, { children: (0, jsx_runtime_1.jsx)(input_box_1.default, { activeOption: activeOption }) }))] }))] })) }))] }));
27
+ console.log(columnData, activeOption, "column data in bulk action");
28
+ const BulkActionHeader = (props) => {
29
+ const { header: { label } } = props;
30
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "flex align-items-center justify-content-between p-4 border-bottom-1 border-gray-200" }, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "text-lg font-semibold line-height-4 text-gray-900" }, { children: label })) })));
31
+ };
32
+ const BulkActionFooter = (props) => {
33
+ const { footer: { totalRecords, discardLabel, assignLabel } } = props;
34
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between border-top-1 border-gray-200 p-4" }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: "text-gray-900" }, { children: totalRecords })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex gap-3" }, { children: [(0, jsx_runtime_1.jsx)(button_1.default, { text: true, className: "h-auto p-0", label: discardLabel }), (0, jsx_runtime_1.jsx)(button_1.default, { label: assignLabel })] }))] })));
35
+ };
36
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: "cursor-pointer p-1 sc_icon_hover", onClick: (e) => actionRef.current.toggle(e) }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "settings-01", size: 20 }) })), (0, jsx_runtime_1.jsxs)(overlaypanel_1.OverlayPanel, Object.assign({ ref: actionRef, className: "w-30rem bulk-action-feature" }, { children: [(0, jsx_runtime_1.jsx)(BulkActionHeader, { header: { label: "Bulk Actions" } }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex border-bottom-1 border-gray-200" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: " border-right-1 p-1 border-gray-200 min-w-max flex flex-column pb-0" }, { children: bulkOptions.map((option, index) => {
37
+ {
38
+ console.log(option, "option data in map");
39
+ }
40
+ return ((0, jsx_runtime_1.jsx)(button_1.default, Object.assign({ text: activeOption ? true : false, className: `text-lg px-3 focus:shadow-none border-round-lg mb-1 cursor-pointer font-medium p-button-secondary line-height-4 text-gray-600 ${(activeOption === null || activeOption === void 0 ? void 0 : activeOption.field) === (option === null || option === void 0 ? void 0 : option.field)
41
+ ? "bg-primary-50"
42
+ : ""}`, onClick: () => setActiveOption(option) }, { children: option.headerName }), index));
43
+ }) })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "p-6 w-full" }, { children: (0, jsx_runtime_1.jsx)(input_box_1.default, { activeOption: activeOption }) }))] })), (0, jsx_runtime_1.jsx)(BulkActionFooter, { footer: { totalRecords: "204 Total Records", discardLabel: "Discard", assignLabel: "Assign" } })] }))] }));
32
44
  }
33
45
  exports.default = BulkActions;
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("react/jsx-runtime");
4
4
  // import { Button } from "primereact/button"
5
- const button_1 = require("primereact/button");
5
+ // import { Button } from "primereact/button"
6
6
  const inputtext_1 = require("primereact/inputtext");
7
7
  function BoxOfInput({ activeOption }) {
8
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: " text-gray-900 flex lext-lg font-semibold line-height-4 mb-1 align-items-center" }, { children: ["Change ", activeOption.headerName] })), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { type: "text", className: "p-inputtext-lg `w-full`", placeholder: activeOption.headerName }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: `flex bg-white gap-2 pl-2 pr-2 justify-content-between align-items-center mt-3 absolute ` }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: "text-black font-normal text-base line-height-3" }, { children: " Records selected" })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "flex gap-2" }, { children: (0, jsx_runtime_1.jsx)(button_1.Button, { outlined: true, text: true, label: "Discard" }) }))] }))] }) })
8
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "w-full" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: " text-gray-900 flex lext-lg font-semibold line-height-4 mb-1 align-items-center" }, { children: ["Change ", activeOption.headerName] })), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { type: "text", className: "w-full", placeholder: activeOption.headerName }), (0, jsx_runtime_1.jsx)("div", { className: `flex bg-white gap-2 pl-2 pr-2 justify-content-between align-items-center mt-3 absolute ` })] })) })
9
9
  // <div>
10
10
  // <div className=" text-gray-900 flex lext-lg font-semibold line-height-4 mb-1 align-items-center">Change Status</div>
11
11
  // {/* <Dropdown
@@ -9,38 +9,63 @@ const radiobutton_1 = require("primereact/radiobutton");
9
9
  const button_1 = require("primereact/button");
10
10
  const svg_component_1 = tslib_1.__importDefault(require("../../../directives/svg-component"));
11
11
  const constants_1 = require("../constants");
12
- function Sort({ columnData, featureDetails, setFeatureDetails }) {
12
+ function Sort({ columnData, featureDetails, setFeatureDetails, callGrid }) {
13
13
  var _a;
14
- const [sortValue, setSortValue] = (0, react_1.useState)(null);
15
- const [sortBy, setSortBy] = (0, react_1.useState)(null);
14
+ const [sortValue, setSortValue] = (0, react_1.useState)();
15
+ const [sortBy, setSortBy] = (0, react_1.useState)({});
16
16
  const [isOverlayOpened, setIsOverlayOpened] = (0, react_1.useState)(false);
17
17
  const showShort = (0, react_1.useRef)(null);
18
18
  const shortType = sortValue === null || sortValue === void 0 ? void 0 : sortValue.dataType;
19
19
  const disableApply = (sortBy && sortValue) === null;
20
- const onClickShort = (event) => {
20
+ const onClickSort = (event) => {
21
21
  showShort.current.toggle(event);
22
22
  };
23
23
  // Add selected row to state
24
- const onSelectShortValue = (eachColumn) => {
24
+ const onSelectSortValue = (eachColumn) => {
25
25
  if (eachColumn.headerName !== (sortValue === null || sortValue === void 0 ? void 0 : sortValue.headerName)) {
26
+ const sortDetails = {
27
+ isSortable: false,
28
+ columnToSort: eachColumn,
29
+ orderToSort: sortBy,
30
+ };
31
+ if ((Object === null || Object === void 0 ? void 0 : Object.keys(sortBy).length) > 0) {
32
+ sortDetails.isSortable = true;
33
+ }
34
+ addSortDetails(sortDetails);
26
35
  setSortValue(eachColumn);
27
- setSortBy(null);
36
+ // setSortBy();
28
37
  }
29
38
  };
30
- // Trigger action to apply
31
- const applyTableSort = (e) => {
39
+ const onSelectSortType = (column) => {
32
40
  const sortDetails = {
33
- isSortable: true,
34
- columnToSort: sortValue.field,
35
- orderToSort: sortBy,
41
+ isSortable: false,
42
+ columnToSort: sortValue,
43
+ orderToSort: column,
36
44
  };
37
- console.log(sortBy, 'sort by on apply filter');
45
+ if ((Object === null || Object === void 0 ? void 0 : Object.keys(sortValue).length) > 0) {
46
+ sortDetails.isSortable = true;
47
+ }
48
+ addSortDetails(sortDetails);
49
+ setSortBy(column);
50
+ };
51
+ // Add sort details to parent component state
52
+ const addSortDetails = (sortDetails) => {
53
+ if (!((sortDetails === null || sortDetails === void 0 ? void 0 : sortDetails.isSortable) &&
54
+ (sortDetails === null || sortDetails === void 0 ? void 0 : sortDetails.columnToSort) &&
55
+ (sortDetails === null || sortDetails === void 0 ? void 0 : sortDetails.orderToSort))) {
56
+ return;
57
+ }
38
58
  setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { sort: sortDetails }));
39
- onClickShort(e);
59
+ };
60
+ // Trigger action to apply
61
+ const applyTableSort = (e) => {
62
+ callGrid();
63
+ onClickSort(e);
64
+ // clearSort(e)
40
65
  };
41
66
  // Trigger action to clear
42
67
  const clearSort = (e) => {
43
- onClickShort(e);
68
+ onClickSort(e);
44
69
  setSortBy(null);
45
70
  setSortValue(null);
46
71
  const sortDetails = {
@@ -52,21 +77,21 @@ function Sort({ columnData, featureDetails, setFeatureDetails }) {
52
77
  };
53
78
  return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: `cursor-pointer p-1 sc_icon_hover flex align-items-center border-round-lg ${isOverlayOpened || featureDetails.sort.isSortable
54
79
  ? "bg-primary-50"
55
- : ""}` }, { children: [featureDetails.sort.isSortable && ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: "flex align-items-center text-primary-400 px-1" }, { children: ` Selected` }))), (0, jsx_runtime_1.jsx)("span", Object.assign({ onClick: (event) => onClickShort(event) }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "switch-vertical-02", size: 20, color: isOverlayOpened || featureDetails.sort.isSortable
80
+ : ""}` }, { children: [featureDetails.sort.isSortable && ((0, jsx_runtime_1.jsx)("span", Object.assign({ className: "flex align-items-center text-primary-400 px-1" }, { children: ` Selected` }))), (0, jsx_runtime_1.jsx)("span", Object.assign({ onClick: (event) => onClickSort(event) }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "switch-vertical-02", size: 20, color: isOverlayOpened || featureDetails.sort.isSortable
56
81
  ? "#243DC6"
57
82
  : "#667085" }) }))] })), (0, jsx_runtime_1.jsxs)(overlaypanel_1.OverlayPanel, Object.assign({ ref: showShort, onShow: () => setIsOverlayOpened(true), onHide: () => setIsOverlayOpened(false), className: "w-18rem mt-2" }, { children: [(0, jsx_runtime_1.jsx)("div", Object.assign({ className: "p-4 text-lg font-semibold line-height-3 text-gray-900" }, { children: "Column Sorting" })), (0, jsx_runtime_1.jsx)(divider_1.Divider, { className: "m-0" }), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "pl-0 m-1 h-10rem overflow-auto" }, { children: columnData === null || columnData === void 0 ? void 0 : columnData.map((eachColumn, index) => {
58
83
  if (eachColumn === null || eachColumn === void 0 ? void 0 : eachColumn.isSortable) {
59
84
  const isSelected = eachColumn.field === (sortValue === null || sortValue === void 0 ? void 0 : sortValue.field);
60
- return ((0, jsx_runtime_1.jsxs)("li", Object.assign({ className: `${isSelected && "bg-primary-25"} cursor-pointer border-round-md flex align-items-center gap-2 px-3 py-2 text-base line-height-2 text-gray-700`, style: { listStyleType: "none" }, onClick: () => onSelectShortValue(eachColumn) }, { children: [(0, jsx_runtime_1.jsx)(radiobutton_1.RadioButton, { id: "tableSort", checked: isSelected, type: "circle", value: sortValue }), (0, jsx_runtime_1.jsx)("label", Object.assign({ className: `${isSelected && "text-primary-400 font-semibold"}` }, { children: eachColumn === null || eachColumn === void 0 ? void 0 : eachColumn.headerName }))] }), index));
85
+ return ((0, jsx_runtime_1.jsxs)("li", Object.assign({ className: `${isSelected && "bg-primary-25"} cursor-pointer border-round-md flex align-items-center gap-2 px-3 py-2 text-base line-height-2 text-gray-700`, style: { listStyleType: "none" }, onClick: () => onSelectSortValue(eachColumn) }, { children: [(0, jsx_runtime_1.jsx)(radiobutton_1.RadioButton, { id: "tableSort", checked: isSelected, type: "circle", value: sortValue }), (0, jsx_runtime_1.jsx)("label", Object.assign({ className: `${isSelected && "text-primary-400 font-semibold"}` }, { children: eachColumn === null || eachColumn === void 0 ? void 0 : eachColumn.headerName }))] }), index));
61
86
  }
62
87
  else {
63
88
  return null;
64
89
  }
65
- }) })), (0, jsx_runtime_1.jsx)(divider_1.Divider, { className: "m-0" }), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "pl-0 m-1" }, { children: (_a = constants_1.COLUMN_SORT_OPTIONS
66
- .filter((each) => each.dataType === shortType)) === null || _a === void 0 ? void 0 : _a.map((eachOption, index) => {
90
+ }) })), (0, jsx_runtime_1.jsx)(divider_1.Divider, { className: "m-0" }), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "pl-0 m-1" }, { children: (_a = constants_1.COLUMN_SORT_OPTIONS.filter((each) => each.dataType === shortType)) === null || _a === void 0 ? void 0 : _a.map((eachOption, index) => {
67
91
  const seletedSort = eachOption.label === (sortBy === null || sortBy === void 0 ? void 0 : sortBy.label);
68
92
  return ((0, jsx_runtime_1.jsxs)("li", Object.assign({ className: `${seletedSort && "bg-primary-25"} cursor-pointer border-round-md pl-0 px-3 py-2 flex align-items-center gap-2`, onClick: () => {
69
- setSortBy(eachOption);
93
+ onSelectSortType(eachOption);
94
+ // setSortBy(eachOption);
70
95
  } }, { children: [(0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: index === 0 ? "arrow-down" : "arrow-up", size: 20 }), (0, jsx_runtime_1.jsx)("span", Object.assign({ className: `${seletedSort && "text-primary-400 font-semibold"} text-gray-700 font-medium text-base` }, { children: eachOption.label }))] }), index));
71
96
  }) })), (0, jsx_runtime_1.jsx)(divider_1.Divider, { id: "column_sort" }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex justify-content-between px-5 py-2" }, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ disabled: false, id: "column_sort_dropdown", outlined: true, onClick: (e) => clearSort(e) }, { children: "Clear" })), (0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ disabled: disableApply, id: "column_sort_dropdown", onClick: (e) => applyTableSort(e) }, { children: "Apply" }))] }))] }))] })));
72
97
  }
@@ -1,7 +1,77 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  const jsx_runtime_1 = require("react/jsx-runtime");
4
- function Filter() {
5
- return ((0, jsx_runtime_1.jsx)("div", { children: "Filter" }));
5
+ const button_1 = require("primereact/button");
6
+ const svg_component_1 = tslib_1.__importDefault(require("../../../../directives/svg-component"));
7
+ const react_1 = require("react");
8
+ const overlaypanel_1 = require("primereact/overlaypanel");
9
+ const querty_1 = tslib_1.__importDefault(require("./querty"));
10
+ function FilterParent({ columnData, featureDetails, setFeatureDetails, callBackForSelect, callGrid }) {
11
+ const filterRef = (0, react_1.useRef)(null);
12
+ const [queryCount, setQueryCount] = (0, react_1.useState)(1);
13
+ const [queries, setQueries] = (0, react_1.useState)([0]);
14
+ // Filter header
15
+ const BulkActionHeader = (props) => {
16
+ const { header: { label, description }, } = props;
17
+ return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "flex align-items-center justify-content-between p-4 border-bottom-1 border-gray-200" }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "text-lg line-height-4 text-gray-900" }, { children: [(0, jsx_runtime_1.jsx)("h4", Object.assign({ className: "my-0" }, { children: label })), (0, jsx_runtime_1.jsx)("p", Object.assign({ className: "my-0 text-gray-600 text-sm" }, { children: description }))] })) })));
18
+ };
19
+ // Filter footer
20
+ const BulkActionFooter = (props) => {
21
+ const { footer: { resetFilters, createLabel, applyLabel }, } = props;
22
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between border-top-1 border-gray-200 p-4" }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: "text-gray-900 cursor-pointer", onClick: resettingFilters }, { children: resetFilters })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex gap-3" }, { children: [(0, jsx_runtime_1.jsxs)(button_1.Button, Object.assign({ text: true, className: "h-auto p-0 text-primary-400" }, { children: [(0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "plus", color: "text-primary-400" }), " ", createLabel] })), (0, jsx_runtime_1.jsx)(button_1.Button, { label: applyLabel, onClick: applyFilters })] }))] })));
23
+ };
24
+ // Reset saved filters
25
+ const resettingFilters = () => {
26
+ emptyFilterQuries();
27
+ filterRef.current.toggle(false);
28
+ setQueryCount(1), setQueries([0]);
29
+ };
30
+ // Toggle the pop display
31
+ const togglePopup = (e) => {
32
+ var _a;
33
+ (_a = filterRef.current) === null || _a === void 0 ? void 0 : _a.toggle(e);
34
+ setQueryCount(1), setQueries([0]);
35
+ };
36
+ // Empty filterQuries
37
+ const emptyFilterQuries = () => {
38
+ setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { filterQueries: [] }));
39
+ };
40
+ // OnClick to +
41
+ const actionOnPlus = () => {
42
+ setQueryCount((prevCount) => prevCount + 1);
43
+ setQueries((prevQueries) => [...prevQueries, queryCount]);
44
+ };
45
+ // OnClick to -
46
+ const actionOnMinus = (index) => {
47
+ var _a;
48
+ const filterQuries = (_a = featureDetails.filterQueries) === null || _a === void 0 ? void 0 : _a.filter((query) => query.idx !== index);
49
+ setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { filterQueries: filterQuries }));
50
+ setQueryCount((prevCount) => prevCount - 1);
51
+ setQueries((prevQueries) => prevQueries.filter((query) => query !== index));
52
+ };
53
+ // Display query by count
54
+ const RenderQuery = () => {
55
+ return queries.map((queryIndex) => ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: "p-6 flex" }, { children: (0, jsx_runtime_1.jsx)(querty_1.default, { queryId: queryIndex, columnData: columnData, featureDetails: featureDetails, setFeatureDetails: setFeatureDetails, callBackForSelect: callBackForSelect, actionOnMinus: actionOnMinus, actionOnPlus: actionOnPlus }) }), queryIndex)));
56
+ };
57
+ const applyFilters = () => {
58
+ if (!featureDetails.filterQueries.length) {
59
+ return;
60
+ }
61
+ callGrid();
62
+ resettingFilters();
63
+ };
64
+ (0, react_1.useEffect)(() => {
65
+ var _a;
66
+ console.log(filterRef.current, (_a = filterRef.current) === null || _a === void 0 ? void 0 : _a.toggle, 'filter ref data');
67
+ }, [filterRef.current]);
68
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, Object.assign({ text: true, className: "hover:bg-primary-25 ml-2", onClick: (e) => { togglePopup(e); } }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "filter-lines" }) })), (0, jsx_runtime_1.jsxs)(overlaypanel_1.OverlayPanel, Object.assign({ ref: filterRef, onHide: emptyFilterQuries, className: "w-45rem bulk-action-feature" }, { children: [(0, jsx_runtime_1.jsx)(BulkActionHeader, { header: {
69
+ label: "Filters",
70
+ description: "Streamline your search with filter",
71
+ } }), RenderQuery(), (0, jsx_runtime_1.jsx)(BulkActionFooter, { footer: {
72
+ resetFilters: "Reset Filters",
73
+ createLabel: "Create View",
74
+ applyLabel: "Apply",
75
+ } })] }))] }));
6
76
  }
7
- exports.default = Filter;
77
+ exports.default = FilterParent;
@@ -1,7 +1,125 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
3
4
  const jsx_runtime_1 = require("react/jsx-runtime");
4
- function Querty() {
5
- return ((0, jsx_runtime_1.jsx)("div", { children: "querty" }));
5
+ const dropdown_1 = require("primereact/dropdown");
6
+ const svg_component_1 = tslib_1.__importDefault(require("../../../../directives/svg-component"));
7
+ const button_1 = require("primereact/button");
8
+ const react_1 = require("react");
9
+ const constants_1 = require("../../constants");
10
+ const Types_1 = require("../../Types");
11
+ const inputnumber_1 = require("primereact/inputnumber");
12
+ const calendar_1 = require("primereact/calendar");
13
+ const multiselect_1 = require("primereact/multiselect");
14
+ function Querty({ queryId, columnData, featureDetails, setFeatureDetails, callBackForSelect, actionOnMinus, actionOnPlus, }) {
15
+ var _a, _b, _c;
16
+ const [filterOperations, setFilterOperations] = (0, react_1.useState)([]);
17
+ const [thirdElementValue, setThirdElementValue] = (0, react_1.useState)();
18
+ const [currentFilter, setCurrentFilter] = (0, react_1.useState)({
19
+ currentColumn: {},
20
+ currentOperation: {},
21
+ currentValue: "",
22
+ });
23
+ const [thirdElementOptions, setThirdElementOptions] = (0, react_1.useState)([]);
24
+ // Assign selected columns
25
+ const assignSelectedColumn = (column) => {
26
+ console.log(column, "column on selected dropdown");
27
+ setCurrentFilter(Object.assign(Object.assign({}, currentFilter), { currentColumn: column }));
28
+ getFilterOperations(column);
29
+ // if(column?.dataType == ATTRIBUTEDATATYPES.SELECT ,column?.dataType == ATTRIBUTEDATATYPES.MULTI_SELECT){
30
+ // }
31
+ };
32
+ // Get operation list based on selected column datatype
33
+ const getFilterOperations = (column) => {
34
+ const filterList = constants_1.conditionsList
35
+ .filter(({ datatypes }) => datatypes.includes(column === null || column === void 0 ? void 0 : column.dataType))
36
+ .map((_a) => {
37
+ var { name } = _a, rest = tslib_1.__rest(_a, ["name"]);
38
+ return (Object.assign(Object.assign({}, rest), { name: name.toLowerCase().replace(/\b\w/g, (char) => char.toUpperCase()) }));
39
+ });
40
+ setFilterOperations(filterList);
41
+ };
42
+ // Assign selected operation
43
+ const assignOperation = (operation) => tslib_1.__awaiter(this, void 0, void 0, function* () {
44
+ var _d;
45
+ const currentColumnDataType = (_d = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn) === null || _d === void 0 ? void 0 : _d.dataType;
46
+ setCurrentFilter(Object.assign(Object.assign({}, currentFilter), { currentOperation: operation }));
47
+ if (currentColumnDataType == Types_1.ATTRIBUTEDATATYPES.SELECT || currentColumnDataType == Types_1.ATTRIBUTEDATATYPES.MULTI_SELECT) {
48
+ let options = yield callBackForSelect(currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn, operation);
49
+ setThirdElementOptions(options);
50
+ }
51
+ });
52
+ // Render element based on the current column datatype
53
+ const renderUIElement = (type, value, onChange, options) => {
54
+ switch (type) {
55
+ case Types_1.ATTRIBUTEDATATYPES.STRING:
56
+ return ((0, jsx_runtime_1.jsx)("input", { type: "text", value: value, onChange: (e) => onChange(e.target.value) }));
57
+ case Types_1.ATTRIBUTEDATATYPES.DATE:
58
+ return ((0, jsx_runtime_1.jsx)(calendar_1.Calendar, { value: value, onChange: (e) => onChange(e.value), showIcon: true }));
59
+ case Types_1.ATTRIBUTEDATATYPES.INTEGER:
60
+ return ((0, jsx_runtime_1.jsx)(inputnumber_1.InputNumber, { value: value, onChange: (e) => onChange(e.value), useGrouping: false }));
61
+ case Types_1.ATTRIBUTEDATATYPES.PRICE:
62
+ return ((0, jsx_runtime_1.jsx)(inputnumber_1.InputNumber, { value: value, onValueChange: (e) => onChange(e.value), minFractionDigits: 2 }));
63
+ case Types_1.ATTRIBUTEDATATYPES.BOOLEAN:
64
+ return ((0, jsx_runtime_1.jsx)("input", { type: "checkbox", checked: value, onChange: (e) => onChange(e.target.checked) }));
65
+ case Types_1.ATTRIBUTEDATATYPES.DATE_AND_TIME:
66
+ return ((0, jsx_runtime_1.jsx)(calendar_1.Calendar, { value: value, onChange: (e) => onChange(e.value), showTime: true, hourFormat: "12" }));
67
+ case Types_1.ATTRIBUTEDATATYPES.DECIMAL:
68
+ return ((0, jsx_runtime_1.jsx)(inputnumber_1.InputNumber, { value: value, onValueChange: (e) => onChange(e.value), useGrouping: false, minFractionDigits: 2 }));
69
+ case Types_1.ATTRIBUTEDATATYPES.PERCENT:
70
+ return ((0, jsx_runtime_1.jsx)(inputnumber_1.InputNumber, { inputId: "withoutgrouping", value: value, onValueChange: (e) => onChange(e.value), useGrouping: false, minFractionDigits: 2, max: 100, maxLength: 6, suffix: "%" }));
71
+ case Types_1.ATTRIBUTEDATATYPES.SELECT:
72
+ return ((0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { value: value, onChange: (e) => onChange(e.value), options: options, optionLabel: "label", placeholder: "Select an option" }));
73
+ case Types_1.ATTRIBUTEDATATYPES.MULTI_SELECT:
74
+ return ((0, jsx_runtime_1.jsx)(multiselect_1.MultiSelect, { value: value, onChange: (e) => onChange(e.value), options: options, optionLabel: "label", placeholder: "Select options", maxSelectedLabels: 3 }));
75
+ default:
76
+ return null;
77
+ }
78
+ };
79
+ // Disable condition for plus button
80
+ const disableStatusPlusButton = (index) => {
81
+ var _a, _b;
82
+ console.log(index, queryId, "index and query id");
83
+ let status = true;
84
+ if (((_a = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn) === null || _a === void 0 ? void 0 : _a.headerName) &&
85
+ ((_b = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentOperation) === null || _b === void 0 ? void 0 : _b.name)) {
86
+ status = false;
87
+ }
88
+ console.log(status, "status of action");
89
+ return status;
90
+ };
91
+ // Disable condition for minus button
92
+ const disableStatusMinusButton = (index) => {
93
+ let status = true;
94
+ if (index > 0) {
95
+ status = false;
96
+ }
97
+ return status;
98
+ };
99
+ (0, react_1.useEffect)(() => {
100
+ setCurrentFilter(Object.assign(Object.assign({}, currentFilter), { currentValue: thirdElementValue }));
101
+ }, [thirdElementValue]);
102
+ (0, react_1.useEffect)(() => {
103
+ var _a, _b;
104
+ const columnName = (_a = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn) === null || _a === void 0 ? void 0 : _a.headerName;
105
+ const operationName = (_b = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentOperation) === null || _b === void 0 ? void 0 : _b.name;
106
+ const updatedValue = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentValue;
107
+ console.log(columnName, operationName, updatedValue, "all conditions");
108
+ if (columnName && operationName && updatedValue) {
109
+ const newQuery = {
110
+ idx: queryId,
111
+ selectedColumn: currentFilter.currentColumn,
112
+ selectedOperation: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentOperation,
113
+ value: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentValue,
114
+ };
115
+ const presentQueries = featureDetails.filterQueries;
116
+ presentQueries[queryId] = newQuery;
117
+ // presentQueries.push(newQuery)
118
+ setFeatureDetails(Object.assign(Object.assign({}, featureDetails), { filterQueries: presentQueries }));
119
+ }
120
+ }, [currentFilter]);
121
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex gap-3 w-30rem" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "p-inputgroup w-full" }, { children: [(0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { value: currentFilter.currentColumn, placeholder: "Select", options: columnData, optionLabel: "headerName", onChange: (e) => assignSelectedColumn(e.value) }), (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { value: currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentOperation, className: "border-left-none", placeholder: "Select", options: filterOperations, optionLabel: "name", onChange: (e) => assignOperation(e.value), disabled: !((_a = currentFilter.currentColumn) === null || _a === void 0 ? void 0 : _a.headerName) }), renderUIElement(((_b = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn) === null || _b === void 0 ? void 0 : _b.dataType)
122
+ ? (_c = currentFilter === null || currentFilter === void 0 ? void 0 : currentFilter.currentColumn) === null || _c === void 0 ? void 0 : _c.dataType
123
+ : Types_1.ATTRIBUTEDATATYPES.STRING, thirdElementValue, setThirdElementValue, thirdElementOptions)] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex gap-1" }, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { text: true, disabled: disableStatusPlusButton(queryId), icon: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "plus-circle", size: 18 }), onClick: () => actionOnPlus(queryId) }), (0, jsx_runtime_1.jsx)(button_1.Button, { disabled: disableStatusMinusButton(queryId), text: true, icon: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "minus-circle", size: 18 }), onClick: () => actionOnMinus(queryId) })] }))] })));
6
124
  }
7
125
  exports.default = Querty;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ function filter() {
5
+ return ((0, jsx_runtime_1.jsx)("div", { children: "filter" }));
6
+ }
7
+ exports.default = filter;