sccoreui 5.9.84 → 5.9.86

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.
@@ -0,0 +1,130 @@
1
+ @import url("./assets/theme.css");
2
+ @import url("./assets/sccoreui.css");
3
+ @import url("./assets/sccoreicons.css");
4
+ @import url("./assets/flex.css");
5
+ @import url('https://fonts.googleapis.com/css2?family=Lato:wght@100;300;400;700;900&display=swap');
6
+
7
+ :root {
8
+ --fw-600: 600;
9
+ --fw-400: 400;
10
+ --fs-24: 24px;
11
+ --fs-18: 18px;
12
+ --fs-16: 16px;
13
+ --lh: 24px;
14
+ --fs-14: 14px;
15
+ --grey-bg: #101828;
16
+ --border-none: border-none;
17
+ }
18
+
19
+ // @font-face {
20
+ // font-family: "Lato";
21
+ // src: url("./assets/fonts/Lato-Regular.ttf") format("truetype");
22
+ // }
23
+
24
+ // @font-face {
25
+ // font-family: "Lato-600";
26
+ // font-weight: 600;
27
+ // src: url("./assets/fonts/Lato-Regular.ttf") format("truetype");
28
+ // }
29
+
30
+ // * {
31
+ // padding: 0;
32
+ // margin: 0;
33
+ // }
34
+
35
+ body {
36
+ font-family: 'Lato', sans-serif;
37
+ -webkit-font-smoothing: antialiased;
38
+ -moz-osx-font-smoothing: grayscale;
39
+ line-height: var(--lh);
40
+ padding: 0;
41
+ margin: 0;
42
+ }
43
+
44
+ code {
45
+ font-family: 'Lato', sans-serif;
46
+ }
47
+
48
+ h1 {
49
+ font-size: var(--fs-24);
50
+ font-weight: var(--fw-600);
51
+ }
52
+
53
+ h2 {
54
+ font-size: var(--fs-18);
55
+ font-weight: var(--fw-600);
56
+ }
57
+
58
+ h3 {
59
+ font-size: var(--fs-16);
60
+ font-weight: var(--fw-400);
61
+ }
62
+
63
+ // ============= custom progress steps =============== //
64
+
65
+ .progress-container {
66
+ isolation: isolate;
67
+
68
+ &::before {
69
+ content: "";
70
+ background-color: var(--gray-200);
71
+ position: absolute;
72
+ z-index: -1;
73
+ }
74
+
75
+ &.horizontal::before {
76
+ height: 2px;
77
+ width: 100%;
78
+ top: 11%;
79
+ }
80
+
81
+ &.vertical::before {
82
+ height: 100%;
83
+ width: 2px;
84
+ left: 5%;
85
+ top: 0;
86
+ }
87
+ }
88
+
89
+ .progressbar {
90
+ z-index: -1;
91
+ transition: all 0.6s ease;
92
+
93
+ &.horizontal {
94
+ left: 0;
95
+ height: 2px;
96
+ top: 11%;
97
+ }
98
+
99
+ &.vertical {
100
+ width: 2px;
101
+ left: 5%;
102
+ top: 0;
103
+ }
104
+ }
105
+
106
+ .progress-step-item {
107
+ &.horizontal {
108
+ // transform: translateX(10%);
109
+
110
+ &:nth-of-type(1) {
111
+ transform: translateX(-50%);
112
+ }
113
+
114
+ &:last-child {
115
+ transform: translateX(50%);
116
+ }
117
+ }
118
+
119
+ &.vertical {
120
+ transform: translateY(50%);
121
+
122
+ &:nth-of-type(1) {
123
+ transform: translateY(-5%);
124
+ }
125
+
126
+ &:last-child {
127
+ transform: translateY(100%);
128
+ }
129
+ }
130
+ }
@@ -15,7 +15,7 @@ function AdvancedFeatures({ props }) {
15
15
  const { featureDetails } = (0, react_1.useContext)(context_provider_1.FeatureContext);
16
16
  const conditionsToDisplay = props === null || props === void 0 ? void 0 : props.conditionsToDisplay;
17
17
  const { bulkActionComponent: BulkAction } = props;
18
- return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between py-3 px-4" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center gap-3" }, { children: [(conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displaySearch) && ((0, jsx_runtime_1.jsx)(global_search_1.default, { searchPlaceHolder: props === null || props === void 0 ? void 0 : props.placeholder })), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayFilter) && (0, jsx_runtime_1.jsx)(table_filter_1.default, {})] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center" }, { children: [(0, jsx_runtime_1.jsx)(hide_column_1.default, {}), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayRemoveItems) && (0, jsx_runtime_1.jsx)(remove_items_1.default, {}), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayBulkAction) &&
18
+ return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between py-3 px-4" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center gap-3" }, { children: [(conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displaySearch) && ((0, jsx_runtime_1.jsx)(global_search_1.default, { searchPlaceHolder: props === null || props === void 0 ? void 0 : props.placeholder })), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayFilter) && (0, jsx_runtime_1.jsx)(table_filter_1.default, {})] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center" }, { children: [(conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displaySidePanel) && (0, jsx_runtime_1.jsx)(hide_column_1.default, {}), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayRemoveItems) && (0, jsx_runtime_1.jsx)(remove_items_1.default, {}), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayBulkAction) &&
19
19
  (props === null || props === void 0 ? void 0 : props.bulkActionComponent) && ((0, jsx_runtime_1.jsx)(BulkAction, { checkBoxSelection: featureDetails.checkBoxSelection })), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displayRefresh) && (0, jsx_runtime_1.jsx)(refresh_grid_1.default, {}), (conditionsToDisplay === null || conditionsToDisplay === void 0 ? void 0 : conditionsToDisplay.displaySort) && (0, jsx_runtime_1.jsx)(custom_sort_1.default, {}), (0, jsx_runtime_1.jsx)(record_detail_1.default, {})] }))] })));
20
20
  }
21
21
  exports.default = AdvancedFeatures;
@@ -10,60 +10,142 @@ const inputswitch_1 = require("primereact/inputswitch");
10
10
  const inputtext_1 = require("primereact/inputtext");
11
11
  const context_provider_1 = require("../context-provider");
12
12
  function HideColumn() {
13
- const { gridData, gridApi } = (0, react_1.useContext)(context_provider_1.FeatureContext);
13
+ const { gridData, gridApi, updateColumnsForGrid } = (0, react_1.useContext)(context_provider_1.FeatureContext);
14
14
  const [visibleRight, setVisibleRight] = (0, react_1.useState)(false);
15
15
  const [checked, setChecked] = (0, react_1.useState)(false);
16
- const [inpValue, setInpValue] = (0, react_1.useState)("");
17
- const [nodes, setNodes] = (0, react_1.useState)(() => {
16
+ // const [inpValue, setInpValue] = useState<string>("");
17
+ const [storeNodes, setStoreNodes] = (0, react_1.useState)();
18
+ const [nodes, setNodes] = (0, react_1.useState)();
19
+ const assignInitialValues = () => {
18
20
  var _a;
19
21
  const columnsInBar = [];
20
22
  (_a = JSON.parse(JSON.stringify(gridData === null || gridData === void 0 ? void 0 : gridData.columnData))) === null || _a === void 0 ? void 0 : _a.map((column) => {
21
- if ((column === null || column === void 0 ? void 0 : column.headerName) && (column === null || column === void 0 ? void 0 : column.field)) {
23
+ if (column === null || column === void 0 ? void 0 : column.visibleInPanel) {
22
24
  column.checked = !(column === null || column === void 0 ? void 0 : column.hide);
25
+ if (column.hide) {
26
+ column.selected = false;
27
+ column.unSelected = true;
28
+ }
29
+ else {
30
+ column.selected = true;
31
+ column.unSelected = false;
32
+ }
23
33
  }
24
34
  columnsInBar.push(column);
25
35
  });
26
- return columnsInBar;
27
- });
36
+ setNodes(columnsInBar);
37
+ setStoreNodes(columnsInBar);
38
+ };
39
+ // Display search columns
40
+ const searchHandler = (text) => {
41
+ const searchedColumns = [];
42
+ storeNodes.filter((column) => {
43
+ var _a;
44
+ if (column === null || column === void 0 ? void 0 : column.visibleInPanel) {
45
+ if ((_a = column === null || column === void 0 ? void 0 : column.headerName) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(text.toLowerCase())) {
46
+ searchedColumns.push(column);
47
+ }
48
+ }
49
+ });
50
+ setNodes(searchedColumns);
51
+ };
28
52
  // When radio button is switched
29
53
  const handleSwitchChange = (selectedColumn, value) => {
30
- console.log(selectedColumn, value, 'selected column');
31
- const updatedColumns = [...nodes];
54
+ const updatedColumns = [...storeNodes];
32
55
  updatedColumns === null || updatedColumns === void 0 ? void 0 : updatedColumns.map((column) => {
33
56
  if ((column === null || column === void 0 ? void 0 : column.id) === (selectedColumn === null || selectedColumn === void 0 ? void 0 : selectedColumn.id)) {
34
57
  column.checked = value;
35
58
  }
36
59
  return column;
37
60
  });
38
- setNodes(updatedColumns);
61
+ // setNodes(updatedColumns)
62
+ setStoreNodes(updatedColumns);
39
63
  };
64
+ // Return columns needs to hide
40
65
  const updateColumns = () => {
41
- const columnsToHide = nodes.filter((col) => {
42
- return col.hasOwnProperty("checked") && !col.checked;
66
+ const columnsToHide = storeNodes === null || storeNodes === void 0 ? void 0 : storeNodes.filter((col) => col.hasOwnProperty("checked") && !col.checked);
67
+ const updatedNodes = storeNodes === null || storeNodes === void 0 ? void 0 : storeNodes.map((node, idx) => {
68
+ const newSeq = idx + 1;
69
+ if (node.seq !== newSeq) {
70
+ node.seq = newSeq;
71
+ }
72
+ if (node.hasOwnProperty("checked")) {
73
+ node.selected = node.checked;
74
+ node.unSelected = !node.checked;
75
+ }
76
+ return node;
43
77
  });
44
- hideColumns(columnsToHide);
78
+ setNodes(updatedNodes);
79
+ setStoreNodes(updatedNodes);
80
+ hideColumns(columnsToHide, updatedNodes);
45
81
  setVisibleRight(false);
46
82
  };
47
- const hideColumns = (columnsToHide) => {
83
+ // Hide columns from grid
84
+ const hideColumns = (columnsToHide, updatedSeq) => {
48
85
  if (!gridApi)
49
86
  return;
50
- const columnDefs = gridApi.current.api.getColumnDefs();
87
+ const columnDefs = JSON.parse(JSON.stringify(gridData.columnData));
51
88
  const updatedColumnDefs = columnDefs.map((colDef) => {
52
89
  const colToHide = columnsToHide.find((col) => col.id === colDef.id);
53
- if (colToHide) {
54
- colDef.hide = true; // or colDef.hide = !!colToHide.checked; if using checked property
55
- }
56
- else {
57
- colDef.hide = false; // ensure other columns are not hidden
90
+ colDef.hide = !!colToHide;
91
+ const updatedCol = updatedSeq.find((col) => col.id === colDef.id);
92
+ if (updatedCol) {
93
+ colDef.seq = updatedCol.seq;
58
94
  }
59
95
  return colDef;
60
96
  });
61
- gridApi.current.api.setColumnDefs(updatedColumnDefs);
97
+ updateColumnsForGrid(updatedColumnDefs);
98
+ };
99
+ // When drag started
100
+ const handleDragStart = (index) => (event) => {
101
+ event.dataTransfer.setData("text/plain", index);
102
+ };
103
+ // When selected item dropped
104
+ const handleDrop = (index) => (event) => {
105
+ event.preventDefault();
106
+ const draggedIndex = event.dataTransfer.getData("text");
107
+ if (draggedIndex !== index.toString()) {
108
+ const updatedColumns = [...storeNodes];
109
+ const [draggedItem] = updatedColumns.splice(draggedIndex, 1);
110
+ console.log(draggedItem, 'dragged item', draggedIndex);
111
+ updatedColumns.splice(index, 0, draggedItem);
112
+ console.log(updatedColumns, draggedIndex, draggedItem, 'data of dragging');
113
+ for (let i = 0; i < updatedColumns.length; i++) {
114
+ const currentColumn = updatedColumns[i];
115
+ console.log(i, currentColumn, 'columns in loop');
116
+ }
117
+ setNodes(updatedColumns);
118
+ setStoreNodes(updatedColumns);
119
+ }
120
+ };
121
+ // When drag is completed
122
+ const handleDragOver = (event) => {
123
+ event.preventDefault();
62
124
  };
63
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { onClick: () => setVisibleRight(true), className: "mr-3", text: true, icon: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "columns-02" }) }), (0, jsx_runtime_1.jsxs)(sidebar_1.Sidebar, Object.assign({ className: "md:w-6 lg:w-3", visible: visibleRight, position: "right", onHide: () => setVisibleRight(false) }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between px-4 py-2 border-bottom-1 border-gray-200" }, { children: [(0, jsx_runtime_1.jsx)("h3", { children: "Configure Columns" }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center gap-3" }, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { text: true, label: "Discard" }), (0, jsx_runtime_1.jsx)(button_1.Button, { label: "Update", onClick: () => updateColumns() })] }))] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "p-4" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "px-3 py-2" }, { children: [(0, jsx_runtime_1.jsxs)("h3", Object.assign({ className: "flex align-items-center justify-content-between my-0" }, { children: ["Apply to all views", (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: checked, onChange: (e) => setChecked(e.value) })] })), (0, jsx_runtime_1.jsx)("p", Object.assign({ className: "my-0 text-sm" }, { children: "Apply the chosen column selection to all available views" }))] })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "py-2" }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "p-input-icon-left p-input-icon-right w-full" }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: "p-input-prefix" }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "search-md" }) })), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { id: "email", value: inpValue, onChange: (e) => {
64
- setInpValue(e.target.value);
65
- }, disabled: false, placeholder: "Search by column name", className: "text-lg font-normal text-gray-500 hover:text-gray-900 w-full" })] })) })), (0, jsx_runtime_1.jsxs)("p", Object.assign({ className: "py-2 my-0 text-gray-900 text-lg font-medium border-bottom-1 border-gray-200" }, { children: ["Selected Attributes", " ", (0, jsx_runtime_1.jsx)("span", Object.assign({ className: "text-gray-500 text-sm" }, { children: "(10/15)" }))] })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "w-full" }, { children: (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "list-none p-0 px-3" }, { children: (nodes === null || nodes === void 0 ? void 0 : nodes.length) > 0 &&
66
- nodes.map((listItem, idx) => (!(listItem === null || listItem === void 0 ? void 0 : listItem.hide) && (listItem === null || listItem === void 0 ? void 0 : listItem.field) && (listItem === null || listItem === void 0 ? void 0 : listItem.headerName)) && (0, jsx_runtime_1.jsxs)("li", Object.assign({ className: "flex align-items-center justify-content-between py-3" }, { children: [(0, jsx_runtime_1.jsx)("span", { children: listItem.headerName }), (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: listItem === null || listItem === void 0 ? void 0 : listItem.checked, onChange: (e) => handleSwitchChange(listItem, e.value) })] }), idx)) })) })), (0, jsx_runtime_1.jsx)("h3", Object.assign({ className: "mt-6 mb-0 pb-2 border-bottom-1 border-gray-200" }, { children: "Unselected Attributes" })), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "list-none p-0 px-3" }, { children: (nodes === null || nodes === void 0 ? void 0 : nodes.length) > 0 &&
67
- nodes.map((listItem) => ((listItem === null || listItem === void 0 ? void 0 : listItem.hide) && (listItem === null || listItem === void 0 ? void 0 : listItem.headerName)) && (0, jsx_runtime_1.jsxs)("li", Object.assign({ className: "flex align-items-center justify-content-between py-3" }, { children: [(0, jsx_runtime_1.jsx)("span", { children: listItem.headerName }), (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: listItem.checked, onChange: (e) => handleSwitchChange(listItem, e.value) })] }), listItem.id)) }))] }))] }))] }));
125
+ (0, react_1.useEffect)(() => {
126
+ assignInitialValues();
127
+ }, []);
128
+ (0, react_1.useEffect)(() => {
129
+ if (!visibleRight && (storeNodes === null || storeNodes === void 0 ? void 0 : storeNodes.length)) {
130
+ const fixNodes = [...storeNodes].map((node) => {
131
+ if ((node === null || node === void 0 ? void 0 : node.checked) !== (node === null || node === void 0 ? void 0 : node.selected)) {
132
+ node.checked = node.selected;
133
+ }
134
+ return node;
135
+ });
136
+ console.log(storeNodes, "store nodes in use effect");
137
+ setNodes(fixNodes);
138
+ setStoreNodes(fixNodes);
139
+ }
140
+ }, [visibleRight]);
141
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { onClick: () => setVisibleRight(true), text: true, icon: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "columns-02", size: 20 }) }), (0, jsx_runtime_1.jsxs)(sidebar_1.Sidebar, Object.assign({ className: "md:w-6 lg:w-3", visible: visibleRight, position: "right", onHide: () => setVisibleRight(false) }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center justify-content-between px-4 py-2 border-bottom-1 border-gray-200" }, { children: [(0, jsx_runtime_1.jsx)("h3", { children: "Configure Columns" }), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "flex align-items-center gap-3" }, { children: [(0, jsx_runtime_1.jsx)(button_1.Button, { text: true, label: "Discard", onClick: () => setVisibleRight(false) }), (0, jsx_runtime_1.jsx)(button_1.Button, { label: "Update", onClick: () => updateColumns() })] }))] })), (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "p-4" }, { children: [(0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "px-3 py-2" }, { children: [(0, jsx_runtime_1.jsxs)("h3", Object.assign({ className: "flex align-items-center justify-content-between my-0" }, { children: ["Apply to all views", (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: checked, onChange: (e) => setChecked(e.value) })] })), (0, jsx_runtime_1.jsx)("p", Object.assign({ className: "my-0 text-sm" }, { children: "Apply the chosen column selection to all available views" }))] })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "py-2" }, { children: (0, jsx_runtime_1.jsxs)("div", Object.assign({ className: "p-input-icon-left p-input-icon-right w-full" }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ className: "p-input-prefix" }, { children: (0, jsx_runtime_1.jsx)(svg_component_1.default, { icon: "search-md" }) })), (0, jsx_runtime_1.jsx)(inputtext_1.InputText, { id: "email",
142
+ // value={inpValue}
143
+ onChange: (e) => {
144
+ searchHandler(e.target.value);
145
+ }, disabled: false, placeholder: "Search by column name", className: "text-lg font-normal text-gray-500 hover:text-gray-900 w-full" })] })) })), (0, jsx_runtime_1.jsxs)("p", Object.assign({ className: "py-2 my-0 text-gray-900 text-lg font-medium border-bottom-1 border-gray-200" }, { children: ["Selected Attributes", " ", (0, jsx_runtime_1.jsxs)("span", Object.assign({ className: "text-gray-500 text-sm" }, { children: [nodes === null || nodes === void 0 ? void 0 : nodes.filter((node) => node.selected).length, "/", nodes === null || nodes === void 0 ? void 0 : nodes.filter((node) => node.unSelected || node.selected).length] }))] })), (0, jsx_runtime_1.jsx)("div", Object.assign({ className: "w-full" }, { children: (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "list-none p-0 px-3" }, { children: (nodes === null || nodes === void 0 ? void 0 : nodes.length) > 0 &&
146
+ (nodes === null || nodes === void 0 ? void 0 : nodes.map((listItem, idx) => (listItem === null || listItem === void 0 ? void 0 : listItem.visibleInPanel) &&
147
+ (listItem === null || listItem === void 0 ? void 0 : listItem.selected) && ((0, jsx_runtime_1.jsxs)("li", Object.assign({ className: "flex align-items-center justify-content-between py-3", draggable: true, onDragStart: handleDragStart(idx), onDrop: handleDrop(idx), onDragOver: handleDragOver }, { children: [(0, jsx_runtime_1.jsx)("span", Object.assign({ role: "img", "aria-label": "drag icon", className: "cursor-pointer" }, { children: "\uD83D\uDCE6" })), (0, jsx_runtime_1.jsx)("span", { children: listItem.headerName }), (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: listItem === null || listItem === void 0 ? void 0 : listItem.checked, onChange: (e) => handleSwitchChange(listItem, e.value) })] }), idx)))) })) })), (0, jsx_runtime_1.jsx)("h3", Object.assign({ className: "mt-6 mb-0 pb-2 border-bottom-1 border-gray-200" }, { children: "Unselected Attributes" })), (0, jsx_runtime_1.jsx)("ul", Object.assign({ className: "list-none p-0 px-3" }, { children: (nodes === null || nodes === void 0 ? void 0 : nodes.length) > 0 &&
148
+ (nodes === null || nodes === void 0 ? void 0 : nodes.map((listItem) => (listItem === null || listItem === void 0 ? void 0 : listItem.visibleInPanel) &&
149
+ (listItem === null || listItem === void 0 ? void 0 : listItem.unSelected) && ((0, jsx_runtime_1.jsxs)("li", Object.assign({ className: "flex align-items-center justify-content-between py-3" }, { children: [(0, jsx_runtime_1.jsx)("span", { children: listItem.headerName }), (0, jsx_runtime_1.jsx)(inputswitch_1.InputSwitch, { checked: listItem.checked, onChange: (e) => handleSwitchChange(listItem, e.value) })] }), listItem.id)))) }))] }))] }))] }));
68
150
  }
69
151
  exports.default = HideColumn;
@@ -6,7 +6,7 @@ const react_1 = require("react");
6
6
  const helper_1 = require("./helper");
7
7
  exports.FeatureContext = (0, react_1.createContext)(null);
8
8
  function MyProvider({ children, value }) {
9
- const { featureDetails, setFeatureDetails, gridData, callGrid, totalRecords, initialFeature, defaultFilters, createView, enableViewCreate, filterModelText, sortModelText, recordDetailModelText, sortOptions, filterConditions, clearFilters, setGridData, gridApi, } = value;
9
+ const { featureDetails, setFeatureDetails, gridData, callGrid, totalRecords, initialFeature, defaultFilters, createView, enableViewCreate, filterModelText, sortModelText, recordDetailModelText, sortOptions, filterConditions, clearFilters, setGridData, gridApi, updateColumnsForGrid } = value;
10
10
  // States for sort
11
11
  const [columnData] = (0, react_1.useState)(gridData === null || gridData === void 0 ? void 0 : gridData.columnData);
12
12
  const [sortValue, setSortValue] = (0, react_1.useState)({});
@@ -89,6 +89,7 @@ function MyProvider({ children, value }) {
89
89
  setGridData,
90
90
  gridData,
91
91
  gridApi,
92
+ updateColumnsForGrid
92
93
  } }, { children: children })));
93
94
  }
94
95
  exports.default = MyProvider;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseIfNeeded = exports.applyDefaultFilters = void 0;
3
+ exports.sortColumns = exports.parseIfNeeded = exports.applyDefaultFilters = void 0;
4
4
  const applyDefaultFilters = (defaultFilters) => {
5
5
  console.log(defaultFilters, 'deafult filters');
6
6
  const filters = defaultFilters === null || defaultFilters === void 0 ? void 0 : defaultFilters.map((item) => {
@@ -33,3 +33,14 @@ const parseIfNeeded = (value) => {
33
33
  }
34
34
  };
35
35
  exports.parseIfNeeded = parseIfNeeded;
36
+ const sortColumns = (columns) => {
37
+ const sortedColumns = columns === null || columns === void 0 ? void 0 : columns.sort((a, b) => {
38
+ if (!a.seq)
39
+ return 1;
40
+ if (!b.seq)
41
+ return -1;
42
+ return a.seq - b.seq;
43
+ });
44
+ return sortedColumns;
45
+ };
46
+ exports.sortColumns = sortColumns;
@@ -15,7 +15,7 @@ function ParentForGrid(props) {
15
15
  var _a, _b, _c, _d;
16
16
  const [gridData, setGridData] = (0, react_1.useState)({
17
17
  rowData: [],
18
- columnData: props === null || props === void 0 ? void 0 : props.columnData,
18
+ columnData: (0, helper_1.sortColumns)(props === null || props === void 0 ? void 0 : props.columnData)
19
19
  });
20
20
  const [style] = (0, react_1.useState)(props.style);
21
21
  const [api, setApi] = (0, react_1.useState)(null);
@@ -188,6 +188,7 @@ function ParentForGrid(props) {
188
188
  }
189
189
  }),
190
190
  };
191
+ setGridData(Object.assign(Object.assign({}, gridData), { columnData: props === null || props === void 0 ? void 0 : props.columnData }));
191
192
  params.api.setGridOption("datasource", dataSource);
192
193
  }
193
194
  });
@@ -249,6 +250,23 @@ function ParentForGrid(props) {
249
250
  callBackForCheckedRows(featureDetails);
250
251
  }
251
252
  }, [featureDetails]);
253
+ (0, react_1.useEffect)(() => {
254
+ var _a;
255
+ const existingColumns = (_a = gridRef === null || gridRef === void 0 ? void 0 : gridRef.current.api) === null || _a === void 0 ? void 0 : _a.getColumnDefs();
256
+ if (!(props === null || props === void 0 ? void 0 : props.columnData) || !existingColumns)
257
+ return;
258
+ const columnFromProps = (0, helper_1.sortColumns)(props === null || props === void 0 ? void 0 : props.columnData);
259
+ const updatedColumnDefs = existingColumns.map((colDef) => {
260
+ columnFromProps.find((col) => {
261
+ if (col.id === colDef.id) {
262
+ colDef.hide = col.hide;
263
+ }
264
+ });
265
+ return colDef;
266
+ });
267
+ gridRef.current.api.setGridOption("columnDefs", updatedColumnDefs);
268
+ }, [props === null || props === void 0 ? void 0 : props.columnData]);
269
+ console.log(props === null || props === void 0 ? void 0 : props.columnData, gridData === null || gridData === void 0 ? void 0 : gridData.columnData, 'column from props and grid data');
252
270
  return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(error_ui_1.default, { children: (0, jsx_runtime_1.jsx)("div", Object.assign({ style: { height: style.height, width: style.width }, className: "ag-grid-container border-1 border-gray-200 border-round" }, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(context_provider_1.default, Object.assign({ value: {
253
271
  featureDetails,
254
272
  setFeatureDetails,
@@ -267,6 +285,7 @@ function ParentForGrid(props) {
267
285
  clearFilters: props === null || props === void 0 ? void 0 : props.clearFilters,
268
286
  setGridData,
269
287
  gridApi: gridRef,
288
+ updateColumnsForGrid: props === null || props === void 0 ? void 0 : props.updateColumnsForGrid
270
289
  } }, { children: (0, jsx_runtime_1.jsx)(advanced_feature_1.default, { props: props }) })), (0, jsx_runtime_1.jsx)(AgGrid_1.default, { style: style, gridOptions: gridOptions, onGridReady: onGridReady, gridRef: gridRef })] }) })) }) }));
271
290
  }
272
291
  exports.default = ParentForGrid;
@@ -12,7 +12,13 @@ export interface ColumnDef extends ColDef {
12
12
  options?: any[];
13
13
  selectionType?: string;
14
14
  columnType?: string;
15
+ visibleInPanel?: boolean;
16
+ seq?: number;
17
+ }
18
+ export interface ColHideShow extends ColumnDef {
15
19
  checked?: boolean;
20
+ selected?: boolean;
21
+ unSelected?: boolean;
16
22
  }
17
23
  export interface Style {
18
24
  height: number | string;
@@ -86,6 +92,7 @@ export interface ConditionsToDisplay {
86
92
  displayColumnHide?: boolean;
87
93
  displayBulkAction?: boolean;
88
94
  enableViewCreate?: boolean;
95
+ displaySidePanel?: boolean;
89
96
  }
90
97
  export interface PropsFromProduct {
91
98
  columnData: ColumnDef[];
@@ -103,6 +110,7 @@ export interface PropsFromProduct {
103
110
  sortOptions?: any[];
104
111
  filterConditions?: FilterCondition[];
105
112
  clearFilters?: Boolean;
113
+ updateColumnsForGrid?: (columns: ColumnDef) => void;
106
114
  }
107
115
  export interface ResoponseFromCallback {
108
116
  totalRecords: number;
@@ -1,4 +1,4 @@
1
- import { Features, FilterCondition, FilterModelText, GridData, RecordDetailModelText, SortModelText } from "./Types";
1
+ import { ColumnDef, Features, FilterCondition, FilterModelText, GridData, RecordDetailModelText, SortModelText } from "./Types";
2
2
  export declare const FeatureContext: import("react").Context<any>;
3
3
  interface MyProviderProps {
4
4
  children: React.ReactNode;
@@ -20,6 +20,7 @@ interface MyProviderProps {
20
20
  clearFilters: Boolean;
21
21
  setGridData: (GridData: any) => void;
22
22
  gridApi: any;
23
+ updateColumnsForGrid: (columns: ColumnDef) => void;
23
24
  };
24
25
  }
25
26
  declare function MyProvider({ children, value }: MyProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,3 @@
1
1
  export declare const applyDefaultFilters: (defaultFilters: any) => any;
2
2
  export declare const parseIfNeeded: (value: any) => any;
3
+ export declare const sortColumns: (columns: any) => any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sccoreui",
3
- "version": "5.9.84",
3
+ "version": "5.9.86",
4
4
  "description": "ui-sccore",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",