orc-shared 5.99.0-dev.4 → 5.99.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.
- package/dist/components/Form/Inputs/MultiSelector.js +67 -12
- package/dist/components/Form/Inputs/Selector.js +13 -10
- package/dist/components/MaterialUI/Inputs/Select.js +164 -114
- package/dist/components/MaterialUI/Inputs/SelectProps.js +10 -2
- package/dist/hocs/withScrollBox.js +3 -8
- package/dist/hooks/useWindowSize.js +88 -0
- package/dist/sharedMessages.js +8 -0
- package/package.json +1 -1
- package/src/components/Form/Inputs/MultiSelector.js +55 -5
- package/src/components/Form/Inputs/MultiSelector.test.js +259 -39
- package/src/components/Form/Inputs/Selector.js +12 -4
- package/src/components/Form/Inputs/Selector.test.js +27 -12
- package/src/components/MaterialUI/Inputs/Select.js +134 -87
- package/src/components/MaterialUI/Inputs/Select.test.js +170 -30
- package/src/components/MaterialUI/Inputs/SelectProps.js +9 -1
- package/src/components/MaterialUI/Inputs/SelectProps.test.js +8 -0
- package/src/hocs/withScrollBox.js +2 -8
- package/src/hooks/useMultipleFieldEditState.test.js +0 -1
- package/src/hooks/useWindowSize.js +39 -0
- package/src/hooks/useWindowSize.test.js +68 -0
- package/src/sharedMessages.js +8 -0
- package/src/translations/en-US.json +2 -0
- package/src/translations/fr-CA.json +2 -0
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
4
|
+
exports.default = void 0;
|
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
var _reactIntl = require("react-intl");
|
|
6
7
|
var _Select = _interopRequireDefault(require("../../MaterialUI/Inputs/Select"));
|
|
7
|
-
var _utils = require("../../../utils");
|
|
8
8
|
var _SelectProps = _interopRequireDefault(require("../../MaterialUI/Inputs/SelectProps"));
|
|
9
|
-
var
|
|
9
|
+
var _sharedMessages = _interopRequireDefault(require("../../../sharedMessages"));
|
|
10
|
+
var _excluded = ["value", "width", "options", "update", "addClearSelectAll", "multipleRenderValue"];
|
|
10
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
12
|
(function () {
|
|
12
13
|
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
@@ -24,29 +25,81 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
|
|
|
24
25
|
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
25
26
|
return a;
|
|
26
27
|
};
|
|
27
|
-
var
|
|
28
|
-
|
|
29
|
-
return update(value);
|
|
30
|
-
};
|
|
31
|
-
});
|
|
28
|
+
var clearValue = "__#Clear#__";
|
|
29
|
+
var selectAllValue = "__#SelectAll#__";
|
|
32
30
|
var MultiSelector = function MultiSelector(_ref) {
|
|
33
31
|
var value = _ref.value,
|
|
32
|
+
_ref$width = _ref.width,
|
|
33
|
+
width = _ref$width === void 0 ? 700 : _ref$width,
|
|
34
34
|
options = _ref.options,
|
|
35
35
|
update = _ref.update,
|
|
36
|
+
addClearSelectAll = _ref.addClearSelectAll,
|
|
37
|
+
multipleRenderValue = _ref.multipleRenderValue,
|
|
36
38
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
39
|
+
var _useIntl = (0, _reactIntl.useIntl)(),
|
|
40
|
+
formatMessage = _useIntl.formatMessage;
|
|
41
|
+
var valueUpdater = function valueUpdater(value) {
|
|
42
|
+
if (value.indexOf(clearValue) >= 0) {
|
|
43
|
+
update([]);
|
|
44
|
+
} else if (value.indexOf(selectAllValue) >= 0) {
|
|
45
|
+
update(options.map(function (x) {
|
|
46
|
+
return x.value;
|
|
47
|
+
}));
|
|
48
|
+
} else {
|
|
49
|
+
update(value);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
37
52
|
var selectProps = new _SelectProps.default();
|
|
53
|
+
var selectionOptions = [];
|
|
54
|
+
if (addClearSelectAll) {
|
|
55
|
+
if (value.length > 0) {
|
|
56
|
+
selectionOptions.push({
|
|
57
|
+
label: formatMessage(_sharedMessages.default.clear),
|
|
58
|
+
value: clearValue
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (value.length !== options.length) {
|
|
62
|
+
selectionOptions.push({
|
|
63
|
+
label: formatMessage(_sharedMessages.default.selectAll),
|
|
64
|
+
value: selectAllValue
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
var allOptions = [].concat(selectionOptions, options);
|
|
38
69
|
selectProps.set(_SelectProps.default.propNames.value, value);
|
|
39
70
|
selectProps.set(_SelectProps.default.propNames.onClose, props.onBlur);
|
|
40
71
|
selectProps.set(_SelectProps.default.propNames.disabled, props.disabled);
|
|
41
72
|
selectProps.set(_SelectProps.default.propNames.multiple, true);
|
|
42
|
-
selectProps.set(_SelectProps.default.propNames.
|
|
73
|
+
selectProps.set(_SelectProps.default.propNames.multipleSelectWidth, width);
|
|
74
|
+
selectProps.set(_SelectProps.default.propNames.update, valueUpdater);
|
|
75
|
+
selectProps.set(_SelectProps.default.propNames.autoWidth, false);
|
|
76
|
+
selectProps.set(_SelectProps.default.propNames.autoFocus, false);
|
|
77
|
+
selectProps.set(_SelectProps.default.propNames.renderValue, multipleRenderValue ? function () {
|
|
78
|
+
return multipleRenderValue(value, options);
|
|
79
|
+
} : null);
|
|
80
|
+
selectProps.set(_SelectProps.default.propNames.positionOverride, {
|
|
81
|
+
anchorOrigin: {
|
|
82
|
+
vertical: "bottom",
|
|
83
|
+
horizontal: "left"
|
|
84
|
+
},
|
|
85
|
+
transformOrigin: {
|
|
86
|
+
vertical: "top",
|
|
87
|
+
horizontal: "left"
|
|
88
|
+
}
|
|
89
|
+
});
|
|
43
90
|
var hasError = props.required && (!Array.isArray(value) || value.length === 0);
|
|
44
91
|
selectProps.set(_SelectProps.default.propNames.error, hasError);
|
|
45
92
|
return /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
46
|
-
options:
|
|
93
|
+
options: allOptions,
|
|
47
94
|
selectProps: selectProps
|
|
48
95
|
});
|
|
49
96
|
};
|
|
97
|
+
__signature__(MultiSelector, "useIntl{{ formatMessage }}", function () {
|
|
98
|
+
return [_reactIntl.useIntl];
|
|
99
|
+
});
|
|
100
|
+
__signature__(MultiSelector, "useIntl{{ formatMessage }}", function () {
|
|
101
|
+
return [_reactIntl.useIntl];
|
|
102
|
+
});
|
|
50
103
|
var _default = MultiSelector;
|
|
51
104
|
var _default2 = _default;
|
|
52
105
|
var _default3 = exports.default = _default2;
|
|
@@ -56,7 +109,8 @@ var _default3 = exports.default = _default2;
|
|
|
56
109
|
if (!reactHotLoader) {
|
|
57
110
|
return;
|
|
58
111
|
}
|
|
59
|
-
reactHotLoader.register(
|
|
112
|
+
reactHotLoader.register(clearValue, "clearValue", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
113
|
+
reactHotLoader.register(selectAllValue, "selectAllValue", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
60
114
|
reactHotLoader.register(MultiSelector, "MultiSelector", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
61
115
|
reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
62
116
|
})();
|
|
@@ -71,7 +125,8 @@ var _default3 = exports.default = _default2;
|
|
|
71
125
|
if (!reactHotLoader) {
|
|
72
126
|
return;
|
|
73
127
|
}
|
|
74
|
-
reactHotLoader.register(
|
|
128
|
+
reactHotLoader.register(clearValue, "clearValue", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
129
|
+
reactHotLoader.register(selectAllValue, "selectAllValue", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
75
130
|
reactHotLoader.register(MultiSelector, "MultiSelector", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
76
131
|
reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/components/Form/Inputs/MultiSelector.js");
|
|
77
132
|
})();
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
4
|
+
exports.default = void 0;
|
|
5
5
|
var _react = _interopRequireDefault(require("react"));
|
|
6
6
|
var _Select = _interopRequireDefault(require("../../MaterialUI/Inputs/Select"));
|
|
7
|
-
var _utils = require("../../../utils");
|
|
8
7
|
var _SelectProps = _interopRequireDefault(require("../../MaterialUI/Inputs/SelectProps"));
|
|
9
8
|
var _excluded = ["value", "options", "update"];
|
|
10
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
@@ -24,11 +23,6 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
|
|
|
24
23
|
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
25
24
|
return a;
|
|
26
25
|
};
|
|
27
|
-
var selectEventUpdater = exports.selectEventUpdater = (0, _utils.memoize)(function (update) {
|
|
28
|
-
return function (value) {
|
|
29
|
-
return update(value);
|
|
30
|
-
};
|
|
31
|
-
});
|
|
32
26
|
var Selector = function Selector(_ref) {
|
|
33
27
|
var value = _ref.value,
|
|
34
28
|
options = _ref.options,
|
|
@@ -38,7 +32,18 @@ var Selector = function Selector(_ref) {
|
|
|
38
32
|
selectProps.set(_SelectProps.default.propNames.value, value);
|
|
39
33
|
selectProps.set(_SelectProps.default.propNames.onClose, props.onBlur);
|
|
40
34
|
selectProps.set(_SelectProps.default.propNames.disabled, props.disabled);
|
|
41
|
-
selectProps.set(_SelectProps.default.propNames.update,
|
|
35
|
+
selectProps.set(_SelectProps.default.propNames.update, update);
|
|
36
|
+
selectProps.set(_SelectProps.default.propNames.autoWidth, false);
|
|
37
|
+
selectProps.set(_SelectProps.default.propNames.positionOverride, {
|
|
38
|
+
anchorOrigin: {
|
|
39
|
+
vertical: "bottom",
|
|
40
|
+
horizontal: "left"
|
|
41
|
+
},
|
|
42
|
+
transformOrigin: {
|
|
43
|
+
vertical: "top",
|
|
44
|
+
horizontal: "left"
|
|
45
|
+
}
|
|
46
|
+
});
|
|
42
47
|
var hasError = props.required && !value ? true : false;
|
|
43
48
|
selectProps.set(_SelectProps.default.propNames.error, hasError);
|
|
44
49
|
return /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
@@ -55,7 +60,6 @@ var _default3 = exports.default = _default2;
|
|
|
55
60
|
if (!reactHotLoader) {
|
|
56
61
|
return;
|
|
57
62
|
}
|
|
58
|
-
reactHotLoader.register(selectEventUpdater, "selectEventUpdater", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
59
63
|
reactHotLoader.register(Selector, "Selector", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
60
64
|
reactHotLoader.register(_default, "default", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
61
65
|
})();
|
|
@@ -70,7 +74,6 @@ var _default3 = exports.default = _default2;
|
|
|
70
74
|
if (!reactHotLoader) {
|
|
71
75
|
return;
|
|
72
76
|
}
|
|
73
|
-
reactHotLoader.register(selectEventUpdater, "selectEventUpdater", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
74
77
|
reactHotLoader.register(Selector, "Selector", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
75
78
|
reactHotLoader.register(_default2, "default", "/home/vsts/work/1/s/src/components/Form/Inputs/Selector.js");
|
|
76
79
|
})();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.default = exports.SelectIconButton = void 0;
|
|
4
|
+
exports.renderMultipleValues = exports.default = exports.SelectIconButton = void 0;
|
|
5
5
|
var _react = _interopRequireWildcard(require("react"));
|
|
6
6
|
var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
|
|
7
7
|
var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
|
|
@@ -12,6 +12,8 @@ var _TooltippedTypography = _interopRequireDefault(require("./../DataDisplay/Too
|
|
|
12
12
|
var _Icon = _interopRequireDefault(require("./../DataDisplay/Icon"));
|
|
13
13
|
var _IconButton = _interopRequireDefault(require("@material-ui/core/IconButton"));
|
|
14
14
|
var _core = require("@material-ui/core");
|
|
15
|
+
var _FormControl = _interopRequireDefault(require("@material-ui/core/FormControl"));
|
|
16
|
+
var _useWindowSize = _interopRequireDefault(require("../../../hooks/useWindowSize"));
|
|
15
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
17
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -23,11 +25,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
23
25
|
var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;
|
|
24
26
|
enterModule && enterModule(module);
|
|
25
27
|
})();
|
|
26
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
29
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
30
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
31
28
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
32
29
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
33
30
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
@@ -35,6 +32,11 @@ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length)
|
|
|
35
32
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
36
33
|
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
37
34
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
35
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
36
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
37
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
38
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
39
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
38
40
|
var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {
|
|
39
41
|
return a;
|
|
40
42
|
};
|
|
@@ -43,8 +45,12 @@ var __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoader
|
|
|
43
45
|
};
|
|
44
46
|
var useStyles = (0, _styles.makeStyles)(function (theme) {
|
|
45
47
|
return {
|
|
46
|
-
baseItem: {
|
|
47
|
-
|
|
48
|
+
baseItem: function baseItem(props) {
|
|
49
|
+
return _objectSpread({}, props.autoWidth ? {
|
|
50
|
+
maxWidth: theme.spacing(35)
|
|
51
|
+
} : {
|
|
52
|
+
maxWidth: theme.spacing(props.multipleWidthSpacing)
|
|
53
|
+
});
|
|
48
54
|
},
|
|
49
55
|
level0: {},
|
|
50
56
|
level1: {
|
|
@@ -75,35 +81,39 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
|
|
|
75
81
|
display: "flex",
|
|
76
82
|
flexDirection: "column"
|
|
77
83
|
},
|
|
78
|
-
selectPaper: {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
paddingBottom: 0
|
|
87
|
-
},
|
|
88
|
-
"& li": {
|
|
89
|
-
fontSize: theme.typography.fontSize,
|
|
90
|
-
fontFamily: theme.typography.fontFamily,
|
|
91
|
-
textTransform: "none",
|
|
92
|
-
color: theme.palette.grey.dark,
|
|
93
|
-
paddingTop: theme.spacing(1),
|
|
94
|
-
paddingBottom: theme.spacing(1),
|
|
95
|
-
borderRadius: 0,
|
|
96
|
-
whiteSpace: "normal",
|
|
97
|
-
"&:hover": {
|
|
98
|
-
backgroundColor: theme.palette.primary.light
|
|
84
|
+
selectPaper: function selectPaper(props) {
|
|
85
|
+
return _objectSpread({
|
|
86
|
+
border: "1px solid ".concat(theme.palette.grey.borders),
|
|
87
|
+
"& ul": {
|
|
88
|
+
minWidth: theme.spacing(17.5),
|
|
89
|
+
maxHeight: theme.spacing(30),
|
|
90
|
+
paddingTop: 0,
|
|
91
|
+
paddingBottom: 0
|
|
99
92
|
},
|
|
100
|
-
"
|
|
93
|
+
"& li": {
|
|
94
|
+
fontSize: theme.typography.fontSize,
|
|
95
|
+
fontFamily: theme.typography.fontFamily,
|
|
96
|
+
textTransform: "none",
|
|
97
|
+
color: theme.palette.grey.dark,
|
|
98
|
+
paddingTop: theme.spacing(1),
|
|
99
|
+
paddingBottom: theme.spacing(1),
|
|
101
100
|
borderRadius: 0,
|
|
101
|
+
whiteSpace: "normal",
|
|
102
102
|
"&:hover": {
|
|
103
|
-
backgroundColor: theme.palette.primary.
|
|
103
|
+
backgroundColor: theme.palette.primary.main
|
|
104
|
+
},
|
|
105
|
+
"&:focus, &:active": {
|
|
106
|
+
borderRadius: 0,
|
|
107
|
+
boxShadow: props.multiple ? "none" : "0 0 ".concat(theme.spacing(0.4), " #4fa1f0"),
|
|
108
|
+
"&:hover": {
|
|
109
|
+
backgroundColor: theme.palette.primary.main
|
|
110
|
+
}
|
|
104
111
|
}
|
|
105
112
|
}
|
|
106
|
-
}
|
|
113
|
+
}, props.autoWidth ? {
|
|
114
|
+
minWidth: "auto !important",
|
|
115
|
+
width: "auto !important"
|
|
116
|
+
} : {});
|
|
107
117
|
},
|
|
108
118
|
label: {
|
|
109
119
|
fontSize: theme.typography.fontSize,
|
|
@@ -136,6 +146,12 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
|
|
|
136
146
|
color: theme.palette.text.primary,
|
|
137
147
|
backgroundColor: theme.palette.grey.light,
|
|
138
148
|
border: 0
|
|
149
|
+
},
|
|
150
|
+
formControl: function formControl(props) {
|
|
151
|
+
return {
|
|
152
|
+
maxWidth: theme.spacing(props.multipleWidthSpacing),
|
|
153
|
+
minWidth: theme.spacing(props.multipleWidthSpacing)
|
|
154
|
+
};
|
|
139
155
|
}
|
|
140
156
|
};
|
|
141
157
|
});
|
|
@@ -185,13 +201,18 @@ __signature__(SelectIconButton, "useStyles{classes}", function () {
|
|
|
185
201
|
__signature__(SelectIconButton, "useStyles{classes}", function () {
|
|
186
202
|
return [useStyles];
|
|
187
203
|
});
|
|
188
|
-
var renderMultipleValues = function renderMultipleValues(
|
|
189
|
-
return
|
|
204
|
+
var renderMultipleValues = exports.renderMultipleValues = function renderMultipleValues(value, options) {
|
|
205
|
+
return options.filter(function (x) {
|
|
206
|
+
return value.indexOf(x.value) !== -1;
|
|
207
|
+
}).map(function (x) {
|
|
208
|
+
return x.label;
|
|
209
|
+
}).join(", ");
|
|
190
210
|
};
|
|
191
211
|
var selectEmptyValue = "~~#~~";
|
|
192
212
|
var Select = function Select(_ref) {
|
|
193
213
|
var _selectProps$get;
|
|
194
|
-
var options = _ref.options,
|
|
214
|
+
var _ref$options = _ref.options,
|
|
215
|
+
options = _ref$options === void 0 ? [] : _ref$options,
|
|
195
216
|
selectProps = _ref.selectProps,
|
|
196
217
|
children = _ref.children;
|
|
197
218
|
if ((0, _SelectProps.isSelectProps)(selectProps) === false) {
|
|
@@ -202,7 +223,6 @@ var Select = function Select(_ref) {
|
|
|
202
223
|
open = _useState2[0],
|
|
203
224
|
setOpen = _useState2[1];
|
|
204
225
|
var ref = (0, _react.useRef)(null);
|
|
205
|
-
var classes = useStyles();
|
|
206
226
|
var update = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.update);
|
|
207
227
|
var value = (_selectProps$get = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.value)) != null ? _selectProps$get : "";
|
|
208
228
|
var sortType = (selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.sortType)) || _SelectProps.sortTypeEnum.none;
|
|
@@ -215,129 +235,159 @@ var Select = function Select(_ref) {
|
|
|
215
235
|
var native = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.native);
|
|
216
236
|
var onClose = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.onClose);
|
|
217
237
|
var inputProps = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.inputProps);
|
|
218
|
-
var multiple = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.multiple);
|
|
238
|
+
var multiple = (selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.multiple)) || false;
|
|
239
|
+
var renderValue = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.renderValue);
|
|
240
|
+
var autoWidth = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.autoWidth);
|
|
241
|
+
var autoFocus = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.autoFocus);
|
|
242
|
+
var multipleSelectWidth = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.multipleSelectWidth);
|
|
219
243
|
var hasError = !!error;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
244
|
+
var windowSize = (0, _useWindowSize.default)();
|
|
245
|
+
|
|
246
|
+
// When too many elements are selected from the list, the component can be longer than the screen, not very convenient
|
|
247
|
+
// We need a fix length unfortunately, for large screen, we use 100% of the multipleSelectWidth, for medium length, 75%
|
|
248
|
+
// But for very small width, we use the inner width of the browser minus 150px (completely arbitrary value), otherwise
|
|
249
|
+
// the drop-down is too large and hard to read
|
|
250
|
+
var multipleSelectWidthFactor = windowSize.innerWidth > 1200 ? 1 : 0.75;
|
|
251
|
+
var multipleWidthSpacing = windowSize.innerWidth > 750 ? multipleSelectWidth / 10 * multipleSelectWidthFactor : (windowSize.innerWidth - 150) / 10;
|
|
252
|
+
var classes = useStyles({
|
|
253
|
+
multiple: multiple,
|
|
254
|
+
autoWidth: autoWidth,
|
|
255
|
+
multipleWidthSpacing: multipleWidthSpacing
|
|
256
|
+
});
|
|
257
|
+
var buildOptionsItems = function buildOptionsItems() {
|
|
258
|
+
var allOptions = [].concat(options);
|
|
259
|
+
if (sortType === _SelectProps.sortTypeEnum.numeric) {
|
|
260
|
+
allOptions.sort(function (a, b) {
|
|
261
|
+
return a.sortOrder.localeCompare(b.sortOrder, undefined, {
|
|
262
|
+
numeric: true,
|
|
263
|
+
sensitivity: "base"
|
|
264
|
+
});
|
|
225
265
|
});
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
})
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
266
|
+
} else if (sortType === _SelectProps.sortTypeEnum.default) {
|
|
267
|
+
allOptions.sort(function (a, b) {
|
|
268
|
+
return a.sortOrder > b.sortOrder ? 1 : -1;
|
|
269
|
+
});
|
|
270
|
+
} else if (sortType === _SelectProps.sortTypeEnum.alphabetical) {
|
|
271
|
+
allOptions.sort(function (a, b) {
|
|
272
|
+
if (a.value === selectEmptyValue) {
|
|
273
|
+
return -1;
|
|
274
|
+
}
|
|
275
|
+
if (b.value === selectEmptyValue) {
|
|
276
|
+
return 1;
|
|
277
|
+
}
|
|
278
|
+
return a.label.localeCompare(b.label);
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
if (showAllValue && showAllLabel) {
|
|
282
|
+
allOptions.unshift({
|
|
283
|
+
value: showAllValue,
|
|
284
|
+
label: showAllLabel
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
return allOptions.map(function (option) {
|
|
288
|
+
var clss = option != null && option.level ? classes["level" + option.level] : "";
|
|
289
|
+
var appliedClasses = (0, _classnames.default)(classes.baseItem, clss);
|
|
290
|
+
var labelClss = (0, _classnames.default)(_defineProperty(_defineProperty({}, classes.label, true), classes.emptyLabel, option.value === "" || option.value === selectEmptyValue));
|
|
291
|
+
var disabled = !!option.disabled;
|
|
292
|
+
var groupHeader = !!option.isGroupHeader;
|
|
293
|
+
if (groupHeader) {
|
|
294
|
+
return /*#__PURE__*/_react.default.createElement(_core.ListSubheader, {
|
|
295
|
+
key: option.value,
|
|
296
|
+
className: appliedClasses
|
|
297
|
+
}, option.label);
|
|
298
|
+
} else {
|
|
299
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
300
|
+
key: option.value,
|
|
301
|
+
value: option.value,
|
|
302
|
+
className: appliedClasses,
|
|
303
|
+
disabled: disabled
|
|
304
|
+
}, /*#__PURE__*/_react.default.createElement(_TooltippedTypography.default, {
|
|
305
|
+
noWrap: true,
|
|
306
|
+
className: labelClss,
|
|
307
|
+
children: option.label,
|
|
308
|
+
titleValue: option.label
|
|
309
|
+
}));
|
|
238
310
|
}
|
|
239
|
-
return a.label.localeCompare(b.label);
|
|
240
311
|
});
|
|
241
|
-
}
|
|
242
|
-
if (showAllValue && showAllLabel) {
|
|
243
|
-
options.unshift({
|
|
244
|
-
value: showAllValue,
|
|
245
|
-
label: showAllLabel
|
|
246
|
-
});
|
|
247
|
-
}
|
|
312
|
+
};
|
|
248
313
|
var handleChange = function handleChange(event) {
|
|
249
314
|
update(event.target.value);
|
|
250
315
|
};
|
|
251
316
|
var defaultMenuProps = _objectSpread(_objectSpread({
|
|
252
317
|
classes: {
|
|
253
318
|
paper: (0, _classnames.default)(classes.selectPaper, selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.paper))
|
|
254
|
-
}
|
|
319
|
+
},
|
|
320
|
+
autoFocus: autoFocus
|
|
255
321
|
}, MenuProps), positionOverride);
|
|
256
322
|
var iconSelectMenuProps = _objectSpread(_objectSpread({
|
|
257
323
|
classes: {
|
|
258
324
|
paper: (0, _classnames.default)(classes.selectPaper, selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.paper))
|
|
259
|
-
}
|
|
325
|
+
},
|
|
326
|
+
autoFocus: autoFocus
|
|
260
327
|
}, positionOverride), getIconButtonMenuProps(ref.current));
|
|
261
|
-
var items =
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
var labelClss = (0, _classnames.default)(_defineProperty(_defineProperty({}, classes.label, true), classes.emptyLabel, option.value === "" || option.value === selectEmptyValue));
|
|
265
|
-
var disabled = !!option.disabled;
|
|
266
|
-
var groupHeader = !!option.isGroupHeader;
|
|
267
|
-
if (groupHeader) {
|
|
268
|
-
return /*#__PURE__*/_react.default.createElement(_core.ListSubheader, {
|
|
269
|
-
key: option.value,
|
|
270
|
-
className: appliedClasses
|
|
271
|
-
}, option.label);
|
|
272
|
-
} else {
|
|
273
|
-
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
274
|
-
key: option.value,
|
|
275
|
-
value: option.value,
|
|
276
|
-
className: appliedClasses,
|
|
277
|
-
disabled: disabled
|
|
278
|
-
}, /*#__PURE__*/_react.default.createElement(_TooltippedTypography.default, {
|
|
279
|
-
noWrap: true,
|
|
280
|
-
className: labelClss,
|
|
281
|
-
children: option.label,
|
|
282
|
-
titleValue: option.label
|
|
283
|
-
}));
|
|
284
|
-
}
|
|
285
|
-
});
|
|
286
|
-
var defaultSelect = /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
328
|
+
var items = native ? null : buildOptionsItems();
|
|
329
|
+
var iconSelect = isIconSelect && /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
330
|
+
open: open,
|
|
287
331
|
value: value,
|
|
332
|
+
ref: ref,
|
|
288
333
|
onChange: handleChange,
|
|
289
|
-
onClose: onClose,
|
|
290
334
|
disableUnderline: true,
|
|
291
|
-
IconComponent:
|
|
292
|
-
MenuProps:
|
|
335
|
+
IconComponent: SelectIconButton,
|
|
336
|
+
MenuProps: iconSelectMenuProps,
|
|
293
337
|
disabled: disabled,
|
|
294
338
|
error: hasError,
|
|
295
339
|
native: native,
|
|
296
340
|
inputProps: inputProps,
|
|
297
341
|
multiple: multiple,
|
|
298
|
-
renderValue: multiple ? renderMultipleValues : undefined,
|
|
299
342
|
classes: {
|
|
300
343
|
icon: classes.icon,
|
|
301
344
|
root: selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.root),
|
|
345
|
+
select: classes.displayNone,
|
|
302
346
|
disabled: classes.disabled
|
|
347
|
+
},
|
|
348
|
+
onClick: function onClick() {
|
|
349
|
+
return setOpen(!open);
|
|
303
350
|
}
|
|
304
|
-
},
|
|
305
|
-
|
|
306
|
-
|
|
351
|
+
}, items != null ? items : children);
|
|
352
|
+
|
|
353
|
+
// Render the normal select is the icon one is NULL
|
|
354
|
+
var selectToRender = iconSelect || /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
307
355
|
value: value,
|
|
308
|
-
ref: ref,
|
|
309
356
|
onChange: handleChange,
|
|
357
|
+
onClose: onClose,
|
|
310
358
|
disableUnderline: true,
|
|
311
|
-
IconComponent:
|
|
312
|
-
|
|
359
|
+
IconComponent: SelectIcon,
|
|
360
|
+
autoWidth: autoWidth,
|
|
361
|
+
MenuProps: defaultMenuProps,
|
|
313
362
|
disabled: disabled,
|
|
314
363
|
error: hasError,
|
|
315
364
|
native: native,
|
|
316
365
|
inputProps: inputProps,
|
|
317
366
|
multiple: multiple,
|
|
318
|
-
renderValue:
|
|
367
|
+
renderValue: renderValue != null ? renderValue : multiple ? function (value) {
|
|
368
|
+
return renderMultipleValues(value, options);
|
|
369
|
+
} : undefined,
|
|
319
370
|
classes: {
|
|
320
371
|
icon: classes.icon,
|
|
321
372
|
root: selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.root),
|
|
322
|
-
select: classes.displayNone,
|
|
323
373
|
disabled: classes.disabled
|
|
324
|
-
},
|
|
325
|
-
onClick: function onClick() {
|
|
326
|
-
return setOpen(!open);
|
|
327
374
|
}
|
|
328
|
-
},
|
|
329
|
-
var
|
|
330
|
-
return error && /*#__PURE__*/_react.default.createElement("div", {
|
|
375
|
+
}, items != null ? items : children);
|
|
376
|
+
var selectToRenderWithError = hasError && /*#__PURE__*/_react.default.createElement("div", {
|
|
331
377
|
className: classes.container
|
|
332
|
-
},
|
|
378
|
+
}, selectToRender, /*#__PURE__*/_react.default.createElement("div", {
|
|
333
379
|
className: (0, _classnames.default)(classes.errorText)
|
|
334
|
-
}, error))
|
|
380
|
+
}, error));
|
|
381
|
+
var selectControl = selectToRenderWithError || selectToRender;
|
|
382
|
+
return multiple === false ? selectControl : /*#__PURE__*/_react.default.createElement(_FormControl.default, {
|
|
383
|
+
className: classes.formControl
|
|
384
|
+
}, selectControl);
|
|
335
385
|
};
|
|
336
|
-
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseStyles{classes}", function () {
|
|
337
|
-
return [useStyles];
|
|
386
|
+
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseWindowSize{windowSize}\nuseStyles{classes}", function () {
|
|
387
|
+
return [_useWindowSize.default, useStyles];
|
|
338
388
|
});
|
|
339
|
-
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseStyles{classes}", function () {
|
|
340
|
-
return [useStyles];
|
|
389
|
+
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseWindowSize{windowSize}\nuseStyles{classes}", function () {
|
|
390
|
+
return [_useWindowSize.default, useStyles];
|
|
341
391
|
});
|
|
342
392
|
var _default = Select;
|
|
343
393
|
var _default2 = _default;
|
|
@@ -45,7 +45,11 @@ var SelectProps = /*#__PURE__*/function (_ComponentProps) {
|
|
|
45
45
|
_this.componentProps.set(_this.constructor.propNames.onClose, null);
|
|
46
46
|
_this.componentProps.set(_this.constructor.propNames.native, null);
|
|
47
47
|
_this.componentProps.set(_this.constructor.propNames.inputProps, null);
|
|
48
|
-
_this.componentProps.set(_this.constructor.propNames.multiple,
|
|
48
|
+
_this.componentProps.set(_this.constructor.propNames.multiple, false);
|
|
49
|
+
_this.componentProps.set(_this.constructor.propNames.autoWidth, true);
|
|
50
|
+
_this.componentProps.set(_this.constructor.propNames.autoFocus, true);
|
|
51
|
+
_this.componentProps.set(_this.constructor.propNames.renderValue, null);
|
|
52
|
+
_this.componentProps.set(_this.constructor.propNames.multipleSelectWidth, 700);
|
|
49
53
|
_this.componentClasses.set(_this.constructor.ruleNames.root, null);
|
|
50
54
|
_this.componentClasses.set(_this.constructor.ruleNames.paper, null);
|
|
51
55
|
_this._isSelectProps = true;
|
|
@@ -73,7 +77,11 @@ _defineProperty(SelectProps, "propNames", {
|
|
|
73
77
|
onClose: "onClose",
|
|
74
78
|
native: "native",
|
|
75
79
|
inputProps: "inputProps",
|
|
76
|
-
multiple: "multiple"
|
|
80
|
+
multiple: "multiple",
|
|
81
|
+
autoWidth: "autoWidth",
|
|
82
|
+
autoFocus: "autoFocus",
|
|
83
|
+
renderValue: "renderValue",
|
|
84
|
+
multipleSelectWidth: "multipleSelectWidth"
|
|
77
85
|
});
|
|
78
86
|
_defineProperty(SelectProps, "ruleNames", {
|
|
79
87
|
root: "root",
|
|
@@ -37,21 +37,16 @@ var withScrollBox = function withScrollBox(WrappedComp) {
|
|
|
37
37
|
var onScroll = _ref.onScroll,
|
|
38
38
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
39
39
|
var classes = useStyles();
|
|
40
|
-
var mergeRef = function mergeRef(node, measureRef) {
|
|
41
|
-
measureRef(node);
|
|
42
|
-
if (externalRef) externalRef.current = node;
|
|
43
|
-
};
|
|
44
40
|
return /*#__PURE__*/_react.default.createElement(_reactMeasure.default, {
|
|
45
|
-
bounds: true
|
|
41
|
+
bounds: true,
|
|
42
|
+
innerRef: externalRef
|
|
46
43
|
}, function (_ref2) {
|
|
47
44
|
var measureRef = _ref2.measureRef,
|
|
48
45
|
contentRect = _ref2.contentRect;
|
|
49
46
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
50
47
|
className: classes.scrollbox,
|
|
51
48
|
onScroll: onScroll,
|
|
52
|
-
ref:
|
|
53
|
-
return mergeRef(node, measureRef);
|
|
54
|
-
}
|
|
49
|
+
ref: measureRef
|
|
55
50
|
}, /*#__PURE__*/_react.default.createElement(WrappedComp, _extends({}, otherProps, {
|
|
56
51
|
height: (0, _utils.safeGet)(contentRect, "bounds", "height"),
|
|
57
52
|
width: (0, _utils.safeGet)(contentRect, "bounds", "width")
|