@helpdice/ui 1.5.3 → 1.5.5

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