iguazio.dashboard-react-controls 0.0.39 → 1.2.0
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/Backdrop/Backdrop.js +4 -11
- package/dist/components/Button/Button.js +25 -28
- package/dist/components/ConfirmDialog/ConfirmDialog.js +10 -24
- package/dist/components/FormCheckBox/FormCheckBox.js +25 -25
- package/dist/components/FormChipCell/FormChip/FormChip.js +33 -33
- package/dist/components/FormChipCell/FormChipCell.js +66 -109
- package/dist/components/FormChipCell/FormChipCellView.js +19 -37
- package/dist/components/FormChipCell/NewChipForm/NewChipForm.js +58 -90
- package/dist/components/FormChipCell/NewChipInput/NewChipInput.js +24 -22
- package/dist/components/FormChipCell/formChipCell.util.js +0 -1
- package/dist/components/FormCombobox/FormCombobox.js +82 -140
- package/dist/components/FormInput/FormInput.js +110 -175
- package/dist/components/FormInput/InputNumberButtons/InputNumberButtons.js +6 -21
- package/dist/components/FormKeyValueTable/FormKeyValueTable.js +23 -39
- package/dist/components/FormRadio/FormRadio.js +23 -22
- package/dist/components/FormSelect/FormSelect.js +56 -92
- package/dist/components/FormSelect/FormSelect.test.js +19 -35
- package/dist/components/FormTextarea/FormTextarea.js +44 -69
- package/dist/components/Modal/Modal.js +8 -21
- package/dist/components/Modal/Modal.scss +2 -2
- package/dist/components/PopUpDialog/PopUpDialog.js +28 -43
- package/dist/components/RoundedIcon/RoundedIcon.js +7 -18
- package/dist/components/RoundedIcon/roundedIcon.scss +2 -2
- package/dist/components/Tip/Tip.js +25 -40
- package/dist/components/Tip/Tip.test.js +36 -45
- package/dist/components/Tooltip/Tooltip.js +40 -64
- package/dist/components/TooltipTemplate/ProducerTooltipTemplate.js +2 -8
- package/dist/components/TooltipTemplate/TextTooltipTemplate.js +2 -12
- package/dist/components/Wizard/Wizard.js +35 -57
- package/dist/components/Wizard/Wizard.scss +1 -3
- package/dist/components/Wizard/WizardSteps/WizardSteps.js +4 -16
- package/dist/components/Wizard/WizardSteps/WizardSteps.scss +1 -0
- package/dist/components/index.js +0 -18
- package/dist/constants.js +4 -6
- package/dist/elements/FormActionButton/FormActionButton.js +6 -12
- package/dist/elements/FormRowActions/FormRowActions.js +6 -18
- package/dist/elements/HiddenChipsBlock/HiddenChipsBlock.js +37 -55
- package/dist/elements/OptionsMenu/OptionsMenu.js +4 -14
- package/dist/elements/SelectOption/SelectOption.js +6 -18
- package/dist/elements/SelectOption/SelectOption.test.js +19 -12
- package/dist/elements/SelectOption/selectOption.scss +5 -2
- package/dist/elements/ValidationTemplate/ValidationTemplate.js +2 -11
- package/dist/elements/index.js +0 -6
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/useDebounce.js +1 -5
- package/dist/hooks/useDetectOutsideClick.js +4 -8
- package/dist/hooks/useFormTable.hook.js +31 -41
- package/dist/images/archive-icon.svg +3 -0
- package/dist/images/arrow.svg +1 -1
- package/dist/images/close.svg +2 -2
- package/dist/images/collapse.svg +2 -2
- package/dist/images/copy-to-clipboard-icon.svg +3 -0
- package/dist/images/deploy-icon.svg +4 -0
- package/dist/images/edit.svg +1 -1
- package/dist/images/edit_old.svg +3 -0
- package/dist/images/expand.svg +2 -2
- package/dist/images/eye-icon.svg +3 -0
- package/dist/images/link-icon.svg +5 -0
- package/dist/images/monitor-icon.svg +3 -0
- package/dist/images/refresh.svg +1 -1
- package/dist/images/tag-icon.svg +4 -0
- package/dist/images/unarchive-icon.svg +3 -0
- package/dist/images/yaml.svg +2 -3
- package/dist/images/yaml_old.svg +4 -0
- package/dist/index.js +0 -13
- package/dist/scss/borders.scss +1 -1
- package/dist/scss/colors.scss +2 -0
- package/dist/scss/common.scss +7 -3
- package/dist/scss/mixins.scss +6 -19
- package/dist/scss/shadows.scss +3 -3
- package/dist/scss/variables.scss +2 -0
- package/dist/types.js +19 -49
- package/dist/utils/common.util.js +3 -13
- package/dist/utils/form.util.js +20 -24
- package/dist/utils/generateChipsList.util.js +0 -3
- package/dist/utils/getFirstScrollableParent.util.js +0 -5
- package/dist/utils/validation.util.js +72 -94
- package/package.json +104 -104
- package/dist/images/eye.svg +0 -4
|
@@ -4,25 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
9
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
13
|
-
|
|
14
10
|
var _reactFinalFormArrays = require("react-final-form-arrays");
|
|
15
|
-
|
|
16
11
|
var _components = require("../../components");
|
|
17
|
-
|
|
18
12
|
var _elements = require("../../elements");
|
|
19
|
-
|
|
20
13
|
var _useFormTable2 = require("../../hooks/useFormTable.hook");
|
|
21
|
-
|
|
22
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
-
|
|
24
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
16
|
/*
|
|
27
17
|
Copyright 2022 Iguazio Systems Ltd.
|
|
28
18
|
Licensed under the Apache License, Version 2.0 (the "License") with
|
|
@@ -39,38 +29,36 @@ illegal under applicable law, and the grant of the foregoing license
|
|
|
39
29
|
under the Apache 2.0 license is conditioned upon your compliance with
|
|
40
30
|
such restriction.
|
|
41
31
|
*/
|
|
32
|
+
|
|
42
33
|
var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
43
34
|
var addNewItemLabel = _ref.addNewItemLabel,
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
35
|
+
className = _ref.className,
|
|
36
|
+
defaultKey = _ref.defaultKey,
|
|
37
|
+
disabled = _ref.disabled,
|
|
38
|
+
fieldsPath = _ref.fieldsPath,
|
|
39
|
+
formState = _ref.formState,
|
|
40
|
+
isKeyRequired = _ref.isKeyRequired,
|
|
41
|
+
isValueRequired = _ref.isValueRequired,
|
|
42
|
+
keyHeader = _ref.keyHeader,
|
|
43
|
+
keyLabel = _ref.keyLabel,
|
|
44
|
+
keyOptions = _ref.keyOptions,
|
|
45
|
+
valueHeader = _ref.valueHeader,
|
|
46
|
+
valueLabel = _ref.valueLabel;
|
|
56
47
|
var tableClassNames = (0, _classnames.default)('form-table form-key-value-table', className);
|
|
57
|
-
|
|
58
48
|
var _useFormTable = (0, _useFormTable2.useFormTable)(formState),
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
49
|
+
editingItem = _useFormTable.editingItem,
|
|
50
|
+
addNewRow = _useFormTable.addNewRow,
|
|
51
|
+
applyChanges = _useFormTable.applyChanges,
|
|
52
|
+
deleteRow = _useFormTable.deleteRow,
|
|
53
|
+
discardOrDelete = _useFormTable.discardOrDelete,
|
|
54
|
+
enterEditMode = _useFormTable.enterEditMode,
|
|
55
|
+
bottomScrollRef = _useFormTable.bottomScrollRef;
|
|
67
56
|
var uniquenessValidator = function uniquenessValidator(fields, newValue) {
|
|
68
57
|
return !fields.value.some(function (_ref2, index) {
|
|
69
58
|
var key = _ref2.data.key;
|
|
70
59
|
return newValue.trim() === key && index !== editingItem.ui.index;
|
|
71
60
|
});
|
|
72
61
|
};
|
|
73
|
-
|
|
74
62
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
75
63
|
className: tableClassNames,
|
|
76
64
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
@@ -88,12 +76,10 @@ var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
|
88
76
|
name: fieldsPath,
|
|
89
77
|
children: function children(_ref3) {
|
|
90
78
|
var _editingItem$ui3;
|
|
91
|
-
|
|
92
79
|
var fields = _ref3.fields;
|
|
93
80
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
94
81
|
children: [fields.map(function (contentItem, index) {
|
|
95
82
|
var _editingItem$ui, _editingItem$ui2;
|
|
96
|
-
|
|
97
83
|
var tableRowClassNames = (0, _classnames.default)('form-table__row', fieldsPath === (editingItem === null || editingItem === void 0 ? void 0 : (_editingItem$ui = editingItem.ui) === null || _editingItem$ui === void 0 ? void 0 : _editingItem$ui.fieldsPath) && (editingItem === null || editingItem === void 0 ? void 0 : (_editingItem$ui2 = editingItem.ui) === null || _editingItem$ui2 === void 0 ? void 0 : _editingItem$ui2.index) === index && 'active');
|
|
98
84
|
return editingItem && index === editingItem.ui.index && !disabled ? /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
99
85
|
className: tableRowClassNames,
|
|
@@ -101,12 +87,12 @@ var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
|
101
87
|
className: "form-table__cell form-table__cell_1",
|
|
102
88
|
children: keyOptions ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormSelect, {
|
|
103
89
|
name: "".concat(contentItem, ".data.key"),
|
|
104
|
-
density: "
|
|
90
|
+
density: "normal",
|
|
105
91
|
options: keyOptions
|
|
106
92
|
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormInput, {
|
|
107
93
|
className: "input_edit",
|
|
108
94
|
placeholder: keyLabel,
|
|
109
|
-
density: "
|
|
95
|
+
density: "normal",
|
|
110
96
|
name: "".concat(contentItem, ".data.key"),
|
|
111
97
|
required: isKeyRequired,
|
|
112
98
|
validationRules: [{
|
|
@@ -122,7 +108,7 @@ var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
|
122
108
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.FormInput, {
|
|
123
109
|
className: "input_edit",
|
|
124
110
|
placeholder: valueLabel,
|
|
125
|
-
density: "
|
|
111
|
+
density: "normal",
|
|
126
112
|
name: "".concat(contentItem, ".data.value"),
|
|
127
113
|
required: isValueRequired
|
|
128
114
|
})
|
|
@@ -174,7 +160,6 @@ var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
|
174
160
|
for (var _len = arguments.length, addRowArgs = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
175
161
|
addRowArgs[_key] = arguments[_key];
|
|
176
162
|
}
|
|
177
|
-
|
|
178
163
|
return addNewRow.apply(void 0, addRowArgs.concat([{
|
|
179
164
|
data: {
|
|
180
165
|
key: defaultKey || '',
|
|
@@ -189,7 +174,6 @@ var FormKeyValueTable = function FormKeyValueTable(_ref) {
|
|
|
189
174
|
})]
|
|
190
175
|
});
|
|
191
176
|
};
|
|
192
|
-
|
|
193
177
|
FormKeyValueTable.defaultProps = {
|
|
194
178
|
addNewItemLabel: 'Add new item',
|
|
195
179
|
className: '',
|
|
@@ -1,42 +1,46 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
|
|
12
10
|
var _reactFinalForm = require("react-final-form");
|
|
13
|
-
|
|
14
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
-
|
|
16
12
|
require("./FormRadio.scss");
|
|
17
|
-
|
|
18
13
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
-
|
|
20
14
|
var _excluded = ["className", "name", "label"];
|
|
21
|
-
|
|
15
|
+
/*
|
|
16
|
+
Copyright 2022 Iguazio Systems Ltd.
|
|
17
|
+
Licensed under the Apache License, Version 2.0 (the "License") with
|
|
18
|
+
an addition restriction as set forth herein. You may not use this
|
|
19
|
+
file except in compliance with the License. You may obtain a copy of
|
|
20
|
+
the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
21
|
+
Unless required by applicable law or agreed to in writing, software
|
|
22
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
23
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
24
|
+
implied. See the License for the specific language governing
|
|
25
|
+
permissions and limitations under the License.
|
|
26
|
+
In addition, you may not use the software for any purposes that are
|
|
27
|
+
illegal under applicable law, and the grant of the foregoing license
|
|
28
|
+
under the Apache 2.0 license is conditioned upon your compliance with
|
|
29
|
+
such restriction.
|
|
30
|
+
*/
|
|
22
31
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
32
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
-
|
|
26
33
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
34
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
35
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
36
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
30
37
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
31
|
-
|
|
32
38
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
33
|
-
|
|
34
39
|
var FormRadio = function FormRadio(_ref) {
|
|
35
40
|
var className = _ref.className,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
name = _ref.name,
|
|
42
|
+
label = _ref.label,
|
|
43
|
+
inputProps = _objectWithoutProperties(_ref, _excluded);
|
|
40
44
|
var formFieldClassNames = (0, _classnames.default)('form-field-radio', className);
|
|
41
45
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
|
|
42
46
|
name: name,
|
|
@@ -56,7 +60,6 @@ var FormRadio = function FormRadio(_ref) {
|
|
|
56
60
|
}
|
|
57
61
|
});
|
|
58
62
|
};
|
|
59
|
-
|
|
60
63
|
FormRadio.defaultProps = {
|
|
61
64
|
className: '',
|
|
62
65
|
label: ''
|
|
@@ -66,7 +69,5 @@ FormRadio.propTypes = {
|
|
|
66
69
|
name: _propTypes.default.string.isRequired,
|
|
67
70
|
label: _propTypes.default.string.isRequired
|
|
68
71
|
};
|
|
69
|
-
|
|
70
72
|
var _default = /*#__PURE__*/_react.default.memo(FormRadio);
|
|
71
|
-
|
|
72
73
|
exports.default = _default;
|
|
@@ -1,138 +1,114 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
-
|
|
14
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
15
|
-
|
|
16
11
|
var _reactFinalForm = require("react-final-form");
|
|
17
|
-
|
|
18
12
|
var _ConfirmDialog = _interopRequireDefault(require("../ConfirmDialog/ConfirmDialog"));
|
|
19
|
-
|
|
20
13
|
var _PopUpDialog = _interopRequireDefault(require("../PopUpDialog/PopUpDialog"));
|
|
21
|
-
|
|
22
14
|
var _SelectOption = _interopRequireDefault(require("../../elements/SelectOption/SelectOption"));
|
|
23
|
-
|
|
24
15
|
var _TextTooltipTemplate = _interopRequireDefault(require("../TooltipTemplate/TextTooltipTemplate"));
|
|
25
|
-
|
|
26
16
|
var _Tooltip = _interopRequireDefault(require("../Tooltip/Tooltip"));
|
|
27
|
-
|
|
28
17
|
var _types = require("../../types");
|
|
29
|
-
|
|
30
18
|
var _constants = require("../../constants");
|
|
31
|
-
|
|
32
19
|
var _dropdown = require("../../images/dropdown.svg");
|
|
33
|
-
|
|
34
20
|
require("./formSelect.scss");
|
|
35
|
-
|
|
36
21
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
|
-
|
|
38
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
39
|
-
|
|
40
23
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
41
|
-
|
|
42
24
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
43
|
-
|
|
44
25
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
45
|
-
|
|
46
26
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
47
|
-
|
|
48
|
-
function
|
|
49
|
-
|
|
27
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
28
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
29
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
50
30
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
51
|
-
|
|
52
31
|
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."); }
|
|
53
|
-
|
|
54
32
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
55
|
-
|
|
56
|
-
function
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
33
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
34
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
35
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } /*
|
|
36
|
+
Copyright 2022 Iguazio Systems Ltd.
|
|
37
|
+
Licensed under the Apache License, Version 2.0 (the "License") with
|
|
38
|
+
an addition restriction as set forth herein. You may not use this
|
|
39
|
+
file except in compliance with the License. You may obtain a copy of
|
|
40
|
+
the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
41
|
+
Unless required by applicable law or agreed to in writing, software
|
|
42
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
43
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
44
|
+
implied. See the License for the specific language governing
|
|
45
|
+
permissions and limitations under the License.
|
|
46
|
+
In addition, you may not use the software for any purposes that are
|
|
47
|
+
illegal under applicable law, and the grant of the foregoing license
|
|
48
|
+
under the Apache 2.0 license is conditioned upon your compliance with
|
|
49
|
+
such restriction.
|
|
50
|
+
*/
|
|
62
51
|
var FormSelect = function FormSelect(_ref) {
|
|
63
52
|
var _selectRef$current;
|
|
64
|
-
|
|
65
53
|
var className = _ref.className,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
54
|
+
density = _ref.density,
|
|
55
|
+
disabled = _ref.disabled,
|
|
56
|
+
hideSelectedOption = _ref.hideSelectedOption,
|
|
57
|
+
label = _ref.label,
|
|
58
|
+
multiple = _ref.multiple,
|
|
59
|
+
name = _ref.name,
|
|
60
|
+
onChange = _ref.onChange,
|
|
61
|
+
options = _ref.options,
|
|
62
|
+
required = _ref.required,
|
|
63
|
+
search = _ref.search,
|
|
64
|
+
selectedItemAction = _ref.selectedItemAction,
|
|
65
|
+
tooltip = _ref.tooltip,
|
|
66
|
+
withoutBorder = _ref.withoutBorder,
|
|
67
|
+
withSelectedIcon = _ref.withSelectedIcon;
|
|
81
68
|
var _useField = (0, _reactFinalForm.useField)(name),
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
69
|
+
input = _useField.input,
|
|
70
|
+
meta = _useField.meta;
|
|
85
71
|
var _useState = (0, _react.useState)(false),
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
72
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
73
|
+
isInvalid = _useState2[0],
|
|
74
|
+
setIsInvalid = _useState2[1];
|
|
90
75
|
var _useState3 = (0, _react.useState)(false),
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
76
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
77
|
+
isConfirmDialogOpen = _useState4[0],
|
|
78
|
+
setConfirmDialogOpen = _useState4[1];
|
|
95
79
|
var _useState5 = (0, _react.useState)(false),
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
80
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
81
|
+
isOpen = _useState6[0],
|
|
82
|
+
setOpen = _useState6[1];
|
|
100
83
|
var _useState7 = (0, _react.useState)('bottom-right'),
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
84
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
85
|
+
position = _useState8[0],
|
|
86
|
+
setPosition = _useState8[1];
|
|
105
87
|
var _useState9 = (0, _react.useState)(''),
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
88
|
+
_useState10 = _slicedToArray(_useState9, 2),
|
|
89
|
+
searchValue = _useState10[0],
|
|
90
|
+
setSearchValue = _useState10[1];
|
|
110
91
|
var selectRef = (0, _react.useRef)();
|
|
111
92
|
var popUpRef = (0, _react.useRef)();
|
|
112
|
-
|
|
113
93
|
var _ref2 = (selectRef === null || selectRef === void 0 ? void 0 : (_selectRef$current = selectRef.current) === null || _selectRef$current === void 0 ? void 0 : _selectRef$current.getBoundingClientRect()) || {},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
94
|
+
selectWidth = _ref2.width,
|
|
95
|
+
selectLeft = _ref2.left;
|
|
117
96
|
var selectWrapperClassNames = (0, _classnames.default)('form-field__wrapper', "form-field__wrapper-".concat(density), disabled && 'form-field__wrapper-disabled', isOpen && 'form-field__wrapper-active', isInvalid && 'form-field__wrapper-invalid', withoutBorder && 'without-border');
|
|
118
97
|
var selectLabelClassName = (0, _classnames.default)('form-field__label', disabled && 'form-field__label-disabled');
|
|
119
98
|
var selectValueClassName = (0, _classnames.default)('form-field__select-value', !input.value && 'form-field__select-placeholder');
|
|
120
99
|
var selectedOption = options.find(function (option) {
|
|
121
100
|
return option.id === input.value;
|
|
122
101
|
});
|
|
123
|
-
|
|
124
102
|
var getSelectValue = function getSelectValue() {
|
|
125
103
|
if (!input.value || !input.value.length) {
|
|
126
104
|
return "Select Option".concat(multiple ? 's' : '');
|
|
127
105
|
}
|
|
128
|
-
|
|
129
106
|
return !multiple ? selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label : input.value.length <= 2 ? options.filter(function (option) {
|
|
130
107
|
return input.value.includes(option.id);
|
|
131
108
|
}).map(function (option) {
|
|
132
109
|
return option.label;
|
|
133
110
|
}).join(', ') : "".concat(input.value.length, " items selected");
|
|
134
111
|
};
|
|
135
|
-
|
|
136
112
|
(0, _react.useEffect)(function () {
|
|
137
113
|
setIsInvalid(meta.invalid && (meta.validating || meta.modified || meta.submitFailed && meta.touched));
|
|
138
114
|
}, [meta.invalid, meta.modified, meta.submitFailed, meta.touched, meta.validating]);
|
|
@@ -161,8 +137,7 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
161
137
|
(0, _react.useLayoutEffect)(function () {
|
|
162
138
|
if (popUpRef !== null && popUpRef !== void 0 && popUpRef.current) {
|
|
163
139
|
var _popUpRef$current$get = popUpRef.current.getBoundingClientRect(),
|
|
164
|
-
|
|
165
|
-
|
|
140
|
+
width = _popUpRef$current$get.width;
|
|
166
141
|
selectLeft + width > window.innerWidth ? setPosition('bottom-left') : setPosition('bottom-right');
|
|
167
142
|
}
|
|
168
143
|
}, [isOpen, selectLeft]);
|
|
@@ -170,14 +145,12 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
170
145
|
if (isOpen) {
|
|
171
146
|
window.addEventListener('scroll', handleScroll, true);
|
|
172
147
|
}
|
|
173
|
-
|
|
174
148
|
window.addEventListener('click', clickHandler);
|
|
175
149
|
return function () {
|
|
176
150
|
window.removeEventListener('click', clickHandler);
|
|
177
151
|
window.removeEventListener('scroll', handleScroll, true);
|
|
178
152
|
};
|
|
179
153
|
}, [clickHandler, handleScroll, isOpen]);
|
|
180
|
-
|
|
181
154
|
var toggleOpen = function toggleOpen() {
|
|
182
155
|
if (isOpen) {
|
|
183
156
|
closeMenu();
|
|
@@ -185,17 +158,14 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
185
158
|
!disabled && openMenu();
|
|
186
159
|
}
|
|
187
160
|
};
|
|
188
|
-
|
|
189
161
|
var handleCloseSelectBody = (0, _react.useCallback)(function (event) {
|
|
190
162
|
event.stopPropagation();
|
|
191
163
|
if (multiple) return;
|
|
192
|
-
|
|
193
164
|
if (!event.target.classList.contains('disabled') && !event.target.closest('.options-list__search')) {
|
|
194
165
|
closeMenu();
|
|
195
166
|
setSearchValue('');
|
|
196
167
|
}
|
|
197
168
|
}, [closeMenu, multiple]);
|
|
198
|
-
|
|
199
169
|
var handleSelectOptionClick = function handleSelectOptionClick(selectedOption, option) {
|
|
200
170
|
if (selectedOption !== input.value) {
|
|
201
171
|
option.handler && option.handler();
|
|
@@ -205,19 +175,17 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
205
175
|
});
|
|
206
176
|
}
|
|
207
177
|
};
|
|
208
|
-
|
|
209
178
|
var validateField = function validateField(value) {
|
|
210
179
|
if (required) {
|
|
211
180
|
return value ? undefined : 'Required';
|
|
212
181
|
}
|
|
213
182
|
};
|
|
214
|
-
|
|
215
183
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactFinalForm.Field, {
|
|
216
184
|
name: name,
|
|
217
185
|
validate: validateField,
|
|
218
186
|
children: function children(_ref3) {
|
|
219
187
|
var input = _ref3.input,
|
|
220
|
-
|
|
188
|
+
meta = _ref3.meta;
|
|
221
189
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Tooltip.default, {
|
|
222
190
|
className: "select-tooltip",
|
|
223
191
|
template: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextTooltipTemplate.default, {
|
|
@@ -265,7 +233,6 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
265
233
|
} else {
|
|
266
234
|
selectedItemAction.handler(input.value);
|
|
267
235
|
}
|
|
268
|
-
|
|
269
236
|
event.stopPropagation();
|
|
270
237
|
},
|
|
271
238
|
children: selectedItemAction.icon
|
|
@@ -350,7 +317,6 @@ var FormSelect = function FormSelect(_ref) {
|
|
|
350
317
|
}
|
|
351
318
|
});
|
|
352
319
|
};
|
|
353
|
-
|
|
354
320
|
FormSelect.defaultProps = {
|
|
355
321
|
className: '',
|
|
356
322
|
density: 'normal',
|
|
@@ -379,7 +345,5 @@ FormSelect.propTypes = {
|
|
|
379
345
|
withoutBorder: _propTypes.default.bool,
|
|
380
346
|
withSelectedIcon: _propTypes.default.bool
|
|
381
347
|
};
|
|
382
|
-
|
|
383
348
|
var _default = /*#__PURE__*/_react.default.memo(FormSelect);
|
|
384
|
-
|
|
385
349
|
exports.default = _default;
|
|
@@ -1,31 +1,39 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _react = _interopRequireDefault(require("react"));
|
|
4
|
-
|
|
5
4
|
var _Select = _interopRequireDefault(require("./Select"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
6
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
10
|
-
|
|
11
7
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
8
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
13
9
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
-
|
|
15
10
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
16
|
-
|
|
17
|
-
function
|
|
18
|
-
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } /*
|
|
14
|
+
Copyright 2022 Iguazio Systems Ltd.
|
|
15
|
+
Licensed under the Apache License, Version 2.0 (the "License") with
|
|
16
|
+
an addition restriction as set forth herein. You may not use this
|
|
17
|
+
file except in compliance with the License. You may obtain a copy of
|
|
18
|
+
the License at http://www.apache.org/licenses/LICENSE-2.0.
|
|
19
|
+
Unless required by applicable law or agreed to in writing, software
|
|
20
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
21
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
22
|
+
implied. See the License for the specific language governing
|
|
23
|
+
permissions and limitations under the License.
|
|
24
|
+
In addition, you may not use the software for any purposes that are
|
|
25
|
+
illegal under applicable law, and the grant of the foregoing license
|
|
26
|
+
under the Apache 2.0 license is conditioned upon your compliance with
|
|
27
|
+
such restriction.
|
|
28
|
+
*/
|
|
19
29
|
jest.mock('../../images/dropdown.svg', function () {
|
|
20
30
|
return {
|
|
21
31
|
ReactComponent: 'caret-icon'
|
|
22
32
|
};
|
|
23
33
|
});
|
|
24
|
-
|
|
25
34
|
var renderComponent = function renderComponent(props) {
|
|
26
35
|
return (0, _react2.render)( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, _objectSpread({}, props)));
|
|
27
36
|
};
|
|
28
|
-
|
|
29
37
|
describe('Select component', function () {
|
|
30
38
|
var wrapper;
|
|
31
39
|
var mockClick = jest.fn();
|
|
@@ -49,31 +57,21 @@ describe('Select component', function () {
|
|
|
49
57
|
});
|
|
50
58
|
it('should show select body after click by select header', function () {
|
|
51
59
|
var select = wrapper.getByTestId('select');
|
|
52
|
-
|
|
53
60
|
_react2.fireEvent.click(select);
|
|
54
|
-
|
|
55
61
|
expect(wrapper.queryByTestId('select-body')).not.toBeNull();
|
|
56
62
|
});
|
|
57
63
|
it('should hide the select body when scrolling', function () {
|
|
58
64
|
var select = wrapper.getByTestId('select');
|
|
59
|
-
|
|
60
65
|
_react2.fireEvent.click(select);
|
|
61
|
-
|
|
62
66
|
expect(wrapper.queryByTestId('select-body')).not.toBeNull();
|
|
63
|
-
|
|
64
67
|
_react2.fireEvent.scroll(window);
|
|
65
|
-
|
|
66
68
|
expect(wrapper.queryByTestId('select-body')).toBeNull();
|
|
67
69
|
});
|
|
68
70
|
it('should call "onClick" callback with "test1"', function () {
|
|
69
71
|
var select = wrapper.getByTestId('select');
|
|
70
|
-
|
|
71
72
|
_react2.fireEvent.click(select);
|
|
72
|
-
|
|
73
73
|
var selectOption = wrapper.getByTestId('select-option');
|
|
74
|
-
|
|
75
74
|
_react2.fireEvent.click(selectOption);
|
|
76
|
-
|
|
77
75
|
expect(mockClick).toHaveBeenCalledWith('test1');
|
|
78
76
|
});
|
|
79
77
|
it('should not close "selectBody" if click by disabled option', function () {
|
|
@@ -86,24 +84,16 @@ describe('Select component', function () {
|
|
|
86
84
|
};
|
|
87
85
|
wrapper.rerender( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, _objectSpread({}, props)));
|
|
88
86
|
var select = wrapper.getByTestId('select');
|
|
89
|
-
|
|
90
87
|
_react2.fireEvent.click(select);
|
|
91
|
-
|
|
92
88
|
var selectOption = wrapper.getByTestId('select-option');
|
|
93
|
-
|
|
94
89
|
_react2.fireEvent.click(selectOption);
|
|
95
|
-
|
|
96
90
|
expect(wrapper.queryByTestId('select-body')).not.toBeNull();
|
|
97
91
|
});
|
|
98
92
|
it('should display selected option', function () {
|
|
99
93
|
var select = wrapper.getByTestId('select');
|
|
100
|
-
|
|
101
94
|
_react2.fireEvent.click(select);
|
|
102
|
-
|
|
103
95
|
var selectOption = wrapper.getByTestId('select-option');
|
|
104
|
-
|
|
105
96
|
_react2.fireEvent.click(selectOption);
|
|
106
|
-
|
|
107
97
|
expect(mockClick).toHaveBeenCalledWith('test1');
|
|
108
98
|
wrapper.rerender( /*#__PURE__*/(0, _jsxRuntime.jsx)(_Select.default, {
|
|
109
99
|
options: [{
|
|
@@ -127,9 +117,7 @@ describe('Select component', function () {
|
|
|
127
117
|
disabled: true
|
|
128
118
|
}));
|
|
129
119
|
var select = wrapper.getByTestId('select');
|
|
130
|
-
|
|
131
120
|
_react2.fireEvent.click(select);
|
|
132
|
-
|
|
133
121
|
expect(wrapper.queryByTestId('select-body')).toBeNull();
|
|
134
122
|
});
|
|
135
123
|
it('should display a "subLabel" if it exists in the option', function () {
|
|
@@ -146,13 +134,9 @@ describe('Select component', function () {
|
|
|
146
134
|
}]
|
|
147
135
|
}));
|
|
148
136
|
var select = wrapper.getByTestId('select');
|
|
149
|
-
|
|
150
137
|
_react2.fireEvent.click(select);
|
|
151
|
-
|
|
152
138
|
var selectOption = wrapper.getByTestId('select-option');
|
|
153
|
-
|
|
154
139
|
_react2.fireEvent.click(selectOption);
|
|
155
|
-
|
|
156
140
|
expect(mockHandler).toHaveBeenCalled();
|
|
157
141
|
});
|
|
158
142
|
});
|