@orfium/ictinus 4.86.0-next.1 → 4.86.0-next.2
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/Chart/LineChart/utils.js +4 -9
- package/dist/components/DatePicker/DatePicker.js +3 -5
- package/dist/components/Filter/Filter.js +15 -14
- package/dist/components/Filter/hooks/useMultiFilterUtils.js +2 -3
- package/dist/components/List/NormalList/NormalList.js +2 -2
- package/dist/components/Menu/Menu.js +3 -7
- package/dist/components/MultiTextFieldBase/MultiTextFieldBase.js +2 -2
- package/dist/components/Select/Select.d.ts +2 -2
- package/dist/components/Select/Select.js +9 -11
- package/dist/components/ThemeProvider/ThemeProvider.js +2 -4
- package/dist/components/utils/PositionInScreen/PositionInScreen.d.ts +2 -0
- package/dist/components/utils/PositionInScreen/PositionInScreen.js +10 -2
- package/dist/components/utils/PositionInScreen/hooks.js +32 -40
- package/dist/test/utils.js +2 -1
- package/package.json +1 -1
|
@@ -2,22 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.getKeyNames = exports.colorPicker = void 0;
|
|
5
|
-
var
|
|
6
|
-
var _keys = _interopRequireDefault(require("lodash/keys"));
|
|
7
|
-
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
8
|
-
var _sampleSize = _interopRequireDefault(require("lodash/sampleSize"));
|
|
9
|
-
var _uniq = _interopRequireDefault(require("lodash/uniq"));
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
5
|
+
var _lodash = require("lodash");
|
|
11
6
|
var getKeyNames = exports.getKeyNames = function getKeyNames(data) {
|
|
12
|
-
return (0,
|
|
13
|
-
return (0,
|
|
7
|
+
return (0, _lodash.uniq)((0, _lodash.flatten)(data.map(function (object) {
|
|
8
|
+
return (0, _lodash.keys)((0, _lodash.omit)(object, 'name'));
|
|
14
9
|
})));
|
|
15
10
|
};
|
|
16
11
|
var colorPicker = exports.colorPicker = function colorPicker(_ref) {
|
|
17
12
|
var theme = _ref.theme,
|
|
18
13
|
uniqueKeyNames = _ref.uniqueKeyNames,
|
|
19
14
|
color = _ref.color;
|
|
20
|
-
var colorSample = (0,
|
|
15
|
+
var colorSample = (0, _lodash.sampleSize)(theme.palette.flat, uniqueKeyNames.length);
|
|
21
16
|
return uniqueKeyNames.reduce(function (acc, key, index) {
|
|
22
17
|
var _colorSample$index;
|
|
23
18
|
var definedColor = typeof color === 'function' && color(key) ? color(key) : (_colorSample$index = colorSample[index]) == null ? void 0 : _colorSample$index[400];
|
|
@@ -8,7 +8,6 @@ var _DatePicker = require("./DatePicker.style");
|
|
|
8
8
|
var _DatePickInput = _interopRequireDefault(require("./DatePickInput"));
|
|
9
9
|
var _OverlayComponent = _interopRequireDefault(require("./OverlayComponent/OverlayComponent"));
|
|
10
10
|
var _utils = require("./utils");
|
|
11
|
-
var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
|
|
12
11
|
var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
|
|
13
12
|
var _react2 = require("@emotion/react");
|
|
14
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -171,10 +170,9 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
171
170
|
var onApply = (0, _react.useCallback)(function () {
|
|
172
171
|
applyRangeAndClose(range);
|
|
173
172
|
}, [applyRangeAndClose, range]);
|
|
174
|
-
return (0, _react2.jsx)(
|
|
175
|
-
onClick: onCancel
|
|
176
|
-
}, (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
173
|
+
return (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
177
174
|
visible: isOpen,
|
|
175
|
+
setIsVisible: onCancel,
|
|
178
176
|
parent: (0, _react2.jsx)(_DatePickInput["default"], {
|
|
179
177
|
filterConfig: filterConfig,
|
|
180
178
|
isRangePicker: isRangePicker,
|
|
@@ -198,6 +196,6 @@ var DatePicker = function DatePicker(_ref) {
|
|
|
198
196
|
disabledDates: disableDates,
|
|
199
197
|
onCancel: onCancel,
|
|
200
198
|
onApply: onApply
|
|
201
|
-
})))
|
|
199
|
+
})));
|
|
202
200
|
};
|
|
203
201
|
var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(DatePicker, _reactFastCompare["default"]);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _lodash = require("lodash");
|
|
6
6
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
7
|
var _helpers = require("../../utils/helpers");
|
|
8
8
|
var _FilterBase = _interopRequireDefault(require("./components/FilterBase"));
|
|
@@ -10,13 +10,12 @@ var _MultiFilter = _interopRequireDefault(require("./components/MultiFilter/Mult
|
|
|
10
10
|
var _SingleFilter = _interopRequireDefault(require("./components/SingleFilter/SingleFilter"));
|
|
11
11
|
var _useMultiFilterUtils2 = _interopRequireDefault(require("./hooks/useMultiFilterUtils"));
|
|
12
12
|
var _utils = require("./utils");
|
|
13
|
-
var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
|
|
14
13
|
var _handleSearch = _interopRequireDefault(require("../utils/handleSearch"));
|
|
15
14
|
var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen/PositionInScreen"));
|
|
16
15
|
var _react2 = require("@emotion/react");
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
17
|
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); }
|
|
18
18
|
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; }
|
|
19
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
20
19
|
var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
21
20
|
var items = props.items,
|
|
22
21
|
onSelect = props.onSelect,
|
|
@@ -85,7 +84,10 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
85
84
|
handleOptionDelete = _useMultiFilterUtils.handleOptionDelete,
|
|
86
85
|
handleClearAllOptions = _useMultiFilterUtils.handleClearAllOptions,
|
|
87
86
|
handleMultiSelectOptionClick = _useMultiFilterUtils.handleMultiSelectOptionClick;
|
|
88
|
-
var
|
|
87
|
+
var debouncedOnChange = (0, _react.useCallback)((0, _lodash.debounce)(function (value) {
|
|
88
|
+
onAsyncSearch == null || onAsyncSearch(value);
|
|
89
|
+
}, 400), []);
|
|
90
|
+
var handleChange = (0, _react.useCallback)(function (event) {
|
|
89
91
|
var isAsync = typeof onAsyncSearch === 'function';
|
|
90
92
|
(0, _handleSearch["default"])({
|
|
91
93
|
event: event,
|
|
@@ -95,7 +97,7 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
95
97
|
onChange: debouncedOnChange,
|
|
96
98
|
minCharactersToSearch: minCharactersToSearch
|
|
97
99
|
});
|
|
98
|
-
};
|
|
100
|
+
}, [debouncedOnChange, isSearchable, minCharactersToSearch, multi, onAsyncSearch]);
|
|
99
101
|
var filteredOptions = (0, _react.useMemo)(function () {
|
|
100
102
|
var optionsToBeFiltered = multi ? availableMultiFilters : items;
|
|
101
103
|
if (onAsyncSearch) {
|
|
@@ -110,10 +112,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
110
112
|
setSearchValue('');
|
|
111
113
|
setIsOpen(!isOpen);
|
|
112
114
|
};
|
|
113
|
-
var debouncedOnChange = _react["default"].useCallback((0, _debounce["default"])(function (value) {
|
|
114
|
-
onAsyncSearch == null || onAsyncSearch(value);
|
|
115
|
-
}, 400), []);
|
|
116
115
|
var handleSelect = function handleSelect(option) {
|
|
116
|
+
debugger;
|
|
117
|
+
console.log('hey');
|
|
117
118
|
if (multi) {
|
|
118
119
|
handleMultiSelectOptionClick(option);
|
|
119
120
|
} else {
|
|
@@ -133,6 +134,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
133
134
|
onClear();
|
|
134
135
|
}
|
|
135
136
|
};
|
|
137
|
+
console.log({
|
|
138
|
+
selectedItem: selectedItem
|
|
139
|
+
});
|
|
136
140
|
var getFilter = function getFilter() {
|
|
137
141
|
return multi ? (0, _react2.jsx)(_MultiFilter["default"], {
|
|
138
142
|
selectedItems: multiFilters,
|
|
@@ -158,12 +162,9 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
158
162
|
shouldDisplayDefaultOption: shouldDisplayDefaultOption
|
|
159
163
|
});
|
|
160
164
|
};
|
|
161
|
-
return (0, _react2.jsx)(
|
|
162
|
-
onClick: function onClick() {
|
|
163
|
-
return setIsOpen(false);
|
|
164
|
-
}
|
|
165
|
-
}, (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
165
|
+
return (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
166
166
|
visible: isOpen,
|
|
167
|
+
setIsVisible: setIsOpen,
|
|
167
168
|
hasWrapperWidth: true,
|
|
168
169
|
offsetY: 8,
|
|
169
170
|
sx: {
|
|
@@ -187,7 +188,7 @@ var Filter = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
|
|
|
187
188
|
styleType: styleType,
|
|
188
189
|
multi: multi
|
|
189
190
|
})
|
|
190
|
-
}, getFilter())
|
|
191
|
+
}, getFilter());
|
|
191
192
|
});
|
|
192
193
|
Filter.displayName = 'Filter';
|
|
193
194
|
var _default = exports["default"] = Filter;
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _lodash = require("lodash");
|
|
6
6
|
var _react = require("react");
|
|
7
7
|
var _constants = require("../../Select/constants");
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
8
|
var useMultiFilterUtils = function useMultiFilterUtils(_ref) {
|
|
10
9
|
var multi = _ref.multi,
|
|
11
10
|
_ref$selectedItems = _ref.selectedItems,
|
|
@@ -70,7 +69,7 @@ var useMultiFilterUtils = function useMultiFilterUtils(_ref) {
|
|
|
70
69
|
}, [availableMultiFilters, multiFilters, onFilterDelete, updateMultiFilterLabel]);
|
|
71
70
|
var handleMultiSelectOptionClick = function handleMultiSelectOptionClick(option) {
|
|
72
71
|
var newItems = [];
|
|
73
|
-
if ((0,
|
|
72
|
+
if ((0, _lodash.isEqual)(option, _constants.SELECT_ALL_OPTION)) {
|
|
74
73
|
newItems = [].concat(multiFilters, availableMultiFilters);
|
|
75
74
|
setMultiFilters(newItems);
|
|
76
75
|
setAvailableMultiFilters([]);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
|
-
var
|
|
5
|
+
var _lodash = require("lodash");
|
|
6
6
|
var _react = _interopRequireDefault(require("react"));
|
|
7
7
|
var _helpers = require("../../../utils/helpers");
|
|
8
8
|
var _List = require("../List.style");
|
|
@@ -54,7 +54,7 @@ var NormalList = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref)
|
|
|
54
54
|
disabled: item == null ? void 0 : item.isDisabled,
|
|
55
55
|
dataTestId: defaultOption && index === 0 ? dataTestId != null ? dataTestId : 'ictinus_list' + '_default_option' : dataTestId,
|
|
56
56
|
handleOptionClick: handleOptionClick,
|
|
57
|
-
selected: defaultOption && index === 0 ? (0,
|
|
57
|
+
selected: defaultOption && index === 0 ? (0, _lodash.isUndefined)(selectedItem) || (0, _utils.isSelected)({
|
|
58
58
|
item: defaultOption,
|
|
59
59
|
selectedItem: selectedItem
|
|
60
60
|
}) : (0, _utils.isSelected)({
|
|
@@ -10,7 +10,6 @@ var _Avatar = _interopRequireDefault(require("../Avatar"));
|
|
|
10
10
|
var _Button = _interopRequireDefault(require("../Button"));
|
|
11
11
|
var _utils = require("../Button/utils");
|
|
12
12
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
13
|
-
var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
|
|
14
13
|
var _DropdownOptions = require("../utils/DropdownOptions");
|
|
15
14
|
var _List = _interopRequireDefault(require("../List"));
|
|
16
15
|
var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
|
|
@@ -49,14 +48,11 @@ var Menu = function Menu(props) {
|
|
|
49
48
|
calculateColorBetweenColorAndType = _useTypeColorToColorM.calculateColorBetweenColorAndType;
|
|
50
49
|
var calculatedColor = calculateColorBetweenColorAndType(color, buttonType);
|
|
51
50
|
var iconColor = filled ? theme.utils.getAAColorFromSwatches(calculatedColor.color, calculatedColor.shade) : (0, _utils.defineBackgroundColor)(theme, calculatedColor, buttonType, true, true);
|
|
52
|
-
return (0, _react2.jsx)(
|
|
53
|
-
onClick: function onClick() {
|
|
54
|
-
return setOpen(false);
|
|
55
|
-
}
|
|
56
|
-
}, (0, _react2.jsx)("div", {
|
|
51
|
+
return (0, _react2.jsx)("div", {
|
|
57
52
|
"data-testid": dataTestId
|
|
58
53
|
}, (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
59
54
|
visible: open,
|
|
55
|
+
setIsVisible: setOpen,
|
|
60
56
|
offsetY: 8,
|
|
61
57
|
parent: (0, _react2.jsx)(_Button["default"], {
|
|
62
58
|
size: size,
|
|
@@ -94,6 +90,6 @@ var Menu = function Menu(props) {
|
|
|
94
90
|
setOpen(false);
|
|
95
91
|
onSelect(option);
|
|
96
92
|
}
|
|
97
|
-
}))))
|
|
93
|
+
}))));
|
|
98
94
|
};
|
|
99
95
|
var _default = exports["default"] = Menu;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
5
|
var _useTheme = _interopRequireDefault(require("../../hooks/useTheme"));
|
|
6
|
-
var
|
|
6
|
+
var _lodash = require("lodash");
|
|
7
7
|
var _omit = _interopRequireDefault(require("lodash/omit"));
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
var _helpers = require("../../utils/helpers");
|
|
@@ -98,7 +98,7 @@ var MultiTextFieldBase = /*#__PURE__*/_react["default"].forwardRef(function (pro
|
|
|
98
98
|
styleType: styleType
|
|
99
99
|
}, rest, {
|
|
100
100
|
isInteractive: isInteractive,
|
|
101
|
-
sx: (0,
|
|
101
|
+
sx: (0, _lodash.merge)((0, _MultiTextFieldBase.textInputBaseOverrides)({
|
|
102
102
|
hasValue: hasValue,
|
|
103
103
|
isLoading: isLoading,
|
|
104
104
|
hasLabel: hasLabel,
|
|
@@ -104,9 +104,9 @@ declare const Select: React.ForwardRefExoticComponent<{
|
|
|
104
104
|
onBlur?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
|
|
105
105
|
onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
|
|
106
106
|
onFocus?: React.FocusEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
|
|
107
|
-
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined;
|
|
107
|
+
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement | HTMLTextAreaElement> | undefined; /** TODO: defaultValue is duplication of selectedOption*/
|
|
108
108
|
onInput?: ((event: any) => void) | undefined;
|
|
109
|
-
hasMinWidthCompat?: boolean | undefined;
|
|
109
|
+
hasMinWidthCompat?: boolean | undefined; /** the function to fetch new options */
|
|
110
110
|
multi?: boolean | undefined;
|
|
111
111
|
multiValues?: string[] | undefined;
|
|
112
112
|
maxMultiValues?: number | undefined;
|
|
@@ -5,15 +5,14 @@ exports["default"] = void 0;
|
|
|
5
5
|
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
6
6
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
7
|
var _helpers = require("../../utils/helpers");
|
|
8
|
+
var _SelectMenu = _interopRequireDefault(require("./components/SelectMenu/SelectMenu"));
|
|
9
|
+
var _useMultiselectUtils2 = _interopRequireDefault(require("./hooks/useMultiselectUtils"));
|
|
10
|
+
var _Select = require("./Select.style");
|
|
8
11
|
var _useCombinedRefs = _interopRequireDefault(require("../../hooks/useCombinedRefs"));
|
|
9
12
|
var _useTheme = _interopRequireDefault(require("../../hooks/useTheme"));
|
|
10
13
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
11
14
|
var _TextField = _interopRequireDefault(require("../TextField"));
|
|
12
|
-
var _ClickAwayListener = _interopRequireDefault(require("../utils/ClickAwayListener"));
|
|
13
15
|
var _handleSearch = _interopRequireDefault(require("../utils/handleSearch"));
|
|
14
|
-
var _SelectMenu = _interopRequireDefault(require("./components/SelectMenu/SelectMenu"));
|
|
15
|
-
var _useMultiselectUtils2 = _interopRequireDefault(require("./hooks/useMultiselectUtils"));
|
|
16
|
-
var _Select = require("./Select.style");
|
|
17
16
|
var _Loader = _interopRequireDefault(require("../Loader"));
|
|
18
17
|
var _MultiTextFieldBase = _interopRequireDefault(require("../MultiTextFieldBase/MultiTextFieldBase"));
|
|
19
18
|
var _PositionInScreen = _interopRequireDefault(require("../utils/PositionInScreen"));
|
|
@@ -239,12 +238,7 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
239
238
|
handleSelectedOption(_selectedOption);
|
|
240
239
|
}
|
|
241
240
|
};
|
|
242
|
-
return (0, _react2.jsx)(
|
|
243
|
-
onClick: function onClick() {
|
|
244
|
-
setOpen(false);
|
|
245
|
-
setSearchValue('');
|
|
246
|
-
}
|
|
247
|
-
}, (0, _react2.jsx)("div", _extends({}, !(disabled || locked) && {
|
|
241
|
+
return (0, _react2.jsx)("div", _extends({}, !(disabled || locked) && {
|
|
248
242
|
onClick: handleClick
|
|
249
243
|
}, {
|
|
250
244
|
css: (0, _Select.selectWrapper)({
|
|
@@ -252,6 +246,10 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
252
246
|
})
|
|
253
247
|
}), (0, _react2.jsx)(_PositionInScreen["default"], {
|
|
254
248
|
visible: open,
|
|
249
|
+
setIsVisible: function setIsVisible() {
|
|
250
|
+
setOpen(false);
|
|
251
|
+
setSearchValue('');
|
|
252
|
+
},
|
|
255
253
|
hasWrapperWidth: true,
|
|
256
254
|
offsetY: 8,
|
|
257
255
|
parent: multi ? (0, _react2.jsx)(_MultiTextFieldBase["default"], _extends({
|
|
@@ -296,7 +294,7 @@ var Select = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
|
|
|
296
294
|
isVirtualized: isVirtualized,
|
|
297
295
|
searchTerm: highlightSearch ? searchValue : undefined,
|
|
298
296
|
hasSelectAllOption: multi && hasSelectAllOption && !hasNoOptionsAndIsCreatable
|
|
299
|
-
})))
|
|
297
|
+
})));
|
|
300
298
|
});
|
|
301
299
|
Select.displayName = 'Select';
|
|
302
300
|
var _default = exports["default"] = Select;
|
|
@@ -4,9 +4,7 @@ exports.__esModule = true;
|
|
|
4
4
|
exports["default"] = void 0;
|
|
5
5
|
var _react = require("@emotion/react");
|
|
6
6
|
var _useThemeSwitch = require("../../hooks/useThemeSwitch");
|
|
7
|
-
var
|
|
8
|
-
var _merge = _interopRequireDefault(require("lodash/merge"));
|
|
9
|
-
var _pick = _interopRequireDefault(require("lodash/pick"));
|
|
7
|
+
var _lodash = require("lodash");
|
|
10
8
|
var _react2 = _interopRequireDefault(require("react"));
|
|
11
9
|
var _theme = _interopRequireDefault(require("../../theme"));
|
|
12
10
|
var _ThemeProvider = require("./ThemeProvider.style");
|
|
@@ -16,7 +14,7 @@ require("../../utils/initLocaleFormat");
|
|
|
16
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
18
16
|
var deepMergeTheme = function deepMergeTheme(newTheme, theming) {
|
|
19
|
-
return (0,
|
|
17
|
+
return (0, _lodash.merge)((0, _theme["default"])(theming), (0, _lodash.pick)(newTheme, (0, _lodash.keys)((0, _theme["default"])(theming))));
|
|
20
18
|
};
|
|
21
19
|
var ThemeProvider = function ThemeProvider(_ref) {
|
|
22
20
|
var _ref$theme = _ref.theme,
|
|
@@ -4,6 +4,8 @@ import { ReactFCC } from 'utils/types';
|
|
|
4
4
|
declare type Props = {
|
|
5
5
|
/** Whether the item to be positioned is visible */
|
|
6
6
|
visible: boolean;
|
|
7
|
+
/** Function to set the visibility of the item */
|
|
8
|
+
setIsVisible: (visible: boolean) => void;
|
|
7
9
|
/** Configures the container's overflow */
|
|
8
10
|
withOverflow?: boolean;
|
|
9
11
|
/** Whether the item to be positioned uses the parent's wrapper width */
|
|
@@ -3,13 +3,17 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = void 0;
|
|
5
5
|
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _reactDom = require("react-dom");
|
|
6
7
|
var _hooks = require("./hooks");
|
|
7
8
|
var _PositionInScreen = require("./PositionInScreen.style");
|
|
9
|
+
var _ClickAwayListener = _interopRequireDefault(require("../../utils/ClickAwayListener"));
|
|
8
10
|
var _react2 = require("@emotion/react");
|
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
12
|
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); }
|
|
10
13
|
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; }
|
|
11
14
|
var PositionInScreen = function PositionInScreen(_ref) {
|
|
12
15
|
var visible = _ref.visible,
|
|
16
|
+
setIsVisible = _ref.setIsVisible,
|
|
13
17
|
parent = _ref.parent,
|
|
14
18
|
withOverflow = _ref.withOverflow,
|
|
15
19
|
_ref$hasWrapperWidth = _ref.hasWrapperWidth,
|
|
@@ -37,12 +41,16 @@ var PositionInScreen = function PositionInScreen(_ref) {
|
|
|
37
41
|
ref: function ref(_ref3) {
|
|
38
42
|
setWrapperRef(_ref3);
|
|
39
43
|
}
|
|
40
|
-
}, parent, (0, _react2.jsx)("
|
|
44
|
+
}, parent, /*#__PURE__*/(0, _reactDom.createPortal)((0, _react2.jsx)(_ClickAwayListener["default"], {
|
|
45
|
+
onClick: function onClick() {
|
|
46
|
+
return setIsVisible(false);
|
|
47
|
+
}
|
|
48
|
+
}, (0, _react2.jsx)("div", {
|
|
41
49
|
css: (0, _PositionInScreen.itemContainer)(x, y, showTooltip, wrapperWidth, sx),
|
|
42
50
|
className: 'unique-tooltip-id',
|
|
43
51
|
ref: function ref(_ref2) {
|
|
44
52
|
setItemRef(_ref2);
|
|
45
53
|
}
|
|
46
|
-
}, children));
|
|
54
|
+
}, children)), document.body));
|
|
47
55
|
};
|
|
48
56
|
var _default = exports["default"] = PositionInScreen;
|
|
@@ -49,62 +49,54 @@ var useHeights = function useHeights(parentRef, itemRef) {
|
|
|
49
49
|
};
|
|
50
50
|
};
|
|
51
51
|
var usePositionInScreen = exports.usePositionInScreen = function usePositionInScreen(parentRef, itemRef, offsetX, offsetY, visible) {
|
|
52
|
+
var _useHeights = useHeights(parentRef, itemRef),
|
|
53
|
+
parentHeight = _useHeights.parentHeight,
|
|
54
|
+
childHeight = _useHeights.childHeight;
|
|
52
55
|
var _useState3 = (0, _react.useState)({
|
|
53
56
|
x: -1,
|
|
54
57
|
y: -1
|
|
55
58
|
}),
|
|
56
59
|
position = _useState3[0],
|
|
57
60
|
setPosition = _useState3[1];
|
|
58
|
-
var _useHeights = useHeights(parentRef, itemRef),
|
|
59
|
-
parentHeight = _useHeights.parentHeight,
|
|
60
|
-
childHeight = _useHeights.childHeight;
|
|
61
61
|
(0, _react.useLayoutEffect)(function () {
|
|
62
|
-
|
|
63
|
-
//
|
|
64
|
-
var
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
62
|
+
var _itemRef$children$, _childRect$width;
|
|
63
|
+
// Define a small buffer for screen edge detection
|
|
64
|
+
var SCREEN_EDGE_BUFFER = 8;
|
|
65
|
+
|
|
66
|
+
// Get parent element dimensions and position
|
|
67
|
+
var parentRect = parentRef == null ? void 0 : parentRef.getBoundingClientRect();
|
|
68
|
+
if (!parentRect) return;
|
|
69
|
+
|
|
70
|
+
// Get viewport-relative coordinates
|
|
71
|
+
var parentX = parentRect.left + window.scrollX;
|
|
72
|
+
var parentY = parentRect.top + window.scrollY;
|
|
73
|
+
var parentWidth = parentRect.width;
|
|
72
74
|
|
|
73
|
-
//
|
|
74
|
-
var
|
|
75
|
-
|
|
76
|
-
},
|
|
77
|
-
width = _ref2.width;
|
|
75
|
+
// Get positioned element dimensions
|
|
76
|
+
var childRect = itemRef == null || (_itemRef$children$ = itemRef.children[0]) == null ? void 0 : _itemRef$children$.getBoundingClientRect();
|
|
77
|
+
var childWidth = (_childRect$width = childRect == null ? void 0 : childRect.width) != null ? _childRect$width : 0;
|
|
78
78
|
|
|
79
|
-
//
|
|
80
|
-
var itemYOutOfScreenHeight =
|
|
79
|
+
// Check if element would overflow screen bounds (with buffer)
|
|
80
|
+
var itemYOutOfScreenHeight = parentRect.top + parentHeight + childHeight > window.innerHeight - SCREEN_EDGE_BUFFER;
|
|
81
|
+
var itemXOutOfScreenWidth = parentRect.left + childWidth > window.innerWidth - SCREEN_EDGE_BUFFER;
|
|
81
82
|
|
|
82
|
-
//
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var x = 0;
|
|
86
|
-
var y = 0;
|
|
83
|
+
// Calculate absolute positions (viewport + scroll)
|
|
84
|
+
var x = parentX + offsetX;
|
|
85
|
+
var y = parentY;
|
|
87
86
|
if (itemYOutOfScreenHeight) {
|
|
88
|
-
//
|
|
87
|
+
// Position above parent if would overflow bottom
|
|
89
88
|
y = y - childHeight - offsetY;
|
|
90
|
-
if (
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
y = parentHeight + offsetY;
|
|
89
|
+
if (y < SCREEN_EDGE_BUFFER) {
|
|
90
|
+
// If would overflow top, fallback to below parent
|
|
91
|
+
y = parentY + parentHeight + offsetY;
|
|
94
92
|
}
|
|
95
93
|
} else {
|
|
96
|
-
//
|
|
97
|
-
y = parentHeight + offsetY;
|
|
94
|
+
// Position below parent
|
|
95
|
+
y = y + parentHeight + offsetY;
|
|
98
96
|
}
|
|
99
|
-
|
|
100
|
-
// If the item-to-be-positioned is out of screen width
|
|
101
|
-
var itemXOutOfScreenWidth = parentX + width > window.innerWidth;
|
|
102
97
|
if (itemXOutOfScreenWidth) {
|
|
103
|
-
//
|
|
104
|
-
x =
|
|
105
|
-
} else {
|
|
106
|
-
// We place the element offset (px) at the right of the parent
|
|
107
|
-
x = offsetX;
|
|
98
|
+
// Align to right edge of parent if would overflow right
|
|
99
|
+
x = parentX + parentWidth - childWidth - offsetX;
|
|
108
100
|
}
|
|
109
101
|
setPosition({
|
|
110
102
|
x: x,
|
package/dist/test/utils.js
CHANGED
|
@@ -31,8 +31,9 @@ var selectDropdownOption = exports.selectDropdownOption = /*#__PURE__*/function
|
|
|
31
31
|
while (1) switch (_context.prev = _context.next) {
|
|
32
32
|
case 0:
|
|
33
33
|
_userEvent["default"].type(dropdownInput, option); // type option on the dropdown input
|
|
34
|
+
_react.screen.debug();
|
|
34
35
|
_userEvent["default"].click(_react.screen.getByText(option)); // select the option from displayed options
|
|
35
|
-
case
|
|
36
|
+
case 3:
|
|
36
37
|
case "end":
|
|
37
38
|
return _context.stop();
|
|
38
39
|
}
|