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
@@ -11,6 +11,7 @@ var _ColumnGroup = _interopRequireDefault(require("../ColumnGroup"));
11
11
  var _HeaderCell = _interopRequireDefault(require("../HeaderCell"));
12
12
  var _Pagination = _interopRequireDefault(require("../Pagination"));
13
13
  var _Table = _interopRequireDefault(require("../Table"));
14
+ var _labels = require("./labels");
14
15
  var _CustomTableCell = require("./CustomTableCell");
15
16
  var _Toolbar = _interopRequireDefault(require("./Toolbar"));
16
17
  var _ColumShowHide = _interopRequireDefault(require("./utilities/ColumShowHide"));
@@ -99,7 +100,11 @@ var QbsTable = function QbsTable(_ref) {
99
100
  emptySubTitle = _ref.emptySubTitle,
100
101
  emptyTitle = _ref.emptyTitle,
101
102
  _ref$dropType = _ref.dropType,
102
- dropType = _ref$dropType === void 0 ? 'horizontal' : _ref$dropType;
103
+ dropType = _ref$dropType === void 0 ? 'horizontal' : _ref$dropType,
104
+ labelsProp = _ref.labels;
105
+ var labels = (0, _react.useMemo)(function () {
106
+ return (0, _labels.mergeLabels)(labelsProp);
107
+ }, [labelsProp]);
103
108
  var _useState = (0, _react.useState)(false),
104
109
  loading = _useState[0],
105
110
  setLoading = _useState[1];
@@ -110,8 +115,8 @@ var QbsTable = function QbsTable(_ref) {
110
115
  checkedKeys = _useState3[0],
111
116
  setCheckedKeys = _useState3[1];
112
117
  var dataTheme = (0, _react.useMemo)(function () {
113
- var _localStorage$getItem;
114
- return (_localStorage$getItem = localStorage.getItem('theme')) != null ? _localStorage$getItem : theme;
118
+ var _ref2;
119
+ return (_ref2 = theme != null ? theme : typeof localStorage !== 'undefined' ? localStorage.getItem('theme') : null) != null ? _ref2 : 'light';
115
120
  }, [theme]);
116
121
  var _useState4 = (0, _react.useState)(false),
117
122
  isOpen = _useState4[0],
@@ -214,7 +219,7 @@ var QbsTable = function QbsTable(_ref) {
214
219
  // useEffect(() => {
215
220
  // }, [columns]);
216
221
 
217
- var handleClear = function handleClear(_ref2) {
222
+ var handleClear = function handleClear(_ref3) {
218
223
  setCheckedKeys([]);
219
224
  handleChecked([]);
220
225
  };
@@ -240,12 +245,19 @@ var QbsTable = function QbsTable(_ref) {
240
245
  onSelect: handleClear,
241
246
  handleColumnToggle: handleColumnToggle,
242
247
  dataLength: data === null || data === void 0 ? void 0 : data.length,
243
- searchPlaceholder: searchPlaceholder
248
+ searchPlaceholder: searchPlaceholder,
249
+ labels: labels
244
250
  };
251
+ (0, _react.useEffect)(function () {
252
+ if (!dataTheme || typeof document === 'undefined') return;
253
+ document.body.setAttribute('data-theme', dataTheme === 'dark' ? 'dark' : 'light');
254
+ document.documentElement.dataset.theme = dataTheme;
255
+ }, [dataTheme]);
245
256
  var themeToggle = (0, _react.useMemo)(function () {
246
- return document.getElementById('themeToggle');
257
+ return typeof document !== 'undefined' ? document.getElementById('themeToggle') : null;
247
258
  }, []);
248
259
  (0, _react.useEffect)(function () {
260
+ if (theme || typeof document === 'undefined') return;
249
261
  var handleThemeToggle = function handleThemeToggle() {
250
262
  if (themeToggle !== null && themeToggle !== void 0 && themeToggle.checked) {
251
263
  document.body.setAttribute('data-theme', 'dark');
@@ -267,7 +279,7 @@ var QbsTable = function QbsTable(_ref) {
267
279
  themeToggle === null || themeToggle === void 0 ? void 0 : themeToggle.removeEventListener('change', handleThemeToggle);
268
280
  document.removeEventListener('DOMContentLoaded', handleDOMContentLoaded);
269
281
  };
270
- }, [themeToggle]);
282
+ }, [theme, themeToggle]);
271
283
  var handleExpanded = (0, _react.useCallback)(function (rowData) {
272
284
  var keyValue = dataRowKey;
273
285
  var key = rowData[keyValue];
@@ -327,26 +339,26 @@ var QbsTable = function QbsTable(_ref) {
327
339
  }) ? true : false;
328
340
  };
329
341
  var columnsRendered = (0, _react.useMemo)(function () {
330
- return (columns != null ? columns : []).map(function (_ref3) {
331
- var title = _ref3.title,
332
- field = _ref3.field,
333
- resizable = _ref3.resizable,
334
- sortable = _ref3.sortable,
335
- colWidth = _ref3.colWidth,
336
- align = _ref3.align,
337
- grouped = _ref3.grouped,
338
- groupHeader = _ref3.groupHeader,
339
- fixed = _ref3.fixed,
340
- children = _ref3.children,
341
- customCell = _ref3.customCell,
342
- renderCell = _ref3.renderCell,
343
- isVisible = _ref3.isVisible,
344
- link = _ref3.link,
345
- getPath = _ref3.getPath,
346
- rowClick = _ref3.rowClick,
347
- sortKey = _ref3.sortKey,
348
- type = _ref3.type,
349
- hideLink = _ref3.hideLink;
342
+ return (columns != null ? columns : []).map(function (_ref4) {
343
+ var title = _ref4.title,
344
+ field = _ref4.field,
345
+ resizable = _ref4.resizable,
346
+ sortable = _ref4.sortable,
347
+ colWidth = _ref4.colWidth,
348
+ align = _ref4.align,
349
+ grouped = _ref4.grouped,
350
+ groupHeader = _ref4.groupHeader,
351
+ fixed = _ref4.fixed,
352
+ children = _ref4.children,
353
+ customCell = _ref4.customCell,
354
+ renderCell = _ref4.renderCell,
355
+ isVisible = _ref4.isVisible,
356
+ link = _ref4.link,
357
+ getPath = _ref4.getPath,
358
+ rowClick = _ref4.rowClick,
359
+ sortKey = _ref4.sortKey,
360
+ type = _ref4.type,
361
+ hideLink = _ref4.hideLink;
350
362
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, isVisible && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, grouped ? /*#__PURE__*/_react["default"].createElement(_ColumnGroup["default"], {
351
363
  header: groupHeader,
352
364
  fixed: fixed,
@@ -438,7 +450,7 @@ var QbsTable = function QbsTable(_ref) {
438
450
  bordered: bordered,
439
451
  renderEmpty: function renderEmpty(info) {
440
452
  return _renderEmpty ? _renderEmpty(info) : /*#__PURE__*/_react["default"].createElement(_empty["default"], {
441
- title: emptyTitle != null ? emptyTitle : 'No Data Found',
453
+ title: emptyTitle != null ? emptyTitle : labels.noDataFound,
442
454
  subtitle: emptySubTitle
443
455
  });
444
456
  },
@@ -542,7 +554,8 @@ var QbsTable = function QbsTable(_ref) {
542
554
  tableHeight: height,
543
555
  setIsOpen: setIsOpen,
544
556
  handleResetColumns: handleResetColumns,
545
- handleColumnToggle: handleColumnToggle
557
+ handleColumnToggle: handleColumnToggle,
558
+ labels: labels
546
559
  })), /*#__PURE__*/_react["default"].createElement(_Cell["default"], null)), actionProps && (actionProps === null || actionProps === void 0 ? void 0 : actionProps.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Column["default"], {
547
560
  width: 40,
548
561
  fixed: "right"
@@ -559,7 +572,8 @@ var QbsTable = function QbsTable(_ref) {
559
572
  isOpen: isOpen,
560
573
  setIsOpen: setIsOpen,
561
574
  handleResetColumns: handleResetColumns,
562
- handleColumnToggle: handleColumnToggle
575
+ handleColumnToggle: handleColumnToggle,
576
+ labels: labels
563
577
  })), /*#__PURE__*/_react["default"].createElement(_CustomTableCell.ActionCell, {
564
578
  tableBodyRef: tableBodyRef,
565
579
  actionProps: actionProps,
@@ -568,7 +582,9 @@ var QbsTable = function QbsTable(_ref) {
568
582
  handleMenuActions: handleMenuActions,
569
583
  dataTheme: dataTheme
570
584
  }))), /*#__PURE__*/_react["default"].createElement("div", null, pagination && (data === null || data === void 0 ? void 0 : data.length) > 0 && /*#__PURE__*/_react["default"].createElement(_Pagination["default"], {
571
- paginationProps: paginationProps
585
+ paginationProps: paginationProps,
586
+ labels: labels,
587
+ dataTheme: dataTheme
572
588
  }))));
573
589
  };
574
590
  var _default = QbsTable;
@@ -8,12 +8,13 @@ var _useResponsiveStore = _interopRequireDefault(require("../utils/useResponsive
8
8
  var _debounce = _interopRequireDefault(require("./utilities/debounce"));
9
9
  var _icons = require("./utilities/icons");
10
10
  var _SearchInput = _interopRequireDefault(require("./utilities/SearchInput"));
11
+ var _labels = require("./labels");
11
12
  var _tablecalc = require("./utilities/tablecalc");
12
13
  var _ToolTip = _interopRequireDefault(require("./utilities/ToolTip"));
13
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
16
  var ToolBar = function ToolBar(_ref) {
16
- var _paginationProps$tota, _paginationProps$rows, _paginationProps$curr;
17
+ var _checkedKeys$length, _paginationProps$tota, _paginationProps$rows, _paginationProps$curr;
17
18
  var pagination = _ref.pagination,
18
19
  _ref$paginationProps = _ref.paginationProps,
19
20
  paginationProps = _ref$paginationProps === void 0 ? {} : _ref$paginationProps,
@@ -44,7 +45,9 @@ var ToolBar = function ToolBar(_ref) {
44
45
  setTableFullView = _ref.setTableFullView,
45
46
  setRowViewToggle = _ref.setRowViewToggle,
46
47
  _ref$isFullScreen = _ref.isFullScreen,
47
- isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen;
48
+ isFullScreen = _ref$isFullScreen === void 0 ? false : _ref$isFullScreen,
49
+ labelsProp = _ref.labels;
50
+ var labels = (0, _labels.mergeLabels)(labelsProp);
48
51
  var debouncedOnSearch = (0, _react.useCallback)((0, _debounce["default"])(onSearch != null ? onSearch : function () {}, 1000), [onSearch]);
49
52
  var _useState = (0, _react.useState)(searchValue),
50
53
  searchParam = _useState[0],
@@ -93,7 +96,8 @@ var ToolBar = function ToolBar(_ref) {
93
96
  }, /*#__PURE__*/_react["default"].createElement("div", {
94
97
  className: "qbs-table-primary-filter"
95
98
  }, search && /*#__PURE__*/_react["default"].createElement(_SearchInput["default"], {
96
- placeholder: searchPlaceholder != null ? searchPlaceholder : 'Search',
99
+ placeholder: searchPlaceholder != null ? searchPlaceholder : labels.search,
100
+ searchAriaLabel: labels.searchAriaLabel,
97
101
  handleChange: handleChange,
98
102
  handleSearch: handleSearch,
99
103
  searchValue: searchParam
@@ -121,7 +125,7 @@ var ToolBar = function ToolBar(_ref) {
121
125
  className: "flex gap-2 table_cell_style"
122
126
  }, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
123
127
  tableBodyRef: toolbarRef,
124
- title: 'Switch to Default View'
128
+ title: labels.switchToDefaultView
125
129
  }, /*#__PURE__*/_react["default"].createElement("div", {
126
130
  onClick: function onClick() {
127
131
  return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(true);
@@ -130,7 +134,7 @@ var ToolBar = function ToolBar(_ref) {
130
134
  className: "" + (defaultRowView ? 'active' : '')
131
135
  }))), /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
132
136
  tableBodyRef: toolbarRef,
133
- title: 'Switch to Relaxed View'
137
+ title: labels.switchToRelaxedView
134
138
  }, /*#__PURE__*/_react["default"].createElement("div", {
135
139
  onClick: function onClick() {
136
140
  return setRowViewToggle === null || setRowViewToggle === void 0 ? void 0 : setRowViewToggle(false);
@@ -141,7 +145,7 @@ var ToolBar = function ToolBar(_ref) {
141
145
  className: " table_full_width"
142
146
  }, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
143
147
  tableBodyRef: toolbarRef,
144
- title: 'Switch to Full Screen'
148
+ title: labels.switchToFullScreen
145
149
  }, /*#__PURE__*/_react["default"].createElement("div", {
146
150
  onClick: function onClick() {
147
151
  return setTableFullView === null || setTableFullView === void 0 ? void 0 : setTableFullView(!fullWidthView);
@@ -152,7 +156,7 @@ var ToolBar = function ToolBar(_ref) {
152
156
  className: "qbs-table-top-icons flex gap-2"
153
157
  }, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
154
158
  tableBodyRef: toolbarRef,
155
- title: 'Switch to Table View'
159
+ title: labels.switchToTableView
156
160
  }, /*#__PURE__*/_react["default"].createElement("div", {
157
161
  onClick: function onClick() {
158
162
  return setTableViewToggle === null || setTableViewToggle === void 0 ? void 0 : setTableViewToggle(true);
@@ -167,7 +171,7 @@ var ToolBar = function ToolBar(_ref) {
167
171
  }
168
172
  }, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
169
173
  tableBodyRef: toolbarRef,
170
- title: 'Switch to Card View'
174
+ title: labels.switchToCardView
171
175
  }, /*#__PURE__*/_react["default"].createElement(_icons.CardView, {
172
176
  className: "" + (!tableViewToggle ? 'active' : '')
173
177
  }))))))), isMobile && isOpen && /*#__PURE__*/_react["default"].createElement("div", {
@@ -180,14 +184,14 @@ var ToolBar = function ToolBar(_ref) {
180
184
  className: "qbs-table-toolbar-sub-container-start"
181
185
  }, /*#__PURE__*/_react["default"].createElement("div", {
182
186
  className: "selected-row"
183
- }, "Selected Items(" + (checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) + ") "), /*#__PURE__*/_react["default"].createElement("div", {
187
+ }, (0, _labels.formatSelectedItems)(labels.selectedItems, (_checkedKeys$length = checkedKeys === null || checkedKeys === void 0 ? void 0 : checkedKeys.length) != null ? _checkedKeys$length : 0)), /*#__PURE__*/_react["default"].createElement("div", {
184
188
  className: "selected-row-action"
185
189
  }, /*#__PURE__*/_react["default"].createElement("button", {
186
190
  className: "btn",
187
191
  onClick: function onClick() {
188
192
  return onSelect === null || onSelect === void 0 ? void 0 : onSelect([]);
189
193
  }
190
- }, "Clear"), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
194
+ }, labels.clear), selectedRowActions === null || selectedRowActions === void 0 ? void 0 : selectedRowActions.map(function (actions, index) {
191
195
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, handleHide(actions) && /*#__PURE__*/_react["default"].createElement("button", {
192
196
  key: index.toString(),
193
197
  className: "btn " + (actions === null || actions === void 0 ? void 0 : actions.buttonClassName),
@@ -200,7 +204,7 @@ var ToolBar = function ToolBar(_ref) {
200
204
  }, actions === null || actions === void 0 ? void 0 : actions.icon), /*#__PURE__*/_react["default"].createElement("span", null, actions.actionTitle)));
201
205
  }))) : /*#__PURE__*/_react["default"].createElement("div", null, pagination && paginationProps && dataLength > 0 && /*#__PURE__*/_react["default"].createElement("div", {
202
206
  className: "rows-count"
203
- }, (0, _tablecalc.getRowDisplayRange)((_paginationProps$tota = paginationProps.total) != null ? _paginationProps$tota : 0, (_paginationProps$rows = paginationProps.rowsPerPage) != null ? _paginationProps$rows : 0, (_paginationProps$curr = paginationProps.currentPage) != null ? _paginationProps$curr : 0)))));
207
+ }, (0, _tablecalc.getRowDisplayRange)((_paginationProps$tota = paginationProps.total) != null ? _paginationProps$tota : 0, (_paginationProps$rows = paginationProps.rowsPerPage) != null ? _paginationProps$rows : 0, (_paginationProps$curr = paginationProps.currentPage) != null ? _paginationProps$curr : 0, labels.showingRange)))));
204
208
  };
205
209
  var _default = ToolBar;
206
210
  exports["default"] = _default;
@@ -1,4 +1,6 @@
1
1
  import React, { ReactElement, ReactNode } from 'react';
2
+ import type { QbsTableLabels } from './labels';
3
+ export type { QbsTableLabels };
2
4
  interface Content {
3
5
  cell: ReactNode | string;
4
6
  toolTip?: string;
@@ -89,6 +91,7 @@ export interface QbsTableProps {
89
91
  advancefilter?: ReactElement | ReactNode;
90
92
  tableHeaderActions?: ReactElement | ReactNode;
91
93
  searchPlaceholder?: string;
94
+ labels?: QbsTableLabels;
92
95
  selectedRowActions?: {
93
96
  actionTitle?: string;
94
97
  action: (checked: (number | string)[]) => void;
@@ -167,6 +170,7 @@ export interface QbsTableToolbarProps {
167
170
  dataLength: number;
168
171
  headerHeight?: number;
169
172
  searchPlaceholder?: string;
173
+ labels?: QbsTableLabels;
170
174
  tableView?: boolean;
171
175
  enableTableToggle?: boolean;
172
176
  tableViewToggle?: boolean;
@@ -187,4 +191,3 @@ export interface QbsTableToolbarProps {
187
191
  setRowViewToggle?: (value: boolean) => void;
188
192
  isFullScreen?: boolean;
189
193
  }
190
- export {};
@@ -0,0 +1,48 @@
1
+ export interface QbsTableLabels {
2
+ search?: string;
3
+ searchAriaLabel?: string;
4
+ clear?: string;
5
+ selectedItems?: string;
6
+ switchToDefaultView?: string;
7
+ switchToRelaxedView?: string;
8
+ switchToFullScreen?: string;
9
+ switchToTableView?: string;
10
+ switchToCardView?: string;
11
+ noDataFound?: string;
12
+ showingRange?: (start: number, end: number, total: number) => string;
13
+ itemsPerPage?: string;
14
+ fixedColumns?: string;
15
+ visibleColumns?: string;
16
+ availableColumns?: string;
17
+ resetToDefault?: string;
18
+ save?: string;
19
+ viewMore?: string;
20
+ viewLess?: string;
21
+ actions?: string;
22
+ }
23
+ export declare const DEFAULT_QBS_TABLE_LABELS: Required<Omit<QbsTableLabels, 'showingRange'>> & {
24
+ showingRange: (start: number, end: number, total: number) => string;
25
+ };
26
+ export declare const mergeLabels: (labels?: QbsTableLabels) => {
27
+ showingRange: (start: number, end: number, total: number) => string;
28
+ search: string;
29
+ searchAriaLabel: string;
30
+ clear: string;
31
+ selectedItems: string;
32
+ switchToDefaultView: string;
33
+ switchToRelaxedView: string;
34
+ switchToFullScreen: string;
35
+ switchToTableView: string;
36
+ switchToCardView: string;
37
+ noDataFound: string;
38
+ itemsPerPage: string;
39
+ fixedColumns: string;
40
+ visibleColumns: string;
41
+ availableColumns: string;
42
+ resetToDefault: string;
43
+ save: string;
44
+ viewMore: string;
45
+ viewLess: string;
46
+ actions: string;
47
+ };
48
+ export declare const formatSelectedItems: (selectedItemsLabel: string, count: number) => string;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.mergeLabels = exports.formatSelectedItems = exports.DEFAULT_QBS_TABLE_LABELS = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var DEFAULT_QBS_TABLE_LABELS = {
8
+ search: 'Search',
9
+ searchAriaLabel: 'Search',
10
+ clear: 'Clear',
11
+ selectedItems: 'Selected Items',
12
+ switchToDefaultView: 'Switch to Default View',
13
+ switchToRelaxedView: 'Switch to Relaxed View',
14
+ switchToFullScreen: 'Switch to Full Screen',
15
+ switchToTableView: 'Switch to Table View',
16
+ switchToCardView: 'Switch to Card View',
17
+ noDataFound: 'No Data Found',
18
+ showingRange: function showingRange(start, end, total) {
19
+ return "Showing " + start + " to " + end + " of " + total;
20
+ },
21
+ itemsPerPage: 'Items per page',
22
+ fixedColumns: 'FIXED COLUMNS',
23
+ visibleColumns: 'VISIBLE COLUMNS',
24
+ availableColumns: 'AVAILABLE COLUMNS',
25
+ resetToDefault: 'Reset to default',
26
+ save: 'Save',
27
+ viewMore: 'View More',
28
+ viewLess: 'View Less',
29
+ actions: 'Actions'
30
+ };
31
+ exports.DEFAULT_QBS_TABLE_LABELS = DEFAULT_QBS_TABLE_LABELS;
32
+ var mergeLabels = function mergeLabels(labels) {
33
+ var _labels$showingRange;
34
+ return (0, _extends2["default"])({}, DEFAULT_QBS_TABLE_LABELS, labels, {
35
+ showingRange: (_labels$showingRange = labels === null || labels === void 0 ? void 0 : labels.showingRange) != null ? _labels$showingRange : DEFAULT_QBS_TABLE_LABELS.showingRange
36
+ });
37
+ };
38
+ exports.mergeLabels = mergeLabels;
39
+ var formatSelectedItems = function formatSelectedItems(selectedItemsLabel, count) {
40
+ return selectedItemsLabel + "(" + count + ") ";
41
+ };
42
+ exports.formatSelectedItems = formatSelectedItems;
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { QbsColumnProps } from '../commontypes';
3
+ import { type QbsTableLabels } from '../labels';
3
4
  type Props = {
4
5
  columns: QbsColumnProps[];
5
6
  data: any;
@@ -9,6 +10,7 @@ type Props = {
9
10
  handleMenuActions?: () => void;
10
11
  cardColumLimit?: number;
11
12
  childDetailHeading?: string;
13
+ labels?: QbsTableLabels;
12
14
  };
13
15
  declare const CardComponent: React.FC<Props>;
14
16
  export default CardComponent;
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  exports.__esModule = true;
5
5
  exports["default"] = void 0;
6
6
  var _react = _interopRequireWildcard(require("react"));
7
+ var _labels = require("../labels");
7
8
  var _CardMenuDropdown = _interopRequireDefault(require("./CardMenuDropdown"));
8
9
  var _handleFormatCell = require("./handleFormatCell");
9
10
  var _icons = require("./icons");
@@ -22,7 +23,9 @@ var CardComponent = function CardComponent(_ref) {
22
23
  cardColumLimit = _ref$cardColumLimit === void 0 ? 5 : _ref$cardColumLimit,
23
24
  handleMenuActions = _ref.handleMenuActions,
24
25
  _ref$childDetailHeadi = _ref.childDetailHeading,
25
- childDetailHeading = _ref$childDetailHeadi === void 0 ? '' : _ref$childDetailHeadi;
26
+ childDetailHeading = _ref$childDetailHeadi === void 0 ? '' : _ref$childDetailHeadi,
27
+ labelsProp = _ref.labels;
28
+ var labels = (0, _labels.mergeLabels)(labelsProp);
26
29
  var _useState = (0, _react.useState)(false),
27
30
  viewMore = _useState[0],
28
31
  setViewMore = _useState[1];
@@ -71,10 +74,11 @@ var CardComponent = function CardComponent(_ref) {
71
74
  rowData: data,
72
75
  iconName: "more",
73
76
  rowIndex: index,
74
- handleMenuActions: handleMenuActions
77
+ handleMenuActions: handleMenuActions,
78
+ labels: labels
75
79
  })), columns.length > initialDisplayCount && /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
76
80
  tableBodyRef: useCardRef,
77
- title: viewMore ? ' View Less' : 'View More',
81
+ title: viewMore ? labels.viewLess : labels.viewMore,
78
82
  enabled: false
79
83
  }, /*#__PURE__*/_react["default"].createElement("button", {
80
84
  onClick: toggleViewMore,
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ActionProps } from '../commontypes';
3
+ import { type QbsTableLabels } from '../labels';
3
4
  type Props = {
4
5
  iconName: string;
5
6
  actionDropDown: ActionProps[];
@@ -8,6 +9,7 @@ type Props = {
8
9
  dataTheme?: string;
9
10
  tableBodyRef: React.RefObject<HTMLDivElement>;
10
11
  rowIndex?: number;
12
+ labels?: QbsTableLabels;
11
13
  };
12
14
  declare const CardMenuDropdown: React.FC<Props>;
13
15
  export default CardMenuDropdown;
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  exports.__esModule = true;
5
5
  exports["default"] = void 0;
6
6
  var _react = _interopRequireWildcard(require("react"));
7
+ var _labels = require("../labels");
7
8
  var _icons = require("./icons");
8
9
  var _ToolTip = _interopRequireDefault(require("./ToolTip"));
9
10
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -11,7 +12,9 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
11
12
  var CardMenuDropdown = function CardMenuDropdown(_ref) {
12
13
  var actionDropDown = _ref.actionDropDown,
13
14
  handleMenuActions = _ref.handleMenuActions,
14
- rowData = _ref.rowData;
15
+ rowData = _ref.rowData,
16
+ labelsProp = _ref.labels;
17
+ var labels = (0, _labels.mergeLabels)(labelsProp);
15
18
  var _useState = (0, _react.useState)(false),
16
19
  openMenu = _useState[0],
17
20
  setOpenMenu = _useState[1];
@@ -70,7 +73,7 @@ var CardMenuDropdown = function CardMenuDropdown(_ref) {
70
73
  onClick: toggleMenu,
71
74
  ref: menuButtonRef
72
75
  }, /*#__PURE__*/_react["default"].createElement(_ToolTip["default"], {
73
- title: "Actions",
76
+ title: labels.actions,
74
77
  enabled: false,
75
78
  ref: menuButtonRef
76
79
  }, /*#__PURE__*/_react["default"].createElement(_icons.ThreeDotIcon, null))), openMenu && /*#__PURE__*/_react["default"].createElement("div", {
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import { QbsColumnProps } from '../commontypes';
3
+ import { type QbsTableLabels } from '../labels';
3
4
  interface ColumnToggleProps {
4
5
  columns: QbsColumnProps[];
5
6
  onToggle: (columnName: string) => void;
@@ -11,6 +12,7 @@ interface ColumnToggleProps {
11
12
  tableHeight?: number;
12
13
  viewMode?: string;
13
14
  setViewMode?: (value: string) => void;
15
+ labels?: QbsTableLabels;
14
16
  }
15
17
  declare const ColumnToggle: React.FC<ColumnToggleProps>;
16
18
  export default ColumnToggle;
@@ -3,6 +3,7 @@
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
5
  var _react = _interopRequireWildcard(require("react"));
6
+ var _labels = require("../labels");
6
7
  var _icons = require("./icons");
7
8
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
9
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -15,7 +16,9 @@ var ColumnToggle = function ColumnToggle(_ref) {
15
16
  handleResetColumns = _ref.handleResetColumns,
16
17
  handleColumnToggle = _ref.handleColumnToggle,
17
18
  _ref$tableHeight = _ref.tableHeight,
18
- tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight;
19
+ tableHeight = _ref$tableHeight === void 0 ? 450 : _ref$tableHeight,
20
+ labelsProp = _ref.labels;
21
+ var labels = (0, _labels.mergeLabels)(labelsProp);
19
22
  var _useState = (0, _react.useState)(null),
20
23
  draggedItem = _useState[0],
21
24
  setDraggedItem = _useState[1];
@@ -170,7 +173,7 @@ var ColumnToggle = function ColumnToggle(_ref) {
170
173
  className: "qbs-table-popup-item"
171
174
  }, /*#__PURE__*/_react["default"].createElement("div", {
172
175
  className: "qbs-table-popup-label"
173
- }, "FIXED COLUMNS"), /*#__PURE__*/_react["default"].createElement("div", {
176
+ }, labels.fixedColumns), /*#__PURE__*/_react["default"].createElement("div", {
174
177
  className: "qbs-table-columns-container"
175
178
  }, /*#__PURE__*/_react["default"].createElement("div", {
176
179
  className: "qbs-table-column"
@@ -182,7 +185,7 @@ var ColumnToggle = function ColumnToggle(_ref) {
182
185
  className: "qbs-table-popup-item"
183
186
  }, /*#__PURE__*/_react["default"].createElement("div", {
184
187
  className: "qbs-table-popup-label"
185
- }, "VISIBLE COLUMNS"), /*#__PURE__*/_react["default"].createElement("div", {
188
+ }, labels.visibleColumns), /*#__PURE__*/_react["default"].createElement("div", {
186
189
  className: "qbs-table-columns-container"
187
190
  }, /*#__PURE__*/_react["default"].createElement("div", {
188
191
  className: "qbs-table-column"
@@ -194,7 +197,7 @@ var ColumnToggle = function ColumnToggle(_ref) {
194
197
  className: "qbs-table-popup-item"
195
198
  }, /*#__PURE__*/_react["default"].createElement("div", {
196
199
  className: "qbs-table-popup-label"
197
- }, "AVAILABLE COLUMNS"), /*#__PURE__*/_react["default"].createElement("div", {
200
+ }, labels.availableColumns), /*#__PURE__*/_react["default"].createElement("div", {
198
201
  className: "qbs-table-columns-container"
199
202
  }, /*#__PURE__*/_react["default"].createElement("div", {
200
203
  className: "qbs-table-column"
@@ -215,13 +218,13 @@ var ColumnToggle = function ColumnToggle(_ref) {
215
218
  onClick: function onClick() {
216
219
  return handleResetColumns === null || handleResetColumns === void 0 ? void 0 : handleResetColumns();
217
220
  }
218
- }, "Reset to default"), /*#__PURE__*/_react["default"].createElement("a", {
221
+ }, labels.resetToDefault), /*#__PURE__*/_react["default"].createElement("a", {
219
222
  className: "qbs-table-reset-link",
220
223
  href: "#",
221
224
  onClick: function onClick() {
222
225
  return handleColToggle();
223
226
  }
224
- }, "Save"))))));
227
+ }, labels.save))))));
225
228
  };
226
229
  var _default = ColumnToggle;
227
230
  exports["default"] = _default;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  export interface SearchProps {
3
3
  placeholder: string;
4
+ searchAriaLabel?: string;
4
5
  handleChange: (value: string) => void;
5
6
  searchValue: string | undefined;
6
7
  handleSearch: (value?: string) => void;
@@ -7,6 +7,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
7
7
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
8
8
  var SearchInput = function SearchInput(_ref) {
9
9
  var placeholder = _ref.placeholder,
10
+ _ref$searchAriaLabel = _ref.searchAriaLabel,
11
+ searchAriaLabel = _ref$searchAriaLabel === void 0 ? 'Search' : _ref$searchAriaLabel,
10
12
  handleChange = _ref.handleChange,
11
13
  searchValue = _ref.searchValue,
12
14
  handleSearch = _ref.handleSearch;
@@ -30,7 +32,7 @@ var SearchInput = function SearchInput(_ref) {
30
32
  placeholder: placeholder,
31
33
  value: searchValue != null ? searchValue : '',
32
34
  onChange: handleInputChange,
33
- "aria-label": "Search"
35
+ "aria-label": searchAriaLabel
34
36
  }), /*#__PURE__*/_react["default"].createElement("button", {
35
37
  className: "search-button absolute left-1 bottom-1.5 bg-white text-grey-dark",
36
38
  onClick: function onClick() {
@@ -1 +1 @@
1
- export declare function getRowDisplayRange(totalRows: number, rowsPerPage: number, pageNumber: number): string;
1
+ export declare function getRowDisplayRange(totalRows: number, rowsPerPage: number, pageNumber: number, formatRange?: (start: number, end: number, total: number) => string): string;
@@ -2,8 +2,13 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.getRowDisplayRange = getRowDisplayRange;
5
- function getRowDisplayRange(totalRows, rowsPerPage, pageNumber) {
5
+ function getRowDisplayRange(totalRows, rowsPerPage, pageNumber, formatRange) {
6
+ if (formatRange === void 0) {
7
+ formatRange = function formatRange(start, end, total) {
8
+ return "Showing " + start + " to " + end + " of " + total;
9
+ };
10
+ }
6
11
  var start = (pageNumber - 1) * rowsPerPage + 1;
7
12
  var end = Math.min(pageNumber * rowsPerPage, totalRows);
8
- return "Showing " + (start != null ? start : 0) + " to " + (end != null ? end : 0) + " of " + (totalRows != null ? totalRows : 0);
13
+ return formatRange(start != null ? start : 0, end != null ? end : 0, totalRows != null ? totalRows : 0);
9
14
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qbs-react-grid",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "A React table component",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",