orc-shared 1.7.0-dev.7 → 1.7.0-dev.8

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.
@@ -43,12 +43,12 @@ var defaultRendering = function defaultRendering(e, def, rowId, readOnly, transf
43
43
  titleValue: transformedValue
44
44
  }) : null;
45
45
  };
46
- var renderByType = function renderByType(e, def, rowId, readOnly, transformedValue) {
46
+ var renderByType = function renderByType(e, def, rowId, readOnly, transformedValue, index) {
47
47
  var _def$transform, _def$switch, _def$switch2, _def$transform2, _def$transform3, _def$switch3, _def$transform4, _def$transform5, _def$transform6, _def$transform7, _def$transform8;
48
48
  switch (def.type) {
49
49
  case "custom":
50
50
  {
51
- return [def.builder(e, readOnly, def) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
51
+ return [def.builder(e, readOnly, def, index) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
52
52
  }
53
53
  case "currency":
54
54
  {
@@ -151,9 +151,9 @@ var renderByType = function renderByType(e, def, rowId, readOnly, transformedVal
151
151
  return [defaultRendering(e, def, rowId, readOnly, transformedValue)];
152
152
  }
153
153
  };
154
- var renderByTypeInEditingMode = function renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue) {
155
- if ((def.editingBuilder || null) !== null) return [def.editingBuilder(e, readOnly, def) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
156
- return renderByType(e, def, rowId, readOnly, transformedValue);
154
+ var renderByTypeInEditingMode = function renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue, index) {
155
+ if ((def.editingBuilder || null) !== null) return [def.editingBuilder(e, readOnly, def, index) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
156
+ return renderByType(e, def, rowId, readOnly, transformedValue, index);
157
157
  };
158
158
  var buildHeaderAndRowFromConfig = exports.buildHeaderAndRowFromConfig = function buildHeaderAndRowFromConfig(columnDefinitions, elements, readOnly, keyField, showCustomClass) {
159
159
  if (readOnly === void 0) {
@@ -180,7 +180,7 @@ var buildHeaderAndRowFromConfig = exports.buildHeaderAndRowFromConfig = function
180
180
  className: def.className
181
181
  };
182
182
  });
183
- var rows = elements.map(function (e) {
183
+ var rows = elements.map(function (e, index) {
184
184
  var rowId = e[keyField];
185
185
  var elementClass = e.customClass || "";
186
186
  return {
@@ -195,7 +195,7 @@ var buildHeaderAndRowFromConfig = exports.buildHeaderAndRowFromConfig = function
195
195
  }).map(function (def) {
196
196
  var _def$transform9;
197
197
  var transformedValue = (_def$transform9 = def.transform) != null && _def$transform9.value ? def.transform.value(e[def.fieldName]) : e[def.fieldName];
198
- var _ref = readOnly ? renderByType(e, def, rowId, readOnly, transformedValue) : renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue),
198
+ var _ref = readOnly ? renderByType(e, def, rowId, readOnly, transformedValue, index) : renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue, index),
199
199
  _ref2 = _slicedToArray(_ref, 2),
200
200
  cellElement = _ref2[0],
201
201
  title = _ref2[1];
@@ -39,10 +39,15 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
39
39
  textTransform: "none",
40
40
  color: theme.palette.text.primary,
41
41
  borderRadius: 0,
42
- "&:hover, &:focus": {
42
+ "&:hover": {
43
43
  borderRadius: 0,
44
44
  boxShadow: "none",
45
45
  backgroundColor: theme.palette.primary.light
46
+ },
47
+ "&:focus, &:active, &.Mui-focusVisible": {
48
+ borderRadius: 0,
49
+ boxShadow: "none",
50
+ outline: "none"
46
51
  }
47
52
  },
48
53
  menu: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orc-shared",
3
- "version": "1.7.0-dev.7",
3
+ "version": "1.7.0-dev.8",
4
4
  "description": "Shared code for Orckestra applications",
5
5
  "main": "./src/index.js",
6
6
  "exports": {
@@ -18,10 +18,10 @@ const defaultRendering = (e, def, rowId, readOnly, transformedValue) => {
18
18
  ) : null;
19
19
  };
20
20
 
21
- const renderByType = (e, def, rowId, readOnly, transformedValue) => {
21
+ const renderByType = (e, def, rowId, readOnly, transformedValue, index) => {
22
22
  switch (def.type) {
23
23
  case "custom": {
24
- return [def.builder(e, readOnly, def) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
24
+ return [def.builder(e, readOnly, def, index) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
25
25
  }
26
26
 
27
27
  case "currency": {
@@ -130,11 +130,11 @@ const renderByType = (e, def, rowId, readOnly, transformedValue) => {
130
130
  }
131
131
  };
132
132
 
133
- const renderByTypeInEditingMode = (e, def, rowId, readOnly, transformedValue) => {
133
+ const renderByTypeInEditingMode = (e, def, rowId, readOnly, transformedValue, index) => {
134
134
  if ((def.editingBuilder || null) !== null)
135
- return [def.editingBuilder(e, readOnly, def) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
135
+ return [def.editingBuilder(e, readOnly, def, index) || defaultRendering(e, def, rowId, readOnly, transformedValue)];
136
136
 
137
- return renderByType(e, def, rowId, readOnly, transformedValue);
137
+ return renderByType(e, def, rowId, readOnly, transformedValue, index);
138
138
  };
139
139
 
140
140
  export const buildHeaderAndRowFromConfig = (
@@ -155,7 +155,7 @@ export const buildHeaderAndRowFromConfig = (
155
155
  className: def.className,
156
156
  }));
157
157
 
158
- const rows = elements.map(e => {
158
+ const rows = elements.map((e, index) => {
159
159
  const rowId = e[keyField];
160
160
  const elementClass = e.customClass || "";
161
161
  return {
@@ -168,8 +168,8 @@ export const buildHeaderAndRowFromConfig = (
168
168
  const transformedValue = def.transform?.value ? def.transform.value(e[def.fieldName]) : e[def.fieldName];
169
169
 
170
170
  const [cellElement, title] = readOnly
171
- ? renderByType(e, def, rowId, readOnly, transformedValue)
172
- : renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue);
171
+ ? renderByType(e, def, rowId, readOnly, transformedValue, index)
172
+ : renderByTypeInEditingMode(e, def, rowId, readOnly, transformedValue, index);
173
173
 
174
174
  return {
175
175
  title: def.tooltipable !== false ? (title === undefined ? cellElement : title) : null,
@@ -358,6 +358,59 @@ describe("table helpers buildHeaderAndRowFromConfig", () => {
358
358
  expect(rows[1].columns[0].title, "to equal", "44 a value from builder");
359
359
  });
360
360
 
361
+ it("validate builder inputs", () => {
362
+ const elements = [
363
+ {
364
+ id: "an_id1",
365
+ test: "A text row 1",
366
+ another: "another 1",
367
+ extraneous: "Don't show 1",
368
+ },
369
+ {
370
+ id: "an_id2",
371
+ test: "A text row 2",
372
+ another: "another 2",
373
+ extraneous: "Don't show 2",
374
+ },
375
+ ];
376
+
377
+ let counter = 0;
378
+
379
+ const builder = (e, readOnly, def, index) => {
380
+ if (e.id === "an_id1") {
381
+ expect(index, "to equal", 0);
382
+ } else {
383
+ expect(index, "to equal", 1);
384
+ }
385
+
386
+ expect(readOnly, "to be", false);
387
+
388
+ counter++;
389
+ };
390
+
391
+ const columnDef = [
392
+ {
393
+ type: "custom",
394
+ builder: builder,
395
+ label: messages.a_label,
396
+ },
397
+ {
398
+ type: "custom",
399
+ builder: builder,
400
+ label: messages.a_label,
401
+ },
402
+ {
403
+ type: "custom",
404
+ builder: builder,
405
+ label: messages.a_label,
406
+ },
407
+ ];
408
+
409
+ buildHeaderAndRowFromConfig(columnDef, elements, false);
410
+
411
+ expect(counter, "to equal", 6);
412
+ });
413
+
361
414
  it("build table rows as expected with a custom builder returning not valid component", () => {
362
415
  const columnDef = [
363
416
  {
@@ -1592,6 +1645,46 @@ describe("table helpers buildHeaderAndRowFromConfig", () => {
1592
1645
  expect(rows[1].columns[1].title, "to equal", "another 2 a value from builder");
1593
1646
  });
1594
1647
 
1648
+ it("validate editingBuilder inputs", () => {
1649
+ const elements = [
1650
+ {
1651
+ id: "an_id1",
1652
+ test: "A text row 1",
1653
+ another: "another 1",
1654
+ extraneous: "Don't show 1",
1655
+ },
1656
+ {
1657
+ id: "an_id2",
1658
+ test: "A text row 2",
1659
+ another: "another 2",
1660
+ extraneous: "Don't show 2",
1661
+ },
1662
+ ];
1663
+
1664
+ let counter = 0;
1665
+
1666
+ const editingBuilder = (e, readOnly, def, index) => {
1667
+ if (e.id === "an_id1") {
1668
+ expect(index, "to equal", 0);
1669
+ } else {
1670
+ expect(index, "to equal", 1);
1671
+ }
1672
+
1673
+ expect(readOnly, "to be", false);
1674
+
1675
+ counter++;
1676
+ };
1677
+
1678
+ const columnDef = [
1679
+ { fieldName: "test", label: messages.a_label, className: "aClassXYZ", editingBuilder: editingBuilder },
1680
+ { fieldName: "another", label: messages.another, editingBuilder: editingBuilder },
1681
+ ];
1682
+
1683
+ buildHeaderAndRowFromConfig(columnDef, elements, false);
1684
+
1685
+ expect(counter, "to equal", 4);
1686
+ });
1687
+
1595
1688
  it("build table headers and rows as expected when a column should not be visible", () => {
1596
1689
  const editingBuilder = (e, readOnly, def) =>
1597
1690
  def.fieldName === "test" ? null : e.another + " a value from builder";
@@ -12,11 +12,16 @@ const useStyles = makeStyles(theme => ({
12
12
  textTransform: "none",
13
13
  color: theme.palette.text.primary,
14
14
  borderRadius: 0,
15
- "&:hover, &:focus": {
15
+ "&:hover": {
16
16
  borderRadius: 0,
17
17
  boxShadow: "none",
18
18
  backgroundColor: theme.palette.primary.light,
19
19
  },
20
+ "&:focus, &:active, &.Mui-focusVisible": {
21
+ borderRadius: 0,
22
+ boxShadow: "none",
23
+ outline: "none",
24
+ },
20
25
  },
21
26
  menu: {
22
27
  border: `${theme.spacing(0.1)} solid ${theme.palette.grey.borders}`,