@elliemae/ds-overlay 3.22.0-next.3 → 3.22.0-next.31
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/DSOverlay.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/DSOverlay.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +13 -13
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/DSOverlay.tsx", "
|
|
3
|
+
"sources": ["../../src/DSOverlay.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-props-helpers';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport DSBackdrop from '@elliemae/ds-backdrop';\nimport DSPortal from '@elliemae/ds-portal';\n\nconst blockName = 'overlay';\n\nconst events = ['mousedown', 'touchstart'];\n\nconst OverlayContainer = aggregatedClasses('div')(blockName, null, ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n}));\n\nclass DSOverlay extends Component {\n static overlayStack = [];\n\n static defaultProps = {\n isOpen: false,\n usePortal: true,\n hasBackdrop: false,\n backDropZIndex: 2, // https://jira.elliemae.io/browse/PUI-1712\n onClickOutside: () => null,\n };\n\n constructor(props) {\n super(props);\n this.overlayRef = React.createRef();\n\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen !== prevProps.isOpen) {\n if (isOpen) {\n this.openOverlay();\n } else {\n this.closeOverlay();\n }\n }\n }\n\n addClickOutsideListeners() {\n events.forEach((event) => {\n document.addEventListener(event, this.handleDocumentClick);\n });\n }\n\n removeClickOutsideListeners() {\n events.forEach((event) => {\n document.removeEventListener(event, this.handleDocumentClick);\n });\n }\n\n handleDocumentClick(e) {\n const { onClickOutside, isOpen } = this.props;\n const { overlayStack } = DSOverlay;\n const overlayIndex = overlayStack.indexOf(this);\n const hasClickedOverlay = overlayStack.slice(overlayIndex).some(({ overlayRef }) => {\n const elem = overlayRef.current;\n return elem && elem.contains(e.target) && !elem.isSameNode(e.target);\n });\n\n if (isOpen && !hasClickedOverlay) {\n onClickOutside(e); // giving opportunity for callers to operate on the event.\n }\n }\n\n openOverlay() {\n this.addClickOutsideListeners();\n DSOverlay.overlayStack.push(this);\n }\n\n closeOverlay() {\n const { overlayStack } = DSOverlay;\n const overlayIndex = overlayStack.indexOf(this);\n this.removeClickOutsideListeners();\n overlayStack.splice(overlayIndex, 1);\n }\n\n render() {\n const { usePortal, isOpen, hasBackdrop, children, backDropZIndex, style = {} } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\n style={{\n zIndex: 3000,\n ...style,\n }}\n classProps={{ usePortal, isOpen }}\n innerRef={this.overlayRef}\n >\n {hasBackdrop && <DSBackdrop zIndex={backDropZIndex} />}\n {children}\n </OverlayContainer>\n );\n\n if (usePortal) {\n return <DSPortal>{overlay}</DSPortal>;\n }\n\n return overlay;\n }\n}\n\nconst DSOverlayPropTypes = {\n backDropZIndex: PropTypes.number.description('backDropZIndex'),\n children: PropTypes.element.description('children'),\n hasBackdrop: PropTypes.bool.description('hasBackdrop'),\n isOpen: PropTypes.bool.description('isOpen'),\n onClickOutside: PropTypes.func.description('onClickOutside'),\n usePortal: PropTypes.bool.description('usePortal'),\n};\n\nDSOverlay.propTypes = DSOverlayPropTypes;\n\nconst DSOverlayWithSchema = describe(DSOverlay);\nDSOverlayWithSchema.propTypes = DSOverlayPropTypes;\n\nexport { DSOverlay };\nexport default DSOverlay;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["React", "DSBackdrop", "DSPortal"]
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.tsx", "
|
|
3
|
+
"sources": ["../../src/index.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["export * from './DSOverlay.js';\nexport { default } from './DSOverlay.js';\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,wBAAc,2BAAd;AACA,uBAAwB;",
|
|
6
6
|
"names": []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/DSOverlay.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-props-helpers';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport DSBackdrop from '@elliemae/ds-backdrop';\nimport DSPortal from '@elliemae/ds-portal';\n\nconst blockName = 'overlay';\n\nconst events = ['mousedown', 'touchstart'];\n\nconst OverlayContainer = aggregatedClasses('div')(blockName, null, ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n}));\n\nclass DSOverlay extends Component {\n static overlayStack = [];\n\n static defaultProps = {\n isOpen: false,\n usePortal: true,\n hasBackdrop: false,\n backDropZIndex: 2, // https://jira.elliemae.io/browse/PUI-1712\n onClickOutside: () => null,\n };\n\n constructor(props) {\n super(props);\n this.overlayRef = React.createRef();\n\n this.handleDocumentClick = this.handleDocumentClick.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const { isOpen } = this.props;\n if (isOpen !== prevProps.isOpen) {\n if (isOpen) {\n this.openOverlay();\n } else {\n this.closeOverlay();\n }\n }\n }\n\n addClickOutsideListeners() {\n events.forEach((event) => {\n document.addEventListener(event, this.handleDocumentClick);\n });\n }\n\n removeClickOutsideListeners() {\n events.forEach((event) => {\n document.removeEventListener(event, this.handleDocumentClick);\n });\n }\n\n handleDocumentClick(e) {\n const { onClickOutside, isOpen } = this.props;\n const { overlayStack } = DSOverlay;\n const overlayIndex = overlayStack.indexOf(this);\n const hasClickedOverlay = overlayStack.slice(overlayIndex).some(({ overlayRef }) => {\n const elem = overlayRef.current;\n return elem && elem.contains(e.target) && !elem.isSameNode(e.target);\n });\n\n if (isOpen && !hasClickedOverlay) {\n onClickOutside(e); // giving opportunity for callers to operate on the event.\n }\n }\n\n openOverlay() {\n this.addClickOutsideListeners();\n DSOverlay.overlayStack.push(this);\n }\n\n closeOverlay() {\n const { overlayStack } = DSOverlay;\n const overlayIndex = overlayStack.indexOf(this);\n this.removeClickOutsideListeners();\n overlayStack.splice(overlayIndex, 1);\n }\n\n render() {\n const { usePortal, isOpen, hasBackdrop, children, backDropZIndex, style = {} } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\n style={{\n zIndex: 3000,\n ...style,\n }}\n classProps={{ usePortal, isOpen }}\n innerRef={this.overlayRef}\n >\n {hasBackdrop && <DSBackdrop zIndex={backDropZIndex} />}\n {children}\n </OverlayContainer>\n );\n\n if (usePortal) {\n return <DSPortal>{overlay}</DSPortal>;\n }\n\n return overlay;\n }\n}\n\nconst DSOverlayPropTypes = {\n backDropZIndex: PropTypes.number.description('backDropZIndex'),\n children: PropTypes.element.description('children'),\n hasBackdrop: PropTypes.bool.description('hasBackdrop'),\n isOpen: PropTypes.bool.description('isOpen'),\n onClickOutside: PropTypes.func.description('onClickOutside'),\n usePortal: PropTypes.bool.description('usePortal'),\n};\n\nDSOverlay.propTypes = DSOverlayPropTypes;\n\nconst DSOverlayWithSchema = describe(DSOverlay);\nDSOverlayWithSchema.propTypes = DSOverlayPropTypes;\n\nexport { DSOverlay };\nexport default DSOverlay;\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["React"]
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export * from './DSOverlay.js';\nexport { default } from './DSOverlay.js';\n"],
|
|
5
5
|
"mappings": "AAAA,YAAY,WAAW;ACAvB,cAAc;AACd,SAAS,WAAAA,gBAAe;",
|
|
6
6
|
"names": ["default"]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-overlay",
|
|
3
|
-
"version": "3.22.0-next.
|
|
3
|
+
"version": "3.22.0-next.31",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Overlay",
|
|
6
6
|
"files": [
|
|
@@ -39,14 +39,14 @@
|
|
|
39
39
|
"indent": 4
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@elliemae/ds-
|
|
43
|
-
"@elliemae/ds-
|
|
44
|
-
"@elliemae/ds-
|
|
45
|
-
"@elliemae/ds-
|
|
42
|
+
"@elliemae/ds-portal": "3.22.0-next.31",
|
|
43
|
+
"@elliemae/ds-props-helpers": "3.22.0-next.31",
|
|
44
|
+
"@elliemae/ds-classnames": "3.22.0-next.31",
|
|
45
|
+
"@elliemae/ds-backdrop": "3.22.0-next.31"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
-
"@elliemae/pui-cli": "~9.0.0-next.
|
|
49
|
-
"@elliemae/ds-monorepo-devops": "3.22.0-next.
|
|
48
|
+
"@elliemae/pui-cli": "~9.0.0-next.22",
|
|
49
|
+
"@elliemae/ds-monorepo-devops": "3.22.0-next.31"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"react": "^17.0.2",
|
|
@@ -57,14 +57,14 @@
|
|
|
57
57
|
"typeSafety": false
|
|
58
58
|
},
|
|
59
59
|
"scripts": {
|
|
60
|
-
"dev": "cross-env NODE_ENV=development node
|
|
60
|
+
"dev": "cross-env NODE_ENV=development node ../../../scripts/build/build.mjs --watch",
|
|
61
61
|
"test": "pui-cli test --passWithNoTests",
|
|
62
|
-
"lint": "node
|
|
63
|
-
"eslint:fix": "eslint --ext='.js,.jsx,.test.js,.ts,.tsx' --fix --config='
|
|
64
|
-
"dts": "node
|
|
65
|
-
"build": "cross-env NODE_ENV=production node
|
|
62
|
+
"lint": "node ../../../scripts/lint.mjs",
|
|
63
|
+
"eslint:fix": "eslint --ext='.js,.jsx,.test.js,.ts,.tsx' --fix --config='../../../.eslintrc.js' src/",
|
|
64
|
+
"dts": "node ../../../scripts/dts.mjs",
|
|
65
|
+
"build": "cross-env NODE_ENV=production node ../../../scripts/build/build.mjs",
|
|
66
66
|
"dev:build": "pnpm --filter {.}... build",
|
|
67
67
|
"dev:install": "pnpm --filter {.}... i --no-lockfile && pnpm run dev:build",
|
|
68
|
-
"checkDeps": "npm exec
|
|
68
|
+
"checkDeps": "npm exec ../../util/ds-codemods -- check-missing-packages --projectFolderPath=\"./\" --ignorePackagesGlobPattern=\"\" --ignoreFilesGlobPattern=\"**/test-ables/*,**/tests/*\""
|
|
69
69
|
}
|
|
70
70
|
}
|