@elliemae/ds-mobile 3.7.2-rc.4 → 3.8.0-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/InfiniteLoader/Infiniteloader.js +3 -10
- package/dist/cjs/InfiniteLoader/Infiniteloader.js.map +2 -2
- package/dist/cjs/MobilePageHeader/MobilePageHeader.js +1 -1
- package/dist/cjs/MobilePageHeader/MobilePageHeader.js.map +2 -2
- package/dist/cjs/Modal/Modal.js +5 -2
- package/dist/cjs/Modal/Modal.js.map +2 -2
- package/dist/esm/InfiniteLoader/Infiniteloader.js +1 -8
- package/dist/esm/InfiniteLoader/Infiniteloader.js.map +2 -2
- package/dist/esm/MobilePageHeader/MobilePageHeader.js +1 -1
- package/dist/esm/MobilePageHeader/MobilePageHeader.js.map +2 -2
- package/dist/esm/Modal/Modal.js +5 -2
- package/dist/esm/Modal/Modal.js.map +2 -2
- package/package.json +16 -16
|
@@ -34,16 +34,9 @@ var import_react = __toESM(require("react"));
|
|
|
34
34
|
var import_ds_utilities = require("@elliemae/ds-utilities");
|
|
35
35
|
var import_ds_grid = require("@elliemae/ds-grid");
|
|
36
36
|
var import_Loader = require("./Loader");
|
|
37
|
-
const useMakeMutable = (referenceVar) => {
|
|
38
|
-
const mutable = (0, import_react.useRef)(referenceVar);
|
|
39
|
-
(0, import_react.useEffect)(() => {
|
|
40
|
-
mutable.current = referenceVar;
|
|
41
|
-
}, [referenceVar]);
|
|
42
|
-
return mutable;
|
|
43
|
-
};
|
|
44
37
|
function useIntersectionObserver(elementRef, { threshold = 0, root = null, rootMargin = "0%", freezeOnceVisible = false }, onIntersectionCb = (entry) => {
|
|
45
38
|
}) {
|
|
46
|
-
const mutableIntersectionCb = useMakeMutable(onIntersectionCb);
|
|
39
|
+
const mutableIntersectionCb = (0, import_ds_utilities.useMakeMutable)(onIntersectionCb);
|
|
47
40
|
const [entry, setEntry] = (0, import_react.useState)();
|
|
48
41
|
const frozen = entry?.isIntersecting && freezeOnceVisible;
|
|
49
42
|
const updateEntry = ([newEntry]) => {
|
|
@@ -67,8 +60,8 @@ function useIntersectionObserver(elementRef, { threshold = 0, root = null, rootM
|
|
|
67
60
|
const InfiniteLoader = ({ isFetching, fetchData, children, height, hasMoreItems = true }) => {
|
|
68
61
|
const [viewportHeight, setViewportHeight] = (0, import_react.useState)(height);
|
|
69
62
|
const baselineRef = (0, import_react.useRef)(null);
|
|
70
|
-
const mutableIsFetching = useMakeMutable(isFetching);
|
|
71
|
-
const mutableFetchData = useMakeMutable(fetchData);
|
|
63
|
+
const mutableIsFetching = (0, import_ds_utilities.useMakeMutable)(isFetching);
|
|
64
|
+
const mutableFetchData = (0, import_ds_utilities.useMakeMutable)(fetchData);
|
|
72
65
|
const onIntersectionCb = import_react.default.useCallback(() => {
|
|
73
66
|
if (hasMoreItems && !mutableIsFetching.current) {
|
|
74
67
|
mutableFetchData.current();
|
|
@@ -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, 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}\n\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAAA,mBAAwG;AACxG,
|
|
4
|
+
"sourcesContent": ["import React, { useEffect, useRef, useCallback, useState, type RefObject, type WeakValidationMap } from 'react';\nimport { PropTypes, describe, useMakeMutable } 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}\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 // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n onIntersectionCb = (entry: IntersectionObserverEntry): void => {},\n): IntersectionObserverEntry | undefined {\n const mutableIntersectionCb = useMakeMutable(onIntersectionCb);\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const frozen = entry?.isIntersecting && freezeOnceVisible;\n\n const updateEntry = ([newEntry]: IntersectionObserverEntry[]): void => {\n setEntry(newEntry);\n if (newEntry.isIntersecting) mutableIntersectionCb.current(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 mutableIsFetching = useMakeMutable(isFetching);\n const mutableFetchData = useMakeMutable(fetchData);\n const onIntersectionCb = React.useCallback(() => {\n if (hasMoreItems && !mutableIsFetching.current) {\n mutableFetchData.current();\n }\n }, [hasMoreItems, mutableFetchData, mutableIsFetching]);\n useIntersectionObserver(\n baselineRef,\n {\n root: null,\n rootMargin: '0px',\n threshold: 0.1,\n },\n onIntersectionCb,\n );\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": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -156,7 +156,7 @@ const MobilePageHeader = ({
|
|
|
156
156
|
children: [
|
|
157
157
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_grid.Grid, {
|
|
158
158
|
pt: breadCrumb ? 0 : theme.space.xxxs,
|
|
159
|
-
alignItems: "start",
|
|
159
|
+
alignItems: "flex-start",
|
|
160
160
|
justifyItems: "center",
|
|
161
161
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ds_truncated_expandable_text.TruncatedExpandableText, {
|
|
162
162
|
value: pageTitle
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/MobilePageHeader/MobilePageHeader.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable import/no-unresolved */\n/* eslint-disable no-plusplus */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useMemo, useState, useCallback } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { styled, border, truncate, withTheme, __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { TruncatedExpandableText } from '@elliemae/ds-truncated-expandable-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronSmallDown } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport MobileSeparator from '../MobileSeparator';\n\nconst StyledTitle = styled(Grid)`\n font-size: 22px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['700']};\n min-height: ${(props) => (props.withBreadcrumb ? 'auto' : '44px')};\n padding-top: ${(props) => (props.withBreadcrumb ? '0' : '6px')};\n line-height: 1.15;\n`;\n\nconst StyledBreadCrumb = styled.div`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['600']};\n ${truncate()}\n`;\n\nconst Label = styled.div`\n color: ${(props) => props.theme.colors.neutral['500']};\n ${truncate()}\n`;\n\nconst Value = styled.div`\n ${truncate()}\n color: ${(props) => props.theme.colors.neutral['600']};\n ${(props) => (props.withMarginRight ? `margin-right: 4px;` : '')}\n margin-top: ${(props) => (props.withBreadcrumb ? '12px' : '0')};\n`;\n\nconst Wrapper = styled(Grid)<{ withBlueBorder: boolean }>`\n border-bottom: ${({ theme, withBlueBorder }) =>\n border(withBlueBorder ? theme.colors.brand['700'] : theme.colors.neutral['300'])};\n`;\n\nconst MobilePageHeader = ({\n pageTitle = null,\n withBlueBorder = false,\n contextMenu = null,\n firstAction = null,\n secondAction = null,\n backArrow = null,\n breadCrumb = null,\n onOpenContextMenu = () => null,\n value,\n label,\n theme,\n}) => {\n const hasValue = value === 0 || value;\n\n const countActions = useMemo(() => {\n let count = 0;\n if (firstAction) count++;\n if (secondAction) count++;\n return count;\n }, [firstAction, secondAction]);\n const [open, setOpen] = useState();\n const handleContext = useCallback(() => {\n setOpen(!open);\n }, [open]);\n\n const separator = (\n <Grid height=\"32px\" alignItems=\"center\">\n <Grid height=\"24px\">\n <MobileSeparator direction=\"vertical\" margin=\"xxs\" color={['neutral', '300']} />\n </Grid>\n </Grid>\n );\n const cols = [1, 'auto'];\n const cols2 = ['auto'];\n if (countActions) cols.push('auto');\n if (hasValue) cols2.push('auto');\n if (label) cols2.push('auto');\n\n return (\n <Wrapper\n cols={cols}\n pl={theme.space.xs}\n pr={theme.space.xs}\n alignItems=\"flex-start\"\n width=\"100%\"\n data-testid=\"page-header-wrapper\"\n withBlueBorder={withBlueBorder}\n >\n <Grid alignItems=\"flex-start\" justifyContent=\"flex-start\" cols={cols2}>\n <Grid\n cols={backArrow ? ['auto', 1] : [1]}\n alignItems=\"flex-start\"\n pr={countActions === 0 && !hasValue && !label ? __UNSAFE_SPACE_TO_DIMSUM(theme.space.s) : 0}\n >\n {backArrow && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" pr=\"16px\">\n {backArrow}\n </Grid>\n )}\n <Grid flexGrow={0} pt={!breadCrumb ? 0 : theme.space.xxs}>\n <Grid>\n <Grid>\n {breadCrumb && <StyledBreadCrumb data-testid=\"page-header-breadcrum\">{breadCrumb}</StyledBreadCrumb>}\n <StyledTitle\n cols={['auto', '1fr']}\n gutter=\"xxxs\"\n maxWidth=\"100%\"\n alignItems=\"flex-start\"\n withBreadcrumb={!!breadCrumb}\n data-testid=\"page-header-title\"\n >\n <Grid pt={breadCrumb ? 0 : theme.space.xxxs} alignItems=\"start\" justifyItems=\"center\">\n <TruncatedExpandableText value={pageTitle} />\n </Grid>\n {contextMenu ? (\n <Grid alignItems=\"center\">\n <DSButton\n buttonType=\"text\"\n icon={<ChevronSmallDown />}\n size=\"s\"\n onClick={() => {\n handleContext();\n onOpenContextMenu();\n }}\n containerProps={{ 'data-testid': 'trigger-context-menu' }}\n />\n {React.cloneElement(contextMenu, {\n open: contextMenu.props.open !== undefined ? contextMenu.props.open : open,\n onChange: (event, item) => {\n if (contextMenu.props.onChange) contextMenu.props.onChange(event, item);\n handleContext();\n },\n })}\n </Grid>\n ) : null}\n </StyledTitle>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {hasValue && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" cols={['auto', 'auto']}>\n {separator}\n <Value withMarginRight={!!label} data-testid=\"page-header-value\">\n {value}\n </Value>\n </Grid>\n )}\n {label && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\">\n <Label withBreadcrumb={!!breadCrumb} data-testid=\"page-header-label\">\n {label}\n </Label>\n </Grid>\n )}\n </Grid>\n {countActions > 0 && (\n <Grid\n height={breadCrumb ? '56px' : '44px'}\n alignItems=\"center\"\n cols={countActions === 1 ? ['auto'] : ['auto', 'auto', 'auto']}\n >\n {firstAction && <Grid>{firstAction}</Grid>}\n {countActions === 2 && separator}\n {secondAction && <Grid>{secondAction}</Grid>}\n </Grid>\n )}\n </Wrapper>\n );\n};\n\nconst pageHeaderProps = {\n pageTitle: PropTypes.string.description('Page title').isRequired,\n contextMenu: PropTypes.element.description('Context Menu to open'),\n onOpenContextMenu: PropTypes.func.description('function called when context menu opens'),\n firstAction: PropTypes.element.description('Action Button'),\n secondAction: PropTypes.element.description('Action Button'),\n backArrow: PropTypes.element.description('Back Arrow Button'),\n breadCrumb: PropTypes.string.description('BreadCrumbs title'),\n value: PropTypes.number.description('Page summary value'),\n label: PropTypes.string.description('Page summary label'),\n theme: PropTypes.object.description('dimsum theme'),\n};\n\nMobilePageHeader.propTypes = pageHeaderProps;\nMobilePageHeader.displayName = 'MobilePageHeader';\nconst PageHeaderWithSchema = describe(MobilePageHeader);\nPageHeaderWithSchema.propTypes = pageHeaderProps;\n\nconst DSMobilePageHeader = withTheme(MobilePageHeader);\n\nexport { DSMobilePageHeader, PageHeaderWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/* eslint-disable import/no-unresolved */\n/* eslint-disable no-plusplus */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useMemo, useState, useCallback } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { styled, border, truncate, withTheme, __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { TruncatedExpandableText } from '@elliemae/ds-truncated-expandable-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronSmallDown } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport MobileSeparator from '../MobileSeparator';\n\nconst StyledTitle = styled(Grid)`\n font-size: 22px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['700']};\n min-height: ${(props) => (props.withBreadcrumb ? 'auto' : '44px')};\n padding-top: ${(props) => (props.withBreadcrumb ? '0' : '6px')};\n line-height: 1.15;\n`;\n\nconst StyledBreadCrumb = styled.div`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['600']};\n ${truncate()}\n`;\n\nconst Label = styled.div`\n color: ${(props) => props.theme.colors.neutral['500']};\n ${truncate()}\n`;\n\nconst Value = styled.div`\n ${truncate()}\n color: ${(props) => props.theme.colors.neutral['600']};\n ${(props) => (props.withMarginRight ? `margin-right: 4px;` : '')}\n margin-top: ${(props) => (props.withBreadcrumb ? '12px' : '0')};\n`;\n\nconst Wrapper = styled(Grid)<{ withBlueBorder: boolean }>`\n border-bottom: ${({ theme, withBlueBorder }) =>\n border(withBlueBorder ? theme.colors.brand['700'] : theme.colors.neutral['300'])};\n`;\n\nconst MobilePageHeader = ({\n pageTitle = null,\n withBlueBorder = false,\n contextMenu = null,\n firstAction = null,\n secondAction = null,\n backArrow = null,\n breadCrumb = null,\n onOpenContextMenu = () => null,\n value,\n label,\n theme,\n}) => {\n const hasValue = value === 0 || value;\n\n const countActions = useMemo(() => {\n let count = 0;\n if (firstAction) count++;\n if (secondAction) count++;\n return count;\n }, [firstAction, secondAction]);\n const [open, setOpen] = useState();\n const handleContext = useCallback(() => {\n setOpen(!open);\n }, [open]);\n\n const separator = (\n <Grid height=\"32px\" alignItems=\"center\">\n <Grid height=\"24px\">\n <MobileSeparator direction=\"vertical\" margin=\"xxs\" color={['neutral', '300']} />\n </Grid>\n </Grid>\n );\n const cols = [1, 'auto'];\n const cols2 = ['auto'];\n if (countActions) cols.push('auto');\n if (hasValue) cols2.push('auto');\n if (label) cols2.push('auto');\n\n return (\n <Wrapper\n cols={cols}\n pl={theme.space.xs}\n pr={theme.space.xs}\n alignItems=\"flex-start\"\n width=\"100%\"\n data-testid=\"page-header-wrapper\"\n withBlueBorder={withBlueBorder}\n >\n <Grid alignItems=\"flex-start\" justifyContent=\"flex-start\" cols={cols2}>\n <Grid\n cols={backArrow ? ['auto', 1] : [1]}\n alignItems=\"flex-start\"\n pr={countActions === 0 && !hasValue && !label ? __UNSAFE_SPACE_TO_DIMSUM(theme.space.s) : 0}\n >\n {backArrow && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" pr=\"16px\">\n {backArrow}\n </Grid>\n )}\n <Grid flexGrow={0} pt={!breadCrumb ? 0 : theme.space.xxs}>\n <Grid>\n <Grid>\n {breadCrumb && <StyledBreadCrumb data-testid=\"page-header-breadcrum\">{breadCrumb}</StyledBreadCrumb>}\n <StyledTitle\n cols={['auto', '1fr']}\n gutter=\"xxxs\"\n maxWidth=\"100%\"\n alignItems=\"flex-start\"\n withBreadcrumb={!!breadCrumb}\n data-testid=\"page-header-title\"\n >\n <Grid pt={breadCrumb ? 0 : theme.space.xxxs} alignItems=\"flex-start\" justifyItems=\"center\">\n <TruncatedExpandableText value={pageTitle} />\n </Grid>\n {contextMenu ? (\n <Grid alignItems=\"center\">\n <DSButton\n buttonType=\"text\"\n icon={<ChevronSmallDown />}\n size=\"s\"\n onClick={() => {\n handleContext();\n onOpenContextMenu();\n }}\n containerProps={{ 'data-testid': 'trigger-context-menu' }}\n />\n {React.cloneElement(contextMenu, {\n open: contextMenu.props.open !== undefined ? contextMenu.props.open : open,\n onChange: (event, item) => {\n if (contextMenu.props.onChange) contextMenu.props.onChange(event, item);\n handleContext();\n },\n })}\n </Grid>\n ) : null}\n </StyledTitle>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {hasValue && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" cols={['auto', 'auto']}>\n {separator}\n <Value withMarginRight={!!label} data-testid=\"page-header-value\">\n {value}\n </Value>\n </Grid>\n )}\n {label && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\">\n <Label withBreadcrumb={!!breadCrumb} data-testid=\"page-header-label\">\n {label}\n </Label>\n </Grid>\n )}\n </Grid>\n {countActions > 0 && (\n <Grid\n height={breadCrumb ? '56px' : '44px'}\n alignItems=\"center\"\n cols={countActions === 1 ? ['auto'] : ['auto', 'auto', 'auto']}\n >\n {firstAction && <Grid>{firstAction}</Grid>}\n {countActions === 2 && separator}\n {secondAction && <Grid>{secondAction}</Grid>}\n </Grid>\n )}\n </Wrapper>\n );\n};\n\nconst pageHeaderProps = {\n pageTitle: PropTypes.string.description('Page title').isRequired,\n contextMenu: PropTypes.element.description('Context Menu to open'),\n onOpenContextMenu: PropTypes.func.description('function called when context menu opens'),\n firstAction: PropTypes.element.description('Action Button'),\n secondAction: PropTypes.element.description('Action Button'),\n backArrow: PropTypes.element.description('Back Arrow Button'),\n breadCrumb: PropTypes.string.description('BreadCrumbs title'),\n value: PropTypes.number.description('Page summary value'),\n label: PropTypes.string.description('Page summary label'),\n theme: PropTypes.object.description('dimsum theme'),\n};\n\nMobilePageHeader.propTypes = pageHeaderProps;\nMobilePageHeader.displayName = 'MobilePageHeader';\nconst PageHeaderWithSchema = describe(MobilePageHeader);\nPageHeaderWithSchema.propTypes = pageHeaderProps;\n\nconst DSMobilePageHeader = withTheme(MobilePageHeader);\n\nexport { DSMobilePageHeader, PageHeaderWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["MobileSeparator", "DSButton", "React"]
|
|
7
7
|
}
|
package/dist/cjs/Modal/Modal.js
CHANGED
|
@@ -51,7 +51,8 @@ const Modal = ({
|
|
|
51
51
|
onClick: import_lodash.noop,
|
|
52
52
|
labelText: "Accept"
|
|
53
53
|
},
|
|
54
|
-
isOpen = false
|
|
54
|
+
isOpen = false,
|
|
55
|
+
children = void 0
|
|
55
56
|
}) => {
|
|
56
57
|
const theme = (0, import_ds_system.useTheme)();
|
|
57
58
|
if (!isOpen)
|
|
@@ -68,7 +69,9 @@ const Modal = ({
|
|
|
68
69
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_styled.ModalPosition, {
|
|
69
70
|
zIndex,
|
|
70
71
|
cols: ["auto"],
|
|
71
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.
|
|
72
|
+
children: children !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
|
|
73
|
+
children
|
|
74
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_styled.ModalBox, {
|
|
72
75
|
maxHeight: `${window.innerHeight * 0.75}px`,
|
|
73
76
|
rows: [1, "80px"],
|
|
74
77
|
style: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/Modal/Modal.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { noop } from 'lodash';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { useTheme } from '@elliemae/ds-system';\nimport { ModalPosition, ModalBox, BackShadow, ModalIcon, ModalTitle, ModalDescription, BodyFix } from './styled';\n\nconst Modal = ({\n zIndex = 1,\n title = '',\n description = '',\n onClose = noop,\n showSecondaryAction = true,\n secondaryActionProps = {\n onClick: noop,\n labelText: 'Cancel',\n },\n primaryActionProps = {\n onClick: noop,\n labelText: 'Accept',\n },\n isOpen = false,\n}) => {\n const theme = useTheme();\n if (!isOpen) return null;\n return (\n <>\n <BodyFix isOpen={isOpen} />\n <BackShadow onClick={onClose} zIndex={zIndex} />\n <ModalPosition zIndex={zIndex} cols={['auto']}>\n <ModalBox\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB;AAEA,0BAAoC;AACpC,oBAAqB;AACrB,qBAAqB;AACrB,sBAAgC;AAChC,uBAAqB;AACrB,uBAAyB;AACzB,oBAAsG;AAEtG,MAAM,QAAQ,CAAC;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,EACV,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,IACrB,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,qBAAqB;AAAA,IACnB,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,SAAS;
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { noop } from 'lodash';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { useTheme } from '@elliemae/ds-system';\nimport { ModalPosition, ModalBox, BackShadow, ModalIcon, ModalTitle, ModalDescription, BodyFix } from './styled';\n\nconst Modal = ({\n zIndex = 1,\n title = '',\n description = '',\n onClose = noop,\n showSecondaryAction = true,\n secondaryActionProps = {\n onClick: noop,\n labelText: 'Cancel',\n },\n primaryActionProps = {\n onClick: noop,\n labelText: 'Accept',\n },\n isOpen = false,\n children = undefined,\n}) => {\n const theme = useTheme();\n if (!isOpen) return null;\n return (\n <>\n <BodyFix isOpen={isOpen} />\n <BackShadow onClick={onClose} zIndex={zIndex} />\n <ModalPosition zIndex={zIndex} cols={['auto']}>\n {children !== undefined ? (\n <>{children}</>\n ) : (\n <ModalBox\n maxHeight={`${window.innerHeight * 0.75}px`}\n rows={[1, '80px']}\n style={{\n overflow: 'hidden',\n }}\n >\n <Grid\n pl=\"xs\"\n pr=\"xs\"\n style={{\n overflow: 'hidden',\n }}\n >\n <Grid\n rows={['auto', 'auto', 1]}\n style={{\n overflow: 'hidden',\n }}\n >\n <ModalIcon>\n <WarningTriangle size=\"xxl\" />\n </ModalIcon>\n <ModalTitle data-testid=\"modal-title\">{title}</ModalTitle>\n <ModalDescription\n data-testid=\"modal-desc\"\n style={{\n overflow: 'auto',\n }}\n >\n {description}\n </ModalDescription>\n </Grid>\n </Grid>\n <Grid pt=\"24px\">\n <Grid\n pl=\"xs\"\n pr=\"xs\"\n cols={showSecondaryAction ? [1, 1] : [1]}\n gutter=\"xs\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{\n borderTop: `1px solid ${theme.colors.neutral[100]}`,\n }}\n >\n {showSecondaryAction && (\n <DSButton\n {...secondaryActionProps}\n labelText={secondaryActionProps.labelText || ' Cancel'}\n buttonType=\"secondary\"\n data-testid=\"modal-secondary-btn\"\n />\n )}\n <DSButton\n labelText={primaryActionProps.labelText || ' Accept'}\n {...primaryActionProps}\n buttonType=\"primary\"\n data-testid=\"modal-primary-btn\"\n />\n </Grid>\n </Grid>\n </ModalBox>\n )}\n </ModalPosition>\n </>\n );\n};\n\nconst modalProps = {\n isOpen: PropTypes.bool.description('Wheter the modal is open or closed').defaultValue(false),\n zIndex: PropTypes.number.description('z-index value').defaultValue(1),\n title: PropTypes.string.description('Modal s title').isRequired,\n description: PropTypes.string.description('Modal s content').isRequired,\n onClose: PropTypes.func.description('Function executed when the modal closes'),\n showSecondaryAction: PropTypes.bool.description('Wheter to show secondary action button or not').defaultValue(true),\n secondaryActionProps: PropTypes.shape({\n onClick: PropTypes.func,\n labelText: PropTypes.string,\n }).description('Secondary action props'),\n primaryActionProps: PropTypes.shape({\n onClick: PropTypes.func,\n labelText: PropTypes.string,\n }).description('Primary action props'),\n};\n\nModal.propTypes = modalProps;\nModal.displayName = 'Modal';\nconst ModalWithSchema = describe(Modal);\nModalWithSchema.propTypes = modalProps;\n\nexport { Modal, ModalWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["DSButton"]
|
|
7
7
|
}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
3
|
import React2, { useEffect, useRef, useCallback, useState } from "react";
|
|
4
|
-
import { PropTypes, describe } from "@elliemae/ds-utilities";
|
|
4
|
+
import { PropTypes, describe, useMakeMutable } from "@elliemae/ds-utilities";
|
|
5
5
|
import { Grid } from "@elliemae/ds-grid";
|
|
6
6
|
import { Loader } from "./Loader";
|
|
7
|
-
const useMakeMutable = (referenceVar) => {
|
|
8
|
-
const mutable = useRef(referenceVar);
|
|
9
|
-
useEffect(() => {
|
|
10
|
-
mutable.current = referenceVar;
|
|
11
|
-
}, [referenceVar]);
|
|
12
|
-
return mutable;
|
|
13
|
-
};
|
|
14
7
|
function useIntersectionObserver(elementRef, { threshold = 0, root = null, rootMargin = "0%", freezeOnceVisible = false }, onIntersectionCb = (entry) => {
|
|
15
8
|
}) {
|
|
16
9
|
const mutableIntersectionCb = useMakeMutable(onIntersectionCb);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/InfiniteLoader/Infiniteloader.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "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}\n\
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAAA,OAAOA,UAAS,WAAW,QAAQ,aAAa,gBAAwD;AACxG,SAAS,WAAW,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useEffect, useRef, useCallback, useState, type RefObject, type WeakValidationMap } from 'react';\nimport { PropTypes, describe, useMakeMutable } 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}\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 // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n onIntersectionCb = (entry: IntersectionObserverEntry): void => {},\n): IntersectionObserverEntry | undefined {\n const mutableIntersectionCb = useMakeMutable(onIntersectionCb);\n const [entry, setEntry] = useState<IntersectionObserverEntry>();\n\n const frozen = entry?.isIntersecting && freezeOnceVisible;\n\n const updateEntry = ([newEntry]: IntersectionObserverEntry[]): void => {\n setEntry(newEntry);\n if (newEntry.isIntersecting) mutableIntersectionCb.current(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 mutableIsFetching = useMakeMutable(isFetching);\n const mutableFetchData = useMakeMutable(fetchData);\n const onIntersectionCb = React.useCallback(() => {\n if (hasMoreItems && !mutableIsFetching.current) {\n mutableFetchData.current();\n }\n }, [hasMoreItems, mutableFetchData, mutableIsFetching]);\n useIntersectionObserver(\n baselineRef,\n {\n root: null,\n rootMargin: '0px',\n threshold: 0.1,\n },\n onIntersectionCb,\n );\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"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
|
@@ -126,7 +126,7 @@ const MobilePageHeader = ({
|
|
|
126
126
|
children: [
|
|
127
127
|
/* @__PURE__ */ jsx(Grid, {
|
|
128
128
|
pt: breadCrumb ? 0 : theme.space.xxxs,
|
|
129
|
-
alignItems: "start",
|
|
129
|
+
alignItems: "flex-start",
|
|
130
130
|
justifyItems: "center",
|
|
131
131
|
children: /* @__PURE__ */ jsx(TruncatedExpandableText, {
|
|
132
132
|
value: pageTitle
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobilePageHeader/MobilePageHeader.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable import/no-unresolved */\n/* eslint-disable no-plusplus */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useMemo, useState, useCallback } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { styled, border, truncate, withTheme, __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { TruncatedExpandableText } from '@elliemae/ds-truncated-expandable-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronSmallDown } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport MobileSeparator from '../MobileSeparator';\n\nconst StyledTitle = styled(Grid)`\n font-size: 22px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['700']};\n min-height: ${(props) => (props.withBreadcrumb ? 'auto' : '44px')};\n padding-top: ${(props) => (props.withBreadcrumb ? '0' : '6px')};\n line-height: 1.15;\n`;\n\nconst StyledBreadCrumb = styled.div`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['600']};\n ${truncate()}\n`;\n\nconst Label = styled.div`\n color: ${(props) => props.theme.colors.neutral['500']};\n ${truncate()}\n`;\n\nconst Value = styled.div`\n ${truncate()}\n color: ${(props) => props.theme.colors.neutral['600']};\n ${(props) => (props.withMarginRight ? `margin-right: 4px;` : '')}\n margin-top: ${(props) => (props.withBreadcrumb ? '12px' : '0')};\n`;\n\nconst Wrapper = styled(Grid)<{ withBlueBorder: boolean }>`\n border-bottom: ${({ theme, withBlueBorder }) =>\n border(withBlueBorder ? theme.colors.brand['700'] : theme.colors.neutral['300'])};\n`;\n\nconst MobilePageHeader = ({\n pageTitle = null,\n withBlueBorder = false,\n contextMenu = null,\n firstAction = null,\n secondAction = null,\n backArrow = null,\n breadCrumb = null,\n onOpenContextMenu = () => null,\n value,\n label,\n theme,\n}) => {\n const hasValue = value === 0 || value;\n\n const countActions = useMemo(() => {\n let count = 0;\n if (firstAction) count++;\n if (secondAction) count++;\n return count;\n }, [firstAction, secondAction]);\n const [open, setOpen] = useState();\n const handleContext = useCallback(() => {\n setOpen(!open);\n }, [open]);\n\n const separator = (\n <Grid height=\"32px\" alignItems=\"center\">\n <Grid height=\"24px\">\n <MobileSeparator direction=\"vertical\" margin=\"xxs\" color={['neutral', '300']} />\n </Grid>\n </Grid>\n );\n const cols = [1, 'auto'];\n const cols2 = ['auto'];\n if (countActions) cols.push('auto');\n if (hasValue) cols2.push('auto');\n if (label) cols2.push('auto');\n\n return (\n <Wrapper\n cols={cols}\n pl={theme.space.xs}\n pr={theme.space.xs}\n alignItems=\"flex-start\"\n width=\"100%\"\n data-testid=\"page-header-wrapper\"\n withBlueBorder={withBlueBorder}\n >\n <Grid alignItems=\"flex-start\" justifyContent=\"flex-start\" cols={cols2}>\n <Grid\n cols={backArrow ? ['auto', 1] : [1]}\n alignItems=\"flex-start\"\n pr={countActions === 0 && !hasValue && !label ? __UNSAFE_SPACE_TO_DIMSUM(theme.space.s) : 0}\n >\n {backArrow && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" pr=\"16px\">\n {backArrow}\n </Grid>\n )}\n <Grid flexGrow={0} pt={!breadCrumb ? 0 : theme.space.xxs}>\n <Grid>\n <Grid>\n {breadCrumb && <StyledBreadCrumb data-testid=\"page-header-breadcrum\">{breadCrumb}</StyledBreadCrumb>}\n <StyledTitle\n cols={['auto', '1fr']}\n gutter=\"xxxs\"\n maxWidth=\"100%\"\n alignItems=\"flex-start\"\n withBreadcrumb={!!breadCrumb}\n data-testid=\"page-header-title\"\n >\n <Grid pt={breadCrumb ? 0 : theme.space.xxxs} alignItems=\"start\" justifyItems=\"center\">\n <TruncatedExpandableText value={pageTitle} />\n </Grid>\n {contextMenu ? (\n <Grid alignItems=\"center\">\n <DSButton\n buttonType=\"text\"\n icon={<ChevronSmallDown />}\n size=\"s\"\n onClick={() => {\n handleContext();\n onOpenContextMenu();\n }}\n containerProps={{ 'data-testid': 'trigger-context-menu' }}\n />\n {React.cloneElement(contextMenu, {\n open: contextMenu.props.open !== undefined ? contextMenu.props.open : open,\n onChange: (event, item) => {\n if (contextMenu.props.onChange) contextMenu.props.onChange(event, item);\n handleContext();\n },\n })}\n </Grid>\n ) : null}\n </StyledTitle>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {hasValue && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" cols={['auto', 'auto']}>\n {separator}\n <Value withMarginRight={!!label} data-testid=\"page-header-value\">\n {value}\n </Value>\n </Grid>\n )}\n {label && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\">\n <Label withBreadcrumb={!!breadCrumb} data-testid=\"page-header-label\">\n {label}\n </Label>\n </Grid>\n )}\n </Grid>\n {countActions > 0 && (\n <Grid\n height={breadCrumb ? '56px' : '44px'}\n alignItems=\"center\"\n cols={countActions === 1 ? ['auto'] : ['auto', 'auto', 'auto']}\n >\n {firstAction && <Grid>{firstAction}</Grid>}\n {countActions === 2 && separator}\n {secondAction && <Grid>{secondAction}</Grid>}\n </Grid>\n )}\n </Wrapper>\n );\n};\n\nconst pageHeaderProps = {\n pageTitle: PropTypes.string.description('Page title').isRequired,\n contextMenu: PropTypes.element.description('Context Menu to open'),\n onOpenContextMenu: PropTypes.func.description('function called when context menu opens'),\n firstAction: PropTypes.element.description('Action Button'),\n secondAction: PropTypes.element.description('Action Button'),\n backArrow: PropTypes.element.description('Back Arrow Button'),\n breadCrumb: PropTypes.string.description('BreadCrumbs title'),\n value: PropTypes.number.description('Page summary value'),\n label: PropTypes.string.description('Page summary label'),\n theme: PropTypes.object.description('dimsum theme'),\n};\n\nMobilePageHeader.propTypes = pageHeaderProps;\nMobilePageHeader.displayName = 'MobilePageHeader';\nconst PageHeaderWithSchema = describe(MobilePageHeader);\nPageHeaderWithSchema.propTypes = pageHeaderProps;\n\nconst DSMobilePageHeader = withTheme(MobilePageHeader);\n\nexport { DSMobilePageHeader, PageHeaderWithSchema };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAIA,OAAOA,UAAS,SAAS,UAAU,mBAAmB;AACtD,SAAS,UAAU,iBAAiB;AACpC,SAAS,QAAQ,QAAQ,UAAU,WAAW,gCAAgC;AAC9E,SAAS,+BAA+B;AACxC,SAAS,YAAY;AACrB,SAAS,wBAAwB;AACjC,OAAO,cAAc;AACrB,OAAO,qBAAqB;AAE5B,MAAM,cAAc,OAAO,IAAI;AAAA;AAAA,iBAEd,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA,WACzC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,gBACjC,CAAC,UAAW,MAAM,iBAAiB,SAAS;AAAA,iBAC3C,CAAC,UAAW,MAAM,iBAAiB,MAAM;AAAA;AAAA;AAI1D,MAAM,mBAAmB,OAAO;AAAA;AAAA,iBAEf,CAAC,UAAU,MAAM,MAAM,YAAY;AAAA,WACzC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,IAC7C,SAAS;AAAA;AAGb,MAAM,QAAQ,OAAO;AAAA,WACV,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,IAC7C,SAAS;AAAA;AAGb,MAAM,QAAQ,OAAO;AAAA,IACjB,SAAS;AAAA,WACF,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,IAC7C,CAAC,UAAW,MAAM,kBAAkB,uBAAuB;AAAA,gBAC/C,CAAC,UAAW,MAAM,iBAAiB,SAAS;AAAA;AAG5D,MAAM,UAAU,OAAO,IAAI;AAAA,mBACR,CAAC,EAAE,OAAO,eAAe,MACxC,OAAO,iBAAiB,MAAM,OAAO,MAAM,SAAS,MAAM,OAAO,QAAQ,MAAM;AAAA;AAGnF,MAAM,mBAAmB,CAAC;AAAA,EACxB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,oBAAoB,MAAM;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,WAAW,UAAU,KAAK;AAEhC,QAAM,eAAe,QAAQ,MAAM;AACjC,QAAI,QAAQ;AACZ,QAAI;AAAa;AACjB,QAAI;AAAc;AAClB,WAAO;AAAA,EACT,GAAG,CAAC,aAAa,YAAY,CAAC;AAC9B,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS;AACjC,QAAM,gBAAgB,YAAY,MAAM;AACtC,YAAQ,CAAC,IAAI;AAAA,EACf,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,YACJ,oBAAC;AAAA,IAAK,QAAO;AAAA,IAAO,YAAW;AAAA,IAC7B,8BAAC;AAAA,MAAK,QAAO;AAAA,MACX,8BAAC;AAAA,QAAgB,WAAU;AAAA,QAAW,QAAO;AAAA,QAAM,OAAO,CAAC,WAAW,KAAK;AAAA,OAAG;AAAA,KAChF;AAAA,GACF;AAEF,QAAM,OAAO,CAAC,GAAG,MAAM;AACvB,QAAM,QAAQ,CAAC,MAAM;AACrB,MAAI;AAAc,SAAK,KAAK,MAAM;AAClC,MAAI;AAAU,UAAM,KAAK,MAAM;AAC/B,MAAI;AAAO,UAAM,KAAK,MAAM;AAE5B,SACE,qBAAC;AAAA,IACC;AAAA,IACA,IAAI,MAAM,MAAM;AAAA,IAChB,IAAI,MAAM,MAAM;AAAA,IAChB,YAAW;AAAA,IACX,OAAM;AAAA,IACN,eAAY;AAAA,IACZ;AAAA,IAEA;AAAA,2BAAC;AAAA,QAAK,YAAW;AAAA,QAAa,gBAAe;AAAA,QAAa,MAAM;AAAA,QAC9D;AAAA,+BAAC;AAAA,YACC,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAAA,YAClC,YAAW;AAAA,YACX,IAAI,iBAAiB,KAAK,CAAC,YAAY,CAAC,QAAQ,yBAAyB,MAAM,MAAM,CAAC,IAAI;AAAA,YAEzF;AAAA,2BACC,oBAAC;AAAA,gBAAK,QAAQ,aAAa,SAAS;AAAA,gBAAQ,YAAW;AAAA,gBAAS,IAAG;AAAA,gBAChE;AAAA,eACH;AAAA,cAEF,oBAAC;AAAA,gBAAK,UAAU;AAAA,gBAAG,IAAI,CAAC,aAAa,IAAI,MAAM,MAAM;AAAA,gBACnD,8BAAC;AAAA,kBACC,+BAAC;AAAA,oBACE;AAAA,oCAAc,oBAAC;AAAA,wBAAiB,eAAY;AAAA,wBAAyB;AAAA,uBAAW;AAAA,sBACjF,qBAAC;AAAA,wBACC,MAAM,CAAC,QAAQ,KAAK;AAAA,wBACpB,QAAO;AAAA,wBACP,UAAS;AAAA,wBACT,YAAW;AAAA,wBACX,gBAAgB,CAAC,CAAC;AAAA,wBAClB,eAAY;AAAA,wBAEZ;AAAA,8CAAC;AAAA,4BAAK,IAAI,aAAa,IAAI,MAAM,MAAM;AAAA,4BAAM,YAAW;AAAA,
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable import/no-unresolved */\n/* eslint-disable no-plusplus */\n/* eslint-disable complexity */\n/* eslint-disable max-lines */\nimport React, { useMemo, useState, useCallback } from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { styled, border, truncate, withTheme, __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\nimport { TruncatedExpandableText } from '@elliemae/ds-truncated-expandable-text';\nimport { Grid } from '@elliemae/ds-grid';\nimport { ChevronSmallDown } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport MobileSeparator from '../MobileSeparator';\n\nconst StyledTitle = styled(Grid)`\n font-size: 22px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['700']};\n min-height: ${(props) => (props.withBreadcrumb ? 'auto' : '44px')};\n padding-top: ${(props) => (props.withBreadcrumb ? '0' : '6px')};\n line-height: 1.15;\n`;\n\nconst StyledBreadCrumb = styled.div`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.regular};\n color: ${(props) => props.theme.colors.neutral['600']};\n ${truncate()}\n`;\n\nconst Label = styled.div`\n color: ${(props) => props.theme.colors.neutral['500']};\n ${truncate()}\n`;\n\nconst Value = styled.div`\n ${truncate()}\n color: ${(props) => props.theme.colors.neutral['600']};\n ${(props) => (props.withMarginRight ? `margin-right: 4px;` : '')}\n margin-top: ${(props) => (props.withBreadcrumb ? '12px' : '0')};\n`;\n\nconst Wrapper = styled(Grid)<{ withBlueBorder: boolean }>`\n border-bottom: ${({ theme, withBlueBorder }) =>\n border(withBlueBorder ? theme.colors.brand['700'] : theme.colors.neutral['300'])};\n`;\n\nconst MobilePageHeader = ({\n pageTitle = null,\n withBlueBorder = false,\n contextMenu = null,\n firstAction = null,\n secondAction = null,\n backArrow = null,\n breadCrumb = null,\n onOpenContextMenu = () => null,\n value,\n label,\n theme,\n}) => {\n const hasValue = value === 0 || value;\n\n const countActions = useMemo(() => {\n let count = 0;\n if (firstAction) count++;\n if (secondAction) count++;\n return count;\n }, [firstAction, secondAction]);\n const [open, setOpen] = useState();\n const handleContext = useCallback(() => {\n setOpen(!open);\n }, [open]);\n\n const separator = (\n <Grid height=\"32px\" alignItems=\"center\">\n <Grid height=\"24px\">\n <MobileSeparator direction=\"vertical\" margin=\"xxs\" color={['neutral', '300']} />\n </Grid>\n </Grid>\n );\n const cols = [1, 'auto'];\n const cols2 = ['auto'];\n if (countActions) cols.push('auto');\n if (hasValue) cols2.push('auto');\n if (label) cols2.push('auto');\n\n return (\n <Wrapper\n cols={cols}\n pl={theme.space.xs}\n pr={theme.space.xs}\n alignItems=\"flex-start\"\n width=\"100%\"\n data-testid=\"page-header-wrapper\"\n withBlueBorder={withBlueBorder}\n >\n <Grid alignItems=\"flex-start\" justifyContent=\"flex-start\" cols={cols2}>\n <Grid\n cols={backArrow ? ['auto', 1] : [1]}\n alignItems=\"flex-start\"\n pr={countActions === 0 && !hasValue && !label ? __UNSAFE_SPACE_TO_DIMSUM(theme.space.s) : 0}\n >\n {backArrow && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" pr=\"16px\">\n {backArrow}\n </Grid>\n )}\n <Grid flexGrow={0} pt={!breadCrumb ? 0 : theme.space.xxs}>\n <Grid>\n <Grid>\n {breadCrumb && <StyledBreadCrumb data-testid=\"page-header-breadcrum\">{breadCrumb}</StyledBreadCrumb>}\n <StyledTitle\n cols={['auto', '1fr']}\n gutter=\"xxxs\"\n maxWidth=\"100%\"\n alignItems=\"flex-start\"\n withBreadcrumb={!!breadCrumb}\n data-testid=\"page-header-title\"\n >\n <Grid pt={breadCrumb ? 0 : theme.space.xxxs} alignItems=\"flex-start\" justifyItems=\"center\">\n <TruncatedExpandableText value={pageTitle} />\n </Grid>\n {contextMenu ? (\n <Grid alignItems=\"center\">\n <DSButton\n buttonType=\"text\"\n icon={<ChevronSmallDown />}\n size=\"s\"\n onClick={() => {\n handleContext();\n onOpenContextMenu();\n }}\n containerProps={{ 'data-testid': 'trigger-context-menu' }}\n />\n {React.cloneElement(contextMenu, {\n open: contextMenu.props.open !== undefined ? contextMenu.props.open : open,\n onChange: (event, item) => {\n if (contextMenu.props.onChange) contextMenu.props.onChange(event, item);\n handleContext();\n },\n })}\n </Grid>\n ) : null}\n </StyledTitle>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {hasValue && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\" cols={['auto', 'auto']}>\n {separator}\n <Value withMarginRight={!!label} data-testid=\"page-header-value\">\n {value}\n </Value>\n </Grid>\n )}\n {label && (\n <Grid height={breadCrumb ? '56px' : '44px'} alignItems=\"center\">\n <Label withBreadcrumb={!!breadCrumb} data-testid=\"page-header-label\">\n {label}\n </Label>\n </Grid>\n )}\n </Grid>\n {countActions > 0 && (\n <Grid\n height={breadCrumb ? '56px' : '44px'}\n alignItems=\"center\"\n cols={countActions === 1 ? ['auto'] : ['auto', 'auto', 'auto']}\n >\n {firstAction && <Grid>{firstAction}</Grid>}\n {countActions === 2 && separator}\n {secondAction && <Grid>{secondAction}</Grid>}\n </Grid>\n )}\n </Wrapper>\n );\n};\n\nconst pageHeaderProps = {\n pageTitle: PropTypes.string.description('Page title').isRequired,\n contextMenu: PropTypes.element.description('Context Menu to open'),\n onOpenContextMenu: PropTypes.func.description('function called when context menu opens'),\n firstAction: PropTypes.element.description('Action Button'),\n secondAction: PropTypes.element.description('Action Button'),\n backArrow: PropTypes.element.description('Back Arrow Button'),\n breadCrumb: PropTypes.string.description('BreadCrumbs title'),\n value: PropTypes.number.description('Page summary value'),\n label: PropTypes.string.description('Page summary label'),\n theme: PropTypes.object.description('dimsum theme'),\n};\n\nMobilePageHeader.propTypes = pageHeaderProps;\nMobilePageHeader.displayName = 'MobilePageHeader';\nconst PageHeaderWithSchema = describe(MobilePageHeader);\nPageHeaderWithSchema.propTypes = pageHeaderProps;\n\nconst DSMobilePageHeader = withTheme(MobilePageHeader);\n\nexport { DSMobilePageHeader, PageHeaderWithSchema };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
|
7
7
|
}
|
package/dist/esm/Modal/Modal.js
CHANGED
|
@@ -21,7 +21,8 @@ const Modal = ({
|
|
|
21
21
|
onClick: noop,
|
|
22
22
|
labelText: "Accept"
|
|
23
23
|
},
|
|
24
|
-
isOpen = false
|
|
24
|
+
isOpen = false,
|
|
25
|
+
children = void 0
|
|
25
26
|
}) => {
|
|
26
27
|
const theme = useTheme();
|
|
27
28
|
if (!isOpen)
|
|
@@ -38,7 +39,9 @@ const Modal = ({
|
|
|
38
39
|
/* @__PURE__ */ jsx(ModalPosition, {
|
|
39
40
|
zIndex,
|
|
40
41
|
cols: ["auto"],
|
|
41
|
-
children: /* @__PURE__ */
|
|
42
|
+
children: children !== void 0 ? /* @__PURE__ */ jsx(Fragment, {
|
|
43
|
+
children
|
|
44
|
+
}) : /* @__PURE__ */ jsxs(ModalBox, {
|
|
42
45
|
maxHeight: `${window.innerHeight * 0.75}px`,
|
|
43
46
|
rows: [1, "80px"],
|
|
44
47
|
style: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/Modal/Modal.tsx"],
|
|
4
|
-
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { noop } from 'lodash';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { useTheme } from '@elliemae/ds-system';\nimport { ModalPosition, ModalBox, BackShadow, ModalIcon, ModalTitle, ModalDescription, BodyFix } from './styled';\n\nconst Modal = ({\n zIndex = 1,\n title = '',\n description = '',\n onClose = noop,\n showSecondaryAction = true,\n secondaryActionProps = {\n onClick: noop,\n labelText: 'Cancel',\n },\n primaryActionProps = {\n onClick: noop,\n labelText: 'Accept',\n },\n isOpen = false,\n}) => {\n const theme = useTheme();\n if (!isOpen) return null;\n return (\n <>\n <BodyFix isOpen={isOpen} />\n <BackShadow onClick={onClose} zIndex={zIndex} />\n <ModalPosition zIndex={zIndex} cols={['auto']}>\n <ModalBox\n
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB;AAEA,SAAS,UAAU,iBAAiB;AACpC,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAChC,OAAO,cAAc;AACrB,SAAS,gBAAgB;AACzB,SAAS,eAAe,UAAU,YAAY,WAAW,YAAY,kBAAkB,eAAe;AAEtG,MAAM,QAAQ,CAAC;AAAA,EACb,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,UAAU;AAAA,EACV,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,IACrB,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,qBAAqB;AAAA,IACnB,SAAS;AAAA,IACT,WAAW;AAAA,EACb;AAAA,EACA,SAAS;
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React from 'react';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { noop } from 'lodash';\nimport { Grid } from '@elliemae/ds-grid';\nimport { WarningTriangle } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { useTheme } from '@elliemae/ds-system';\nimport { ModalPosition, ModalBox, BackShadow, ModalIcon, ModalTitle, ModalDescription, BodyFix } from './styled';\n\nconst Modal = ({\n zIndex = 1,\n title = '',\n description = '',\n onClose = noop,\n showSecondaryAction = true,\n secondaryActionProps = {\n onClick: noop,\n labelText: 'Cancel',\n },\n primaryActionProps = {\n onClick: noop,\n labelText: 'Accept',\n },\n isOpen = false,\n children = undefined,\n}) => {\n const theme = useTheme();\n if (!isOpen) return null;\n return (\n <>\n <BodyFix isOpen={isOpen} />\n <BackShadow onClick={onClose} zIndex={zIndex} />\n <ModalPosition zIndex={zIndex} cols={['auto']}>\n {children !== undefined ? (\n <>{children}</>\n ) : (\n <ModalBox\n maxHeight={`${window.innerHeight * 0.75}px`}\n rows={[1, '80px']}\n style={{\n overflow: 'hidden',\n }}\n >\n <Grid\n pl=\"xs\"\n pr=\"xs\"\n style={{\n overflow: 'hidden',\n }}\n >\n <Grid\n rows={['auto', 'auto', 1]}\n style={{\n overflow: 'hidden',\n }}\n >\n <ModalIcon>\n <WarningTriangle size=\"xxl\" />\n </ModalIcon>\n <ModalTitle data-testid=\"modal-title\">{title}</ModalTitle>\n <ModalDescription\n data-testid=\"modal-desc\"\n style={{\n overflow: 'auto',\n }}\n >\n {description}\n </ModalDescription>\n </Grid>\n </Grid>\n <Grid pt=\"24px\">\n <Grid\n pl=\"xs\"\n pr=\"xs\"\n cols={showSecondaryAction ? [1, 1] : [1]}\n gutter=\"xs\"\n justifyContent=\"center\"\n alignItems=\"center\"\n style={{\n borderTop: `1px solid ${theme.colors.neutral[100]}`,\n }}\n >\n {showSecondaryAction && (\n <DSButton\n {...secondaryActionProps}\n labelText={secondaryActionProps.labelText || ' Cancel'}\n buttonType=\"secondary\"\n data-testid=\"modal-secondary-btn\"\n />\n )}\n <DSButton\n labelText={primaryActionProps.labelText || ' Accept'}\n {...primaryActionProps}\n buttonType=\"primary\"\n data-testid=\"modal-primary-btn\"\n />\n </Grid>\n </Grid>\n </ModalBox>\n )}\n </ModalPosition>\n </>\n );\n};\n\nconst modalProps = {\n isOpen: PropTypes.bool.description('Wheter the modal is open or closed').defaultValue(false),\n zIndex: PropTypes.number.description('z-index value').defaultValue(1),\n title: PropTypes.string.description('Modal s title').isRequired,\n description: PropTypes.string.description('Modal s content').isRequired,\n onClose: PropTypes.func.description('Function executed when the modal closes'),\n showSecondaryAction: PropTypes.bool.description('Wheter to show secondary action button or not').defaultValue(true),\n secondaryActionProps: PropTypes.shape({\n onClick: PropTypes.func,\n labelText: PropTypes.string,\n }).description('Secondary action props'),\n primaryActionProps: PropTypes.shape({\n onClick: PropTypes.func,\n labelText: PropTypes.string,\n }).description('Primary action props'),\n};\n\nModal.propTypes = modalProps;\nModal.displayName = 'Modal';\nconst ModalWithSchema = describe(Modal);\nModalWithSchema.propTypes = modalProps;\n\nexport { Modal, ModalWithSchema };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-mobile",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.8.0-next.10",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - System",
|
|
6
6
|
"files": [
|
|
@@ -435,21 +435,21 @@
|
|
|
435
435
|
"typeSafety": false
|
|
436
436
|
},
|
|
437
437
|
"dependencies": {
|
|
438
|
-
"@elliemae/ds-accordion": "3.
|
|
439
|
-
"@elliemae/ds-backdrop": "3.
|
|
440
|
-
"@elliemae/ds-button": "3.
|
|
441
|
-
"@elliemae/ds-circular-progress-indicator": "3.
|
|
442
|
-
"@elliemae/ds-form": "3.
|
|
443
|
-
"@elliemae/ds-form-checkbox": "3.
|
|
444
|
-
"@elliemae/ds-grid": "3.
|
|
445
|
-
"@elliemae/ds-icon": "3.
|
|
446
|
-
"@elliemae/ds-icons": "3.
|
|
447
|
-
"@elliemae/ds-indeterminate-progress-indicator": "3.
|
|
448
|
-
"@elliemae/ds-shared": "3.
|
|
449
|
-
"@elliemae/ds-system": "3.
|
|
450
|
-
"@elliemae/ds-tabs": "3.
|
|
451
|
-
"@elliemae/ds-truncated-expandable-text": "3.
|
|
452
|
-
"@elliemae/ds-utilities": "3.
|
|
438
|
+
"@elliemae/ds-accordion": "3.8.0-next.10",
|
|
439
|
+
"@elliemae/ds-backdrop": "3.8.0-next.10",
|
|
440
|
+
"@elliemae/ds-button": "3.8.0-next.10",
|
|
441
|
+
"@elliemae/ds-circular-progress-indicator": "3.8.0-next.10",
|
|
442
|
+
"@elliemae/ds-form": "3.8.0-next.10",
|
|
443
|
+
"@elliemae/ds-form-checkbox": "3.8.0-next.10",
|
|
444
|
+
"@elliemae/ds-grid": "3.8.0-next.10",
|
|
445
|
+
"@elliemae/ds-icon": "3.8.0-next.10",
|
|
446
|
+
"@elliemae/ds-icons": "3.8.0-next.10",
|
|
447
|
+
"@elliemae/ds-indeterminate-progress-indicator": "3.8.0-next.10",
|
|
448
|
+
"@elliemae/ds-shared": "3.8.0-next.10",
|
|
449
|
+
"@elliemae/ds-system": "3.8.0-next.10",
|
|
450
|
+
"@elliemae/ds-tabs": "3.8.0-next.10",
|
|
451
|
+
"@elliemae/ds-truncated-expandable-text": "3.8.0-next.10",
|
|
452
|
+
"@elliemae/ds-utilities": "3.8.0-next.10",
|
|
453
453
|
"polished": "~3.6.7",
|
|
454
454
|
"prop-types": "~15.8.1",
|
|
455
455
|
"react-window": "~1.8.7",
|