qbs-react-grid 2.1.0 → 2.2.0

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.
Files changed (57) hide show
  1. package/dist/css/qbs-react-grid.css +1 -1
  2. package/dist/css/qbs-react-grid.min.css +1 -1
  3. package/dist/css/qbs-react-grid.min.css.map +1 -1
  4. package/es/Pagination.d.ts +3 -0
  5. package/es/Pagination.js +8 -3
  6. package/es/index.d.ts +1 -1
  7. package/es/less/qbs-table.less +95 -4
  8. package/es/qbsTable/QbsTable.js +50 -33
  9. package/es/qbsTable/TableCardList.js +47 -31
  10. package/es/qbsTable/Toolbar.js +15 -11
  11. package/es/qbsTable/commontypes.d.ts +4 -1
  12. package/es/qbsTable/labels.d.ts +48 -0
  13. package/es/qbsTable/labels.js +34 -0
  14. package/es/qbsTable/utilities/CardComponent.d.ts +2 -0
  15. package/es/qbsTable/utilities/CardComponent.js +7 -3
  16. package/es/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  17. package/es/qbsTable/utilities/CardMenuDropdown.js +5 -2
  18. package/es/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  19. package/es/qbsTable/utilities/ColumShowHide.js +9 -6
  20. package/es/qbsTable/utilities/SearchInput.d.ts +1 -0
  21. package/es/qbsTable/utilities/SearchInput.js +3 -1
  22. package/es/qbsTable/utilities/tablecalc.d.ts +1 -1
  23. package/es/qbsTable/utilities/tablecalc.js +7 -2
  24. package/lib/Pagination.d.ts +3 -0
  25. package/lib/Pagination.js +8 -3
  26. package/lib/index.d.ts +1 -1
  27. package/lib/less/qbs-table.less +95 -4
  28. package/lib/qbsTable/QbsTable.js +50 -33
  29. package/lib/qbsTable/TableCardList.js +47 -31
  30. package/lib/qbsTable/Toolbar.js +15 -11
  31. package/lib/qbsTable/commontypes.d.ts +4 -1
  32. package/lib/qbsTable/labels.d.ts +48 -0
  33. package/lib/qbsTable/labels.js +42 -0
  34. package/lib/qbsTable/utilities/CardComponent.d.ts +2 -0
  35. package/lib/qbsTable/utilities/CardComponent.js +7 -3
  36. package/lib/qbsTable/utilities/CardMenuDropdown.d.ts +2 -0
  37. package/lib/qbsTable/utilities/CardMenuDropdown.js +5 -2
  38. package/lib/qbsTable/utilities/ColumShowHide.d.ts +2 -0
  39. package/lib/qbsTable/utilities/ColumShowHide.js +9 -6
  40. package/lib/qbsTable/utilities/SearchInput.d.ts +1 -0
  41. package/lib/qbsTable/utilities/SearchInput.js +3 -1
  42. package/lib/qbsTable/utilities/tablecalc.d.ts +1 -1
  43. package/lib/qbsTable/utilities/tablecalc.js +7 -2
  44. package/package.json +1 -1
  45. package/src/Pagination.tsx +10 -3
  46. package/src/index.ts +1 -1
  47. package/src/less/qbs-table.less +95 -4
  48. package/src/qbsTable/QbsTable.tsx +33 -8
  49. package/src/qbsTable/TableCardList.tsx +31 -7
  50. package/src/qbsTable/Toolbar.tsx +17 -10
  51. package/src/qbsTable/commontypes.ts +6 -0
  52. package/src/qbsTable/labels.ts +58 -0
  53. package/src/qbsTable/utilities/CardComponent.tsx +7 -2
  54. package/src/qbsTable/utilities/CardMenuDropdown.tsx +10 -2
  55. package/src/qbsTable/utilities/ColumShowHide.tsx +10 -6
  56. package/src/qbsTable/utilities/SearchInput.tsx +3 -1
  57. package/src/qbsTable/utilities/tablecalc.ts +8 -2
@@ -1,6 +1,7 @@
1
1
  import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
 
3
3
  import { QbsColumnProps } from '../commontypes';
4
+ import { mergeLabels, type QbsTableLabels } from '../labels';
4
5
  import { SettingsIcon } from './icons';
5
6
 
6
7
  interface ColumnToggleProps {
@@ -14,6 +15,7 @@ interface ColumnToggleProps {
14
15
  tableHeight?: number;
15
16
  viewMode?: string;
16
17
  setViewMode?: (value: string) => void;
18
+ labels?: QbsTableLabels;
17
19
  }
18
20
 
19
21
  const ColumnToggle: React.FC<ColumnToggleProps> = ({
@@ -24,8 +26,10 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
24
26
  setIsOpen,
25
27
  handleResetColumns,
26
28
  handleColumnToggle,
27
- tableHeight = 450
29
+ tableHeight = 450,
30
+ labels: labelsProp
28
31
  }) => {
32
+ const labels = mergeLabels(labelsProp);
29
33
  const [draggedItem, setDraggedItem] = useState<number | null>(null);
30
34
  const popupRef = useRef<HTMLDivElement | null>(null);
31
35
  const [dragOverPosition, setDragOverPosition] = useState<number | null>();
@@ -185,7 +189,7 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
185
189
  >
186
190
  <div className="qbs-table-popup-container">
187
191
  <div className="qbs-table-popup-item">
188
- <div className="qbs-table-popup-label">FIXED COLUMNS</div>
192
+ <div className="qbs-table-popup-label">{labels.fixedColumns}</div>
189
193
  <div className="qbs-table-columns-container">
190
194
  <div className="qbs-table-column">
191
195
  {columns.map((column, index) =>
@@ -196,7 +200,7 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
196
200
  </div>
197
201
  <div className="qbs-table-divider"></div>
198
202
  <div className="qbs-table-popup-item">
199
- <div className="qbs-table-popup-label">VISIBLE COLUMNS</div>
203
+ <div className="qbs-table-popup-label">{labels.visibleColumns}</div>
200
204
  <div className="qbs-table-columns-container">
201
205
  <div className="qbs-table-column">
202
206
  {columns.map((column, index) =>
@@ -209,7 +213,7 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
209
213
  <>
210
214
  <div className="qbs-table-divider"></div>
211
215
  <div className="qbs-table-popup-item">
212
- <div className="qbs-table-popup-label">AVAILABLE COLUMNS</div>
216
+ <div className="qbs-table-popup-label">{labels.availableColumns}</div>
213
217
  <div className="qbs-table-columns-container">
214
218
  <div className="qbs-table-column">
215
219
  {columns.map((column, index) =>
@@ -233,10 +237,10 @@ const ColumnToggle: React.FC<ColumnToggleProps> = ({
233
237
  href="#"
234
238
  onClick={() => handleResetColumns?.()}
235
239
  >
236
- Reset to default
240
+ {labels.resetToDefault}
237
241
  </a>
238
242
  <a className="qbs-table-reset-link" href="#" onClick={() => handleColToggle()}>
239
- Save
243
+ {labels.save}
240
244
  </a>
241
245
  </div>
242
246
  </>
@@ -2,12 +2,14 @@ import React, { memo, useCallback } from 'react';
2
2
 
3
3
  export interface SearchProps {
4
4
  placeholder: string;
5
+ searchAriaLabel?: string;
5
6
  handleChange: (value: string) => void;
6
7
  searchValue: string | undefined;
7
8
  handleSearch: (value?: string) => void;
8
9
  }
9
10
  const SearchInput: React.FC<SearchProps> = ({
10
11
  placeholder,
12
+ searchAriaLabel = 'Search',
11
13
  handleChange,
12
14
  searchValue,
13
15
  handleSearch
@@ -37,7 +39,7 @@ const SearchInput: React.FC<SearchProps> = ({
37
39
  placeholder={placeholder}
38
40
  value={searchValue ?? ''}
39
41
  onChange={handleInputChange}
40
- aria-label="Search"
42
+ aria-label={searchAriaLabel}
41
43
  />
42
44
  <button
43
45
  className="search-button absolute left-1 bottom-1.5 bg-white text-grey-dark"
@@ -1,6 +1,12 @@
1
- export function getRowDisplayRange(totalRows: number, rowsPerPage: number, pageNumber: number) {
1
+ export function getRowDisplayRange(
2
+ totalRows: number,
3
+ rowsPerPage: number,
4
+ pageNumber: number,
5
+ formatRange: (start: number, end: number, total: number) => string = (start, end, total) =>
6
+ `Showing ${start} to ${end} of ${total}`
7
+ ) {
2
8
  const start = (pageNumber - 1) * rowsPerPage + 1;
3
9
  const end = Math.min(pageNumber * rowsPerPage, totalRows);
4
10
 
5
- return `Showing ${start ?? 0} to ${end ?? 0} of ${totalRows ?? 0}`;
11
+ return formatRange(start ?? 0, end ?? 0, totalRows ?? 0);
6
12
  }