orc-shared 5.99.0-dev.1 → 5.99.0-dev.10

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 (102) hide show
  1. package/dist/components/AppFrame/About.js +13 -13
  2. package/dist/components/AppFrame/Anchor.js +7 -7
  3. package/dist/components/AppFrame/AppFrame.js +3 -3
  4. package/dist/components/AppFrame/Help.js +4 -4
  5. package/dist/components/AppFrame/MenuItem.js +14 -14
  6. package/dist/components/AppFrame/Preferences.js +14 -14
  7. package/dist/components/AppFrame/Sidebar.js +6 -6
  8. package/dist/components/AppFrame/Topbar.js +6 -6
  9. package/dist/components/DropMenu/Menu.js +9 -9
  10. package/dist/components/Form/Field.js +4 -4
  11. package/dist/components/Form/Inputs/Button.js +2 -2
  12. package/dist/components/Form/Inputs/MultiSelector.js +67 -12
  13. package/dist/components/Form/Inputs/Selector.js +13 -10
  14. package/dist/components/InternetExplorerWarningMessage.js +15 -15
  15. package/dist/components/MaterialUI/DataDisplay/Modal.js +3 -3
  16. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/Placeholder.js +6 -6
  17. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/StepperModal.js +4 -4
  18. package/dist/components/MaterialUI/DataDisplay/PredefinedElements/TableInfoBar.js +1 -1
  19. package/dist/components/MaterialUI/DataDisplay/SelectionList.js +1 -1
  20. package/dist/components/MaterialUI/DataDisplay/TransferList.js +1 -1
  21. package/dist/components/MaterialUI/Inputs/CheckboxGroup.js +1 -1
  22. package/dist/components/MaterialUI/Inputs/DatePicker.js +1 -1
  23. package/dist/components/MaterialUI/Inputs/InputBase.js +209 -24
  24. package/dist/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +1 -1
  25. package/dist/components/MaterialUI/Inputs/Select.js +170 -114
  26. package/dist/components/MaterialUI/Inputs/SelectProps.js +10 -2
  27. package/dist/components/MaterialUI/Inputs/Switch.js +1 -1
  28. package/dist/components/MaterialUI/ScopeSelector/ScopeSelector.js +1 -1
  29. package/dist/components/MaterialUI/ScopeSelector/TreeItem.js +27 -42
  30. package/dist/components/MaterialUI/Surfaces/Paper.js +1 -1
  31. package/dist/components/MaterialUI/muiThemes.js +1 -1
  32. package/dist/components/Routing/SegmentPage.js +9 -7
  33. package/dist/components/Scope/ScopeNode.js +7 -9
  34. package/dist/components/Sidepanel.js +29 -27
  35. package/dist/components/Spritesheet.js +17 -15
  36. package/dist/components/ToastList.js +11 -11
  37. package/dist/components/Treeview/Branch.js +9 -9
  38. package/dist/components/Treeview/Label.js +8 -8
  39. package/dist/components/Treeview/Leaf.js +2 -2
  40. package/dist/components/Treeview/settings.js +10 -1
  41. package/dist/hocs/withScrollBox.js +3 -8
  42. package/dist/hooks/useWindowSize.js +88 -0
  43. package/dist/sharedMessages.js +8 -0
  44. package/package.json +1 -1
  45. package/src/components/AppFrame/About.js +13 -13
  46. package/src/components/AppFrame/Anchor.js +7 -7
  47. package/src/components/AppFrame/AppFrame.js +3 -3
  48. package/src/components/AppFrame/Help.js +4 -4
  49. package/src/components/AppFrame/MenuItem.js +14 -14
  50. package/src/components/AppFrame/Preferences.js +14 -14
  51. package/src/components/AppFrame/Sidebar.js +6 -6
  52. package/src/components/AppFrame/Topbar.js +6 -6
  53. package/src/components/DropMenu/Menu.js +9 -9
  54. package/src/components/Form/Field.js +4 -4
  55. package/src/components/Form/Inputs/Button.js +2 -2
  56. package/src/components/Form/Inputs/MultiSelector.js +55 -5
  57. package/src/components/Form/Inputs/MultiSelector.test.js +259 -39
  58. package/src/components/Form/Inputs/Selector.js +12 -4
  59. package/src/components/Form/Inputs/Selector.test.js +27 -12
  60. package/src/components/InternetExplorerWarningMessage.js +15 -15
  61. package/src/components/MaterialUI/DataDisplay/Modal.js +3 -3
  62. package/src/components/MaterialUI/DataDisplay/PredefinedElements/Placeholder.js +6 -6
  63. package/src/components/MaterialUI/DataDisplay/PredefinedElements/StepperModal.js +3 -3
  64. package/src/components/MaterialUI/DataDisplay/PredefinedElements/StepperModal.test.js +74 -0
  65. package/src/components/MaterialUI/DataDisplay/PredefinedElements/TableInfoBar.js +1 -1
  66. package/src/components/MaterialUI/DataDisplay/SelectionList.js +1 -1
  67. package/src/components/MaterialUI/DataDisplay/TransferList.js +1 -1
  68. package/src/components/MaterialUI/Inputs/CheckboxGroup.js +1 -1
  69. package/src/components/MaterialUI/Inputs/DatePicker.js +1 -1
  70. package/src/components/MaterialUI/Inputs/InputBase.js +209 -8
  71. package/src/components/MaterialUI/Inputs/InputBase.test.js +481 -3
  72. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.js +1 -1
  73. package/src/components/MaterialUI/Inputs/PredefinedElements/SearchControl.test.js +1 -1
  74. package/src/components/MaterialUI/Inputs/Select.js +140 -87
  75. package/src/components/MaterialUI/Inputs/Select.test.js +170 -30
  76. package/src/components/MaterialUI/Inputs/SelectProps.js +9 -1
  77. package/src/components/MaterialUI/Inputs/SelectProps.test.js +8 -0
  78. package/src/components/MaterialUI/Inputs/Switch.js +1 -1
  79. package/src/components/MaterialUI/ScopeSelector/ScopeSelector.js +1 -2
  80. package/src/components/MaterialUI/ScopeSelector/TreeItem.js +8 -31
  81. package/src/components/MaterialUI/Surfaces/Paper.js +1 -1
  82. package/src/components/MaterialUI/muiThemes.js +1 -1
  83. package/src/components/Routing/SegmentPage.js +7 -7
  84. package/src/components/Scope/ScopeNode.js +7 -8
  85. package/src/components/Sidepanel.js +7 -7
  86. package/src/components/Sidepanel.test.js +9 -4
  87. package/src/components/Spritesheet.js +5 -5
  88. package/src/components/ToastList.js +11 -11
  89. package/src/components/Treeview/Branch.js +10 -10
  90. package/src/components/Treeview/Branch.test.js +2 -40
  91. package/src/components/Treeview/Label.js +9 -9
  92. package/src/components/Treeview/Label.test.js +13 -3
  93. package/src/components/Treeview/Leaf.js +3 -3
  94. package/src/components/Treeview/Leaf.test.js +1 -20
  95. package/src/components/Treeview/settings.js +3 -0
  96. package/src/hocs/withScrollBox.js +2 -8
  97. package/src/hooks/useMultipleFieldEditState.test.js +0 -1
  98. package/src/hooks/useWindowSize.js +39 -0
  99. package/src/hooks/useWindowSize.test.js +68 -0
  100. package/src/sharedMessages.js +8 -0
  101. package/src/translations/en-US.json +2 -0
  102. package/src/translations/fr-CA.json +2 -0
@@ -9,8 +9,8 @@ const useStyles = makeStyles(theme => ({
9
9
  block: props => ({
10
10
  display: "block",
11
11
  position: "relative",
12
- padding: "0 10px",
13
- marginBottom: "35px",
12
+ padding: theme.spacing(0, 1),
13
+ marginBottom: theme.spacing(3.5),
14
14
  textDecoration: "none",
15
15
  cursor: "pointer",
16
16
  color: props.active ? theme.palette.primary.light : theme.palette.text.hint,
@@ -24,10 +24,10 @@ const useStyles = makeStyles(theme => ({
24
24
 
25
25
  return {
26
26
  borderRadius: "50%",
27
- border: `4px solid ${toastColor}`,
27
+ border: `${theme.spacing(0.4)} solid ${toastColor}`,
28
28
  position: "absolute",
29
29
  top: 0,
30
- left: "27px",
30
+ left: theme.spacing(2.7),
31
31
  visibility: "hidden",
32
32
 
33
33
  "&.show": {
@@ -41,15 +41,15 @@ const useStyles = makeStyles(theme => ({
41
41
  return {
42
42
  position: "absolute",
43
43
  zIndex: 10000,
44
- top: "calc(-10px - 0.7em)",
45
- left: "22px",
44
+ top: `calc(${theme.spacing(-1)} - 0.7em)`,
45
+ left: theme.spacing(2.2),
46
46
  width: "max-content",
47
- borderRadius: "5px",
48
- padding: "10px 15px",
49
- boxShadow: "0 2px 4px 0 rgba(0, 0, 0, 0.5)",
47
+ borderRadius: theme.spacing(0.5),
48
+ padding: theme.spacing(1, 1.5),
49
+ boxShadow: `${theme.spacing(0, 0.2, 0.4, 0)} rgba(0, 0, 0, 0.5)`,
50
50
  color: theme.palette.grey.light,
51
51
  backgroundColor: toastColor,
52
- fontSize: "11px",
52
+ fontSize: theme.spacing(1.1),
53
53
  fontWeight: "bold",
54
54
  lineHeight: 1.2,
55
55
  transition: `transform 200ms cubic-bezier(0.68, -0.55, 0.27, 1.55), opacity 100ms 50ms ease-out`,
@@ -59,7 +59,7 @@ const useStyles = makeStyles(theme => ({
59
59
  "&::before": {
60
60
  content: "",
61
61
  position: "absolute",
62
- top: "calc(10px + 0.2em)",
62
+ top: `calc(${theme.spacing(1)} + 0.2em)`,
63
63
  left: "-0.9em",
64
64
  border: "solid transparent",
65
65
  borderWidth: "0.4em 0.9em 0.4em 0",
@@ -73,16 +73,16 @@ const useStyles = makeStyles(theme => ({
73
73
  };
74
74
  },
75
75
  menuIcon: props => ({
76
- fontSize: "24px",
76
+ fontSize: theme.spacing(2.4),
77
77
  verticalAlign: "middle",
78
78
  color: props.active ? theme.palette.primary.light : theme.palette.text.hint,
79
79
  }),
80
80
  label: props => ({
81
81
  fontFamily: theme.typography.button.fontFamily,
82
- fontSize: "13px",
82
+ fontSize: theme.spacing(1.3),
83
83
  verticalAlign: "middle",
84
84
  textTransform: "uppercase",
85
- paddingLeft: "10px",
85
+ paddingLeft: theme.spacing(1),
86
86
  transition: "opacity 0.3s ease-out",
87
87
  opacity: props.showLabel ? 1 : 0,
88
88
  }),
@@ -27,19 +27,19 @@ const useStyles = makeStyles(theme => ({
27
27
  backgroundColor: "#f7f7f7",
28
28
  borderLeft: `1px solid ${theme.palette.grey.borders}`,
29
29
  borderTop: `1px solid ${theme.palette.grey.borders}`,
30
- borderTopLeftRadius: "5px",
31
- top: "40px",
32
- boxShadow: "-3px 2px 5px 0px rgba(0, 0, 0, 0.2)",
30
+ borderTopLeftRadius: theme.spacing(0.5),
31
+ top: theme.spacing(4),
32
+ boxShadow: `${theme.spacing(-0.3, 0.2, 0.5, 0)} rgba(0, 0, 0, 0.2)`,
33
33
  zIndex: 9998,
34
34
  transition: "right 400ms ease-out",
35
35
  },
36
36
  header: {
37
37
  flex: "0 0 auto",
38
38
  borderBottom: `1px solid ${theme.palette.grey.borders}`,
39
- borderTopLeftRadius: "5px",
40
- padding: "15px 30px",
41
- height: "18px",
42
- fontSize: "15px",
39
+ borderTopLeftRadius: theme.spacing(0.5),
40
+ padding: theme.spacing(1.5, 3),
41
+ height: theme.spacing(1.8),
42
+ fontSize: theme.spacing(1.5),
43
43
  fontFamily: theme.typography.button.fontFamily,
44
44
  textTransform: "uppercase",
45
45
  color: theme.palette.primary.main,
@@ -49,8 +49,8 @@ const useStyles = makeStyles(theme => ({
49
49
  flex: "1 1 auto",
50
50
  display: "flex",
51
51
  flexDirection: "column",
52
- padding: "20px 30px",
53
- fontSize: "12px",
52
+ padding: theme.spacing(2, 3),
53
+ fontSize: theme.spacing(1.2),
54
54
  },
55
55
  footer: {
56
56
  flex: "0 0 auto",
@@ -59,12 +59,12 @@ const useStyles = makeStyles(theme => ({
59
59
  justifyContent: "flex-end",
60
60
  backgroundColor: "#ffffff",
61
61
  borderTop: `1px solid ${theme.palette.grey.borders}`,
62
- paddingRight: "10px",
63
- height: "60px",
62
+ paddingRight: theme.spacing(1),
63
+ height: theme.spacing(6),
64
64
  },
65
65
  prefButton: {
66
- marginRight: "20px",
67
- minWidth: "110px",
66
+ marginRight: theme.spacing(2),
67
+ minWidth: theme.spacing(11),
68
68
  },
69
69
  wrapper: {
70
70
  display: "flex",
@@ -139,7 +139,7 @@ export const Preferences = () => {
139
139
  const { show, save, clear, languageOptions, languageSelectProps, applicationOptions, applicationSelectProps } =
140
140
  usePreferenceSetup();
141
141
  return (
142
- <Sidepanel in={show} width="380px" timeout={400} className={classes.prefPanel}>
142
+ <Sidepanel in={show} widthSpacing={38} timeout={400} className={classes.prefPanel}>
143
143
  <Wrapper onClickOutside={clickOutsideHandler}>
144
144
  <div className={classes.header}>
145
145
  <FormattedMessage {...sharedMessages.preferences} />
@@ -9,9 +9,9 @@ import { getScopeModuleInformationSelector } from "../../selectors/modules";
9
9
  const useStyles = makeStyles(theme => ({
10
10
  bar: {
11
11
  boxSizing: "border-box",
12
- paddingTop: "60px",
13
- height: "calc(100% - 40px)",
14
- width: "200px",
12
+ paddingTop: theme.spacing(6),
13
+ height: `calc(100% - ${theme.spacing(4)})`,
14
+ width: theme.spacing(20),
15
15
  display: "flex",
16
16
  flexDirection: "column",
17
17
  justifyContent: "flex-start",
@@ -19,9 +19,9 @@ const useStyles = makeStyles(theme => ({
19
19
  },
20
20
  logoSvg: {
21
21
  flex: "0 0 auto",
22
- margin: "auto 12.5px 7px",
23
- height: "25px",
24
- width: "25px",
22
+ margin: `auto ${theme.spacing(1.25, 0.7)}`,
23
+ height: theme.spacing(2.5),
24
+ width: theme.spacing(2.5),
25
25
  fillRule: "evenodd",
26
26
  clipRule: "evenodd",
27
27
  fill: "#666666",
@@ -17,7 +17,7 @@ import { areEqualCaseInsensitive } from "../../utils/comparisonHelper";
17
17
 
18
18
  const useStyles = makeStyles(theme => ({
19
19
  wrapper: {
20
- height: "40px",
20
+ height: theme.spacing(4),
21
21
  color: theme.palette.text.hint,
22
22
  display: "flex",
23
23
  justifyContent: "space-between",
@@ -32,16 +32,16 @@ const useStyles = makeStyles(theme => ({
32
32
  backgroundColor: "#000000",
33
33
  color: theme.palette.primary.light,
34
34
  fontFamily: theme.typography.button.fontFamily,
35
- fontSize: "14px",
35
+ fontSize: theme.spacing(1.4),
36
36
  textTransform: "uppercase",
37
- paddingRight: "20px",
38
- paddingLeft: "6px",
37
+ paddingRight: theme.spacing(2),
38
+ paddingLeft: theme.spacing(0.6),
39
39
  display: "flex",
40
40
  alignItems: "center",
41
41
  },
42
42
  appLogo: {
43
- height: "30px",
44
- marginRight: "10px",
43
+ height: theme.spacing(3),
44
+ marginRight: theme.spacing(1),
45
45
  },
46
46
  qaContainerColor: {
47
47
  backgroundColor: "#9F0F18",
@@ -7,7 +7,7 @@ const useStyles = makeStyles(theme => ({
7
7
  drawer: {
8
8
  position: "absolute",
9
9
  zIndex: 19999,
10
- margin: "4px 0 0",
10
+ margin: theme.spacing(0.4, 0, 0),
11
11
  left: props => (props.alignRight ? "auto" : "0"),
12
12
  right: props => (props.alignRight ? "0" : "auto"),
13
13
  transition: "opacity 100ms ease-out",
@@ -25,19 +25,19 @@ const useStyles = makeStyles(theme => ({
25
25
  color: theme.palette.text.primary,
26
26
  backgroundColor: "white",
27
27
  border: `1px solid ${theme.palette.text.hint}`,
28
- borderRadius: "5px",
28
+ borderRadius: theme.spacing(0.5),
29
29
  listStyleType: "none",
30
- padding: "5px 0",
30
+ padding: theme.spacing(0.5, 0),
31
31
  margin: "0",
32
32
  fontFamily: "Open Sans, sans-serif",
33
- fontSize: "12px",
33
+ fontSize: theme.spacing(1.2),
34
34
  width: "max-content",
35
35
  },
36
36
  item: {
37
37
  boxSizing: "border-box",
38
- height: "30px",
39
- minWidth: "178px",
40
- padding: "9px 12px",
38
+ height: theme.spacing(3),
39
+ minWidth: theme.spacing(17.8),
40
+ padding: theme.spacing(0.9, 1.2),
41
41
  display: "flex",
42
42
  alignItems: "center",
43
43
  cursor: "pointer",
@@ -47,8 +47,8 @@ const useStyles = makeStyles(theme => ({
47
47
  },
48
48
  },
49
49
  itemIcon: {
50
- paddingRight: "11px",
51
- fontSize: "17px",
50
+ paddingRight: theme.spacing(1.1),
51
+ fontSize: theme.spacing(1.7),
52
52
  },
53
53
  }));
54
54
 
@@ -7,13 +7,13 @@ const useStyles = makeStyles(theme => ({
7
7
  flex: "0 1 auto",
8
8
  display: "flex",
9
9
  flexDirection: "column",
10
- marginTop: 20,
10
+ marginTop: theme.spacing(2),
11
11
  position: "relative",
12
12
  },
13
13
  label: {
14
- minHeight: 17,
14
+ minHeight: theme.spacing(1.7),
15
15
  color: theme.palette.text.hint,
16
- marginBottom: "10px",
16
+ marginBottom: theme.spacing(1),
17
17
  },
18
18
  invalidLabel: {
19
19
  color: theme.palette.error.main,
@@ -22,7 +22,7 @@ const useStyles = makeStyles(theme => ({
22
22
  textAlign: "center",
23
23
  },
24
24
  labelOnly: {
25
- marginBottom: "0px",
25
+ marginBottom: 0,
26
26
  },
27
27
  requiredLabel: {
28
28
  "&::after": {
@@ -9,10 +9,10 @@ const useStyles = makeStyles(theme => ({
9
9
  positionedButton: {
10
10
  width: "max-content",
11
11
  position: "relative",
12
- padding: "6px 14px !important",
12
+ padding: `${theme.spacing(0.6, 1.4)} !important`,
13
13
  "&:hover": {
14
14
  borderColor: "#4fa1f0",
15
- boxShadow: "0 0 4px #4fa1f0",
15
+ boxShadow: `${theme.spacing(0, 0, 0.4)} #4fa1f0`,
16
16
  outline: "none",
17
17
  backgroundColor: "#f7f7f7 !important",
18
18
  },
@@ -1,23 +1,73 @@
1
1
  import React from "react";
2
+ import { useIntl } from "react-intl";
2
3
  import Select from "../../MaterialUI/Inputs/Select";
3
- import { memoize } from "../../../utils";
4
4
  import SelectProps from "../../MaterialUI/Inputs/SelectProps";
5
+ import sharedMessages from "../../../sharedMessages";
5
6
 
6
- export const selectEventUpdater = memoize(update => value => update(value));
7
+ const clearValue = "__#Clear#__";
8
+ const selectAllValue = "__#SelectAll#__";
9
+
10
+ const MultiSelector = ({ value, width = 700, options, update, addClearSelectAll, multipleRenderValue, ...props }) => {
11
+ const { formatMessage } = useIntl();
12
+
13
+ const valueUpdater = value => {
14
+ if (value.indexOf(clearValue) >= 0) {
15
+ update([]);
16
+ } else if (value.indexOf(selectAllValue) >= 0) {
17
+ update(options.map(x => x.value));
18
+ } else {
19
+ update(value);
20
+ }
21
+ };
7
22
 
8
- const MultiSelector = ({ value, options, update, ...props }) => {
9
23
  const selectProps = new SelectProps();
10
24
 
25
+ const selectionOptions = [];
26
+
27
+ if (addClearSelectAll) {
28
+ if (value.length > 0) {
29
+ selectionOptions.push({
30
+ label: formatMessage(sharedMessages.clear),
31
+ value: clearValue,
32
+ });
33
+ }
34
+ if (value.length !== options.length) {
35
+ selectionOptions.push({
36
+ label: formatMessage(sharedMessages.selectAll),
37
+ value: selectAllValue,
38
+ });
39
+ }
40
+ }
41
+
42
+ const allOptions = [...selectionOptions, ...options];
43
+
11
44
  selectProps.set(SelectProps.propNames.value, value);
12
45
  selectProps.set(SelectProps.propNames.onClose, props.onBlur);
13
46
  selectProps.set(SelectProps.propNames.disabled, props.disabled);
14
47
  selectProps.set(SelectProps.propNames.multiple, true);
15
- selectProps.set(SelectProps.propNames.update, selectEventUpdater(update));
48
+ selectProps.set(SelectProps.propNames.multipleSelectWidth, width);
49
+ selectProps.set(SelectProps.propNames.update, valueUpdater);
50
+ selectProps.set(SelectProps.propNames.autoWidth, false);
51
+ selectProps.set(SelectProps.propNames.autoFocus, false);
52
+ selectProps.set(
53
+ SelectProps.propNames.renderValue,
54
+ multipleRenderValue ? () => multipleRenderValue(value, options) : null,
55
+ );
56
+ selectProps.set(SelectProps.propNames.positionOverride, {
57
+ anchorOrigin: {
58
+ vertical: "bottom",
59
+ horizontal: "left",
60
+ },
61
+ transformOrigin: {
62
+ vertical: "top",
63
+ horizontal: "left",
64
+ },
65
+ });
16
66
 
17
67
  const hasError = props.required && (!Array.isArray(value) || value.length === 0);
18
68
  selectProps.set(SelectProps.propNames.error, hasError);
19
69
 
20
- return <Select options={options} selectProps={selectProps} />;
70
+ return <Select options={allOptions} selectProps={selectProps} />;
21
71
  };
22
72
 
23
73
  export default MultiSelector;