@elliemae/ds-overlay 1.61.12 → 1.61.13

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DSOverlay.js","sources":["../../src/DSOverlay.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\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')(\n blockName,\n null,\n ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n }),\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 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\n .slice(overlayIndex)\n .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 {\n usePortal,\n isOpen,\n hasBackdrop,\n children,\n backDropZIndex,\n } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\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\nDSOverlay.propTypes = {\n backDropZIndex: PropTypes.number,\n children: PropTypes.element,\n hasBackdrop: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClickOutside: PropTypes.func,\n usePortal: PropTypes.bool,\n};\n\nexport { DSOverlay };\nexport default DSOverlay;\n"],"names":["blockName","events","OverlayContainer","aggregatedClasses","usePortal","isOpen","inline","opened","DSOverlay","props","overlayRef","React","createRef","handleDocumentClick","bind","prevProps","openOverlay","closeOverlay","forEach","event","document","addEventListener","removeEventListener","e","onClickOutside","overlayStack","overlayIndex","indexOf","hasClickedOverlay","slice","some","elem","current","contains","target","isSameNode","addClickOutsideListeners","push","removeClickOutsideListeners","splice","hasBackdrop","children","backDropZIndex","overlay","DSBackdrop","DSPortal","Component","defaultProps","propTypes","PropTypes","number","element","bool","func"],"mappings":"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"}
1
+ {"version":3,"file":"DSOverlay.js","sources":["../../src/DSOverlay.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\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')(\n blockName,\n null,\n ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n }),\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 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\n .slice(overlayIndex)\n .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 {\n usePortal,\n isOpen,\n hasBackdrop,\n children,\n backDropZIndex,\n } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\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\nDSOverlay.propTypes = {\n backDropZIndex: PropTypes.number,\n children: PropTypes.element,\n hasBackdrop: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClickOutside: PropTypes.func,\n usePortal: PropTypes.bool,\n};\n\nexport { DSOverlay };\nexport default DSOverlay;\n"],"names":["blockName","events","OverlayContainer","aggregatedClasses","usePortal","isOpen","inline","opened","DSOverlay","props","_classCallCheck","overlayRef","React","createRef","handleDocumentClick","bind","prevProps","openOverlay","closeOverlay","forEach","event","document","addEventListener","removeEventListener","e","onClickOutside","overlayStack","overlayIndex","indexOf","hasClickedOverlay","slice","some","elem","current","contains","target","isSameNode","addClickOutsideListeners","push","removeClickOutsideListeners","splice","hasBackdrop","children","backDropZIndex","overlay","DSBackdrop","DSPortal","Component","defaultProps","propTypes","PropTypes","number","element","bool","func"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DSOverlay.js","sources":["../../src/DSOverlay.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\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')(\n blockName,\n null,\n ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n }),\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 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\n .slice(overlayIndex)\n .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 {\n usePortal,\n isOpen,\n hasBackdrop,\n children,\n backDropZIndex,\n } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\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\nDSOverlay.propTypes = {\n backDropZIndex: PropTypes.number,\n children: PropTypes.element,\n hasBackdrop: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClickOutside: PropTypes.func,\n usePortal: PropTypes.bool,\n};\n\nexport { DSOverlay };\nexport default DSOverlay;\n"],"names":["blockName","events","OverlayContainer","aggregatedClasses","usePortal","isOpen","inline","opened","DSOverlay","props","overlayRef","React","createRef","handleDocumentClick","bind","prevProps","openOverlay","closeOverlay","forEach","event","document","addEventListener","removeEventListener","e","onClickOutside","overlayStack","overlayIndex","indexOf","hasClickedOverlay","slice","some","elem","current","contains","target","isSameNode","addClickOutsideListeners","push","removeClickOutsideListeners","splice","hasBackdrop","children","backDropZIndex","overlay","Component","defaultProps","propTypes","PropTypes","number","element","bool","func"],"mappings":"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"}
1
+ {"version":3,"file":"DSOverlay.js","sources":["../../src/DSOverlay.tsx"],"sourcesContent":["/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\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')(\n blockName,\n null,\n ({ usePortal, isOpen }) => ({\n inline: !usePortal,\n opened: isOpen,\n }),\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 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\n .slice(overlayIndex)\n .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 {\n usePortal,\n isOpen,\n hasBackdrop,\n children,\n backDropZIndex,\n } = this.props;\n\n if (!isOpen) return null;\n\n const overlay = (\n <OverlayContainer\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\nDSOverlay.propTypes = {\n backDropZIndex: PropTypes.number,\n children: PropTypes.element,\n hasBackdrop: PropTypes.bool,\n isOpen: PropTypes.bool,\n onClickOutside: PropTypes.func,\n usePortal: PropTypes.bool,\n};\n\nexport { DSOverlay };\nexport default DSOverlay;\n"],"names":["blockName","events","OverlayContainer","aggregatedClasses","usePortal","isOpen","inline","opened","DSOverlay","props","overlayRef","React","createRef","handleDocumentClick","bind","prevProps","openOverlay","closeOverlay","forEach","event","document","addEventListener","removeEventListener","e","onClickOutside","overlayStack","overlayIndex","indexOf","hasClickedOverlay","slice","some","elem","current","contains","target","isSameNode","addClickOutsideListeners","push","removeClickOutsideListeners","splice","hasBackdrop","children","backDropZIndex","overlay","Component","defaultProps","propTypes","PropTypes","number","element","bool","func"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/ds-overlay",
3
- "version": "1.61.12",
3
+ "version": "1.61.13",
4
4
  "license": "MIT",
5
5
  "description": "Ellie Mae - Dim Sum - Overlay",
6
6
  "module": "esm/index.js",
@@ -16,9 +16,9 @@
16
16
  "build": "node ../../scripts/build/build.js"
17
17
  },
18
18
  "dependencies": {
19
- "@elliemae/ds-backdrop": "1.61.12",
20
- "@elliemae/ds-classnames": "1.61.12",
21
- "@elliemae/ds-portal": "1.61.12",
19
+ "@elliemae/ds-backdrop": "1.61.13",
20
+ "@elliemae/ds-classnames": "1.61.13",
21
+ "@elliemae/ds-portal": "1.61.13",
22
22
  "prop-types": "~15.7.2"
23
23
  },
24
24
  "peerDependencies": {