@helpdice/ui 1.5.3 → 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
@@ -44233,28 +44233,29 @@ function DataTable(_ref) {
44233
44233
  onNextPage = _ref.onNextPage,
44234
44234
  onPreviousPage = _ref.onPreviousPage;
44235
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
+ });
44236
44241
  // const [anchorEl, setAnchorEl] = useState(null);
44237
44242
  var _useState = React$1.useState([]),
44238
44243
  _useState2 = _slicedToArray(_useState, 2),
44239
44244
  selected = _useState2[0],
44240
44245
  setSelected = _useState2[1];
44241
- 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
+ }, {})),
44242
44251
  _useState4 = _slicedToArray(_useState3, 2),
44243
- filters = _useState4[0],
44244
- setFilters = _useState4[1];
44252
+ filterValues = _useState4[0],
44253
+ setFilterValues = _useState4[1];
44245
44254
  // const [table_filters] = useDebounce(filters, 500);
44246
- // const open = Boolean(anchorEl);
44247
- // const handleMenuOpen = (event: any) => {
44248
- // setAnchorEl(event.currentTarget);
44249
- // };
44250
44255
  var _useState5 = React$1.useState([]),
44251
44256
  _useState6 = _slicedToArray(_useState5, 2),
44252
44257
  hideColumn = _useState6[0],
44253
44258
  setHideColumn = _useState6[1];
44254
- // const handleMenuClose = () => {
44255
- // setAnchorEl(null);
44256
- // };
44257
-
44258
44259
  var _useState7 = React$1.useState(false),
44259
44260
  _useState8 = _slicedToArray(_useState7, 2),
44260
44261
  openFilter = _useState8[0],
@@ -44264,8 +44265,8 @@ function DataTable(_ref) {
44264
44265
  }
44265
44266
  React$1.useEffect(function () {
44266
44267
  cols.forEach(function (col) {
44267
- var _String;
44268
- 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();
44269
44270
  if (hideColumn.includes(col.name)) {
44270
44271
  document.querySelectorAll("[data-column=\"".concat(dataName, "\"]")).forEach(function (el) {
44271
44272
  el.style.display = 'none !important';
@@ -44278,8 +44279,8 @@ function DataTable(_ref) {
44278
44279
  });
44279
44280
  }, [hideColumn, cols]);
44280
44281
  function handleHideColumnClick(_event, _id) {
44281
- var _String2;
44282
- 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();
44283
44284
  var selectedIndex = hideColumn.indexOf(id);
44284
44285
  var newSelected = [];
44285
44286
  if (selectedIndex === -1) {
@@ -44328,20 +44329,12 @@ function DataTable(_ref) {
44328
44329
  // // '& tr': { borderBottom: '1px solid #ccc !important' }
44329
44330
  // };
44330
44331
 
44331
- var COLUMNS = cols.filter(function (col) {
44332
- var _String3;
44333
- var dataName = (_String3 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
44334
- return !hideColumn.includes(dataName);
44335
- });
44336
44332
  var handleFilterChange = function handleFilterChange(name, value) {
44337
- setFilters(function (prevFilters) {
44338
- var updatedFilters = _objectSpread2(_objectSpread2({}, prevFilters), {}, _defineProperty$1({}, name, value));
44339
- return updatedFilters;
44340
- });
44333
+ setFilterValues(_objectSpread2(_objectSpread2({}, filterValues), {}, _defineProperty$1({}, name, value)));
44341
44334
  };
44342
44335
  var generateFilterInputs = function generateFilterInputs() {
44343
44336
  return COLUMNS.map(function (col) {
44344
- var _String4, _filters$filterName;
44337
+ var _String4, _filterValues$filterN;
44345
44338
  var Header = col.name,
44346
44339
  accessor = col.filter,
44347
44340
  options = col.options;
@@ -44354,17 +44347,16 @@ function DataTable(_ref) {
44354
44347
  // </th>
44355
44348
  // )
44356
44349
  // }
44357
- return /*#__PURE__*/React$1.createElement("div", {
44350
+ return /*#__PURE__*/React$1.createElement(Popover.Item, {
44358
44351
  style: {
44359
44352
  padding: '3px'
44360
44353
  },
44361
44354
  "data-column": Header,
44362
44355
  key: unq_accessor
44363
- }, accessor === 'fixed' && /*#__PURE__*/React$1.createElement(Select
44364
- // key={unq_accessor}
44365
- // name={filterName}
44366
- , {
44367
- 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',
44368
44360
  onChange: function onChange(newValue) {
44369
44361
  return handleFilterChange(filterName, newValue);
44370
44362
  }
@@ -44377,26 +44369,27 @@ function DataTable(_ref) {
44377
44369
  }) : null), accessor === 'date' && /*#__PURE__*/React$1.createElement(Input
44378
44370
  // id={`filter-date-${filterName}`}
44379
44371
  , {
44380
- htmlType: "date"
44381
- // name={filterName}
44382
- ,
44383
- value: filters[filterName],
44372
+ key: filterName,
44373
+ htmlType: "date",
44374
+ name: filterName,
44375
+ value: filterValues[filterName],
44384
44376
  onChange: function onChange(e) {
44385
44377
  return handleFilterChange(filterName, e.target.value);
44386
44378
  }
44387
44379
  }), accessor === 'search' && /*#__PURE__*/React$1.createElement(Input
44388
44380
  // id={`filter-search-${filterName}`}
44389
44381
  , {
44382
+ key: filterName,
44390
44383
  htmlType: "text",
44391
44384
  autoComplete: "off"
44392
44385
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
44393
- // name={filterName}
44394
44386
  ,
44387
+ name: filterName,
44395
44388
  style: {
44396
44389
  height: 30,
44397
44390
  minWidth: 160
44398
44391
  },
44399
- value: filters[filterName],
44392
+ value: filterValues[filterName],
44400
44393
  onChange: function onChange(e) {
44401
44394
  return handleFilterChange(filterName, e.target.value);
44402
44395
  },
@@ -44420,6 +44413,15 @@ function DataTable(_ref) {
44420
44413
  }, /*#__PURE__*/React$1.createElement("span", null, option.name));
44421
44414
  }));
44422
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
+ };
44423
44425
  return /*#__PURE__*/React$1.createElement(GridContainer, {
44424
44426
  className: "helpdice-ui-data-table-container",
44425
44427
  direction: "column"
@@ -44511,6 +44513,11 @@ function DataTable(_ref) {
44511
44513
  px: 0.6,
44512
44514
  py: 0.4,
44513
44515
  type: "dark"
44516
+ }, /*#__PURE__*/React$1.createElement(Popover, {
44517
+ hideArrow: true,
44518
+ disableItemsAutoClose: true,
44519
+ placement: "bottomEnd",
44520
+ child: filterContent
44514
44521
  }, /*#__PURE__*/React$1.createElement(Button, {
44515
44522
  htmlType: "button",
44516
44523
  onClick: handleShowFilter,
@@ -44518,7 +44525,7 @@ function DataTable(_ref) {
44518
44525
  scale: 2 / 3,
44519
44526
  px: 0.6,
44520
44527
  iconRight: /*#__PURE__*/React$1.createElement(Filters, null)
44521
- })) : null, !disableViewColumn && /*#__PURE__*/React$1.createElement(Tooltip, {
44528
+ }))) : null, !disableViewColumn && /*#__PURE__*/React$1.createElement(Tooltip, {
44522
44529
  text: "Columns",
44523
44530
  placement: "bottomEnd",
44524
44531
  font: 0.8,
@@ -44546,7 +44553,7 @@ function DataTable(_ref) {
44546
44553
  display: 'flex',
44547
44554
  flexDirection: sideMenu ? 'row' : 'column'
44548
44555
  }
44549
- }, sideMenu || openFilter ? /*#__PURE__*/React$1.createElement(GridContainer, {
44556
+ }, sideMenu ? /*#__PURE__*/React$1.createElement(GridContainer, {
44550
44557
  direction: "column",
44551
44558
  style: {
44552
44559
  width: '15rem',
@@ -44555,13 +44562,7 @@ function DataTable(_ref) {
44555
44562
  border: '1px solid #cfcfcf',
44556
44563
  borderRadius: '5px'
44557
44564
  }
44558
- }, openFilter ? /*#__PURE__*/React$1.createElement(React$1.Fragment, null, generateFilterInputs(), /*#__PURE__*/React$1.createElement(Button, {
44559
- onClick: function onClick() {
44560
- if (onFilters) {
44561
- onFilters(filters);
44562
- }
44563
- }
44564
- }, "Apply")) : sideMenu) : null, /*#__PURE__*/React$1.createElement("div", {
44565
+ }, sideMenu) : null, /*#__PURE__*/React$1.createElement("div", {
44565
44566
  onDragOver: onDragOver,
44566
44567
  onDragEnter: onDragEnter,
44567
44568
  onDragLeave: onDragLeave,
@@ -31521,28 +31521,29 @@ function DataTable(_ref) {
31521
31521
  onNextPage = _ref.onNextPage,
31522
31522
  onPreviousPage = _ref.onPreviousPage;
31523
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
+ });
31524
31529
  // const [anchorEl, setAnchorEl] = useState(null);
31525
31530
  var _useState = React.useState([]),
31526
31531
  _useState2 = _slicedToArray(_useState, 2),
31527
31532
  selected = _useState2[0],
31528
31533
  setSelected = _useState2[1];
31529
- 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
+ }, {})),
31530
31539
  _useState4 = _slicedToArray(_useState3, 2),
31531
- filters = _useState4[0],
31532
- setFilters = _useState4[1];
31540
+ filterValues = _useState4[0],
31541
+ setFilterValues = _useState4[1];
31533
31542
  // const [table_filters] = useDebounce(filters, 500);
31534
- // const open = Boolean(anchorEl);
31535
- // const handleMenuOpen = (event: any) => {
31536
- // setAnchorEl(event.currentTarget);
31537
- // };
31538
31543
  var _useState5 = React.useState([]),
31539
31544
  _useState6 = _slicedToArray(_useState5, 2),
31540
31545
  hideColumn = _useState6[0],
31541
31546
  setHideColumn = _useState6[1];
31542
- // const handleMenuClose = () => {
31543
- // setAnchorEl(null);
31544
- // };
31545
-
31546
31547
  var _useState7 = React.useState(false),
31547
31548
  _useState8 = _slicedToArray(_useState7, 2),
31548
31549
  openFilter = _useState8[0],
@@ -31552,8 +31553,8 @@ function DataTable(_ref) {
31552
31553
  }
31553
31554
  React.useEffect(function () {
31554
31555
  cols.forEach(function (col) {
31555
- var _String;
31556
- 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();
31557
31558
  if (hideColumn.includes(col.name)) {
31558
31559
  document.querySelectorAll("[data-column=\"".concat(dataName, "\"]")).forEach(function (el) {
31559
31560
  el.style.display = 'none !important';
@@ -31566,8 +31567,8 @@ function DataTable(_ref) {
31566
31567
  });
31567
31568
  }, [hideColumn, cols]);
31568
31569
  function handleHideColumnClick(_event, _id) {
31569
- var _String2;
31570
- 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();
31571
31572
  var selectedIndex = hideColumn.indexOf(id);
31572
31573
  var newSelected = [];
31573
31574
  if (selectedIndex === -1) {
@@ -31616,20 +31617,12 @@ function DataTable(_ref) {
31616
31617
  // // '& tr': { borderBottom: '1px solid #ccc !important' }
31617
31618
  // };
31618
31619
 
31619
- var COLUMNS = cols.filter(function (col) {
31620
- var _String3;
31621
- var dataName = (_String3 = String(col === null || col === void 0 ? void 0 : col.name)) === null || _String3 === void 0 ? void 0 : _String3.replace(' ', '_').toLowerCase();
31622
- return !hideColumn.includes(dataName);
31623
- });
31624
31620
  var handleFilterChange = function handleFilterChange(name, value) {
31625
- setFilters(function (prevFilters) {
31626
- var updatedFilters = _objectSpread2(_objectSpread2({}, prevFilters), {}, _defineProperty({}, name, value));
31627
- return updatedFilters;
31628
- });
31621
+ setFilterValues(_objectSpread2(_objectSpread2({}, filterValues), {}, _defineProperty({}, name, value)));
31629
31622
  };
31630
31623
  var generateFilterInputs = function generateFilterInputs() {
31631
31624
  return COLUMNS.map(function (col) {
31632
- var _String4, _filters$filterName;
31625
+ var _String4, _filterValues$filterN;
31633
31626
  var Header = col.name,
31634
31627
  accessor = col.filter,
31635
31628
  options = col.options;
@@ -31642,17 +31635,16 @@ function DataTable(_ref) {
31642
31635
  // </th>
31643
31636
  // )
31644
31637
  // }
31645
- return /*#__PURE__*/React.createElement("div", {
31638
+ return /*#__PURE__*/React.createElement(Popover.Item, {
31646
31639
  style: {
31647
31640
  padding: '3px'
31648
31641
  },
31649
31642
  "data-column": Header,
31650
31643
  key: unq_accessor
31651
- }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select
31652
- // key={unq_accessor}
31653
- // name={filterName}
31654
- , {
31655
- 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',
31656
31648
  onChange: function onChange(newValue) {
31657
31649
  return handleFilterChange(filterName, newValue);
31658
31650
  }
@@ -31665,26 +31657,27 @@ function DataTable(_ref) {
31665
31657
  }) : null), accessor === 'date' && /*#__PURE__*/React.createElement(Input
31666
31658
  // id={`filter-date-${filterName}`}
31667
31659
  , {
31668
- htmlType: "date"
31669
- // name={filterName}
31670
- ,
31671
- value: filters[filterName],
31660
+ key: filterName,
31661
+ htmlType: "date",
31662
+ name: filterName,
31663
+ value: filterValues[filterName],
31672
31664
  onChange: function onChange(e) {
31673
31665
  return handleFilterChange(filterName, e.target.value);
31674
31666
  }
31675
31667
  }), accessor === 'search' && /*#__PURE__*/React.createElement(Input
31676
31668
  // id={`filter-search-${filterName}`}
31677
31669
  , {
31670
+ key: filterName,
31678
31671
  htmlType: "text",
31679
31672
  autoComplete: "off"
31680
31673
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
31681
- // name={filterName}
31682
31674
  ,
31675
+ name: filterName,
31683
31676
  style: {
31684
31677
  height: 30,
31685
31678
  minWidth: 160
31686
31679
  },
31687
- value: filters[filterName],
31680
+ value: filterValues[filterName],
31688
31681
  onChange: function onChange(e) {
31689
31682
  return handleFilterChange(filterName, e.target.value);
31690
31683
  },
@@ -31708,6 +31701,15 @@ function DataTable(_ref) {
31708
31701
  }, /*#__PURE__*/React.createElement("span", null, option.name));
31709
31702
  }));
31710
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
+ };
31711
31713
  return /*#__PURE__*/React.createElement(GridContainer, {
31712
31714
  className: "helpdice-ui-data-table-container",
31713
31715
  direction: "column"
@@ -31799,6 +31801,11 @@ function DataTable(_ref) {
31799
31801
  px: 0.6,
31800
31802
  py: 0.4,
31801
31803
  type: "dark"
31804
+ }, /*#__PURE__*/React.createElement(Popover, {
31805
+ hideArrow: true,
31806
+ disableItemsAutoClose: true,
31807
+ placement: "bottomEnd",
31808
+ child: filterContent
31802
31809
  }, /*#__PURE__*/React.createElement(Button, {
31803
31810
  htmlType: "button",
31804
31811
  onClick: handleShowFilter,
@@ -31806,7 +31813,7 @@ function DataTable(_ref) {
31806
31813
  scale: 2 / 3,
31807
31814
  px: 0.6,
31808
31815
  iconRight: /*#__PURE__*/React.createElement(Filters, null)
31809
- })) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
31816
+ }))) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
31810
31817
  text: "Columns",
31811
31818
  placement: "bottomEnd",
31812
31819
  font: 0.8,
@@ -31834,7 +31841,7 @@ function DataTable(_ref) {
31834
31841
  display: 'flex',
31835
31842
  flexDirection: sideMenu ? 'row' : 'column'
31836
31843
  }
31837
- }, sideMenu || openFilter ? /*#__PURE__*/React.createElement(GridContainer, {
31844
+ }, sideMenu ? /*#__PURE__*/React.createElement(GridContainer, {
31838
31845
  direction: "column",
31839
31846
  style: {
31840
31847
  width: '15rem',
@@ -31843,13 +31850,7 @@ function DataTable(_ref) {
31843
31850
  border: '1px solid #cfcfcf',
31844
31851
  borderRadius: '5px'
31845
31852
  }
31846
- }, openFilter ? /*#__PURE__*/React.createElement(React.Fragment, null, generateFilterInputs(), /*#__PURE__*/React.createElement(Button, {
31847
- onClick: function onClick() {
31848
- if (onFilters) {
31849
- onFilters(filters);
31850
- }
31851
- }
31852
- }, "Apply")) : sideMenu) : null, /*#__PURE__*/React.createElement("div", {
31853
+ }, sideMenu) : null, /*#__PURE__*/React.createElement("div", {
31853
31854
  onDragOver: onDragOver,
31854
31855
  onDragEnter: onDragEnter,
31855
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,20 +162,12 @@ 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
- return updatedFilters;
173
- });
166
+ setFilterValues(_extends({}, filterValues, _defineProperty({}, name, value)));
174
167
  };
175
168
  var generateFilterInputs = function generateFilterInputs() {
176
169
  return COLUMNS.map(function (col) {
177
- var _String4, _filters$filterName;
170
+ var _String4, _filterValues$filterN;
178
171
  var Header = col.name,
179
172
  accessor = col.filter,
180
173
  options = col.options;
@@ -187,17 +180,16 @@ function DataTable(_ref) {
187
180
  // </th>
188
181
  // )
189
182
  // }
190
- return /*#__PURE__*/React.createElement("div", {
183
+ return /*#__PURE__*/React.createElement(Popover.Item, {
191
184
  style: {
192
185
  padding: '3px'
193
186
  },
194
187
  "data-column": Header,
195
188
  key: unq_accessor
196
- }, accessor === 'fixed' && /*#__PURE__*/React.createElement(Select
197
- // key={unq_accessor}
198
- // name={filterName}
199
- , {
200
- 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',
201
193
  onChange: function onChange(newValue) {
202
194
  return handleFilterChange(filterName, newValue);
203
195
  }
@@ -210,26 +202,27 @@ function DataTable(_ref) {
210
202
  }) : null), accessor === 'date' && /*#__PURE__*/React.createElement(Input
211
203
  // id={`filter-date-${filterName}`}
212
204
  , {
213
- htmlType: "date"
214
- // name={filterName}
215
- ,
216
- value: filters[filterName],
205
+ key: filterName,
206
+ htmlType: "date",
207
+ name: filterName,
208
+ value: filterValues[filterName],
217
209
  onChange: function onChange(e) {
218
210
  return handleFilterChange(filterName, e.target.value);
219
211
  }
220
212
  }), accessor === 'search' && /*#__PURE__*/React.createElement(Input
221
213
  // id={`filter-search-${filterName}`}
222
214
  , {
215
+ key: filterName,
223
216
  htmlType: "text",
224
217
  autoComplete: "off"
225
218
  // ref={filterRefs.current[filterName]} // Dynamically set ref}
226
- // name={filterName}
227
219
  ,
220
+ name: filterName,
228
221
  style: {
229
222
  height: 30,
230
223
  minWidth: 160
231
224
  },
232
- value: filters[filterName],
225
+ value: filterValues[filterName],
233
226
  onChange: function onChange(e) {
234
227
  return handleFilterChange(filterName, e.target.value);
235
228
  },
@@ -253,6 +246,15 @@ function DataTable(_ref) {
253
246
  }, /*#__PURE__*/React.createElement("span", null, option.name));
254
247
  }));
255
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
+ };
256
258
  return /*#__PURE__*/React.createElement(Container, {
257
259
  className: "helpdice-ui-data-table-container",
258
260
  direction: "column"
@@ -344,6 +346,11 @@ function DataTable(_ref) {
344
346
  px: 0.6,
345
347
  py: 0.4,
346
348
  type: "dark"
349
+ }, /*#__PURE__*/React.createElement(Popover, {
350
+ hideArrow: true,
351
+ disableItemsAutoClose: true,
352
+ placement: "bottomEnd",
353
+ child: filterContent
347
354
  }, /*#__PURE__*/React.createElement(Button, {
348
355
  htmlType: "button",
349
356
  onClick: handleShowFilter,
@@ -351,7 +358,7 @@ function DataTable(_ref) {
351
358
  scale: 2 / 3,
352
359
  px: 0.6,
353
360
  iconRight: /*#__PURE__*/React.createElement(Filters, null)
354
- })) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
361
+ }))) : null, !disableViewColumn && /*#__PURE__*/React.createElement(Tooltip, {
355
362
  text: "Columns",
356
363
  placement: "bottomEnd",
357
364
  font: 0.8,
@@ -379,7 +386,7 @@ function DataTable(_ref) {
379
386
  display: 'flex',
380
387
  flexDirection: sideMenu ? 'row' : 'column'
381
388
  }
382
- }, sideMenu || openFilter ? /*#__PURE__*/React.createElement(Container, {
389
+ }, sideMenu ? /*#__PURE__*/React.createElement(Container, {
383
390
  direction: "column",
384
391
  style: {
385
392
  width: '15rem',
@@ -388,13 +395,7 @@ function DataTable(_ref) {
388
395
  border: '1px solid #cfcfcf',
389
396
  borderRadius: '5px'
390
397
  }
391
- }, openFilter ? /*#__PURE__*/React.createElement(React.Fragment, null, generateFilterInputs(), /*#__PURE__*/React.createElement(Button, {
392
- onClick: function onClick() {
393
- if (onFilters) {
394
- onFilters(filters);
395
- }
396
- }
397
- }, "Apply")) : sideMenu) : null, /*#__PURE__*/React.createElement("div", {
398
+ }, sideMenu) : null, /*#__PURE__*/React.createElement("div", {
398
399
  onDragOver: onDragOver,
399
400
  onDragEnter: onDragEnter,
400
401
  onDragLeave: onDragLeave,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helpdice/ui",
3
- "version": "1.5.3",
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",