@economic/taco 1.38.1 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. package/dist/components/Provider/Localization.d.ts +9 -1
  2. package/dist/components/Table2/Table2.d.ts +10 -1
  3. package/dist/components/Table2/components/filters/components/ColumnFilter.d.ts +1 -0
  4. package/dist/components/Table2/components/filters/components/EmptyFilter.d.ts +13 -0
  5. package/dist/components/Table2/hooks/useTableShortcuts.d.ts +2 -0
  6. package/dist/components/Table2/types.d.ts +8 -0
  7. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +3 -3
  8. package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
  9. package/dist/esm/packages/taco/src/components/Provider/Localization.js +9 -1
  10. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  11. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
  12. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  13. package/dist/esm/packages/taco/src/components/Table2/Table2.js +2 -1
  14. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js +1 -1
  16. package/dist/esm/packages/taco/src/components/Table2/components/column/Cell.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js +79 -24
  18. package/dist/esm/packages/taco/src/components/Table2/components/filters/FiltersButton.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js +14 -6
  20. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/ColumnFilter.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js +63 -0
  22. package/dist/esm/packages/taco/src/components/Table2/components/filters/components/EmptyFilter.js.map +1 -0
  23. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +2 -1
  24. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
  25. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +4 -1
  26. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
  27. package/dist/esm/packages/taco/src/components/Table2/hooks/useTableShortcuts.js +46 -0
  28. package/dist/esm/packages/taco/src/components/Table2/hooks/useTableShortcuts.js.map +1 -0
  29. package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
  30. package/dist/esm/packages/taco/src/utils/keyboard.js +1 -1
  31. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  32. package/dist/taco.cjs.development.js +208 -39
  33. package/dist/taco.cjs.development.js.map +1 -1
  34. package/dist/taco.cjs.production.min.js +1 -1
  35. package/dist/taco.cjs.production.min.js.map +1 -1
  36. package/package.json +2 -3
  37. package/types.json +131 -3
@@ -3684,7 +3684,7 @@ function createShortcutKeyDownHandler(key, handler) {
3684
3684
  if (typeof key === 'string') {
3685
3685
  condition = event.key.toLowerCase() === key.toLowerCase();
3686
3686
  } else {
3687
- if (key.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || key.meta === false && key.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
3687
+ if (key.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !key.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
3688
3688
  return;
3689
3689
  }
3690
3690
  if (key.shift && !event.shiftKey || key.shift === false && event.shiftKey) {
@@ -4016,7 +4016,7 @@ const defaultLocalisationTexts = {
4016
4016
  filters: {
4017
4017
  button: 'Filters',
4018
4018
  buttons: {
4019
- addFilter: 'Add Filter',
4019
+ addNewFilter: 'Add new filter',
4020
4020
  clearFilters: 'Clear all filters'
4021
4021
  },
4022
4022
  comparators: {
@@ -4033,6 +4033,14 @@ const defaultLocalisationTexts = {
4033
4033
  isEmpty: 'Is empty',
4034
4034
  isNotEmpty: 'Is not empty'
4035
4035
  },
4036
+ conditions: {
4037
+ and: 'And',
4038
+ where: 'Where'
4039
+ },
4040
+ emptyFilter: {
4041
+ condition: 'Condition',
4042
+ value: 'Value'
4043
+ },
4036
4044
  tooltip: 'Apply filters',
4037
4045
  total: 'Viewing [CURRENT] of [TOTAL]'
4038
4046
  },
@@ -6285,15 +6293,15 @@ const DrawerContent = /*#__PURE__*/React__default.forwardRef(function Content(pr
6285
6293
  ref: contentRef,
6286
6294
  "data-taco": "drawer",
6287
6295
  className: containerClassName
6288
- }, /*#__PURE__*/React__default.createElement("div", Object.assign({
6296
+ }, output, /*#__PURE__*/React__default.createElement("div", Object.assign({
6289
6297
  className: dragHandlerClassName
6290
6298
  }, dragHandleProps, {
6291
6299
  "data-testid": "resize-handler",
6292
6300
  ref: dragHandlerRef
6293
- })), output, showCloseButton ? /*#__PURE__*/React__default.createElement(Close$3, null, /*#__PURE__*/React__default.createElement(IconButton, {
6301
+ })), showCloseButton ? /*#__PURE__*/React__default.createElement(Close$3, null, /*#__PURE__*/React__default.createElement(IconButton, {
6294
6302
  appearance: "discrete",
6295
6303
  "aria-label": texts.drawer.close,
6296
- className: "absolute top-0 right-0 mt-4 mr-2",
6304
+ className: "absolute right-0 top-0 mr-2 mt-4",
6297
6305
  icon: "close"
6298
6306
  })) : null);
6299
6307
  const styleProp = {
@@ -7042,7 +7050,7 @@ const replaceWithShortform = key => {
7042
7050
  case ' ':
7043
7051
  return '␣';
7044
7052
  default:
7045
- return key;
7053
+ return String(key).toLocaleUpperCase();
7046
7054
  }
7047
7055
  };
7048
7056
  const getShortcutText = key => {
@@ -12842,7 +12850,7 @@ const EditingCell = /*#__PURE__*/React__default.memo( /*#__PURE__*/React__defaul
12842
12850
  const indicatorMountNode = (_cellRef$current2 = cellRef.current) === null || _cellRef$current2 === void 0 ? void 0 : (_cellRef$current2$par = _cellRef$current2.parentElement) === null || _cellRef$current2$par === void 0 ? void 0 : _cellRef$current2$par.querySelector(':first-child');
12843
12851
  let controlComponent;
12844
12852
  const detailModeClassName = cn({
12845
- '!shadow-[0_0_0_4px_rgba(0,99,255,0.25)]': detailModeEditing
12853
+ '!yt-focus-dark': detailModeEditing
12846
12854
  });
12847
12855
  if (cellControl) {
12848
12856
  if (typeof cellControl === 'function') {
@@ -13231,7 +13239,8 @@ function useColumnDefinitions(children, options, tableRef) {
13231
13239
  size: child.props.defaultWidth,
13232
13240
  // sorting
13233
13241
  enableSorting: !child.props.disableSorting,
13234
- sortingFn: getSortingFn(child.props.dataType, child.props.sortFn)
13242
+ sortingFn: getSortingFn(child.props.dataType, child.props.sortFn),
13243
+ sortDescFirst: false
13235
13244
  });
13236
13245
  }
13237
13246
  });
@@ -13380,9 +13389,50 @@ const useFilterStateListener = (table, onRowSelect) => {
13380
13389
  }, [table.getState().columnFilters, table.getState().globalFilter]);
13381
13390
  };
13382
13391
 
13392
+ function useTableShortcuts(shortcuts, activeRow) {
13393
+ React__default.useEffect(() => {
13394
+ const shortcutKeys = Object.keys(shortcuts !== null && shortcuts !== void 0 ? shortcuts : {});
13395
+ const globalHandlers = [];
13396
+ // convert the shortcut into the correct format to register it
13397
+ if (shortcuts && shortcutKeys.length) {
13398
+ shortcutKeys.forEach(key => {
13399
+ const handler = shortcuts[key];
13400
+ let keyDownHandler;
13401
+ let keyDownHandlerOptions;
13402
+ if (typeof handler === 'function') {
13403
+ keyDownHandler = handler;
13404
+ keyDownHandlerOptions = {
13405
+ key
13406
+ };
13407
+ } else {
13408
+ const handlerObject = handler;
13409
+ keyDownHandler = handlerObject.handler;
13410
+ keyDownHandlerOptions = {
13411
+ key,
13412
+ meta: handlerObject.meta,
13413
+ shift: handlerObject.shift
13414
+ };
13415
+ }
13416
+ globalHandlers.push(createShortcutKeyDownHandler(keyDownHandlerOptions, event => {
13417
+ event.preventDefault();
13418
+ keyDownHandler(activeRow);
13419
+ }));
13420
+ });
13421
+ }
13422
+ globalHandlers.forEach(handler => {
13423
+ document.addEventListener('keydown', handler);
13424
+ });
13425
+ return () => {
13426
+ globalHandlers.forEach(handler => {
13427
+ document.removeEventListener('keydown', handler);
13428
+ });
13429
+ };
13430
+ }, [shortcuts, activeRow]);
13431
+ }
13432
+
13383
13433
  const ACTIONS_ON_ROW_LENGTH = 4;
13384
13434
  function useTable$1(children, props, ref) {
13385
- var _settings$frozenColum, _settings$columnSizin, _settings$columnVisib, _settings$rowDensity;
13435
+ var _settings$frozenColum, _settings$columnSizin, _settings$columnVisib, _settings$rowDensity, _tableRows$activeRow$;
13386
13436
  const {
13387
13437
  actionsForRow = [],
13388
13438
  actionsForRowLength = ACTIONS_ON_ROW_LENGTH,
@@ -13409,6 +13459,7 @@ function useTable$1(children, props, ref) {
13409
13459
  onRowSelect,
13410
13460
  onSave,
13411
13461
  settings = {},
13462
+ shortcuts,
13412
13463
  // experimental
13413
13464
  _experimentalActionsForTable
13414
13465
  } = props;
@@ -13576,6 +13627,7 @@ function useTable$1(children, props, ref) {
13576
13627
  useFilterStateListener(table, onRowSelect);
13577
13628
  useRowSelectionListener(table, onRowSelect);
13578
13629
  useSettingsStateListener(table, onChangeSettings);
13630
+ useTableShortcuts(shortcuts, (_tableRows$activeRow$ = tableRows[activeRow.activeRowIndex]) === null || _tableRows$activeRow$ === void 0 ? void 0 : _tableRows$activeRow$.original);
13579
13631
  return {
13580
13632
  rows,
13581
13633
  table,
@@ -14262,18 +14314,22 @@ const InferredControl = ({
14262
14314
  };
14263
14315
 
14264
14316
  const ColumnFilter = props => {
14265
- var _column$columnDef$hea, _column$columnDef$met, _control;
14317
+ var _column$columnDef$hea, _column$columnDef$met;
14266
14318
  const {
14267
14319
  allColumns,
14268
14320
  column,
14269
14321
  index,
14270
- table
14322
+ table,
14323
+ onRemove
14271
14324
  } = props;
14272
14325
  const {
14273
14326
  comparator,
14274
14327
  value
14275
14328
  } = column.getFilterValue();
14276
14329
  const ariaLabel = String((_column$columnDef$hea = column.columnDef.header) !== null && _column$columnDef$hea !== void 0 ? _column$columnDef$hea : '');
14330
+ const {
14331
+ texts
14332
+ } = useLocalization();
14277
14333
  const ref = React__default.useRef(null);
14278
14334
  let control;
14279
14335
  const controlType = (_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.control;
@@ -14318,13 +14374,16 @@ const ColumnFilter = props => {
14318
14374
  }))
14319
14375
  });
14320
14376
  }
14321
- const handleRemove = () => column.setFilterValue(undefined);
14377
+ const handleRemove = () => {
14378
+ column.setFilterValue(undefined);
14379
+ onRemove === null || onRemove === void 0 ? void 0 : onRemove();
14380
+ };
14322
14381
  const comparators = guessComparatorsBasedOnControl(control, controlType);
14323
14382
  return /*#__PURE__*/React__default.createElement("div", {
14324
- className: "mb-2 flex gap-2"
14383
+ className: "flex gap-2"
14325
14384
  }, /*#__PURE__*/React__default.createElement("div", {
14326
14385
  className: "flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
14327
- }, index === 0 ? 'Where' : 'And'), /*#__PURE__*/React__default.createElement(Column$2, {
14386
+ }, index === 0 ? texts.table2.filters.conditions.where : texts.table2.filters.conditions.and), /*#__PURE__*/React__default.createElement(Column$2, {
14328
14387
  className: "!w-32 flex-shrink-0",
14329
14388
  allColumns: allColumns,
14330
14389
  column: column,
@@ -14337,7 +14396,7 @@ const ColumnFilter = props => {
14337
14396
  validComparators: comparators
14338
14397
  }), comparator !== undefined ? /*#__PURE__*/React__default.createElement("div", {
14339
14398
  className: "flex flex-grow items-center"
14340
- }, (_control = control) !== null && _control !== void 0 ? _control : /*#__PURE__*/React__default.createElement(InferredControl, {
14399
+ }, /*#__PURE__*/React__default.createElement(InferredControl, {
14341
14400
  column: column,
14342
14401
  comparator: comparator,
14343
14402
  value: value
@@ -14370,6 +14429,61 @@ const guessComparatorsBasedOnControl = (instance, control) => {
14370
14429
  }
14371
14430
  };
14372
14431
 
14432
+ const EmptyFilter = props => {
14433
+ const {
14434
+ texts
14435
+ } = useLocalization();
14436
+ const {
14437
+ onChange,
14438
+ onRemove,
14439
+ allColumns,
14440
+ table,
14441
+ index,
14442
+ filteredColumns,
14443
+ emptyFilterCount
14444
+ } = props;
14445
+ const handleChange = value => {
14446
+ if (value) {
14447
+ onChange === null || onChange === void 0 ? void 0 : onChange(value);
14448
+ }
14449
+ };
14450
+ return /*#__PURE__*/React__default.createElement("div", {
14451
+ className: "flex gap-2"
14452
+ }, /*#__PURE__*/React__default.createElement("div", {
14453
+ className: "flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right"
14454
+ }, filteredColumns.length > 0 || filteredColumns.length === 0 && index > 0 ? texts.table2.filters.conditions.and : texts.table2.filters.conditions.where), /*#__PURE__*/React__default.createElement(Select2, {
14455
+ className: "!w-32 flex-shrink-0",
14456
+ emptyValue: null,
14457
+ autoFocus: true,
14458
+ onChange: handleChange,
14459
+ value: null
14460
+ }, allColumns.map(c => /*#__PURE__*/React__default.createElement(Select2.Option, {
14461
+ key: c.id,
14462
+ value: c.id,
14463
+ disabled: !c.getCanFilter() || !!table.getState().columnFilters.find(f => f.id === c.id)
14464
+ }, String(c.columnDef.header)))), /*#__PURE__*/React__default.createElement(Select2, {
14465
+ className: "!w-32 flex-shrink-0",
14466
+ value: 1,
14467
+ autoFocus: true,
14468
+ disabled: true
14469
+ }, /*#__PURE__*/React__default.createElement(Select2.Option, {
14470
+ key: 'condition1',
14471
+ value: 1
14472
+ }, texts.table2.filters.emptyFilter.condition), /*#__PURE__*/React__default.createElement(Select2.Option, {
14473
+ key: 'condition2',
14474
+ value: 2
14475
+ }, "Condition2")), /*#__PURE__*/React__default.createElement(Input, {
14476
+ "aria-label": 'Value',
14477
+ className: "flex-grow items-center",
14478
+ disabled: true,
14479
+ value: texts.table2.filters.emptyFilter.value
14480
+ }), (emptyFilterCount > 1 || filteredColumns.length > 0) && /*#__PURE__*/React__default.createElement(IconButton, {
14481
+ appearance: "discrete",
14482
+ icon: "close",
14483
+ onClick: onRemove
14484
+ }));
14485
+ };
14486
+
14373
14487
  const FiltersButton = ({
14374
14488
  length,
14375
14489
  table
@@ -14378,7 +14492,10 @@ const FiltersButton = ({
14378
14492
  texts
14379
14493
  } = useLocalization();
14380
14494
  const ref = React__default.useRef(null);
14381
- const allColumns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));
14495
+ const allColumns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id)).sort((a, b) => {
14496
+ var _a$columnDef, _b$columnDef;
14497
+ return (_a$columnDef = a.columnDef) === null || _a$columnDef === void 0 ? void 0 : _a$columnDef.header.localeCompare((_b$columnDef = b.columnDef) === null || _b$columnDef === void 0 ? void 0 : _b$columnDef.header);
14498
+ });
14382
14499
  const {
14383
14500
  shouldDisableTableActions
14384
14501
  } = table.options.meta;
@@ -14390,17 +14507,11 @@ const FiltersButton = ({
14390
14507
  }
14391
14508
  return columns;
14392
14509
  }, []);
14393
- const handleAdd = () => {
14394
- const firstFilterableColumn = allColumns.find(c => c.getCanFilter() && !columnFilters.find(f => f.id === c.id));
14395
- if (firstFilterableColumn) {
14396
- firstFilterableColumn.setFilterValue({
14397
- comparator: undefined,
14398
- value: undefined
14399
- });
14400
- }
14401
- };
14510
+ const [emptyFilterCount, setEmptyFilterCount] = React__default.useState(1);
14511
+ const handleAdd = () => setEmptyFilterCount(emptyFilterCount + 1);
14402
14512
  const handleReset = () => {
14403
14513
  table.resetColumnFilters();
14514
+ setEmptyFilterCount(1);
14404
14515
  };
14405
14516
  useGlobalKeyDown({
14406
14517
  key: 'f',
@@ -14411,37 +14522,94 @@ const FiltersButton = ({
14411
14522
  event.preventDefault();
14412
14523
  (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.click();
14413
14524
  });
14525
+ const handleEmptyFilterChange = columnId => {
14526
+ // create an actual filter on that column that the user selected
14527
+ const column = allColumns.find(c => c.getCanFilter() && c.id === columnId);
14528
+ if (column) {
14529
+ column.setFilterValue({
14530
+ comparator: undefined,
14531
+ value: undefined
14532
+ });
14533
+ }
14534
+ // hide the empty filter row because we now have a real filter
14535
+ setEmptyFilterCount(emptyFilterCount - 1);
14536
+ };
14537
+ const handleRemove = () => {
14538
+ if (filteredColumns.length === 1 && emptyFilterCount === 0) {
14539
+ setEmptyFilterCount(1);
14540
+ }
14541
+ };
14542
+ const handleRemoveEmptyFilter = () => {
14543
+ setEmptyFilterCount(emptyFilterCount - 1);
14544
+ };
14545
+ const handleOpenChange = () => {
14546
+ const emptyFilterCount = filteredColumns.length === 0 ? 1 : 0;
14547
+ setEmptyFilterCount(emptyFilterCount);
14548
+ };
14549
+ const filters = filteredColumns.length > 0 && filteredColumns.filter(column => {
14550
+ var _column$columnDef$met;
14551
+ const controlType = (_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.control;
14552
+ const value = column.getFilterValue().value;
14553
+ const comparator = column.getFilterValue().comparator;
14554
+ if (Array.isArray(value)) {
14555
+ if (value.length > 0 && value.find(item => item !== undefined)) {
14556
+ return true;
14557
+ }
14558
+ } else if (value) {
14559
+ return true;
14560
+ } else if ([Table2FilterComparator.IsEmpty, Table2FilterComparator.IsNotEmpty].includes(comparator)) {
14561
+ if (!controlType) {
14562
+ return true;
14563
+ }
14564
+ }
14565
+ return false;
14566
+ });
14567
+ const filtersApplied = filters && filters.length;
14414
14568
  return /*#__PURE__*/React__default.createElement(Button$1, {
14415
14569
  "aria-label": texts.table2.filters.tooltip,
14416
- appearance: columnFilters.length ? 'primary' : 'default',
14570
+ appearance: filtersApplied ? 'primary' : 'default',
14417
14571
  className: cn({
14418
- '!wcag-blue-100': columnFilters.length
14572
+ '!wcag-blue-100': filtersApplied
14419
14573
  }),
14420
14574
  disabled: shouldDisableTableActions,
14421
- popover: popoverProps => /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement("div", {
14575
+ popover: popoverProps => /*#__PURE__*/React__default.createElement(Popover, Object.assign({}, popoverProps, {
14576
+ onChange: handleOpenChange
14577
+ }), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement("div", {
14422
14578
  className: "flex w-[40rem] flex-col gap-4"
14579
+ }, /*#__PURE__*/React__default.createElement("div", {
14580
+ className: "flex h-8"
14423
14581
  }, /*#__PURE__*/React__default.createElement("div", {
14424
14582
  className: "flex w-full items-center gap-2"
14425
14583
  }, /*#__PURE__*/React__default.createElement("h4", {
14426
14584
  className: "mb-0 inline-flex"
14427
- }, "Filter"), /*#__PURE__*/React__default.createElement("p", {
14585
+ }, texts.table2.filters.button), /*#__PURE__*/React__default.createElement("p", {
14428
14586
  className: "text-grey-700 mb-0 mr-auto mt-px inline-flex"
14429
- }, texts.table2.filters.total.replace('[CURRENT]', String(table.getFilteredRowModel().rows.length)).replace('[TOTAL]', String(length)))), /*#__PURE__*/React__default.createElement("div", {
14587
+ }, texts.table2.filters.total.replace('[CURRENT]', String(table.getFilteredRowModel().rows.length)).replace('[TOTAL]', String(length)))), columnFilters.length || emptyFilterCount > 1 ? /*#__PURE__*/React__default.createElement(Button$1, {
14588
+ onClick: handleReset
14589
+ }, texts.table2.filters.buttons.clearFilters) : null), /*#__PURE__*/React__default.createElement("div", {
14430
14590
  className: "flex flex-col gap-2"
14431
14591
  }, filteredColumns.map((column, index) => /*#__PURE__*/React__default.createElement(ColumnFilter, {
14432
14592
  key: `${column.id}_${index}`,
14433
14593
  allColumns: allColumns,
14434
14594
  index: index,
14435
14595
  column: column,
14436
- table: table
14437
- }))), /*#__PURE__*/React__default.createElement(Group, {
14438
- className: "justify-between"
14596
+ table: table,
14597
+ onRemove: handleRemove
14598
+ })), [...Array(emptyFilterCount)].map((_, index) => /*#__PURE__*/React__default.createElement(EmptyFilter, {
14599
+ key: `emptyFilter_${index}`,
14600
+ index: index,
14601
+ allColumns: allColumns,
14602
+ table: table,
14603
+ onChange: value => handleEmptyFilterChange(value),
14604
+ emptyFilterCount: emptyFilterCount,
14605
+ filteredColumns: filteredColumns,
14606
+ onRemove: handleRemoveEmptyFilter
14607
+ })), /*#__PURE__*/React__default.createElement("div", {
14608
+ className: "justify-start"
14439
14609
  }, /*#__PURE__*/React__default.createElement(Button$1, {
14440
14610
  appearance: "discrete",
14441
14611
  onClick: handleAdd
14442
- }, "+ ", texts.table2.filters.buttons.addFilter), columnFilters.length ? /*#__PURE__*/React__default.createElement(Button$1, {
14443
- onClick: handleReset
14444
- }, texts.table2.filters.buttons.clearFilters) : null)))),
14612
+ }, "+ ", texts.table2.filters.buttons.addNewFilter)))))),
14445
14613
  ref: ref,
14446
14614
  tooltip: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, texts.table2.filters.tooltip, /*#__PURE__*/React__default.createElement(Shortcut, {
14447
14615
  className: "ml-2",
@@ -14452,8 +14620,8 @@ const FiltersButton = ({
14452
14620
  }
14453
14621
  }))
14454
14622
  }, /*#__PURE__*/React__default.createElement(Icon, {
14455
- name: columnFilters.length ? 'filter-solid' : 'filter'
14456
- }), texts.table2.filters.button, " ", columnFilters.length ? `(${columnFilters.length})` : '');
14623
+ name: filtersApplied ? 'filter-solid' : 'filter'
14624
+ }), texts.table2.filters.button, " ", filtersApplied ? `(${filtersApplied})` : '');
14457
14625
  };
14458
14626
 
14459
14627
  const Search$2 = props => {
@@ -14619,7 +14787,8 @@ const BaseTable2 = /*#__PURE__*/React__default.forwardRef(function BaseTable2(pr
14619
14787
  resetFiltering: () => table.resetColumnFilters(),
14620
14788
  resetRowExpansion: () => table.resetExpanded(),
14621
14789
  resetRowSelection: () => table.resetRowSelection(),
14622
- resetSorting: () => table.resetSorting()
14790
+ resetSorting: () => table.resetSorting(),
14791
+ toggleEditing: () => meta.editMode.toggleEditing()
14623
14792
  };
14624
14793
  }
14625
14794
  }, [table, tableRef.current]);