@elliemae/ds-global-header 1.59.8 → 1.61.3

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 (55) hide show
  1. package/cjs/GlobalHeader.js +5 -2
  2. package/cjs/GlobalHeader.js.map +1 -1
  3. package/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js +8 -8
  4. package/cjs/components/Breadcrumb/GlobalHeaderBreadcrumb.js.map +1 -1
  5. package/cjs/components/Breadcrumb/PureBreadcrumb.js +1 -1
  6. package/cjs/components/Breadcrumb/PureBreadcrumb.js.map +1 -1
  7. package/cjs/components/Toolbar/GlobalHeaderToolbar.js +5 -1
  8. package/cjs/components/Toolbar/GlobalHeaderToolbar.js.map +1 -1
  9. package/cjs/components/Toolbar/ToolbarItems.js +10 -20
  10. package/cjs/components/Toolbar/ToolbarItems.js.map +1 -1
  11. package/cjs/config/useGlobalHeader.js +6 -6
  12. package/cjs/config/useGlobalHeader.js.map +1 -1
  13. package/cjs/config/useValidateProps.js +2 -2
  14. package/cjs/config/useValidateProps.js.map +1 -1
  15. package/cjs/config/validateHelpers.js.map +1 -1
  16. package/cjs/defaultProps.js +6 -2
  17. package/cjs/defaultProps.js.map +1 -1
  18. package/cjs/index.js +5 -2
  19. package/cjs/index.js.map +1 -1
  20. package/cjs/outOfTheBox/AppPicker/AppPicker.js +34 -33
  21. package/cjs/outOfTheBox/AppPicker/AppPicker.js.map +1 -1
  22. package/cjs/outOfTheBox/PopupMenu/PopupMenu.js +25 -41
  23. package/cjs/outOfTheBox/PopupMenu/PopupMenu.js.map +1 -1
  24. package/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js +21 -10
  25. package/cjs/outOfTheBox/PopupMenu/PopupMenuContent.js.map +1 -1
  26. package/cjs/outOfTheBox/index.js +5 -1
  27. package/cjs/outOfTheBox/index.js.map +1 -1
  28. package/esm/GlobalHeader.js +5 -2
  29. package/esm/GlobalHeader.js.map +1 -1
  30. package/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js +8 -8
  31. package/esm/components/Breadcrumb/GlobalHeaderBreadcrumb.js.map +1 -1
  32. package/esm/components/Breadcrumb/PureBreadcrumb.js +1 -1
  33. package/esm/components/Breadcrumb/PureBreadcrumb.js.map +1 -1
  34. package/esm/components/Toolbar/GlobalHeaderToolbar.js +5 -1
  35. package/esm/components/Toolbar/GlobalHeaderToolbar.js.map +1 -1
  36. package/esm/components/Toolbar/ToolbarItems.js +9 -20
  37. package/esm/components/Toolbar/ToolbarItems.js.map +1 -1
  38. package/esm/config/useGlobalHeader.js +6 -6
  39. package/esm/config/useGlobalHeader.js.map +1 -1
  40. package/esm/config/useValidateProps.js +2 -2
  41. package/esm/config/useValidateProps.js.map +1 -1
  42. package/esm/config/validateHelpers.js.map +1 -1
  43. package/esm/defaultProps.js +6 -2
  44. package/esm/defaultProps.js.map +1 -1
  45. package/esm/index.js +5 -2
  46. package/esm/index.js.map +1 -1
  47. package/esm/outOfTheBox/AppPicker/AppPicker.js +34 -33
  48. package/esm/outOfTheBox/AppPicker/AppPicker.js.map +1 -1
  49. package/esm/outOfTheBox/PopupMenu/PopupMenu.js +26 -41
  50. package/esm/outOfTheBox/PopupMenu/PopupMenu.js.map +1 -1
  51. package/esm/outOfTheBox/PopupMenu/PopupMenuContent.js +19 -10
  52. package/esm/outOfTheBox/PopupMenu/PopupMenuContent.js.map +1 -1
  53. package/esm/outOfTheBox/index.js +5 -1
  54. package/esm/outOfTheBox/index.js.map +1 -1
  55. package/package.json +9 -5
@@ -1 +1 @@
1
- {"version":3,"file":"useValidateProps.js","sources":["../../../src/config/useValidateProps.tsx"],"sourcesContent":["import { AppPickerPropsT, GlobalHeaderPropsT, PopupPropsT, ToolbarItemT } from '../index.d';\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: AppPickerPropsT): 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 validateGenericToolbarItem(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 } else {\n validateAppPickerItem(toolbarItem.componentProps as AppPickerPropsT);\n }\n }\n });\n};\n"],"names":["validatePopupItem","componentProps","options","Array","isArray","throwToolbarPopupItemError","closeOnClick","validateAppPickerItem","apps","throwToolbarAppPickerItemError","customApps","sectionTitle","customSectionTitle","validateGenericToolbarItem","item","label","throwToolbarItemGenericError","onClick","Icon","type","useValidateProps","props","breadcrumb","toolbar","Logo","LogoWithBrand","throwLogoError","forEach","breadcrumbItem","throwBreadcrumbItemError","hasNext","isSelected","toolbarItem","isValidToolbarType","isObject"],"mappings":"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"}
1
+ {"version":3,"file":"useValidateProps.js","sources":["../../../src/config/useValidateProps.tsx"],"sourcesContent":["import { AppPickerProps, GlobalHeaderPropsT, PopupPropsT, ToolbarItemT } from '../index.d';\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 validateGenericToolbarItem(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 } else {\n validateAppPickerItem(toolbarItem.componentProps as AppPickerProps);\n }\n }\n });\n};\n"],"names":["validatePopupItem","componentProps","options","Array","isArray","throwToolbarPopupItemError","closeOnClick","validateAppPickerItem","apps","throwToolbarAppPickerItemError","customApps","sectionTitle","customSectionTitle","validateGenericToolbarItem","item","label","throwToolbarItemGenericError","onClick","Icon","type","useValidateProps","props","breadcrumb","toolbar","Logo","LogoWithBrand","throwLogoError","forEach","breadcrumbItem","throwBreadcrumbItemError","hasNext","isSelected","toolbarItem","isValidToolbarType","isObject"],"mappings":";;;AAWA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,cAAD,EAAuC;AAC/D,MAAIA,cAAc,CAACC,OAAf,IAA0B,CAACC,KAAK,CAACC,OAAN,CAAcH,cAAc,CAACC,OAA7B,CAA/B,EAAsE;AACpEG,IAAAA,0BAA0B,CAAC,SAAD,EAAYJ,cAAc,CAACC,OAA3B,CAA1B;AACD;;AACD,MAAID,cAAc,CAACK,YAAf,IAA+B,OAAOL,cAAc,CAACK,YAAtB,KAAuC,SAA1E,EAAqF;AACnFD,IAAAA,0BAA0B,CAAC,cAAD,EAAiBJ,cAAc,CAACK,YAAhC,CAA1B;AACD;AACF,CAPD;;AASA,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACN,cAAD,EAA0C;AACtE,MAAIA,cAAc,CAACO,IAAf,IAAuB,CAACL,KAAK,CAACC,OAAN,CAAcH,cAAc,CAACO,IAA7B,CAA5B,EAAgE;AAC9DC,IAAAA,8BAA8B,CAAC,MAAD,EAASR,cAAc,CAACO,IAAxB,CAA9B;AACD;;AACD,MAAIP,cAAc,CAACS,UAAf,IAA6B,CAACP,KAAK,CAACC,OAAN,CAAcH,cAAc,CAACS,UAA7B,CAAlC,EAA4E;AAC1ED,IAAAA,8BAA8B,CAAC,YAAD,EAAeR,cAAc,CAACS,UAA9B,CAA9B;AACD;;AACD,MAAIT,cAAc,CAACU,YAAf,IAA+B,OAAOV,cAAc,CAACU,YAAtB,KAAuC,QAA1E,EAAoF;AAClFF,IAAAA,8BAA8B,CAAC,cAAD,EAAiBR,cAAc,CAACU,YAAhC,CAA9B;AACD;;AACD,MAAIV,cAAc,CAACW,kBAAf,IAAqC,OAAOX,cAAc,CAACW,kBAAtB,KAA6C,QAAtF,EAAgG;AAC9FH,IAAAA,8BAA8B,CAAC,oBAAD,EAAuBR,cAAc,CAACW,kBAAtC,CAA9B;AACD;AACF,CAbD;;AAeA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACC,IAAD,EAA8B;AAC/D,MAAIA,IAAI,CAACC,KAAL,IAAc,OAAOD,IAAI,CAACC,KAAZ,KAAsB,QAAxC,EAAkD;AAChDC,IAAAA,4BAA4B,CAAC,OAAD,EAAUF,IAAI,CAACC,KAAf,CAA5B;AACD;;AACD,MAAID,IAAI,CAACG,OAAL,IAAgB,OAAOH,IAAI,CAACG,OAAZ,KAAwB,UAA5C,EAAwD;AACtDD,IAAAA,4BAA4B,CAAC,SAAD,EAAYF,IAAI,CAACG,OAAjB,CAA5B;AACD;;AACD,MAAIH,IAAI,CAACI,IAAL,IAAa,OAAOJ,IAAI,CAACI,IAAZ,KAAqB,UAAtC,EAAkD;AAChD,QAAIJ,IAAI,CAACK,IAAL,KAAc,eAAlB,EAAmC;AACnCH,IAAAA,4BAA4B,CAAC,MAAD,EAASF,IAAI,CAACI,IAAd,CAA5B;AACD;AACF,CAXD;;IAaaE,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,KAAD,EAAqC;AACnE,MAAQC,UAAR,GAAqDD,KAArD,CAAQC,UAAR;AAAA,MAAoBC,OAApB,GAAqDF,KAArD,CAAoBE,OAApB;AAAA,MAA6BC,IAA7B,GAAqDH,KAArD,CAA6BG,IAA7B;AAAA,MAAmCC,aAAnC,GAAqDJ,KAArD,CAAmCI,aAAnC;;AAEA,MAAID,IAAI,IAAI,OAAOA,IAAP,KAAgB,UAA5B,EAAwC;AACtCE,IAAAA,cAAc,CAAC,MAAD,EAASF,IAAT,CAAd;AACD;;AAED,MAAIC,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;AACxDC,IAAAA,cAAc,CAAC,eAAD,EAAkBD,aAAlB,CAAd;AACD;;AAEDH,EAAAA,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEK,OAAZ,CAAoB,UAACC,cAAD,EAAoB;AACtC,QAAIA,cAAc,CAACb,KAAf,IAAwB,OAAOa,cAAc,CAACb,KAAtB,KAAgC,QAA5D,EAAsE;AACpEc,MAAAA,wBAAwB,CAAC,OAAD,EAAUD,cAAc,CAACb,KAAzB,CAAxB;AACD;;AACD,QAAIa,cAAc,CAACX,OAAf,IAA0B,OAAOW,cAAc,CAACX,OAAtB,KAAkC,UAAhE,EAA4E;AAC1EY,MAAAA,wBAAwB,CAAC,SAAD,EAAYD,cAAc,CAACX,OAA3B,CAAxB;AACD;;AACD,QAAIW,cAAc,CAACE,OAAf,IAA0B,OAAOF,cAAc,CAACE,OAAtB,KAAkC,SAAhE,EAA2E;AACzED,MAAAA,wBAAwB,CAAC,SAAD,EAAYD,cAAc,CAACE,OAA3B,CAAxB;AACD;;AACD,QAAIF,cAAc,CAACG,UAAf,IAA6B,OAAOH,cAAc,CAACG,UAAtB,KAAqC,SAAtE,EAAiF;AAC/EF,MAAAA,wBAAwB,CAAC,YAAD,EAAeD,cAAc,CAACG,UAA9B,CAAxB;AACD;AACF,GAbD;AAeAR,EAAAA,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEI,OAAT,CAAiB,UAACK,WAAD,EAAiB;AAChCnB,IAAAA,0BAA0B,CAACmB,WAAD,CAA1B;;AACA,QAAIA,WAAW,CAACb,IAAhB,EAAsB;AACpB,UAAI,CAACc,kBAAkB,CAACD,WAAW,CAACb,IAAb,CAAvB,EAA2C;AACzCH,QAAAA,4BAA4B,CAAC,MAAD,EAASgB,WAAW,CAACb,IAArB,CAA5B;AACD;;AACD,UAAIa,WAAW,CAAC/B,cAAZ,IAA8B,CAACiC,QAAQ,CAACF,WAAW,CAAC/B,cAAb,CAA3C,EAAyE;AACvEe,QAAAA,4BAA4B,CAAC,gBAAD,EAAmBgB,WAAW,CAAC/B,cAA/B,CAA5B;AACD;;AACD,UAAI+B,WAAW,CAACb,IAAZ,KAAqB,eAAzB,EAA0C;AACxCnB,QAAAA,iBAAiB,CAACgC,WAAW,CAAC/B,cAAb,CAAjB;AACD,OAFD,MAEO;AACLM,QAAAA,qBAAqB,CAACyB,WAAW,CAAC/B,cAAb,CAArB;AACD;AACF;AACF,GAfD;AAgBD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"validateHelpers.js","sources":["../../../src/config/validateHelpers.tsx"],"sourcesContent":["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\"',\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';\n\nexport const throwBreadcrumbItemError = (validPropKey: string, 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: string, 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: string, 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: string, 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"],"names":["breadcrumbProps","label","onClick","hasNext","isSelected","toolbarProps","type","componentProps","Icon","options","closeOnClick","apps","customApps","sectionTitle","customSectionTitle","isObject","obj","Array","isArray","getVariableType","arg","undefined","isValidToolbarType","string","throwBreadcrumbItemError","validPropKey","invalidProp","Error","throwToolbarPopupItemError","throwToolbarAppPickerItemError","throwToolbarItemGenericError","throwLogoError"],"mappings":";;IAAaA,eAAe,GAAG;AAC7BC,EAAAA,KAAK,EAAE,QADsB;AAE7BC,EAAAA,OAAO,EAAE,UAFoB;AAG7BC,EAAAA,OAAO,EAAE,SAHoB;AAI7BC,EAAAA,UAAU,EAAE;AAJiB;IAOlBC,YAAY,GAAG;AAC1BJ,EAAAA,KAAK,EAAE,QADmB;AAE1BK,EAAAA,IAAI,EAAE,oCAFoB;AAG1BC,EAAAA,cAAc,EAAE,QAHU;AAI1BC,EAAAA,IAAI,EAAE,iBAJoB;AAK1BN,EAAAA,OAAO,EAAE,UALiB;AAM1BO,EAAAA,OAAO,EAAE,OANiB;AAO1BC,EAAAA,YAAY,EAAE,SAPY;AAQ1BC,EAAAA,IAAI,EAAE,OARoB;AAS1BC,EAAAA,UAAU,EAAE,OATc;AAU1BC,EAAAA,YAAY,EAAE,QAVY;AAW1BC,EAAAA,kBAAkB,EAAE;AAXM;IAcfC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;AAAA,SAA2B,QAAOA,GAAP,MAAe,QAAf,IAA2B,CAAC,CAACA,GAA7B,IAAoC,CAACC,KAAK,CAACC,OAAN,CAAcF,GAAd,CAAhE;AAAA;IAEXG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD,EAA0B;AACvD,MAAIH,KAAK,CAACC,OAAN,CAAcE,GAAd,CAAJ,EAAwB,OAAO,OAAP;AACxB,MAAIA,GAAG,KAAK,IAAZ,EAAkB,OAAO,MAAP;AAClB,MAAIA,GAAG,KAAKC,SAAZ,EAAuB,OAAO,WAAP;AACvB,iBAAcD,GAAd;AACD;IAEYE,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,MAAD;AAAA,SAChCA,MAAM,KAAK,eAAX,IAA8BA,MAAM,KAAK,eADT;AAAA;IAGrBC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,YAAD,EAAuBC,WAAvB,EAAsD;AAC5F,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,4FAGMC,WAHN,uBAG6BA,WAH7B,8BAIO1B,eAAe,CAACyB,YAAD,CAJtB,WAAN;AAOD;IAEYG,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACH,YAAD,EAAuBC,WAAvB,EAAsD;AAC9F,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,mIAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,6BAKOrB,YAAY,CAACoB,YAAD,CALnB,WAAN;AAQD;IAEYI,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACJ,YAAD,EAAuBC,WAAvB,EAAsD;AAClG,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,mIAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,6BAKOrB,YAAY,CAACoB,YAAD,CALnB,WAAN;AAQD;IAEYK,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACL,YAAD,EAAuBC,WAAvB,EAAsD;AAChG,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,yFAGMC,WAHN,eAGsBP,eAAe,CAACO,WAAD,CAHrC,6BAIOrB,YAAY,CAACoB,YAAD,CAJnB,WAAN;AAOD;IAEYM,cAAc,GAAG,SAAjBA,cAAiB,CAACN,YAAD,EAAuBC,WAAvB,EAAsD;AAClF,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,iJAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,4CAAN;AAQD;;;;"}
1
+ {"version":3,"file":"validateHelpers.js","sources":["../../../src/config/validateHelpers.tsx"],"sourcesContent":["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\"',\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';\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"],"names":["breadcrumbProps","label","onClick","hasNext","isSelected","toolbarProps","type","componentProps","Icon","options","closeOnClick","apps","customApps","sectionTitle","customSectionTitle","isObject","obj","Array","isArray","getVariableType","arg","undefined","isValidToolbarType","string","throwBreadcrumbItemError","validPropKey","invalidProp","Error","throwToolbarPopupItemError","throwToolbarAppPickerItemError","throwToolbarItemGenericError","throwLogoError"],"mappings":";;IAAaA,eAAe,GAAG;AAC7BC,EAAAA,KAAK,EAAE,QADsB;AAE7BC,EAAAA,OAAO,EAAE,UAFoB;AAG7BC,EAAAA,OAAO,EAAE,SAHoB;AAI7BC,EAAAA,UAAU,EAAE;AAJiB;IAOlBC,YAAY,GAAG;AAC1BJ,EAAAA,KAAK,EAAE,QADmB;AAE1BK,EAAAA,IAAI,EAAE,oCAFoB;AAG1BC,EAAAA,cAAc,EAAE,QAHU;AAI1BC,EAAAA,IAAI,EAAE,iBAJoB;AAK1BN,EAAAA,OAAO,EAAE,UALiB;AAM1BO,EAAAA,OAAO,EAAE,OANiB;AAO1BC,EAAAA,YAAY,EAAE,SAPY;AAQ1BC,EAAAA,IAAI,EAAE,OARoB;AAS1BC,EAAAA,UAAU,EAAE,OATc;AAU1BC,EAAAA,YAAY,EAAE,QAVY;AAW1BC,EAAAA,kBAAkB,EAAE;AAXM;IAcfC,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;AAAA,SAA2B,QAAOA,GAAP,MAAe,QAAf,IAA2B,CAAC,CAACA,GAA7B,IAAoC,CAACC,KAAK,CAACC,OAAN,CAAcF,GAAd,CAAhE;AAAA;IAEXG,eAAe,GAAG,SAAlBA,eAAkB,CAACC,GAAD,EAA0B;AACvD,MAAIH,KAAK,CAACC,OAAN,CAAcE,GAAd,CAAJ,EAAwB,OAAO,OAAP;AACxB,MAAIA,GAAG,KAAK,IAAZ,EAAkB,OAAO,MAAP;AAClB,MAAIA,GAAG,KAAKC,SAAZ,EAAuB,OAAO,WAAP;AACvB,iBAAcD,GAAd;AACD;IAEYE,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,MAAD;AAAA,SAChCA,MAAM,KAAK,eAAX,IAA8BA,MAAM,KAAK,eADT;AAAA;IAGrBC,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,YAAD,EAA6CC,WAA7C,EAA4E;AAClH,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,4FAGMC,WAHN,uBAG6BA,WAH7B,8BAIO1B,eAAe,CAACyB,YAAD,CAJtB,WAAN;AAOD;IAEYG,0BAA0B,GAAG,SAA7BA,0BAA6B,CAACH,YAAD,EAA0CC,WAA1C,EAAyE;AACjH,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,mIAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,6BAKOrB,YAAY,CAACoB,YAAD,CALnB,WAAN;AAQD;IAEYI,8BAA8B,GAAG,SAAjCA,8BAAiC,CAACJ,YAAD,EAA0CC,WAA1C,EAAyE;AACrH,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,mIAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,6BAKOrB,YAAY,CAACoB,YAAD,CALnB,WAAN;AAQD;IAEYK,4BAA4B,GAAG,SAA/BA,4BAA+B,CAACL,YAAD,EAA0CC,WAA1C,EAAyE;AACnH,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,yFAGMC,WAHN,eAGsBP,eAAe,CAACO,WAAD,CAHrC,6BAIOrB,YAAY,CAACoB,YAAD,CAJnB,WAAN;AAOD;IAEYM,cAAc,GAAG,SAAjBA,cAAiB,CAACN,YAAD,EAAuBC,WAAvB,EAAsD;AAClF,QAAM,IAAIC,KAAJ,gDACmCF,YADnC,iJAIMC,WAJN,eAIsBP,eAAe,CAACO,WAAD,CAJrC,4CAAN;AAQD;;;;"}
@@ -1,8 +1,12 @@
1
+ var emptyComp = function emptyComp() {
2
+ return null;
3
+ };
4
+
1
5
  var defaultProps = {
2
6
  breadcrumb: [],
3
7
  toolbar: [],
4
- LogoWithBrand: null,
5
- Logo: null
8
+ LogoWithBrand: emptyComp,
9
+ Logo: emptyComp
6
10
  };
7
11
 
8
12
  export { defaultProps };
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["../../src/defaultProps.tsx"],"sourcesContent":["import type { GlobalHeaderPropsT } from './index.d';\n\nexport const defaultProps: GlobalHeaderPropsT = { breadcrumb: [], toolbar: [], LogoWithBrand: null, Logo: null };\n"],"names":["defaultProps","breadcrumb","toolbar","LogoWithBrand","Logo"],"mappings":"IAEaA,YAAgC,GAAG;AAAEC,EAAAA,UAAU,EAAE,EAAd;AAAkBC,EAAAA,OAAO,EAAE,EAA3B;AAA+BC,EAAAA,aAAa,EAAE,IAA9C;AAAoDC,EAAAA,IAAI,EAAE;AAA1D;;;;"}
1
+ {"version":3,"file":"defaultProps.js","sources":["../../src/defaultProps.tsx"],"sourcesContent":["import type { GlobalHeaderPropsT } from './index.d';\n\nconst emptyComp = () => null;\n\nexport const defaultProps: GlobalHeaderPropsT = {\n breadcrumb: [],\n toolbar: [],\n LogoWithBrand: emptyComp,\n Logo: emptyComp,\n};\n"],"names":["emptyComp","defaultProps","breadcrumb","toolbar","LogoWithBrand","Logo"],"mappings":"AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY;AAAA,SAAM,IAAN;AAAA,CAAlB;;IAEaC,YAAgC,GAAG;AAC9CC,EAAAA,UAAU,EAAE,EADkC;AAE9CC,EAAAA,OAAO,EAAE,EAFqC;AAG9CC,EAAAA,aAAa,EAAEJ,SAH+B;AAI9CK,EAAAA,IAAI,EAAEL;AAJwC;;;;"}
package/esm/index.js CHANGED
@@ -13,19 +13,22 @@ import './components/Breadcrumb/PureBreadcrumb.js';
13
13
  import '@elliemae/ds-icons';
14
14
  import './components/Toolbar/GlobalHeaderToolbar.js';
15
15
  import './components/Toolbar/ToolbarItems.js';
16
+ import '@babel/runtime/helpers/esm/extends';
16
17
  import './outOfTheBox/AppPicker/AppPicker.js';
17
18
  import '@babel/runtime/helpers/esm/slicedToArray';
18
19
  import '@elliemae/ds-app-picker';
20
+ import '@elliemae/ds-utilities';
19
21
  import './components/Toolbar/styles.js';
20
22
  import './outOfTheBox/PopupMenu/PopupMenu.js';
21
- import '@elliemae/ds-popover';
23
+ import '@elliemae/ds-popperjs';
22
24
  import './outOfTheBox/PopupMenu/PopupMenuContent.js';
25
+ import '@babel/runtime/helpers/esm/defineProperty';
26
+ import '@elliemae/ds-props-helpers';
23
27
  import './outOfTheBox/PopupMenu/styles.js';
24
28
  import './config/useGlobalHeader.js';
25
29
  import '@babel/runtime/helpers/esm/toConsumableArray';
26
30
  import 'uid';
27
31
  import './config/useGetPropsWithDefaults.js';
28
- import '@babel/runtime/helpers/esm/defineProperty';
29
32
  import './GlobalHeaderContainer.js';
30
33
  import './styles.js';
31
34
  import './config/useValidateProps.js';
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
2
2
  import React, { useState, useRef, useCallback, useMemo } from 'react';
3
3
  import { DSAppPicker } from '@elliemae/ds-app-picker';
4
+ import { mergeRefs } from '@elliemae/ds-utilities';
4
5
  import { MenuPicker } from '@elliemae/ds-icons';
5
6
  import { Button } from '../../components/Toolbar/styles.js';
6
7
  import 'styled-components';
@@ -8,53 +9,53 @@ import 'styled-components';
8
9
  var AppPicker = function AppPicker(_ref) {
9
10
  var label = _ref.label,
10
11
  apps = _ref.apps,
12
+ icon = _ref.icon,
11
13
  customApps = _ref.customApps,
12
14
  sectionTitle = _ref.sectionTitle,
13
15
  customSectionTitle = _ref.customSectionTitle,
14
- _ref$onClick = _ref.onClick,
15
- onClick = _ref$onClick === void 0 ? function () {
16
- return null;
17
- } : _ref$onClick,
18
16
  actionRef = _ref.actionRef,
19
- _ref$onKeyDown = _ref.onKeyDown,
20
- customHandleOnKeyDown = _ref$onKeyDown === void 0 ? function () {
21
- return null;
22
- } : _ref$onKeyDown;
17
+ userIsOpen = _ref.isOpen,
18
+ userOnKeyDown = _ref.onKeyDown,
19
+ userOnClickOutside = _ref.onClickOutside,
20
+ userRenderTrigger = _ref.renderTrigger,
21
+ onClose = _ref.onClose,
22
+ triggerRef = _ref.triggerRef,
23
+ triggerOnClick = _ref.triggerOnClick;
23
24
 
24
25
  var _useState = useState(false),
25
26
  _useState2 = _slicedToArray(_useState, 2),
26
27
  isOpen = _useState2[0],
27
28
  setIsOpen = _useState2[1];
28
29
 
29
- var buttonRef = useRef();
30
+ var buttonRef = useRef(null);
30
31
  var handleTriggerKeyDown = useCallback(function (e) {
31
32
  if (e.code === 'Enter' || e.code === 'Space') {
32
33
  setIsOpen(true);
33
34
  }
34
35
  }, []);
35
36
  var handleAppPickerOnKeyDown = useCallback(function (e) {
36
- customHandleOnKeyDown(e);
37
-
38
37
  if (e.code === 'Escape') {
38
+ var _buttonRef$current;
39
+
39
40
  setIsOpen(false);
41
+ buttonRef === null || buttonRef === void 0 ? void 0 : (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
40
42
  }
41
- }, [customHandleOnKeyDown]);
43
+ }, []);
42
44
  var handleOnClickOutside = useCallback(function () {
43
45
  setIsOpen(false);
44
46
  }, []);
45
- var handleOnClick = useCallback(function (e) {
47
+ var handleOnClick = useCallback(function () {
46
48
  setIsOpen(true);
47
- onClick(e);
48
- }, [onClick]);
49
- var trigger = useMemo(function () {
49
+ }, []);
50
+ var renderTrigger = useMemo(function () {
50
51
  return function (_ref2) {
51
52
  var ref = _ref2.ref;
52
53
  return /*#__PURE__*/React.createElement("div", {
53
54
  ref: ref
54
55
  }, /*#__PURE__*/React.createElement(Button, {
55
- onClick: handleOnClick,
56
+ onClick: triggerOnClick !== null && triggerOnClick !== void 0 ? triggerOnClick : handleOnClick,
56
57
  onKeyDown: handleTriggerKeyDown,
57
- ref: buttonRef,
58
+ ref: mergeRefs(buttonRef, triggerRef),
58
59
  title: label,
59
60
  "data-testid": "gh-toolbar-item"
60
61
  }, /*#__PURE__*/React.createElement(MenuPicker, {
@@ -62,21 +63,21 @@ var AppPicker = function AppPicker(_ref) {
62
63
  size: "m"
63
64
  })));
64
65
  };
65
- }, [handleOnClick, handleTriggerKeyDown, label]);
66
- return useMemo(function () {
67
- return /*#__PURE__*/React.createElement(DSAppPicker, {
68
- isOpen: isOpen,
69
- apps: apps,
70
- customApps: customApps,
71
- sectionTitle: sectionTitle,
72
- customSectionTitle: customSectionTitle,
73
- onClickOutside: handleOnClickOutside,
74
- renderTrigger: trigger,
75
- triggerRef: buttonRef,
76
- actionRef: actionRef,
77
- onKeyDown: handleAppPickerOnKeyDown
78
- });
79
- }, [actionRef, apps, customApps, customSectionTitle, handleAppPickerOnKeyDown, handleOnClickOutside, isOpen, sectionTitle, trigger]);
66
+ }, [triggerOnClick, handleOnClick, handleTriggerKeyDown, label]);
67
+ return /*#__PURE__*/React.createElement(DSAppPicker, {
68
+ apps: apps,
69
+ customApps: customApps,
70
+ sectionTitle: sectionTitle,
71
+ customSectionTitle: customSectionTitle,
72
+ icon: icon,
73
+ onKeyDown: userOnKeyDown !== null && userOnKeyDown !== void 0 ? userOnKeyDown : handleAppPickerOnKeyDown,
74
+ actionRef: actionRef,
75
+ onClickOutside: userOnClickOutside !== null && userOnClickOutside !== void 0 ? userOnClickOutside : handleOnClickOutside,
76
+ renderTrigger: userRenderTrigger !== null && userRenderTrigger !== void 0 ? userRenderTrigger : renderTrigger,
77
+ isOpen: userIsOpen !== null && userIsOpen !== void 0 ? userIsOpen : isOpen,
78
+ onClose: onClose,
79
+ triggerRef: triggerRef
80
+ });
80
81
  };
81
82
 
82
83
  export { AppPicker };
@@ -1 +1 @@
1
- {"version":3,"file":"AppPicker.js","sources":["../../../../src/outOfTheBox/AppPicker/AppPicker.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useMemo } from 'react';\nimport { DSAppPicker } from '@elliemae/ds-app-picker';\nimport { MenuPicker } from '@elliemae/ds-icons';\nimport type { AppPickerPropsT as Props } from '../../index.d';\nimport { Button } from '../../components/Toolbar/styles';\n\nexport const AppPicker = ({\n label,\n apps,\n customApps,\n sectionTitle,\n customSectionTitle,\n onClick = () => null,\n actionRef,\n onKeyDown: customHandleOnKeyDown = () => null,\n}: Props): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const buttonRef = useRef<HTMLButtonElement>();\n\n const handleTriggerKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n setIsOpen(true);\n }\n }, []);\n\n const handleAppPickerOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n customHandleOnKeyDown(e);\n if (e.code === 'Escape') {\n setIsOpen(false);\n }\n },\n [customHandleOnKeyDown],\n );\n\n const handleOnClickOutside = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n const handleOnClick = useCallback(\n (e) => {\n setIsOpen(true);\n onClick(e);\n },\n [onClick],\n );\n\n const trigger = useMemo(\n () =>\n ({ ref }: { ref: React.MutableRefObject<HTMLDivElement> }) =>\n (\n <div ref={ref}>\n <Button\n onClick={handleOnClick}\n onKeyDown={handleTriggerKeyDown}\n ref={buttonRef}\n title={label}\n data-testid=\"gh-toolbar-item\"\n >\n <MenuPicker fill=\"#FFF\" size=\"m\" />\n </Button>\n </div>\n ),\n [handleOnClick, handleTriggerKeyDown, label],\n );\n\n return useMemo(\n () => (\n <DSAppPicker\n isOpen={isOpen}\n apps={apps}\n customApps={customApps}\n sectionTitle={sectionTitle}\n customSectionTitle={customSectionTitle}\n onClickOutside={handleOnClickOutside}\n renderTrigger={trigger}\n triggerRef={buttonRef}\n actionRef={actionRef}\n onKeyDown={handleAppPickerOnKeyDown}\n />\n ),\n [\n actionRef,\n apps,\n customApps,\n customSectionTitle,\n handleAppPickerOnKeyDown,\n handleOnClickOutside,\n isOpen,\n sectionTitle,\n trigger,\n ],\n );\n};\n"],"names":["AppPicker","label","apps","customApps","sectionTitle","customSectionTitle","onClick","actionRef","onKeyDown","customHandleOnKeyDown","useState","isOpen","setIsOpen","buttonRef","useRef","handleTriggerKeyDown","useCallback","e","code","handleAppPickerOnKeyDown","handleOnClickOutside","handleOnClick","trigger","useMemo","ref"],"mappings":";;;;;;;IAMaA,SAAS,GAAG,SAAZA,SAAY,OASC;AAAA,MARxBC,KAQwB,QARxBA,KAQwB;AAAA,MAPxBC,IAOwB,QAPxBA,IAOwB;AAAA,MANxBC,UAMwB,QANxBA,UAMwB;AAAA,MALxBC,YAKwB,QALxBA,YAKwB;AAAA,MAJxBC,kBAIwB,QAJxBA,kBAIwB;AAAA,0BAHxBC,OAGwB;AAAA,MAHxBA,OAGwB,6BAHd;AAAA,WAAM,IAAN;AAAA,GAGc;AAAA,MAFxBC,SAEwB,QAFxBA,SAEwB;AAAA,4BADxBC,SACwB;AAAA,MADbC,qBACa,+BADW;AAAA,WAAM,IAAN;AAAA,GACX;;AACxB,kBAA4BC,QAAQ,CAAU,KAAV,CAApC;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,MAAMC,SAAS,GAAGC,MAAM,EAAxB;AAEA,MAAMC,oBAAoB,GAAGC,WAAW,CAAC,UAACC,CAAD,EAA4B;AACnE,QAAIA,CAAC,CAACC,IAAF,KAAW,OAAX,IAAsBD,CAAC,CAACC,IAAF,KAAW,OAArC,EAA8C;AAC5CN,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD;AACF,GAJuC,EAIrC,EAJqC,CAAxC;AAMA,MAAMO,wBAAwB,GAAGH,WAAW,CAC1C,UAACC,CAAD,EAA4B;AAC1BR,IAAAA,qBAAqB,CAACQ,CAAD,CAArB;;AACA,QAAIA,CAAC,CAACC,IAAF,KAAW,QAAf,EAAyB;AACvBN,MAAAA,SAAS,CAAC,KAAD,CAAT;AACD;AACF,GANyC,EAO1C,CAACH,qBAAD,CAP0C,CAA5C;AAUA,MAAMW,oBAAoB,GAAGJ,WAAW,CAAC,YAAM;AAC7CJ,IAAAA,SAAS,CAAC,KAAD,CAAT;AACD,GAFuC,EAErC,EAFqC,CAAxC;AAIA,MAAMS,aAAa,GAAGL,WAAW,CAC/B,UAACC,CAAD,EAAO;AACLL,IAAAA,SAAS,CAAC,IAAD,CAAT;AACAN,IAAAA,OAAO,CAACW,CAAD,CAAP;AACD,GAJ8B,EAK/B,CAACX,OAAD,CAL+B,CAAjC;AAQA,MAAMgB,OAAO,GAAGC,OAAO,CACrB;AAAA,WACE;AAAA,UAAGC,GAAH,SAAGA,GAAH;AAAA,0BAEI;AAAK,QAAA,GAAG,EAAEA;AAAV,sBACE,oBAAC,MAAD;AACE,QAAA,OAAO,EAAEH,aADX;AAEE,QAAA,SAAS,EAAEN,oBAFb;AAGE,QAAA,GAAG,EAAEF,SAHP;AAIE,QAAA,KAAK,EAAEZ,KAJT;AAKE,uBAAY;AALd,sBAOE,oBAAC,UAAD;AAAY,QAAA,IAAI,EAAC,MAAjB;AAAwB,QAAA,IAAI,EAAC;AAA7B,QAPF,CADF,CAFJ;AAAA,KADF;AAAA,GADqB,EAgBrB,CAACoB,aAAD,EAAgBN,oBAAhB,EAAsCd,KAAtC,CAhBqB,CAAvB;AAmBA,SAAOsB,OAAO,CACZ;AAAA,wBACE,oBAAC,WAAD;AACE,MAAA,MAAM,EAAEZ,MADV;AAEE,MAAA,IAAI,EAAET,IAFR;AAGE,MAAA,UAAU,EAAEC,UAHd;AAIE,MAAA,YAAY,EAAEC,YAJhB;AAKE,MAAA,kBAAkB,EAAEC,kBALtB;AAME,MAAA,cAAc,EAAEe,oBANlB;AAOE,MAAA,aAAa,EAAEE,OAPjB;AAQE,MAAA,UAAU,EAAET,SARd;AASE,MAAA,SAAS,EAAEN,SATb;AAUE,MAAA,SAAS,EAAEY;AAVb,MADF;AAAA,GADY,EAeZ,CACEZ,SADF,EAEEL,IAFF,EAGEC,UAHF,EAIEE,kBAJF,EAKEc,wBALF,EAMEC,oBANF,EAOET,MAPF,EAQEP,YARF,EASEkB,OATF,CAfY,CAAd;AA2BD;;;;"}
1
+ {"version":3,"file":"AppPicker.js","sources":["../../../../src/outOfTheBox/AppPicker/AppPicker.tsx"],"sourcesContent":["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 { Button } from '../../components/Toolbar/styles';\n\ntype AppPickerProps = React.ComponentProps<typeof DSAppPicker>;\n\nexport const AppPicker = ({\n label,\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}: 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 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 >\n <MenuPicker fill=\"#FFF\" size=\"m\" />\n </Button>\n </div>\n ),\n [triggerOnClick, handleOnClick, handleTriggerKeyDown, label],\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"],"names":["AppPicker","label","apps","icon","customApps","sectionTitle","customSectionTitle","actionRef","userIsOpen","isOpen","userOnKeyDown","onKeyDown","userOnClickOutside","onClickOutside","userRenderTrigger","renderTrigger","onClose","triggerRef","triggerOnClick","useState","setIsOpen","buttonRef","useRef","handleTriggerKeyDown","useCallback","e","code","handleAppPickerOnKeyDown","current","focus","handleOnClickOutside","handleOnClick","useMemo","ref","mergeRefs"],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';
2
- import React, { useState, useRef, useCallback, useMemo } from 'react';
3
- import Popover from '@elliemae/ds-popover';
2
+ import React, { useState, useCallback, useMemo } from 'react';
3
+ import { DSPopperJS } from '@elliemae/ds-popperjs';
4
4
  import { PopupMenuContent } from './PopupMenuContent.js';
5
5
  import { Button } from '../../components/Toolbar/styles.js';
6
+ import '@babel/runtime/helpers/esm/extends';
7
+ import '@babel/runtime/helpers/esm/defineProperty';
8
+ import '@elliemae/ds-props-helpers';
6
9
  import './styles.js';
7
10
  import 'styled-components';
8
11
  import '../../GlobalHeaderContext.js';
@@ -20,18 +23,20 @@ var PopupMenu = function PopupMenu(_ref) {
20
23
  isOpen = _useState2[0],
21
24
  setIsOpen = _useState2[1];
22
25
 
23
- var buttonRef = useRef();
26
+ var _useState3 = useState(null),
27
+ _useState4 = _slicedToArray(_useState3, 2),
28
+ buttonRef = _useState4[0],
29
+ setButtonRef = _useState4[1];
30
+
24
31
  var handleKeyPress = useCallback(function (e) {
25
32
  if (e.code === 'Enter' || e.code === 'Space') {
26
33
  setIsOpen(true);
27
34
  }
28
35
  }, []);
29
36
  var handleOnClose = useCallback(function () {
30
- var _buttonRef$current;
31
-
32
37
  setIsOpen(false);
33
- (_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.focus();
34
- }, []);
38
+ buttonRef === null || buttonRef === void 0 ? void 0 : buttonRef.focus();
39
+ }, [buttonRef]);
35
40
  var handleTriggerOnClick = useCallback(function (e) {
36
41
  setIsOpen(true);
37
42
  onClick(e);
@@ -39,9 +44,6 @@ var PopupMenu = function PopupMenu(_ref) {
39
44
  var handleItemClick = useCallback(function () {
40
45
  if (closeOnClick) handleOnClose();
41
46
  }, [closeOnClick, handleOnClose]);
42
- var handleClickOutside = useCallback(function () {
43
- return setIsOpen(false);
44
- }, []);
45
47
  var content = useMemo(function () {
46
48
  return /*#__PURE__*/React.createElement(PopupMenuContent, {
47
49
  options: options,
@@ -49,37 +51,20 @@ var PopupMenu = function PopupMenu(_ref) {
49
51
  onClose: handleOnClose
50
52
  });
51
53
  }, [options, handleItemClick, handleOnClose]);
52
- var trigger = useMemo(function () {
53
- return function (_ref2) {
54
- var ref = _ref2.ref;
55
- return /*#__PURE__*/React.createElement(Button, {
56
- onClick: handleTriggerOnClick,
57
- onKeyPress: handleKeyPress,
58
- title: title,
59
- ref: buttonRef,
60
- "data-testid": "gh-toolbar-item"
61
- }, /*#__PURE__*/React.createElement(Icon, {
62
- innerRef: ref,
63
- fill: "#FFF",
64
- size: "m"
65
- }));
66
- };
67
- }, [Icon, handleKeyPress, handleTriggerOnClick, title]);
68
- return useMemo(function () {
69
- return /*#__PURE__*/React.createElement(Popover, {
70
- isOpen: isOpen,
71
- content: content,
72
- onClickOutside: handleClickOutside,
73
- placement: "bottom",
74
- interactionType: "click",
75
- showArrow: true,
76
- style: {
77
- padding: '0',
78
- width: 'fit-content'
79
- },
80
- renderTrigger: trigger
81
- });
82
- }, [content, handleClickOutside, isOpen, trigger]);
54
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Button, {
55
+ onClick: handleTriggerOnClick,
56
+ onKeyPress: handleKeyPress,
57
+ title: title,
58
+ ref: setButtonRef,
59
+ "data-testid": "gh-toolbar-item"
60
+ }, Icon && /*#__PURE__*/React.createElement(Icon, {
61
+ fill: "#FFF",
62
+ size: "m"
63
+ })), /*#__PURE__*/React.createElement(DSPopperJS, {
64
+ referenceElement: buttonRef,
65
+ showPopover: isOpen,
66
+ closeContextMenu: handleOnClose
67
+ }, content));
83
68
  };
84
69
 
85
70
  export { PopupMenu };
@@ -1 +1 @@
1
- {"version":3,"file":"PopupMenu.js","sources":["../../../../src/outOfTheBox/PopupMenu/PopupMenu.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useMemo } from 'react';\nimport Popover from '@elliemae/ds-popover';\nimport { PopupMenuContent } from './PopupMenuContent';\nimport { Button } from '../../components/Toolbar/styles';\nimport type { PopupPropsT as Props } from '../../index.d';\n\nexport const PopupMenu = ({ Icon, options, closeOnClick, title, onClick }: Props): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const buttonRef = useRef<HTMLButtonElement>();\n\n const handleKeyPress = useCallback((e: React.KeyboardEvent) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n setIsOpen(true);\n }\n }, []);\n\n const handleOnClose = useCallback(() => {\n setIsOpen(false);\n buttonRef.current?.focus();\n }, []);\n\n const handleTriggerOnClick = useCallback(\n (e) => {\n setIsOpen(true);\n onClick(e);\n },\n [onClick],\n );\n\n const handleItemClick = useCallback(() => {\n if (closeOnClick) handleOnClose();\n }, [closeOnClick, handleOnClose]);\n\n const handleClickOutside = useCallback(() => setIsOpen(false), []);\n\n const content = useMemo(\n () => <PopupMenuContent options={options} onItemClick={handleItemClick} onClose={handleOnClose} />,\n [options, handleItemClick, handleOnClose],\n );\n\n const trigger = useMemo(\n () =>\n ({ ref }: { ref: React.MutableRefObject<HTMLButtonElement> }) =>\n (\n <Button\n onClick={handleTriggerOnClick}\n onKeyPress={handleKeyPress}\n title={title}\n ref={buttonRef}\n data-testid=\"gh-toolbar-item\"\n >\n <Icon innerRef={ref} fill=\"#FFF\" size=\"m\" />\n </Button>\n ),\n [Icon, handleKeyPress, handleTriggerOnClick, title],\n );\n\n return useMemo(\n () => (\n <Popover\n isOpen={isOpen}\n content={content}\n onClickOutside={handleClickOutside}\n placement=\"bottom\"\n interactionType=\"click\"\n showArrow\n style={{\n padding: '0',\n width: 'fit-content',\n }}\n renderTrigger={trigger}\n />\n ),\n [content, handleClickOutside, isOpen, trigger],\n );\n};\n"],"names":["PopupMenu","Icon","options","closeOnClick","title","onClick","useState","isOpen","setIsOpen","buttonRef","useRef","handleKeyPress","useCallback","e","code","handleOnClose","current","focus","handleTriggerOnClick","handleItemClick","handleClickOutside","content","useMemo","trigger","ref","padding","width"],"mappings":";;;;;;;;;;IAMaA,SAAS,GAAG,SAAZA,SAAY,OAAyE;AAAA,MAAtEC,IAAsE,QAAtEA,IAAsE;AAAA,MAAhEC,OAAgE,QAAhEA,OAAgE;AAAA,MAAvDC,YAAuD,QAAvDA,YAAuD;AAAA,MAAzCC,KAAyC,QAAzCA,KAAyC;AAAA,MAAlCC,OAAkC,QAAlCA,OAAkC;;AAChG,kBAA4BC,QAAQ,CAAU,KAAV,CAApC;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,MAAMC,SAAS,GAAGC,MAAM,EAAxB;AAEA,MAAMC,cAAc,GAAGC,WAAW,CAAC,UAACC,CAAD,EAA4B;AAC7D,QAAIA,CAAC,CAACC,IAAF,KAAW,OAAX,IAAsBD,CAAC,CAACC,IAAF,KAAW,OAArC,EAA8C;AAC5CN,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD;AACF,GAJiC,EAI/B,EAJ+B,CAAlC;AAMA,MAAMO,aAAa,GAAGH,WAAW,CAAC,YAAM;AAAA;;AACtCJ,IAAAA,SAAS,CAAC,KAAD,CAAT;AACA,0BAAAC,SAAS,CAACO,OAAV,0EAAmBC,KAAnB;AACD,GAHgC,EAG9B,EAH8B,CAAjC;AAKA,MAAMC,oBAAoB,GAAGN,WAAW,CACtC,UAACC,CAAD,EAAO;AACLL,IAAAA,SAAS,CAAC,IAAD,CAAT;AACAH,IAAAA,OAAO,CAACQ,CAAD,CAAP;AACD,GAJqC,EAKtC,CAACR,OAAD,CALsC,CAAxC;AAQA,MAAMc,eAAe,GAAGP,WAAW,CAAC,YAAM;AACxC,QAAIT,YAAJ,EAAkBY,aAAa;AAChC,GAFkC,EAEhC,CAACZ,YAAD,EAAeY,aAAf,CAFgC,CAAnC;AAIA,MAAMK,kBAAkB,GAAGR,WAAW,CAAC;AAAA,WAAMJ,SAAS,CAAC,KAAD,CAAf;AAAA,GAAD,EAAyB,EAAzB,CAAtC;AAEA,MAAMa,OAAO,GAAGC,OAAO,CACrB;AAAA,wBAAM,oBAAC,gBAAD;AAAkB,MAAA,OAAO,EAAEpB,OAA3B;AAAoC,MAAA,WAAW,EAAEiB,eAAjD;AAAkE,MAAA,OAAO,EAAEJ;AAA3E,MAAN;AAAA,GADqB,EAErB,CAACb,OAAD,EAAUiB,eAAV,EAA2BJ,aAA3B,CAFqB,CAAvB;AAKA,MAAMQ,OAAO,GAAGD,OAAO,CACrB;AAAA,WACE;AAAA,UAAGE,GAAH,SAAGA,GAAH;AAAA,0BAEI,oBAAC,MAAD;AACE,QAAA,OAAO,EAAEN,oBADX;AAEE,QAAA,UAAU,EAAEP,cAFd;AAGE,QAAA,KAAK,EAAEP,KAHT;AAIE,QAAA,GAAG,EAAEK,SAJP;AAKE,uBAAY;AALd,sBAOE,oBAAC,IAAD;AAAM,QAAA,QAAQ,EAAEe,GAAhB;AAAqB,QAAA,IAAI,EAAC,MAA1B;AAAiC,QAAA,IAAI,EAAC;AAAtC,QAPF,CAFJ;AAAA,KADF;AAAA,GADqB,EAcrB,CAACvB,IAAD,EAAOU,cAAP,EAAuBO,oBAAvB,EAA6Cd,KAA7C,CAdqB,CAAvB;AAiBA,SAAOkB,OAAO,CACZ;AAAA,wBACE,oBAAC,OAAD;AACE,MAAA,MAAM,EAAEf,MADV;AAEE,MAAA,OAAO,EAAEc,OAFX;AAGE,MAAA,cAAc,EAAED,kBAHlB;AAIE,MAAA,SAAS,EAAC,QAJZ;AAKE,MAAA,eAAe,EAAC,OALlB;AAME,MAAA,SAAS,MANX;AAOE,MAAA,KAAK,EAAE;AACLK,QAAAA,OAAO,EAAE,GADJ;AAELC,QAAAA,KAAK,EAAE;AAFF,OAPT;AAWE,MAAA,aAAa,EAAEH;AAXjB,MADF;AAAA,GADY,EAgBZ,CAACF,OAAD,EAAUD,kBAAV,EAA8Bb,MAA9B,EAAsCgB,OAAtC,CAhBY,CAAd;AAkBD;;;;"}
1
+ {"version":3,"file":"PopupMenu.js","sources":["../../../../src/outOfTheBox/PopupMenu/PopupMenu.tsx"],"sourcesContent":["import React, { useState, useRef, useCallback, useMemo } from 'react';\nimport { DSPopperJS } from '@elliemae/ds-popperjs';\nimport { PopupMenuContent } from './PopupMenuContent';\nimport { Button } from '../../components/Toolbar/styles';\nimport type { PopupPropsT as Props } from '../../index.d';\n\nexport const PopupMenu = ({ Icon, options, closeOnClick, title, onClick }: Props): JSX.Element => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [buttonRef, setButtonRef] = useState<HTMLButtonElement | null>(null);\n\n const handleKeyPress = useCallback((e: React.KeyboardEvent) => {\n if (e.code === 'Enter' || e.code === 'Space') {\n setIsOpen(true);\n }\n }, []);\n\n const handleOnClose = useCallback(() => {\n setIsOpen(false);\n buttonRef?.focus();\n }, [buttonRef]);\n\n const handleTriggerOnClick = useCallback(\n (e) => {\n setIsOpen(true);\n onClick(e);\n },\n [onClick],\n );\n\n const handleItemClick = useCallback(() => {\n if (closeOnClick) handleOnClose();\n }, [closeOnClick, handleOnClose]);\n\n const content = useMemo(\n () => <PopupMenuContent options={options} onItemClick={handleItemClick} onClose={handleOnClose} />,\n [options, handleItemClick, handleOnClose],\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 >\n {Icon && <Icon fill=\"#FFF\" size=\"m\" />}\n </Button>\n <DSPopperJS referenceElement={buttonRef} showPopover={isOpen} closeContextMenu={handleOnClose}>\n {content}\n </DSPopperJS>\n </div>\n );\n};\n"],"names":["PopupMenu","Icon","options","closeOnClick","title","onClick","useState","isOpen","setIsOpen","buttonRef","setButtonRef","handleKeyPress","useCallback","e","code","handleOnClose","focus","handleTriggerOnClick","handleItemClick","content","useMemo"],"mappings":";;;;;;;;;;;;;IAMaA,SAAS,GAAG,SAAZA,SAAY,OAAyE;AAAA,MAAtEC,IAAsE,QAAtEA,IAAsE;AAAA,MAAhEC,OAAgE,QAAhEA,OAAgE;AAAA,MAAvDC,YAAuD,QAAvDA,YAAuD;AAAA,MAAzCC,KAAyC,QAAzCA,KAAyC;AAAA,MAAlCC,OAAkC,QAAlCA,OAAkC;;AAChG,kBAA4BC,QAAQ,CAAU,KAAV,CAApC;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAAkCF,QAAQ,CAA2B,IAA3B,CAA1C;AAAA;AAAA,MAAOG,SAAP;AAAA,MAAkBC,YAAlB;;AAEA,MAAMC,cAAc,GAAGC,WAAW,CAAC,UAACC,CAAD,EAA4B;AAC7D,QAAIA,CAAC,CAACC,IAAF,KAAW,OAAX,IAAsBD,CAAC,CAACC,IAAF,KAAW,OAArC,EAA8C;AAC5CN,MAAAA,SAAS,CAAC,IAAD,CAAT;AACD;AACF,GAJiC,EAI/B,EAJ+B,CAAlC;AAMA,MAAMO,aAAa,GAAGH,WAAW,CAAC,YAAM;AACtCJ,IAAAA,SAAS,CAAC,KAAD,CAAT;AACAC,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEO,KAAX;AACD,GAHgC,EAG9B,CAACP,SAAD,CAH8B,CAAjC;AAKA,MAAMQ,oBAAoB,GAAGL,WAAW,CACtC,UAACC,CAAD,EAAO;AACLL,IAAAA,SAAS,CAAC,IAAD,CAAT;AACAH,IAAAA,OAAO,CAACQ,CAAD,CAAP;AACD,GAJqC,EAKtC,CAACR,OAAD,CALsC,CAAxC;AAQA,MAAMa,eAAe,GAAGN,WAAW,CAAC,YAAM;AACxC,QAAIT,YAAJ,EAAkBY,aAAa;AAChC,GAFkC,EAEhC,CAACZ,YAAD,EAAeY,aAAf,CAFgC,CAAnC;AAIA,MAAMI,OAAO,GAAGC,OAAO,CACrB;AAAA,wBAAM,oBAAC,gBAAD;AAAkB,MAAA,OAAO,EAAElB,OAA3B;AAAoC,MAAA,WAAW,EAAEgB,eAAjD;AAAkE,MAAA,OAAO,EAAEH;AAA3E,MAAN;AAAA,GADqB,EAErB,CAACb,OAAD,EAAUgB,eAAV,EAA2BH,aAA3B,CAFqB,CAAvB;AAKA,sBACE,8CACE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEE,oBADX;AAEE,IAAA,UAAU,EAAEN,cAFd;AAGE,IAAA,KAAK,EAAEP,KAHT;AAIE,IAAA,GAAG,EAAEM,YAJP;AAKE,mBAAY;AALd,KAOGT,IAAI,iBAAI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAC,MAAX;AAAkB,IAAA,IAAI,EAAC;AAAvB,IAPX,CADF,eAUE,oBAAC,UAAD;AAAY,IAAA,gBAAgB,EAAEQ,SAA9B;AAAyC,IAAA,WAAW,EAAEF,MAAtD;AAA8D,IAAA,gBAAgB,EAAEQ;AAAhF,KACGI,OADH,CAVF,CADF;AAgBD;;;;"}
@@ -1,9 +1,15 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
3
  import React, { useContext, useRef, useEffect, useMemo } from 'react';
4
+ import { getDataProps, getAriaProps } from '@elliemae/ds-props-helpers';
2
5
  import { ItemWrapper, Label, Separator, List } from './styles.js';
3
6
  import { GlobalHeaderContext } from '../../GlobalHeaderContext.js';
4
7
  import 'styled-components';
5
8
  import '../../defaultProps.js';
6
9
 
10
+ 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; }
11
+
12
+ 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; }
7
13
  var PopupMenuContent = /*#__PURE__*/React.memo(function (_ref) {
8
14
  var options = _ref.options,
9
15
  onItemClick = _ref.onItemClick,
@@ -12,7 +18,7 @@ var PopupMenuContent = /*#__PURE__*/React.memo(function (_ref) {
12
18
  var _useContext = useContext(GlobalHeaderContext),
13
19
  instanceUID = _useContext.instanceUID;
14
20
 
15
- var menuRef = useRef();
21
+ var menuRef = useRef(null);
16
22
  useEffect(function () {
17
23
  var _menuRef$current, _menuRef$current$firs;
18
24
 
@@ -21,14 +27,17 @@ var PopupMenuContent = /*#__PURE__*/React.memo(function (_ref) {
21
27
  var content = useMemo(function () {
22
28
  return options.map(function (option) {
23
29
  var type = option.type,
24
- icon = option.icon,
25
- label = option.label,
30
+ Icon = option.Icon,
31
+ _option$label = option.label,
32
+ label = _option$label === void 0 ? '' : _option$label,
26
33
  onClick = option.onClick,
27
34
  Content = option.Content;
28
35
 
36
+ var ariaAndDataProps = _objectSpread(_objectSpread({}, getAriaProps(option)), getDataProps(option));
37
+
29
38
  var handleClick = function handleClick(e) {
30
39
  onItemClick(e);
31
- onClick(e);
40
+ if (onClick) onClick(e);
32
41
  };
33
42
 
34
43
  var handleKeyDown = function handleKeyDown(e) {
@@ -37,23 +46,23 @@ var PopupMenuContent = /*#__PURE__*/React.memo(function (_ref) {
37
46
 
38
47
  switch (type) {
39
48
  case 'separator':
40
- return /*#__PURE__*/React.createElement(Separator, {
49
+ return /*#__PURE__*/React.createElement(Separator, _extends({
41
50
  key: "".concat(instanceUID, "-separator-").concat(label)
42
- });
51
+ }, ariaAndDataProps));
43
52
 
44
53
  case 'custom':
45
- return /*#__PURE__*/React.createElement(ItemWrapper, {
54
+ return /*#__PURE__*/React.createElement(ItemWrapper, _extends({
46
55
  onClick: handleClick,
47
56
  onKeyDown: handleKeyDown,
48
57
  key: "".concat(instanceUID, "-popup-").concat(label)
49
- }, /*#__PURE__*/React.createElement(Content, null));
58
+ }, ariaAndDataProps), Content && /*#__PURE__*/React.createElement(Content, null));
50
59
 
51
60
  default:
52
- return /*#__PURE__*/React.createElement(ItemWrapper, {
61
+ return /*#__PURE__*/React.createElement(ItemWrapper, _extends({
53
62
  onClick: handleClick,
54
63
  onKeyDown: handleKeyDown,
55
64
  key: "".concat(instanceUID, "-popup-").concat(label)
56
- }, icon, Label && /*#__PURE__*/React.createElement(Label, null, label));
65
+ }, ariaAndDataProps), Icon && /*#__PURE__*/React.createElement(Icon, null), Label && /*#__PURE__*/React.createElement(Label, null, label));
57
66
  }
58
67
  });
59
68
  }, [onClose, onItemClick, options, instanceUID]);
@@ -1 +1 @@
1
- {"version":3,"file":"PopupMenuContent.js","sources":["../../../../src/outOfTheBox/PopupMenu/PopupMenuContent.tsx"],"sourcesContent":["import React, { useRef, useEffect, useMemo, useContext } from 'react';\nimport { Separator, ItemWrapper, Label, List } from './styles';\nimport type { PopupMenuContentPropsT as Props } from '../../index.d';\nimport { GlobalHeaderContext } from '../../GlobalHeaderContext';\n\nexport const PopupMenuContent = React.memo(({ options, onItemClick, onClose }: Props): JSX.Element => {\n const { instanceUID } = useContext(GlobalHeaderContext);\n\n const menuRef = useRef<HTMLDivElement>();\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 } = option;\n\n const handleClick = (e: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onItemClick(e);\n onClick(e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.code === 'Escape') onClose();\n };\n\n switch (type) {\n case 'separator':\n return <Separator key={`${instanceUID}-separator-${label}`} />;\n case 'custom':\n return (\n <ItemWrapper onClick={handleClick} onKeyDown={handleKeyDown} key={`${instanceUID}-popup-${label}`}>\n <Content />\n </ItemWrapper>\n );\n default:\n return (\n <ItemWrapper onClick={handleClick} onKeyDown={handleKeyDown} key={`${instanceUID}-popup-${label}`}>\n {icon}\n {Label && <Label>{label}</Label>}\n </ItemWrapper>\n );\n }\n }),\n [onClose, onItemClick, options, instanceUID],\n );\n return <List ref={menuRef}>{content}</List>;\n});\n"],"names":["PopupMenuContent","React","memo","options","onItemClick","onClose","useContext","GlobalHeaderContext","instanceUID","menuRef","useRef","useEffect","current","firstChild","focus","content","useMemo","map","option","type","icon","label","onClick","Content","handleClick","e","handleKeyDown","code","Label"],"mappings":";;;;;;IAKaA,gBAAgB,gBAAGC,KAAK,CAACC,IAAN,CAAW,gBAA2D;AAAA,MAAxDC,OAAwD,QAAxDA,OAAwD;AAAA,MAA/CC,WAA+C,QAA/CA,WAA+C;AAAA,MAAlCC,OAAkC,QAAlCA,OAAkC;;AACpG,oBAAwBC,UAAU,CAACC,mBAAD,CAAlC;AAAA,MAAQC,WAAR,eAAQA,WAAR;;AAEA,MAAMC,OAAO,GAAGC,MAAM,EAAtB;AAEAC,EAAAA,SAAS,CAAC,YAAM;AAAA;;AACd,wBAACF,OAAO,CAACG,OAAT,8EAAC,iBAAiBC,UAAlB,gFAAoDC,KAApD;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA,MAAMC,OAAO,GAAGC,OAAO,CACrB;AAAA,WACEb,OAAO,CAACc,GAAR,CAAY,UAACC,MAAD,EAAY;AACtB,UAAQC,IAAR,GAAgDD,MAAhD,CAAQC,IAAR;AAAA,UAAcC,IAAd,GAAgDF,MAAhD,CAAcE,IAAd;AAAA,UAAoBC,KAApB,GAAgDH,MAAhD,CAAoBG,KAApB;AAAA,UAA2BC,OAA3B,GAAgDJ,MAAhD,CAA2BI,OAA3B;AAAA,UAAoCC,OAApC,GAAgDL,MAAhD,CAAoCK,OAApC;;AAEA,UAAMC,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAkD;AACpErB,QAAAA,WAAW,CAACqB,CAAD,CAAX;AACAH,QAAAA,OAAO,CAACG,CAAD,CAAP;AACD,OAHD;;AAKA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,CAAD,EAA4B;AAChD,YAAIA,CAAC,CAACE,IAAF,KAAW,QAAf,EAAyBtB,OAAO;AACjC,OAFD;;AAIA,cAAQc,IAAR;AACE,aAAK,WAAL;AACE,8BAAO,oBAAC,SAAD;AAAW,YAAA,GAAG,YAAKX,WAAL,wBAA8Ba,KAA9B;AAAd,YAAP;;AACF,aAAK,QAAL;AACE,8BACE,oBAAC,WAAD;AAAa,YAAA,OAAO,EAAEG,WAAtB;AAAmC,YAAA,SAAS,EAAEE,aAA9C;AAA6D,YAAA,GAAG,YAAKlB,WAAL,oBAA0Ba,KAA1B;AAAhE,0BACE,oBAAC,OAAD,OADF,CADF;;AAKF;AACE,8BACE,oBAAC,WAAD;AAAa,YAAA,OAAO,EAAEG,WAAtB;AAAmC,YAAA,SAAS,EAAEE,aAA9C;AAA6D,YAAA,GAAG,YAAKlB,WAAL,oBAA0Ba,KAA1B;AAAhE,aACGD,IADH,EAEGQ,KAAK,iBAAI,oBAAC,KAAD,QAAQP,KAAR,CAFZ,CADF;AAVJ;AAiBD,KA7BD,CADF;AAAA,GADqB,EAgCrB,CAAChB,OAAD,EAAUD,WAAV,EAAuBD,OAAvB,EAAgCK,WAAhC,CAhCqB,CAAvB;AAkCA,sBAAO,oBAAC,IAAD;AAAM,IAAA,GAAG,EAAEC;AAAX,KAAqBM,OAArB,CAAP;AACD,CA5C+B;;;;"}
1
+ {"version":3,"file":"PopupMenuContent.js","sources":["../../../../src/outOfTheBox/PopupMenu/PopupMenuContent.tsx"],"sourcesContent":["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 '../../index.d';\nimport { GlobalHeaderContext } from '../../GlobalHeaderContext';\n\nexport const PopupMenuContent = React.memo(({ options, onItemClick, onClose }: 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 } = 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 };\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 {...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 {...ariaAndDataProps}\n >\n {Icon && <Icon />}\n {Label && <Label>{label}</Label>}\n </ItemWrapper>\n );\n }\n }),\n [onClose, onItemClick, options, instanceUID],\n );\n return <List ref={menuRef}>{content}</List>;\n});\n"],"names":["PopupMenuContent","React","memo","options","onItemClick","onClose","useContext","GlobalHeaderContext","instanceUID","menuRef","useRef","useEffect","current","firstChild","focus","content","useMemo","map","option","type","Icon","label","onClick","Content","ariaAndDataProps","getAriaProps","getDataProps","handleClick","e","handleKeyDown","code","Label"],"mappings":";;;;;;;;;;;;IAMaA,gBAAgB,gBAAGC,KAAK,CAACC,IAAN,CAAW,gBAA2D;AAAA,MAAxDC,OAAwD,QAAxDA,OAAwD;AAAA,MAA/CC,WAA+C,QAA/CA,WAA+C;AAAA,MAAlCC,OAAkC,QAAlCA,OAAkC;;AACpG,oBAAwBC,UAAU,CAACC,mBAAD,CAAlC;AAAA,MAAQC,WAAR,eAAQA,WAAR;;AAEA,MAAMC,OAAO,GAAGC,MAAM,CAAiB,IAAjB,CAAtB;AAEAC,EAAAA,SAAS,CAAC,YAAM;AAAA;;AACd,wBAACF,OAAO,CAACG,OAAT,8EAAC,iBAAiBC,UAAlB,gFAAoDC,KAApD;AACD,GAFQ,EAEN,EAFM,CAAT;AAIA,MAAMC,OAAO,GAAGC,OAAO,CACrB;AAAA,WACEb,OAAO,CAACc,GAAR,CAAY,UAACC,MAAD,EAAY;AACtB,UAAQC,IAAR,GAAqDD,MAArD,CAAQC,IAAR;AAAA,UAAcC,IAAd,GAAqDF,MAArD,CAAcE,IAAd;AAAA,0BAAqDF,MAArD,CAAoBG,KAApB;AAAA,UAAoBA,KAApB,8BAA4B,EAA5B;AAAA,UAAgCC,OAAhC,GAAqDJ,MAArD,CAAgCI,OAAhC;AAAA,UAAyCC,OAAzC,GAAqDL,MAArD,CAAyCK,OAAzC;;AAEA,UAAMC,gBAAgB,mCACjBC,YAAY,CAACP,MAAD,CADK,GAEjBQ,YAAY,CAACR,MAAD,CAFK,CAAtB;;AAKA,UAAMS,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD,EAAkD;AACpExB,QAAAA,WAAW,CAACwB,CAAD,CAAX;AACA,YAAIN,OAAJ,EAAaA,OAAO,CAACM,CAAD,CAAP;AACd,OAHD;;AAKA,UAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACD,CAAD,EAA4B;AAChD,YAAIA,CAAC,CAACE,IAAF,KAAW,QAAf,EAAyBzB,OAAO;AACjC,OAFD;;AAIA,cAAQc,IAAR;AACE,aAAK,WAAL;AACE,8BAAO,oBAAC,SAAD;AAAW,YAAA,GAAG,YAAKX,WAAL,wBAA8Ba,KAA9B;AAAd,aAAyDG,gBAAzD,EAAP;;AACF,aAAK,QAAL;AACE,8BACE,oBAAC,WAAD;AACE,YAAA,OAAO,EAAEG,WADX;AAEE,YAAA,SAAS,EAAEE,aAFb;AAGE,YAAA,GAAG,YAAKrB,WAAL,oBAA0Ba,KAA1B;AAHL,aAIMG,gBAJN,GAMGD,OAAO,iBAAI,oBAAC,OAAD,OANd,CADF;;AAUF;AACE,8BACE,oBAAC,WAAD;AACE,YAAA,OAAO,EAAEI,WADX;AAEE,YAAA,SAAS,EAAEE,aAFb;AAGE,YAAA,GAAG,YAAKrB,WAAL,oBAA0Ba,KAA1B;AAHL,aAIMG,gBAJN,GAMGJ,IAAI,iBAAI,oBAAC,IAAD,OANX,EAOGW,KAAK,iBAAI,oBAAC,KAAD,QAAQV,KAAR,CAPZ,CADF;AAfJ;AA2BD,KA5CD,CADF;AAAA,GADqB,EA+CrB,CAAChB,OAAD,EAAUD,WAAV,EAAuBD,OAAvB,EAAgCK,WAAhC,CA/CqB,CAAvB;AAiDA,sBAAO,oBAAC,IAAD;AAAM,IAAA,GAAG,EAAEC;AAAX,KAAqBM,OAArB,CAAP;AACD,CA3D+B;;;;"}
@@ -3,11 +3,15 @@ export { PopupMenu } from './PopupMenu/PopupMenu.js';
3
3
  import '@babel/runtime/helpers/esm/slicedToArray';
4
4
  import 'react';
5
5
  import '@elliemae/ds-app-picker';
6
+ import '@elliemae/ds-utilities';
6
7
  import '@elliemae/ds-icons';
7
8
  import '../components/Toolbar/styles.js';
8
9
  import 'styled-components';
9
- import '@elliemae/ds-popover';
10
+ import '@elliemae/ds-popperjs';
10
11
  import './PopupMenu/PopupMenuContent.js';
12
+ import '@babel/runtime/helpers/esm/extends';
13
+ import '@babel/runtime/helpers/esm/defineProperty';
14
+ import '@elliemae/ds-props-helpers';
11
15
  import './PopupMenu/styles.js';
12
16
  import '../GlobalHeaderContext.js';
13
17
  import '../defaultProps.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-global-header",
3
- "version": "1.59.8",
3
+ "version": "1.61.3",
4
4
  "license": "MIT",
5
5
  "description": "Ellie Mae - Dim Sum - Global Header",
6
6
  "module": "esm/index.js",
@@ -16,10 +16,14 @@
16
16
  "build": "node ../../scripts/build/build.js"
17
17
  },
18
18
  "dependencies": {
19
- "@elliemae/ds-app-picker": "1.59.8",
20
- "@elliemae/ds-grid": "1.59.8",
21
- "@elliemae/ds-icons": "1.59.8",
22
- "@elliemae/ds-popover": "1.59.8",
19
+ "@elliemae/ds-app-picker": "1.61.3",
20
+ "@elliemae/ds-classnames": "1.61.3",
21
+ "@elliemae/ds-grid": "1.61.3",
22
+ "@elliemae/ds-icons": "1.61.3",
23
+ "@elliemae/ds-popover": "1.61.3",
24
+ "@elliemae/ds-popperjs": "1.61.3",
25
+ "@elliemae/ds-props-helpers": "1.61.3",
26
+ "@elliemae/ds-utilities": "1.61.3",
23
27
  "react-desc": "^4.1.2",
24
28
  "uid": "2.0.0"
25
29
  },