@deviceinsight/ng-ui-components 6.22.0 → 6.24.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 (73) hide show
  1. package/lib/cjs/components/input/DateTimeInput.d.ts.map +1 -1
  2. package/lib/cjs/components/input/DateTimeInput.js +35 -5
  3. package/lib/cjs/components/input/__tests__/DateTimeInput.spec.js +21 -0
  4. package/lib/cjs/components/reactable/Reactable.d.ts +2 -0
  5. package/lib/cjs/components/reactable/Reactable.d.ts.map +1 -1
  6. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts +2 -1
  7. package/lib/cjs/components/reactable/helpers/ReactableTable.d.ts.map +1 -1
  8. package/lib/cjs/components/reactable/helpers/ReactableTable.js +26 -14
  9. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts +1 -0
  10. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -1
  11. package/lib/cjs/components/reactable/helpers/ReactableTableFilterRow.js +3 -2
  12. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts +2 -1
  13. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  14. package/lib/cjs/components/reactable/helpers/ReactableTableHeader.js +7 -5
  15. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts +1 -0
  16. package/lib/cjs/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -1
  17. package/lib/cjs/components/reactable/helpers/ReactableTableRow.js +3 -2
  18. package/lib/cjs/components/reactable/helpers/helper.d.ts +1 -0
  19. package/lib/cjs/components/reactable/helpers/helper.d.ts.map +1 -1
  20. package/lib/cjs/components/reactable/helpers/helper.js +5 -1
  21. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +2 -0
  22. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -1
  23. package/lib/cjs/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +2 -2
  24. package/lib/cjs/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +1 -1
  25. package/lib/esm/components/input/DateTimeInput.d.ts.map +1 -1
  26. package/lib/esm/components/input/DateTimeInput.js +35 -5
  27. package/lib/esm/components/input/__tests__/DateTimeInput.spec.js +22 -1
  28. package/lib/esm/components/reactable/Reactable.d.ts +2 -0
  29. package/lib/esm/components/reactable/Reactable.d.ts.map +1 -1
  30. package/lib/esm/components/reactable/helpers/ReactableTable.d.ts +2 -1
  31. package/lib/esm/components/reactable/helpers/ReactableTable.d.ts.map +1 -1
  32. package/lib/esm/components/reactable/helpers/ReactableTable.js +26 -14
  33. package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.d.ts +1 -0
  34. package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -1
  35. package/lib/esm/components/reactable/helpers/ReactableTableFilterRow.js +3 -2
  36. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts +2 -1
  37. package/lib/esm/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  38. package/lib/esm/components/reactable/helpers/ReactableTableHeader.js +7 -5
  39. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts +1 -0
  40. package/lib/esm/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -1
  41. package/lib/esm/components/reactable/helpers/ReactableTableRow.js +3 -2
  42. package/lib/esm/components/reactable/helpers/helper.d.ts +1 -0
  43. package/lib/esm/components/reactable/helpers/helper.d.ts.map +1 -1
  44. package/lib/esm/components/reactable/helpers/helper.js +3 -0
  45. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +2 -0
  46. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -1
  47. package/lib/esm/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +2 -2
  48. package/lib/esm/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +1 -1
  49. package/lib/esm/src/components/input/DateTimeInput.d.ts.map +1 -1
  50. package/lib/esm/src/components/input/DateTimeInput.js +35 -5
  51. package/lib/esm/src/components/input/__tests__/DateTimeInput.spec.js +22 -1
  52. package/lib/esm/src/components/reactable/Reactable.d.ts +2 -0
  53. package/lib/esm/src/components/reactable/Reactable.d.ts.map +1 -1
  54. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts +2 -1
  55. package/lib/esm/src/components/reactable/helpers/ReactableTable.d.ts.map +1 -1
  56. package/lib/esm/src/components/reactable/helpers/ReactableTable.js +26 -14
  57. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts +1 -0
  58. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.d.ts.map +1 -1
  59. package/lib/esm/src/components/reactable/helpers/ReactableTableFilterRow.js +3 -2
  60. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts +2 -1
  61. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.d.ts.map +1 -1
  62. package/lib/esm/src/components/reactable/helpers/ReactableTableHeader.js +7 -5
  63. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts +1 -0
  64. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.d.ts.map +1 -1
  65. package/lib/esm/src/components/reactable/helpers/ReactableTableRow.js +3 -2
  66. package/lib/esm/src/components/reactable/helpers/helper.d.ts +1 -0
  67. package/lib/esm/src/components/reactable/helpers/helper.d.ts.map +1 -1
  68. package/lib/esm/src/components/reactable/helpers/helper.js +3 -0
  69. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts +2 -0
  70. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.d.ts.map +1 -1
  71. package/lib/esm/src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.js +2 -2
  72. package/lib/esm/src/components/reactableWithClientSidePagination/__tests__/ReactableWithClientSidePagination.spec.js +1 -1
  73. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/DateTimeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,oBAAY,KAAK,GAAG;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,QAAQ,EACR,GAAG,UAAU,EACb,EAAE,KAAK,qBAwDP"}
1
+ {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/DateTimeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAwBjD,oBAAY,KAAK,GAAG;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,QAAQ,EACR,GAAG,UAAU,EACb,EAAE,KAAK,qBAgFP"}
@@ -26,10 +26,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ const dayjs_1 = __importDefault(require("dayjs"));
29
30
  const react_1 = __importStar(require("react"));
30
31
  const periods_1 = require("../periodpicker/periods");
31
32
  const DateInput_1 = __importDefault(require("./DateInput"));
32
33
  const ValidatedTextInput_1 = __importDefault(require("./ValidatedTextInput"));
34
+ const lodash_1 = require("lodash");
33
35
  const extractTime = (timezone, date) => {
34
36
  try {
35
37
  return (0, periods_1.dayjsTz)(timezone, date).format('HH:mm');
@@ -39,6 +41,15 @@ const extractTime = (timezone, date) => {
39
41
  return '00:00';
40
42
  }
41
43
  };
44
+ const extractDate = (timezone, date) => {
45
+ try {
46
+ return (0, dayjs_1.default)((0, periods_1.dayjsTz)(timezone, date).format('YYYY-MM-DD'));
47
+ }
48
+ catch (error) {
49
+ console.error('DateTimeInput: Error while extracting time from date', error);
50
+ return (0, dayjs_1.default)(new Date());
51
+ }
52
+ };
42
53
  /**
43
54
  * Extends DateInput but also displaying the current time.
44
55
  * Usually the user's locale is used for displaying the correct date format.
@@ -51,17 +62,36 @@ function DateTimeInput({ timestamp, timezone, warning, readOnly = false, onChang
51
62
  }, [timezone, timestamp]);
52
63
  function handleChangeDate(date, fromTextField) {
53
64
  const oldDate = (0, periods_1.dayjsTz)(timezone, timestamp);
54
- onChange((0, periods_1.dayjsTz)(timezone, date).set('hour', oldDate.get('hour')).set('minute', oldDate.get('minute')).valueOf(), fromTextField);
65
+ const dateFix = (0, dayjs_1.default)(date);
66
+ let newDate = (0, periods_1.dayjsTz)(timezone, date)
67
+ .set('day', dateFix.day())
68
+ .set('month', dateFix.month())
69
+ .set('year', dateFix.year())
70
+ .set('hour', (0, lodash_1.toInteger)(oldDate.hour()))
71
+ .set('minute', (0, lodash_1.toInteger)(oldDate.minute()));
72
+ const dstOffset = getLocalDstOffset(newDate);
73
+ newDate = newDate.subtract(dstOffset, 'minutes');
74
+ onChange(newDate.valueOf(), fromTextField);
75
+ }
76
+ function getMaxUtcOffset(year) {
77
+ const jan = new Date(`${year}-01-01`).getTimezoneOffset();
78
+ const jul = new Date(`${year}-07-01`).getTimezoneOffset();
79
+ return Math.min(jan, jul);
80
+ }
81
+ function getLocalDstOffset(newDate) {
82
+ return newDate.toDate().getTimezoneOffset() - getMaxUtcOffset(newDate.year());
55
83
  }
56
84
  function handleChangeTime(time, valid) {
57
85
  if (valid) {
58
86
  const [hours, minutes] = time.split(':');
59
- onChange((0, periods_1.dayjsTz)(timezone, timestamp)
87
+ const date = extractDate(timezone, timestamp);
88
+ const dateTime = (0, periods_1.dayjsTz)(timezone, timestamp)
89
+ .set('date', date.date())
60
90
  .set('hour', parseInt(hours, 10))
61
91
  .set('minute', parseInt(minutes, 10))
62
92
  .set('second', 0)
63
- .set('millisecond', 0)
64
- .valueOf());
93
+ .set('millisecond', 0);
94
+ onChange(dateTime.valueOf());
65
95
  }
66
96
  setTime(time);
67
97
  }
@@ -71,7 +101,7 @@ function DateTimeInput({ timestamp, timezone, warning, readOnly = false, onChang
71
101
  }
72
102
  }
73
103
  return (react_1.default.createElement("span", { className: `di date-time-input ${warning ? 'with-warning' : ''}` },
74
- react_1.default.createElement(DateInput_1.default, { ...otherProps, value: timestamp, onChange: handleChangeDate, readOnly: readOnly }),
104
+ react_1.default.createElement(DateInput_1.default, { ...otherProps, value: extractDate(timezone, timestamp).valueOf(), onChange: handleChangeDate, readOnly: readOnly }),
75
105
  react_1.default.createElement(ValidatedTextInput_1.default, { "data-testid": "time-input", value: timeValue, onChange: handleChangeTime, pattern: /^(([01][0-9])|2[0-3]):[0-5][0-9]$/, required: true, invalidStyle: {
76
106
  borderColor: 'red'
77
107
  }, placeholder: "00:00", className: "time", onBlur: tryFixTime, disabled: readOnly })));
@@ -7,6 +7,7 @@ const react_1 = __importDefault(require("react"));
7
7
  const vitest_1 = require("vitest");
8
8
  const DateTimeInput_1 = __importDefault(require("../DateTimeInput"));
9
9
  const react_2 = require("@testing-library/react");
10
+ const testing_library_1 = require("@storybook/testing-library");
10
11
  (0, vitest_1.describe)('DateTimeInput.js', () => {
11
12
  (0, vitest_1.it)('should update time when timestamp has changed', () => {
12
13
  const { rerender } = (0, react_2.render)(react_1.default.createElement(DateTimeInput_1.default, { timestamp: new Date('2019-02-01T11:11:00').getTime(), onChange: () => { } }));
@@ -15,4 +16,24 @@ const react_2 = require("@testing-library/react");
15
16
  rerender(react_1.default.createElement(DateTimeInput_1.default, { timestamp: new Date('2019-02-02T03:24:00').getTime(), onChange: () => { } }));
16
17
  (0, vitest_1.expect)(timeElement).toHaveDisplayValue('03:24');
17
18
  });
19
+ (0, vitest_1.it)('should display the time and date as timezone date', async () => {
20
+ const { rerender } = (0, react_2.render)(react_1.default.createElement(DateTimeInput_1.default, { timestamp: new Date('2019-02-01T11:11:00').getTime(), onChange: () => { }, timezone: "America/Vancouver" }));
21
+ const timeElementUtm = react_2.screen.queryByDisplayValue('11:11');
22
+ (0, vitest_1.expect)(timeElementUtm).not.toBeInTheDocument();
23
+ const timeElement = react_2.screen.queryByDisplayValue('03:11');
24
+ (0, vitest_1.expect)(timeElement).toBeInTheDocument();
25
+ const dateElement = react_2.screen.queryByDisplayValue('01.02.2019');
26
+ (0, vitest_1.expect)(dateElement).toBeInTheDocument();
27
+ rerender(react_1.default.createElement(DateTimeInput_1.default, { timestamp: new Date('2019-02-02T03:24:00').getTime(), onChange: () => { }, timezone: "America/Vancouver" }));
28
+ (0, vitest_1.expect)(timeElement).toHaveDisplayValue('19:24');
29
+ (0, vitest_1.expect)(dateElement).toHaveDisplayValue('01.02.2019');
30
+ await (0, react_2.act)(async () => {
31
+ dateElement?.click();
32
+ timeElement?.click();
33
+ testing_library_1.userEvent.clear(timeElement);
34
+ testing_library_1.userEvent.type(timeElement, '10:24');
35
+ });
36
+ (0, vitest_1.expect)(timeElement).toHaveDisplayValue('10:24');
37
+ (0, vitest_1.expect)(dateElement).toHaveDisplayValue('01.02.2019');
38
+ });
18
39
  });
@@ -16,6 +16,8 @@ export declare type Props<T, ID extends string | number | undefined | null = any
16
16
  onChangeSize?: (size: number) => void;
17
17
  /** (Optional) function, executed if the Reactable gets filtered */
18
18
  onFilter?: (filterSettings: ReactableFilterSettings) => void;
19
+ /** (Optional) name of the table */
20
+ tableName?: string;
19
21
  /** Content, totalElements, totalPages, number, size, sort */
20
22
  pageable: Pageable<T> | null | undefined;
21
23
  /** (Optional) can set custom event handler and/or functions in general */
@@ -1 +1 @@
1
- {"version":3,"file":"Reactable.d.ts","sourceRoot":"","sources":["../../../../src/components/reactable/Reactable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEnF,oBAAY,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,8DAA8D;IAC9D,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,qDAAqD;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAE5B,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,SAAS,CACnH,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACZ;IACA,MAAM;CAoBN"}
1
+ {"version":3,"file":"Reactable.d.ts","sourceRoot":"","sources":["../../../../src/components/reactable/Reactable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEnF,oBAAY,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,8DAA8D;IAC9D,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,qDAAqD;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAE7D,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6DAA6D;IAC7D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAE5B,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,SAAS,CACnH,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACZ;IACA,MAAM;CAoBN"}
@@ -7,6 +7,7 @@ declare type Props<T, ID extends string | number | undefined | null> = {
7
7
  paginationSettings: PaginationSettings;
8
8
  onSort: (property: string, direction: SortDirection) => void;
9
9
  onFilter?: (filterSettings: ReactableFilterSettings) => void;
10
+ tableName?: string;
10
11
  pageable?: Pageable<T> | null;
11
12
  isLoading: boolean;
12
13
  rowDef?: ReactableRowDef<T>;
@@ -14,6 +15,6 @@ declare type Props<T, ID extends string | number | undefined | null> = {
14
15
  messageWhenEmpty?: string;
15
16
  'data-testid'?: string;
16
17
  };
17
- export default function ReactableTable<T, ID extends string | number | undefined | null>({ columnDefs, uniqueItemKey, paginationSettings, onSort, onFilter, pageable, isLoading, rowDef, clickable, messageWhenEmpty, 'data-testid': testId }: Props<T, ID>): React.JSX.Element;
18
+ export default function ReactableTable<T, ID extends string | number | undefined | null>({ columnDefs, uniqueItemKey, paginationSettings, onSort, onFilter, tableName, pageable, isLoading, rowDef, clickable, messageWhenEmpty, 'data-testid': testId }: Props<T, ID>): React.JSX.Element;
18
19
  export {};
19
20
  //# sourceMappingURL=ReactableTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactableTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAQzD,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AACtF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGtF,aAAK,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI;IAC9D,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,EACxF,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EAAE,MAAM,EACrB,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,qBAkHd"}
1
+ {"version":3,"file":"ReactableTable.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAQzD,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AACtF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAGtF,aAAK,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,IAAI;IAC9D,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;IACpC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,EACxF,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,MAAM,EACN,SAAS,EACT,gBAAgB,EAChB,aAAa,EAAE,MAAM,EACrB,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,qBAmId"}
@@ -34,11 +34,12 @@ const ReactableTableRow_1 = __importDefault(require("./ReactableTableRow"));
34
34
  const ReactableTableHeader_1 = __importDefault(require("./ReactableTableHeader"));
35
35
  const ReactableTableFilterRow_1 = __importDefault(require("./ReactableTableFilterRow"));
36
36
  const ng_ui_api_client_1 = require("@deviceinsight/ng-ui-api-client");
37
- function ReactableTable({ columnDefs, uniqueItemKey, paginationSettings, onSort, onFilter, pageable, isLoading, rowDef, clickable, messageWhenEmpty, 'data-testid': testId }) {
37
+ function ReactableTable({ columnDefs, uniqueItemKey, paginationSettings, onSort, onFilter, tableName, pageable, isLoading, rowDef, clickable, messageWhenEmpty, 'data-testid': testId }) {
38
38
  const containerRef = (0, react_1.useRef)(null);
39
39
  const tableRef = (0, react_1.useRef)(null);
40
40
  const [showScrollingAdvice, setShowScrollingAdvice] = (0, react_1.useState)(false);
41
- const [neverShowScrollingAdvice, setNeverShowScrollingAdvice] = (0, react_1.useState)(false);
41
+ const [neverShowScrollingAdvice, setNeverShowScrollingAdvice] = (0, react_1.useState)(true);
42
+ const [hasInitialized, setHasInitialized] = (0, react_1.useState)(false);
42
43
  const HIDE_SCROLLING_ADVICE_PATH = 'uiConfigurations/nevershowscrollingadvice';
43
44
  const neverShowScrollingAdviceRef = (0, react_1.useRef)(neverShowScrollingAdvice);
44
45
  (0, react_1.useEffect)(() => {
@@ -50,14 +51,25 @@ function ReactableTable({ columnDefs, uniqueItemKey, paginationSettings, onSort,
50
51
  }
51
52
  };
52
53
  (0, react_1.useEffect)(() => {
53
- (0, ng_ui_api_client_1.readAccountObject)(HIDE_SCROLLING_ADVICE_PATH).then((value) => {
54
- const neverShow = value === undefined ? false : value;
55
- setNeverShowScrollingAdvice(neverShow);
56
- neverShowScrollingAdviceRef.current = neverShow;
57
- if (containerRef.current && tableRef.current) {
58
- updateScrollingAdvice();
59
- }
60
- });
54
+ setTimeout(() => {
55
+ (async () => {
56
+ try {
57
+ const value = await (0, ng_ui_api_client_1.readAccountObject)(HIDE_SCROLLING_ADVICE_PATH);
58
+ const neverShow = value === true;
59
+ setNeverShowScrollingAdvice(neverShow);
60
+ neverShowScrollingAdviceRef.current = neverShow;
61
+ if (!neverShow) {
62
+ updateScrollingAdvice();
63
+ }
64
+ }
65
+ catch (error) {
66
+ setNeverShowScrollingAdvice(false);
67
+ neverShowScrollingAdviceRef.current = false;
68
+ updateScrollingAdvice();
69
+ }
70
+ setHasInitialized(true);
71
+ })();
72
+ }, 0);
61
73
  }, []);
62
74
  (0, react_1.useEffect)(() => {
63
75
  updateScrollingAdvice();
@@ -67,7 +79,7 @@ function ReactableTable({ columnDefs, uniqueItemKey, paginationSettings, onSort,
67
79
  const showFilterRow = columnDefs.some((col) => col.filterable);
68
80
  return (react_1.default.createElement(ng_ui_basic_components_1.SpinnerContainer, { show: isLoading },
69
81
  react_1.default.createElement("div", { ref: containerRef, className: "di reactable scroll-x" },
70
- showScrollingAdvice && !isLoading && (react_1.default.createElement(ng_ui_basic_components_1.Modal, { className: "scroll-horizontally-advice", content: react_1.default.createElement("div", null,
82
+ hasInitialized && showScrollingAdvice && !isLoading && (react_1.default.createElement(ng_ui_basic_components_1.Modal, { className: "scroll-horizontally-advice", content: react_1.default.createElement("div", null,
71
83
  react_1.default.createElement(i18n_1.Trans, { i18nKey: "reactable.scrollHorizontally.advice" }, "SHIFT + mouse wheel to scroll horizontally"),
72
84
  react_1.default.createElement("div", { className: "scroll-horizontally-advice-buttons" },
73
85
  react_1.default.createElement(ng_ui_basic_components_1.Button, { primary: true, onClick: async () => {
@@ -81,13 +93,13 @@ function ReactableTable({ columnDefs, uniqueItemKey, paginationSettings, onSort,
81
93
  react_1.default.createElement(i18n_1.Trans, { i18nKey: "reactable.scrollHorizontally.ok" }, "OK")))), width: '40%' })),
82
94
  react_1.default.createElement("table", { ref: tableRef, className: (0, classnames_1.default)('di reactable sortable hoverable', { selectable: clickable }), "data-testid": testId },
83
95
  react_1.default.createElement("thead", null,
84
- react_1.default.createElement(ReactableTableHeader_1.default, { columnDefs: columnDefs, paginationSettings: paginationSettings, onSort: onSort })),
96
+ react_1.default.createElement(ReactableTableHeader_1.default, { columnDefs: columnDefs, paginationSettings: paginationSettings, onSort: onSort, tableName: tableName })),
85
97
  react_1.default.createElement("tbody", null,
86
- onFilter && showFilterRow && (react_1.default.createElement(ReactableTableFilterRow_1.default, { columnDefs: columnDefs, onFilter: onFilter })),
98
+ onFilter && showFilterRow && (react_1.default.createElement(ReactableTableFilterRow_1.default, { columnDefs: columnDefs, onFilter: onFilter, tableName: tableName })),
87
99
  pageable?.content.length
88
100
  ? pageable.content
89
101
  .slice(0, paginationSettings.size)
90
- .map((item) => (react_1.default.createElement(ReactableTableRow_1.default, { key: uniqueItemKey(item), columnDefs: columnDefs, item: item, rowDef: rowDef })))
102
+ .map((item) => (react_1.default.createElement(ReactableTableRow_1.default, { key: uniqueItemKey(item), columnDefs: columnDefs, item: item, rowDef: rowDef, tableName: tableName })))
91
103
  : !isLoading && (react_1.default.createElement("tr", null,
92
104
  react_1.default.createElement("td", { colSpan: columnDefs.length },
93
105
  react_1.default.createElement(i18n_1.Trans, { i18nKey: messageWhenEmpty ?? 'reactable.noEntriesFound' }, "No entries found")))))))));
@@ -3,6 +3,7 @@ import { ReactableColumnDef, ReactableFilterSettings } from '../types';
3
3
  declare type Props = {
4
4
  columnDefs: Array<ReactableColumnDef<any>>;
5
5
  onFilter: (filterColumns: ReactableFilterSettings) => void;
6
+ tableName?: string;
6
7
  };
7
8
  declare const ReactableTableFilterRow: React.FC<Props>;
8
9
  export default ReactableTableFilterRow;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactableTableFilterRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableFilterRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AAGrE,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAC;CAC3D,CAAC;AAEF,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuF5C,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ReactableTableFilterRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableFilterRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AAIrE,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,QAAQ,EAAE,CAAC,aAAa,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAuF5C,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -29,7 +29,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
30
  const i18n_1 = require("../../../i18n");
31
31
  const ReactableTextFilter_1 = __importDefault(require("./ReactableTextFilter"));
32
- const ReactableTableFilterRow = ({ columnDefs, onFilter }) => {
32
+ const helper_1 = require("./helper");
33
+ const ReactableTableFilterRow = ({ columnDefs, onFilter, tableName }) => {
33
34
  const { t } = (0, i18n_1.useTranslation)();
34
35
  const [state, setState] = (0, react_1.useState)({});
35
36
  (0, react_1.useEffect)(() => {
@@ -74,7 +75,7 @@ const ReactableTableFilterRow = ({ columnDefs, onFilter }) => {
74
75
  react_1.default.createElement("option", { key: "", value: "" }, t('reactable.filter.all', {
75
76
  defaultValue: '- All -'
76
77
  })),
77
- filterOptions.map((option) => (react_1.default.createElement("option", { key: option.value, value: option.value }, typeof option.label === 'string'
78
+ filterOptions.map((option) => (react_1.default.createElement("option", { className: (0, helper_1.getClassName)(tableName, columnDef.name), key: option.value, value: option.value }, typeof option.label === 'string'
78
79
  ? option.label
79
80
  : t(option.label.id, {
80
81
  defaultValue: option.label.defaultValue
@@ -5,10 +5,11 @@ declare type Props = {
5
5
  columnDefs: Array<ReactableColumnDef<any>>;
6
6
  paginationSettings: PaginationSettings;
7
7
  onSort: (property: string, direction: SortDirection) => void;
8
+ tableName?: string;
8
9
  };
9
10
  export default class ReactableTableHeader extends React.Component<Props> {
10
11
  handleSort: (columnDef: ReactableColumnDef<unknown>) => void;
11
- getClassName: (columnDef: ReactableColumnDef<any>) => "" | "sortable sortAsc" | "sortable sortDes" | "sortable";
12
+ getClassName: (columnDef: ReactableColumnDef<any>) => string;
12
13
  printLabel: (label: ReactableColumnLabel) => string | number | boolean | Iterable<React.ReactNode> | React.JSX.Element | import("../../../types/i18n").TranslationDescriptor | null | undefined;
13
14
  render(): React.JSX.Element;
14
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReactableTableHeader.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAI5E,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;CAC7D,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACvE,UAAU,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAO1D;IAEF,YAAY,cAAe,mBAAmB,GAAG,CAAC,+DAgBhD;IAEF,UAAU,UAAW,oBAAoB,wJAQvC;IAEF,MAAM;CAuBN"}
1
+ {"version":3,"file":"ReactableTableHeader.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,kBAAkB,EAAE,oBAAoB,EAAC,MAAM,UAAU,CAAC;AAClE,OAAO,EAAC,kBAAkB,EAAE,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAK5E,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACvE,UAAU,EAAE,CAAC,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,IAAI,CAO1D;IAEF,YAAY,cAAe,mBAAmB,GAAG,CAAC,YAiBhD;IAEF,UAAU,UAAW,oBAAoB,wJAQvC;IAEF,MAAM;CAuBN"}
@@ -25,6 +25,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const React = __importStar(require("react"));
27
27
  const i18n_1 = require("../../../i18n");
28
+ const helper_1 = require("./helper");
28
29
  const toggleSortDirection = (direction) => (direction === 'ASC' ? 'DESC' : 'ASC');
29
30
  class ReactableTableHeader extends React.Component {
30
31
  constructor() {
@@ -37,22 +38,23 @@ class ReactableTableHeader extends React.Component {
37
38
  onSort(columnDef.name, direction);
38
39
  };
39
40
  this.getClassName = (columnDef) => {
40
- const { paginationSettings } = this.props;
41
+ const { paginationSettings, tableName } = this.props;
42
+ const className = (0, helper_1.getClassName)(tableName, columnDef.name);
41
43
  if (columnDef.sortable) {
42
44
  if (columnDef.name === paginationSettings.sort.property) {
43
45
  if (paginationSettings.sort.direction === 'ASC') {
44
- return 'sortable sortAsc';
46
+ return `${className} sortable sortAsc`;
45
47
  }
46
48
  else {
47
- return 'sortable sortDes';
49
+ return `${className} sortable sortDes`;
48
50
  }
49
51
  }
50
52
  else {
51
- return 'sortable';
53
+ return `${className} sortable`;
52
54
  }
53
55
  }
54
56
  else {
55
- return '';
57
+ return `${className}`;
56
58
  }
57
59
  };
58
60
  this.printLabel = (label) => {
@@ -4,6 +4,7 @@ declare type Props<T> = {
4
4
  columnDefs: Array<ReactableColumnDef<T>>;
5
5
  item: T;
6
6
  rowDef: ReactableRowDef<T> | null | undefined;
7
+ tableName?: string;
7
8
  };
8
9
  export default class ReactableTableRow extends React.Component<Props<any>> {
9
10
  getRowClass: () => string;
@@ -1 +1 @@
1
- {"version":3,"file":"ReactableTableRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAE7D,aAAK,KAAK,CAAC,CAAC,IAAI;IACf,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,WAAW,eAQT;IAEF,WAAW,aAMT;IAEF,UAAU,eAQR;IAEF,WAAW,wCAQT;IAEF,MAAM;CAkCN"}
1
+ {"version":3,"file":"ReactableTableRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/ReactableTableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAC,MAAM,UAAU,CAAC;AAG7D,aAAK,KAAK,CAAC,CAAC,IAAI;IACf,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,WAAW,eAQT;IAEF,WAAW,aAMT;IAEF,UAAU,eAQR;IAEF,WAAW,wCAQT;IAEF,MAAM;CAmCN"}
@@ -24,6 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const React = __importStar(require("react"));
27
+ const helper_1 = require("./helper");
27
28
  class ReactableTableRow extends React.Component {
28
29
  constructor() {
29
30
  super(...arguments);
@@ -62,7 +63,7 @@ class ReactableTableRow extends React.Component {
62
63
  };
63
64
  }
64
65
  render() {
65
- const { columnDefs, item } = this.props;
66
+ const { columnDefs, item, tableName } = this.props;
66
67
  return (React.createElement("tr", { className: this.getRowClass(), onClick: this.handleClick, title: this.getTooltip(), style: this.getRowStyle() }, columnDefs.map((columnDef) => {
67
68
  const textAlign = columnDef.align || 'left';
68
69
  const cursor = columnDef.onClick ? 'pointer' : 'inherit';
@@ -75,7 +76,7 @@ class ReactableTableRow extends React.Component {
75
76
  cursor,
76
77
  // @ts-ignore
77
78
  whiteSpace
78
- }, onClick: onClick }, columnDef.render(item)));
79
+ }, onClick: onClick, className: (0, helper_1.getClassName)(tableName, columnDef.name) }, columnDef.render(item)));
79
80
  })));
80
81
  }
81
82
  }
@@ -4,4 +4,5 @@ export declare function makePageable<T>(items: Array<T> | null | undefined, colu
4
4
  export declare function filterItems<T>(items: Array<T> | null | undefined, columnDefs: Array<ReactableColumnDef<any>>, filterSettings: ReactableFilterSettings): Array<T> | null | undefined;
5
5
  export declare function sortItems<T>(items: Array<T>, sort: Sort): Array<T>;
6
6
  export declare function extendColumnDefsWithCheckboxes<T>(columnDefs: Array<ReactableColumnDef<T>>, onSelectChange: (selected: boolean, item: T) => void, onSelectAllChange: (selected: boolean) => void, selectedAll: boolean, selectedItems: Array<any>, uniqueItemKey: (arg0: T) => any): Array<ReactableColumnDef<T>>;
7
+ export declare function getClassName(tableName: string | undefined, columnName: string): string;
7
8
  //# sourceMappingURL=helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/helper.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AAErE,wBAAgB,YAAY,CAAC,CAAC,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,EACvC,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EACf,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GACxG,IAAI,GACJ,SAAS,GACV,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAehC;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,GACrC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAyB7B;AAYD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAkBlE;AAED,wBAAgB,8BAA8B,CAAC,CAAC,EAC/C,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxC,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EACpD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,EAC9C,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EACzB,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,GAC7B,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA2B9B"}
1
+ {"version":3,"file":"helper.d.ts","sourceRoot":"","sources":["../../../../../src/components/reactable/helpers/helper.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAC,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAC,kBAAkB,EAAE,uBAAuB,EAAC,MAAM,UAAU,CAAC;AAErE,wBAAgB,YAAY,CAAC,CAAC,EAC7B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,EACvC,kBAAkB,EAAE,kBAAkB,EACtC,kBAAkB,EACf,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GACxG,IAAI,GACJ,SAAS,GACV,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAehC;AAWD,wBAAgB,WAAW,CAAC,CAAC,EAC5B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAClC,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAC1C,cAAc,EAAE,uBAAuB,GACrC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAyB7B;AAYD,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAkBlE;AAED,wBAAgB,8BAA8B,CAAC,CAAC,EAC/C,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EACxC,cAAc,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,EACpD,iBAAiB,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,EAC9C,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,KAAK,CAAC,GAAG,CAAC,EACzB,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,GAAG,GAC7B,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CA2B9B;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAEtF"}
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.extendColumnDefsWithCheckboxes = exports.sortItems = exports.filterItems = exports.makePageable = void 0;
26
+ exports.getClassName = exports.extendColumnDefsWithCheckboxes = exports.sortItems = exports.filterItems = exports.makePageable = void 0;
27
27
  const React = __importStar(require("react"));
28
28
  const ng_ui_basic_components_1 = require("@deviceinsight/ng-ui-basic-components");
29
29
  function makePageable(items, columnDefs, filterSettings, paginationSettings, customSortFunction) {
@@ -118,3 +118,7 @@ function extendColumnDefsWithCheckboxes(columnDefs, onSelectChange, onSelectAllC
118
118
  ];
119
119
  }
120
120
  exports.extendColumnDefsWithCheckboxes = extendColumnDefsWithCheckboxes;
121
+ function getClassName(tableName, columnName) {
122
+ return `${tableName || 'unnamedTable'}-${columnName}`;
123
+ }
124
+ exports.getClassName = getClassName;
@@ -29,6 +29,8 @@ export declare type Props<T, ID extends string | number | undefined | null = any
29
29
  onContentChange?: (content: Array<T>) => void;
30
30
  /** (Optional) Function, executed if filtered items change */
31
31
  onFilteredItemsChanged?: (filteredItems: Array<T>) => void;
32
+ /** (Optional) name of the table */
33
+ tableName?: string;
32
34
  /** (Optional) if true, makes rows clickable */
33
35
  clickable?: boolean;
34
36
  /** If equals *true* additional column with checkboxes is rendered */
@@ -1 +1 @@
1
- {"version":3,"file":"ReactableWithClientSidePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactableWithClientSidePagination.d.ts","sourceRoot":"","sources":["../../../../src/components/reactableWithClientSidePagination/ReactableWithClientSidePagination.tsx"],"names":[],"mappings":"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"}
@@ -174,11 +174,11 @@ class ReactableWithClientSidePagination extends React.Component {
174
174
  }
175
175
  }
176
176
  render() {
177
- const { uniqueItemKey, isLoading, columnDefs, rowDef, clickable, selectable, selectedItems, onChangeSize } = this.props;
177
+ const { uniqueItemKey, isLoading, columnDefs, rowDef, tableName, clickable, selectable, selectedItems, onChangeSize } = this.props;
178
178
  const finalColumnDefs = selectable
179
179
  ? (0, helper_1.extendColumnDefsWithCheckboxes)(columnDefs, this.handleSelectChange, this.handleSelectAllChange, this.areSelectedAll(), selectedItems || [], uniqueItemKey)
180
180
  : columnDefs;
181
- return (React.createElement(Reactable_1.default, { columnDefs: finalColumnDefs, rowDef: rowDef, uniqueItemKey: uniqueItemKey, paginationSettings: this.state.paginationSettings, onChangePage: this.handleChangePage, onChangeSize: onChangeSize, onSort: this.handleSort, onFilter: this.handleFilter, pageable: this.getPageable(), isLoading: isLoading, clickable: clickable, "data-testid": this.props['data-testid'] }));
181
+ return (React.createElement(Reactable_1.default, { columnDefs: finalColumnDefs, rowDef: rowDef, uniqueItemKey: uniqueItemKey, paginationSettings: this.state.paginationSettings, onChangePage: this.handleChangePage, onChangeSize: onChangeSize, onSort: this.handleSort, onFilter: this.handleFilter, tableName: tableName, pageable: this.getPageable(), isLoading: isLoading, clickable: clickable, "data-testid": this.props['data-testid'] }));
182
182
  }
183
183
  }
184
184
  exports.default = ReactableWithClientSidePagination;
@@ -68,7 +68,7 @@ const COMMON_PROPS = {
68
68
  (0, vitest_1.it)('should match snapshot', () => {
69
69
  const ReactableWithClientSidePaginationWrapper = (0, react_1.render)(
70
70
  // @ts-ignore
71
- React.createElement(ReactableWithClientSidePagination_1.default, { ...COMMON_PROPS, selectedItems: [], onSelectedItemsChange: () => { } }));
71
+ React.createElement(ReactableWithClientSidePagination_1.default, { ...COMMON_PROPS, selectedItems: [], onSelectedItemsChange: () => { }, tableName: 'test' }));
72
72
  (0, vitest_1.expect)(ReactableWithClientSidePaginationWrapper).toMatchSnapshot();
73
73
  });
74
74
  (0, vitest_1.it)('should call the callback with correct argument when checkbox is checked', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/DateTimeInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAejD,oBAAY,KAAK,GAAG;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,QAAQ,EACR,GAAG,UAAU,EACb,EAAE,KAAK,qBAwDP"}
1
+ {"version":3,"file":"DateTimeInput.d.ts","sourceRoot":"","sources":["../../../../src/components/input/DateTimeInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAwBjD,oBAAY,KAAK,GAAG;IACnB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAElB,oEAAoE;IACpE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7E,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAgB,EAChB,QAAQ,EACR,GAAG,UAAU,EACb,EAAE,KAAK,qBAgFP"}
@@ -1,7 +1,9 @@
1
+ import dayjs from 'dayjs';
1
2
  import React, { useEffect, useState } from 'react';
2
3
  import { dayjsTz } from '../periodpicker/periods';
3
4
  import DateInput from './DateInput';
4
5
  import ValidatedTextInput from './ValidatedTextInput';
6
+ import { toInteger } from 'lodash';
5
7
  const extractTime = (timezone, date) => {
6
8
  try {
7
9
  return dayjsTz(timezone, date).format('HH:mm');
@@ -11,6 +13,15 @@ const extractTime = (timezone, date) => {
11
13
  return '00:00';
12
14
  }
13
15
  };
16
+ const extractDate = (timezone, date) => {
17
+ try {
18
+ return dayjs(dayjsTz(timezone, date).format('YYYY-MM-DD'));
19
+ }
20
+ catch (error) {
21
+ console.error('DateTimeInput: Error while extracting time from date', error);
22
+ return dayjs(new Date());
23
+ }
24
+ };
14
25
  /**
15
26
  * Extends DateInput but also displaying the current time.
16
27
  * Usually the user's locale is used for displaying the correct date format.
@@ -23,17 +34,36 @@ export default function DateTimeInput({ timestamp, timezone, warning, readOnly =
23
34
  }, [timezone, timestamp]);
24
35
  function handleChangeDate(date, fromTextField) {
25
36
  const oldDate = dayjsTz(timezone, timestamp);
26
- onChange(dayjsTz(timezone, date).set('hour', oldDate.get('hour')).set('minute', oldDate.get('minute')).valueOf(), fromTextField);
37
+ const dateFix = dayjs(date);
38
+ let newDate = dayjsTz(timezone, date)
39
+ .set('day', dateFix.day())
40
+ .set('month', dateFix.month())
41
+ .set('year', dateFix.year())
42
+ .set('hour', toInteger(oldDate.hour()))
43
+ .set('minute', toInteger(oldDate.minute()));
44
+ const dstOffset = getLocalDstOffset(newDate);
45
+ newDate = newDate.subtract(dstOffset, 'minutes');
46
+ onChange(newDate.valueOf(), fromTextField);
47
+ }
48
+ function getMaxUtcOffset(year) {
49
+ const jan = new Date(`${year}-01-01`).getTimezoneOffset();
50
+ const jul = new Date(`${year}-07-01`).getTimezoneOffset();
51
+ return Math.min(jan, jul);
52
+ }
53
+ function getLocalDstOffset(newDate) {
54
+ return newDate.toDate().getTimezoneOffset() - getMaxUtcOffset(newDate.year());
27
55
  }
28
56
  function handleChangeTime(time, valid) {
29
57
  if (valid) {
30
58
  const [hours, minutes] = time.split(':');
31
- onChange(dayjsTz(timezone, timestamp)
59
+ const date = extractDate(timezone, timestamp);
60
+ const dateTime = dayjsTz(timezone, timestamp)
61
+ .set('date', date.date())
32
62
  .set('hour', parseInt(hours, 10))
33
63
  .set('minute', parseInt(minutes, 10))
34
64
  .set('second', 0)
35
- .set('millisecond', 0)
36
- .valueOf());
65
+ .set('millisecond', 0);
66
+ onChange(dateTime.valueOf());
37
67
  }
38
68
  setTime(time);
39
69
  }
@@ -43,7 +73,7 @@ export default function DateTimeInput({ timestamp, timezone, warning, readOnly =
43
73
  }
44
74
  }
45
75
  return (React.createElement("span", { className: `di date-time-input ${warning ? 'with-warning' : ''}` },
46
- React.createElement(DateInput, { ...otherProps, value: timestamp, onChange: handleChangeDate, readOnly: readOnly }),
76
+ React.createElement(DateInput, { ...otherProps, value: extractDate(timezone, timestamp).valueOf(), onChange: handleChangeDate, readOnly: readOnly }),
47
77
  React.createElement(ValidatedTextInput, { "data-testid": "time-input", value: timeValue, onChange: handleChangeTime, pattern: /^(([01][0-9])|2[0-3]):[0-5][0-9]$/, required: true, invalidStyle: {
48
78
  borderColor: 'red'
49
79
  }, placeholder: "00:00", className: "time", onBlur: tryFixTime, disabled: readOnly })));
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { describe, expect, it } from 'vitest';
3
3
  import DateTimeInput from '../DateTimeInput';
4
- import { render, screen } from '@testing-library/react';
4
+ import { act, render, screen } from '@testing-library/react';
5
+ import { userEvent } from '@storybook/testing-library';
5
6
  describe('DateTimeInput.js', () => {
6
7
  it('should update time when timestamp has changed', () => {
7
8
  const { rerender } = render(React.createElement(DateTimeInput, { timestamp: new Date('2019-02-01T11:11:00').getTime(), onChange: () => { } }));
@@ -10,4 +11,24 @@ describe('DateTimeInput.js', () => {
10
11
  rerender(React.createElement(DateTimeInput, { timestamp: new Date('2019-02-02T03:24:00').getTime(), onChange: () => { } }));
11
12
  expect(timeElement).toHaveDisplayValue('03:24');
12
13
  });
14
+ it('should display the time and date as timezone date', async () => {
15
+ const { rerender } = render(React.createElement(DateTimeInput, { timestamp: new Date('2019-02-01T11:11:00').getTime(), onChange: () => { }, timezone: "America/Vancouver" }));
16
+ const timeElementUtm = screen.queryByDisplayValue('11:11');
17
+ expect(timeElementUtm).not.toBeInTheDocument();
18
+ const timeElement = screen.queryByDisplayValue('03:11');
19
+ expect(timeElement).toBeInTheDocument();
20
+ const dateElement = screen.queryByDisplayValue('01.02.2019');
21
+ expect(dateElement).toBeInTheDocument();
22
+ rerender(React.createElement(DateTimeInput, { timestamp: new Date('2019-02-02T03:24:00').getTime(), onChange: () => { }, timezone: "America/Vancouver" }));
23
+ expect(timeElement).toHaveDisplayValue('19:24');
24
+ expect(dateElement).toHaveDisplayValue('01.02.2019');
25
+ await act(async () => {
26
+ dateElement?.click();
27
+ timeElement?.click();
28
+ userEvent.clear(timeElement);
29
+ userEvent.type(timeElement, '10:24');
30
+ });
31
+ expect(timeElement).toHaveDisplayValue('10:24');
32
+ expect(dateElement).toHaveDisplayValue('01.02.2019');
33
+ });
13
34
  });
@@ -16,6 +16,8 @@ export declare type Props<T, ID extends string | number | undefined | null = any
16
16
  onChangeSize?: (size: number) => void;
17
17
  /** (Optional) function, executed if the Reactable gets filtered */
18
18
  onFilter?: (filterSettings: ReactableFilterSettings) => void;
19
+ /** (Optional) name of the table */
20
+ tableName?: string;
19
21
  /** Content, totalElements, totalPages, number, size, sort */
20
22
  pageable: Pageable<T> | null | undefined;
21
23
  /** (Optional) can set custom event handler and/or functions in general */
@@ -1 +1 @@
1
- {"version":3,"file":"Reactable.d.ts","sourceRoot":"","sources":["../../../../src/components/reactable/Reactable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEnF,oBAAY,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,8DAA8D;IAC9D,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,qDAAqD;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAE5B,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,SAAS,CACnH,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACZ;IACA,MAAM;CAoBN"}
1
+ {"version":3,"file":"Reactable.d.ts","sourceRoot":"","sources":["../../../../src/components/reactable/Reactable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EAAC,kBAAkB,EAAE,eAAe,EAAE,uBAAuB,EAAC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAC,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAEnF,oBAAY,KAAK,CAAC,CAAC,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,IAAI;IAC3E,+EAA+E;IAC/E,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,8DAA8D;IAC9D,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;IAE/B,qCAAqC;IACrC,kBAAkB,EAAE,kBAAkB,CAAC;IAEvC,qDAAqD;IACrD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAErC,4CAA4C;IAC5C,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAE7D,6DAA6D;IAC7D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,uBAAuB,KAAK,IAAI,CAAC;IAE7D,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,6DAA6D;IAC7D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAEzC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IAE5B,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IAEnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,GAAG,CAAE,SAAQ,KAAK,CAAC,SAAS,CACnH,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CACZ;IACA,MAAM;CAoBN"}