@elliemae/ds-global-header 2.0.0-alpha.1 → 2.0.0-alpha.13
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/cjs/GlobalHeader.js +2 -2
- package/cjs/GlobalHeaderContainer.js +10 -7
- package/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js +14 -12
- package/cjs/components/Breadcrumb/PureBreadcrumb.js +22 -20
- package/cjs/components/Breadcrumb/styles.js +44 -23
- package/cjs/components/Title/GlobalHeaderTitle.js +2 -2
- package/cjs/components/Toolbar/GlobalHeaderToolbar.js +2 -2
- package/cjs/components/Toolbar/ToolbarItems.js +20 -19
- package/cjs/components/Toolbar/styles.js +17 -8
- package/cjs/config/useGetPropsWithDefaults.js +6 -1
- package/cjs/config/useGlobalHeader.js +12 -3
- package/cjs/config/useValidateProps.js +5 -2
- package/cjs/config/validateHelpers.js +5 -28
- package/cjs/defaultProps.js +4 -2
- package/cjs/index.js +1 -1
- package/cjs/outOfTheBox/AppPicker/AppPicker.js +62 -41
- package/cjs/outOfTheBox/PopupMenu/PopupMenu.js +22 -36
- package/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js +34 -16
- package/cjs/outOfTheBox/PopupMenu/styles.js +10 -7
- package/cjs/styles.js +7 -4
- package/esm/GlobalHeaderContainer.js +10 -7
- package/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js +11 -9
- package/esm/components/Breadcrumb/PureBreadcrumb.js +22 -19
- package/esm/components/Breadcrumb/styles.js +40 -19
- package/esm/components/Toolbar/ToolbarItems.js +17 -17
- package/esm/components/Toolbar/styles.js +16 -7
- package/esm/config/useGetPropsWithDefaults.js +5 -0
- package/esm/config/useGlobalHeader.js +11 -2
- package/esm/config/useValidateProps.js +5 -2
- package/esm/config/validateHelpers.js +5 -28
- package/esm/defaultProps.js +4 -2
- package/esm/outOfTheBox/AppPicker/AppPicker.js +62 -40
- package/esm/outOfTheBox/PopupMenu/PopupMenu.js +22 -35
- package/esm/outOfTheBox/PopupMenu/PopupMenuContent.js +35 -18
- package/esm/outOfTheBox/PopupMenu/styles.js +6 -3
- package/esm/styles.js +6 -3
- package/package.json +9 -9
- package/types/GlobalHeader.d.ts +30 -5
- package/types/components/Breadcrumb/styles.d.ts +4 -4
- package/types/components/Toolbar/styles.d.ts +1 -1
- package/types/config/validateHelpers.d.ts +4 -4
- package/types/index.d.d.ts +10 -16
- package/types/outOfTheBox/AppPicker/AppPicker.d.ts +8 -3
- package/types/outOfTheBox/PopupMenu/styles.d.ts +4 -4
- package/types/propTypes.d.ts +27 -6
- package/types/styles.d.ts +1 -1
- package/cjs/package.json +0 -7
- package/esm/package.json +0 -7
|
@@ -2,12 +2,21 @@ import styled from 'styled-components';
|
|
|
2
2
|
|
|
3
3
|
const Button = /*#__PURE__*/styled.button.withConfig({
|
|
4
4
|
componentId: "sc-1gqj0i3-0"
|
|
5
|
-
})(["height:40px;width:40px;border:none;background-color:transparent;cursor:pointer;position:relative;outline:none;&:hover:not(:focus){background-color:", ";outline:none;}&:focus{:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:4px solid ", ";border-radius:4px;}:before{content:'';position:absolute;z-index:2;top:2px;left:2px;width:calc(100% - 4px);height:calc(100% - 4px);border:2px solid ", ";border-radius:4px;}}"],
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
})(["height:40px;width:40px;border:none;background-color:transparent;cursor:pointer;position:relative;outline:none;&:hover:not(:focus){background-color:", ";outline:none;}&:focus{:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:4px solid ", ";border-radius:4px;}:before{content:'';position:absolute;z-index:2;top:2px;left:2px;width:calc(100% - 4px);height:calc(100% - 4px);border:2px solid ", ";border-radius:4px;}}"], _ref => {
|
|
6
|
+
let {
|
|
7
|
+
theme
|
|
8
|
+
} = _ref;
|
|
9
|
+
return theme.colors.brand[700];
|
|
10
|
+
}, _ref2 => {
|
|
11
|
+
let {
|
|
12
|
+
theme
|
|
13
|
+
} = _ref2;
|
|
14
|
+
return theme.colors.brand[700];
|
|
15
|
+
}, _ref3 => {
|
|
16
|
+
let {
|
|
17
|
+
theme
|
|
18
|
+
} = _ref3;
|
|
19
|
+
return theme.colors.neutral['000'];
|
|
20
|
+
});
|
|
12
21
|
|
|
13
22
|
export { Button };
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
1
6
|
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
2
7
|
import { useMemo } from 'react';
|
|
3
8
|
import { defaultProps } from '../defaultProps.js';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
1
2
|
import React, { useState, useMemo } from 'react';
|
|
2
3
|
import { uid } from 'uid';
|
|
3
4
|
import { useGetPropsWithDefaults } from './useGetPropsWithDefaults.js';
|
|
@@ -5,8 +6,16 @@ import { useGetPropsWithDefaults } from './useGetPropsWithDefaults.js';
|
|
|
5
6
|
const useGlobalHeader = props => {
|
|
6
7
|
const [showIconOnly, setShowIconOnly] = useState(false);
|
|
7
8
|
const instanceUID = useMemo(() => uid(5), []);
|
|
8
|
-
const globalHeaderToolbarGrid = useMemo(() =>
|
|
9
|
-
|
|
9
|
+
const globalHeaderToolbarGrid = useMemo(() => {
|
|
10
|
+
var _props$toolbar$length, _props$toolbar;
|
|
11
|
+
|
|
12
|
+
return new Array((_props$toolbar$length = props === null || props === void 0 ? void 0 : (_props$toolbar = props.toolbar) === null || _props$toolbar === void 0 ? void 0 : _props$toolbar.length) !== null && _props$toolbar$length !== void 0 ? _props$toolbar$length : 0).fill('1fr');
|
|
13
|
+
}, [props.toolbar]);
|
|
14
|
+
const globalHeaderBreadcrumbGrid = useMemo(() => {
|
|
15
|
+
var _props$breadcrumb$len, _props$breadcrumb;
|
|
16
|
+
|
|
17
|
+
return ['auto', ...new Array((_props$breadcrumb$len = props === null || props === void 0 ? void 0 : (_props$breadcrumb = props.breadcrumb) === null || _props$breadcrumb === void 0 ? void 0 : _props$breadcrumb.length) !== null && _props$breadcrumb$len !== void 0 ? _props$breadcrumb$len : 0).fill('auto'), '1fr'];
|
|
18
|
+
}, [props.breadcrumb]);
|
|
10
19
|
const propsWithDefaults = useGetPropsWithDefaults(props);
|
|
11
20
|
const ctx = React.useMemo(() => ({
|
|
12
21
|
props: propsWithDefaults,
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
1
4
|
import { throwLogoError, throwBreadcrumbItemError, isValidToolbarType, throwToolbarItemGenericError, isObject, throwToolbarPopupItemError, throwToolbarAppPickerItemError } from './validateHelpers.js';
|
|
2
5
|
|
|
3
6
|
const validatePopupItem = componentProps => {
|
|
@@ -59,7 +62,7 @@ const useValidateProps = props => {
|
|
|
59
62
|
throwLogoError('LogoWithBrand', LogoWithBrand);
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
breadcrumb.forEach(breadcrumbItem => {
|
|
65
|
+
breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.forEach(breadcrumbItem => {
|
|
63
66
|
if (breadcrumbItem.label && typeof breadcrumbItem.label !== 'string') {
|
|
64
67
|
throwBreadcrumbItemError('label', breadcrumbItem.label);
|
|
65
68
|
}
|
|
@@ -76,7 +79,7 @@ const useValidateProps = props => {
|
|
|
76
79
|
throwBreadcrumbItemError('isSelected', breadcrumbItem.isSelected);
|
|
77
80
|
}
|
|
78
81
|
});
|
|
79
|
-
toolbar.forEach(toolbarItem => {
|
|
82
|
+
toolbar === null || toolbar === void 0 ? void 0 : toolbar.forEach(toolbarItem => {
|
|
80
83
|
validateGenericToolbarItem(toolbarItem);
|
|
81
84
|
|
|
82
85
|
if (toolbarItem.type) {
|
|
@@ -26,42 +26,19 @@ const getVariableType = arg => {
|
|
|
26
26
|
};
|
|
27
27
|
const isValidToolbarType = string => string === 'ds-app-picker' || string === 'ds-popup-menu';
|
|
28
28
|
const throwBreadcrumbItemError = (validPropKey, invalidProp) => {
|
|
29
|
-
throw new Error(
|
|
30
|
-
|
|
31
|
-
Received: ${invalidProp} (${typeof invalidProp})
|
|
32
|
-
Expected: (${breadcrumbProps[validPropKey]})
|
|
33
|
-
`);
|
|
29
|
+
throw new Error("You are trying to pass a not valid \"".concat(validPropKey, "\" property for a breadcrumb item, please provide a valid type.\n\n Received: ").concat(invalidProp, " (").concat(typeof invalidProp, ")\n Expected: (").concat(breadcrumbProps[validPropKey], ")\n "));
|
|
34
30
|
};
|
|
35
31
|
const throwToolbarPopupItemError = (validPropKey, invalidProp) => {
|
|
36
|
-
throw new Error(
|
|
37
|
-
toolbar item, please provide a valid type.
|
|
38
|
-
|
|
39
|
-
Received: ${invalidProp} (${getVariableType(invalidProp)})
|
|
40
|
-
Expected: (${toolbarProps[validPropKey]})
|
|
41
|
-
`);
|
|
32
|
+
throw new Error("You are trying to pass a not valid \"".concat(validPropKey, "\" property inside componentProps for a ds-popup-menu \n toolbar item, please provide a valid type.\n\n Received: ").concat(invalidProp, " (").concat(getVariableType(invalidProp), ")\n Expected: (").concat(toolbarProps[validPropKey], ")\n "));
|
|
42
33
|
};
|
|
43
34
|
const throwToolbarAppPickerItemError = (validPropKey, invalidProp) => {
|
|
44
|
-
throw new Error(
|
|
45
|
-
toolbar item, please provide a valid type.
|
|
46
|
-
|
|
47
|
-
Received: ${invalidProp} (${getVariableType(invalidProp)})
|
|
48
|
-
Expected: (${toolbarProps[validPropKey]})
|
|
49
|
-
`);
|
|
35
|
+
throw new Error("You are trying to pass a not valid \"".concat(validPropKey, "\" property inside componentProps for a ds-app-picker \n toolbar item, please provide a valid type.\n\n Received: ").concat(invalidProp, " (").concat(getVariableType(invalidProp), ")\n Expected: (").concat(toolbarProps[validPropKey], ")\n "));
|
|
50
36
|
};
|
|
51
37
|
const throwToolbarItemGenericError = (validPropKey, invalidProp) => {
|
|
52
|
-
throw new Error(
|
|
53
|
-
|
|
54
|
-
Received: ${invalidProp} (${getVariableType(invalidProp)})
|
|
55
|
-
Expected: (${toolbarProps[validPropKey]})
|
|
56
|
-
`);
|
|
38
|
+
throw new Error("You are trying to pass a not valid \"".concat(validPropKey, "\" property for a toolbar item, please provide a valid type.\n\n Received: ").concat(invalidProp, " (").concat(getVariableType(invalidProp), ")\n Expected: (").concat(toolbarProps[validPropKey], ")\n "));
|
|
57
39
|
};
|
|
58
40
|
const throwLogoError = (validPropKey, invalidProp) => {
|
|
59
|
-
throw new Error(
|
|
60
|
-
remember to provide both Logo and LogoWithBrand properties with a valid type.
|
|
61
|
-
|
|
62
|
-
Received: ${invalidProp} (${getVariableType(invalidProp)}).
|
|
63
|
-
Expected: (react component).
|
|
64
|
-
`);
|
|
41
|
+
throw new Error("You are trying to pass a not valid \"".concat(validPropKey, "\" property for a global header, \n remember to provide both Logo and LogoWithBrand properties with a valid type.\n\n Received: ").concat(invalidProp, " (").concat(getVariableType(invalidProp), ").\n Expected: (react component).\n "));
|
|
65
42
|
};
|
|
66
43
|
|
|
67
44
|
export { breadcrumbProps, getVariableType, isObject, isValidToolbarType, throwBreadcrumbItemError, throwLogoError, throwToolbarAppPickerItemError, throwToolbarItemGenericError, throwToolbarPopupItemError, toolbarProps };
|
package/esm/defaultProps.js
CHANGED
|
@@ -1,63 +1,85 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
2
3
|
import { useState, useRef, useCallback, useMemo } from 'react';
|
|
3
4
|
import { DSAppPicker } from '@elliemae/ds-app-picker';
|
|
4
|
-
import
|
|
5
|
+
import { mergeRefs } from '@elliemae/ds-utilities';
|
|
6
|
+
import { MenuPicker } from '@elliemae/ds-icons';
|
|
5
7
|
import { Button } from '../../components/Toolbar/styles.js';
|
|
6
8
|
import { jsx } from 'react/jsx-runtime';
|
|
7
9
|
|
|
8
10
|
var _MenuPicker;
|
|
9
|
-
const AppPicker =
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
const AppPicker = _ref => {
|
|
12
|
+
let {
|
|
13
|
+
label,
|
|
14
|
+
apps,
|
|
15
|
+
icon,
|
|
16
|
+
customApps,
|
|
17
|
+
sectionTitle,
|
|
18
|
+
customSectionTitle,
|
|
19
|
+
actionRef,
|
|
20
|
+
isOpen: userIsOpen,
|
|
21
|
+
onKeyDown: userOnKeyDown,
|
|
22
|
+
onClickOutside: userOnClickOutside,
|
|
23
|
+
renderTrigger: userRenderTrigger,
|
|
24
|
+
onClose,
|
|
25
|
+
triggerRef,
|
|
26
|
+
triggerOnClick
|
|
27
|
+
} = _ref;
|
|
19
28
|
const [isOpen, setIsOpen] = useState(false);
|
|
20
|
-
const buttonRef = useRef();
|
|
21
|
-
const
|
|
29
|
+
const buttonRef = useRef(null);
|
|
30
|
+
const handleTriggerKeyDown = useCallback(e => {
|
|
22
31
|
if (e.code === 'Enter' || e.code === 'Space') {
|
|
23
32
|
setIsOpen(true);
|
|
24
33
|
}
|
|
25
34
|
}, []);
|
|
26
|
-
const
|
|
27
|
-
|
|
35
|
+
const handleAppPickerOnKeyDown = useCallback(e => {
|
|
36
|
+
if (e.code === 'Escape') {
|
|
37
|
+
var _buttonRef$current;
|
|
28
38
|
|
|
39
|
+
setIsOpen(false);
|
|
40
|
+
buttonRef === null || buttonRef === void 0 ? void 0 : (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
|
|
41
|
+
}
|
|
42
|
+
}, []);
|
|
43
|
+
const handleOnClickOutside = useCallback(() => {
|
|
29
44
|
setIsOpen(false);
|
|
30
|
-
(_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
|
|
31
45
|
}, []);
|
|
32
|
-
const handleOnClick = useCallback(
|
|
46
|
+
const handleOnClick = useCallback(() => {
|
|
33
47
|
setIsOpen(true);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
48
|
+
}, []);
|
|
49
|
+
const renderTrigger = useMemo(() => _ref2 => {
|
|
50
|
+
let {
|
|
51
|
+
ref
|
|
52
|
+
} = _ref2;
|
|
53
|
+
return /*#__PURE__*/jsx("div", {
|
|
54
|
+
ref: ref,
|
|
55
|
+
children: /*#__PURE__*/jsx(Button, {
|
|
56
|
+
onClick: triggerOnClick !== null && triggerOnClick !== void 0 ? triggerOnClick : handleOnClick,
|
|
57
|
+
onKeyDown: handleTriggerKeyDown,
|
|
58
|
+
ref: mergeRefs(buttonRef, triggerRef),
|
|
59
|
+
title: label,
|
|
60
|
+
"data-testid": "gh-toolbar-item",
|
|
61
|
+
children: _MenuPicker || (_MenuPicker = /*#__PURE__*/_jsx(MenuPicker, {
|
|
62
|
+
fill: "#FFF",
|
|
63
|
+
width: 20.73,
|
|
64
|
+
height: 20.73
|
|
65
|
+
}))
|
|
66
|
+
})
|
|
67
|
+
});
|
|
68
|
+
}, [triggerOnClick, handleOnClick, handleTriggerKeyDown, label]);
|
|
69
|
+
return /*#__PURE__*/_jsx(DSAppPicker, {
|
|
54
70
|
apps: apps,
|
|
55
71
|
customApps: customApps,
|
|
56
72
|
sectionTitle: sectionTitle,
|
|
57
73
|
customSectionTitle: customSectionTitle,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
74
|
+
icon: icon,
|
|
75
|
+
onKeyDown: userOnKeyDown !== null && userOnKeyDown !== void 0 ? userOnKeyDown : handleAppPickerOnKeyDown,
|
|
76
|
+
actionRef: actionRef,
|
|
77
|
+
onClickOutside: userOnClickOutside !== null && userOnClickOutside !== void 0 ? userOnClickOutside : handleOnClickOutside,
|
|
78
|
+
renderTrigger: userRenderTrigger !== null && userRenderTrigger !== void 0 ? userRenderTrigger : renderTrigger,
|
|
79
|
+
isOpen: userIsOpen !== null && userIsOpen !== void 0 ? userIsOpen : isOpen,
|
|
80
|
+
onClose: onClose,
|
|
81
|
+
triggerRef: triggerRef
|
|
82
|
+
});
|
|
61
83
|
};
|
|
62
84
|
|
|
63
85
|
export { AppPicker };
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
2
|
+
import 'core-js/modules/web.dom-collections.iterator.js';
|
|
3
|
+
import { useState, useCallback, useMemo } from 'react';
|
|
4
|
+
import { DSPopperJS } from '@elliemae/ds-popperjs';
|
|
4
5
|
import { PopupMenuContent } from './PopupMenuContent.js';
|
|
5
6
|
import { Button } from '../../components/Toolbar/styles.js';
|
|
6
7
|
import { jsx } from 'react/jsx-runtime';
|
|
7
8
|
|
|
8
|
-
const PopupMenu =
|
|
9
|
-
Icon,
|
|
10
|
-
options,
|
|
11
|
-
closeOnClick,
|
|
12
|
-
title,
|
|
13
|
-
onClick
|
|
14
|
-
}) => {
|
|
9
|
+
const PopupMenu = _ref => {
|
|
15
10
|
var _PopupMenuContent;
|
|
16
11
|
|
|
12
|
+
let {
|
|
13
|
+
Icon,
|
|
14
|
+
options,
|
|
15
|
+
closeOnClick,
|
|
16
|
+
title,
|
|
17
|
+
onClick
|
|
18
|
+
} = _ref;
|
|
17
19
|
const [isOpen, setIsOpen] = useState(false);
|
|
18
|
-
const buttonRef =
|
|
20
|
+
const [buttonRef, setButtonRef] = useState(null);
|
|
19
21
|
const handleKeyPress = useCallback(e => {
|
|
20
22
|
if (e.code === 'Enter' || e.code === 'Space') {
|
|
21
23
|
setIsOpen(true);
|
|
22
24
|
}
|
|
23
25
|
}, []);
|
|
24
26
|
const handleOnClose = useCallback(() => {
|
|
25
|
-
var _buttonRef$current;
|
|
26
|
-
|
|
27
27
|
setIsOpen(false);
|
|
28
|
-
|
|
29
|
-
}, []);
|
|
28
|
+
buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.focus();
|
|
29
|
+
}, [buttonRef]);
|
|
30
30
|
const handleTriggerOnClick = useCallback(e => {
|
|
31
31
|
setIsOpen(true);
|
|
32
32
|
onClick(e);
|
|
@@ -34,39 +34,26 @@ const PopupMenu = ({
|
|
|
34
34
|
const handleItemClick = useCallback(() => {
|
|
35
35
|
if (closeOnClick) handleOnClose();
|
|
36
36
|
}, [closeOnClick, handleOnClose]);
|
|
37
|
-
const handleClickOutside = useCallback(() => setIsOpen(false), []);
|
|
38
37
|
const content = useMemo(() => _PopupMenuContent || (_PopupMenuContent = /*#__PURE__*/_jsx(PopupMenuContent, {
|
|
39
38
|
options: options,
|
|
40
39
|
onItemClick: handleItemClick,
|
|
41
40
|
onClose: handleOnClose
|
|
42
41
|
})), [options, handleItemClick, handleOnClose]);
|
|
43
|
-
|
|
44
|
-
ref
|
|
45
|
-
}) => /*#__PURE__*/jsx(Button, {
|
|
42
|
+
return /*#__PURE__*/_jsx("div", {}, void 0, /*#__PURE__*/jsx(Button, {
|
|
46
43
|
onClick: handleTriggerOnClick,
|
|
47
44
|
onKeyPress: handleKeyPress,
|
|
48
45
|
title: title,
|
|
49
|
-
ref:
|
|
46
|
+
ref: setButtonRef,
|
|
50
47
|
"data-testid": "gh-toolbar-item",
|
|
51
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
52
|
-
innerRef: ref,
|
|
48
|
+
children: Icon && /*#__PURE__*/_jsx(Icon, {
|
|
53
49
|
fill: "#FFF",
|
|
54
50
|
size: "m"
|
|
55
51
|
})
|
|
56
|
-
}),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
placement: "bottom",
|
|
62
|
-
interactionType: "click",
|
|
63
|
-
showArrow: true,
|
|
64
|
-
style: {
|
|
65
|
-
padding: '0',
|
|
66
|
-
width: 'fit-content'
|
|
67
|
-
},
|
|
68
|
-
renderTrigger: trigger
|
|
69
|
-
}), [content, handleClickOutside, isOpen, trigger]);
|
|
52
|
+
}), /*#__PURE__*/_jsx(DSPopperJS, {
|
|
53
|
+
referenceElement: buttonRef,
|
|
54
|
+
showPopover: isOpen,
|
|
55
|
+
closeContextMenu: handleOnClose
|
|
56
|
+
}, void 0, content));
|
|
70
57
|
};
|
|
71
58
|
|
|
72
59
|
export { PopupMenu };
|
|
@@ -1,37 +1,50 @@
|
|
|
1
1
|
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
3
|
+
import 'core-js/modules/esnext.async-iterator.map.js';
|
|
4
|
+
import 'core-js/modules/esnext.iterator.map.js';
|
|
5
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
6
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
7
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
8
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
9
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
2
10
|
import React, { useContext, useRef, useEffect, useMemo } from 'react';
|
|
3
|
-
import {
|
|
11
|
+
import { getDataProps, getAriaProps } from '@elliemae/ds-props-helpers';
|
|
12
|
+
import { ItemWrapper, Separator, List, Label } from './styles.js';
|
|
4
13
|
import { GlobalHeaderContext } from '../../GlobalHeaderContext.js';
|
|
5
|
-
import { jsx } from 'react/jsx-runtime';
|
|
14
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
15
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
+
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19
|
+
const PopupMenuContent = /*#__PURE__*/React.memo(_ref => {
|
|
20
|
+
let {
|
|
21
|
+
options,
|
|
22
|
+
onItemClick,
|
|
23
|
+
onClose
|
|
24
|
+
} = _ref;
|
|
12
25
|
const {
|
|
13
26
|
instanceUID
|
|
14
27
|
} = useContext(GlobalHeaderContext);
|
|
15
|
-
const menuRef = useRef();
|
|
28
|
+
const menuRef = useRef(null);
|
|
16
29
|
useEffect(() => {
|
|
17
30
|
var _menuRef$current, _menuRef$current$firs;
|
|
18
31
|
|
|
19
32
|
(_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : (_menuRef$current$firs = _menuRef$current.firstChild) === null || _menuRef$current$firs === void 0 ? void 0 : _menuRef$current$firs.focus();
|
|
20
33
|
}, []);
|
|
21
34
|
const content = useMemo(() => options.map(option => {
|
|
22
|
-
var _Content;
|
|
23
|
-
|
|
24
35
|
const {
|
|
25
36
|
type,
|
|
26
|
-
|
|
27
|
-
label,
|
|
37
|
+
Icon,
|
|
38
|
+
label = '',
|
|
28
39
|
onClick,
|
|
29
40
|
Content
|
|
30
41
|
} = option;
|
|
31
42
|
|
|
43
|
+
const ariaAndDataProps = _objectSpread(_objectSpread({}, getAriaProps(option)), getDataProps(option));
|
|
44
|
+
|
|
32
45
|
const handleClick = e => {
|
|
33
46
|
onItemClick(e);
|
|
34
|
-
onClick(e);
|
|
47
|
+
if (onClick) onClick(e);
|
|
35
48
|
};
|
|
36
49
|
|
|
37
50
|
const handleKeyDown = e => {
|
|
@@ -40,19 +53,23 @@ const PopupMenuContent = /*#__PURE__*/React.memo(({
|
|
|
40
53
|
|
|
41
54
|
switch (type) {
|
|
42
55
|
case 'separator':
|
|
43
|
-
return /*#__PURE__*/
|
|
56
|
+
return /*#__PURE__*/jsx(Separator, _objectSpread({}, ariaAndDataProps), "".concat(instanceUID, "-separator-").concat(label));
|
|
44
57
|
|
|
45
58
|
case 'custom':
|
|
46
|
-
return /*#__PURE__*/
|
|
59
|
+
return /*#__PURE__*/jsx(ItemWrapper, _objectSpread(_objectSpread({
|
|
47
60
|
onClick: handleClick,
|
|
48
61
|
onKeyDown: handleKeyDown
|
|
49
|
-
},
|
|
62
|
+
}, ariaAndDataProps), {}, {
|
|
63
|
+
children: Content && /*#__PURE__*/_jsx(Content, {})
|
|
64
|
+
}), "".concat(instanceUID, "-popup-").concat(label));
|
|
50
65
|
|
|
51
66
|
default:
|
|
52
|
-
return /*#__PURE__*/
|
|
67
|
+
return /*#__PURE__*/jsxs(ItemWrapper, _objectSpread(_objectSpread({
|
|
53
68
|
onClick: handleClick,
|
|
54
69
|
onKeyDown: handleKeyDown
|
|
55
|
-
},
|
|
70
|
+
}, ariaAndDataProps), {}, {
|
|
71
|
+
children: [Icon && /*#__PURE__*/_jsx(Icon, {}), Label && /*#__PURE__*/_jsx(Label, {}, void 0, label)]
|
|
72
|
+
}), "".concat(instanceUID, "-popup-").concat(label));
|
|
56
73
|
}
|
|
57
74
|
}), [onClose, onItemClick, options, instanceUID]);
|
|
58
75
|
return /*#__PURE__*/jsx(List, {
|
|
@@ -5,9 +5,12 @@ const List = /*#__PURE__*/styled.div.withConfig({
|
|
|
5
5
|
})(["padding:5px 0px;"]);
|
|
6
6
|
const ItemWrapper = /*#__PURE__*/styled.button.withConfig({
|
|
7
7
|
componentId: "sc-snqcgs-1"
|
|
8
|
-
})(["display:flex;align-items:center;justify-content:center;width:100%;padding:0 20px;cursor:pointer;border:1px solid transparent;background-color:transparent;outline:none;:hover,:focus{border:", ";}"],
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
})(["display:flex;align-items:center;justify-content:center;width:100%;padding:0 20px;cursor:pointer;border:1px solid transparent;background-color:transparent;outline:none;:hover,:focus{border:", ";}"], _ref => {
|
|
9
|
+
let {
|
|
10
|
+
theme
|
|
11
|
+
} = _ref;
|
|
12
|
+
return "1px solid ".concat(theme.colors.brand[600]);
|
|
13
|
+
});
|
|
11
14
|
const Label = /*#__PURE__*/styled.p.withConfig({
|
|
12
15
|
componentId: "sc-snqcgs-2"
|
|
13
16
|
})(["width:100%;font-size:14px;margin:10px;"]);
|
package/esm/styles.js
CHANGED
|
@@ -3,8 +3,11 @@ import { GridContainer } from '@elliemae/ds-grid';
|
|
|
3
3
|
|
|
4
4
|
const Wrapper = /*#__PURE__*/styled(GridContainer).withConfig({
|
|
5
5
|
componentId: "sc-1v5zxxm-0"
|
|
6
|
-
})(["background-image:linear-gradient(45deg,#0f364a 0%,#1b6392 54%,#164566 100%);color:", ";width:100%;height:40px;padding:0 24px 0 12px;"],
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
})(["background-image:linear-gradient(45deg,#0f364a 0%,#1b6392 54%,#164566 100%);color:", ";width:100%;height:40px;padding:0 24px 0 12px;"], _ref => {
|
|
7
|
+
let {
|
|
8
|
+
theme
|
|
9
|
+
} = _ref;
|
|
10
|
+
return theme.colors.neutral['000'];
|
|
11
|
+
});
|
|
9
12
|
|
|
10
13
|
export { Wrapper };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-global-header",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.13",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Global Header",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -120,23 +120,23 @@
|
|
|
120
120
|
"build": "node ../../scripts/build/build.js"
|
|
121
121
|
},
|
|
122
122
|
"dependencies": {
|
|
123
|
-
"@elliemae/ds-app-picker": "2.0.0-alpha.
|
|
124
|
-
"@elliemae/ds-
|
|
125
|
-
"@elliemae/ds-
|
|
126
|
-
"@elliemae/ds-
|
|
127
|
-
"@elliemae/ds-
|
|
128
|
-
"@elliemae/ds-utilities": "2.0.0-alpha.
|
|
123
|
+
"@elliemae/ds-app-picker": "2.0.0-alpha.13",
|
|
124
|
+
"@elliemae/ds-grid": "2.0.0-alpha.13",
|
|
125
|
+
"@elliemae/ds-icons": "2.0.0-alpha.13",
|
|
126
|
+
"@elliemae/ds-popperjs": "2.0.0-alpha.13",
|
|
127
|
+
"@elliemae/ds-props-helpers": "2.0.0-alpha.13",
|
|
128
|
+
"@elliemae/ds-utilities": "2.0.0-alpha.13",
|
|
129
129
|
"react-desc": "~4.1.3",
|
|
130
130
|
"uid": "~2.0.0"
|
|
131
131
|
},
|
|
132
132
|
"devDependencies": {
|
|
133
|
-
"styled-components": "~5.3.
|
|
133
|
+
"styled-components": "~5.3.3"
|
|
134
134
|
},
|
|
135
135
|
"peerDependencies": {
|
|
136
136
|
"lodash": "^4.17.21",
|
|
137
137
|
"react": "^17.0.2",
|
|
138
138
|
"react-dom": "^17.0.2",
|
|
139
|
-
"styled-components": "^5.3.
|
|
139
|
+
"styled-components": "^5.3.3"
|
|
140
140
|
},
|
|
141
141
|
"publishConfig": {
|
|
142
142
|
"access": "public",
|
package/types/GlobalHeader.d.ts
CHANGED
|
@@ -1,14 +1,39 @@
|
|
|
1
|
+
/// <reference path="../../../../shared/typings/react-desc.d.ts" />
|
|
1
2
|
/// <reference types="react" />
|
|
2
3
|
import type { GlobalHeaderPropsT as Props } from './index.d';
|
|
3
4
|
declare const GlobalHeader: {
|
|
4
5
|
(props: Props): JSX.Element;
|
|
5
6
|
defaultProps: Props;
|
|
6
7
|
propTypes: {
|
|
7
|
-
Logo:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
Logo: {
|
|
9
|
+
defaultValue<T = unknown>(arg: T): {
|
|
10
|
+
deprecated: import("react-desc").PropTypesDescValidator;
|
|
11
|
+
};
|
|
12
|
+
isRequired: import("react-desc").PropTypesDescValidator;
|
|
13
|
+
};
|
|
14
|
+
LogoWithBrand: {
|
|
15
|
+
defaultValue<T = unknown>(arg: T): {
|
|
16
|
+
deprecated: import("react-desc").PropTypesDescValidator;
|
|
17
|
+
};
|
|
18
|
+
isRequired: import("react-desc").PropTypesDescValidator;
|
|
19
|
+
};
|
|
20
|
+
breadcrumb: {
|
|
21
|
+
defaultValue<T = unknown>(arg: T): {
|
|
22
|
+
deprecated: import("react-desc").PropTypesDescValidator;
|
|
23
|
+
};
|
|
24
|
+
isRequired: import("react-desc").PropTypesDescValidator;
|
|
25
|
+
};
|
|
26
|
+
toolbar: {
|
|
27
|
+
defaultValue<T = unknown>(arg: T): {
|
|
28
|
+
deprecated: import("react-desc").PropTypesDescValidator;
|
|
29
|
+
};
|
|
30
|
+
isRequired: import("react-desc").PropTypesDescValidator;
|
|
31
|
+
};
|
|
11
32
|
};
|
|
12
33
|
};
|
|
13
|
-
declare const GlobalHeaderWithSchema:
|
|
34
|
+
declare const GlobalHeaderWithSchema: {
|
|
35
|
+
(props?: Props | undefined): JSX.Element;
|
|
36
|
+
propTypes: unknown;
|
|
37
|
+
toTypescript: () => import("react-desc").TypescriptSchema;
|
|
38
|
+
};
|
|
14
39
|
export { GlobalHeader, GlobalHeaderWithSchema };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LabelT, PipeT } from '../../index.d';
|
|
2
|
-
export declare const Pipe: import("styled-components").StyledComponent<"span",
|
|
3
|
-
export declare const BreadcrumbItem: import("styled-components").StyledComponent<"div",
|
|
4
|
-
export declare const LabelButton: import("styled-components").StyledComponent<"button",
|
|
5
|
-
export declare const Label: import("styled-components").StyledComponent<"p",
|
|
2
|
+
export declare const Pipe: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, PipeT, never>;
|
|
3
|
+
export declare const BreadcrumbItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
4
|
+
export declare const LabelButton: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
|
|
5
|
+
export declare const Label: import("styled-components").StyledComponent<"p", import("styled-components").DefaultTheme, LabelT, never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const Button: import("styled-components").StyledComponent<"button",
|
|
1
|
+
export declare const Button: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, {}, never>;
|
|
@@ -20,8 +20,8 @@ export declare const toolbarProps: {
|
|
|
20
20
|
export declare const isObject: (obj: unknown) => boolean;
|
|
21
21
|
export declare const getVariableType: (arg: unknown) => string;
|
|
22
22
|
export declare const isValidToolbarType: (string: unknown) => boolean;
|
|
23
|
-
export declare const throwBreadcrumbItemError: (validPropKey:
|
|
24
|
-
export declare const throwToolbarPopupItemError: (validPropKey:
|
|
25
|
-
export declare const throwToolbarAppPickerItemError: (validPropKey:
|
|
26
|
-
export declare const throwToolbarItemGenericError: (validPropKey:
|
|
23
|
+
export declare const throwBreadcrumbItemError: (validPropKey: keyof typeof breadcrumbProps, invalidProp: unknown) => void;
|
|
24
|
+
export declare const throwToolbarPopupItemError: (validPropKey: keyof typeof toolbarProps, invalidProp: unknown) => void;
|
|
25
|
+
export declare const throwToolbarAppPickerItemError: (validPropKey: keyof typeof toolbarProps, invalidProp: unknown) => void;
|
|
26
|
+
export declare const throwToolbarItemGenericError: (validPropKey: keyof typeof toolbarProps, invalidProp: unknown) => void;
|
|
27
27
|
export declare const throwLogoError: (validPropKey: string, invalidProp: unknown) => void;
|