@elliemae/ds-global-header 2.3.0-alpha.8 → 2.3.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/cjs/GlobalHeader.js +37 -0
  2. package/cjs/GlobalHeaderContainer.js +24 -0
  3. package/cjs/GlobalHeaderContext.js +20 -0
  4. package/cjs/GlobalHeaderTypes.js +2 -0
  5. package/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js +85 -0
  6. package/cjs/components/Breadcrumb/PureBreadcrumb.js +60 -0
  7. package/cjs/components/Breadcrumb/styles.js +59 -0
  8. package/cjs/components/Title/GlobalHeaderTitle.js +29 -0
  9. package/cjs/components/Toolbar/GlobalHeaderToolbar.js +30 -0
  10. package/cjs/components/Toolbar/ToolbarItems.js +107 -0
  11. package/cjs/components/Toolbar/styles.js +25 -0
  12. package/cjs/config/useGetPropsWithDefaults.js +31 -0
  13. package/cjs/config/useGlobalHeader.js +39 -0
  14. package/cjs/config/useValidateProps.js +92 -0
  15. package/cjs/config/validateHelpers.js +57 -0
  16. package/cjs/defaultProps.js +14 -0
  17. package/cjs/index.js +11 -0
  18. package/cjs/outOfTheBox/AppPicker/AppPicker.js +117 -0
  19. package/cjs/outOfTheBox/PopupMenu/PopupMenu.js +101 -0
  20. package/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js +96 -0
  21. package/cjs/outOfTheBox/PopupMenu/styles.js +32 -0
  22. package/cjs/outOfTheBox/SearchToggle/SearchToggle.js +113 -0
  23. package/cjs/outOfTheBox/SearchToggle/styles.js +15 -0
  24. package/cjs/outOfTheBox/index.js +13 -0
  25. package/cjs/propTypes.js +29 -0
  26. package/cjs/styles.js +21 -0
  27. package/esm/GlobalHeader.js +28 -0
  28. package/esm/GlobalHeaderContainer.js +16 -0
  29. package/esm/GlobalHeaderContext.js +16 -0
  30. package/esm/GlobalHeaderTypes.js +1 -0
  31. package/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js +75 -0
  32. package/esm/components/Breadcrumb/PureBreadcrumb.js +49 -0
  33. package/esm/components/Breadcrumb/styles.js +48 -0
  34. package/esm/components/Title/GlobalHeaderTitle.js +21 -0
  35. package/esm/components/Toolbar/GlobalHeaderToolbar.js +22 -0
  36. package/esm/components/Toolbar/ToolbarItems.js +97 -0
  37. package/esm/components/Toolbar/styles.js +17 -0
  38. package/esm/config/useGetPropsWithDefaults.js +23 -0
  39. package/esm/config/useGlobalHeader.js +31 -0
  40. package/esm/config/useValidateProps.js +88 -0
  41. package/esm/config/validateHelpers.js +44 -0
  42. package/{dist/esm → esm}/defaultProps.js +3 -5
  43. package/esm/index.js +1 -0
  44. package/esm/outOfTheBox/AppPicker/AppPicker.js +107 -0
  45. package/esm/outOfTheBox/PopupMenu/PopupMenu.js +91 -0
  46. package/esm/outOfTheBox/PopupMenu/PopupMenuContent.js +86 -0
  47. package/esm/outOfTheBox/PopupMenu/styles.js +21 -0
  48. package/esm/outOfTheBox/SearchToggle/SearchToggle.js +103 -0
  49. package/esm/outOfTheBox/SearchToggle/styles.js +7 -0
  50. package/esm/outOfTheBox/index.js +3 -0
  51. package/esm/propTypes.js +23 -0
  52. package/esm/styles.js +13 -0
  53. package/package.json +72 -76
  54. package/types/GlobalHeader.d.ts +39 -0
  55. package/types/GlobalHeaderContainer.d.ts +3 -0
  56. package/types/GlobalHeaderContext.d.ts +3 -0
  57. package/types/GlobalHeaderTypes.d.ts +85 -0
  58. package/types/components/Breadcrumb/GlobalHeaderBreadcrumb.d.ts +2 -0
  59. package/types/components/Breadcrumb/PureBreadcrumb.d.ts +3 -0
  60. package/types/components/Breadcrumb/styles.d.ts +5 -0
  61. package/types/components/Title/GlobalHeaderTitle.d.ts +2 -0
  62. package/types/components/Toolbar/GlobalHeaderToolbar.d.ts +2 -0
  63. package/types/components/Toolbar/ToolbarItems.d.ts +2 -0
  64. package/types/components/Toolbar/styles.d.ts +1 -0
  65. package/types/config/useGetPropsWithDefaults.d.ts +2 -0
  66. package/types/config/useGlobalHeader.d.ts +2 -0
  67. package/types/config/useValidateProps.d.ts +2 -0
  68. package/types/config/validateHelpers.d.ts +27 -0
  69. package/types/defaultProps.d.ts +2 -0
  70. package/types/index.d.ts +2 -0
  71. package/types/outOfTheBox/AppPicker/AppPicker.d.ts +8 -0
  72. package/types/outOfTheBox/PopupMenu/PopupMenu.d.ts +3 -0
  73. package/types/outOfTheBox/PopupMenu/PopupMenuContent.d.ts +3 -0
  74. package/types/outOfTheBox/PopupMenu/styles.d.ts +4 -0
  75. package/types/outOfTheBox/SearchToggle/SearchToggle.d.ts +2 -0
  76. package/types/outOfTheBox/SearchToggle/styles.d.ts +1 -0
  77. package/types/outOfTheBox/index.d.ts +3 -0
  78. package/types/propTypes.d.ts +29 -0
  79. package/types/styles.d.ts +2 -0
  80. package/dist/cjs/GlobalHeader.js +0 -57
  81. package/dist/cjs/GlobalHeader.js.map +0 -7
  82. package/dist/cjs/GlobalHeaderContainer.js +0 -41
  83. package/dist/cjs/GlobalHeaderContainer.js.map +0 -7
  84. package/dist/cjs/GlobalHeaderContext.js +0 -46
  85. package/dist/cjs/GlobalHeaderContext.js.map +0 -7
  86. package/dist/cjs/GlobalHeaderTypes.js +0 -27
  87. package/dist/cjs/GlobalHeaderTypes.js.map +0 -7
  88. package/dist/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js +0 -85
  89. package/dist/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js.map +0 -7
  90. package/dist/cjs/components/Breadcrumb/PureBreadcrumb.js +0 -51
  91. package/dist/cjs/components/Breadcrumb/PureBreadcrumb.js.map +0 -7
  92. package/dist/cjs/components/Breadcrumb/styles.js +0 -83
  93. package/dist/cjs/components/Breadcrumb/styles.js.map +0 -7
  94. package/dist/cjs/components/Title/GlobalHeaderTitle.js +0 -48
  95. package/dist/cjs/components/Title/GlobalHeaderTitle.js.map +0 -7
  96. package/dist/cjs/components/Toolbar/GlobalHeaderToolbar.js +0 -49
  97. package/dist/cjs/components/Toolbar/GlobalHeaderToolbar.js.map +0 -7
  98. package/dist/cjs/components/Toolbar/ToolbarItems.js +0 -96
  99. package/dist/cjs/components/Toolbar/ToolbarItems.js.map +0 -7
  100. package/dist/cjs/components/Toolbar/styles.js +0 -61
  101. package/dist/cjs/components/Toolbar/styles.js.map +0 -7
  102. package/dist/cjs/config/useGetPropsWithDefaults.js +0 -43
  103. package/dist/cjs/config/useGetPropsWithDefaults.js.map +0 -7
  104. package/dist/cjs/config/useGlobalHeader.js +0 -53
  105. package/dist/cjs/config/useGlobalHeader.js.map +0 -7
  106. package/dist/cjs/config/useValidateProps.js +0 -109
  107. package/dist/cjs/config/useValidateProps.js.map +0 -7
  108. package/dist/cjs/config/validateHelpers.js +0 -111
  109. package/dist/cjs/config/validateHelpers.js.map +0 -7
  110. package/dist/cjs/defaultProps.js +0 -41
  111. package/dist/cjs/defaultProps.js.map +0 -7
  112. package/dist/cjs/index.js +0 -36
  113. package/dist/cjs/index.js.map +0 -7
  114. package/dist/cjs/outOfTheBox/AppPicker/AppPicker.js +0 -110
  115. package/dist/cjs/outOfTheBox/AppPicker/AppPicker.js.map +0 -7
  116. package/dist/cjs/outOfTheBox/PopupMenu/PopupMenu.js +0 -96
  117. package/dist/cjs/outOfTheBox/PopupMenu/PopupMenu.js.map +0 -7
  118. package/dist/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js +0 -89
  119. package/dist/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js.map +0 -7
  120. package/dist/cjs/outOfTheBox/PopupMenu/styles.js +0 -67
  121. package/dist/cjs/outOfTheBox/PopupMenu/styles.js.map +0 -7
  122. package/dist/cjs/outOfTheBox/SearchToggle/SearchToggle.js +0 -108
  123. package/dist/cjs/outOfTheBox/SearchToggle/SearchToggle.js.map +0 -7
  124. package/dist/cjs/outOfTheBox/SearchToggle/styles.js +0 -82
  125. package/dist/cjs/outOfTheBox/SearchToggle/styles.js.map +0 -7
  126. package/dist/cjs/outOfTheBox/index.js +0 -30
  127. package/dist/cjs/outOfTheBox/index.js.map +0 -7
  128. package/dist/cjs/propTypes.js +0 -56
  129. package/dist/cjs/propTypes.js.map +0 -7
  130. package/dist/cjs/styles.js +0 -43
  131. package/dist/cjs/styles.js.map +0 -7
  132. package/dist/esm/GlobalHeader.js +0 -28
  133. package/dist/esm/GlobalHeader.js.map +0 -7
  134. package/dist/esm/GlobalHeaderContainer.js +0 -12
  135. package/dist/esm/GlobalHeaderContainer.js.map +0 -7
  136. package/dist/esm/GlobalHeaderContext.js +0 -17
  137. package/dist/esm/GlobalHeaderContext.js.map +0 -7
  138. package/dist/esm/GlobalHeaderTypes.js +0 -2
  139. package/dist/esm/GlobalHeaderTypes.js.map +0 -7
  140. package/dist/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js +0 -56
  141. package/dist/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js.map +0 -7
  142. package/dist/esm/components/Breadcrumb/PureBreadcrumb.js +0 -22
  143. package/dist/esm/components/Breadcrumb/PureBreadcrumb.js.map +0 -7
  144. package/dist/esm/components/Breadcrumb/styles.js +0 -54
  145. package/dist/esm/components/Breadcrumb/styles.js.map +0 -7
  146. package/dist/esm/components/Title/GlobalHeaderTitle.js +0 -19
  147. package/dist/esm/components/Title/GlobalHeaderTitle.js.map +0 -7
  148. package/dist/esm/components/Toolbar/GlobalHeaderToolbar.js +0 -20
  149. package/dist/esm/components/Toolbar/GlobalHeaderToolbar.js.map +0 -7
  150. package/dist/esm/components/Toolbar/ToolbarItems.js +0 -67
  151. package/dist/esm/components/Toolbar/ToolbarItems.js.map +0 -7
  152. package/dist/esm/components/Toolbar/styles.js +0 -32
  153. package/dist/esm/components/Toolbar/styles.js.map +0 -7
  154. package/dist/esm/config/useGetPropsWithDefaults.js +0 -14
  155. package/dist/esm/config/useGetPropsWithDefaults.js.map +0 -7
  156. package/dist/esm/config/useGlobalHeader.js +0 -24
  157. package/dist/esm/config/useGlobalHeader.js.map +0 -7
  158. package/dist/esm/config/useValidateProps.js +0 -88
  159. package/dist/esm/config/useValidateProps.js.map +0 -7
  160. package/dist/esm/config/validateHelpers.js +0 -82
  161. package/dist/esm/config/validateHelpers.js.map +0 -7
  162. package/dist/esm/defaultProps.js.map +0 -7
  163. package/dist/esm/index.js +0 -7
  164. package/dist/esm/index.js.map +0 -7
  165. package/dist/esm/outOfTheBox/AppPicker/AppPicker.js +0 -81
  166. package/dist/esm/outOfTheBox/AppPicker/AppPicker.js.map +0 -7
  167. package/dist/esm/outOfTheBox/PopupMenu/PopupMenu.js +0 -67
  168. package/dist/esm/outOfTheBox/PopupMenu/PopupMenu.js.map +0 -7
  169. package/dist/esm/outOfTheBox/PopupMenu/PopupMenuContent.js +0 -60
  170. package/dist/esm/outOfTheBox/PopupMenu/PopupMenuContent.js.map +0 -7
  171. package/dist/esm/outOfTheBox/PopupMenu/styles.js +0 -38
  172. package/dist/esm/outOfTheBox/PopupMenu/styles.js.map +0 -7
  173. package/dist/esm/outOfTheBox/SearchToggle/SearchToggle.js +0 -79
  174. package/dist/esm/outOfTheBox/SearchToggle/SearchToggle.js.map +0 -7
  175. package/dist/esm/outOfTheBox/SearchToggle/styles.js +0 -53
  176. package/dist/esm/outOfTheBox/SearchToggle/styles.js.map +0 -7
  177. package/dist/esm/outOfTheBox/index.js +0 -5
  178. package/dist/esm/outOfTheBox/index.js.map +0 -7
  179. package/dist/esm/propTypes.js +0 -27
  180. package/dist/esm/propTypes.js.map +0 -7
  181. package/dist/esm/styles.js +0 -14
  182. package/dist/esm/styles.js.map +0 -7
@@ -1,14 +0,0 @@
1
- import * as React from "react";
2
- import { useMemo } from "react";
3
- import { defaultProps } from "../defaultProps";
4
- const useGetPropsWithDefaults = (props) => {
5
- const { toolbar, breadcrumb, Logo, LogoWithBrand } = props;
6
- return useMemo(() => ({
7
- ...defaultProps,
8
- ...props
9
- }), [toolbar, breadcrumb, Logo, LogoWithBrand]);
10
- };
11
- export {
12
- useGetPropsWithDefaults
13
- };
14
- //# sourceMappingURL=useGetPropsWithDefaults.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGetPropsWithDefaults.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react-hooks/exhaustive-deps */\nimport { useMemo } from 'react';\nimport type { GlobalHeaderPropsT } from '../GlobalHeaderTypes';\nimport { defaultProps } from '../defaultProps';\n\nexport const useGetPropsWithDefaults = (props: GlobalHeaderPropsT): GlobalHeaderPropsT => {\n const { toolbar, breadcrumb, Logo, LogoWithBrand } = props;\n\n return useMemo(\n () => ({\n ...defaultProps,\n ...props,\n }),\n [toolbar, breadcrumb, Logo, LogoWithBrand],\n );\n};\n"],
5
- "mappings": "AAAA;ACCA;AAEA;AAEO,MAAM,0BAA0B,CAAC,UAAkD;AACxF,QAAM,EAAE,SAAS,YAAY,MAAM,kBAAkB;AAErD,SAAO,QACL,MAAO;AAAA,OACF;AAAA,OACA;AAAA,MAEL,CAAC,SAAS,YAAY,MAAM;AAAA;",
6
- "names": []
7
- }
@@ -1,24 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useState, useMemo } from "react";
3
- import { uid } from "uid";
4
- import { useGetPropsWithDefaults } from "./useGetPropsWithDefaults";
5
- const useGlobalHeader = (props) => {
6
- const [showIconOnly, setShowIconOnly] = useState(false);
7
- const instanceUID = useMemo(() => uid(5), []);
8
- const globalHeaderToolbarGrid = useMemo(() => new Array(props?.toolbar?.length ?? 0).fill("auto"), [props.toolbar]);
9
- const globalHeaderBreadcrumbGrid = useMemo(() => ["auto", ...new Array(props?.breadcrumb?.length ?? 0).fill("auto"), "1fr"], [props.breadcrumb]);
10
- const propsWithDefaults = useGetPropsWithDefaults(props);
11
- const ctx = React2.useMemo(() => ({
12
- props: propsWithDefaults,
13
- showIconOnly,
14
- setShowIconOnly,
15
- instanceUID,
16
- globalHeaderToolbarGrid,
17
- globalHeaderBreadcrumbGrid
18
- }), [propsWithDefaults, showIconOnly, instanceUID, globalHeaderToolbarGrid, globalHeaderBreadcrumbGrid]);
19
- return ctx;
20
- };
21
- export {
22
- useGlobalHeader
23
- };
24
- //# sourceMappingURL=useGlobalHeader.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useGlobalHeader.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useMemo } from 'react';\nimport { uid } from 'uid';\nimport type { ContextT, GlobalHeaderPropsT } from '../GlobalHeaderTypes';\nimport { useGetPropsWithDefaults } from './useGetPropsWithDefaults';\n\nexport const useGlobalHeader = (props: GlobalHeaderPropsT): ContextT => {\n const [showIconOnly, setShowIconOnly] = useState<boolean>(false);\n\n const instanceUID = useMemo(() => uid(5), []);\n\n const globalHeaderToolbarGrid = useMemo(() => new Array(props?.toolbar?.length ?? 0).fill('auto'), [props.toolbar]);\n const globalHeaderBreadcrumbGrid = useMemo(\n () => ['auto', ...new Array(props?.breadcrumb?.length ?? 0).fill('auto'), '1fr'],\n [props.breadcrumb],\n );\n\n const propsWithDefaults = useGetPropsWithDefaults(props);\n\n const ctx = React.useMemo(\n () => ({\n props: propsWithDefaults,\n showIconOnly,\n setShowIconOnly,\n instanceUID,\n globalHeaderToolbarGrid,\n globalHeaderBreadcrumbGrid,\n }),\n [propsWithDefaults, showIconOnly, instanceUID, globalHeaderToolbarGrid, globalHeaderBreadcrumbGrid],\n );\n\n return ctx;\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AAEA;AAEO,MAAM,kBAAkB,CAAC,UAAwC;AACtE,QAAM,CAAC,cAAc,mBAAmB,SAAkB;AAE1D,QAAM,cAAc,QAAQ,MAAM,IAAI,IAAI;AAE1C,QAAM,0BAA0B,QAAQ,MAAM,IAAI,MAAM,OAAO,SAAS,UAAU,GAAG,KAAK,SAAS,CAAC,MAAM;AAC1G,QAAM,6BAA6B,QACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,OAAO,YAAY,UAAU,GAAG,KAAK,SAAS,QAC1E,CAAC,MAAM;AAGT,QAAM,oBAAoB,wBAAwB;AAElD,QAAM,MAAM,OAAM,QAChB,MAAO;AAAA,IACL,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MAEF,CAAC,mBAAmB,cAAc,aAAa,yBAAyB;AAG1E,SAAO;AAAA;",
6
- "names": []
7
- }
@@ -1,88 +0,0 @@
1
- import * as React from "react";
2
- import {
3
- throwToolbarPopupItemError,
4
- throwToolbarAppPickerItemError,
5
- throwToolbarItemGenericError,
6
- throwLogoError,
7
- throwBreadcrumbItemError,
8
- isValidToolbarType,
9
- isObject
10
- } from "./validateHelpers";
11
- const validatePopupItem = (componentProps) => {
12
- if (componentProps.options && !Array.isArray(componentProps.options)) {
13
- throwToolbarPopupItemError("options", componentProps.options);
14
- }
15
- if (componentProps.closeOnClick && typeof componentProps.closeOnClick !== "boolean") {
16
- throwToolbarPopupItemError("closeOnClick", componentProps.closeOnClick);
17
- }
18
- };
19
- const validateAppPickerItem = (componentProps) => {
20
- if (componentProps.apps && !Array.isArray(componentProps.apps)) {
21
- throwToolbarAppPickerItemError("apps", componentProps.apps);
22
- }
23
- if (componentProps.customApps && !Array.isArray(componentProps.customApps)) {
24
- throwToolbarAppPickerItemError("customApps", componentProps.customApps);
25
- }
26
- if (componentProps.sectionTitle && typeof componentProps.sectionTitle !== "string") {
27
- throwToolbarAppPickerItemError("sectionTitle", componentProps.sectionTitle);
28
- }
29
- if (componentProps.customSectionTitle && typeof componentProps.customSectionTitle !== "string") {
30
- throwToolbarAppPickerItemError("customSectionTitle", componentProps.customSectionTitle);
31
- }
32
- };
33
- const validateGenericToolbarItem = (item) => {
34
- if (item.label && typeof item.label !== "string") {
35
- throwToolbarItemGenericError("label", item.label);
36
- }
37
- if (item.onClick && typeof item.onClick !== "function") {
38
- throwToolbarItemGenericError("onClick", item.onClick);
39
- }
40
- if (item.Icon && typeof item.Icon !== "function") {
41
- if (item.type === "ds-app-picker")
42
- return;
43
- throwToolbarItemGenericError("Icon", item.Icon);
44
- }
45
- };
46
- const useValidateProps = (props) => {
47
- const { breadcrumb, toolbar, Logo, LogoWithBrand } = props;
48
- if (Logo && typeof Logo !== "function") {
49
- throwLogoError("Logo", Logo);
50
- }
51
- if (LogoWithBrand && typeof LogoWithBrand !== "function") {
52
- throwLogoError("LogoWithBrand", LogoWithBrand);
53
- }
54
- breadcrumb?.forEach((breadcrumbItem) => {
55
- if (breadcrumbItem.label && typeof breadcrumbItem.label !== "string") {
56
- throwBreadcrumbItemError("label", breadcrumbItem.label);
57
- }
58
- if (breadcrumbItem.onClick && typeof breadcrumbItem.onClick !== "function") {
59
- throwBreadcrumbItemError("onClick", breadcrumbItem.onClick);
60
- }
61
- if (breadcrumbItem.hasNext && typeof breadcrumbItem.hasNext !== "boolean") {
62
- throwBreadcrumbItemError("hasNext", breadcrumbItem.hasNext);
63
- }
64
- if (breadcrumbItem.isSelected && typeof breadcrumbItem.isSelected !== "boolean") {
65
- throwBreadcrumbItemError("isSelected", breadcrumbItem.isSelected);
66
- }
67
- });
68
- toolbar?.forEach((toolbarItem) => {
69
- if (toolbarItem.type) {
70
- if (!isValidToolbarType(toolbarItem.type)) {
71
- throwToolbarItemGenericError("type", toolbarItem.type);
72
- }
73
- if (toolbarItem.componentProps && !isObject(toolbarItem.componentProps)) {
74
- throwToolbarItemGenericError("componentProps", toolbarItem.componentProps);
75
- }
76
- if (toolbarItem.type === "ds-popup-menu") {
77
- validatePopupItem(toolbarItem.componentProps);
78
- }
79
- if (toolbarItem.type === "ds-app-picker") {
80
- validateAppPickerItem(toolbarItem.componentProps);
81
- }
82
- }
83
- });
84
- };
85
- export {
86
- useValidateProps
87
- };
88
- //# sourceMappingURL=useValidateProps.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useValidateProps.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { AppPickerProps, GlobalHeaderPropsT, PopupPropsT, ToolbarItemT } from '../GlobalHeaderTypes';\nimport {\n throwToolbarPopupItemError,\n throwToolbarAppPickerItemError,\n throwToolbarItemGenericError,\n throwLogoError,\n throwBreadcrumbItemError,\n isValidToolbarType,\n isObject,\n} from './validateHelpers';\n\nconst validatePopupItem = (componentProps: PopupPropsT): void => {\n if (componentProps.options && !Array.isArray(componentProps.options)) {\n throwToolbarPopupItemError('options', componentProps.options);\n }\n if (componentProps.closeOnClick && typeof componentProps.closeOnClick !== 'boolean') {\n throwToolbarPopupItemError('closeOnClick', componentProps.closeOnClick);\n }\n};\n\nconst validateAppPickerItem = (componentProps: AppPickerProps): void => {\n if (componentProps.apps && !Array.isArray(componentProps.apps)) {\n throwToolbarAppPickerItemError('apps', componentProps.apps);\n }\n if (componentProps.customApps && !Array.isArray(componentProps.customApps)) {\n throwToolbarAppPickerItemError('customApps', componentProps.customApps);\n }\n if (componentProps.sectionTitle && typeof componentProps.sectionTitle !== 'string') {\n throwToolbarAppPickerItemError('sectionTitle', componentProps.sectionTitle);\n }\n if (componentProps.customSectionTitle && typeof componentProps.customSectionTitle !== 'string') {\n throwToolbarAppPickerItemError('customSectionTitle', componentProps.customSectionTitle);\n }\n};\n\nconst validateGenericToolbarItem = (item: ToolbarItemT): void => {\n if (item.label && typeof item.label !== 'string') {\n throwToolbarItemGenericError('label', item.label);\n }\n if (item.onClick && typeof item.onClick !== 'function') {\n throwToolbarItemGenericError('onClick', item.onClick);\n }\n if (item.Icon && typeof item.Icon !== 'function') {\n if (item.type === 'ds-app-picker') return;\n throwToolbarItemGenericError('Icon', item.Icon);\n }\n};\n\nexport const useValidateProps = (props: GlobalHeaderPropsT): void => {\n const { breadcrumb, toolbar, Logo, LogoWithBrand } = props;\n\n if (Logo && typeof Logo !== 'function') {\n throwLogoError('Logo', Logo);\n }\n\n if (LogoWithBrand && typeof LogoWithBrand !== 'function') {\n throwLogoError('LogoWithBrand', LogoWithBrand);\n }\n\n breadcrumb?.forEach((breadcrumbItem) => {\n if (breadcrumbItem.label && typeof breadcrumbItem.label !== 'string') {\n throwBreadcrumbItemError('label', breadcrumbItem.label);\n }\n if (breadcrumbItem.onClick && typeof breadcrumbItem.onClick !== 'function') {\n throwBreadcrumbItemError('onClick', breadcrumbItem.onClick);\n }\n if (breadcrumbItem.hasNext && typeof breadcrumbItem.hasNext !== 'boolean') {\n throwBreadcrumbItemError('hasNext', breadcrumbItem.hasNext);\n }\n if (breadcrumbItem.isSelected && typeof breadcrumbItem.isSelected !== 'boolean') {\n throwBreadcrumbItemError('isSelected', breadcrumbItem.isSelected);\n }\n });\n\n toolbar?.forEach((toolbarItem) => {\n if (toolbarItem.type) {\n if (!isValidToolbarType(toolbarItem.type)) {\n throwToolbarItemGenericError('type', toolbarItem.type);\n }\n if (toolbarItem.componentProps && !isObject(toolbarItem.componentProps)) {\n throwToolbarItemGenericError('componentProps', toolbarItem.componentProps);\n }\n if (toolbarItem.type === 'ds-popup-menu') {\n validatePopupItem(toolbarItem.componentProps as PopupPropsT);\n }\n if (toolbarItem.type === 'ds-app-picker') {\n validateAppPickerItem(toolbarItem.componentProps as AppPickerProps);\n }\n }\n });\n};\n"],
5
- "mappings": "AAAA;ACCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,MAAM,oBAAoB,CAAC,mBAAsC;AAC/D,MAAI,eAAe,WAAW,CAAC,MAAM,QAAQ,eAAe,UAAU;AACpE,+BAA2B,WAAW,eAAe;AAAA;AAEvD,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,WAAW;AACnF,+BAA2B,gBAAgB,eAAe;AAAA;AAAA;AAI9D,MAAM,wBAAwB,CAAC,mBAAyC;AACtE,MAAI,eAAe,QAAQ,CAAC,MAAM,QAAQ,eAAe,OAAO;AAC9D,mCAA+B,QAAQ,eAAe;AAAA;AAExD,MAAI,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,aAAa;AAC1E,mCAA+B,cAAc,eAAe;AAAA;AAE9D,MAAI,eAAe,gBAAgB,OAAO,eAAe,iBAAiB,UAAU;AAClF,mCAA+B,gBAAgB,eAAe;AAAA;AAEhE,MAAI,eAAe,sBAAsB,OAAO,eAAe,uBAAuB,UAAU;AAC9F,mCAA+B,sBAAsB,eAAe;AAAA;AAAA;AAIxE,MAAM,6BAA6B,CAAC,SAA6B;AAC/D,MAAI,KAAK,SAAS,OAAO,KAAK,UAAU,UAAU;AAChD,iCAA6B,SAAS,KAAK;AAAA;AAE7C,MAAI,KAAK,WAAW,OAAO,KAAK,YAAY,YAAY;AACtD,iCAA6B,WAAW,KAAK;AAAA;AAE/C,MAAI,KAAK,QAAQ,OAAO,KAAK,SAAS,YAAY;AAChD,QAAI,KAAK,SAAS;AAAiB;AACnC,iCAA6B,QAAQ,KAAK;AAAA;AAAA;AAIvC,MAAM,mBAAmB,CAAC,UAAoC;AACnE,QAAM,EAAE,YAAY,SAAS,MAAM,kBAAkB;AAErD,MAAI,QAAQ,OAAO,SAAS,YAAY;AACtC,mBAAe,QAAQ;AAAA;AAGzB,MAAI,iBAAiB,OAAO,kBAAkB,YAAY;AACxD,mBAAe,iBAAiB;AAAA;AAGlC,cAAY,QAAQ,CAAC,mBAAmB;AACtC,QAAI,eAAe,SAAS,OAAO,eAAe,UAAU,UAAU;AACpE,+BAAyB,SAAS,eAAe;AAAA;AAEnD,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,YAAY;AAC1E,+BAAyB,WAAW,eAAe;AAAA;AAErD,QAAI,eAAe,WAAW,OAAO,eAAe,YAAY,WAAW;AACzE,+BAAyB,WAAW,eAAe;AAAA;AAErD,QAAI,eAAe,cAAc,OAAO,eAAe,eAAe,WAAW;AAC/E,+BAAyB,cAAc,eAAe;AAAA;AAAA;AAI1D,WAAS,QAAQ,CAAC,gBAAgB;AAChC,QAAI,YAAY,MAAM;AACpB,UAAI,CAAC,mBAAmB,YAAY,OAAO;AACzC,qCAA6B,QAAQ,YAAY;AAAA;AAEnD,UAAI,YAAY,kBAAkB,CAAC,SAAS,YAAY,iBAAiB;AACvE,qCAA6B,kBAAkB,YAAY;AAAA;AAE7D,UAAI,YAAY,SAAS,iBAAiB;AACxC,0BAAkB,YAAY;AAAA;AAEhC,UAAI,YAAY,SAAS,iBAAiB;AACxC,8BAAsB,YAAY;AAAA;AAAA;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,82 +0,0 @@
1
- import * as React from "react";
2
- const breadcrumbProps = {
3
- label: "string",
4
- onClick: "function",
5
- hasNext: "boolean",
6
- isSelected: "boolean"
7
- };
8
- const toolbarProps = {
9
- label: "string",
10
- type: '"ds-app-picker" or "ds-popup-menu" or "ds-search-toggle"',
11
- componentProps: "object",
12
- Icon: "react component",
13
- onClick: "function",
14
- options: "array",
15
- closeOnClick: "boolean",
16
- apps: "array",
17
- customApps: "array",
18
- sectionTitle: "string",
19
- customSectionTitle: "string"
20
- };
21
- const isObject = (obj) => typeof obj === "object" && !!obj && !Array.isArray(obj);
22
- const getVariableType = (arg) => {
23
- if (Array.isArray(arg))
24
- return "array";
25
- if (arg === null)
26
- return "null";
27
- if (arg === void 0)
28
- return "undefined";
29
- return typeof arg;
30
- };
31
- const isValidToolbarType = (string) => string === "ds-app-picker" || string === "ds-popup-menu" || string === "ds-search-toggle" || string === "custom";
32
- const throwBreadcrumbItemError = (validPropKey, invalidProp) => {
33
- throw new Error(`You are trying to pass a not valid "${validPropKey}" property for a breadcrumb item, please provide a valid type.
34
-
35
- Received: ${invalidProp} (${typeof invalidProp})
36
- Expected: (${breadcrumbProps[validPropKey]})
37
- `);
38
- };
39
- const throwToolbarPopupItemError = (validPropKey, invalidProp) => {
40
- throw new Error(`You are trying to pass a not valid "${validPropKey}" property inside componentProps for a ds-popup-menu
41
- toolbar item, please provide a valid type.
42
-
43
- Received: ${invalidProp} (${getVariableType(invalidProp)})
44
- Expected: (${toolbarProps[validPropKey]})
45
- `);
46
- };
47
- const throwToolbarAppPickerItemError = (validPropKey, invalidProp) => {
48
- throw new Error(`You are trying to pass a not valid "${validPropKey}" property inside componentProps for a ds-app-picker
49
- toolbar item, please provide a valid type.
50
-
51
- Received: ${invalidProp} (${getVariableType(invalidProp)})
52
- Expected: (${toolbarProps[validPropKey]})
53
- `);
54
- };
55
- const throwToolbarItemGenericError = (validPropKey, invalidProp) => {
56
- throw new Error(`You are trying to pass a not valid "${validPropKey}" property for a toolbar item, please provide a valid type.
57
-
58
- Received: ${invalidProp} (${getVariableType(invalidProp)})
59
- Expected: (${toolbarProps[validPropKey]})
60
- `);
61
- };
62
- const throwLogoError = (validPropKey, invalidProp) => {
63
- throw new Error(`You are trying to pass a not valid "${validPropKey}" property for a global header,
64
- remember to provide both Logo and LogoWithBrand properties with a valid type.
65
-
66
- Received: ${invalidProp} (${getVariableType(invalidProp)}).
67
- Expected: (react component).
68
- `);
69
- };
70
- export {
71
- breadcrumbProps,
72
- getVariableType,
73
- isObject,
74
- isValidToolbarType,
75
- throwBreadcrumbItemError,
76
- throwLogoError,
77
- throwToolbarAppPickerItemError,
78
- throwToolbarItemGenericError,
79
- throwToolbarPopupItemError,
80
- toolbarProps
81
- };
82
- //# sourceMappingURL=validateHelpers.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/validateHelpers.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const breadcrumbProps = {\n label: 'string',\n onClick: 'function',\n hasNext: 'boolean',\n isSelected: 'boolean',\n};\n\nexport const toolbarProps = {\n label: 'string',\n type: '\"ds-app-picker\" or \"ds-popup-menu\" or \"ds-search-toggle\"',\n componentProps: 'object',\n Icon: 'react component',\n onClick: 'function',\n options: 'array',\n closeOnClick: 'boolean',\n apps: 'array',\n customApps: 'array',\n sectionTitle: 'string',\n customSectionTitle: 'string',\n};\n\nexport const isObject = (obj: unknown): boolean => typeof obj === 'object' && !!obj && !Array.isArray(obj);\n\nexport const getVariableType = (arg: unknown): string => {\n if (Array.isArray(arg)) return 'array';\n if (arg === null) return 'null';\n if (arg === undefined) return 'undefined';\n return typeof arg;\n};\n\nexport const isValidToolbarType = (string: unknown): boolean =>\n string === 'ds-app-picker' || string === 'ds-popup-menu' || string === 'ds-search-toggle' || string === 'custom';\n\nexport const throwBreadcrumbItemError = (validPropKey: keyof typeof breadcrumbProps, invalidProp: unknown): void => {\n throw new Error(\n `You are trying to pass a not valid \"${validPropKey}\" property for a breadcrumb item, please provide a valid type.\n\n Received: ${invalidProp} (${typeof invalidProp})\n Expected: (${breadcrumbProps[validPropKey]})\n `,\n );\n};\n\nexport const throwToolbarPopupItemError = (validPropKey: keyof typeof toolbarProps, invalidProp: unknown): void => {\n throw new Error(\n `You are trying to pass a not valid \"${validPropKey}\" property inside componentProps for a ds-popup-menu \n toolbar item, please provide a valid type.\n\n Received: ${invalidProp} (${getVariableType(invalidProp)})\n Expected: (${toolbarProps[validPropKey]})\n `,\n );\n};\n\nexport const throwToolbarAppPickerItemError = (validPropKey: keyof typeof toolbarProps, invalidProp: unknown): void => {\n throw new Error(\n `You are trying to pass a not valid \"${validPropKey}\" property inside componentProps for a ds-app-picker \n toolbar item, please provide a valid type.\n\n Received: ${invalidProp} (${getVariableType(invalidProp)})\n Expected: (${toolbarProps[validPropKey]})\n `,\n );\n};\n\nexport const throwToolbarItemGenericError = (validPropKey: keyof typeof toolbarProps, invalidProp: unknown): void => {\n throw new Error(\n `You are trying to pass a not valid \"${validPropKey}\" property for a toolbar item, please provide a valid type.\n\n Received: ${invalidProp} (${getVariableType(invalidProp)})\n Expected: (${toolbarProps[validPropKey]})\n `,\n );\n};\n\nexport const throwLogoError = (validPropKey: string, invalidProp: unknown): void => {\n throw new Error(\n `You are trying to pass a not valid \"${validPropKey}\" property for a global header, \n remember to provide both Logo and LogoWithBrand properties with a valid type.\n\n Received: ${invalidProp} (${getVariableType(invalidProp)}).\n Expected: (react component).\n `,\n );\n};\n"],
5
- "mappings": "AAAA;ACAO,MAAM,kBAAkB;AAAA,EAC7B,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AAAA,EACT,YAAY;AAAA;AAGP,MAAM,eAAe;AAAA,EAC1B,OAAO;AAAA,EACP,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,cAAc;AAAA,EACd,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,oBAAoB;AAAA;AAGf,MAAM,WAAW,CAAC,QAA0B,OAAO,QAAQ,YAAY,CAAC,CAAC,OAAO,CAAC,MAAM,QAAQ;AAE/F,MAAM,kBAAkB,CAAC,QAAyB;AACvD,MAAI,MAAM,QAAQ;AAAM,WAAO;AAC/B,MAAI,QAAQ;AAAM,WAAO;AACzB,MAAI,QAAQ;AAAW,WAAO;AAC9B,SAAO,OAAO;AAAA;AAGT,MAAM,qBAAqB,CAAC,WACjC,WAAW,mBAAmB,WAAW,mBAAmB,WAAW,sBAAsB,WAAW;AAEnG,MAAM,2BAA2B,CAAC,cAA4C,gBAA+B;AAClH,QAAM,IAAI,MACR,uCAAuC;AAAA;AAAA,cAE7B,gBAAgB,OAAO;AAAA,eACtB,gBAAgB;AAAA;AAAA;AAKxB,MAAM,6BAA6B,CAAC,cAAyC,gBAA+B;AACjH,QAAM,IAAI,MACR,uCAAuC;AAAA;AAAA;AAAA,cAG7B,gBAAgB,gBAAgB;AAAA,eAC/B,aAAa;AAAA;AAAA;AAKrB,MAAM,iCAAiC,CAAC,cAAyC,gBAA+B;AACrH,QAAM,IAAI,MACR,uCAAuC;AAAA;AAAA;AAAA,cAG7B,gBAAgB,gBAAgB;AAAA,eAC/B,aAAa;AAAA;AAAA;AAKrB,MAAM,+BAA+B,CAAC,cAAyC,gBAA+B;AACnH,QAAM,IAAI,MACR,uCAAuC;AAAA;AAAA,cAE7B,gBAAgB,gBAAgB;AAAA,eAC/B,aAAa;AAAA;AAAA;AAKrB,MAAM,iBAAiB,CAAC,cAAsB,gBAA+B;AAClF,QAAM,IAAI,MACR,uCAAuC;AAAA;AAAA;AAAA,cAG7B,gBAAgB,gBAAgB;AAAA;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/defaultProps.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type { GlobalHeaderPropsT } from './GlobalHeaderTypes';\n\nconst emptyComp = () => null;\n\nexport const defaultProps: GlobalHeaderPropsT = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: emptyComp,\n Logo: emptyComp,\n};\n"],
5
- "mappings": "AAAA;ACEA,MAAM,YAAY,MAAM;AAEjB,MAAM,eAAmC;AAAA,EAC9C,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,eAAe;AAAA,EACf,MAAM;AAAA;",
6
- "names": []
7
- }
package/dist/esm/index.js DELETED
@@ -1,7 +0,0 @@
1
- import * as React from "react";
2
- export * from "./GlobalHeader";
3
- import { GlobalHeader } from "./GlobalHeader";
4
- export {
5
- GlobalHeader as default
6
- };
7
- //# sourceMappingURL=index.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './GlobalHeader';\nexport { GlobalHeader as default } from './GlobalHeader';\n"],
5
- "mappings": "AAAA;ACAA;AACA;",
6
- "names": []
7
- }
@@ -1,81 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useState, useRef, useCallback, useMemo } from "react";
3
- import { DSAppPicker } from "@elliemae/ds-app-picker";
4
- import { mergeRefs } from "@elliemae/ds-utilities";
5
- import { MenuPicker } from "@elliemae/ds-icons";
6
- import { getDataProps } from "@elliemae/ds-props-helpers";
7
- import { Button } from "../../components/Toolbar/styles";
8
- const AppPicker = ({
9
- label,
10
- id,
11
- componentProps,
12
- ...otherProps
13
- }) => {
14
- const [isOpen, setIsOpen] = useState(false);
15
- const buttonRef = useRef(null);
16
- const {
17
- apps,
18
- icon,
19
- customApps,
20
- sectionTitle,
21
- customSectionTitle,
22
- actionRef,
23
- isOpen: userIsOpen,
24
- onKeyDown: userOnKeyDown,
25
- onClickOutside: userOnClickOutside,
26
- renderTrigger: userRenderTrigger,
27
- onClose,
28
- triggerRef,
29
- triggerOnClick
30
- } = componentProps;
31
- const handleTriggerKeyDown = useCallback((e) => {
32
- if (e.code === "Enter" || e.code === "Space") {
33
- setIsOpen(true);
34
- }
35
- }, []);
36
- const handleAppPickerOnKeyDown = useCallback((e) => {
37
- if (e.code === "Escape") {
38
- setIsOpen(false);
39
- buttonRef?.current?.focus();
40
- }
41
- }, []);
42
- const handleOnClickOutside = useCallback(() => {
43
- setIsOpen(false);
44
- }, []);
45
- const handleOnClick = useCallback(() => {
46
- setIsOpen(true);
47
- }, []);
48
- const renderTrigger = useMemo(() => ({ ref }) => /* @__PURE__ */ React2.createElement("div", {
49
- ref
50
- }, /* @__PURE__ */ React2.createElement(Button, {
51
- onClick: triggerOnClick ?? handleOnClick,
52
- onKeyDown: handleTriggerKeyDown,
53
- ref: mergeRefs(buttonRef, triggerRef),
54
- title: label,
55
- "data-testid": "gh-toolbar-item",
56
- id,
57
- ...getDataProps(otherProps)
58
- }, /* @__PURE__ */ React2.createElement(MenuPicker, {
59
- fill: "#FFF",
60
- width: 20.73,
61
- height: 20.73
62
- }))), [triggerOnClick, handleOnClick, handleTriggerKeyDown, triggerRef, label, id, otherProps]);
63
- return /* @__PURE__ */ React2.createElement(DSAppPicker, {
64
- apps,
65
- customApps,
66
- sectionTitle,
67
- customSectionTitle,
68
- icon,
69
- onKeyDown: userOnKeyDown ?? handleAppPickerOnKeyDown,
70
- actionRef,
71
- onClickOutside: userOnClickOutside ?? handleOnClickOutside,
72
- renderTrigger: userRenderTrigger ?? renderTrigger,
73
- isOpen: userIsOpen ?? isOpen,
74
- onClose,
75
- triggerRef
76
- });
77
- };
78
- export {
79
- AppPicker
80
- };
81
- //# sourceMappingURL=AppPicker.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/outOfTheBox/AppPicker/AppPicker.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useRef, useCallback, useMemo } from 'react';\nimport { DSAppPicker } from '@elliemae/ds-app-picker';\nimport { mergeRefs } from '@elliemae/ds-utilities';\nimport { MenuPicker } from '@elliemae/ds-icons';\nimport { getDataProps } from '@elliemae/ds-props-helpers';\nimport { Button } from '../../components/Toolbar/styles';\n\ntype AppPickerProps = React.ComponentProps<typeof DSAppPicker>;\n\nexport const AppPicker = ({\n label,\n id,\n componentProps,\n ...otherProps\n}: AppPickerProps & {\n label: string;\n triggerOnClick?: React.MouseEventHandler;\n}): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const {\n apps,\n icon,\n customApps,\n sectionTitle,\n customSectionTitle,\n actionRef,\n isOpen: userIsOpen,\n onKeyDown: userOnKeyDown,\n onClickOutside: userOnClickOutside,\n renderTrigger: userRenderTrigger,\n onClose,\n triggerRef,\n triggerOnClick,\n } = componentProps;\n\n const handleTriggerKeyDown: React.KeyboardEventHandler = useCallback((e) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n setIsOpen(true);\n }\n }, []);\n\n const handleAppPickerOnKeyDown: AppPickerProps['onKeyDown'] = useCallback((e) => {\n if (e.code === 'Escape') {\n setIsOpen(false);\n buttonRef?.current?.focus();\n }\n }, []);\n\n const handleOnClickOutside: AppPickerProps['onClickOutside'] = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleOnClick: React.MouseEventHandler = useCallback(() => {\n setIsOpen(true);\n }, []);\n\n const renderTrigger: AppPickerProps['renderTrigger'] = useMemo(\n () =>\n ({ ref }) =>\n (\n <div ref={ref}>\n <Button\n onClick={triggerOnClick ?? handleOnClick}\n onKeyDown={handleTriggerKeyDown}\n ref={mergeRefs(buttonRef, triggerRef)}\n title={label}\n data-testid=\"gh-toolbar-item\"\n id={id}\n {...getDataProps(otherProps)}\n >\n <MenuPicker fill=\"#FFF\" width={20.73} height={20.73} />\n </Button>\n </div>\n ),\n [triggerOnClick, handleOnClick, handleTriggerKeyDown, triggerRef, label, id, otherProps],\n );\n\n return (\n <DSAppPicker\n apps={apps}\n customApps={customApps}\n sectionTitle={sectionTitle}\n customSectionTitle={customSectionTitle}\n icon={icon}\n onKeyDown={userOnKeyDown ?? handleAppPickerOnKeyDown}\n actionRef={actionRef}\n onClickOutside={userOnClickOutside ?? handleOnClickOutside}\n renderTrigger={userRenderTrigger ?? renderTrigger}\n isOpen={userIsOpen ?? isOpen}\n onClose={onClose}\n triggerRef={triggerRef}\n />\n );\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAIO,MAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,KACG;AAAA,MAIc;AACjB,QAAM,CAAC,QAAQ,aAAa,SAAkB;AAC9C,QAAM,YAAY,OAA0B;AAE5C,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,uBAAmD,YAAY,CAAC,MAAM;AAC1E,QAAI,EAAE,SAAS,WAAW,EAAE,SAAS,SAAS;AAC5C,gBAAU;AAAA;AAAA,KAEX;AAEH,QAAM,2BAAwD,YAAY,CAAC,MAAM;AAC/E,QAAI,EAAE,SAAS,UAAU;AACvB,gBAAU;AACV,iBAAW,SAAS;AAAA;AAAA,KAErB;AAEH,QAAM,uBAAyD,YAAY,MAAM;AAC/E,cAAU;AAAA,KACT;AAEH,QAAM,gBAAyC,YAAY,MAAM;AAC/D,cAAU;AAAA,KACT;AAEH,QAAM,gBAAiD,QACrD,MACE,CAAC,EAAE,UAEC,qCAAC,OAAD;AAAA,IAAK;AAAA,KACH,qCAAC,QAAD;AAAA,IACE,SAAS,kBAAkB;AAAA,IAC3B,WAAW;AAAA,IACX,KAAK,UAAU,WAAW;AAAA,IAC1B,OAAO;AAAA,IACP,eAAY;AAAA,IACZ;AAAA,OACI,aAAa;AAAA,KAEjB,qCAAC,YAAD;AAAA,IAAY,MAAK;AAAA,IAAO,OAAO;AAAA,IAAO,QAAQ;AAAA,QAIxD,CAAC,gBAAgB,eAAe,sBAAsB,YAAY,OAAO,IAAI;AAG/E,SACE,qCAAC,aAAD;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,iBAAiB;AAAA,IAC5B;AAAA,IACA,gBAAgB,sBAAsB;AAAA,IACtC,eAAe,qBAAqB;AAAA,IACpC,QAAQ,cAAc;AAAA,IACtB;AAAA,IACA;AAAA;AAAA;",
6
- "names": []
7
- }
@@ -1,67 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useState, useCallback, useMemo } from "react";
3
- import { DSPopperJS } from "@elliemae/ds-popperjs";
4
- import { PopupMenuContent } from "./PopupMenuContent";
5
- import { Button } from "../../components/Toolbar/styles";
6
- import { getDataProps } from "@elliemae/ds-props-helpers";
7
- const PopupMenu = ({ Icon, title, onClick, id, componentProps, ...otherProps }) => {
8
- const [isOpen, setIsOpen] = useState(false);
9
- const [buttonRef, setButtonRef] = useState(null);
10
- const {
11
- onClickOutside = () => null,
12
- onKeyPress,
13
- popupOnKeyPress,
14
- isOpen: userIsOpen,
15
- options,
16
- closeOnClick
17
- } = componentProps;
18
- const handleKeyPress = useCallback((e) => {
19
- if (e.code === "Enter" || e.code === "Space") {
20
- setIsOpen(true);
21
- }
22
- if (onKeyPress)
23
- onKeyPress(e);
24
- }, [onKeyPress]);
25
- const handleOnClose = useCallback(() => {
26
- if (userIsOpen === void 0) {
27
- setIsOpen(false);
28
- }
29
- buttonRef?.focus();
30
- }, [buttonRef, userIsOpen]);
31
- const handleTriggerOnClick = useCallback((e) => {
32
- if (userIsOpen === void 0)
33
- setIsOpen(true);
34
- onClick(e);
35
- }, [onClick, userIsOpen]);
36
- const handleItemClick = useCallback(() => {
37
- if (closeOnClick && userIsOpen === void 0)
38
- handleOnClose();
39
- }, [closeOnClick, handleOnClose, userIsOpen]);
40
- const content = useMemo(() => /* @__PURE__ */ React2.createElement(PopupMenuContent, {
41
- options,
42
- onItemClick: handleItemClick,
43
- onClose: handleOnClose,
44
- popupOnKeyPress
45
- }), [options, handleItemClick, handleOnClose, popupOnKeyPress]);
46
- return /* @__PURE__ */ React2.createElement("div", null, /* @__PURE__ */ React2.createElement(Button, {
47
- onClick: handleTriggerOnClick,
48
- onKeyPress: handleKeyPress,
49
- title,
50
- ref: setButtonRef,
51
- "data-testid": "gh-toolbar-item",
52
- id,
53
- ...getDataProps(otherProps)
54
- }, Icon && /* @__PURE__ */ React2.createElement(Icon, {
55
- fill: "#FFF",
56
- size: "m"
57
- })), /* @__PURE__ */ React2.createElement(DSPopperJS, {
58
- referenceElement: buttonRef,
59
- showPopover: userIsOpen ?? isOpen,
60
- closeContextMenu: handleOnClose,
61
- onClickOutside
62
- }, content));
63
- };
64
- export {
65
- PopupMenu
66
- };
67
- //# sourceMappingURL=PopupMenu.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/outOfTheBox/PopupMenu/PopupMenu.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useState, useCallback, useMemo } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { PopupMenuContent } from './PopupMenuContent';\nimport { Button } from '../../components/Toolbar/styles';\nimport { getDataProps } from '@elliemae/ds-props-helpers';\nimport type { PopupPropsT as Props } from '../../GlobalHeaderTypes';\n\nexport const PopupMenu = ({ Icon, title, onClick, id, componentProps, ...otherProps }: Props): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [buttonRef, setButtonRef] = useState<HTMLButtonElement | null>(null);\n\n const {\n onClickOutside = () => null,\n onKeyPress,\n popupOnKeyPress,\n isOpen: userIsOpen,\n options,\n closeOnClick,\n } = componentProps;\n\n const handleKeyPress = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n setIsOpen(true);\n }\n if (onKeyPress) onKeyPress(e);\n },\n [onKeyPress],\n );\n\n const handleOnClose = useCallback(() => {\n if (userIsOpen === undefined) {\n setIsOpen(false);\n }\n buttonRef?.focus();\n }, [buttonRef, userIsOpen]);\n\n const handleTriggerOnClick = useCallback(\n (e) => {\n if (userIsOpen === undefined) setIsOpen(true);\n onClick(e);\n },\n [onClick, userIsOpen],\n );\n\n const handleItemClick = useCallback(() => {\n if (closeOnClick && userIsOpen === undefined) handleOnClose();\n }, [closeOnClick, handleOnClose, userIsOpen]);\n\n const content = useMemo(\n () => (\n <PopupMenuContent\n options={options}\n onItemClick={handleItemClick}\n onClose={handleOnClose}\n popupOnKeyPress={popupOnKeyPress}\n />\n ),\n [options, handleItemClick, handleOnClose, popupOnKeyPress],\n );\n\n return (\n <div>\n <Button\n onClick={handleTriggerOnClick}\n onKeyPress={handleKeyPress}\n title={title}\n ref={setButtonRef}\n data-testid=\"gh-toolbar-item\"\n id={id}\n {...getDataProps(otherProps)}\n >\n {Icon && <Icon fill=\"#FFF\" size=\"m\" />}\n </Button>\n <DSPopperJS\n referenceElement={buttonRef}\n showPopover={userIsOpen ?? isOpen}\n closeContextMenu={handleOnClose}\n onClickOutside={onClickOutside}\n >\n {content}\n </DSPopperJS>\n </div>\n );\n};\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AAGO,MAAM,YAAY,CAAC,EAAE,MAAM,OAAO,SAAS,IAAI,mBAAmB,iBAAqC;AAC5G,QAAM,CAAC,QAAQ,aAAa,SAAkB;AAC9C,QAAM,CAAC,WAAW,gBAAgB,SAAmC;AAErE,QAAM;AAAA,IACJ,iBAAiB,MAAM;AAAA,IACvB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,MACE;AAEJ,QAAM,iBAAiB,YACrB,CAAC,MAA2B;AAC1B,QAAI,EAAE,SAAS,WAAW,EAAE,SAAS,SAAS;AAC5C,gBAAU;AAAA;AAEZ,QAAI;AAAY,iBAAW;AAAA,KAE7B,CAAC;AAGH,QAAM,gBAAgB,YAAY,MAAM;AACtC,QAAI,eAAe,QAAW;AAC5B,gBAAU;AAAA;AAEZ,eAAW;AAAA,KACV,CAAC,WAAW;AAEf,QAAM,uBAAuB,YAC3B,CAAC,MAAM;AACL,QAAI,eAAe;AAAW,gBAAU;AACxC,YAAQ;AAAA,KAEV,CAAC,SAAS;AAGZ,QAAM,kBAAkB,YAAY,MAAM;AACxC,QAAI,gBAAgB,eAAe;AAAW;AAAA,KAC7C,CAAC,cAAc,eAAe;AAEjC,QAAM,UAAU,QACd,MACE,qCAAC,kBAAD;AAAA,IACE;AAAA,IACA,aAAa;AAAA,IACb,SAAS;AAAA,IACT;AAAA,MAGJ,CAAC,SAAS,iBAAiB,eAAe;AAG5C,SACE,qCAAC,OAAD,MACE,qCAAC,QAAD;AAAA,IACE,SAAS;AAAA,IACT,YAAY;AAAA,IACZ;AAAA,IACA,KAAK;AAAA,IACL,eAAY;AAAA,IACZ;AAAA,OACI,aAAa;AAAA,KAEhB,QAAQ,qCAAC,MAAD;AAAA,IAAM,MAAK;AAAA,IAAO,MAAK;AAAA,OAElC,qCAAC,YAAD;AAAA,IACE,kBAAkB;AAAA,IAClB,aAAa,cAAc;AAAA,IAC3B,kBAAkB;AAAA,IAClB;AAAA,KAEC;AAAA;",
6
- "names": []
7
- }
@@ -1,60 +0,0 @@
1
- import * as React from "react";
2
- import React2, { useRef, useEffect, useMemo, useContext } from "react";
3
- import { getAriaProps, getDataProps } from "@elliemae/ds-props-helpers";
4
- import { Separator, ItemWrapper, Label, List } from "./styles";
5
- import { GlobalHeaderContext } from "../../GlobalHeaderContext";
6
- const PopupMenuContent = React2.memo(({ options, onItemClick, onClose, popupOnKeyPress }) => {
7
- const { instanceUID } = useContext(GlobalHeaderContext);
8
- const menuRef = useRef(null);
9
- useEffect(() => {
10
- menuRef.current?.firstChild?.focus();
11
- }, []);
12
- const content = useMemo(() => options.map((option) => {
13
- const { type, Icon, label = "", onClick, Content, id } = option;
14
- const ariaAndDataProps = {
15
- ...getAriaProps(option),
16
- ...getDataProps(option)
17
- };
18
- const handleClick = (e) => {
19
- onItemClick(e);
20
- if (onClick)
21
- onClick(e);
22
- };
23
- const handleKeyDown = (e) => {
24
- if (e.code === "Escape")
25
- onClose();
26
- if (popupOnKeyPress)
27
- popupOnKeyPress(e);
28
- };
29
- switch (type) {
30
- case "separator":
31
- return /* @__PURE__ */ React2.createElement(Separator, {
32
- key: `${instanceUID}-separator-${label}`,
33
- ...ariaAndDataProps
34
- });
35
- case "custom":
36
- return /* @__PURE__ */ React2.createElement(ItemWrapper, {
37
- onClick: handleClick,
38
- onKeyDown: handleKeyDown,
39
- key: `${instanceUID}-popup-${label}`,
40
- id,
41
- ...ariaAndDataProps
42
- }, Content && /* @__PURE__ */ React2.createElement(Content, null));
43
- default:
44
- return /* @__PURE__ */ React2.createElement(ItemWrapper, {
45
- onClick: handleClick,
46
- onKeyDown: handleKeyDown,
47
- key: `${instanceUID}-popup-${label}`,
48
- id,
49
- ...ariaAndDataProps
50
- }, Icon && /* @__PURE__ */ React2.createElement(Icon, null), Label && /* @__PURE__ */ React2.createElement(Label, null, label));
51
- }
52
- }), [options, onItemClick, onClose, popupOnKeyPress, instanceUID]);
53
- return /* @__PURE__ */ React2.createElement(List, {
54
- ref: menuRef
55
- }, content);
56
- });
57
- export {
58
- PopupMenuContent
59
- };
60
- //# sourceMappingURL=PopupMenuContent.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/outOfTheBox/PopupMenu/PopupMenuContent.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect, useMemo, useContext } from 'react';\nimport { getAriaProps, getDataProps } from '@elliemae/ds-props-helpers';\nimport { Separator, ItemWrapper, Label, List } from './styles';\nimport type { PopupMenuContentPropsT as Props } from '../../GlobalHeaderTypes';\nimport { GlobalHeaderContext } from '../../GlobalHeaderContext';\n\nexport const PopupMenuContent = React.memo(({ options, onItemClick, onClose, popupOnKeyPress }: Props): JSX.Element => {\n const { instanceUID } = useContext(GlobalHeaderContext);\n\n const menuRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n (menuRef.current?.firstChild as HTMLButtonElement)?.focus();\n }, []);\n\n const content = useMemo(\n () =>\n options.map((option) => {\n const { type, Icon, label = '', onClick, Content, id } = option;\n\n const ariaAndDataProps = {\n ...getAriaProps(option),\n ...getDataProps(option),\n };\n\n const handleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onItemClick(e);\n if (onClick) onClick(e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.code === 'Escape') onClose();\n if (popupOnKeyPress) popupOnKeyPress(e);\n };\n\n switch (type) {\n case 'separator':\n return <Separator key={`${instanceUID}-separator-${label}`} {...ariaAndDataProps} />;\n case 'custom':\n return (\n <ItemWrapper\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n key={`${instanceUID}-popup-${label}`}\n id={id}\n {...ariaAndDataProps}\n >\n {Content && <Content />}\n </ItemWrapper>\n );\n default:\n return (\n <ItemWrapper\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n key={`${instanceUID}-popup-${label}`}\n id={id}\n {...ariaAndDataProps}\n >\n {Icon && <Icon />}\n {Label && <Label>{label}</Label>}\n </ItemWrapper>\n );\n }\n }),\n [options, onItemClick, onClose, popupOnKeyPress, instanceUID],\n );\n return <List ref={menuRef}>{content}</List>;\n});\n"],
5
- "mappings": "AAAA;ACAA;AACA;AACA;AAEA;AAEO,MAAM,mBAAmB,OAAM,KAAK,CAAC,EAAE,SAAS,aAAa,SAAS,sBAA0C;AACrH,QAAM,EAAE,gBAAgB,WAAW;AAEnC,QAAM,UAAU,OAAuB;AAEvC,YAAU,MAAM;AACd,IAAC,QAAQ,SAAS,YAAkC;AAAA,KACnD;AAEH,QAAM,UAAU,QACd,MACE,QAAQ,IAAI,CAAC,WAAW;AACtB,UAAM,EAAE,MAAM,MAAM,QAAQ,IAAI,SAAS,SAAS,OAAO;AAEzD,UAAM,mBAAmB;AAAA,SACpB,aAAa;AAAA,SACb,aAAa;AAAA;AAGlB,UAAM,cAAc,CAAC,MAAiD;AACpE,kBAAY;AACZ,UAAI;AAAS,gBAAQ;AAAA;AAGvB,UAAM,gBAAgB,CAAC,MAA2B;AAChD,UAAI,EAAE,SAAS;AAAU;AACzB,UAAI;AAAiB,wBAAgB;AAAA;AAGvC,YAAQ;AAAA,WACD;AACH,eAAO,qCAAC,WAAD;AAAA,UAAW,KAAK,GAAG,yBAAyB;AAAA,aAAa;AAAA;AAAA,WAC7D;AACH,eACE,qCAAC,aAAD;AAAA,UACE,SAAS;AAAA,UACT,WAAW;AAAA,UACX,KAAK,GAAG,qBAAqB;AAAA,UAC7B;AAAA,aACI;AAAA,WAEH,WAAW,qCAAC,SAAD;AAAA;AAIhB,eACE,qCAAC,aAAD;AAAA,UACE,SAAS;AAAA,UACT,WAAW;AAAA,UACX,KAAK,GAAG,qBAAqB;AAAA,UAC7B;AAAA,aACI;AAAA,WAEH,QAAQ,qCAAC,MAAD,OACR,SAAS,qCAAC,OAAD,MAAQ;AAAA;AAAA,MAK9B,CAAC,SAAS,aAAa,SAAS,iBAAiB;AAEnD,SAAO,qCAAC,MAAD;AAAA,IAAM,KAAK;AAAA,KAAU;AAAA;",
6
- "names": []
7
- }
@@ -1,38 +0,0 @@
1
- import * as React from "react";
2
- import styled from "styled-components";
3
- const List = styled.div`
4
- padding: 5px 0px;
5
- background: white;
6
- `;
7
- const ItemWrapper = styled.button`
8
- display: flex;
9
- align-items: center;
10
- justify-content: center;
11
- width: 100%;
12
- padding: 0 20px;
13
- cursor: pointer;
14
- border: 1px solid transparent;
15
- background-color: transparent;
16
- outline: none;
17
- :hover,
18
- :focus {
19
- border: ${({ theme }) => `1px solid ${theme.colors.brand[600]}`};
20
- }
21
- `;
22
- const Label = styled.p`
23
- width: 100%;
24
- font-size: 14px;
25
- margin: 10px;
26
- `;
27
- const Separator = styled.div`
28
- width: 100%;
29
- border: none;
30
- border-bottom: 1px solid #ccc;
31
- `;
32
- export {
33
- ItemWrapper,
34
- Label,
35
- List,
36
- Separator
37
- };
38
- //# sourceMappingURL=styles.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/outOfTheBox/PopupMenu/styles.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import styled from 'styled-components';\n\nexport const List = styled.div`\n padding: 5px 0px;\n background: white;\n`;\n\nexport const ItemWrapper = styled.button`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n padding: 0 20px;\n cursor: pointer;\n border: 1px solid transparent;\n background-color: transparent;\n outline: none;\n :hover,\n :focus {\n border: ${({ theme }) => `1px solid ${theme.colors.brand[600]}`};\n }\n`;\n\nexport const Label = styled.p`\n width: 100%;\n font-size: 14px;\n margin: 10px;\n`;\n\nexport const Separator = styled.div`\n width: 100%;\n border: none;\n border-bottom: 1px solid #ccc;\n`;\n"],
5
- "mappings": "AAAA;ACAA;AAEO,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAKpB,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAYpB,CAAC,EAAE,YAAY,aAAa,MAAM,OAAO,MAAM;AAAA;AAAA;AAItD,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA;AAMrB,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;",
6
- "names": []
7
- }