orc-shared 5.99.0-dev.5 → 5.99.0-dev.7
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 +170 -114
- package/dist/components/MaterialUI/Inputs/SelectProps.js +10 -2
- 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 +140 -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/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,45 @@ 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
|
+
"&:not(.Mui-selected) > p": {
|
|
105
|
+
color: "".concat(theme.palette.primary.contrastText)
|
|
106
|
+
},
|
|
107
|
+
"&.Mui-selected": {
|
|
108
|
+
backgroundColor: theme.palette.secondary.light
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"&:focus, &:active": {
|
|
112
|
+
borderRadius: 0,
|
|
113
|
+
boxShadow: props.multiple ? "none" : "0 0 ".concat(theme.spacing(0.4), " #4fa1f0"),
|
|
114
|
+
"&:hover": {
|
|
115
|
+
backgroundColor: theme.palette.primary.main
|
|
116
|
+
}
|
|
104
117
|
}
|
|
105
118
|
}
|
|
106
|
-
}
|
|
119
|
+
}, props.autoWidth ? {
|
|
120
|
+
minWidth: "auto !important",
|
|
121
|
+
width: "auto !important"
|
|
122
|
+
} : {});
|
|
107
123
|
},
|
|
108
124
|
label: {
|
|
109
125
|
fontSize: theme.typography.fontSize,
|
|
@@ -136,6 +152,12 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
|
|
|
136
152
|
color: theme.palette.text.primary,
|
|
137
153
|
backgroundColor: theme.palette.grey.light,
|
|
138
154
|
border: 0
|
|
155
|
+
},
|
|
156
|
+
formControl: function formControl(props) {
|
|
157
|
+
return {
|
|
158
|
+
maxWidth: theme.spacing(props.multipleWidthSpacing),
|
|
159
|
+
minWidth: theme.spacing(props.multipleWidthSpacing)
|
|
160
|
+
};
|
|
139
161
|
}
|
|
140
162
|
};
|
|
141
163
|
});
|
|
@@ -185,13 +207,18 @@ __signature__(SelectIconButton, "useStyles{classes}", function () {
|
|
|
185
207
|
__signature__(SelectIconButton, "useStyles{classes}", function () {
|
|
186
208
|
return [useStyles];
|
|
187
209
|
});
|
|
188
|
-
var renderMultipleValues = function renderMultipleValues(
|
|
189
|
-
return
|
|
210
|
+
var renderMultipleValues = exports.renderMultipleValues = function renderMultipleValues(value, options) {
|
|
211
|
+
return options.filter(function (x) {
|
|
212
|
+
return value.indexOf(x.value) !== -1;
|
|
213
|
+
}).map(function (x) {
|
|
214
|
+
return x.label;
|
|
215
|
+
}).join(", ");
|
|
190
216
|
};
|
|
191
217
|
var selectEmptyValue = "~~#~~";
|
|
192
218
|
var Select = function Select(_ref) {
|
|
193
219
|
var _selectProps$get;
|
|
194
|
-
var options = _ref.options,
|
|
220
|
+
var _ref$options = _ref.options,
|
|
221
|
+
options = _ref$options === void 0 ? [] : _ref$options,
|
|
195
222
|
selectProps = _ref.selectProps,
|
|
196
223
|
children = _ref.children;
|
|
197
224
|
if ((0, _SelectProps.isSelectProps)(selectProps) === false) {
|
|
@@ -202,7 +229,6 @@ var Select = function Select(_ref) {
|
|
|
202
229
|
open = _useState2[0],
|
|
203
230
|
setOpen = _useState2[1];
|
|
204
231
|
var ref = (0, _react.useRef)(null);
|
|
205
|
-
var classes = useStyles();
|
|
206
232
|
var update = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.update);
|
|
207
233
|
var value = (_selectProps$get = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.value)) != null ? _selectProps$get : "";
|
|
208
234
|
var sortType = (selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.sortType)) || _SelectProps.sortTypeEnum.none;
|
|
@@ -215,129 +241,159 @@ var Select = function Select(_ref) {
|
|
|
215
241
|
var native = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.native);
|
|
216
242
|
var onClose = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.onClose);
|
|
217
243
|
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);
|
|
244
|
+
var multiple = (selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.multiple)) || false;
|
|
245
|
+
var renderValue = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.renderValue);
|
|
246
|
+
var autoWidth = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.autoWidth);
|
|
247
|
+
var autoFocus = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.autoFocus);
|
|
248
|
+
var multipleSelectWidth = selectProps == null ? void 0 : selectProps.get(_SelectProps.default.propNames.multipleSelectWidth);
|
|
219
249
|
var hasError = !!error;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
250
|
+
var windowSize = (0, _useWindowSize.default)();
|
|
251
|
+
|
|
252
|
+
// When too many elements are selected from the list, the component can be longer than the screen, not very convenient
|
|
253
|
+
// We need a fix length unfortunately, for large screen, we use 100% of the multipleSelectWidth, for medium length, 75%
|
|
254
|
+
// But for very small width, we use the inner width of the browser minus 150px (completely arbitrary value), otherwise
|
|
255
|
+
// the drop-down is too large and hard to read
|
|
256
|
+
var multipleSelectWidthFactor = windowSize.innerWidth > 1200 ? 1 : 0.75;
|
|
257
|
+
var multipleWidthSpacing = windowSize.innerWidth > 750 ? multipleSelectWidth / 10 * multipleSelectWidthFactor : (windowSize.innerWidth - 150) / 10;
|
|
258
|
+
var classes = useStyles({
|
|
259
|
+
multiple: multiple,
|
|
260
|
+
autoWidth: autoWidth,
|
|
261
|
+
multipleWidthSpacing: multipleWidthSpacing
|
|
262
|
+
});
|
|
263
|
+
var buildOptionsItems = function buildOptionsItems() {
|
|
264
|
+
var allOptions = [].concat(options);
|
|
265
|
+
if (sortType === _SelectProps.sortTypeEnum.numeric) {
|
|
266
|
+
allOptions.sort(function (a, b) {
|
|
267
|
+
return a.sortOrder.localeCompare(b.sortOrder, undefined, {
|
|
268
|
+
numeric: true,
|
|
269
|
+
sensitivity: "base"
|
|
270
|
+
});
|
|
225
271
|
});
|
|
226
|
-
})
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
})
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
272
|
+
} else if (sortType === _SelectProps.sortTypeEnum.default) {
|
|
273
|
+
allOptions.sort(function (a, b) {
|
|
274
|
+
return a.sortOrder > b.sortOrder ? 1 : -1;
|
|
275
|
+
});
|
|
276
|
+
} else if (sortType === _SelectProps.sortTypeEnum.alphabetical) {
|
|
277
|
+
allOptions.sort(function (a, b) {
|
|
278
|
+
if (a.value === selectEmptyValue) {
|
|
279
|
+
return -1;
|
|
280
|
+
}
|
|
281
|
+
if (b.value === selectEmptyValue) {
|
|
282
|
+
return 1;
|
|
283
|
+
}
|
|
284
|
+
return a.label.localeCompare(b.label);
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
if (showAllValue && showAllLabel) {
|
|
288
|
+
allOptions.unshift({
|
|
289
|
+
value: showAllValue,
|
|
290
|
+
label: showAllLabel
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
return allOptions.map(function (option) {
|
|
294
|
+
var clss = option != null && option.level ? classes["level" + option.level] : "";
|
|
295
|
+
var appliedClasses = (0, _classnames.default)(classes.baseItem, clss);
|
|
296
|
+
var labelClss = (0, _classnames.default)(_defineProperty(_defineProperty({}, classes.label, true), classes.emptyLabel, option.value === "" || option.value === selectEmptyValue));
|
|
297
|
+
var disabled = !!option.disabled;
|
|
298
|
+
var groupHeader = !!option.isGroupHeader;
|
|
299
|
+
if (groupHeader) {
|
|
300
|
+
return /*#__PURE__*/_react.default.createElement(_core.ListSubheader, {
|
|
301
|
+
key: option.value,
|
|
302
|
+
className: appliedClasses
|
|
303
|
+
}, option.label);
|
|
304
|
+
} else {
|
|
305
|
+
return /*#__PURE__*/_react.default.createElement(_MenuItem.default, {
|
|
306
|
+
key: option.value,
|
|
307
|
+
value: option.value,
|
|
308
|
+
className: appliedClasses,
|
|
309
|
+
disabled: disabled
|
|
310
|
+
}, /*#__PURE__*/_react.default.createElement(_TooltippedTypography.default, {
|
|
311
|
+
noWrap: true,
|
|
312
|
+
className: labelClss,
|
|
313
|
+
children: option.label,
|
|
314
|
+
titleValue: option.label
|
|
315
|
+
}));
|
|
238
316
|
}
|
|
239
|
-
return a.label.localeCompare(b.label);
|
|
240
317
|
});
|
|
241
|
-
}
|
|
242
|
-
if (showAllValue && showAllLabel) {
|
|
243
|
-
options.unshift({
|
|
244
|
-
value: showAllValue,
|
|
245
|
-
label: showAllLabel
|
|
246
|
-
});
|
|
247
|
-
}
|
|
318
|
+
};
|
|
248
319
|
var handleChange = function handleChange(event) {
|
|
249
320
|
update(event.target.value);
|
|
250
321
|
};
|
|
251
322
|
var defaultMenuProps = _objectSpread(_objectSpread({
|
|
252
323
|
classes: {
|
|
253
324
|
paper: (0, _classnames.default)(classes.selectPaper, selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.paper))
|
|
254
|
-
}
|
|
325
|
+
},
|
|
326
|
+
autoFocus: autoFocus
|
|
255
327
|
}, MenuProps), positionOverride);
|
|
256
328
|
var iconSelectMenuProps = _objectSpread(_objectSpread({
|
|
257
329
|
classes: {
|
|
258
330
|
paper: (0, _classnames.default)(classes.selectPaper, selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.paper))
|
|
259
|
-
}
|
|
331
|
+
},
|
|
332
|
+
autoFocus: autoFocus
|
|
260
333
|
}, 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, {
|
|
334
|
+
var items = native ? null : buildOptionsItems();
|
|
335
|
+
var iconSelect = isIconSelect && /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
336
|
+
open: open,
|
|
287
337
|
value: value,
|
|
338
|
+
ref: ref,
|
|
288
339
|
onChange: handleChange,
|
|
289
|
-
onClose: onClose,
|
|
290
340
|
disableUnderline: true,
|
|
291
|
-
IconComponent:
|
|
292
|
-
MenuProps:
|
|
341
|
+
IconComponent: SelectIconButton,
|
|
342
|
+
MenuProps: iconSelectMenuProps,
|
|
293
343
|
disabled: disabled,
|
|
294
344
|
error: hasError,
|
|
295
345
|
native: native,
|
|
296
346
|
inputProps: inputProps,
|
|
297
347
|
multiple: multiple,
|
|
298
|
-
renderValue: multiple ? renderMultipleValues : undefined,
|
|
299
348
|
classes: {
|
|
300
349
|
icon: classes.icon,
|
|
301
350
|
root: selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.root),
|
|
351
|
+
select: classes.displayNone,
|
|
302
352
|
disabled: classes.disabled
|
|
353
|
+
},
|
|
354
|
+
onClick: function onClick() {
|
|
355
|
+
return setOpen(!open);
|
|
303
356
|
}
|
|
304
|
-
},
|
|
305
|
-
|
|
306
|
-
|
|
357
|
+
}, items != null ? items : children);
|
|
358
|
+
|
|
359
|
+
// Render the normal select is the icon one is NULL
|
|
360
|
+
var selectToRender = iconSelect || /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
307
361
|
value: value,
|
|
308
|
-
ref: ref,
|
|
309
362
|
onChange: handleChange,
|
|
363
|
+
onClose: onClose,
|
|
310
364
|
disableUnderline: true,
|
|
311
|
-
IconComponent:
|
|
312
|
-
|
|
365
|
+
IconComponent: SelectIcon,
|
|
366
|
+
autoWidth: autoWidth,
|
|
367
|
+
MenuProps: defaultMenuProps,
|
|
313
368
|
disabled: disabled,
|
|
314
369
|
error: hasError,
|
|
315
370
|
native: native,
|
|
316
371
|
inputProps: inputProps,
|
|
317
372
|
multiple: multiple,
|
|
318
|
-
renderValue:
|
|
373
|
+
renderValue: renderValue != null ? renderValue : multiple ? function (value) {
|
|
374
|
+
return renderMultipleValues(value, options);
|
|
375
|
+
} : undefined,
|
|
319
376
|
classes: {
|
|
320
377
|
icon: classes.icon,
|
|
321
378
|
root: selectProps == null ? void 0 : selectProps.getStyle(_SelectProps.default.ruleNames.root),
|
|
322
|
-
select: classes.displayNone,
|
|
323
379
|
disabled: classes.disabled
|
|
324
|
-
},
|
|
325
|
-
onClick: function onClick() {
|
|
326
|
-
return setOpen(!open);
|
|
327
380
|
}
|
|
328
|
-
},
|
|
329
|
-
var
|
|
330
|
-
return error && /*#__PURE__*/_react.default.createElement("div", {
|
|
381
|
+
}, items != null ? items : children);
|
|
382
|
+
var selectToRenderWithError = hasError && /*#__PURE__*/_react.default.createElement("div", {
|
|
331
383
|
className: classes.container
|
|
332
|
-
},
|
|
384
|
+
}, selectToRender, /*#__PURE__*/_react.default.createElement("div", {
|
|
333
385
|
className: (0, _classnames.default)(classes.errorText)
|
|
334
|
-
}, error))
|
|
386
|
+
}, error));
|
|
387
|
+
var selectControl = selectToRenderWithError || selectToRender;
|
|
388
|
+
return multiple === false ? selectControl : /*#__PURE__*/_react.default.createElement(_FormControl.default, {
|
|
389
|
+
className: classes.formControl
|
|
390
|
+
}, selectControl);
|
|
335
391
|
};
|
|
336
|
-
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseStyles{classes}", function () {
|
|
337
|
-
return [useStyles];
|
|
392
|
+
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseWindowSize{windowSize}\nuseStyles{classes}", function () {
|
|
393
|
+
return [_useWindowSize.default, useStyles];
|
|
338
394
|
});
|
|
339
|
-
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseStyles{classes}", function () {
|
|
340
|
-
return [useStyles];
|
|
395
|
+
__signature__(Select, "useState{[open, setOpen](false)}\nuseRef{ref}\nuseWindowSize{windowSize}\nuseStyles{classes}", function () {
|
|
396
|
+
return [_useWindowSize.default, useStyles];
|
|
341
397
|
});
|
|
342
398
|
var _default = Select;
|
|
343
399
|
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",
|