@elliemae/ds-global-header 2.0.0-rc.9 → 2.0.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.
Files changed (56) hide show
  1. package/cjs/{index.d.js → GlobalHeaderTypes.js} +0 -0
  2. package/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js +28 -18
  3. package/cjs/components/Breadcrumb/PureBreadcrumb.js +31 -8
  4. package/cjs/components/Breadcrumb/styles.js +9 -14
  5. package/cjs/components/Toolbar/ToolbarItems.js +49 -26
  6. package/cjs/components/Toolbar/styles.js +1 -6
  7. package/cjs/config/useGetPropsWithDefaults.js +2 -2
  8. package/cjs/config/useGlobalHeader.js +10 -4
  9. package/cjs/config/useValidateProps.js +5 -20
  10. package/cjs/config/validateHelpers.js +2 -2
  11. package/cjs/defaultProps.js +4 -2
  12. package/cjs/outOfTheBox/AppPicker/AppPicker.js +59 -27
  13. package/cjs/outOfTheBox/PopupMenu/PopupMenu.js +64 -49
  14. package/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js +36 -16
  15. package/cjs/outOfTheBox/PopupMenu/styles.js +1 -1
  16. package/cjs/outOfTheBox/SearchToggle/SearchToggle.js +113 -0
  17. package/cjs/outOfTheBox/SearchToggle/styles.js +15 -0
  18. package/cjs/outOfTheBox/index.js +2 -0
  19. package/cjs/propTypes.js +1 -1
  20. package/esm/{index.d.js → GlobalHeaderTypes.js} +0 -0
  21. package/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js +26 -18
  22. package/esm/components/Breadcrumb/PureBreadcrumb.js +29 -8
  23. package/esm/components/Breadcrumb/styles.js +9 -14
  24. package/esm/components/Toolbar/ToolbarItems.js +48 -26
  25. package/esm/components/Toolbar/styles.js +1 -6
  26. package/esm/config/useGetPropsWithDefaults.js +2 -2
  27. package/esm/config/useGlobalHeader.js +10 -4
  28. package/esm/config/useValidateProps.js +5 -20
  29. package/esm/config/validateHelpers.js +2 -2
  30. package/esm/defaultProps.js +4 -2
  31. package/esm/outOfTheBox/AppPicker/AppPicker.js +57 -27
  32. package/esm/outOfTheBox/PopupMenu/PopupMenu.js +63 -49
  33. package/esm/outOfTheBox/PopupMenu/PopupMenuContent.js +37 -18
  34. package/esm/outOfTheBox/PopupMenu/styles.js +1 -1
  35. package/esm/outOfTheBox/SearchToggle/SearchToggle.js +103 -0
  36. package/esm/outOfTheBox/SearchToggle/styles.js +7 -0
  37. package/esm/outOfTheBox/index.js +1 -0
  38. package/esm/propTypes.js +1 -1
  39. package/package.json +19 -5
  40. package/types/GlobalHeader.d.ts +1 -1
  41. package/types/GlobalHeaderContainer.d.ts +1 -1
  42. package/types/GlobalHeaderContext.d.ts +1 -1
  43. package/types/{index.d.d.ts → GlobalHeaderTypes.d.ts} +28 -17
  44. package/types/components/Breadcrumb/PureBreadcrumb.d.ts +2 -2
  45. package/types/components/Breadcrumb/styles.d.ts +1 -1
  46. package/types/config/useGetPropsWithDefaults.d.ts +1 -1
  47. package/types/config/useGlobalHeader.d.ts +1 -1
  48. package/types/config/useValidateProps.d.ts +1 -1
  49. package/types/config/validateHelpers.d.ts +4 -4
  50. package/types/defaultProps.d.ts +1 -1
  51. package/types/outOfTheBox/AppPicker/AppPicker.d.ts +8 -3
  52. package/types/outOfTheBox/PopupMenu/PopupMenu.d.ts +2 -2
  53. package/types/outOfTheBox/PopupMenu/PopupMenuContent.d.ts +2 -2
  54. package/types/outOfTheBox/SearchToggle/SearchToggle.d.ts +2 -0
  55. package/types/outOfTheBox/SearchToggle/styles.d.ts +1 -0
  56. package/types/outOfTheBox/index.d.ts +1 -0
File without changes
@@ -2,9 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
7
  var _jsx = require('@babel/runtime/helpers/jsx');
6
8
  require('core-js/modules/esnext.async-iterator.map.js');
7
9
  require('core-js/modules/esnext.iterator.map.js');
10
+ require('core-js/modules/esnext.async-iterator.filter.js');
11
+ require('core-js/modules/esnext.iterator.constructor.js');
12
+ require('core-js/modules/esnext.iterator.filter.js');
13
+ require('core-js/modules/esnext.async-iterator.for-each.js');
14
+ require('core-js/modules/esnext.iterator.for-each.js');
8
15
  var React = require('react');
9
16
  var dsGrid = require('@elliemae/ds-grid');
10
17
  var styles = require('./styles.js');
@@ -14,8 +21,15 @@ var jsxRuntime = require('react/jsx-runtime');
14
21
 
15
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
23
 
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
25
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
17
26
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
18
27
 
28
+ const _excluded = ["label"];
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
19
33
  const GlobalHeaderBreadcrumb = () => {
20
34
  const {
21
35
  props: {
@@ -26,14 +40,14 @@ const GlobalHeaderBreadcrumb = () => {
26
40
  setShowIconOnly,
27
41
  globalHeaderBreadcrumbGrid
28
42
  } = React.useContext(GlobalHeaderContext.GlobalHeaderContext);
29
- const breakpoint = React.useRef();
30
- const flexRegion = React.useRef();
43
+ const breakpoint = React.useRef(null);
44
+ const flexRegion = React.useRef(null);
31
45
  React.useEffect(() => {
32
46
  const evaluateShowIconOnly = () => {
33
- if ((flexRegion === null || flexRegion === void 0 ? void 0 : flexRegion.current.offsetWidth) <= 0 && !breakpoint.current) {
47
+ if (flexRegion && flexRegion.current && (flexRegion === null || flexRegion === void 0 ? void 0 : flexRegion.current.offsetWidth) <= 0 && !breakpoint.current) {
34
48
  setShowIconOnly(true);
35
49
  breakpoint.current = window.innerWidth;
36
- } else if (window.innerWidth >= breakpoint.current) {
50
+ } else if (breakpoint && breakpoint.current !== null && window.innerWidth >= breakpoint.current) {
37
51
  setShowIconOnly(false);
38
52
  breakpoint.current = null;
39
53
  }
@@ -46,26 +60,22 @@ const GlobalHeaderBreadcrumb = () => {
46
60
  return /*#__PURE__*/_jsx__default["default"](dsGrid.Grid, {
47
61
  height: "100%",
48
62
  alignItems: "center",
49
- justifyContent: "left",
50
- role: "navigation",
63
+ justifyContent: "flex-start",
51
64
  "aria-label": "breadcrumbs",
52
- cols: globalHeaderBreadcrumbGrid
65
+ cols: globalHeaderBreadcrumbGrid,
66
+ role: "navigation"
53
67
  }, void 0, /*#__PURE__*/_jsx__default["default"](styles.Pipe, {
54
68
  showIconOnly: showIconOnly
55
- }), breadcrumb.map(item => {
69
+ }), breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.map(item => {
56
70
  const {
57
- label,
58
- hasNext,
59
- isSelected,
60
- onClick
61
- } = item;
62
- return /*#__PURE__*/_jsx__default["default"](PureBreadcrumb.PureBreadcrumb, {
71
+ label
72
+ } = item,
73
+ rest = _objectWithoutProperties__default["default"](item, _excluded);
74
+
75
+ return /*#__PURE__*/jsxRuntime.jsx(PureBreadcrumb.PureBreadcrumb, _objectSpread({
63
76
  label: label,
64
- hasNext: hasNext,
65
- isSelected: isSelected,
66
- onClick: onClick,
67
77
  length: breadcrumb.length
68
- }, "".concat(instanceUID, "-breadcrumb-item-").concat(label));
78
+ }, rest), "".concat(instanceUID, "-breadcrumb-item-").concat(label));
69
79
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
70
80
  id: "global-header-flex-region",
71
81
  ref: flexRegion
@@ -2,33 +2,56 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
11
  var _jsx = require('@babel/runtime/helpers/jsx');
12
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
13
  var React = require('react');
7
14
  var dsIcons = require('@elliemae/ds-icons');
15
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
8
16
  var styles = require('./styles.js');
17
+ var jsxRuntime = require('react/jsx-runtime');
9
18
 
10
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
20
 
21
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
12
22
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
13
24
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
25
 
15
26
  var _ChevronSmallRight;
27
+
28
+ const _excluded = ["onClick", "isSelected", "length", "label", "hasNext", "id"];
29
+
30
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
31
+
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
16
33
  const PureBreadcrumb = /*#__PURE__*/React__default["default"].memo(_ref => {
17
34
  let {
18
35
  onClick,
19
36
  isSelected,
20
37
  length,
21
38
  label,
22
- hasNext
23
- } = _ref;
24
- return /*#__PURE__*/_jsx__default["default"](styles.BreadcrumbItem, {}, void 0, /*#__PURE__*/_jsx__default["default"](styles.LabelButton, {
39
+ hasNext,
40
+ id
41
+ } = _ref,
42
+ rest = _objectWithoutProperties__default["default"](_ref, _excluded);
43
+
44
+ return /*#__PURE__*/_jsx__default["default"](styles.BreadcrumbItem, {}, void 0, /*#__PURE__*/jsxRuntime.jsx(styles.LabelButton, _objectSpread(_objectSpread({
25
45
  onClick: onClick,
26
46
  "aria-selected": isSelected,
27
- "data-testid": "gh-breadcrumb-btn"
28
- }, void 0, /*#__PURE__*/_jsx__default["default"](styles.Label, {
29
- isSelected: isSelected,
30
- isOnlyItem: length === 1
31
- }, void 0, label)), hasNext && (_ChevronSmallRight || (_ChevronSmallRight = /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronSmallRight, {
47
+ "data-testid": "gh-breadcrumb-btn",
48
+ id: id
49
+ }, dsPropsHelpers.getDataProps(rest)), {}, {
50
+ children: /*#__PURE__*/_jsx__default["default"](styles.Label, {
51
+ isSelected: !!isSelected,
52
+ isOnlyItem: length === 1
53
+ }, void 0, label)
54
+ })), hasNext && (_ChevronSmallRight || (_ChevronSmallRight = /*#__PURE__*/_jsx__default["default"](dsIcons.ChevronSmallRight, {
32
55
  size: "m",
33
56
  fill: "#FFF"
34
57
  }))));
@@ -21,40 +21,35 @@ const BreadcrumbItem = /*#__PURE__*/styled__default["default"].div.withConfig({
21
21
  })(["display:flex;align-items:center;height:100%;"]);
22
22
  const LabelButton = /*#__PURE__*/styled__default["default"].button.withConfig({
23
23
  componentId: "sc-1n5l527-2"
24
- })(["width:fit-content;height:100%;margin:0;padding:0;border:1px solid transparent;background-color:transparent;outline:none;cursor:pointer;position:relative;&:focus{:after{content:'';position:absolute;top:0;left:-7px;width:calc(100% + 14px);height:100%;border:4px solid ", ";border-radius:6px;}:before{content:'';position:absolute;z-index:2;top:2px;left:-5px;width:calc(100% + 10px);height:calc(100% - 4px);border:2px solid ", ";border-radius:4px;}}"], _ref2 => {
24
+ })(["width:fit-content;height:100%;margin:0;padding:0;border:1px solid transparent;background-color:transparent;outline:none;cursor:pointer;position:relative;&:focus{:before{content:'';position:absolute;z-index:2;top:2px;left:-5px;width:calc(100% + 10px);height:calc(100% - 4px);border:2px solid ", ";border-radius:4px;}}"], _ref2 => {
25
25
  let {
26
26
  theme
27
27
  } = _ref2;
28
- return theme.colors.brand[700];
29
- }, _ref3 => {
30
- let {
31
- theme
32
- } = _ref3;
33
28
  return theme.colors.neutral['000'];
34
29
  });
35
30
  const Label = /*#__PURE__*/styled__default["default"].p.withConfig({
36
31
  componentId: "sc-1n5l527-3"
37
- })(["color:", ";", ";font-size:16px;text-transform:uppercase;border-bottom:", ";margin:3px 5px 0 5px;:hover{", ";}"], _ref4 => {
32
+ })(["color:", ";", ";font-size:16px;text-transform:uppercase;border-bottom:", ";margin:3px 5px 0 5px;:hover{", ";}"], _ref3 => {
38
33
  let {
39
34
  theme
40
- } = _ref4;
35
+ } = _ref3;
41
36
  return theme.colors.neutral['000'];
42
- }, _ref5 => {
37
+ }, _ref4 => {
43
38
  let {
44
39
  theme,
45
40
  isSelected
46
- } = _ref5;
41
+ } = _ref4;
47
42
  return "-webkit-text-stroke: 0.4px ".concat(isSelected ? theme.colors.neutral['000'] : 'transparent');
48
- }, _ref6 => {
43
+ }, _ref5 => {
49
44
  let {
50
45
  isSelected,
51
46
  isOnlyItem
52
- } = _ref6;
47
+ } = _ref5;
53
48
  return "2px solid ".concat(isSelected && !isOnlyItem ? '#FFF' : 'transparent');
54
- }, _ref7 => {
49
+ }, _ref6 => {
55
50
  let {
56
51
  theme
57
- } = _ref7;
52
+ } = _ref6;
58
53
  return "-webkit-text-stroke: 0.4px ".concat(theme.colors.neutral['000']);
59
54
  });
60
55
 
@@ -2,8 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
7
8
  require('core-js/modules/esnext.async-iterator.map.js');
8
9
  require('core-js/modules/esnext.iterator.map.js');
9
10
  require('core-js/modules/esnext.async-iterator.filter.js');
@@ -14,18 +15,23 @@ require('core-js/modules/esnext.iterator.for-each.js');
14
15
  var React = require('react');
15
16
  var AppPicker = require('../../outOfTheBox/AppPicker/AppPicker.js');
16
17
  var PopupMenu = require('../../outOfTheBox/PopupMenu/PopupMenu.js');
18
+ var SearchToggle = require('../../outOfTheBox/SearchToggle/SearchToggle.js');
17
19
  var styles = require('./styles.js');
18
20
  var GlobalHeaderContext = require('../../GlobalHeaderContext.js');
21
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
19
22
  var jsxRuntime = require('react/jsx-runtime');
20
23
 
21
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
25
 
23
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
24
26
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
29
+
30
+ const _excluded = ["Icon", "type", "onClick", "componentProps", "label", "onKeyPress", "id", "CustomComponent"];
25
31
 
26
- 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; }
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
27
33
 
28
- 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__default["default"](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; }
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
29
35
  const ToolbarItems = () => {
30
36
  const {
31
37
  props: {
@@ -33,7 +39,7 @@ const ToolbarItems = () => {
33
39
  },
34
40
  instanceUID
35
41
  } = React.useContext(GlobalHeaderContext.GlobalHeaderContext);
36
- const itemsList = React.useMemo(() => toolbar.map(item => {
42
+ const itemsList = React.useMemo(() => toolbar === null || toolbar === void 0 ? void 0 : toolbar.map(item => {
37
43
  var _Icon;
38
44
 
39
45
  const {
@@ -41,39 +47,56 @@ const ToolbarItems = () => {
41
47
  type,
42
48
  onClick,
43
49
  componentProps,
44
- label
45
- } = item;
50
+ label,
51
+ onKeyPress,
52
+ id,
53
+ CustomComponent
54
+ } = item,
55
+ otherProps = _objectWithoutProperties__default["default"](item, _excluded);
46
56
 
47
57
  switch (type) {
48
58
  case 'ds-popup-menu':
49
- const {
50
- options,
51
- closeOnClick
52
- } = componentProps;
53
- return /*#__PURE__*/_jsx__default["default"](PopupMenu.PopupMenu, {
54
- onClick: onClick,
59
+ return /*#__PURE__*/jsxRuntime.jsx(PopupMenu.PopupMenu, _objectSpread(_objectSpread({
55
60
  title: label,
56
61
  Icon: Icon,
57
- options: options,
58
- closeOnClick: closeOnClick
59
- }, "".concat(instanceUID, "-ds-popup-menu-").concat(label));
62
+ onClick: onClick,
63
+ onKeyPress: onKeyPress,
64
+ id: id
65
+ }, otherProps), {}, {
66
+ componentProps: componentProps
67
+ }), "".concat(instanceUID, "-ds-popup-menu-").concat(label));
60
68
 
61
69
  case 'ds-app-picker':
62
- return /*#__PURE__*/React.createElement(AppPicker.AppPicker, _objectSpread(_objectSpread({}, componentProps), {}, {
63
- onClick: onClick,
70
+ return /*#__PURE__*/jsxRuntime.jsx(AppPicker.AppPicker, _objectSpread({
64
71
  label: label,
65
- key: "".concat(instanceUID, "-ds-app-picker-").concat(label)
66
- }));
72
+ id: id,
73
+ componentProps: componentProps
74
+ }, otherProps), "".concat(instanceUID, "-ds-app-picker-").concat(label));
75
+
76
+ case 'ds-search-toggle':
77
+ return /*#__PURE__*/jsxRuntime.jsx(SearchToggle.SearchToggle, _objectSpread({
78
+ id: id,
79
+ componentProps: componentProps
80
+ }, otherProps), "".concat(instanceUID, "-ds-search-toggle-").concat(id));
81
+
82
+ case 'custom':
83
+ if (CustomComponent) return /*#__PURE__*/_jsx__default["default"](CustomComponent, {
84
+ item: item
85
+ });
86
+ return null;
67
87
 
68
88
  default:
69
- return /*#__PURE__*/_jsx__default["default"](styles.Button, {
89
+ return /*#__PURE__*/jsxRuntime.jsx(styles.Button, _objectSpread(_objectSpread({
70
90
  onClick: onClick,
71
91
  title: label,
72
- "data-testid": "gh-toolbar-item"
73
- }, "".concat(instanceUID, "-ds-toolbar-button-").concat(label), _Icon || (_Icon = /*#__PURE__*/_jsx__default["default"](Icon, {
74
- fill: "#FFF",
75
- size: "m"
76
- })));
92
+ "data-testid": "gh-toolbar-item",
93
+ id: id
94
+ }, dsPropsHelpers.getDataProps(otherProps)), {}, {
95
+ children: _Icon || (_Icon = /*#__PURE__*/_jsx__default["default"](Icon, {
96
+ fill: "#FFF",
97
+ size: "m"
98
+ }))
99
+ }), "".concat(instanceUID, "-ds-toolbar-button-").concat(label));
77
100
  }
78
101
  }), [toolbar, instanceUID]);
79
102
  return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
@@ -10,7 +10,7 @@ var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
10
10
 
11
11
  const Button = /*#__PURE__*/styled__default["default"].button.withConfig({
12
12
  componentId: "sc-1gqj0i3-0"
13
- })(["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 => {
13
+ })(["height:40px;width:40px;border:none;background-color:transparent;cursor:pointer;position:relative;outline:none;&:hover:not(:focus){background-color:", ";outline:none;}&:focus{: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 => {
14
14
  let {
15
15
  theme
16
16
  } = _ref;
@@ -19,11 +19,6 @@ const Button = /*#__PURE__*/styled__default["default"].button.withConfig({
19
19
  let {
20
20
  theme
21
21
  } = _ref2;
22
- return theme.colors.brand[700];
23
- }, _ref3 => {
24
- let {
25
- theme
26
- } = _ref3;
27
22
  return theme.colors.neutral['000'];
28
23
  });
29
24
 
@@ -15,9 +15,9 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
15
 
16
16
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
17
17
 
18
- 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; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- 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__default["default"](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; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
  const useGetPropsWithDefaults = props => {
22
22
  const {
23
23
  toolbar,
@@ -3,8 +3,6 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('core-js/modules/web.dom-collections.iterator.js');
6
- require('core-js/modules/esnext.async-iterator.map.js');
7
- require('core-js/modules/esnext.iterator.map.js');
8
6
  var React = require('react');
9
7
  var uid = require('uid');
10
8
  var useGetPropsWithDefaults = require('./useGetPropsWithDefaults.js');
@@ -16,8 +14,16 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
14
  const useGlobalHeader = props => {
17
15
  const [showIconOnly, setShowIconOnly] = React.useState(false);
18
16
  const instanceUID = React.useMemo(() => uid.uid(5), []);
19
- const globalHeaderToolbarGrid = React.useMemo(() => props.toolbar.map(() => '1fr'), [props.toolbar]);
20
- const globalHeaderBreadcrumbGrid = React.useMemo(() => ['auto', ...props.breadcrumb.map(() => 'auto'), '1fr'], [props.breadcrumb]);
17
+ const globalHeaderToolbarGrid = React.useMemo(() => {
18
+ var _props$toolbar$length, _props$toolbar;
19
+
20
+ 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('auto');
21
+ }, [props.toolbar]);
22
+ const globalHeaderBreadcrumbGrid = React.useMemo(() => {
23
+ var _props$breadcrumb$len, _props$breadcrumb;
24
+
25
+ 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'];
26
+ }, [props.breadcrumb]);
21
27
  const propsWithDefaults = useGetPropsWithDefaults.useGetPropsWithDefaults(props);
22
28
  const ctx = React__default["default"].useMemo(() => ({
23
29
  props: propsWithDefaults,
@@ -35,21 +35,6 @@ const validateAppPickerItem = componentProps => {
35
35
  }
36
36
  };
37
37
 
38
- const validateGenericToolbarItem = item => {
39
- if (item.label && typeof item.label !== 'string') {
40
- validateHelpers.throwToolbarItemGenericError('label', item.label);
41
- }
42
-
43
- if (item.onClick && typeof item.onClick !== 'function') {
44
- validateHelpers.throwToolbarItemGenericError('onClick', item.onClick);
45
- }
46
-
47
- if (item.Icon && typeof item.Icon !== 'function') {
48
- if (item.type === 'ds-app-picker') return;
49
- validateHelpers.throwToolbarItemGenericError('Icon', item.Icon);
50
- }
51
- };
52
-
53
38
  const useValidateProps = props => {
54
39
  const {
55
40
  breadcrumb,
@@ -66,7 +51,7 @@ const useValidateProps = props => {
66
51
  validateHelpers.throwLogoError('LogoWithBrand', LogoWithBrand);
67
52
  }
68
53
 
69
- breadcrumb.forEach(breadcrumbItem => {
54
+ breadcrumb === null || breadcrumb === void 0 ? void 0 : breadcrumb.forEach(breadcrumbItem => {
70
55
  if (breadcrumbItem.label && typeof breadcrumbItem.label !== 'string') {
71
56
  validateHelpers.throwBreadcrumbItemError('label', breadcrumbItem.label);
72
57
  }
@@ -83,9 +68,7 @@ const useValidateProps = props => {
83
68
  validateHelpers.throwBreadcrumbItemError('isSelected', breadcrumbItem.isSelected);
84
69
  }
85
70
  });
86
- toolbar.forEach(toolbarItem => {
87
- validateGenericToolbarItem(toolbarItem);
88
-
71
+ toolbar === null || toolbar === void 0 ? void 0 : toolbar.forEach(toolbarItem => {
89
72
  if (toolbarItem.type) {
90
73
  if (!validateHelpers.isValidToolbarType(toolbarItem.type)) {
91
74
  validateHelpers.throwToolbarItemGenericError('type', toolbarItem.type);
@@ -97,7 +80,9 @@ const useValidateProps = props => {
97
80
 
98
81
  if (toolbarItem.type === 'ds-popup-menu') {
99
82
  validatePopupItem(toolbarItem.componentProps);
100
- } else {
83
+ }
84
+
85
+ if (toolbarItem.type === 'ds-app-picker') {
101
86
  validateAppPickerItem(toolbarItem.componentProps);
102
87
  }
103
88
  }
@@ -10,7 +10,7 @@ const breadcrumbProps = {
10
10
  };
11
11
  const toolbarProps = {
12
12
  label: 'string',
13
- type: '"ds-app-picker" or "ds-popup-menu"',
13
+ type: '"ds-app-picker" or "ds-popup-menu" or "ds-search-toggle"',
14
14
  componentProps: 'object',
15
15
  Icon: 'react component',
16
16
  onClick: 'function',
@@ -28,7 +28,7 @@ const getVariableType = arg => {
28
28
  if (arg === undefined) return 'undefined';
29
29
  return typeof arg;
30
30
  };
31
- const isValidToolbarType = string => string === 'ds-app-picker' || string === 'ds-popup-menu';
31
+ const isValidToolbarType = string => string === 'ds-app-picker' || string === 'ds-popup-menu' || string === 'ds-search-toggle' || string === 'custom';
32
32
  const throwBreadcrumbItemError = (validPropKey, invalidProp) => {
33
33
  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
34
  };
@@ -2,11 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ const emptyComp = () => null;
6
+
5
7
  const defaultProps = {
6
8
  breadcrumb: [],
7
9
  toolbar: [],
8
- LogoWithBrand: null,
9
- Logo: null
10
+ LogoWithBrand: emptyComp,
11
+ Logo: emptyComp
10
12
  };
11
13
 
12
14
  exports.defaultProps = defaultProps;
@@ -2,84 +2,116 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
5
6
  var _jsx = require('@babel/runtime/helpers/jsx');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
8
  require('core-js/modules/web.dom-collections.iterator.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
7
14
  var React = require('react');
8
15
  var dsAppPicker = require('@elliemae/ds-app-picker');
16
+ var dsUtilities = require('@elliemae/ds-utilities');
9
17
  var dsIcons = require('@elliemae/ds-icons');
10
18
  var styles = require('../../components/Toolbar/styles.js');
19
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
11
20
  var jsxRuntime = require('react/jsx-runtime');
12
21
 
13
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
23
 
24
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
15
25
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
26
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
16
27
 
17
28
  var _MenuPicker;
18
- const AppPicker = _ref => {
19
- var _DSAppPicker;
20
29
 
30
+ const _excluded = ["label", "id", "componentProps"];
31
+
32
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
33
+
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
35
+ const AppPicker = _ref => {
21
36
  let {
22
37
  label,
38
+ id,
39
+ componentProps
40
+ } = _ref,
41
+ otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
42
+
43
+ const [isOpen, setIsOpen] = React.useState(false);
44
+ const buttonRef = React.useRef(null);
45
+ const {
23
46
  apps,
47
+ icon,
24
48
  customApps,
25
49
  sectionTitle,
26
50
  customSectionTitle,
27
- onClick = () => null,
28
51
  actionRef,
29
- onKeyDown: customHandleOnKeyDown = () => null
30
- } = _ref;
31
- const [isOpen, setIsOpen] = React.useState(false);
32
- const buttonRef = React.useRef();
52
+ isOpen: userIsOpen,
53
+ onKeyDown: userOnKeyDown,
54
+ onClickOutside: userOnClickOutside,
55
+ renderTrigger: userRenderTrigger,
56
+ onClose,
57
+ triggerRef,
58
+ triggerOnClick
59
+ } = componentProps;
33
60
  const handleTriggerKeyDown = React.useCallback(e => {
34
61
  if (e.code === 'Enter' || e.code === 'Space') {
35
62
  setIsOpen(true);
36
63
  }
37
64
  }, []);
38
65
  const handleAppPickerOnKeyDown = React.useCallback(e => {
39
- customHandleOnKeyDown(e);
40
-
41
66
  if (e.code === 'Escape') {
67
+ var _buttonRef$current;
68
+
42
69
  setIsOpen(false);
70
+ buttonRef === null || buttonRef === void 0 ? void 0 : (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
43
71
  }
44
- }, [customHandleOnKeyDown]);
72
+ }, []);
45
73
  const handleOnClickOutside = React.useCallback(() => {
46
74
  setIsOpen(false);
47
75
  }, []);
48
- const handleOnClick = React.useCallback(e => {
76
+ const handleOnClick = React.useCallback(() => {
49
77
  setIsOpen(true);
50
- onClick(e);
51
- }, [onClick]);
52
- const trigger = React.useMemo(() => _ref2 => {
78
+ }, []);
79
+ const renderTrigger = React.useMemo(() => _ref2 => {
53
80
  let {
54
81
  ref
55
82
  } = _ref2;
56
83
  return /*#__PURE__*/jsxRuntime.jsx("div", {
57
84
  ref: ref,
58
- children: /*#__PURE__*/jsxRuntime.jsx(styles.Button, {
59
- onClick: handleOnClick,
85
+ children: /*#__PURE__*/jsxRuntime.jsx(styles.Button, _objectSpread(_objectSpread({
86
+ onClick: triggerOnClick !== null && triggerOnClick !== void 0 ? triggerOnClick : handleOnClick,
60
87
  onKeyDown: handleTriggerKeyDown,
61
- ref: buttonRef,
88
+ ref: dsUtilities.mergeRefs(buttonRef, triggerRef),
62
89
  title: label,
63
90
  "data-testid": "gh-toolbar-item",
91
+ id: id
92
+ }, dsPropsHelpers.getDataProps(otherProps)), {}, {
64
93
  children: _MenuPicker || (_MenuPicker = /*#__PURE__*/_jsx__default["default"](dsIcons.MenuPicker, {
65
94
  fill: "#FFF",
66
- size: "m"
95
+ width: 20.73,
96
+ height: 20.73
67
97
  }))
68
- })
98
+ }))
69
99
  });
70
- }, [handleOnClick, handleTriggerKeyDown, label]);
71
- return React.useMemo(() => _DSAppPicker || (_DSAppPicker = /*#__PURE__*/_jsx__default["default"](dsAppPicker.DSAppPicker, {
72
- isOpen: isOpen,
100
+ }, [triggerOnClick, handleOnClick, handleTriggerKeyDown, triggerRef, label, id, otherProps]);
101
+ return /*#__PURE__*/_jsx__default["default"](dsAppPicker.DSAppPicker, {
73
102
  apps: apps,
74
103
  customApps: customApps,
75
104
  sectionTitle: sectionTitle,
76
105
  customSectionTitle: customSectionTitle,
77
- onClickOutside: handleOnClickOutside,
78
- renderTrigger: trigger,
79
- triggerRef: buttonRef,
106
+ icon: icon,
107
+ onKeyDown: userOnKeyDown !== null && userOnKeyDown !== void 0 ? userOnKeyDown : handleAppPickerOnKeyDown,
80
108
  actionRef: actionRef,
81
- onKeyDown: handleAppPickerOnKeyDown
82
- })), [actionRef, apps, customApps, customSectionTitle, handleAppPickerOnKeyDown, handleOnClickOutside, isOpen, sectionTitle, trigger]);
109
+ onClickOutside: userOnClickOutside !== null && userOnClickOutside !== void 0 ? userOnClickOutside : handleOnClickOutside,
110
+ renderTrigger: userRenderTrigger !== null && userRenderTrigger !== void 0 ? userRenderTrigger : renderTrigger,
111
+ isOpen: userIsOpen !== null && userIsOpen !== void 0 ? userIsOpen : isOpen,
112
+ onClose: onClose,
113
+ triggerRef: triggerRef
114
+ });
83
115
  };
84
116
 
85
117
  exports.AppPicker = AppPicker;