@helpdice/ui 1.5.2 → 1.5.4

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
@@ -26341,6 +26341,7 @@ var TableHead = function TableHead(props) {
26341
26341
  }, columns.map(function (column, index) {
26342
26342
  var _String;
26343
26343
  var dataName = (_String = String(column === null || column === void 0 ? void 0 : column.label)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
26344
+ console.log('Column Hide:', dataName);
26344
26345
  return /*#__PURE__*/React$1.createElement("th", {
26345
26346
  style: _objectSpread2({
26346
26347
  // textAlign: `${column?.align} !important`,
@@ -44232,28 +44233,29 @@ function DataTable(_ref) {
44232
44233
  onNextPage = _ref.onNextPage,
44233
44234
  onPreviousPage = _ref.onPreviousPage;
44234
44235
  var TABLE_ID = _.uniqueId('tbl');
44236
+ var COLUMNS = cols.filter(function (col) {
44237
+ var _String;
44238
+ var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
44239
+ return !hideColumn.includes(dataName);
44240
+ });
44235
44241
  // const [anchorEl, setAnchorEl] = useState(null);
44236
44242
  var _useState = React$1.useState([]),
44237
44243
  _useState2 = _slicedToArray(_useState, 2),
44238
44244
  selected = _useState2[0],
44239
44245
  setSelected = _useState2[1];
44240
- var _useState3 = React$1.useState({}),
44246
+ // State for filter values
44247
+ var _useState3 = React$1.useState(COLUMNS.reduce(function (acc, col) {
44248
+ acc[col.filter] = '';
44249
+ return acc;
44250
+ }, {})),
44241
44251
  _useState4 = _slicedToArray(_useState3, 2),
44242
- filters = _useState4[0],
44243
- setFilters = _useState4[1];
44252
+ filterValues = _useState4[0],
44253
+ setFilterValues = _useState4[1];
44244
44254
  // const [table_filters] = useDebounce(filters, 500);
44245
- // const open = Boolean(anchorEl);
44246
- // const handleMenuOpen = (event: any) => {
44247
- // setAnchorEl(event.currentTarget);
44248
- // };
44249
44255
  var _useState5 = React$1.useState([]),
44250
44256
  _useState6 = _slicedToArray(_useState5, 2),
44251
44257
  hideColumn = _useState6[0],
44252
44258
  setHideColumn = _useState6[1];
44253
- // const handleMenuClose = () => {
44254
- // setAnchorEl(null);
44255
- // };
44256
-
44257
44259
  var _useState7 = React$1.useState(false),
44258
44260
  _useState8 = _slicedToArray(_useState7, 2),
44259
44261
  openFilter = _useState8[0],
@@ -44263,8 +44265,8 @@ function DataTable(_ref) {
44263
44265
  }
44264
44266
  React$1.useEffect(function () {
44265
44267
  cols.forEach(function (col) {
44266
- var _String;
44267
- var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
44268
+ var _String2;
44269
+ var dataName = (_String2 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
44268
44270
  if (hideColumn.includes(col.name)) {
44269
44271
  document.querySelectorAll("[data-column=\"".concat(dataName, "\"]")).forEach(function (el) {
44270
44272
  el.style.display = 'none !important';
@@ -44277,8 +44279,8 @@ function DataTable(_ref) {
44277
44279
  });
44278
44280
  }, [hideColumn, cols]);
44279
44281
  function handleHideColumnClick(_event, _id) {
44280
- var _String2;
44281
- var id = (_String2 = String(_id)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
44282
+ var _String3;
44283
+ var id = (_String3 = String(_id)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
44282
44284
  var selectedIndex = hideColumn.indexOf(id);
44283
44285
  var newSelected = [];
44284
44286
  if (selectedIndex === -1) {
@@ -44327,27 +44329,16 @@ function DataTable(_ref) {
44327
44329
  // // '& tr': { borderBottom: '1px solid #ccc !important' }
44328
44330
  // };
44329
44331
 
44330
- var COLUMNS = cols.filter(function (col) {
44331
- var _String3;
44332
- var dataName = (_String3 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
44333
- return !hideColumn.includes(dataName);
44334
- });
44335
44332
  var handleFilterChange = function handleFilterChange(name, value) {
44336
- setFilters(function (prevFilters) {
44337
- var updatedFilters = _objectSpread2(_objectSpread2({}, prevFilters), {}, _defineProperty$1({}, name, value));
44338
- if (onFilters) {
44339
- onFilters(updatedFilters);
44340
- }
44341
- return updatedFilters;
44342
- });
44333
+ setFilterValues(_objectSpread2(_objectSpread2({}, filterValues), {}, _defineProperty$1({}, name, value)));
44343
44334
  };
44344
44335
  var generateFilterInputs = function generateFilterInputs() {
44345
44336
  return COLUMNS.map(function (col) {
44346
- var _String4, _filters$filterName;
44347
- var Header = col.label,
44337
+ var _String4, _filterValues$filterN;
44338
+ var Header = col.name,
44348
44339
  accessor = col.filter,
44349
44340
  options = col.options;
44350
- var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.label)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
44341
+ var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
44351
44342
  var unq_accessor = _.uniqueId(filterName);
44352
44343
  // if (Header === 'actions') {
44353
44344
  // return (
@@ -44356,17 +44347,16 @@ function DataTable(_ref) {
44356
44347
  // </th>
44357
44348
  // )
44358
44349
  // }
44359
- return /*#__PURE__*/React$1.createElement("div", {
44350
+ return /*#__PURE__*/React$1.createElement(Popover.Item, {
44360
44351
  style: {
44361
44352
  padding: '3px'
44362
44353
  },
44363
44354
  "data-column": Header,
44364
44355
  key: unq_accessor
44365
- }, accessor === 'fixed' && /*#__PURE__*/React$1.createElement(Select
44366
- // key={unq_accessor}
44367
- // name={filterName}
44368
- , {
44369
- value: (_filters$filterName = filters[filterName]) !== null && _filters$filterName !== void 0 ? _filters$filterName : 'All',
44356
+ }, accessor === 'fixed' && /*#__PURE__*/React$1.createElement(Select, {
44357
+ key: filterName,
44358
+ name: filterName,
44359
+ value: (_filterValues$filterN = filterValues[filterName]) !== null && _filterValues$filterN !== void 0 ? _filterValues$filterN : 'All',
44370
44360
  onChange: function onChange(newValue) {
44371
44361
  return handleFilterChange(filterName, newValue);
44372
44362
  }
@@ -44379,26 +44369,27 @@ function DataTable(_ref) {
44379
44369
  }) : null), accessor === 'date' && /*#__PURE__*/React$1.createElement(Input
44380
44370
  // id={`filter-date-${filterName}`}
44381
44371
  , {
44382
- htmlType: "date"
44383
- // name={filterName}
44384
- ,
44385
- value: filters[filterName],
44372
+ key: filterName,
44373
+ htmlType: "date",
44374
+ name: filterName,
44375
+ value: filterValues[filterName],
44386
44376
  onChange: function onChange(e) {
44387
44377
  return handleFilterChange(filterName, e.target.value);
44388
44378
  }
44389
44379
  }), accessor === 'search' && /*#__PURE__*/React$1.createElement(Input
44390
44380
  // id={`filter-search-${filterName}`}
44391
44381
  , {
44382
+ key: filterName,
44392
44383
  htmlType: "text",
44393
44384
  autoComplete: "off"
44394
44385
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
44395
- // name={filterName}
44396
44386
  ,
44387
+ name: filterName,
44397
44388
  style: {
44398
44389
  height: 30,
44399
44390
  minWidth: 160
44400
44391
  },
44401
- value: filters[filterName],
44392
+ value: filterValues[filterName],
44402
44393
  onChange: function onChange(e) {
44403
44394
  return handleFilterChange(filterName, e.target.value);
44404
44395
  },
@@ -44422,6 +44413,15 @@ function DataTable(_ref) {
44422
44413
  }, /*#__PURE__*/React$1.createElement("span", null, option.name));
44423
44414
  }));
44424
44415
  };
44416
+ var filterContent = function filterContent() {
44417
+ return /*#__PURE__*/React$1.createElement(React$1.Fragment, null, generateFilterInputs(), /*#__PURE__*/React$1.createElement(Popover.Item, null, /*#__PURE__*/React$1.createElement(Button, {
44418
+ onClick: function onClick() {
44419
+ if (onFilters) {
44420
+ onFilters(filterValues);
44421
+ }
44422
+ }
44423
+ }, "Apply")));
44424
+ };
44425
44425
  return /*#__PURE__*/React$1.createElement(GridContainer, {
44426
44426
  className: "helpdice-ui-data-table-container",
44427
44427
  direction: "column"
@@ -44513,6 +44513,11 @@ function DataTable(_ref) {
44513
44513
  px: 0.6,
44514
44514
  py: 0.4,
44515
44515
  type: "dark"
44516
+ }, /*#__PURE__*/React$1.createElement(Popover, {
44517
+ hideArrow: true,
44518
+ disableItemsAutoClose: true,
44519
+ placement: "bottomEnd",
44520
+ child: filterContent
44516
44521
  }, /*#__PURE__*/React$1.createElement(Button, {
44517
44522
  htmlType: "button",
44518
44523
  onClick: handleShowFilter,
@@ -44520,7 +44525,7 @@ function DataTable(_ref) {
44520
44525
  scale: 2 / 3,
44521
44526
  px: 0.6,
44522
44527
  iconRight: /*#__PURE__*/React$1.createElement(Filters, null)
44523
- })) : null, !disableViewColumn && /*#__PURE__*/React$1.createElement(Tooltip, {
44528
+ }))) : null, !disableViewColumn && /*#__PURE__*/React$1.createElement(Tooltip, {
44524
44529
  text: "Columns",
44525
44530
  placement: "bottomEnd",
44526
44531
  font: 0.8,
@@ -44548,15 +44553,16 @@ function DataTable(_ref) {
44548
44553
  display: 'flex',
44549
44554
  flexDirection: sideMenu ? 'row' : 'column'
44550
44555
  }
44551
- }, sideMenu || openFilter ? /*#__PURE__*/React$1.createElement(GridContainer, {
44556
+ }, sideMenu ? /*#__PURE__*/React$1.createElement(GridContainer, {
44552
44557
  direction: "column",
44553
44558
  style: {
44554
44559
  width: '15rem',
44560
+ gap: 5,
44555
44561
  padding: '0.5rem 0.7rem',
44556
44562
  border: '1px solid #cfcfcf',
44557
44563
  borderRadius: '5px'
44558
44564
  }
44559
- }, openFilter ? generateFilterInputs() : sideMenu) : null, /*#__PURE__*/React$1.createElement("div", {
44565
+ }, sideMenu) : null, /*#__PURE__*/React$1.createElement("div", {
44560
44566
  onDragOver: onDragOver,
44561
44567
  onDragEnter: onDragEnter,
44562
44568
  onDragLeave: onDragLeave,
@@ -1030,6 +1030,7 @@ var TableHead = function TableHead(props) {
1030
1030
  }, columns.map(function (column, index) {
1031
1031
  var _String;
1032
1032
  var dataName = (_String = String(column === null || column === void 0 ? void 0 : column.label)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
1033
+ console.log('Column Hide:', dataName);
1033
1034
  return /*#__PURE__*/React.createElement("th", {
1034
1035
  style: _objectSpread2({
1035
1036
  // textAlign: `${column?.align} !important`,
@@ -31520,28 +31521,29 @@ function DataTable(_ref) {
31520
31521
  onNextPage = _ref.onNextPage,
31521
31522
  onPreviousPage = _ref.onPreviousPage;
31522
31523
  var TABLE_ID = _.uniqueId('tbl');
31524
+ var COLUMNS = cols.filter(function (col) {
31525
+ var _String;
31526
+ var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
31527
+ return !hideColumn.includes(dataName);
31528
+ });
31523
31529
  // const [anchorEl, setAnchorEl] = useState(null);
31524
31530
  var _useState = React.useState([]),
31525
31531
  _useState2 = _slicedToArray(_useState, 2),
31526
31532
  selected = _useState2[0],
31527
31533
  setSelected = _useState2[1];
31528
- var _useState3 = React.useState({}),
31534
+ // State for filter values
31535
+ var _useState3 = React.useState(COLUMNS.reduce(function (acc, col) {
31536
+ acc[col.filter] = '';
31537
+ return acc;
31538
+ }, {})),
31529
31539
  _useState4 = _slicedToArray(_useState3, 2),
31530
- filters = _useState4[0],
31531
- setFilters = _useState4[1];
31540
+ filterValues = _useState4[0],
31541
+ setFilterValues = _useState4[1];
31532
31542
  // const [table_filters] = useDebounce(filters, 500);
31533
- // const open = Boolean(anchorEl);
31534
- // const handleMenuOpen = (event: any) => {
31535
- // setAnchorEl(event.currentTarget);
31536
- // };
31537
31543
  var _useState5 = React.useState([]),
31538
31544
  _useState6 = _slicedToArray(_useState5, 2),
31539
31545
  hideColumn = _useState6[0],
31540
31546
  setHideColumn = _useState6[1];
31541
- // const handleMenuClose = () => {
31542
- // setAnchorEl(null);
31543
- // };
31544
-
31545
31547
  var _useState7 = React.useState(false),
31546
31548
  _useState8 = _slicedToArray(_useState7, 2),
31547
31549
  openFilter = _useState8[0],
@@ -31551,8 +31553,8 @@ function DataTable(_ref) {
31551
31553
  }
31552
31554
  React.useEffect(function () {
31553
31555
  cols.forEach(function (col) {
31554
- var _String;
31555
- var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
31556
+ var _String2;
31557
+ var dataName = (_String2 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
31556
31558
  if (hideColumn.includes(col.name)) {
31557
31559
  document.querySelectorAll("[data-column=\"".concat(dataName, "\"]")).forEach(function (el) {
31558
31560
  el.style.display = 'none !important';
@@ -31565,8 +31567,8 @@ function DataTable(_ref) {
31565
31567
  });
31566
31568
  }, [hideColumn, cols]);
31567
31569
  function handleHideColumnClick(_event, _id) {
31568
- var _String2;
31569
- var id = (_String2 = String(_id)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
31570
+ var _String3;
31571
+ var id = (_String3 = String(_id)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
31570
31572
  var selectedIndex = hideColumn.indexOf(id);
31571
31573
  var newSelected = [];
31572
31574
  if (selectedIndex === -1) {
@@ -31615,27 +31617,16 @@ function DataTable(_ref) {
31615
31617
  // // '& tr': { borderBottom: '1px solid #ccc !important' }
31616
31618
  // };
31617
31619
 
31618
- var COLUMNS = cols.filter(function (col) {
31619
- var _String3;
31620
- var dataName = (_String3 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
31621
- return !hideColumn.includes(dataName);
31622
- });
31623
31620
  var handleFilterChange = function handleFilterChange(name, value) {
31624
- setFilters(function (prevFilters) {
31625
- var updatedFilters = _objectSpread2(_objectSpread2({}, prevFilters), {}, _defineProperty({}, name, value));
31626
- if (onFilters) {
31627
- onFilters(updatedFilters);
31628
- }
31629
- return updatedFilters;
31630
- });
31621
+ setFilterValues(_objectSpread2(_objectSpread2({}, filterValues), {}, _defineProperty({}, name, value)));
31631
31622
  };
31632
31623
  var generateFilterInputs = function generateFilterInputs() {
31633
31624
  return COLUMNS.map(function (col) {
31634
- var _String4, _filters$filterName;
31635
- var Header = col.label,
31625
+ var _String4, _filterValues$filterN;
31626
+ var Header = col.name,
31636
31627
  accessor = col.filter,
31637
31628
  options = col.options;
31638
- var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.label)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
31629
+ var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
31639
31630
  var unq_accessor = _.uniqueId(filterName);
31640
31631
  // if (Header === 'actions') {
31641
31632
  // return (
@@ -31644,17 +31635,16 @@ function DataTable(_ref) {
31644
31635
  // </th>
31645
31636
  // )
31646
31637
  // }
31647
- return /*#__PURE__*/React.createElement("div", {
31638
+ return /*#__PURE__*/React.createElement(Popover.Item, {
31648
31639
  style: {
31649
31640
  padding: '3px'
31650
31641
  },
31651
31642
  "data-column": Header,
31652
31643
  key: unq_accessor
31653
- }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select
31654
- // key={unq_accessor}
31655
- // name={filterName}
31656
- , {
31657
- value: (_filters$filterName = filters[filterName]) !== null && _filters$filterName !== void 0 ? _filters$filterName : 'All',
31644
+ }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select, {
31645
+ key: filterName,
31646
+ name: filterName,
31647
+ value: (_filterValues$filterN = filterValues[filterName]) !== null && _filterValues$filterN !== void 0 ? _filterValues$filterN : 'All',
31658
31648
  onChange: function onChange(newValue) {
31659
31649
  return handleFilterChange(filterName, newValue);
31660
31650
  }
@@ -31667,26 +31657,27 @@ function DataTable(_ref) {
31667
31657
  }) : null), accessor === 'date' && /*#__PURE__*/React.createElement(Input
31668
31658
  // id={`filter-date-${filterName}`}
31669
31659
  , {
31670
- htmlType: "date"
31671
- // name={filterName}
31672
- ,
31673
- value: filters[filterName],
31660
+ key: filterName,
31661
+ htmlType: "date",
31662
+ name: filterName,
31663
+ value: filterValues[filterName],
31674
31664
  onChange: function onChange(e) {
31675
31665
  return handleFilterChange(filterName, e.target.value);
31676
31666
  }
31677
31667
  }), accessor === 'search' && /*#__PURE__*/React.createElement(Input
31678
31668
  // id={`filter-search-${filterName}`}
31679
31669
  , {
31670
+ key: filterName,
31680
31671
  htmlType: "text",
31681
31672
  autoComplete: "off"
31682
31673
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
31683
- // name={filterName}
31684
31674
  ,
31675
+ name: filterName,
31685
31676
  style: {
31686
31677
  height: 30,
31687
31678
  minWidth: 160
31688
31679
  },
31689
- value: filters[filterName],
31680
+ value: filterValues[filterName],
31690
31681
  onChange: function onChange(e) {
31691
31682
  return handleFilterChange(filterName, e.target.value);
31692
31683
  },
@@ -31710,6 +31701,15 @@ function DataTable(_ref) {
31710
31701
  }, /*#__PURE__*/React.createElement("span", null, option.name));
31711
31702
  }));
31712
31703
  };
31704
+ var filterContent = function filterContent() {
31705
+ return /*#__PURE__*/React.createElement(React.Fragment, null, generateFilterInputs(), /*#__PURE__*/React.createElement(Popover.Item, null, /*#__PURE__*/React.createElement(Button, {
31706
+ onClick: function onClick() {
31707
+ if (onFilters) {
31708
+ onFilters(filterValues);
31709
+ }
31710
+ }
31711
+ }, "Apply")));
31712
+ };
31713
31713
  return /*#__PURE__*/React.createElement(GridContainer, {
31714
31714
  className: "helpdice-ui-data-table-container",
31715
31715
  direction: "column"
@@ -31801,6 +31801,11 @@ function DataTable(_ref) {
31801
31801
  px: 0.6,
31802
31802
  py: 0.4,
31803
31803
  type: "dark"
31804
+ }, /*#__PURE__*/React.createElement(Popover, {
31805
+ hideArrow: true,
31806
+ disableItemsAutoClose: true,
31807
+ placement: "bottomEnd",
31808
+ child: filterContent
31804
31809
  }, /*#__PURE__*/React.createElement(Button, {
31805
31810
  htmlType: "button",
31806
31811
  onClick: handleShowFilter,
@@ -31808,7 +31813,7 @@ function DataTable(_ref) {
31808
31813
  scale: 2 / 3,
31809
31814
  px: 0.6,
31810
31815
  iconRight: /*#__PURE__*/React.createElement(Filters, null)
31811
- })) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
31816
+ }))) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
31812
31817
  text: "Columns",
31813
31818
  placement: "bottomEnd",
31814
31819
  font: 0.8,
@@ -31836,15 +31841,16 @@ function DataTable(_ref) {
31836
31841
  display: 'flex',
31837
31842
  flexDirection: sideMenu ? 'row' : 'column'
31838
31843
  }
31839
- }, sideMenu || openFilter ? /*#__PURE__*/React.createElement(GridContainer, {
31844
+ }, sideMenu ? /*#__PURE__*/React.createElement(GridContainer, {
31840
31845
  direction: "column",
31841
31846
  style: {
31842
31847
  width: '15rem',
31848
+ gap: 5,
31843
31849
  padding: '0.5rem 0.7rem',
31844
31850
  border: '1px solid #cfcfcf',
31845
31851
  borderRadius: '5px'
31846
31852
  }
31847
- }, openFilter ? generateFilterInputs() : sideMenu) : null, /*#__PURE__*/React.createElement("div", {
31853
+ }, sideMenu) : null, /*#__PURE__*/React.createElement("div", {
31848
31854
  onDragOver: onDragOver,
31849
31855
  onDragEnter: onDragEnter,
31850
31856
  onDragLeave: onDragLeave,
@@ -66,28 +66,29 @@ function DataTable(_ref) {
66
66
  onNextPage = _ref.onNextPage,
67
67
  onPreviousPage = _ref.onPreviousPage;
68
68
  var TABLE_ID = _.uniqueId('tbl');
69
+ var COLUMNS = cols.filter(function (col) {
70
+ var _String;
71
+ var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
72
+ return !hideColumn.includes(dataName);
73
+ });
69
74
  // const [anchorEl, setAnchorEl] = useState(null);
70
75
  var _useState = useState([]),
71
76
  _useState2 = _slicedToArray(_useState, 2),
72
77
  selected = _useState2[0],
73
78
  setSelected = _useState2[1];
74
- var _useState3 = useState({}),
79
+ // State for filter values
80
+ var _useState3 = useState(COLUMNS.reduce(function (acc, col) {
81
+ acc[col.filter] = '';
82
+ return acc;
83
+ }, {})),
75
84
  _useState4 = _slicedToArray(_useState3, 2),
76
- filters = _useState4[0],
77
- setFilters = _useState4[1];
85
+ filterValues = _useState4[0],
86
+ setFilterValues = _useState4[1];
78
87
  // const [table_filters] = useDebounce(filters, 500);
79
- // const open = Boolean(anchorEl);
80
- // const handleMenuOpen = (event: any) => {
81
- // setAnchorEl(event.currentTarget);
82
- // };
83
88
  var _useState5 = useState([]),
84
89
  _useState6 = _slicedToArray(_useState5, 2),
85
90
  hideColumn = _useState6[0],
86
91
  setHideColumn = _useState6[1];
87
- // const handleMenuClose = () => {
88
- // setAnchorEl(null);
89
- // };
90
-
91
92
  var _useState7 = useState(false),
92
93
  _useState8 = _slicedToArray(_useState7, 2),
93
94
  openFilter = _useState8[0],
@@ -97,8 +98,8 @@ function DataTable(_ref) {
97
98
  }
98
99
  useEffect(function () {
99
100
  cols.forEach(function (col) {
100
- var _String;
101
- var dataName = (_String = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
101
+ var _String2;
102
+ var dataName = (_String2 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
102
103
  if (hideColumn.includes(col.name)) {
103
104
  document.querySelectorAll("[data-column=\"".concat(dataName, "\"]")).forEach(function (el) {
104
105
  el.style.display = 'none !important';
@@ -111,8 +112,8 @@ function DataTable(_ref) {
111
112
  });
112
113
  }, [hideColumn, cols]);
113
114
  function handleHideColumnClick(_event, _id) {
114
- var _String2;
115
- var id = (_String2 = String(_id)) === null || _String2 === void 0 ? void 0 : _String2.replace(' ', '_').toLowerCase();
115
+ var _String3;
116
+ var id = (_String3 = String(_id)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
116
117
  var selectedIndex = hideColumn.indexOf(id);
117
118
  var newSelected = [];
118
119
  if (selectedIndex === -1) {
@@ -161,27 +162,16 @@ function DataTable(_ref) {
161
162
  // // '& tr': { borderBottom: '1px solid #ccc !important' }
162
163
  // };
163
164
 
164
- var COLUMNS = cols.filter(function (col) {
165
- var _String3;
166
- var dataName = (_String3 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
167
- return !hideColumn.includes(dataName);
168
- });
169
165
  var handleFilterChange = function handleFilterChange(name, value) {
170
- setFilters(function (prevFilters) {
171
- var updatedFilters = _extends({}, prevFilters, _defineProperty({}, name, value));
172
- if (onFilters) {
173
- onFilters(updatedFilters);
174
- }
175
- return updatedFilters;
176
- });
166
+ setFilterValues(_extends({}, filterValues, _defineProperty({}, name, value)));
177
167
  };
178
168
  var generateFilterInputs = function generateFilterInputs() {
179
169
  return COLUMNS.map(function (col) {
180
- var _String4, _filters$filterName;
181
- var Header = col.label,
170
+ var _String4, _filterValues$filterN;
171
+ var Header = col.name,
182
172
  accessor = col.filter,
183
173
  options = col.options;
184
- var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.label)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
174
+ var filterName = (_String4 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String4 === void 0 ? void 0 : _String4.replace(' ', '_').toLowerCase();
185
175
  var unq_accessor = _.uniqueId(filterName);
186
176
  // if (Header === 'actions') {
187
177
  // return (
@@ -190,17 +180,16 @@ function DataTable(_ref) {
190
180
  // </th>
191
181
  // )
192
182
  // }
193
- return /*#__PURE__*/React.createElement("div", {
183
+ return /*#__PURE__*/React.createElement(Popover.Item, {
194
184
  style: {
195
185
  padding: '3px'
196
186
  },
197
187
  "data-column": Header,
198
188
  key: unq_accessor
199
- }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select
200
- // key={unq_accessor}
201
- // name={filterName}
202
- , {
203
- value: (_filters$filterName = filters[filterName]) !== null && _filters$filterName !== void 0 ? _filters$filterName : 'All',
189
+ }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select, {
190
+ key: filterName,
191
+ name: filterName,
192
+ value: (_filterValues$filterN = filterValues[filterName]) !== null && _filterValues$filterN !== void 0 ? _filterValues$filterN : 'All',
204
193
  onChange: function onChange(newValue) {
205
194
  return handleFilterChange(filterName, newValue);
206
195
  }
@@ -213,26 +202,27 @@ function DataTable(_ref) {
213
202
  }) : null), accessor === 'date' && /*#__PURE__*/React.createElement(Input
214
203
  // id={`filter-date-${filterName}`}
215
204
  , {
216
- htmlType: "date"
217
- // name={filterName}
218
- ,
219
- value: filters[filterName],
205
+ key: filterName,
206
+ htmlType: "date",
207
+ name: filterName,
208
+ value: filterValues[filterName],
220
209
  onChange: function onChange(e) {
221
210
  return handleFilterChange(filterName, e.target.value);
222
211
  }
223
212
  }), accessor === 'search' && /*#__PURE__*/React.createElement(Input
224
213
  // id={`filter-search-${filterName}`}
225
214
  , {
215
+ key: filterName,
226
216
  htmlType: "text",
227
217
  autoComplete: "off"
228
218
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
229
- // name={filterName}
230
219
  ,
220
+ name: filterName,
231
221
  style: {
232
222
  height: 30,
233
223
  minWidth: 160
234
224
  },
235
- value: filters[filterName],
225
+ value: filterValues[filterName],
236
226
  onChange: function onChange(e) {
237
227
  return handleFilterChange(filterName, e.target.value);
238
228
  },
@@ -256,6 +246,15 @@ function DataTable(_ref) {
256
246
  }, /*#__PURE__*/React.createElement("span", null, option.name));
257
247
  }));
258
248
  };
249
+ var filterContent = function filterContent() {
250
+ return /*#__PURE__*/React.createElement(React.Fragment, null, generateFilterInputs(), /*#__PURE__*/React.createElement(Popover.Item, null, /*#__PURE__*/React.createElement(Button, {
251
+ onClick: function onClick() {
252
+ if (onFilters) {
253
+ onFilters(filterValues);
254
+ }
255
+ }
256
+ }, "Apply")));
257
+ };
259
258
  return /*#__PURE__*/React.createElement(Container, {
260
259
  className: "helpdice-ui-data-table-container",
261
260
  direction: "column"
@@ -347,6 +346,11 @@ function DataTable(_ref) {
347
346
  px: 0.6,
348
347
  py: 0.4,
349
348
  type: "dark"
349
+ }, /*#__PURE__*/React.createElement(Popover, {
350
+ hideArrow: true,
351
+ disableItemsAutoClose: true,
352
+ placement: "bottomEnd",
353
+ child: filterContent
350
354
  }, /*#__PURE__*/React.createElement(Button, {
351
355
  htmlType: "button",
352
356
  onClick: handleShowFilter,
@@ -354,7 +358,7 @@ function DataTable(_ref) {
354
358
  scale: 2 / 3,
355
359
  px: 0.6,
356
360
  iconRight: /*#__PURE__*/React.createElement(Filters, null)
357
- })) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
361
+ }))) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
358
362
  text: "Columns",
359
363
  placement: "bottomEnd",
360
364
  font: 0.8,
@@ -382,15 +386,16 @@ function DataTable(_ref) {
382
386
  display: 'flex',
383
387
  flexDirection: sideMenu ? 'row' : 'column'
384
388
  }
385
- }, sideMenu || openFilter ? /*#__PURE__*/React.createElement(Container, {
389
+ }, sideMenu ? /*#__PURE__*/React.createElement(Container, {
386
390
  direction: "column",
387
391
  style: {
388
392
  width: '15rem',
393
+ gap: 5,
389
394
  padding: '0.5rem 0.7rem',
390
395
  border: '1px solid #cfcfcf',
391
396
  borderRadius: '5px'
392
397
  }
393
- }, openFilter ? generateFilterInputs() : sideMenu) : null, /*#__PURE__*/React.createElement("div", {
398
+ }, sideMenu) : null, /*#__PURE__*/React.createElement("div", {
394
399
  onDragOver: onDragOver,
395
400
  onDragEnter: onDragEnter,
396
401
  onDragLeave: onDragLeave,
@@ -43,6 +43,7 @@ var TableHead = function TableHead(props) {
43
43
  }, columns.map(function (column, index) {
44
44
  var _String;
45
45
  var dataName = (_String = String(column === null || column === void 0 ? void 0 : column.label)) === null || _String === void 0 ? void 0 : _String.replace(' ', '_').toLowerCase();
46
+ console.log('Column Hide:', dataName);
46
47
  return /*#__PURE__*/React.createElement("th", {
47
48
  style: _extends({
48
49
  // textAlign: `${column?.align} !important`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helpdice/ui",
3
- "version": "1.5.2",
3
+ "version": "1.5.4",
4
4
  "main": "dist/index.js",
5
5
  "types": "esm/index.d.ts",
6
6
  "unpkg": "dist/index.min.js",
@@ -106,8 +106,6 @@
106
106
  "lodash": "^4.17.21",
107
107
  "lodash-es": "^4.17.21",
108
108
  "polished": "^4.3.1",
109
- "push": "^0.1.1",
110
- "pusher": "^5.2.0",
111
109
  "react-fast-compare": "^3.2.2",
112
110
  "react-is": "^19.0.0",
113
111
  "react-syntax-highlighter": "^15.6.1",