orc-shared 5.10.0-dev.4 → 5.10.0-dev.6

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.
@@ -14,6 +14,7 @@ var _TableProps = _interopRequireWildcard(require("./TableProps"));
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
  var _reactResizeDetector = _interopRequireDefault(require("react-resize-detector"));
16
16
  var _lodash = require("lodash");
17
+ var _useViewState3 = _interopRequireDefault(require("../../../hooks/useViewState"));
17
18
  var _excluded = ["deepPropsComparation", "dataRows", "isEditingMode"],
18
19
  _excluded2 = ["deepPropsComparation", "isEditingMode"];
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -318,16 +319,25 @@ var buildTableRows = function buildTableRows(rows, classes, customClasses, selec
318
319
  return mappedRows;
319
320
  };
320
321
  var FullTable = _react.default.forwardRef(function (props, ref) {
322
+ return props.saveScrollbarPosition ? /*#__PURE__*/_react.default.createElement(FullTableWithSavedScrollbar, _extends({}, props, {
323
+ ref: ref
324
+ })) : /*#__PURE__*/_react.default.createElement(DefaultFullTable, _extends({}, props, {
325
+ ref: ref
326
+ }));
327
+ });
328
+ var DefaultFullTable = _react.default.forwardRef(function (props, ref) {
321
329
  var scrollEvent = function scrollEvent(evt) {
322
330
  if (evt.target.scrollHeight - (evt.target.scrollTop + evt.target.offsetHeight) < 100 && props.dataRows.length === props.latestPage * props.pageLength) {
323
331
  props.scrollLoader(props.latestPage + 1);
324
332
  }
333
+ props.saveScrollBarPosition == null || props.saveScrollBarPosition(evt);
325
334
  };
326
335
  return /*#__PURE__*/_react.default.createElement("div", {
327
336
  key: "actualTable",
328
337
  className: (0, _classnames.default)(props.classes.tableContainer, props.customClasses.tableContainer),
329
338
  ref: ref,
330
- onScroll: scrollEvent
339
+ onScroll: scrollEvent,
340
+ "data-qa": "scrollable-table-div"
331
341
  }, /*#__PURE__*/_react.default.createElement(_reactResizeDetector.default, {
332
342
  onResize: props.onResize
333
343
  }), /*#__PURE__*/_react.default.createElement(_Table.default, {
@@ -346,6 +356,46 @@ var FullTable = _react.default.forwardRef(function (props, ref) {
346
356
  className: props.classes.placeholder
347
357
  }, props.placeholder));
348
358
  });
359
+ var FullTableWithSavedScrollbar = _react.default.forwardRef(__signature__(__signature__(function (props, ref) {
360
+ if (props.saveScrollbarPosition && !props.tableName) {
361
+ throw new Error("prop 'tableName' is required if 'saveScrollbarPosition' is set to true.");
362
+ }
363
+ var _useViewState = (0, _useViewState3.default)(props.tableName + "ScrollbarPosition"),
364
+ _useViewState2 = _slicedToArray(_useViewState, 2),
365
+ scrollbarViewState = _useViewState2[0],
366
+ updateScrollbarViewState = _useViewState2[1];
367
+ var _useState = (0, _react.useState)(scrollbarViewState.scrollBarPosition),
368
+ _useState2 = _slicedToArray(_useState, 2),
369
+ scrollbar = _useState2[0],
370
+ setScrollbarPosition = _useState2[1];
371
+ (0, _react.useEffect)(function () {
372
+ var handler = setTimeout(function () {
373
+ updateScrollbarViewState("scrollBarPosition", scrollbar);
374
+ }, 500);
375
+ return function () {
376
+ clearTimeout(handler);
377
+ };
378
+ },
379
+ // eslint-disable-next-line react-hooks/exhaustive-deps
380
+ [scrollbar]);
381
+ var saveScrollBarPosition = function saveScrollBarPosition(evt) {
382
+ setScrollbarPosition(evt.target.scrollTop);
383
+ };
384
+ (0, _react.useEffect)(function () {
385
+ if (scrollbarViewState.scrollBarPosition > 0) {
386
+ ref.current.scrollTop = scrollbarViewState.scrollBarPosition;
387
+ }
388
+ // eslint-disable-next-line react-hooks/exhaustive-deps
389
+ }, []);
390
+ return /*#__PURE__*/_react.default.createElement(DefaultFullTable, _extends({}, props, {
391
+ ref: ref,
392
+ saveScrollBarPosition: saveScrollBarPosition
393
+ }));
394
+ }, "useViewState{[scrollbarViewState, updateScrollbarViewState]}\nuseState{[scrollbar, setScrollbarPosition](scrollbarViewState.scrollBarPosition)}\nuseEffect{}\nuseEffect{}", function () {
395
+ return [_useViewState3.default];
396
+ }), "useViewState{[scrollbarViewState, updateScrollbarViewState]}\nuseState{[scrollbar, setScrollbarPosition](scrollbarViewState.scrollBarPosition)}\nuseEffect{}\nuseEffect{}", function () {
397
+ return [_useViewState3.default];
398
+ }));
349
399
  var Table = function Table(_ref4) {
350
400
  var tableInfo = _ref4.tableInfo,
351
401
  headers = _ref4.headers,
@@ -369,6 +419,8 @@ var Table = function Table(_ref4) {
369
419
  var selectedRows = (tableProps == null ? void 0 : tableProps.get(_TableProps.default.propNames.selectedRows)) || null;
370
420
  var selectedRowsChanged = (tableProps == null ? void 0 : tableProps.get(_TableProps.default.propNames.selectedRowsChanged)) || null;
371
421
  var constrained = (tableProps == null ? void 0 : tableProps.get(_TableProps.default.propNames.constrained)) || false;
422
+ var tableName = (tableProps == null ? void 0 : tableProps.get(_TableProps.default.propNames.tableName)) || null;
423
+ var saveScrollbarPosition = (tableProps == null ? void 0 : tableProps.get(_TableProps.default.propNames.saveScrollbarPosition)) || false;
372
424
  customClasses["tableHeader"] = (tableProps == null ? void 0 : tableProps.getStyle(_TableProps.default.ruleNames.tableHeader)) || null;
373
425
  customClasses["tableRow"] = (tableProps == null ? void 0 : tableProps.getStyle(_TableProps.default.ruleNames.tableRow)) || null;
374
426
  customClasses["tableCell"] = (tableProps == null ? void 0 : tableProps.getStyle(_TableProps.default.ruleNames.tableCell)) || null;
@@ -378,17 +430,17 @@ var Table = function Table(_ref4) {
378
430
  customClasses["table"] = (tableProps == null ? void 0 : tableProps.getStyle(_TableProps.default.ruleNames.table)) || null;
379
431
  if (selectedRows && !selectedRowsChanged || !selectedRows && selectedRowsChanged) throw new Error("Both 'selectedRows' and 'selectedRowsChanged' need to be defined if one of them is.");
380
432
  var refScrolled = (0, _react.useRef)();
381
- var _useState = (0, _react.useState)(0),
382
- _useState2 = _slicedToArray(_useState, 2),
383
- scrolled = _useState2[0],
384
- setScrolled = _useState2[1];
385
- var _useState3 = (0, _react.useState)({
433
+ var _useState3 = (0, _react.useState)(0),
434
+ _useState4 = _slicedToArray(_useState3, 2),
435
+ scrolled = _useState4[0],
436
+ setScrolled = _useState4[1];
437
+ var _useState5 = (0, _react.useState)({
386
438
  width: 0,
387
439
  height: 0
388
440
  }),
389
- _useState4 = _slicedToArray(_useState3, 2),
390
- tableSize = _useState4[0],
391
- setTableSize = _useState4[1];
441
+ _useState6 = _slicedToArray(_useState5, 2),
442
+ tableSize = _useState6[0],
443
+ setTableSize = _useState6[1];
392
444
  var _useTableSelection = (0, _useTableSelection3.useTableSelection)(rows, selectedRows, selectedRowsChanged),
393
445
  _useTableSelection2 = _slicedToArray(_useTableSelection, 3),
394
446
  selectedNumber = _useTableSelection2[0],
@@ -447,7 +499,9 @@ var Table = function Table(_ref4) {
447
499
  placeholder: placeholder,
448
500
  deepPropsComparation: deepPropsComparation,
449
501
  isEditingMode: isEditingMode,
450
- context: context
502
+ context: context,
503
+ tableName: tableName,
504
+ saveScrollbarPosition: saveScrollbarPosition
451
505
  }));
452
506
  };
453
507
  __signature__(Table, "useRef{refScrolled}\nuseState{[scrolled, setScrolled](0)}\nuseState{[tableSize, setTableSize]({ width: 0, height: 0 })}\nuseTableSelection{[selectedNumber, tableSelectionStatus, selectionMethods]}\nuseStyles{classes}\nuseEffect{}\nuseCallback{onResize}", function () {
@@ -487,6 +541,8 @@ var _default3 = exports.default = _default2;
487
541
  reactHotLoader.register(buildTableHeaders, "buildTableHeaders", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
488
542
  reactHotLoader.register(buildTableRows, "buildTableRows", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
489
543
  reactHotLoader.register(FullTable, "FullTable", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
544
+ reactHotLoader.register(DefaultFullTable, "DefaultFullTable", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
545
+ reactHotLoader.register(FullTableWithSavedScrollbar, "FullTableWithSavedScrollbar", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
490
546
  reactHotLoader.register(Table, "Table", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
491
547
  reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
492
548
  })();
@@ -521,6 +577,8 @@ var _default3 = exports.default = _default2;
521
577
  reactHotLoader.register(buildTableHeaders, "buildTableHeaders", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
522
578
  reactHotLoader.register(buildTableRows, "buildTableRows", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
523
579
  reactHotLoader.register(FullTable, "FullTable", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
580
+ reactHotLoader.register(DefaultFullTable, "DefaultFullTable", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
581
+ reactHotLoader.register(FullTableWithSavedScrollbar, "FullTableWithSavedScrollbar", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
524
582
  reactHotLoader.register(Table, "Table", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
525
583
  reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/components/MaterialUI/DataDisplay/Table.js");
526
584
  })();
@@ -37,6 +37,8 @@ var TableProps = /*#__PURE__*/function (_ComponentProps) {
37
37
  _this.componentProps.set(_this.constructor.propNames.selectedRows, null);
38
38
  _this.componentProps.set(_this.constructor.propNames.selectedRowsChanged, null);
39
39
  _this.componentProps.set(_this.constructor.propNames.constrained, false);
40
+ _this.componentProps.set(_this.constructor.propNames.tableName, null);
41
+ _this.componentProps.set(_this.constructor.propNames.saveScrollbarPosition, null);
40
42
  _this.componentClasses.set(_this.constructor.ruleNames.tableHeader, null);
41
43
  _this.componentClasses.set(_this.constructor.ruleNames.tableRow, null);
42
44
  _this.componentClasses.set(_this.constructor.ruleNames.tableCell, null);
@@ -66,7 +68,9 @@ _defineProperty(TableProps, "propNames", {
66
68
  isEditingMode: "isEditingMode",
67
69
  selectedRows: "selectedRows",
68
70
  selectedRowsChanged: "selectedRowsChanged",
69
- constrained: "constrained"
71
+ constrained: "constrained",
72
+ tableName: "tableName",
73
+ saveScrollbarPosition: "saveScrollbarPosition"
70
74
  });
71
75
  _defineProperty(TableProps, "ruleNames", {
72
76
  tableHeader: "tableHeader",
package/dist/constants.js CHANGED
@@ -33,7 +33,8 @@ var platformRoles = exports.platformRoles = {
33
33
  Administrator: "Administrator",
34
34
  Editor: "Editor",
35
35
  Reader: "Reader",
36
- Recipient: "Recipient"
36
+ Recipient: "Recipient",
37
+ PasswordReset: "PasswordReset"
37
38
  };
38
39
  var roleGroups = exports.roleGroups = {
39
40
  Products: "Products",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "5.10.0-dev.4",
3
+ "version": "5.10.0-dev.6",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -10,6 +10,7 @@ import TableProps, { isTableProps } from "./TableProps";
10
10
  import classNames from "classnames";
11
11
  import ResizeDetector from "react-resize-detector";
12
12
  import { isEqual } from "lodash";
13
+ import useViewState from "../../../hooks/useViewState";
13
14
 
14
15
  export const useStyles = makeStyles(theme => ({
15
16
  container: {
@@ -303,6 +304,14 @@ const buildTableRows = (
303
304
  };
304
305
 
305
306
  const FullTable = React.forwardRef((props, ref) => {
307
+ return props.saveScrollbarPosition ? (
308
+ <FullTableWithSavedScrollbar {...props} ref={ref} />
309
+ ) : (
310
+ <DefaultFullTable {...props} ref={ref} />
311
+ );
312
+ });
313
+
314
+ const DefaultFullTable = React.forwardRef((props, ref) => {
306
315
  const scrollEvent = evt => {
307
316
  if (
308
317
  evt.target.scrollHeight - (evt.target.scrollTop + evt.target.offsetHeight) < 100 &&
@@ -310,6 +319,8 @@ const FullTable = React.forwardRef((props, ref) => {
310
319
  ) {
311
320
  props.scrollLoader(props.latestPage + 1);
312
321
  }
322
+
323
+ props.saveScrollBarPosition?.(evt);
313
324
  };
314
325
 
315
326
  return (
@@ -318,6 +329,7 @@ const FullTable = React.forwardRef((props, ref) => {
318
329
  className={classNames(props.classes.tableContainer, props.customClasses.tableContainer)}
319
330
  ref={ref}
320
331
  onScroll={scrollEvent}
332
+ data-qa="scrollable-table-div"
321
333
  >
322
334
  <ResizeDetector onResize={props.onResize} />
323
335
  <TableMui
@@ -345,6 +357,41 @@ const FullTable = React.forwardRef((props, ref) => {
345
357
  );
346
358
  });
347
359
 
360
+ const FullTableWithSavedScrollbar = React.forwardRef((props, ref) => {
361
+ if (props.saveScrollbarPosition && !props.tableName) {
362
+ throw new Error("prop 'tableName' is required if 'saveScrollbarPosition' is set to true.");
363
+ }
364
+
365
+ const [scrollbarViewState, updateScrollbarViewState] = useViewState(props.tableName + "ScrollbarPosition");
366
+ const [scrollbar, setScrollbarPosition] = useState(scrollbarViewState.scrollBarPosition);
367
+
368
+ useEffect(
369
+ () => {
370
+ const handler = setTimeout(() => {
371
+ updateScrollbarViewState("scrollBarPosition", scrollbar);
372
+ }, 500);
373
+ return () => {
374
+ clearTimeout(handler);
375
+ };
376
+ },
377
+ // eslint-disable-next-line react-hooks/exhaustive-deps
378
+ [scrollbar],
379
+ );
380
+
381
+ const saveScrollBarPosition = evt => {
382
+ setScrollbarPosition(evt.target.scrollTop);
383
+ };
384
+
385
+ useEffect(() => {
386
+ if (scrollbarViewState.scrollBarPosition > 0) {
387
+ ref.current.scrollTop = scrollbarViewState.scrollBarPosition;
388
+ }
389
+ // eslint-disable-next-line react-hooks/exhaustive-deps
390
+ }, []);
391
+
392
+ return <DefaultFullTable {...props} ref={ref} saveScrollBarPosition={saveScrollBarPosition} />;
393
+ });
394
+
348
395
  const Table = ({
349
396
  tableInfo,
350
397
  headers,
@@ -370,6 +417,8 @@ const Table = ({
370
417
  const selectedRows = tableProps?.get(TableProps.propNames.selectedRows) || null;
371
418
  const selectedRowsChanged = tableProps?.get(TableProps.propNames.selectedRowsChanged) || null;
372
419
  const constrained = tableProps?.get(TableProps.propNames.constrained) || false;
420
+ const tableName = tableProps?.get(TableProps.propNames.tableName) || null;
421
+ const saveScrollbarPosition = tableProps?.get(TableProps.propNames.saveScrollbarPosition) || false;
373
422
 
374
423
  customClasses["tableHeader"] = tableProps?.getStyle(TableProps.ruleNames.tableHeader) || null;
375
424
  customClasses["tableRow"] = tableProps?.getStyle(TableProps.ruleNames.tableRow) || null;
@@ -467,6 +516,8 @@ const Table = ({
467
516
  deepPropsComparation={deepPropsComparation}
468
517
  isEditingMode={isEditingMode}
469
518
  context={context}
519
+ tableName={tableName}
520
+ saveScrollbarPosition={saveScrollbarPosition}
470
521
  />
471
522
  </TableContainer>
472
523
  );
@@ -19,6 +19,8 @@ import ResizeDetector from "react-resize-detector";
19
19
  import CheckboxMui from "../Inputs/Checkbox";
20
20
  import { cloneDeep } from "lodash";
21
21
  import TooltippedTypography from "./TooltippedElements/TooltippedTypography";
22
+ import Immutable from "immutable";
23
+ import { TestWrapper } from "../../../utils/testUtils";
22
24
 
23
25
  const TestComp = ({ classToTest, styleProps }) => {
24
26
  const classes = useStyles({ ...styleProps });
@@ -507,6 +509,22 @@ describe("Table", () => {
507
509
  { fieldName: "a2", label: headerLabels.column2 },
508
510
  ];
509
511
 
512
+ let store, state;
513
+
514
+ beforeEach(() => {
515
+ state = Immutable.fromJS({
516
+ modules: {
517
+ tree: {},
518
+ },
519
+ view: {},
520
+ });
521
+ store = {
522
+ subscribe: () => {},
523
+ getState: () => state,
524
+ dispatch: sinon.spy().named("dispatch"),
525
+ };
526
+ });
527
+
510
528
  it("Fails if tableProps has wrong type", () => {
511
529
  ignoreConsoleError(() => {
512
530
  const component = <Table rows={[]} headers={[]} tableProps="Wrong type" />;
@@ -1113,4 +1131,117 @@ describe("Table", () => {
1113
1131
 
1114
1132
  expect(style.customClass, "to equal", "specialClass");
1115
1133
  });
1134
+
1135
+ it("Table throws if saveScrollbar is true but tableName is falsy", () => {
1136
+ const { headers, rows } = buildHeaderAndRowFromConfig(config, elements);
1137
+
1138
+ const tableProps = new TableProps();
1139
+
1140
+ tableProps.set(TableProps.propNames.tableName, null);
1141
+ tableProps.set(TableProps.propNames.saveScrollbarPosition, true);
1142
+
1143
+ ignoreConsoleError(() => {
1144
+ const component = <Table rows={rows} headers={headers} tableProps={tableProps} />;
1145
+ expect(() => mount(component), "to throw a", Error).then(error => {
1146
+ expect(error, "to have message", "prop 'tableName' is required if 'saveScrollbarPosition' is set to true.");
1147
+ });
1148
+ });
1149
+ });
1150
+
1151
+ it("handle scrolling event with save ", () => {
1152
+ const { headers, rows } = buildHeaderAndRowFromConfig(config, elements);
1153
+
1154
+ const tableProps = new TableProps();
1155
+
1156
+ tableProps.set(TableProps.propNames.selectMode, true);
1157
+ tableProps.set(TableProps.propNames.tableName, "test");
1158
+ tableProps.set(TableProps.propNames.saveScrollbarPosition, true);
1159
+
1160
+ const scrollLoader = sinon.spy().named("scrollLoader");
1161
+
1162
+ const component = (
1163
+ <TestWrapper provider={{ store }}>
1164
+ <Table
1165
+ rows={rows}
1166
+ headers={headers}
1167
+ pageLength={2}
1168
+ latestPage={1}
1169
+ tableProps={tableProps}
1170
+ scrollLoader={scrollLoader}
1171
+ />
1172
+ </TestWrapper>
1173
+ );
1174
+
1175
+ const mountedComponent = mount(component);
1176
+
1177
+ const scrollEvent = document.createEvent("MouseEvents");
1178
+ scrollEvent.initEvent("scroll", true, false);
1179
+
1180
+ const table = mountedComponent.find(TableMui);
1181
+
1182
+ table.simulate("scroll", {
1183
+ target: { scrollHeight: 1000, scrollTop: 40, offsetHeight: 100 },
1184
+ });
1185
+
1186
+ expect(scrollLoader, "was not called");
1187
+
1188
+ table.simulate("scroll", {
1189
+ target: { scrollHeight: 1000, scrollTop: 850, offsetHeight: 100 },
1190
+ });
1191
+
1192
+ return expect(scrollLoader, "to have calls satisfying", [{ args: [2] }])
1193
+ .then(() => new Promise(r => setTimeout(r, 600)))
1194
+ .then(() =>
1195
+ expect(store.dispatch, "to have calls satisfying", [
1196
+ {
1197
+ args: [
1198
+ {
1199
+ type: "VIEW_STATE_SET_FIELD",
1200
+ payload: {
1201
+ name: "testScrollbarPosition",
1202
+ field: "scrollBarPosition",
1203
+ value: 850,
1204
+ },
1205
+ },
1206
+ ],
1207
+ },
1208
+ ]),
1209
+ );
1210
+ });
1211
+
1212
+ it("should initialize scrollbar to saved state", () => {
1213
+ const { headers, rows } = buildHeaderAndRowFromConfig(config, elements);
1214
+
1215
+ state = state.setIn(
1216
+ ["view", "testScrollbarPosition"],
1217
+ Immutable.fromJS({
1218
+ scrollBarPosition: 800,
1219
+ }),
1220
+ );
1221
+
1222
+ const tableProps = new TableProps();
1223
+
1224
+ tableProps.set(TableProps.propNames.selectMode, true);
1225
+ tableProps.set(TableProps.propNames.tableName, "test");
1226
+ tableProps.set(TableProps.propNames.saveScrollbarPosition, true);
1227
+
1228
+ const scrollLoader = sinon.spy().named("scrollLoader");
1229
+
1230
+ const component = (
1231
+ <TestWrapper provider={{ store }}>
1232
+ <Table
1233
+ rows={rows}
1234
+ headers={headers}
1235
+ pageLength={2}
1236
+ latestPage={1}
1237
+ tableProps={tableProps}
1238
+ scrollLoader={scrollLoader}
1239
+ />
1240
+ </TestWrapper>
1241
+ );
1242
+
1243
+ const mountedComponent = mount(component);
1244
+ const scrollableDiv = mountedComponent.find({ "data-qa": "scrollable-table-div" });
1245
+ expect(scrollableDiv?.getElement()?.ref?.current?.scrollTop, "to equal", 800);
1246
+ });
1116
1247
  });
@@ -12,6 +12,8 @@ class TableProps extends ComponentProps {
12
12
  selectedRows: "selectedRows",
13
13
  selectedRowsChanged: "selectedRowsChanged",
14
14
  constrained: "constrained",
15
+ tableName: "tableName",
16
+ saveScrollbarPosition: "saveScrollbarPosition",
15
17
  };
16
18
 
17
19
  static ruleNames = {
@@ -37,6 +39,8 @@ class TableProps extends ComponentProps {
37
39
  this.componentProps.set(this.constructor.propNames.selectedRows, null);
38
40
  this.componentProps.set(this.constructor.propNames.selectedRowsChanged, null);
39
41
  this.componentProps.set(this.constructor.propNames.constrained, false);
42
+ this.componentProps.set(this.constructor.propNames.tableName, null);
43
+ this.componentProps.set(this.constructor.propNames.saveScrollbarPosition, null);
40
44
 
41
45
  this.componentClasses.set(this.constructor.ruleNames.tableHeader, null);
42
46
  this.componentClasses.set(this.constructor.ruleNames.tableRow, null);
@@ -30,6 +30,8 @@ describe("TableProps Props", () => {
30
30
  "selectedRows",
31
31
  "selectedRowsChanged",
32
32
  "constrained",
33
+ "tableName",
34
+ "saveScrollbarPosition",
33
35
  ];
34
36
 
35
37
  const ruleNames = ["tableHeader", "tableRow", "tableCell", "headerCell", "tableContainer", "container", "table"];
package/src/constants.js CHANGED
@@ -19,6 +19,7 @@ export const platformRoles = {
19
19
  Editor: "Editor",
20
20
  Reader: "Reader",
21
21
  Recipient: "Recipient",
22
+ PasswordReset: "PasswordReset",
22
23
  };
23
24
 
24
25
  export const roleGroups = {