@elliemae/ds-mobile 3.3.1-rc.0 → 3.3.1

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 (213) hide show
  1. package/dist/cjs/InfiniteLoader/Infiniteloader.js +38 -22
  2. package/dist/cjs/InfiniteLoader/Infiniteloader.js.map +2 -2
  3. package/dist/esm/Accordion/DSMobileAccordion.js +0 -1
  4. package/dist/esm/Accordion/DSMobileAccordion.js.map +1 -1
  5. package/dist/esm/Accordion/index.js +0 -1
  6. package/dist/esm/Accordion/index.js.map +1 -1
  7. package/dist/esm/Accordion/react-desc-prop-types.js +0 -1
  8. package/dist/esm/Accordion/react-desc-prop-types.js.map +1 -1
  9. package/dist/esm/CategoryBox/CategoryBox.js +0 -1
  10. package/dist/esm/CategoryBox/CategoryBox.js.map +1 -1
  11. package/dist/esm/CategoryBox/index.js +0 -1
  12. package/dist/esm/CategoryBox/index.js.map +1 -1
  13. package/dist/esm/CollectionBox/CollectionBox.js +0 -1
  14. package/dist/esm/CollectionBox/CollectionBox.js.map +1 -1
  15. package/dist/esm/CollectionBox/index.js +0 -1
  16. package/dist/esm/CollectionBox/index.js.map +1 -1
  17. package/dist/esm/FullPageContainer/FullPageContainer.js +0 -1
  18. package/dist/esm/FullPageContainer/FullPageContainer.js.map +1 -1
  19. package/dist/esm/FullPageContainer/FullPageContainerScroll.js +0 -1
  20. package/dist/esm/FullPageContainer/FullPageContainerScroll.js.map +1 -1
  21. package/dist/esm/FullPageContainer/index.js +0 -1
  22. package/dist/esm/FullPageContainer/index.js.map +1 -1
  23. package/dist/esm/FullPageContainer/useMobileHeight.js +0 -1
  24. package/dist/esm/FullPageContainer/useMobileHeight.js.map +1 -1
  25. package/dist/esm/GlobalHeader/MobileGlobalHeader.js +0 -1
  26. package/dist/esm/GlobalHeader/MobileGlobalHeader.js.map +1 -1
  27. package/dist/esm/GlobalHeader/index.js +0 -1
  28. package/dist/esm/GlobalHeader/index.js.map +1 -1
  29. package/dist/esm/GlobalHeader/styles.js +0 -1
  30. package/dist/esm/GlobalHeader/styles.js.map +1 -1
  31. package/dist/esm/GroupBox/GroupBox.js +0 -1
  32. package/dist/esm/GroupBox/GroupBox.js.map +1 -1
  33. package/dist/esm/GroupBox/index.js +0 -1
  34. package/dist/esm/GroupBox/index.js.map +1 -1
  35. package/dist/esm/Icons/EM_logo.js +0 -1
  36. package/dist/esm/Icons/EM_logo.js.map +1 -1
  37. package/dist/esm/InfiniteLoader/Infiniteloader.js +38 -23
  38. package/dist/esm/InfiniteLoader/Infiniteloader.js.map +2 -2
  39. package/dist/esm/InfiniteLoader/Loader.js +0 -1
  40. package/dist/esm/InfiniteLoader/Loader.js.map +1 -1
  41. package/dist/esm/InfiniteLoader/VirtualizedInfiniteLoader.js +0 -1
  42. package/dist/esm/InfiniteLoader/VirtualizedInfiniteLoader.js.map +1 -1
  43. package/dist/esm/InfiniteLoader/index.js +0 -1
  44. package/dist/esm/InfiniteLoader/index.js.map +1 -1
  45. package/dist/esm/InfiniteLoader/styled.js +0 -1
  46. package/dist/esm/InfiniteLoader/styled.js.map +1 -1
  47. package/dist/esm/LoadingPage/Page.js +0 -1
  48. package/dist/esm/LoadingPage/Page.js.map +1 -1
  49. package/dist/esm/LoadingPage/index.js +0 -1
  50. package/dist/esm/LoadingPage/index.js.map +1 -1
  51. package/dist/esm/MobileActionToolbar/MobileActionToolbar.js +0 -1
  52. package/dist/esm/MobileActionToolbar/MobileActionToolbar.js.map +1 -1
  53. package/dist/esm/MobileActionToolbar/MobileActionToolbarItem.js +0 -1
  54. package/dist/esm/MobileActionToolbar/MobileActionToolbarItem.js.map +1 -1
  55. package/dist/esm/MobileActionToolbar/index.js +0 -1
  56. package/dist/esm/MobileActionToolbar/index.js.map +1 -1
  57. package/dist/esm/MobileBanner/MobileBanner.js +0 -1
  58. package/dist/esm/MobileBanner/MobileBanner.js.map +1 -1
  59. package/dist/esm/MobileBanner/defaultProps.js +0 -1
  60. package/dist/esm/MobileBanner/defaultProps.js.map +1 -1
  61. package/dist/esm/MobileBanner/index.d.js +0 -1
  62. package/dist/esm/MobileBanner/index.d.js.map +1 -1
  63. package/dist/esm/MobileBanner/index.js +0 -1
  64. package/dist/esm/MobileBanner/index.js.map +1 -1
  65. package/dist/esm/MobileBanner/propTypes.js +0 -1
  66. package/dist/esm/MobileBanner/propTypes.js.map +1 -1
  67. package/dist/esm/MobileBanner/styles.js +0 -1
  68. package/dist/esm/MobileBanner/styles.js.map +1 -1
  69. package/dist/esm/MobileBanner/utils/bannerTypes.js +0 -1
  70. package/dist/esm/MobileBanner/utils/bannerTypes.js.map +1 -1
  71. package/dist/esm/MobileBanner/utils/icons.js +0 -1
  72. package/dist/esm/MobileBanner/utils/icons.js.map +1 -1
  73. package/dist/esm/MobileBanner/utils/styleHelpers.js +0 -1
  74. package/dist/esm/MobileBanner/utils/styleHelpers.js.map +1 -1
  75. package/dist/esm/MobileCard/ActionAddon.js +0 -1
  76. package/dist/esm/MobileCard/ActionAddon.js.map +1 -1
  77. package/dist/esm/MobileCard/Card.js +0 -1
  78. package/dist/esm/MobileCard/Card.js.map +1 -1
  79. package/dist/esm/MobileCard/CardIcons.js +0 -1
  80. package/dist/esm/MobileCard/CardIcons.js.map +1 -1
  81. package/dist/esm/MobileCard/ExpandChevron.js +0 -1
  82. package/dist/esm/MobileCard/ExpandChevron.js.map +1 -1
  83. package/dist/esm/MobileCard/ExpandableRegion.js +0 -1
  84. package/dist/esm/MobileCard/ExpandableRegion.js.map +1 -1
  85. package/dist/esm/MobileCard/Group.js +0 -1
  86. package/dist/esm/MobileCard/Group.js.map +1 -1
  87. package/dist/esm/MobileCard/StyledCard.js +0 -1
  88. package/dist/esm/MobileCard/StyledCard.js.map +1 -1
  89. package/dist/esm/MobileCard/index.js +0 -1
  90. package/dist/esm/MobileCard/index.js.map +1 -1
  91. package/dist/esm/MobileCard/props.js +0 -1
  92. package/dist/esm/MobileCard/props.js.map +1 -1
  93. package/dist/esm/MobileCard/useHeight.js +0 -1
  94. package/dist/esm/MobileCard/useHeight.js.map +1 -1
  95. package/dist/esm/MobileContextMenu/MobileContextMenu.js +0 -1
  96. package/dist/esm/MobileContextMenu/MobileContextMenu.js.map +1 -1
  97. package/dist/esm/MobileContextMenu/MobileContextMenuGroup.js +0 -1
  98. package/dist/esm/MobileContextMenu/MobileContextMenuGroup.js.map +1 -1
  99. package/dist/esm/MobileContextMenu/MobileContextMenuItem.js +0 -1
  100. package/dist/esm/MobileContextMenu/MobileContextMenuItem.js.map +1 -1
  101. package/dist/esm/MobileContextMenu/index.js +0 -1
  102. package/dist/esm/MobileContextMenu/index.js.map +1 -1
  103. package/dist/esm/MobileDatePicker/Input.js +0 -1
  104. package/dist/esm/MobileDatePicker/Input.js.map +1 -1
  105. package/dist/esm/MobileDatePicker/MobileDatePicker.js +0 -1
  106. package/dist/esm/MobileDatePicker/MobileDatePicker.js.map +1 -1
  107. package/dist/esm/MobileDatePicker/index.js +0 -1
  108. package/dist/esm/MobileDatePicker/index.js.map +1 -1
  109. package/dist/esm/MobileDropdownMenu/MobileDropdownInput.js +0 -1
  110. package/dist/esm/MobileDropdownMenu/MobileDropdownInput.js.map +1 -1
  111. package/dist/esm/MobileDropdownMenu/MobileDropdownMenu.js +0 -1
  112. package/dist/esm/MobileDropdownMenu/MobileDropdownMenu.js.map +1 -1
  113. package/dist/esm/MobileDropdownMenu/index.js +0 -1
  114. package/dist/esm/MobileDropdownMenu/index.js.map +1 -1
  115. package/dist/esm/MobileEmtpyState/MobileEmptyState.js +0 -1
  116. package/dist/esm/MobileEmtpyState/MobileEmptyState.js.map +1 -1
  117. package/dist/esm/MobileEmtpyState/index.js +0 -1
  118. package/dist/esm/MobileEmtpyState/index.js.map +1 -1
  119. package/dist/esm/MobileFilterbar/Filterbar.js +0 -1
  120. package/dist/esm/MobileFilterbar/Filterbar.js.map +1 -1
  121. package/dist/esm/MobileFilterbar/FilterbarItem.js +0 -1
  122. package/dist/esm/MobileFilterbar/FilterbarItem.js.map +1 -1
  123. package/dist/esm/MobileFilterbar/FilterbarSort.js +0 -1
  124. package/dist/esm/MobileFilterbar/FilterbarSort.js.map +1 -1
  125. package/dist/esm/MobileFilterbar/index.js +0 -1
  126. package/dist/esm/MobileFilterbar/index.js.map +1 -1
  127. package/dist/esm/MobileFooter/Action.js +0 -1
  128. package/dist/esm/MobileFooter/Action.js.map +1 -1
  129. package/dist/esm/MobileFooter/Footer.js +0 -1
  130. package/dist/esm/MobileFooter/Footer.js.map +1 -1
  131. package/dist/esm/MobileFooter/Text.js +0 -1
  132. package/dist/esm/MobileFooter/Text.js.map +1 -1
  133. package/dist/esm/MobileFooter/index.js +0 -1
  134. package/dist/esm/MobileFooter/index.js.map +1 -1
  135. package/dist/esm/MobileListItem/MobileListItem.js +0 -1
  136. package/dist/esm/MobileListItem/MobileListItem.js.map +1 -1
  137. package/dist/esm/MobileListItem/MobileListMultipleItem.js +0 -1
  138. package/dist/esm/MobileListItem/MobileListMultipleItem.js.map +1 -1
  139. package/dist/esm/MobileListItem/MobileListSeparator.js +0 -1
  140. package/dist/esm/MobileListItem/MobileListSeparator.js.map +1 -1
  141. package/dist/esm/MobileListItem/MobileListSingleItem.js +0 -1
  142. package/dist/esm/MobileListItem/MobileListSingleItem.js.map +1 -1
  143. package/dist/esm/MobileListItem/index.js +0 -1
  144. package/dist/esm/MobileListItem/index.js.map +1 -1
  145. package/dist/esm/MobileListItem/style.js +0 -1
  146. package/dist/esm/MobileListItem/style.js.map +1 -1
  147. package/dist/esm/MobilePageHeader/MobilePageHeader.js +0 -1
  148. package/dist/esm/MobilePageHeader/MobilePageHeader.js.map +1 -1
  149. package/dist/esm/MobilePageHeader/index.js +0 -1
  150. package/dist/esm/MobilePageHeader/index.js.map +1 -1
  151. package/dist/esm/MobileSelectList/MobileSelectList.js +0 -1
  152. package/dist/esm/MobileSelectList/MobileSelectList.js.map +1 -1
  153. package/dist/esm/MobileSelectList/index.js +0 -1
  154. package/dist/esm/MobileSelectList/index.js.map +1 -1
  155. package/dist/esm/MobileSelectList/styled.js +0 -1
  156. package/dist/esm/MobileSelectList/styled.js.map +1 -1
  157. package/dist/esm/MobileSeparator/Separator.js +0 -1
  158. package/dist/esm/MobileSeparator/Separator.js.map +1 -1
  159. package/dist/esm/MobileSeparator/index.js +0 -1
  160. package/dist/esm/MobileSeparator/index.js.map +1 -1
  161. package/dist/esm/MobileTimePicker/Input.js +0 -1
  162. package/dist/esm/MobileTimePicker/Input.js.map +1 -1
  163. package/dist/esm/MobileTimePicker/MobileTimePicker.js +0 -1
  164. package/dist/esm/MobileTimePicker/MobileTimePicker.js.map +1 -1
  165. package/dist/esm/MobileTimePicker/index.js +0 -1
  166. package/dist/esm/MobileTimePicker/index.js.map +1 -1
  167. package/dist/esm/MobileTouchable/MobileTouchable.js +0 -1
  168. package/dist/esm/MobileTouchable/MobileTouchable.js.map +1 -1
  169. package/dist/esm/MobileTouchable/index.js +0 -1
  170. package/dist/esm/MobileTouchable/index.js.map +1 -1
  171. package/dist/esm/Modal/Modal.js +0 -1
  172. package/dist/esm/Modal/Modal.js.map +1 -1
  173. package/dist/esm/Modal/index.js +0 -1
  174. package/dist/esm/Modal/index.js.map +1 -1
  175. package/dist/esm/Modal/styled.js +0 -1
  176. package/dist/esm/Modal/styled.js.map +1 -1
  177. package/dist/esm/PageFilter/PageFilter.js +0 -1
  178. package/dist/esm/PageFilter/PageFilter.js.map +1 -1
  179. package/dist/esm/PageForm/PageForm.js +0 -1
  180. package/dist/esm/PageForm/PageForm.js.map +1 -1
  181. package/dist/esm/PageList/PageList.js +0 -1
  182. package/dist/esm/PageList/PageList.js.map +1 -1
  183. package/dist/esm/PageList/index.js +0 -1
  184. package/dist/esm/PageList/index.js.map +1 -1
  185. package/dist/esm/PageSearch/PageSearch.js +0 -1
  186. package/dist/esm/PageSearch/PageSearch.js.map +1 -1
  187. package/dist/esm/PageSummary/PageSummary.js +0 -1
  188. package/dist/esm/PageSummary/PageSummary.js.map +1 -1
  189. package/dist/esm/PageSummary/Tags.js +0 -1
  190. package/dist/esm/PageSummary/Tags.js.map +1 -1
  191. package/dist/esm/SideNav/SideNav.js +0 -1
  192. package/dist/esm/SideNav/SideNav.js.map +1 -1
  193. package/dist/esm/SideNav/index.js +0 -1
  194. package/dist/esm/SideNav/index.js.map +1 -1
  195. package/dist/esm/SideNav/styles.js +0 -1
  196. package/dist/esm/SideNav/styles.js.map +1 -1
  197. package/dist/esm/SwipeToRefresh/ProgressIndicator.js +0 -1
  198. package/dist/esm/SwipeToRefresh/ProgressIndicator.js.map +1 -1
  199. package/dist/esm/SwipeToRefresh/ProgressLoader.js +0 -1
  200. package/dist/esm/SwipeToRefresh/ProgressLoader.js.map +1 -1
  201. package/dist/esm/SwipeToRefresh/SwipeToRefresh.js +0 -1
  202. package/dist/esm/SwipeToRefresh/SwipeToRefresh.js.map +1 -1
  203. package/dist/esm/SwipeToRefresh/styled.js +0 -1
  204. package/dist/esm/SwipeToRefresh/styled.js.map +1 -1
  205. package/dist/esm/SwipeToRefresh/useSwipe.js +0 -1
  206. package/dist/esm/SwipeToRefresh/useSwipe.js.map +1 -1
  207. package/dist/esm/Tabs/index.js +0 -1
  208. package/dist/esm/Tabs/index.js.map +1 -1
  209. package/dist/esm/Tabs/propTypes.js +0 -1
  210. package/dist/esm/Tabs/propTypes.js.map +1 -1
  211. package/dist/esm/index.js +0 -1
  212. package/dist/esm/index.js.map +1 -1
  213. package/package.json +16 -16
@@ -30,32 +30,47 @@ var import_react = __toESM(require("react"));
30
30
  var import_ds_utilities = require("@elliemae/ds-utilities");
31
31
  var import_ds_grid = require("@elliemae/ds-grid");
32
32
  var import_Loader = require("./Loader");
33
- const InfiniteLoader = ({ isFetching, fetchData, children, height }) => {
33
+ const useMakeMutable = (referenceVar) => {
34
+ const mutable = (0, import_react.useRef)(referenceVar);
35
+ (0, import_react.useEffect)(() => {
36
+ mutable.current = referenceVar;
37
+ }, [referenceVar]);
38
+ return mutable;
39
+ };
40
+ function useIntersectionObserver(elementRef, { threshold = 0, root = null, rootMargin = "0%", freezeOnceVisible = false }) {
41
+ const [entry, setEntry] = (0, import_react.useState)();
42
+ const frozen = entry?.isIntersecting && freezeOnceVisible;
43
+ const updateEntry = ([newEntry]) => {
44
+ setEntry(newEntry);
45
+ };
46
+ (0, import_react.useEffect)(() => {
47
+ const node = elementRef?.current;
48
+ const hasIOSupport = !!window.IntersectionObserver;
49
+ if (!hasIOSupport || frozen || !node)
50
+ return () => {
51
+ };
52
+ const observerParams = { threshold, root, rootMargin };
53
+ const observer = new IntersectionObserver(updateEntry, observerParams);
54
+ observer.observe(node);
55
+ return () => observer.disconnect();
56
+ }, [elementRef, JSON.stringify(threshold), root, rootMargin, frozen]);
57
+ return entry;
58
+ }
59
+ const InfiniteLoader = ({ isFetching, fetchData, children, height, hasMoreItems = true }) => {
34
60
  const [viewportHeight, setViewportHeight] = (0, import_react.useState)(height);
35
61
  const baselineRef = (0, import_react.useRef)(null);
36
- const observerRef = (0, import_react.useRef)(null);
37
- const callback = (0, import_react.useCallback)((entries) => {
38
- const { isIntersecting } = entries[0];
39
- if (isIntersecting && !isFetching) {
40
- fetchData();
41
- observerRef.current?.disconnect();
42
- }
43
- }, [fetchData, isFetching]);
62
+ const entry = useIntersectionObserver(baselineRef, {
63
+ root: null,
64
+ rootMargin: "0px",
65
+ threshold: 0.1
66
+ });
67
+ const isIntersecting = !!entry?.isIntersecting;
68
+ const mutableIsFetching = useMakeMutable(isFetching);
44
69
  (0, import_react.useEffect)(() => {
45
- if (!isFetching) {
46
- observerRef.current?.disconnect();
47
- observerRef.current = new IntersectionObserver(callback, {
48
- root: null,
49
- rootMargin: "0px",
50
- threshold: 0.1
51
- });
52
- if (baselineRef.current)
53
- observerRef.current.observe(baselineRef.current);
70
+ if (hasMoreItems && isIntersecting && !mutableIsFetching.current) {
71
+ fetchData();
54
72
  }
55
- return () => {
56
- observerRef.current?.disconnect();
57
- };
58
- }, [baselineRef, observerRef, fetchData, callback, isFetching]);
73
+ }, [fetchData, isIntersecting, hasMoreItems, mutableIsFetching]);
59
74
  const handleResize = (0, import_react.useCallback)(() => {
60
75
  setViewportHeight(window.innerHeight);
61
76
  }, []);
@@ -82,6 +97,7 @@ const InfiniteLoader = ({ isFetching, fetchData, children, height }) => {
82
97
  };
83
98
  const listProps = {
84
99
  isFetching: import_ds_utilities.PropTypes.bool.description("toggle loading state"),
100
+ hasMoreItems: import_ds_utilities.PropTypes.bool.description("wheter or not you have more items that need to be loaded").defaultValue(true),
85
101
  fetchData: import_ds_utilities.PropTypes.func.description("callback to fetch new items"),
86
102
  children: import_ds_utilities.PropTypes.element.description("row items for infinite loader"),
87
103
  height: import_ds_utilities.PropTypes.number.description("infinite loader list height")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/InfiniteLoader/Infiniteloader.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React, { useEffect, useRef, useCallback, useState } from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { Grid } from '@elliemae/ds-grid';\nimport { Loader } from './Loader';\n\ninterface Props {\n isFetching: boolean;\n fetchData: () => void;\n children: React.ReactNode;\n height?: number | string;\n}\n\nconst InfiniteLoader = ({ isFetching, fetchData, children, height }: Props) => {\n const [viewportHeight, setViewportHeight] = useState<number | undefined | string>(height);\n const baselineRef = useRef<HTMLDivElement | null>(null);\n const observerRef = useRef<IntersectionObserver | null>(null);\n\n const callback = useCallback(\n (entries: IntersectionObserverEntry[]) => {\n const { isIntersecting } = entries[0];\n if (isIntersecting && !isFetching) {\n fetchData();\n observerRef.current?.disconnect();\n }\n },\n [fetchData, isFetching],\n );\n\n useEffect(() => {\n if (!isFetching) {\n observerRef.current?.disconnect();\n observerRef.current = new IntersectionObserver(callback, {\n root: null,\n rootMargin: '0px',\n threshold: 0.1,\n });\n if (baselineRef.current) observerRef.current.observe(baselineRef.current);\n }\n return () => {\n observerRef.current?.disconnect();\n };\n }, [baselineRef, observerRef, fetchData, callback, isFetching]);\n\n const handleResize = useCallback(() => {\n setViewportHeight(window.innerHeight);\n }, []);\n\n useEffect(() => {\n if (!height) {\n window.addEventListener('resize', handleResize);\n handleResize();\n }\n return () => {\n if (!height) window.removeEventListener('resize', handleResize);\n };\n }, [handleResize, height]);\n\n return (\n <Grid style={{ position: 'relative', overflow: 'hidden', height: viewportHeight }}>\n <Grid style={{ overflow: isFetching ? 'hidden' : 'auto', height: viewportHeight }}>\n {children}\n <div ref={baselineRef} style={{ height: 1 }} />\n </Grid>\n <Loader isOpen={isFetching} />\n </Grid>\n );\n};\n\nconst listProps = {\n isFetching: PropTypes.bool.description('toggle loading state'),\n fetchData: PropTypes.func.description('callback to fetch new items'),\n children: PropTypes.element.description('row items for infinite loader'),\n height: PropTypes.number.description('infinite loader list height'),\n};\n\nconst InfiniteLoaderWithSchema = describe(InfiniteLoader);\nInfiniteLoaderWithSchema.propTypes = listProps;\nexport { InfiniteLoader, InfiniteLoaderWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAgE;AAChE,0BAAoC;AACpC,qBAAqB;AACrB,oBAAuB;AASvB,MAAM,iBAAiB,CAAC,EAAE,YAAY,WAAW,UAAU,aAAoB;AAC7E,QAAM,CAAC,gBAAgB,qBAAqB,2BAAsC,MAAM;AACxF,QAAM,cAAc,yBAA8B,IAAI;AACtD,QAAM,cAAc,yBAAoC,IAAI;AAE5D,QAAM,WAAW,8BACf,CAAC,YAAyC;AACxC,UAAM,EAAE,mBAAmB,QAAQ;AACnC,QAAI,kBAAkB,CAAC,YAAY;AACjC,gBAAU;AACV,kBAAY,SAAS,WAAW;AAAA,IAClC;AAAA,EACF,GACA,CAAC,WAAW,UAAU,CACxB;AAEA,8BAAU,MAAM;AACd,QAAI,CAAC,YAAY;AACf,kBAAY,SAAS,WAAW;AAChC,kBAAY,UAAU,IAAI,qBAAqB,UAAU;AAAA,QACvD,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,WAAW;AAAA,MACb,CAAC;AACD,UAAI,YAAY;AAAS,oBAAY,QAAQ,QAAQ,YAAY,OAAO;AAAA,IAC1E;AACA,WAAO,MAAM;AACX,kBAAY,SAAS,WAAW;AAAA,IAClC;AAAA,EACF,GAAG,CAAC,aAAa,aAAa,WAAW,UAAU,UAAU,CAAC;AAE9D,QAAM,eAAe,8BAAY,MAAM;AACrC,sBAAkB,OAAO,WAAW;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,8BAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX,aAAO,iBAAiB,UAAU,YAAY;AAC9C,mBAAa;AAAA,IACf;AACA,WAAO,MAAM;AACX,UAAI,CAAC;AAAQ,eAAO,oBAAoB,UAAU,YAAY;AAAA,IAChE;AAAA,EACF,GAAG,CAAC,cAAc,MAAM,CAAC;AAEzB,SACE,mDAAC;AAAA,IAAK,OAAO,EAAE,UAAU,YAAY,UAAU,UAAU,QAAQ,eAAe;AAAA,KAC9E,mDAAC;AAAA,IAAK,OAAO,EAAE,UAAU,aAAa,WAAW,QAAQ,QAAQ,eAAe;AAAA,KAC7E,UACD,mDAAC;AAAA,IAAI,KAAK;AAAA,IAAa,OAAO,EAAE,QAAQ,EAAE;AAAA,GAAG,CAC/C,GACA,mDAAC;AAAA,IAAO,QAAQ;AAAA,GAAY,CAC9B;AAEJ;AAEA,MAAM,YAAY;AAAA,EAChB,YAAY,8BAAU,KAAK,YAAY,sBAAsB;AAAA,EAC7D,WAAW,8BAAU,KAAK,YAAY,6BAA6B;AAAA,EACnE,UAAU,8BAAU,QAAQ,YAAY,+BAA+B;AAAA,EACvE,QAAQ,8BAAU,OAAO,YAAY,6BAA6B;AACpE;AAEA,MAAM,2BAA2B,kCAAS,cAAc;AACxD,yBAAyB,YAAY;",
4
+ "sourcesContent": ["import React, { useEffect, useRef, useCallback, useState, type RefObject, type WeakValidationMap } from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { Grid } from '@elliemae/ds-grid';\nimport { Loader } from './Loader';\n\ninterface Props {\n isFetching: boolean;\n hasMoreItems?: boolean;\n fetchData: () => void;\n children: React.ReactNode;\n height?: number | string;\n}\ntype UseMakeMutable<T = unknown> = (referenceVar: T) => React.MutableRefObject<T>;\nconst useMakeMutable: UseMakeMutable = (referenceVar) => {\n const mutable = useRef(referenceVar);\n useEffect(() => {\n mutable.current = referenceVar;\n }, [referenceVar]);\n return mutable;\n};\n\ninterface Args extends IntersectionObserverInit {\n freezeOnceVisible?: boolean;\n}\n\nfunction useIntersectionObserver(\n elementRef: RefObject<Element>,\n { threshold = 0, root = null, rootMargin = '0%', freezeOnceVisible = false }: Args,\n): IntersectionObserverEntry | undefined {\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const frozen = entry?.isIntersecting && freezeOnceVisible;\n\n const updateEntry = ([newEntry]: IntersectionObserverEntry[]): void => {\n setEntry(newEntry);\n };\n\n useEffect(() => {\n const node = elementRef?.current; // DOM Ref\n const hasIOSupport = !!window.IntersectionObserver;\n\n if (!hasIOSupport || frozen || !node) return () => {};\n\n const observerParams = { threshold, root, rootMargin };\n const observer = new IntersectionObserver(updateEntry, observerParams);\n\n observer.observe(node);\n\n return () => observer.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [elementRef, JSON.stringify(threshold), root, rootMargin, frozen]);\n\n return entry;\n}\n\nconst InfiniteLoader = ({ isFetching, fetchData, children, height, hasMoreItems = true }: Props) => {\n const [viewportHeight, setViewportHeight] = useState<number | undefined | string>(height);\n\n const baselineRef = useRef<HTMLDivElement | null>(null);\n const entry = useIntersectionObserver(baselineRef, {\n root: null,\n rootMargin: '0px',\n threshold: 0.1,\n });\n const isIntersecting = !!entry?.isIntersecting;\n const mutableIsFetching = useMakeMutable(isFetching);\n\n useEffect(() => {\n if (hasMoreItems && isIntersecting && !mutableIsFetching.current) {\n fetchData();\n }\n // we only want to redefine the callback when \"fetchData\" changes\n // we don't need to redefine if isFetching changes, so we use \"mutableIsFetching\"\n }, [fetchData, isIntersecting, hasMoreItems, mutableIsFetching]);\n\n const handleResize = useCallback(() => {\n setViewportHeight(window.innerHeight);\n }, []);\n\n useEffect(() => {\n if (!height) {\n window.addEventListener('resize', handleResize);\n handleResize();\n }\n return () => {\n if (!height) window.removeEventListener('resize', handleResize);\n };\n }, [handleResize, height]);\n\n return (\n <Grid style={{ position: 'relative', overflow: 'hidden', height: viewportHeight }}>\n <Grid style={{ overflow: isFetching ? 'hidden' : 'auto', height: viewportHeight }}>\n {children}\n <div ref={baselineRef} style={{ height: 1 }} />\n </Grid>\n <Loader isOpen={isFetching} />\n </Grid>\n );\n};\n\nconst listProps = {\n isFetching: PropTypes.bool.description('toggle loading state'),\n hasMoreItems: PropTypes.bool\n .description('wheter or not you have more items that need to be loaded')\n .defaultValue(true),\n fetchData: PropTypes.func.description('callback to fetch new items'),\n children: PropTypes.element.description('row items for infinite loader'),\n height: PropTypes.number.description('infinite loader list height'),\n} as WeakValidationMap<unknown>;\n\nconst InfiniteLoaderWithSchema = describe(InfiniteLoader);\nInfiniteLoaderWithSchema.propTypes = listProps;\nexport { InfiniteLoader, InfiniteLoaderWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAwG;AACxG,0BAAoC;AACpC,qBAAqB;AACrB,oBAAuB;AAUvB,MAAM,iBAAiC,CAAC,iBAAiB;AACvD,QAAM,UAAU,yBAAO,YAAY;AACnC,8BAAU,MAAM;AACd,YAAQ,UAAU;AAAA,EACpB,GAAG,CAAC,YAAY,CAAC;AACjB,SAAO;AACT;AAMA,iCACE,YACA,EAAE,YAAY,GAAG,OAAO,MAAM,aAAa,MAAM,oBAAoB,SAC9B;AACvC,QAAM,CAAC,OAAO,YAAY,2BAAoC;AAE9D,QAAM,SAAS,OAAO,kBAAkB;AAExC,QAAM,cAAc,CAAC,CAAC,cAAiD;AACrE,aAAS,QAAQ;AAAA,EACnB;AAEA,8BAAU,MAAM;AACd,UAAM,OAAO,YAAY;AACzB,UAAM,eAAe,CAAC,CAAC,OAAO;AAE9B,QAAI,CAAC,gBAAgB,UAAU,CAAC;AAAM,aAAO,MAAM;AAAA,MAAC;AAEpD,UAAM,iBAAiB,EAAE,WAAW,MAAM,WAAW;AACrD,UAAM,WAAW,IAAI,qBAAqB,aAAa,cAAc;AAErE,aAAS,QAAQ,IAAI;AAErB,WAAO,MAAM,SAAS,WAAW;AAAA,EAEnC,GAAG,CAAC,YAAY,KAAK,UAAU,SAAS,GAAG,MAAM,YAAY,MAAM,CAAC;AAEpE,SAAO;AACT;AAEA,MAAM,iBAAiB,CAAC,EAAE,YAAY,WAAW,UAAU,QAAQ,eAAe,WAAkB;AAClG,QAAM,CAAC,gBAAgB,qBAAqB,2BAAsC,MAAM;AAExF,QAAM,cAAc,yBAA8B,IAAI;AACtD,QAAM,QAAQ,wBAAwB,aAAa;AAAA,IACjD,MAAM;AAAA,IACN,YAAY;AAAA,IACZ,WAAW;AAAA,EACb,CAAC;AACD,QAAM,iBAAiB,CAAC,CAAC,OAAO;AAChC,QAAM,oBAAoB,eAAe,UAAU;AAEnD,8BAAU,MAAM;AACd,QAAI,gBAAgB,kBAAkB,CAAC,kBAAkB,SAAS;AAChE,gBAAU;AAAA,IACZ;AAAA,EAGF,GAAG,CAAC,WAAW,gBAAgB,cAAc,iBAAiB,CAAC;AAE/D,QAAM,eAAe,8BAAY,MAAM;AACrC,sBAAkB,OAAO,WAAW;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,8BAAU,MAAM;AACd,QAAI,CAAC,QAAQ;AACX,aAAO,iBAAiB,UAAU,YAAY;AAC9C,mBAAa;AAAA,IACf;AACA,WAAO,MAAM;AACX,UAAI,CAAC;AAAQ,eAAO,oBAAoB,UAAU,YAAY;AAAA,IAChE;AAAA,EACF,GAAG,CAAC,cAAc,MAAM,CAAC;AAEzB,SACE,mDAAC;AAAA,IAAK,OAAO,EAAE,UAAU,YAAY,UAAU,UAAU,QAAQ,eAAe;AAAA,KAC9E,mDAAC;AAAA,IAAK,OAAO,EAAE,UAAU,aAAa,WAAW,QAAQ,QAAQ,eAAe;AAAA,KAC7E,UACD,mDAAC;AAAA,IAAI,KAAK;AAAA,IAAa,OAAO,EAAE,QAAQ,EAAE;AAAA,GAAG,CAC/C,GACA,mDAAC;AAAA,IAAO,QAAQ;AAAA,GAAY,CAC9B;AAEJ;AAEA,MAAM,YAAY;AAAA,EAChB,YAAY,8BAAU,KAAK,YAAY,sBAAsB;AAAA,EAC7D,cAAc,8BAAU,KACrB,YAAY,0DAA0D,EACtE,aAAa,IAAI;AAAA,EACpB,WAAW,8BAAU,KAAK,YAAY,6BAA6B;AAAA,EACnE,UAAU,8BAAU,QAAQ,YAAY,+BAA+B;AAAA,EACvE,QAAQ,8BAAU,OAAO,YAAY,6BAA6B;AACpE;AAEA,MAAM,2BAA2B,kCAAS,cAAc;AACxD,yBAAyB,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { describe } from "@elliemae/ds-utilities";
4
3
  import { DSAccordion, DSAccordionItem } from "@elliemae/ds-accordion";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Accordion/DSMobileAccordion.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { describe } from '@elliemae/ds-utilities';\nimport { DSAccordion, DSAccordionItem } from '@elliemae/ds-accordion';\nimport type { DSAccordionT } from '@elliemae/ds-accordion';\nimport { mobileAccordionItemPropTypes, mobileAccordionPropTypes } from './react-desc-prop-types';\n\ntype DSMobileAccordionPropsT = Omit<DSAccordionT.Props, 'isDSMobile'>;\n\nexport const DSMobileAccordion = ({ children, ...props }: DSMobileAccordionPropsT) => (\n <DSAccordion {...props} isDSMobile>\n {children}\n </DSAccordion>\n);\n\nexport const DSMobileAccordionItem = ({ children, ...props }: DSAccordionT.ItemProps) => (\n <DSAccordionItem {...props}>{children}</DSAccordionItem>\n);\n\nDSMobileAccordionItem.displayName = 'DSMobileAccordionItem';\nconst DSMobileAccordionItemWithSchema = describe(DSMobileAccordionItem);\nDSMobileAccordionItemWithSchema.propTypes = mobileAccordionItemPropTypes;\n\nDSMobileAccordion.displayName = 'DSMobileAccordion';\nconst DSMobileAccordionWithSchema = describe(DSMobileAccordion);\nDSMobileAccordionWithSchema.propTypes = mobileAccordionPropTypes;\n\nexport { DSMobileAccordionItemWithSchema, DSMobileAccordionWithSchema };\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AAEA;AAIO,MAAM,oBAAoB,CAAC,EAAE,aAAa,YAC/C,oCAAC;AAAA,EAAa,GAAG;AAAA,EAAO,YAAU;AAAA,GAC/B,QACH;AAGK,MAAM,wBAAwB,CAAC,EAAE,aAAa,YACnD,oCAAC;AAAA,EAAiB,GAAG;AAAA,GAAQ,QAAS;AAGxC,sBAAsB,cAAc;AACpC,MAAM,kCAAkC,SAAS,qBAAqB;AACtE,gCAAgC,YAAY;AAE5C,kBAAkB,cAAc;AAChC,MAAM,8BAA8B,SAAS,iBAAiB;AAC9D,4BAA4B,YAAY;",
5
+ "mappings": "AAAA;ACAA;AACA;AAEA;AAIO,MAAM,oBAAoB,CAAC,EAAE,aAAa,YAC/C,oCAAC;AAAA,EAAa,GAAG;AAAA,EAAO,YAAU;AAAA,GAC/B,QACH;AAGK,MAAM,wBAAwB,CAAC,EAAE,aAAa,YACnD,oCAAC;AAAA,EAAiB,GAAG;AAAA,GAAQ,QAAS;AAGxC,sBAAsB,cAAc;AACpC,MAAM,kCAAkC,SAAS,qBAAqB;AACtE,gCAAgC,YAAY;AAE5C,kBAAkB,cAAc;AAChC,MAAM,8BAA8B,SAAS,iBAAiB;AAC9D,4BAA4B,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  export * from "./DSMobileAccordion";
4
3
  //# sourceMappingURL=index.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Accordion/index.ts"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSMobileAccordion';\n"],
5
- "mappings": ";AAAA;ACAA;",
5
+ "mappings": "AAAA;ACAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from "@elliemae/ds-utilities";
4
3
  const mobileAccordionItemPropTypes = {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Accordion/react-desc-prop-types.ts"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { PropTypes, globalAttributesPropTypes, xstyledPropTypes } from '@elliemae/ds-utilities';\n\nexport const mobileAccordionItemPropTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n children: PropTypes.node.description('Dimsum AccordionItem content.').isRequired,\n title: PropTypes.string.description('Set a primary title.'),\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).description(\n 'Dimsum AccordionItem value, this value should be unique.',\n ).isRequired,\n iconClosed: PropTypes.node.description('Custom Dimsum Icon when it is closed.').deprecated({ version: '3.x' }),\n iconOpened: PropTypes.node.description('Custom Dimsum Icon when it is open.').deprecated({ version: '3.x' }),\n secondaryTitle: PropTypes.string.description('Set a secondary title'),\n customActions: PropTypes.arrayOf(PropTypes.object)\n .description('Set Dimsum AccordionItem custom actions.')\n .deprecated({ version: '3.x' }),\n renderCustomActions: PropTypes.func.description(\n 'This property will render any JSX in the custom actions area. You can access to all references and active values within the props.',\n ),\n};\n\nexport const mobileAccordionPropTypes = {\n ...globalAttributesPropTypes,\n ...xstyledPropTypes,\n containerProps: PropTypes.object.description('Adds props to the container.'),\n activeValue: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.string,\n PropTypes.number,\n ]).description('Selected active value. This property makes the component a controlled one.'),\n children: PropTypes.node.description('Dimsum AccordionItems to show.'),\n allowMultipleOpen: PropTypes.bool.description('Allows multiple Dimsum AccordionItems to be open at the same time.'),\n onChange: PropTypes.func.description('Callback function once the Dimsum Accordion changes.'),\n};\n"],
5
- "mappings": ";AAAA;ACAA;AAEO,MAAM,+BAA+B;AAAA,EAC1C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,UAAU,UAAU,KAAK,YAAY,+BAA+B,EAAE;AAAA,EACtE,OAAO,UAAU,OAAO,YAAY,sBAAsB;AAAA,EAC1D,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC,EAAE,YAC/D,0DACF,EAAE;AAAA,EACF,YAAY,UAAU,KAAK,YAAY,uCAAuC,EAAE,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAC7G,YAAY,UAAU,KAAK,YAAY,qCAAqC,EAAE,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAC3G,gBAAgB,UAAU,OAAO,YAAY,uBAAuB;AAAA,EACpE,eAAe,UAAU,QAAQ,UAAU,MAAM,EAC9C,YAAY,0CAA0C,EACtD,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAChC,qBAAqB,UAAU,KAAK,YAClC,oIACF;AACF;AAEO,MAAM,2BAA2B;AAAA,EACtC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,gBAAgB,UAAU,OAAO,YAAY,8BAA8B;AAAA,EAC3E,aAAa,UAAU,UAAU;AAAA,IAC/B,UAAU,QAAQ,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC,CAAC;AAAA,IAC3E,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC,EAAE,YAAY,4EAA4E;AAAA,EAC3F,UAAU,UAAU,KAAK,YAAY,gCAAgC;AAAA,EACrE,mBAAmB,UAAU,KAAK,YAAY,oEAAoE;AAAA,EAClH,UAAU,UAAU,KAAK,YAAY,sDAAsD;AAC7F;",
5
+ "mappings": "AAAA;ACAA;AAEO,MAAM,+BAA+B;AAAA,EAC1C,GAAG;AAAA,EACH,GAAG;AAAA,EACH,UAAU,UAAU,KAAK,YAAY,+BAA+B,EAAE;AAAA,EACtE,OAAO,UAAU,OAAO,YAAY,sBAAsB;AAAA,EAC1D,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC,EAAE,YAC/D,0DACF,EAAE;AAAA,EACF,YAAY,UAAU,KAAK,YAAY,uCAAuC,EAAE,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAC7G,YAAY,UAAU,KAAK,YAAY,qCAAqC,EAAE,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAC3G,gBAAgB,UAAU,OAAO,YAAY,uBAAuB;AAAA,EACpE,eAAe,UAAU,QAAQ,UAAU,MAAM,EAC9C,YAAY,0CAA0C,EACtD,WAAW,EAAE,SAAS,MAAM,CAAC;AAAA,EAChC,qBAAqB,UAAU,KAAK,YAClC,oIACF;AACF;AAEO,MAAM,2BAA2B;AAAA,EACtC,GAAG;AAAA,EACH,GAAG;AAAA,EACH,gBAAgB,UAAU,OAAO,YAAY,8BAA8B;AAAA,EAC3E,aAAa,UAAU,UAAU;AAAA,IAC/B,UAAU,QAAQ,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,MAAM,CAAC,CAAC;AAAA,IAC3E,UAAU;AAAA,IACV,UAAU;AAAA,EACZ,CAAC,EAAE,YAAY,4EAA4E;AAAA,EAC3F,UAAU,UAAU,KAAK,YAAY,gCAAgC;AAAA,EACrE,mBAAmB,UAAU,KAAK,YAAY,oEAAoE;AAAA,EAClH,UAAU,UAAU,KAAK,YAAY,sDAAsD;AAC7F;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  import { times } from "lodash";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/CategoryBox/CategoryBox.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { times } from 'lodash';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { truncate } from '@elliemae/ds-system';\n\nconst Title = styled.h3`\n font-size: 18px;\n margin: 0;\n color: ${(props) => props.theme.colors.neutral['700']};\n line-height: inherit;\n ${truncate()}\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n`;\n\nconst CategoryBox = styled(Grid, {})`\n background: ${(props) => props.theme.colors.neutral['0']};\n border-top: ${(props) => (props.hasBorderTop ? `1px solid ${props.theme.colors.neutral['100']}` : 'none')};\n`;\n\nconst DSCategoryBox = ({ borderTop = true, actionsRight = [], title, headerLevel = 3, children }) => {\n const rows = ['auto'];\n const hasActions = actionsRight.length > 0;\n if (hasActions) rows.push('auto');\n\n const cols = React.useMemo(() => times(actionsRight.length, () => 'auto'), [actionsRight.length]);\n\n return (\n <Grid rows={['40px', 'auto']}>\n <CategoryBox\n cols={rows}\n hasBorderTop={borderTop}\n alignItems=\"center\"\n pl=\"xs\"\n pr={actionsRight.length > 0 ? 'xxs' : 'xs'}\n >\n <Title as={`h${headerLevel}`}>{title}</Title>\n {hasActions && (\n <Grid cols={cols} justifySelf=\"end\">\n {actionsRight}\n </Grid>\n )}\n </CategoryBox>\n {children}\n </Grid>\n );\n};\n\nconst props = {\n /**\n * Category Box title\n */\n title: PropTypes.string.isRequired.description('Category Box title'),\n /**\n * Toggle border top of category box\n */\n borderTop: PropTypes.bool.description('Toggle border top of category box'),\n /**\n * Array of button icons\n */\n actionsRight: PropTypes.arrayOf(PropTypes.element).description('Array of button icons'),\n /**\n * semantic level of header tag for the title\n */\n headerLevel: PropTypes.oneOf([1, 2, 3, 4, 5, 6]).description('semantic level of header tag for the title'),\n /**\n * In-box children\n */\n children: PropTypes.element.description('In-box children'),\n};\n\nDSCategoryBox.propTypes = props;\nDSCategoryBox.displayName = 'DSCategoryBox';\nconst DSCategoryBoxWithSchema = describe(DSCategoryBox);\nDSCategoryBoxWithSchema.propTypes = props;\n\nexport { DSCategoryBox, DSCategoryBoxWithSchema };\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA,WAGV,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,IAE7C,SAAS;AAAA,iBACI,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,cAAc,OAAO,MAAM,CAAC,CAAC;AAAA,gBACnB,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA,gBACtC,CAAC,WAAW,OAAM,eAAe,aAAa,OAAM,MAAM,OAAO,QAAQ,WAAW;AAAA;AAGpG,MAAM,gBAAgB,CAAC,EAAE,YAAY,MAAM,eAAe,CAAC,GAAG,OAAO,cAAc,GAAG,eAAe;AACnG,QAAM,OAAO,CAAC,MAAM;AACpB,QAAM,aAAa,aAAa,SAAS;AACzC,MAAI;AAAY,SAAK,KAAK,MAAM;AAEhC,QAAM,OAAO,OAAM,QAAQ,MAAM,MAAM,aAAa,QAAQ,MAAM,MAAM,GAAG,CAAC,aAAa,MAAM,CAAC;AAEhG,SACE,qCAAC;AAAA,IAAK,MAAM,CAAC,QAAQ,MAAM;AAAA,KACzB,qCAAC;AAAA,IACC,MAAM;AAAA,IACN,cAAc;AAAA,IACd,YAAW;AAAA,IACX,IAAG;AAAA,IACH,IAAI,aAAa,SAAS,IAAI,QAAQ;AAAA,KAEtC,qCAAC;AAAA,IAAM,IAAI,IAAI;AAAA,KAAgB,KAAM,GACpC,cACC,qCAAC;AAAA,IAAK;AAAA,IAAY,aAAY;AAAA,KAC3B,YACH,CAEJ,GACC,QACH;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,OAAO,UAAU,OAAO,WAAW,YAAY,oBAAoB;AAAA,EAInE,WAAW,UAAU,KAAK,YAAY,mCAAmC;AAAA,EAIzE,cAAc,UAAU,QAAQ,UAAU,OAAO,EAAE,YAAY,uBAAuB;AAAA,EAItF,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,4CAA4C;AAAA,EAIzG,UAAU,UAAU,QAAQ,YAAY,iBAAiB;AAC3D;AAEA,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,MAAM,0BAA0B,SAAS,aAAa;AACtD,wBAAwB,YAAY;",
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA,WAGV,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,IAE7C,SAAS;AAAA,iBACI,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,cAAc,OAAO,MAAM,CAAC,CAAC;AAAA,gBACnB,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA,gBACtC,CAAC,WAAW,OAAM,eAAe,aAAa,OAAM,MAAM,OAAO,QAAQ,WAAW;AAAA;AAGpG,MAAM,gBAAgB,CAAC,EAAE,YAAY,MAAM,eAAe,CAAC,GAAG,OAAO,cAAc,GAAG,eAAe;AACnG,QAAM,OAAO,CAAC,MAAM;AACpB,QAAM,aAAa,aAAa,SAAS;AACzC,MAAI;AAAY,SAAK,KAAK,MAAM;AAEhC,QAAM,OAAO,OAAM,QAAQ,MAAM,MAAM,aAAa,QAAQ,MAAM,MAAM,GAAG,CAAC,aAAa,MAAM,CAAC;AAEhG,SACE,qCAAC;AAAA,IAAK,MAAM,CAAC,QAAQ,MAAM;AAAA,KACzB,qCAAC;AAAA,IACC,MAAM;AAAA,IACN,cAAc;AAAA,IACd,YAAW;AAAA,IACX,IAAG;AAAA,IACH,IAAI,aAAa,SAAS,IAAI,QAAQ;AAAA,KAEtC,qCAAC;AAAA,IAAM,IAAI,IAAI;AAAA,KAAgB,KAAM,GACpC,cACC,qCAAC;AAAA,IAAK;AAAA,IAAY,aAAY;AAAA,KAC3B,YACH,CAEJ,GACC,QACH;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,OAAO,UAAU,OAAO,WAAW,YAAY,oBAAoB;AAAA,EAInE,WAAW,UAAU,KAAK,YAAY,mCAAmC;AAAA,EAIzE,cAAc,UAAU,QAAQ,UAAU,OAAO,EAAE,YAAY,uBAAuB;AAAA,EAItF,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,4CAA4C;AAAA,EAIzG,UAAU,UAAU,QAAQ,YAAY,iBAAiB;AAC3D;AAEA,cAAc,YAAY;AAC1B,cAAc,cAAc;AAC5B,MAAM,0BAA0B,SAAS,aAAa;AACtD,wBAAwB,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { DSCategoryBox, DSCategoryBoxWithSchema } from "./CategoryBox";
4
3
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/CategoryBox/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSCategoryBox, DSCategoryBoxWithSchema } from './CategoryBox';\n"],
5
- "mappings": ";AAAA;ACAA;",
5
+ "mappings": "AAAA;ACAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  import { PropTypes, describe } from "@elliemae/ds-utilities";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/CollectionBox/CollectionBox.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable complexity */\nimport React from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { truncate } from '@elliemae/ds-system';\n\nconst CollectionBox = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['700']};\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n border-top: 1px solid ${(props) => props.theme.colors.neutral['100']};\n`;\n\nconst Footer = styled(Grid)`\n border-top: 1px dashed ${(props) => props.theme.colors.neutral['100']};\n`;\n\nconst Body = styled(Grid)`\n min-height: 92px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n`;\n\nconst Header = styled.h3`\n line-height: unset;\n font-size: inherit;\n font-weight: inherit;\n margin: 0;\n ${truncate()}\n}\n`;\n\nconst ActionWrap = styled(Grid)`\n & .em-ds-button {\n padding: 0;\n min-width: unset;\n }\n`;\n\nconst DSCollectionBox = ({ body, title, headerAction, footerAction, headerLevel = 3 }) => {\n const headerCols = [];\n const footerCols = [];\n const rows = [];\n if (headerAction || title) rows.push('40px');\n rows.push('auto');\n if (footerAction) rows.push('40px');\n\n if (headerAction) headerCols.push('auto');\n if (title) headerCols.push('auto');\n\n if (footerAction) footerCols.push('auto');\n\n return (\n <CollectionBox rows={rows}>\n <Grid alignItems=\"center\" cols={headerCols}>\n {title && <Header as={`h${headerLevel}`}>{title}</Header>}\n {headerAction && <ActionWrap justifySelf=\"end\">{headerAction}</ActionWrap>}\n </Grid>\n <Body>{body}</Body>\n {footerAction && (\n <Footer alignItems=\"center\" cols={footerCols}>\n <ActionWrap justifySelf=\"end\">{footerAction}</ActionWrap>\n </Footer>\n )}\n </CollectionBox>\n );\n};\n\nconst props = {\n /**\n * body inside collection box\n */\n body: PropTypes.element.isRequired.description('body inside collection box'),\n /**\n * Collection box header\n */\n title: PropTypes.string.description('Collection box header'),\n /**\n * Collection box header action, expects a button with size s\n */\n headerAction: PropTypes.element.description('Collection box header action, expects a button with size s'),\n /**\n * Collection box footer action, expects a button with size s\n */\n footerAction: PropTypes.element.description('Collection box footer action, expects a button with size s'),\n /**\n * Semantic header tag used for the header title\n */\n headerLevel: PropTypes.oneOf([1, 2, 3, 4, 5, 6]).description('Semantic header tag used for the header title'),\n};\n\nDSCollectionBox.propTypes = props;\nDSCollectionBox.displayName = 'DSCollectionBox';\nconst DSCollectionBoxWithSchema = describe(DSCollectionBox);\nDSCollectionBoxWithSchema.propTypes = props;\n\nexport { DSCollectionBox, DSCollectionBoxWithSchema };\n"],
5
- "mappings": ";AAAA;ACCA;AACA;AACA;AACA;AACA;AAEA,MAAM,gBAAgB,OAAO,IAAI;AAAA,gBACjB,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,WAE3C,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA,iBAChC,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA,0BAC1B,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAGhE,MAAM,SAAS,OAAO,IAAI;AAAA,2BACC,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAGjE,MAAM,OAAO,OAAO,IAAI;AAAA;AAAA,iBAEP,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKlB,SAAS;AAAA;AAAA;AAIb,MAAM,aAAa,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9B,MAAM,kBAAkB,CAAC,EAAE,MAAM,OAAO,cAAc,cAAc,cAAc,QAAQ;AACxF,QAAM,aAAa,CAAC;AACpB,QAAM,aAAa,CAAC;AACpB,QAAM,OAAO,CAAC;AACd,MAAI,gBAAgB;AAAO,SAAK,KAAK,MAAM;AAC3C,OAAK,KAAK,MAAM;AAChB,MAAI;AAAc,SAAK,KAAK,MAAM;AAElC,MAAI;AAAc,eAAW,KAAK,MAAM;AACxC,MAAI;AAAO,eAAW,KAAK,MAAM;AAEjC,MAAI;AAAc,eAAW,KAAK,MAAM;AAExC,SACE,qCAAC;AAAA,IAAc;AAAA,KACb,qCAAC;AAAA,IAAK,YAAW;AAAA,IAAS,MAAM;AAAA,KAC7B,SAAS,qCAAC;AAAA,IAAO,IAAI,IAAI;AAAA,KAAgB,KAAM,GAC/C,gBAAgB,qCAAC;AAAA,IAAW,aAAY;AAAA,KAAO,YAAa,CAC/D,GACA,qCAAC,YAAM,IAAK,GACX,gBACC,qCAAC;AAAA,IAAO,YAAW;AAAA,IAAS,MAAM;AAAA,KAChC,qCAAC;AAAA,IAAW,aAAY;AAAA,KAAO,YAAa,CAC9C,CAEJ;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,MAAM,UAAU,QAAQ,WAAW,YAAY,4BAA4B;AAAA,EAI3E,OAAO,UAAU,OAAO,YAAY,uBAAuB;AAAA,EAI3D,cAAc,UAAU,QAAQ,YAAY,4DAA4D;AAAA,EAIxG,cAAc,UAAU,QAAQ,YAAY,4DAA4D;AAAA,EAIxG,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,+CAA+C;AAC9G;AAEA,gBAAgB,YAAY;AAC5B,gBAAgB,cAAc;AAC9B,MAAM,4BAA4B,SAAS,eAAe;AAC1D,0BAA0B,YAAY;",
5
+ "mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AAEA,MAAM,gBAAgB,OAAO,IAAI;AAAA,gBACjB,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,WAE3C,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA,iBAChC,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA,0BAC1B,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAGhE,MAAM,SAAS,OAAO,IAAI;AAAA,2BACC,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAGjE,MAAM,OAAO,OAAO,IAAI;AAAA;AAAA,iBAEP,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,SAAS,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKlB,SAAS;AAAA;AAAA;AAIb,MAAM,aAAa,OAAO,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9B,MAAM,kBAAkB,CAAC,EAAE,MAAM,OAAO,cAAc,cAAc,cAAc,QAAQ;AACxF,QAAM,aAAa,CAAC;AACpB,QAAM,aAAa,CAAC;AACpB,QAAM,OAAO,CAAC;AACd,MAAI,gBAAgB;AAAO,SAAK,KAAK,MAAM;AAC3C,OAAK,KAAK,MAAM;AAChB,MAAI;AAAc,SAAK,KAAK,MAAM;AAElC,MAAI;AAAc,eAAW,KAAK,MAAM;AACxC,MAAI;AAAO,eAAW,KAAK,MAAM;AAEjC,MAAI;AAAc,eAAW,KAAK,MAAM;AAExC,SACE,qCAAC;AAAA,IAAc;AAAA,KACb,qCAAC;AAAA,IAAK,YAAW;AAAA,IAAS,MAAM;AAAA,KAC7B,SAAS,qCAAC;AAAA,IAAO,IAAI,IAAI;AAAA,KAAgB,KAAM,GAC/C,gBAAgB,qCAAC;AAAA,IAAW,aAAY;AAAA,KAAO,YAAa,CAC/D,GACA,qCAAC,YAAM,IAAK,GACX,gBACC,qCAAC;AAAA,IAAO,YAAW;AAAA,IAAS,MAAM;AAAA,KAChC,qCAAC;AAAA,IAAW,aAAY;AAAA,KAAO,YAAa,CAC9C,CAEJ;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,MAAM,UAAU,QAAQ,WAAW,YAAY,4BAA4B;AAAA,EAI3E,OAAO,UAAU,OAAO,YAAY,uBAAuB;AAAA,EAI3D,cAAc,UAAU,QAAQ,YAAY,4DAA4D;AAAA,EAIxG,cAAc,UAAU,QAAQ,YAAY,4DAA4D;AAAA,EAIxG,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,+CAA+C;AAC9G;AAEA,gBAAgB,YAAY;AAC5B,gBAAgB,cAAc;AAC9B,MAAM,4BAA4B,SAAS,eAAe;AAC1D,0BAA0B,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { DSCollectionBox, DSCollectionBoxWithSchema } from "./CollectionBox";
4
3
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/CollectionBox/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSCollectionBox, DSCollectionBoxWithSchema } from './CollectionBox';\n"],
5
- "mappings": ";AAAA;ACAA;",
5
+ "mappings": "AAAA;ACAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  import PropTypes from "prop-types";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FullPageContainer/FullPageContainer.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@elliemae/ds-grid';\nimport { useMobileHeight } from './useMobileHeight';\n\nconst DSFullPageContainer = ({ children, ...props }) => {\n const height = useMobileHeight();\n return (\n <Grid height={height} width=\"100%\" {...props}>\n {children}\n </Grid>\n );\n};\n\nDSFullPageContainer.propTypes = {\n children: PropTypes.any,\n};\n\nexport { DSFullPageContainer };\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AACA;AACA;AAEA,MAAM,sBAAsB,CAAC,EAAE,aAAa,YAAY;AACtD,QAAM,SAAS,gBAAgB;AAC/B,SACE,qCAAC;AAAA,IAAK;AAAA,IAAgB,OAAM;AAAA,IAAQ,GAAG;AAAA,KACpC,QACH;AAEJ;AAEA,oBAAoB,YAAY;AAAA,EAC9B,UAAU,UAAU;AACtB;",
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AAEA,MAAM,sBAAsB,CAAC,EAAE,aAAa,YAAY;AACtD,QAAM,SAAS,gBAAgB;AAC/B,SACE,qCAAC;AAAA,IAAK;AAAA,IAAgB,OAAM;AAAA,IAAQ,GAAG;AAAA,KACpC,QACH;AAEJ;AAEA,oBAAoB,YAAY;AAAA,EAC9B,UAAU,UAAU;AACtB;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  import PropTypes from "prop-types";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FullPageContainer/FullPageContainerScroll.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Grid } from '@elliemae/ds-grid';\n\nconst DSFullPageContainerScroll = ({ style = {}, children, ...props }) => (\n <Grid maxHeight=\"100%\" style={{ overflow: 'auto', ...style }} {...props}>\n {children}\n </Grid>\n);\n\nDSFullPageContainerScroll.propTypes = {\n children: PropTypes.any,\n style: PropTypes.object,\n};\n\nexport { DSFullPageContainerScroll };\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AACA;AAEA,MAAM,4BAA4B,CAAC,EAAE,QAAQ,CAAC,GAAG,aAAa,YAC5D,qCAAC;AAAA,EAAK,WAAU;AAAA,EAAO,OAAO,EAAE,UAAU,QAAQ,GAAG,MAAM;AAAA,EAAI,GAAG;AAAA,GAC/D,QACH;AAGF,0BAA0B,YAAY;AAAA,EACpC,UAAU,UAAU;AAAA,EACpB,OAAO,UAAU;AACnB;",
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AAEA,MAAM,4BAA4B,CAAC,EAAE,QAAQ,CAAC,GAAG,aAAa,YAC5D,qCAAC;AAAA,EAAK,WAAU;AAAA,EAAO,OAAO,EAAE,UAAU,QAAQ,GAAG,MAAM;AAAA,EAAI,GAAG;AAAA,GAC/D,QACH;AAGF,0BAA0B,YAAY;AAAA,EACpC,UAAU,UAAU;AAAA,EACpB,OAAO,UAAU;AACnB;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { DSFullPageContainer } from "./FullPageContainer";
4
3
  import { DSFullPageContainerScroll } from "./FullPageContainerScroll";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FullPageContainer/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSFullPageContainer } from './FullPageContainer';\nexport { DSFullPageContainerScroll } from './FullPageContainerScroll';\n"],
5
- "mappings": ";AAAA;ACAA;AACA;",
5
+ "mappings": "AAAA;ACAA;AACA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { useEffect, useState } from "react";
4
3
  function useMobileHeight() {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/FullPageContainer/useMobileHeight.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useState } from 'react';\n\nexport function useMobileHeight() {\n const [height, setHeight] = useState(window.innerHeight);\n const handleHeight = () => {\n setHeight(window.innerHeight);\n };\n\n useEffect(() => {\n window.addEventListener('resize', handleHeight);\n\n // Remove event listener on cleanup\n return () => window.removeEventListener('resize', handleHeight);\n }, []); // Empty array ensures that effect is only run on mount\n\n return height;\n}\n"],
5
- "mappings": ";AAAA;ACAA;AAEO,2BAA2B;AAChC,QAAM,CAAC,QAAQ,aAAa,SAAS,OAAO,WAAW;AACvD,QAAM,eAAe,MAAM;AACzB,cAAU,OAAO,WAAW;AAAA,EAC9B;AAEA,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,YAAY;AAG9C,WAAO,MAAM,OAAO,oBAAoB,UAAU,YAAY;AAAA,EAChE,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;",
5
+ "mappings": "AAAA;ACAA;AAEO,2BAA2B;AAChC,QAAM,CAAC,QAAQ,aAAa,SAAS,OAAO,WAAW;AACvD,QAAM,eAAe,MAAM;AACzB,cAAU,OAAO,WAAW;AAAA,EAC9B;AAEA,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,YAAY;AAG9C,WAAO,MAAM,OAAO,oBAAoB,UAAU,YAAY;AAAA,EAChE,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2, { useState, useCallback } from "react";
4
3
  import { Search } from "@elliemae/ds-icons";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/GlobalHeader/MobileGlobalHeader.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/jsx-no-bind */\n/* eslint-disable import/no-unresolved */\n/* eslint-disable max-lines */\nimport React, { useState, useCallback } from 'react';\nimport { Search } from '@elliemae/ds-icons';\nimport { DSInput } from '@elliemae/ds-form';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport DSButton from '@elliemae/ds-button';\nimport { DSIconSizes, DSIconColors } from '@elliemae/ds-icon';\nimport { debounce, noop } from 'lodash';\nimport { Grid } from '@elliemae/ds-grid';\nimport Logo from '../Icons/EM_logo';\nimport { Container, Label, SearchWrapper, Icon, RightSection, MainSection } from './styles';\nimport { DSSideNav } from '../SideNav';\n\nconst DSGlobalHeader = ({\n containerProps = {},\n title,\n lastIcon,\n onSearchChange = noop,\n topMenuItems,\n bottomMenuItems,\n}) => {\n const [searchBarVisible, setSearchBarVisible] = useState(false);\n const [searchValue, setSearchValue] = useState();\n const [showMenu, setShowMenu] = useState(false);\n const searchClicked = () => {\n setSearchBarVisible(true);\n };\n\n const onSearchChangeDebounced = useCallback(debounce(onSearchChange, 250), []);\n const searchValueChanged = (e) => {\n const val = e.target.value;\n onSearchChangeDebounced(val);\n setSearchValue(val);\n };\n\n const searchCloseClicked = () => {\n setSearchBarVisible(false);\n };\n\n const menuToggle = (flag) => {\n setShowMenu(flag);\n };\n\n return (\n <>\n <Container data-testid={containerProps['data-testid'] || 'global-header-wrapper'} {...containerProps}>\n {!searchBarVisible ? (\n <>\n <MainSection>\n <Icon onClick={menuToggle.bind(null, true)}>{Logo()}</Icon>\n <Label>{title}</Label>\n <span></span>\n <RightSection>\n <Grid cols={lastIcon ? [1 / 2, 1 / 2] : [1]} gutter=\"xs\">\n <Grid>\n <Search\n data-testid=\"mobile-global-header-search\"\n size={DSIconSizes.M}\n color={DSIconColors.WHITE}\n onClick={searchClicked}\n />\n </Grid>\n {lastIcon && <Grid>{lastIcon}</Grid>}\n </Grid>\n </RightSection>\n </MainSection>\n </>\n ) : (\n <SearchWrapper>\n <DSInput\n clearable\n className=\"dsInput\"\n placeholder=\"Search here\"\n onChange={searchValueChanged}\n rightComponent={\n <DSButton\n buttonType=\"primary\"\n className=\"dsButton\"\n icon={<Search size={DSIconSizes.M} color={DSIconColors.WHITE} onClick={searchCloseClicked} />}\n />\n }\n value={searchValue}\n variant=\"variant-active\"\n />\n </SearchWrapper>\n )}\n </Container>\n {showMenu ? (\n <DSSideNav\n title={title}\n menuItems={topMenuItems}\n bottomMenuItems={bottomMenuItems}\n onClose={menuToggle.bind(null, false)}\n ></DSSideNav>\n ) : null}\n </>\n );\n};\n\nconst menuProps = PropTypes.arrayOf(\n PropTypes.shape({\n icon: PropTypes.element,\n text: PropTypes.string,\n }),\n).description('menu item array');\n\nconst props = {\n /** props to inject to wrapper */\n containerProps: PropTypes.object.description('props to inject to wrapper'),\n /**\n * Heading Title\n */\n title: PropTypes.string.isRequired.description('Heading Title'),\n /**\n * Dimsum icon Element\n */\n lastIcon: PropTypes.element.description('Dimsum icon Element'),\n /**\n * Callback function for search change\n */\n onSearchChange: PropTypes.func.description('Callback function for search change'),\n /**\n * Top Menu items array\n */\n topMenuItems: menuProps,\n /**\n * Bottom Menu items array\n */\n bottomMenuItems: menuProps,\n};\n\nDSGlobalHeader.propTypes = props;\nDSGlobalHeader.displayName = 'DSGlobalHeader';\nconst DSGlobalHeaderWithSchema = describe(DSGlobalHeader);\nDSGlobalHeaderWithSchema.propTypes = props;\n\nexport { DSGlobalHeader, DSGlobalHeaderWithSchema };\n"],
5
- "mappings": ";AAAA;ACGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,MACI;AACJ,QAAM,CAAC,kBAAkB,uBAAuB,SAAS,KAAK;AAC9D,QAAM,CAAC,aAAa,kBAAkB,SAAS;AAC/C,QAAM,CAAC,UAAU,eAAe,SAAS,KAAK;AAC9C,QAAM,gBAAgB,MAAM;AAC1B,wBAAoB,IAAI;AAAA,EAC1B;AAEA,QAAM,0BAA0B,YAAY,SAAS,gBAAgB,GAAG,GAAG,CAAC,CAAC;AAC7E,QAAM,qBAAqB,CAAC,MAAM;AAChC,UAAM,MAAM,EAAE,OAAO;AACrB,4BAAwB,GAAG;AAC3B,mBAAe,GAAG;AAAA,EACpB;AAEA,QAAM,qBAAqB,MAAM;AAC/B,wBAAoB,KAAK;AAAA,EAC3B;AAEA,QAAM,aAAa,CAAC,SAAS;AAC3B,gBAAY,IAAI;AAAA,EAClB;AAEA,SACE,4DACE,qCAAC;AAAA,IAAU,eAAa,eAAe,kBAAkB;AAAA,IAA0B,GAAG;AAAA,KACnF,CAAC,mBACA,4DACE,qCAAC,mBACC,qCAAC;AAAA,IAAK,SAAS,WAAW,KAAK,MAAM,IAAI;AAAA,KAAI,KAAK,CAAE,GACpD,qCAAC,aAAO,KAAM,GACd,qCAAC,YAAK,GACN,qCAAC,oBACC,qCAAC;AAAA,IAAK,MAAM,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,IAAG,QAAO;AAAA,KAClD,qCAAC,YACC,qCAAC;AAAA,IACC,eAAY;AAAA,IACZ,MAAM,YAAY;AAAA,IAClB,OAAO,aAAa;AAAA,IACpB,SAAS;AAAA,GACX,CACF,GACC,YAAY,qCAAC,YAAM,QAAS,CAC/B,CACF,CACF,CACF,IAEA,qCAAC,qBACC,qCAAC;AAAA,IACC,WAAS;AAAA,IACT,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,UAAU;AAAA,IACV,gBACE,qCAAC;AAAA,MACC,YAAW;AAAA,MACX,WAAU;AAAA,MACV,MAAM,qCAAC;AAAA,QAAO,MAAM,YAAY;AAAA,QAAG,OAAO,aAAa;AAAA,QAAO,SAAS;AAAA,OAAoB;AAAA,KAC7F;AAAA,IAEF,OAAO;AAAA,IACP,SAAQ;AAAA,GACV,CACF,CAEJ,GACC,WACC,qCAAC;AAAA,IACC;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,SAAS,WAAW,KAAK,MAAM,KAAK;AAAA,GACrC,IACC,IACN;AAEJ;AAEA,MAAM,YAAY,UAAU,QAC1B,UAAU,MAAM;AAAA,EACd,MAAM,UAAU;AAAA,EAChB,MAAM,UAAU;AAClB,CAAC,CACH,EAAE,YAAY,iBAAiB;AAE/B,MAAM,QAAQ;AAAA,EAEZ,gBAAgB,UAAU,OAAO,YAAY,4BAA4B;AAAA,EAIzE,OAAO,UAAU,OAAO,WAAW,YAAY,eAAe;AAAA,EAI9D,UAAU,UAAU,QAAQ,YAAY,qBAAqB;AAAA,EAI7D,gBAAgB,UAAU,KAAK,YAAY,qCAAqC;AAAA,EAIhF,cAAc;AAAA,EAId,iBAAiB;AACnB;AAEA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,MAAM,2BAA2B,SAAS,cAAc;AACxD,yBAAyB,YAAY;",
5
+ "mappings": "AAAA;ACGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,iBAAiB,CAAC;AAAA,EACtB,iBAAiB,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,MACI;AACJ,QAAM,CAAC,kBAAkB,uBAAuB,SAAS,KAAK;AAC9D,QAAM,CAAC,aAAa,kBAAkB,SAAS;AAC/C,QAAM,CAAC,UAAU,eAAe,SAAS,KAAK;AAC9C,QAAM,gBAAgB,MAAM;AAC1B,wBAAoB,IAAI;AAAA,EAC1B;AAEA,QAAM,0BAA0B,YAAY,SAAS,gBAAgB,GAAG,GAAG,CAAC,CAAC;AAC7E,QAAM,qBAAqB,CAAC,MAAM;AAChC,UAAM,MAAM,EAAE,OAAO;AACrB,4BAAwB,GAAG;AAC3B,mBAAe,GAAG;AAAA,EACpB;AAEA,QAAM,qBAAqB,MAAM;AAC/B,wBAAoB,KAAK;AAAA,EAC3B;AAEA,QAAM,aAAa,CAAC,SAAS;AAC3B,gBAAY,IAAI;AAAA,EAClB;AAEA,SACE,4DACE,qCAAC;AAAA,IAAU,eAAa,eAAe,kBAAkB;AAAA,IAA0B,GAAG;AAAA,KACnF,CAAC,mBACA,4DACE,qCAAC,mBACC,qCAAC;AAAA,IAAK,SAAS,WAAW,KAAK,MAAM,IAAI;AAAA,KAAI,KAAK,CAAE,GACpD,qCAAC,aAAO,KAAM,GACd,qCAAC,YAAK,GACN,qCAAC,oBACC,qCAAC;AAAA,IAAK,MAAM,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;AAAA,IAAG,QAAO;AAAA,KAClD,qCAAC,YACC,qCAAC;AAAA,IACC,eAAY;AAAA,IACZ,MAAM,YAAY;AAAA,IAClB,OAAO,aAAa;AAAA,IACpB,SAAS;AAAA,GACX,CACF,GACC,YAAY,qCAAC,YAAM,QAAS,CAC/B,CACF,CACF,CACF,IAEA,qCAAC,qBACC,qCAAC;AAAA,IACC,WAAS;AAAA,IACT,WAAU;AAAA,IACV,aAAY;AAAA,IACZ,UAAU;AAAA,IACV,gBACE,qCAAC;AAAA,MACC,YAAW;AAAA,MACX,WAAU;AAAA,MACV,MAAM,qCAAC;AAAA,QAAO,MAAM,YAAY;AAAA,QAAG,OAAO,aAAa;AAAA,QAAO,SAAS;AAAA,OAAoB;AAAA,KAC7F;AAAA,IAEF,OAAO;AAAA,IACP,SAAQ;AAAA,GACV,CACF,CAEJ,GACC,WACC,qCAAC;AAAA,IACC;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,SAAS,WAAW,KAAK,MAAM,KAAK;AAAA,GACrC,IACC,IACN;AAEJ;AAEA,MAAM,YAAY,UAAU,QAC1B,UAAU,MAAM;AAAA,EACd,MAAM,UAAU;AAAA,EAChB,MAAM,UAAU;AAClB,CAAC,CACH,EAAE,YAAY,iBAAiB;AAE/B,MAAM,QAAQ;AAAA,EAEZ,gBAAgB,UAAU,OAAO,YAAY,4BAA4B;AAAA,EAIzE,OAAO,UAAU,OAAO,WAAW,YAAY,eAAe;AAAA,EAI9D,UAAU,UAAU,QAAQ,YAAY,qBAAqB;AAAA,EAI7D,gBAAgB,UAAU,KAAK,YAAY,qCAAqC;AAAA,EAIhF,cAAc;AAAA,EAId,iBAAiB;AACnB;AAEA,eAAe,YAAY;AAC3B,eAAe,cAAc;AAC7B,MAAM,2BAA2B,SAAS,cAAc;AACxD,yBAAyB,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { DSGlobalHeader, DSGlobalHeaderWithSchema } from "./MobileGlobalHeader";
4
3
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/GlobalHeader/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSGlobalHeader, DSGlobalHeaderWithSchema } from './MobileGlobalHeader';\n"],
5
- "mappings": ";AAAA;ACAA;",
5
+ "mappings": "AAAA;ACAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { styled } from "@elliemae/ds-system";
4
3
  import { kfrm, css } from "@elliemae/ds-system";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/GlobalHeader/styles.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { styled } from '@elliemae/ds-system';\nimport { kfrm, css } from '@elliemae/ds-system';\n\nexport const Container = styled.header`\n width: auto;\n height: 48px;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 1000;\n background-color: ${(props) => props.theme.colors.brand[700]};\n padding: ${(props) => `${props.theme.space.xxs} ${props.theme.space.xs}`};\n color: ${(props) => props.theme.colors.neutral['000']};\n`;\n\nconst growLeft = kfrm`\n 0% {\n width: 0;\n }\n 100% {\n width: 100%;\n }\n`;\n\nexport const SearchWrapper = styled.div`\n background-color: ${(props) => props.theme.colors.brand[600]};\n ${css`\n animation: ${growLeft} 1s;\n `}\n float: right;\n width: 100%;\n border-radius: 4px;\n .dsInput {\n input {\n border-radius: 2px 0 0 2px;\n color: ${(props) => props.theme.colors.neutral['000']};\n border: calc(0.30769rem * 0.25) solid ${(props) => props.theme.colors.brand[800]} !important;\n &:focus {\n border-right: none !important;\n }\n &::placeholder {\n color: ${(props) => props.theme.colors.neutral['000']};\n }\n }\n .em-ds-input__clearable {\n border: calc(0.30769rem * 0.25) solid ${(props) => props.theme.colors.brand[800]} !important;\n }\n }\n\n .dsButton {\n border-color: ${(props) => props.theme.colors.brand[800]} !important;\n border-radius: 0 2px 2px 0;\n border-left: none;\n }\n svg,\n svg:not([fill]) {\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nexport const Icon = styled.div`\n margin-right: ${(props) => props.theme.space.xs};\n`;\n\nexport const Label = styled.div`\n font-family: ${(props) => props.theme.fonts.default};\n font-weight: ${(props) => props.theme.fontWeights.regular};\n font-size: 25px;\n line-height: 32px;\n`;\n\nexport const RightSection = styled.div`\n padding-top: 5px;\n`;\n\nexport const MainSection = styled.div`\n display: flex;\n flex-direction: row;\n height: 32px;\n span {\n flex-grow: 1;\n }\n`;\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AAEO,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOV,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA,aAC7C,CAAC,UAAU,GAAG,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,WAC3D,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGjD,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASV,MAAM,gBAAgB,OAAO;AAAA,sBACd,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA,IACtD;AAAA,iBACa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAQF,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,8CACP,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKjE,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,8CAIT,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,oBAK9D,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAM5C,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAI3C,MAAM,OAAO,OAAO;AAAA,kBACT,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAGxC,MAAM,QAAQ,OAAO;AAAA,iBACX,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA,iBAC7B,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA;AAAA;AAAA;AAK7C,MAAM,eAAe,OAAO;AAAA;AAAA;AAI5B,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "mappings": "AAAA;ACAA;AACA;AAEO,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAOV,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA,aAC7C,CAAC,UAAU,GAAG,MAAM,MAAM,MAAM,OAAO,MAAM,MAAM,MAAM;AAAA,WAC3D,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAGjD,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASV,MAAM,gBAAgB,OAAO;AAAA,sBACd,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA,IACtD;AAAA,iBACa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAQF,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,8CACP,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,iBAKjE,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,8CAIT,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,oBAK9D,CAAC,UAAU,MAAM,MAAM,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAM5C,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAI3C,MAAM,OAAO,OAAO;AAAA,kBACT,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA;AAGxC,MAAM,QAAQ,OAAO;AAAA,iBACX,CAAC,UAAU,MAAM,MAAM,MAAM;AAAA,iBAC7B,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA;AAAA;AAAA;AAK7C,MAAM,eAAe,OAAO;AAAA;AAAA;AAI5B,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  import { PropTypes, describe } from "@elliemae/ds-utilities";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/GroupBox/GroupBox.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { times } from 'lodash';\nimport { truncate } from '@elliemae/ds-system';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\n\nconst Title = styled.h3`\n font-size: 14px;\n margin: 0;\n ${truncate()}\n color: ${(props) => props.theme.colors.neutral['700']};\n line-height: inherit;\n text-transform: capitalize;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n`;\n\nconst GroupBox = styled(Grid)`\n background: ${(props) =>\n props.background === 'grey' ? props.theme.colors.neutral['050'] : props.theme.colors.neutral['000']};\n\n border-top: ${(props) => (props.borderTop ? `1px solid ${props.theme.colors.neutral['100']}` : 'none')};\n`;\n\nconst DSGroupBox = ({ children, title, background = 'grey', headerLevel = 3, actionsRight = [], borderTop }) => {\n const rows = ['auto'];\n const hasActions = actionsRight.length > 0;\n if (hasActions) rows.push('auto');\n return (\n <Grid rows={['32px', 'auto']}>\n <GroupBox\n background={background}\n cols={rows}\n borderTop={borderTop}\n alignItems=\"center\"\n pl=\"xs\"\n pr={hasActions ? 'xxs' : 'xs'}\n >\n <Title as={`h${headerLevel}`}>{title}</Title>\n {hasActions && (\n <Grid cols={times(actionsRight.length, () => 'auto')} justifySelf=\"end\">\n {actionsRight}\n </Grid>\n )}\n </GroupBox>\n {children}\n </Grid>\n );\n};\n\nconst props = {\n /**\n * In-box children\n */\n children: PropTypes.element.description('In-box children'),\n /**\n * Title background\n */\n background: PropTypes.oneOf(['white', 'grey']).description('Title background'),\n /**\n * Toggle border top of group box\n */\n borderTop: PropTypes.bool.description('Toggle border top of group box'),\n /**\n * Group Box title\n */\n title: PropTypes.string.isRequired.description('Group Box title'),\n /**\n * semantic level of header tag for the title\n */\n headerLevel: PropTypes.oneOf([1, 2, 3, 4, 5, 6]).description('semantic level of header tag for the title'),\n /**\n * Array of button icons\n */\n actionsRight: PropTypes.arrayOf(PropTypes.element).description('Array of button icons'),\n};\n\nDSGroupBox.propTypes = props;\nDSGroupBox.displayName = 'DSGroupBox';\nconst DSGroupBoxWithSchema = describe(DSGroupBox);\nDSGroupBoxWithSchema.propTypes = props;\n\nexport { DSGroupBox, DSGroupBoxWithSchema };\n"],
5
- "mappings": ";AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA,IAGjB,SAAS;AAAA,WACF,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,iBAGhC,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,WAAW,OAAO,IAAI;AAAA,gBACZ,CAAC,WACb,OAAM,eAAe,SAAS,OAAM,MAAM,OAAO,QAAQ,SAAS,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAEjF,CAAC,WAAW,OAAM,YAAY,aAAa,OAAM,MAAM,OAAO,QAAQ,WAAW;AAAA;AAGjG,MAAM,aAAa,CAAC,EAAE,UAAU,OAAO,aAAa,QAAQ,cAAc,GAAG,eAAe,CAAC,GAAG,gBAAgB;AAC9G,QAAM,OAAO,CAAC,MAAM;AACpB,QAAM,aAAa,aAAa,SAAS;AACzC,MAAI;AAAY,SAAK,KAAK,MAAM;AAChC,SACE,qCAAC;AAAA,IAAK,MAAM,CAAC,QAAQ,MAAM;AAAA,KACzB,qCAAC;AAAA,IACC;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA,YAAW;AAAA,IACX,IAAG;AAAA,IACH,IAAI,aAAa,QAAQ;AAAA,KAEzB,qCAAC;AAAA,IAAM,IAAI,IAAI;AAAA,KAAgB,KAAM,GACpC,cACC,qCAAC;AAAA,IAAK,MAAM,MAAM,aAAa,QAAQ,MAAM,MAAM;AAAA,IAAG,aAAY;AAAA,KAC/D,YACH,CAEJ,GACC,QACH;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,UAAU,UAAU,QAAQ,YAAY,iBAAiB;AAAA,EAIzD,YAAY,UAAU,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,YAAY,kBAAkB;AAAA,EAI7E,WAAW,UAAU,KAAK,YAAY,gCAAgC;AAAA,EAItE,OAAO,UAAU,OAAO,WAAW,YAAY,iBAAiB;AAAA,EAIhE,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,4CAA4C;AAAA,EAIzG,cAAc,UAAU,QAAQ,UAAU,OAAO,EAAE,YAAY,uBAAuB;AACxF;AAEA,WAAW,YAAY;AACvB,WAAW,cAAc;AACzB,MAAM,uBAAuB,SAAS,UAAU;AAChD,qBAAqB,YAAY;",
5
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA,IAGjB,SAAS;AAAA,WACF,CAAC,WAAU,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,iBAGhC,CAAC,WAAU,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,WAAW,OAAO,IAAI;AAAA,gBACZ,CAAC,WACb,OAAM,eAAe,SAAS,OAAM,MAAM,OAAO,QAAQ,SAAS,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA,gBAEjF,CAAC,WAAW,OAAM,YAAY,aAAa,OAAM,MAAM,OAAO,QAAQ,WAAW;AAAA;AAGjG,MAAM,aAAa,CAAC,EAAE,UAAU,OAAO,aAAa,QAAQ,cAAc,GAAG,eAAe,CAAC,GAAG,gBAAgB;AAC9G,QAAM,OAAO,CAAC,MAAM;AACpB,QAAM,aAAa,aAAa,SAAS;AACzC,MAAI;AAAY,SAAK,KAAK,MAAM;AAChC,SACE,qCAAC;AAAA,IAAK,MAAM,CAAC,QAAQ,MAAM;AAAA,KACzB,qCAAC;AAAA,IACC;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA,YAAW;AAAA,IACX,IAAG;AAAA,IACH,IAAI,aAAa,QAAQ;AAAA,KAEzB,qCAAC;AAAA,IAAM,IAAI,IAAI;AAAA,KAAgB,KAAM,GACpC,cACC,qCAAC;AAAA,IAAK,MAAM,MAAM,aAAa,QAAQ,MAAM,MAAM;AAAA,IAAG,aAAY;AAAA,KAC/D,YACH,CAEJ,GACC,QACH;AAEJ;AAEA,MAAM,QAAQ;AAAA,EAIZ,UAAU,UAAU,QAAQ,YAAY,iBAAiB;AAAA,EAIzD,YAAY,UAAU,MAAM,CAAC,SAAS,MAAM,CAAC,EAAE,YAAY,kBAAkB;AAAA,EAI7E,WAAW,UAAU,KAAK,YAAY,gCAAgC;AAAA,EAItE,OAAO,UAAU,OAAO,WAAW,YAAY,iBAAiB;AAAA,EAIhE,aAAa,UAAU,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,EAAE,YAAY,4CAA4C;AAAA,EAIzG,cAAc,UAAU,QAAQ,UAAU,OAAO,EAAE,YAAY,uBAAuB;AACxF;AAEA,WAAW,YAAY;AACvB,WAAW,cAAc;AACzB,MAAM,uBAAuB,SAAS,UAAU;AAChD,qBAAqB,YAAY;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import { DSGroupBox, DSGroupBoxWithSchema } from "./GroupBox";
4
3
  export {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/GroupBox/index.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { DSGroupBox, DSGroupBoxWithSchema } from './GroupBox';\n"],
5
- "mappings": ";AAAA;ACAA;",
5
+ "mappings": "AAAA;ACAA;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2 from "react";
4
3
  function SvgIcon() {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Icons/EM_logo.tsx"],
4
4
  "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React from 'react';\n\nfunction SvgIcon() {\n return (\n <svg\n width=\"32px\"\n height=\"32px\"\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <title>em-logo-whitebackground</title>\n <g\n id=\"em-logo-whitebackground\"\n stroke=\"none\"\n strokeWidth=\"1\"\n fill=\"none\"\n fillRule=\"evenodd\"\n >\n <circle id=\"Oval\" fill=\"#FFFFFF\" cx=\"16\" cy=\"16\" r=\"16\"></circle>\n <image\n id=\"Encompass_ICON_COLOR\"\n width=\"32\"\n height=\"32\"\n xlinkHref=\"data:image/png;base64,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\"\n ></image>\n </g>\n </svg>\n );\n}\n\nexport default SvgIcon;\n"],
5
- "mappings": ";AAAA;ACCA;AAEA,mBAAmB;AACjB,SACE,qCAAC;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,SAAQ;AAAA,IACR,OAAM;AAAA,KAEN,qCAAC,eAAM,yBAAuB,GAC9B,qCAAC;AAAA,IACC,IAAG;AAAA,IACH,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,UAAS;AAAA,KAET,qCAAC;AAAA,IAAO,IAAG;AAAA,IAAO,MAAK;AAAA,IAAU,IAAG;AAAA,IAAK,IAAG;AAAA,IAAK,GAAE;AAAA,GAAK,GACxD,qCAAC;AAAA,IACC,IAAG;AAAA,IACH,OAAM;AAAA,IACN,QAAO;AAAA,IACP,WAAU;AAAA,GACX,CACH,CACF;AAEJ;AAEA,IAAO,kBAAQ;",
5
+ "mappings": "AAAA;ACCA;AAEA,mBAAmB;AACjB,SACE,qCAAC;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,SAAQ;AAAA,IACR,OAAM;AAAA,KAEN,qCAAC,eAAM,yBAAuB,GAC9B,qCAAC;AAAA,IACC,IAAG;AAAA,IACH,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,UAAS;AAAA,KAET,qCAAC;AAAA,IAAO,IAAG;AAAA,IAAO,MAAK;AAAA,IAAU,IAAG;AAAA,IAAK,IAAG;AAAA,IAAK,GAAE;AAAA,GAAK,GACxD,qCAAC;AAAA,IACC,IAAG;AAAA,IACH,OAAM;AAAA,IACN,QAAO;AAAA,IACP,WAAU;AAAA,GACX,CACH,CACF;AAEJ;AAEA,IAAO,kBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,35 +1,49 @@
1
- "use strict";
2
1
  import * as React from "react";
3
2
  import React2, { useEffect, useRef, useCallback, useState } from "react";
4
3
  import { PropTypes, describe } from "@elliemae/ds-utilities";
5
4
  import { Grid } from "@elliemae/ds-grid";
6
5
  import { Loader } from "./Loader";
7
- const InfiniteLoader = ({ isFetching, fetchData, children, height }) => {
6
+ const useMakeMutable = (referenceVar) => {
7
+ const mutable = useRef(referenceVar);
8
+ useEffect(() => {
9
+ mutable.current = referenceVar;
10
+ }, [referenceVar]);
11
+ return mutable;
12
+ };
13
+ function useIntersectionObserver(elementRef, { threshold = 0, root = null, rootMargin = "0%", freezeOnceVisible = false }) {
14
+ const [entry, setEntry] = useState();
15
+ const frozen = entry?.isIntersecting && freezeOnceVisible;
16
+ const updateEntry = ([newEntry]) => {
17
+ setEntry(newEntry);
18
+ };
19
+ useEffect(() => {
20
+ const node = elementRef?.current;
21
+ const hasIOSupport = !!window.IntersectionObserver;
22
+ if (!hasIOSupport || frozen || !node)
23
+ return () => {
24
+ };
25
+ const observerParams = { threshold, root, rootMargin };
26
+ const observer = new IntersectionObserver(updateEntry, observerParams);
27
+ observer.observe(node);
28
+ return () => observer.disconnect();
29
+ }, [elementRef, JSON.stringify(threshold), root, rootMargin, frozen]);
30
+ return entry;
31
+ }
32
+ const InfiniteLoader = ({ isFetching, fetchData, children, height, hasMoreItems = true }) => {
8
33
  const [viewportHeight, setViewportHeight] = useState(height);
9
34
  const baselineRef = useRef(null);
10
- const observerRef = useRef(null);
11
- const callback = useCallback((entries) => {
12
- const { isIntersecting } = entries[0];
13
- if (isIntersecting && !isFetching) {
14
- fetchData();
15
- observerRef.current?.disconnect();
16
- }
17
- }, [fetchData, isFetching]);
35
+ const entry = useIntersectionObserver(baselineRef, {
36
+ root: null,
37
+ rootMargin: "0px",
38
+ threshold: 0.1
39
+ });
40
+ const isIntersecting = !!entry?.isIntersecting;
41
+ const mutableIsFetching = useMakeMutable(isFetching);
18
42
  useEffect(() => {
19
- if (!isFetching) {
20
- observerRef.current?.disconnect();
21
- observerRef.current = new IntersectionObserver(callback, {
22
- root: null,
23
- rootMargin: "0px",
24
- threshold: 0.1
25
- });
26
- if (baselineRef.current)
27
- observerRef.current.observe(baselineRef.current);
43
+ if (hasMoreItems && isIntersecting && !mutableIsFetching.current) {
44
+ fetchData();
28
45
  }
29
- return () => {
30
- observerRef.current?.disconnect();
31
- };
32
- }, [baselineRef, observerRef, fetchData, callback, isFetching]);
46
+ }, [fetchData, isIntersecting, hasMoreItems, mutableIsFetching]);
33
47
  const handleResize = useCallback(() => {
34
48
  setViewportHeight(window.innerHeight);
35
49
  }, []);
@@ -56,6 +70,7 @@ const InfiniteLoader = ({ isFetching, fetchData, children, height }) => {
56
70
  };
57
71
  const listProps = {
58
72
  isFetching: PropTypes.bool.description("toggle loading state"),
73
+ hasMoreItems: PropTypes.bool.description("wheter or not you have more items that need to be loaded").defaultValue(true),
59
74
  fetchData: PropTypes.func.description("callback to fetch new items"),
60
75
  children: PropTypes.element.description("row items for infinite loader"),
61
76
  height: PropTypes.number.description("infinite loader list height")