@pingux/astro 2.32.0-alpha.1 → 2.32.0-alpha.11
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/lib/cjs/components/AccordionGroup/AccordionGroup.stories.js +1 -1
- package/lib/cjs/components/Badge/Badge.stories.js +1 -1
- package/lib/cjs/components/Badge/Convenience/ConvenienceBadges.stories.js +1 -1
- package/lib/cjs/components/Bracket/Bracket.stories.js +1 -1
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +1 -1
- package/lib/cjs/components/Button/Button.stories.d.ts +1 -1
- package/lib/cjs/components/Button/Button.stories.js +1 -1
- package/lib/cjs/components/Calendar/Calendar.stories.js +1 -1
- package/lib/cjs/components/Calendar/Calendar.test.js +9 -32
- package/lib/cjs/components/Callout/Callout.stories.js +1 -1
- package/lib/cjs/components/Card/Card.stories.js +1 -1
- package/lib/cjs/components/CodeView/CodeView.stories.js +1 -1
- package/lib/cjs/components/CollapsiblePanel/CollapsiblePanel.stories.js +1 -1
- package/lib/cjs/components/CopyText/CopyText.stories.js +1 -1
- package/lib/cjs/components/HelpHint/HelpHint.stories.js +1 -1
- package/lib/cjs/components/Icon/Icon.stories.js +1 -1
- package/lib/cjs/components/IconBadge/IconBadge.stories.js +1 -1
- package/lib/cjs/components/IconButton/IconButton.stories.js +1 -1
- package/lib/cjs/components/ImageUploadField/ImageUploadField.test.js +47 -14
- package/lib/cjs/components/Label/Label.test.js +10 -7
- package/lib/cjs/components/Link/Link.stories.js +1 -1
- package/lib/cjs/components/Loader/Loader.stories.js +1 -1
- package/lib/cjs/components/Menu/Menu.stories.js +1 -1
- package/lib/cjs/components/Messages/Messages.js +42 -9
- package/lib/cjs/components/Messages/Messages.stories.js +1 -1
- package/lib/cjs/components/Messages/Messages.test.js +7 -4
- package/lib/cjs/components/Modal/Modal.stories.js +1 -1
- package/lib/cjs/components/NavBar/NavBar.stories.js +1 -1
- package/lib/cjs/components/OverlayPanel/OverlayPanel.stories.js +3 -17
- package/lib/cjs/components/PanelHeader/PanelHeader.stories.js +1 -1
- package/lib/cjs/components/PanelHeader/PanelHeader.test.js +7 -3
- package/lib/cjs/components/PopoverMenu/PopoverMenu.stories.js +1 -1
- package/lib/cjs/components/RequirementsList/RequirementsList.stories.js +1 -1
- package/lib/cjs/components/ScrollBox/ScrollBox.stories.js +1 -1
- package/lib/cjs/components/Separator/Separator.stories.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.stories.js +1 -1
- package/lib/cjs/components/TreeView/TreeView.js +99 -11
- package/lib/cjs/components/TreeView/TreeView.stories.js +23 -10
- package/lib/cjs/components/TreeView/TreeView.styles.js +22 -2
- package/lib/cjs/components/TreeView/TreeView.test.js +91 -11
- package/lib/cjs/components/TreeView/TreeViewItem.js +112 -14
- package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.js +200 -0
- package/lib/cjs/components/TreeView/TreeViewKeyboardDelegate.test.js +511 -0
- package/lib/cjs/components/TreeView/TreeViewRow.js +20 -5
- package/lib/cjs/components/TreeView/TreeViewSection.js +164 -16
- package/lib/cjs/components/TreeView/TreeViewWrapper.js +40 -0
- package/lib/cjs/hooks/useComponentToggle/index.d.ts +1 -0
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.d.ts +32 -0
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.js +4 -20
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.d.ts +1 -0
- package/lib/cjs/hooks/useComponentToggle/useComponentToggle.test.js +8 -9
- package/lib/cjs/hooks/useFallbackImage/index.d.ts +1 -0
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.d.ts +10 -0
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.js +1 -2
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.test.d.ts +1 -0
- package/lib/cjs/hooks/useFallbackImage/useFallbackImage.test.js +9 -9
- package/lib/cjs/hooks/useImageUploadState/index.d.ts +1 -0
- package/lib/cjs/hooks/useImageUploadState/useImageUploadState.d.ts +28 -0
- package/lib/cjs/hooks/useImageUploadState/useImageUploadState.js +9 -6
- package/lib/cjs/hooks/useModalState/index.d.ts +1 -0
- package/lib/cjs/hooks/useModalState/useModalState.d.ts +21 -0
- package/lib/cjs/hooks/useModalState/useModalState.js +0 -9
- package/lib/cjs/hooks/useModalState/useModalState.test.d.ts +1 -0
- package/lib/cjs/recipes/AttributeMapping.stories.js +1 -1
- package/lib/cjs/recipes/ConditionFilter.stories.js +1 -1
- package/lib/cjs/recipes/MaskedValue.stories.js +1 -1
- package/lib/cjs/recipes/MultipagePopup.stories.js +1 -1
- package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +1 -1
- package/lib/cjs/recipes/PanelContent.stories.js +1 -1
- package/lib/cjs/recipes/Slider.stories.js +1 -1
- package/lib/cjs/recipes/TrialExperienceIndustryButtons.stories.js +1 -1
- package/lib/cjs/recipes/TrialExperienceStatusBar.stories.js +1 -1
- package/lib/cjs/utils/designUtils/figmaLinks.d.ts +7 -0
- package/lib/cjs/utils/testUtils/setupTests.d.ts +4 -0
- package/lib/cjs/utils/testUtils/testAxe.d.ts +2 -0
- package/lib/cjs/utils/testUtils/testTheme.d.ts +21 -0
- package/lib/cjs/utils/testUtils/testWrapper.d.ts +5 -0
- package/lib/cjs/utils/testUtils/testWrapper.js +3 -2
- package/lib/cjs/utils/testUtils/universalComponentTest.d.ts +5 -0
- package/lib/cjs/utils/testUtils/universalComponentTest.js +86 -0
- package/lib/components/AccordionGroup/AccordionGroup.stories.js +1 -1
- package/lib/components/Badge/Badge.stories.js +1 -1
- package/lib/components/Badge/Convenience/ConvenienceBadges.stories.js +1 -1
- package/lib/components/Bracket/Bracket.stories.js +1 -1
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +1 -1
- package/lib/components/Button/Button.stories.js +1 -1
- package/lib/components/Calendar/Calendar.stories.js +1 -1
- package/lib/components/Calendar/Calendar.test.js +9 -32
- package/lib/components/Callout/Callout.stories.js +1 -1
- package/lib/components/Card/Card.stories.js +1 -1
- package/lib/components/CodeView/CodeView.stories.js +1 -1
- package/lib/components/CollapsiblePanel/CollapsiblePanel.stories.js +1 -1
- package/lib/components/CopyText/CopyText.stories.js +1 -1
- package/lib/components/HelpHint/HelpHint.stories.js +1 -1
- package/lib/components/Icon/Icon.stories.js +1 -1
- package/lib/components/IconBadge/IconBadge.stories.js +1 -1
- package/lib/components/IconButton/IconButton.stories.js +1 -1
- package/lib/components/ImageUploadField/ImageUploadField.test.js +47 -14
- package/lib/components/Label/Label.test.js +8 -5
- package/lib/components/Link/Link.stories.js +1 -1
- package/lib/components/Loader/Loader.stories.js +1 -1
- package/lib/components/Menu/Menu.stories.js +1 -1
- package/lib/components/Messages/Messages.js +47 -15
- package/lib/components/Messages/Messages.stories.js +1 -1
- package/lib/components/Messages/Messages.test.js +7 -4
- package/lib/components/Modal/Modal.stories.js +1 -1
- package/lib/components/NavBar/NavBar.stories.js +1 -1
- package/lib/components/OverlayPanel/OverlayPanel.stories.js +4 -18
- package/lib/components/PanelHeader/PanelHeader.stories.js +1 -1
- package/lib/components/PanelHeader/PanelHeader.test.js +7 -3
- package/lib/components/PopoverMenu/PopoverMenu.stories.js +1 -1
- package/lib/components/RequirementsList/RequirementsList.stories.js +1 -1
- package/lib/components/ScrollBox/ScrollBox.stories.js +1 -1
- package/lib/components/Separator/Separator.stories.js +1 -1
- package/lib/components/Stepper/Stepper.stories.js +1 -1
- package/lib/components/TreeView/TreeView.js +100 -12
- package/lib/components/TreeView/TreeView.stories.js +23 -10
- package/lib/components/TreeView/TreeView.styles.js +22 -2
- package/lib/components/TreeView/TreeView.test.js +92 -12
- package/lib/components/TreeView/TreeViewItem.js +111 -14
- package/lib/components/TreeView/TreeViewKeyboardDelegate.js +176 -0
- package/lib/components/TreeView/TreeViewKeyboardDelegate.test.js +496 -0
- package/lib/components/TreeView/TreeViewRow.js +20 -5
- package/lib/components/TreeView/TreeViewSection.js +161 -16
- package/lib/components/TreeView/TreeViewWrapper.js +31 -0
- package/lib/hooks/useComponentToggle/useComponentToggle.js +4 -21
- package/lib/hooks/useComponentToggle/useComponentToggle.test.js +8 -9
- package/lib/hooks/useFallbackImage/useFallbackImage.js +1 -2
- package/lib/hooks/useFallbackImage/useFallbackImage.test.js +6 -6
- package/lib/hooks/useImageUploadState/useImageUploadState.js +9 -6
- package/lib/hooks/useModalState/useModalState.js +0 -10
- package/lib/recipes/AttributeMapping.stories.js +1 -1
- package/lib/recipes/ConditionFilter.stories.js +1 -1
- package/lib/recipes/MaskedValue.stories.js +1 -1
- package/lib/recipes/MultipagePopup.stories.js +1 -1
- package/lib/recipes/OneWayToBidirectionalArrow.stories.js +1 -1
- package/lib/recipes/PanelContent.stories.js +1 -1
- package/lib/recipes/Slider.stories.js +1 -1
- package/lib/recipes/TrialExperienceIndustryButtons.stories.js +1 -1
- package/lib/recipes/TrialExperienceStatusBar.stories.js +1 -1
- package/lib/utils/testUtils/testWrapper.js +3 -2
- package/lib/utils/testUtils/universalComponentTest.js +74 -0
- package/package.json +5 -1
@@ -9,7 +9,7 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
|
|
9
9
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
11
11
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
12
|
-
var _excluded = ["title", "mainIcon", "lastIcon", "item", "items", "isExpanded", "isSelected", "isDisabled", "iconButtonProps"];
|
12
|
+
var _excluded = ["title", "mainIcon", "lastIcon", "item", "items", "isExpanded", "isSelected", "isDisabled", "isParentFocused", "iconButtonProps"];
|
13
13
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
14
14
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
15
15
|
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
@@ -35,6 +35,7 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
35
35
|
isExpanded = props.isExpanded,
|
36
36
|
isSelected = props.isSelected,
|
37
37
|
isDisabled = props.isDisabled,
|
38
|
+
isParentFocused = props.isParentFocused,
|
38
39
|
iconButtonProps = props.iconButtonProps,
|
39
40
|
others = _objectWithoutProperties(props, _excluded);
|
40
41
|
var treeRowRef = useRef();
|
@@ -73,13 +74,19 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
73
74
|
}),
|
74
75
|
classNames = _useStatusClasses.classNames;
|
75
76
|
var mergedProps = mergeProps(hoverProps, pressProps, others);
|
77
|
+
|
78
|
+
// console.log(`ROW: ${key} has parent focus: ${isParentFocused}`)
|
79
|
+
|
76
80
|
return ___EmotionJSX(Box, _extends({
|
77
81
|
ref: treeRowRef,
|
78
82
|
isRow: true,
|
79
83
|
alignItems: "center",
|
80
84
|
gap: "xs",
|
81
85
|
sx: {
|
82
|
-
flexGrow: 1
|
86
|
+
flexGrow: 1,
|
87
|
+
'& :focus': {
|
88
|
+
border: 'none'
|
89
|
+
}
|
83
90
|
},
|
84
91
|
className: classNames,
|
85
92
|
key: "".concat(key, " box")
|
@@ -92,15 +99,22 @@ var TreeViewRow = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
92
99
|
size: 25,
|
93
100
|
title: "".concat(title, " expand or collapse button")
|
94
101
|
},
|
95
|
-
buttonProps: {
|
102
|
+
buttonProps: _objectSpread(_objectSpread({
|
96
103
|
'aria-label': "".concat(title, " expand or collapse button")
|
97
|
-
}
|
104
|
+
}, isParentFocused && {
|
105
|
+
tabIndex: 0
|
106
|
+
}), !isParentFocused && {
|
107
|
+
tabIndex: -1
|
108
|
+
})
|
98
109
|
}), ___EmotionJSX(Box, {
|
99
110
|
isRow: true,
|
100
111
|
className: classNames,
|
101
112
|
alignItems: "center",
|
102
113
|
gap: "xs",
|
103
|
-
variant: "treeView.treeRow"
|
114
|
+
variant: "treeView.treeRow",
|
115
|
+
sx: !items && {
|
116
|
+
ml: '36px'
|
117
|
+
}
|
104
118
|
}, ___EmotionJSX(Icon, {
|
105
119
|
color: "focus",
|
106
120
|
icon: mainIcon,
|
@@ -121,6 +135,7 @@ TreeViewRow.propTypes = {
|
|
121
135
|
isSelected: PropTypes.bool,
|
122
136
|
isDisabled: PropTypes.bool,
|
123
137
|
isExpanded: PropTypes.bool,
|
138
|
+
isParentFocused: PropTypes.bool,
|
124
139
|
title: PropTypes.string,
|
125
140
|
items: PropTypes.arrayOf(PropTypes.shape({})),
|
126
141
|
iconButtonProps: PropTypes.shape({
|
@@ -1,19 +1,105 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
|
+
import _someInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/some";
|
3
|
+
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
4
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
2
5
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
3
6
|
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
4
|
-
import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
7
|
+
import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
|
8
|
+
import { useFocusRing } from '@react-aria/focus';
|
5
9
|
import { useOption } from '@react-aria/listbox';
|
10
|
+
import { mergeProps } from '@react-aria/utils';
|
6
11
|
import PropTypes from 'prop-types';
|
7
12
|
import { useTreeViewContext } from '../../context/TreeViewContext';
|
13
|
+
import { useStatusClasses } from '../../hooks';
|
8
14
|
import { Box, TreeViewItem } from '../../index';
|
9
15
|
import { SectionOrItemRender } from './TreeView';
|
16
|
+
import { sectionPressHandlers } from './TreeViewKeyboardDelegate';
|
10
17
|
import TreeViewRow from './TreeViewRow';
|
11
18
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
19
|
+
export var onKeyDownSection = function onKeyDownSection(e, state, key, tree, isSelected, isExpanded, focusManager, flatKeyArray, refArray, pageLength, isFocused) {
|
20
|
+
switch (e.which) {
|
21
|
+
case 9:
|
22
|
+
if (isFocused) {
|
23
|
+
sectionPressHandlers.onTabPress(e, refArray, focusManager, true, key);
|
24
|
+
}
|
25
|
+
break;
|
26
|
+
case 13:
|
27
|
+
sectionPressHandlers.onEnterPress(e, state, key);
|
28
|
+
break;
|
29
|
+
case 32:
|
30
|
+
sectionPressHandlers.onSpacePress(e, tree, key, isSelected);
|
31
|
+
break;
|
32
|
+
case 33:
|
33
|
+
sectionPressHandlers.onPageUpPress(e, key, flatKeyArray, refArray, pageLength);
|
34
|
+
break;
|
35
|
+
case 34:
|
36
|
+
sectionPressHandlers.onPageDownPress(e, key, flatKeyArray, refArray, pageLength);
|
37
|
+
break;
|
38
|
+
case 36:
|
39
|
+
sectionPressHandlers.onHomePress(key, flatKeyArray, refArray);
|
40
|
+
e.preventDefault();
|
41
|
+
e.stopPropagation();
|
42
|
+
break;
|
43
|
+
case 35:
|
44
|
+
sectionPressHandlers.onEndPress(key, flatKeyArray, refArray);
|
45
|
+
e.preventDefault();
|
46
|
+
e.stopPropagation();
|
47
|
+
break;
|
48
|
+
case 37:
|
49
|
+
sectionPressHandlers.onLeftPress(e, focusManager, state, key, isExpanded, refArray);
|
50
|
+
break;
|
51
|
+
case 38:
|
52
|
+
sectionPressHandlers.onUpPress(e, key, refArray, flatKeyArray);
|
53
|
+
e.preventDefault();
|
54
|
+
e.stopPropagation();
|
55
|
+
break;
|
56
|
+
case 39:
|
57
|
+
if (isFocused) {
|
58
|
+
sectionPressHandlers.onRightPress(e, focusManager, state, key, isExpanded, refArray);
|
59
|
+
}
|
60
|
+
break;
|
61
|
+
case 40:
|
62
|
+
sectionPressHandlers.onDownPress(e, key, refArray, flatKeyArray);
|
63
|
+
e.preventDefault();
|
64
|
+
e.stopPropagation();
|
65
|
+
break;
|
66
|
+
default:
|
67
|
+
/* istanbul ignore next */
|
68
|
+
break;
|
69
|
+
}
|
70
|
+
};
|
71
|
+
export var removeRefFromArrayHelper = function removeRefFromArrayHelper(prevState, keyToRemove) {
|
72
|
+
if (_someInstanceProperty(prevState).call(prevState, function (item) {
|
73
|
+
return item.key === keyToRemove;
|
74
|
+
})) {
|
75
|
+
var _context;
|
76
|
+
var newArray = _concatInstanceProperty(_context = []).call(_context, _filterInstanceProperty(prevState).call(prevState, function (_item) {
|
77
|
+
return _item.key !== keyToRemove;
|
78
|
+
}));
|
79
|
+
return newArray;
|
80
|
+
}
|
81
|
+
return prevState;
|
82
|
+
};
|
83
|
+
export var addRefToArrayHelper = function addRefToArrayHelper(prevState, keyToAdd, refToAdd) {
|
84
|
+
if (!_someInstanceProperty(prevState).call(prevState, function (i) {
|
85
|
+
return i.key === keyToAdd;
|
86
|
+
})) {
|
87
|
+
var _context2;
|
88
|
+
var thisObj = {
|
89
|
+
key: keyToAdd,
|
90
|
+
thisRef: refToAdd
|
91
|
+
};
|
92
|
+
return _concatInstanceProperty(_context2 = []).call(_context2, prevState, [thisObj]);
|
93
|
+
}
|
94
|
+
return prevState;
|
95
|
+
};
|
12
96
|
var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
|
13
|
-
var
|
97
|
+
var _context3;
|
14
98
|
var item = props.item,
|
15
99
|
items = props.items,
|
16
100
|
title = props.title,
|
101
|
+
focusManager = props.focusManager,
|
102
|
+
onKeyDown = props.onKeyDown,
|
17
103
|
level = props.level,
|
18
104
|
position = props.position,
|
19
105
|
setSize = props.setSize;
|
@@ -24,51 +110,107 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
24
110
|
return treeSectionRef.current;
|
25
111
|
});
|
26
112
|
var _useTreeViewContext = useTreeViewContext(),
|
27
|
-
state = _useTreeViewContext.state
|
113
|
+
state = _useTreeViewContext.state,
|
114
|
+
tree = _useTreeViewContext.tree,
|
115
|
+
refArray = _useTreeViewContext.refArray,
|
116
|
+
setRefs = _useTreeViewContext.setRefs,
|
117
|
+
flatKeyArray = _useTreeViewContext.flatKeyArray,
|
118
|
+
pageLength = _useTreeViewContext.pageLength,
|
119
|
+
setLastFocusedItem = _useTreeViewContext.setLastFocusedItem,
|
120
|
+
lastFocusedItem = _useTreeViewContext.lastFocusedItem;
|
28
121
|
var _useOption = useOption({
|
29
122
|
key: key
|
30
123
|
}, state, treeSectionRef),
|
31
124
|
optionProps = _useOption.optionProps,
|
32
125
|
isDisabled = _useOption.isDisabled,
|
33
126
|
isSelected = _useOption.isSelected;
|
127
|
+
var _useFocusRing = useFocusRing(),
|
128
|
+
focusProps = _useFocusRing.focusProps,
|
129
|
+
isFocused = _useFocusRing.isFocused;
|
130
|
+
var _useFocusRing2 = useFocusRing({
|
131
|
+
within: true
|
132
|
+
}),
|
133
|
+
focusPropsWithin = _useFocusRing2.focusProps,
|
134
|
+
isFocusedWithin = _useFocusRing2.isFocused;
|
34
135
|
var isExpanded = state.expandedKeys.has(key);
|
136
|
+
var onKeyDownFunction = function onKeyDownFunction(e) {
|
137
|
+
onKeyDownSection(e, state, key, tree, isSelected, isExpanded, focusManager, flatKeyArray, refArray, pageLength, isFocused);
|
138
|
+
if (onKeyDown) {
|
139
|
+
onKeyDown(e, key);
|
140
|
+
}
|
141
|
+
};
|
142
|
+
var addRefToArray = function addRefToArray(thisKey, thisRef) {
|
143
|
+
setRefs(function (prev) {
|
144
|
+
return addRefToArrayHelper(prev, thisKey, thisRef);
|
145
|
+
});
|
146
|
+
};
|
147
|
+
var removeRefFromArray = function removeRefFromArray() {
|
148
|
+
setRefs(function (prev) {
|
149
|
+
return removeRefFromArrayHelper(prev, key);
|
150
|
+
});
|
151
|
+
};
|
152
|
+
|
153
|
+
// adds and removes refs on mount and dismount
|
154
|
+
useEffect(function () {
|
155
|
+
// this runs on mount
|
156
|
+
addRefToArray(key, treeSectionRef);
|
157
|
+
return function () {
|
158
|
+
// this runs on cleanup
|
159
|
+
removeRefFromArray(key, refArray);
|
160
|
+
};
|
161
|
+
}, []);
|
162
|
+
var mergedProps = mergeProps(focusPropsWithin, focusProps, optionProps, {
|
163
|
+
onFocus: function onFocus() {
|
164
|
+
return setLastFocusedItem(key);
|
165
|
+
}
|
166
|
+
});
|
167
|
+
var _useStatusClasses = useStatusClasses('', {
|
168
|
+
isFocused: isFocused
|
169
|
+
}),
|
170
|
+
classNames = _useStatusClasses.classNames;
|
35
171
|
return ___EmotionJSX(Box, _extends({
|
36
172
|
ref: treeSectionRef,
|
37
173
|
as: "li",
|
38
|
-
sx: {
|
39
|
-
':not(:last-child)': {
|
40
|
-
pb: 'sm'
|
41
|
-
}
|
42
|
-
},
|
43
174
|
"aria-expanded": isExpanded,
|
44
|
-
"aria-disabled": isDisabled
|
175
|
+
"aria-disabled": isDisabled
|
176
|
+
}, mergedProps, {
|
177
|
+
role: "treeitem",
|
178
|
+
variant: "treeView.wrapper",
|
179
|
+
className: classNames,
|
180
|
+
"aria-selected": isSelected,
|
45
181
|
"aria-level": level,
|
46
182
|
"aria-setsize": setSize,
|
47
|
-
"aria-posinset": position + 1
|
48
|
-
|
49
|
-
|
50
|
-
|
183
|
+
"aria-posinset": position + 1,
|
184
|
+
onKeyDown: function onKeyDown(e) {
|
185
|
+
return onKeyDownFunction(e);
|
186
|
+
},
|
187
|
+
tabIndex: lastFocusedItem === key ? 0 : -1
|
51
188
|
}), ___EmotionJSX(TreeViewRow, {
|
52
189
|
item: item,
|
53
190
|
title: title,
|
54
191
|
items: items,
|
55
192
|
isExpanded: isExpanded,
|
56
193
|
isSelected: isSelected,
|
57
|
-
isDisabled: isDisabled
|
194
|
+
isDisabled: isDisabled,
|
195
|
+
isParentFocused: isFocusedWithin
|
58
196
|
}), isExpanded && ___EmotionJSX(Box, {
|
59
197
|
as: "ul",
|
60
198
|
role: "group",
|
61
199
|
key: "".concat(item.key, " ul"),
|
62
200
|
sx: {
|
63
|
-
pl: 'md'
|
201
|
+
pl: 'md',
|
202
|
+
'& :focus': {
|
203
|
+
border: 'none'
|
204
|
+
}
|
64
205
|
}
|
65
|
-
}, _mapInstanceProperty(
|
206
|
+
}, _mapInstanceProperty(_context3 = _Array$from(items)).call(_context3, function (_item, _index) {
|
66
207
|
var _item$value$items;
|
67
208
|
return SectionOrItemRender(((_item$value$items = _item.value.items) === null || _item$value$items === void 0 ? void 0 : _item$value$items.length) > 0, ___EmotionJSX(TreeViewSection, {
|
68
209
|
item: _item,
|
69
210
|
items: _item.children,
|
70
211
|
title: _item.value.title,
|
71
212
|
key: _item.value.title,
|
213
|
+
focusManager: focusManager,
|
72
214
|
level: level + 1,
|
73
215
|
position: _index,
|
74
216
|
setSize: items.length
|
@@ -76,6 +218,7 @@ var TreeViewSection = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
76
218
|
item: _item,
|
77
219
|
title: _item.value.title,
|
78
220
|
key: _item.value.title,
|
221
|
+
focusManager: focusManager,
|
79
222
|
level: level + 1,
|
80
223
|
position: _index,
|
81
224
|
setSize: items.length
|
@@ -88,6 +231,8 @@ TreeViewSection.propTypes = {
|
|
88
231
|
key: PropTypes.string
|
89
232
|
}),
|
90
233
|
title: PropTypes.string,
|
234
|
+
focusManager: PropTypes.shape({}),
|
235
|
+
onKeyDown: PropTypes.func,
|
91
236
|
level: PropTypes.number,
|
92
237
|
position: PropTypes.number,
|
93
238
|
setSize: PropTypes.number
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
2
|
+
import React from 'react';
|
3
|
+
import { FocusScope, useFocusManager } from '@react-aria/focus';
|
4
|
+
import { jsx as ___EmotionJSX } from "@emotion/react";
|
5
|
+
var TreeViewWrapper = function TreeViewWrapper(props) {
|
6
|
+
var children = props.children;
|
7
|
+
var items = _mapInstanceProperty(children).call(children, function (child) {
|
8
|
+
return {
|
9
|
+
item: child,
|
10
|
+
key: child.key
|
11
|
+
};
|
12
|
+
});
|
13
|
+
return ___EmotionJSX(FocusScope, {
|
14
|
+
restoreFocus: false,
|
15
|
+
contain: false
|
16
|
+
}, _mapInstanceProperty(items).call(items, function (_ref) {
|
17
|
+
var item = _ref.item,
|
18
|
+
key = _ref.key;
|
19
|
+
return ___EmotionJSX(FocusableItem, {
|
20
|
+
key: key
|
21
|
+
}, item);
|
22
|
+
}));
|
23
|
+
};
|
24
|
+
var FocusableItem = function FocusableItem(props) {
|
25
|
+
var focusManager = useFocusManager();
|
26
|
+
var childWithFocusHandle = /*#__PURE__*/React.cloneElement(props.children, {
|
27
|
+
focusManager: focusManager
|
28
|
+
});
|
29
|
+
return childWithFocusHandle;
|
30
|
+
};
|
31
|
+
export default TreeViewWrapper;
|
@@ -1,31 +1,14 @@
|
|
1
1
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
2
2
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
3
3
|
import { useProgressiveState } from '../index';
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Returns one of two components that are supplied via props.
|
7
|
-
* A boolean value is used to determine which component to render.
|
8
|
-
* State can be handled by either props or within this hook if props are not provided.
|
9
|
-
* Also returns a function that inverts the boolean attribute, and calls a callback function.
|
10
|
-
* @param {Object} [props] Properties provided to the state
|
11
|
-
* @param {Boolean} [props.condition] Boolean that controls which component is returned.
|
12
|
-
* @param {Component} [props.ComponentToRenderIfTrue]
|
13
|
-
* Component that is returned when the condition is true.
|
14
|
-
* @param {Component} [props.ComponentToRenderIfFalse]
|
15
|
-
* Component that is returned when the condition is false.
|
16
|
-
* @param {Function} [props.onConditionChange]
|
17
|
-
* Callback function that is called, when the condition boolean changes, if it is provided .
|
18
|
-
* @returns {Object} `{ isOpen: Boolean, open: Function, close: Function, toggle: Function }`
|
19
|
-
* @returns {Object} `{ handleCondtionChange: Function, renderedComponent: Component, }`
|
20
|
-
*/
|
21
|
-
|
22
|
-
var useComponentToggle = function useComponentToggle() {
|
23
|
-
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
4
|
+
var useComponentToggle = function useComponentToggle(props) {
|
24
5
|
var ComponentToRenderIfTrue = props.ComponentToRenderIfTrue,
|
25
6
|
ComponentToRenderIfFalse = props.ComponentToRenderIfFalse,
|
26
7
|
condition = props.condition,
|
27
8
|
onConditionChange = props.onConditionChange;
|
28
|
-
var _useProgressiveState = useProgressiveState(condition, function () {
|
9
|
+
var _useProgressiveState = useProgressiveState(condition, function () {
|
10
|
+
return null;
|
11
|
+
}),
|
29
12
|
_useProgressiveState2 = _slicedToArray(_useProgressiveState, 2),
|
30
13
|
isToggled = _useProgressiveState2[0],
|
31
14
|
setIsToggled = _useProgressiveState2[1];
|
@@ -9,7 +9,6 @@ import _reverseInstanceProperty from "@babel/runtime-corejs3/core-js-stable/inst
|
|
9
9
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
10
10
|
import _typeof from "@babel/runtime-corejs3/helpers/esm/typeof";
|
11
11
|
import _asyncToGenerator from "@babel/runtime-corejs3/helpers/esm/asyncToGenerator";
|
12
|
-
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
13
12
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
14
13
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, defineProperty = _Object$defineProperty || function (obj, key, desc) { obj[key] = desc.value; }, $Symbol = "function" == typeof _Symbol ? _Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return _Object$defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = _Object$create(protoGenerator.prototype), context = new Context(tryLocsList || []); return defineProperty(generator, "_invoke", { value: makeInvokeMethod(innerFn, self, context) }), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = _Object$getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(IteratorPrototype); function defineIteratorMethods(prototype) { var _context3; _forEachInstanceProperty(_context3 = ["next", "throw", "return"]).call(_context3, function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; defineProperty(this, "_invoke", { value: function value(method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; } function maybeInvokeDelegate(delegate, context) { var methodName = context.method, method = delegate.iterator[methodName]; if (undefined === method) return context.delegate = null, "throw" === methodName && delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method) || "return" !== methodName && (context.method = "throw", context.arg = new TypeError("The iterator does not provide a '" + methodName + "' method")), ContinueSentinel; var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], _forEachInstanceProperty(tryLocsList).call(tryLocsList, pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), defineProperty(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return _Object$setPrototypeOf ? _Object$setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = _Object$create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = _Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (val) { var object = Object(val), keys = []; for (var key in object) keys.push(key); return _reverseInstanceProperty(keys).call(keys), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { var _context4; if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, _forEachInstanceProperty(_context4 = this.tryEntries).call(_context4, resetTryEntry), !skipTempReset) for (var name in this) "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+_sliceInstanceProperty(name).call(name, 1)) && (this[name] = undefined); }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
|
15
14
|
import React, { useState } from 'react';
|
@@ -23,8 +22,8 @@ var condition = false;
|
|
23
22
|
var defaultProps = {
|
24
23
|
condition: condition,
|
25
24
|
onConditionChange: callback,
|
26
|
-
ComponentToRenderIfTrue:
|
27
|
-
ComponentToRenderIfFalse:
|
25
|
+
ComponentToRenderIfTrue: ___EmotionJSX("span", null, "true-string"),
|
26
|
+
ComponentToRenderIfFalse: ___EmotionJSX("span", null, "false-string")
|
28
27
|
};
|
29
28
|
var TestComponent = function TestComponent() {
|
30
29
|
var _useState = useState(false),
|
@@ -34,26 +33,26 @@ var TestComponent = function TestComponent() {
|
|
34
33
|
var conditionalRenderProps = {
|
35
34
|
condition: thisCondition,
|
36
35
|
onConditionChange: setCondition,
|
37
|
-
ComponentToRenderIfTrue:
|
38
|
-
ComponentToRenderIfFalse:
|
36
|
+
ComponentToRenderIfTrue: ___EmotionJSX("span", null, "true-string"),
|
37
|
+
ComponentToRenderIfFalse: ___EmotionJSX("span", null, "false-string"),
|
39
38
|
onConditionChangeProp: callback
|
40
39
|
};
|
41
40
|
var _useComponentToggle = useComponentToggle(conditionalRenderProps),
|
42
41
|
handleConditionChange = _useComponentToggle.handleConditionChange,
|
43
42
|
RenderedComponent = _useComponentToggle.RenderedComponent;
|
44
43
|
return ___EmotionJSX("button", {
|
44
|
+
type: "button",
|
45
45
|
"data-testid": "test-div",
|
46
46
|
onClick: handleConditionChange,
|
47
47
|
onKeyDown: handleConditionChange
|
48
48
|
}, RenderedComponent);
|
49
49
|
};
|
50
50
|
var getComponent = function getComponent() {
|
51
|
-
|
52
|
-
return render(___EmotionJSX(TestComponent, _extends({}, props, defaultProps)));
|
51
|
+
return render(___EmotionJSX(TestComponent, null));
|
53
52
|
};
|
54
53
|
test('default useField', function () {
|
55
54
|
renderHook(function () {
|
56
|
-
return useComponentToggle();
|
55
|
+
return useComponentToggle(defaultProps);
|
57
56
|
});
|
58
57
|
});
|
59
58
|
test('callback function should call, if provided', function () {
|
@@ -76,7 +75,7 @@ test('expect hook to return correct data shape', /*#__PURE__*/_asyncToGenerator(
|
|
76
75
|
}), result = _renderHook2.result;
|
77
76
|
_result$current = result.current, handleConditionChange = _result$current.handleConditionChange, RenderedComponent = _result$current.RenderedComponent;
|
78
77
|
expect(handleConditionChange).toEqual(expect.any(Function));
|
79
|
-
expect(RenderedComponent).toEqual(
|
78
|
+
expect(RenderedComponent).toEqual(___EmotionJSX("span", null, "false-string"));
|
80
79
|
case 4:
|
81
80
|
case "end":
|
82
81
|
return _context.stop();
|
@@ -19,8 +19,7 @@ var useFallbackImage = function useFallbackImage(_ref) {
|
|
19
19
|
};
|
20
20
|
}, []);
|
21
21
|
useEffect(function () {
|
22
|
-
var timeoutId =
|
23
|
-
timeoutId = _setTimeout(onFallbackTimeout, fallbackTimeout);
|
22
|
+
var timeoutId = _setTimeout(onFallbackTimeout, fallbackTimeout);
|
24
23
|
return function () {
|
25
24
|
return clearTimeout(timeoutId);
|
26
25
|
};
|
@@ -10,21 +10,21 @@ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
10
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
11
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
12
12
|
import { renderHook } from '@testing-library/react-hooks';
|
13
|
-
import useFallbackImage from '
|
13
|
+
import useFallbackImage from '.';
|
14
14
|
var defaultProps = {
|
15
15
|
src: 'test-src',
|
16
|
-
fallbackImage: 'test-fallback-src',
|
17
16
|
onImageLoad: jest.fn(),
|
18
17
|
onImageError: jest.fn(),
|
19
18
|
fallbackTimeout: 5,
|
20
|
-
onFallbackTimeout: jest.fn()
|
19
|
+
onFallbackTimeout: jest.fn(),
|
20
|
+
fallbackImage: 'test-fallback-src'
|
21
21
|
};
|
22
|
-
test('should return node if all props are correct
|
22
|
+
test('should return node if all props are correct', function () {
|
23
23
|
var _renderHook = renderHook(function () {
|
24
24
|
return useFallbackImage(defaultProps);
|
25
25
|
}),
|
26
|
-
|
27
|
-
expect(current).toBeInstanceOf(HTMLImageElement);
|
26
|
+
result = _renderHook.result;
|
27
|
+
expect(result.current).toBeInstanceOf(HTMLImageElement);
|
28
28
|
});
|
29
29
|
test('should not trigger onImageLoad if no fallback passed', function () {
|
30
30
|
renderHook(function () {
|
@@ -35,11 +35,15 @@ var useImageUploadState = function useImageUploadState(inputRef) {
|
|
35
35
|
if (previewImage && previewImage !== defaultPreviewImage) {
|
36
36
|
setIsMenuOpen(true);
|
37
37
|
} else {
|
38
|
-
|
38
|
+
var _inputRef$current;
|
39
|
+
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.click();
|
39
40
|
}
|
40
41
|
}, [defaultPreviewImage, previewImage, inputRef]);
|
41
42
|
var handleInputChange = useCallback(function (event) {
|
42
43
|
var _event$target;
|
44
|
+
if (!event.target.files) {
|
45
|
+
return;
|
46
|
+
}
|
43
47
|
var eventFileType = (_event$target = event.target) === null || _event$target === void 0 || (_event$target = _event$target.files[0]) === null || _event$target === void 0 || (_event$target = _event$target.type) === null || _event$target === void 0 ? void 0 : _event$target.split('/')[0];
|
44
48
|
if (fileTypes !== null && fileTypes !== void 0 && _includesInstanceProperty(fileTypes).call(fileTypes, eventFileType)) {
|
45
49
|
if (onChange && typeof onChange === 'function') {
|
@@ -52,9 +56,8 @@ var useImageUploadState = function useImageUploadState(inputRef) {
|
|
52
56
|
var _event$target2;
|
53
57
|
setIsImageType(true);
|
54
58
|
var reader = new FileReader();
|
55
|
-
reader.onload = function (
|
56
|
-
|
57
|
-
setPreviewImage(result);
|
59
|
+
reader.onload = function () {
|
60
|
+
setPreviewImage(reader.result);
|
58
61
|
};
|
59
62
|
reader.readAsDataURL((_event$target2 = event.target) === null || _event$target2 === void 0 ? void 0 : _event$target2.files[0]);
|
60
63
|
} else {
|
@@ -76,8 +79,8 @@ var useImageUploadState = function useImageUploadState(inputRef) {
|
|
76
79
|
return setPreviewImage(defaultPreviewImage);
|
77
80
|
}, [defaultPreviewImage]);
|
78
81
|
var showFileDialog = useCallback(function () {
|
79
|
-
var _inputRef$
|
80
|
-
return inputRef === null || inputRef === void 0 || (_inputRef$
|
82
|
+
var _inputRef$current2;
|
83
|
+
return inputRef === null || inputRef === void 0 || (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.click();
|
81
84
|
}, [inputRef]);
|
82
85
|
var handleLabelClick = useCallback(function (e) {
|
83
86
|
e.preventDefault();
|
@@ -1,14 +1,4 @@
|
|
1
1
|
import { useOverlayTriggerState } from 'react-stately';
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Returns state-related data and functions for use with a Modal component.
|
5
|
-
* @param {Object} [props] Properties provided to the state
|
6
|
-
* @param {Boolean} [props.isDefaultOpen] Whether the modal is open by default (uncontrolled).
|
7
|
-
* @param {Boolean} [props.isOpen] Whether the modal is currently open (controlled).
|
8
|
-
* @param {Function} [props.onOpenChange] Handler that is called when the open state changes.
|
9
|
-
* `(isOpen: boolean) => void`
|
10
|
-
* @returns {Object} `{ isOpen: Boolean, open: Function, close: Function, toggle: Function }`
|
11
|
-
*/
|
12
2
|
var useModalState = function useModalState() {
|
13
3
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
14
4
|
var isDefaultOpen = props.isDefaultOpen,
|
@@ -9,7 +9,7 @@ import CogsIcon from '@pingux/mdi-react/CogsIcon';
|
|
9
9
|
import DeleteIcon from '@pingux/mdi-react/DeleteIcon';
|
10
10
|
import { v4 as uuid } from 'uuid';
|
11
11
|
import { Badge, Box, Callout, CheckboxField, ComboBoxField, Icon, IconButton, Item, Link, ScrollBox, Separator, Text, TextField } from '../index';
|
12
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
12
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
13
13
|
import statuses from '../utils/devUtils/constants/statuses';
|
14
14
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
15
15
|
export default {
|
@@ -14,7 +14,7 @@ import React from 'react';
|
|
14
14
|
import PlusIcon from '@pingux/mdi-react/PlusIcon';
|
15
15
|
import TrashIcon from '@pingux/mdi-react/TrashIcon';
|
16
16
|
import { Badge, Box, Bracket, Button, Icon, IconButton, Item, RockerButton, RockerButtonGroup, SelectField, Text, TextField } from '../index';
|
17
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
17
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
18
18
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
19
19
|
export default {
|
20
20
|
title: 'Recipes/Condition Filter',
|
@@ -5,7 +5,7 @@ import EyeOffIcon from '@pingux/mdi-react/EyeOffOutlineIcon';
|
|
5
5
|
import EyeIcon from '@pingux/mdi-react/EyeOutlineIcon';
|
6
6
|
import { useStatusClasses } from '../hooks';
|
7
7
|
import { Box, Icon, IconButton, Text } from '../index';
|
8
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
8
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
9
9
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
10
10
|
export default {
|
11
11
|
title: 'Recipes/Masked Values',
|
@@ -22,7 +22,7 @@ import MenuUpIcon from '@pingux/mdi-react/MenuUpIcon';
|
|
22
22
|
import { useLayoutEffect } from '@react-aria/utils';
|
23
23
|
import { Box, Button, EnvironmentBreadcrumb, Icon, IconButton, Item, Link, Menu, NavBar, NavBarItem, NavBarItemButton, NavBarSection, OverlayProvider, PopoverContainer, PopoverMenu, Separator, Text } from '../index';
|
24
24
|
import { data, logo, PersonIcon, secondData, thirdData } from '../styles/templates/Nav/NavData';
|
25
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
25
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
26
26
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
27
27
|
export default {
|
28
28
|
title: 'Recipes/Multipage Popup',
|
@@ -4,7 +4,7 @@ import CogsIcon from '@pingux/mdi-react/CogsIcon';
|
|
4
4
|
import DeleteIcon from '@pingux/mdi-react/DeleteIcon';
|
5
5
|
import DragVerticalIcon from '@pingux/mdi-react/DragVerticalIcon';
|
6
6
|
import { Box, ComboBoxField, Icon, IconButton, IconButtonToggle, Item } from '../index';
|
7
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
7
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
8
8
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
9
9
|
export default {
|
10
10
|
title: 'Recipes/One Way to Bidirectional Arrow'
|
@@ -8,7 +8,7 @@ import PencilIcon from '@pingux/mdi-react/PencilIcon';
|
|
8
8
|
import PlusIcon from '@pingux/mdi-react/PlusIcon';
|
9
9
|
import { useOverlayPanelState } from '../hooks';
|
10
10
|
import { AccordionGroup, Badge, Box, Button, ButtonBar, CheckboxField, EditButton, Icon, Image, ImageUploadField, NoticeIcon, OverlayPanel, OverlayProvider, PanelHeader, PanelHeaderCloseButton, PanelHeaderMenu, PanelHeaderSwitchField, SelectField, Tab, Tabs, Text, TextField } from '../index';
|
11
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
11
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
12
12
|
import UserImage from '../utils/devUtils/assets/UserImage.png';
|
13
13
|
import statuses from '../utils/devUtils/constants/statuses';
|
14
14
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -18,7 +18,7 @@ import { useSliderState } from 'react-stately';
|
|
18
18
|
import { useNumberFormatter } from '@react-aria/i18n';
|
19
19
|
import { defaultFocus } from '../components/Button/Buttons.styles';
|
20
20
|
import { Box } from '../index';
|
21
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
21
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
22
22
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
23
23
|
export default {
|
24
24
|
title: 'Recipes/Slider'
|
@@ -4,7 +4,7 @@ import React from 'react';
|
|
4
4
|
import CloseIcon from '@pingux/mdi-react/CloseIcon';
|
5
5
|
import { useModalState } from '../hooks';
|
6
6
|
import { Box, Button, Icon, IconButton, Modal, OverlayProvider, Text } from '../index';
|
7
|
-
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.
|
7
|
+
import { FIGMA_LINKS } from '../utils/designUtils/figmaLinks.ts';
|
8
8
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
9
9
|
export default {
|
10
10
|
title: 'Recipes/Trial Experience Buttons'
|