@laerdal/life-react-components 6.0.0-dev.20.full → 6.0.0-dev.22.full.full

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 (59) hide show
  1. package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +3 -3
  2. package/dist/Card/VerticalCard/Card.cjs +47 -11
  3. package/dist/Card/VerticalCard/Card.cjs.map +1 -1
  4. package/dist/Card/VerticalCard/Card.d.ts +1 -0
  5. package/dist/Card/VerticalCard/Card.js +47 -11
  6. package/dist/Card/VerticalCard/Card.js.map +1 -1
  7. package/dist/Card/VerticalCard/CardBottomSection.cjs +6 -0
  8. package/dist/Card/VerticalCard/CardBottomSection.cjs.map +1 -1
  9. package/dist/Card/VerticalCard/CardBottomSection.js +6 -0
  10. package/dist/Card/VerticalCard/CardBottomSection.js.map +1 -1
  11. package/dist/Card/VerticalCard/CardMiddleSection.cjs +15 -11
  12. package/dist/Card/VerticalCard/CardMiddleSection.cjs.map +1 -1
  13. package/dist/Card/VerticalCard/CardMiddleSection.d.ts +5 -0
  14. package/dist/Card/VerticalCard/CardMiddleSection.js +15 -11
  15. package/dist/Card/VerticalCard/CardMiddleSection.js.map +1 -1
  16. package/dist/Card/VerticalCard/CardTopSection.cjs +3 -1
  17. package/dist/Card/VerticalCard/CardTopSection.cjs.map +1 -1
  18. package/dist/Card/VerticalCard/CardTopSection.js +3 -1
  19. package/dist/Card/VerticalCard/CardTopSection.js.map +1 -1
  20. package/dist/Card/__tests__/Card.test.tsx +3 -3
  21. package/dist/Chips/FilterChip.cjs +1 -0
  22. package/dist/Chips/FilterChip.cjs.map +1 -1
  23. package/dist/Chips/FilterChip.js +1 -0
  24. package/dist/Chips/FilterChip.js.map +1 -1
  25. package/dist/HyperLink/HyperLink.cjs +1 -1
  26. package/dist/HyperLink/HyperLink.cjs.map +1 -1
  27. package/dist/HyperLink/HyperLink.js +1 -1
  28. package/dist/HyperLink/HyperLink.js.map +1 -1
  29. package/dist/Modals/ModalContainer.cjs +96 -83
  30. package/dist/Modals/ModalContainer.cjs.map +1 -1
  31. package/dist/Modals/ModalContainer.d.ts +17 -1
  32. package/dist/Modals/ModalContainer.js +96 -83
  33. package/dist/Modals/ModalContainer.js.map +1 -1
  34. package/dist/Paginator/Paginator.cjs +17 -13
  35. package/dist/Paginator/Paginator.cjs.map +1 -1
  36. package/dist/Paginator/Paginator.d.ts +1 -5
  37. package/dist/Paginator/Paginator.js +17 -13
  38. package/dist/Paginator/Paginator.js.map +1 -1
  39. package/dist/Paginator/__tests__/Paginator.test.tsx +6 -12
  40. package/dist/test-utils.cjs +7 -1
  41. package/dist/test-utils.cjs.map +1 -1
  42. package/dist/test-utils.js +7 -1
  43. package/dist/test-utils.js.map +1 -1
  44. package/package.json +148 -144
  45. package/dist/GlobalNavigationBar/__tests__/GlobalNavigationBar.tests.d.ts +0 -1
  46. package/dist/GlobalNavigationBar/__tests__/Logo.tests.d.ts +0 -1
  47. package/dist/List/__tests__/ListRow.tests.d.ts +0 -1
  48. package/dist/Tabs/__tests__/TabLink.tests.d.ts +0 -1
  49. package/dist/Tabs/__tests__/Tablist.tests.d.ts +0 -2
  50. package/dist/common/Link.cjs +0 -45
  51. package/dist/common/Link.cjs.map +0 -1
  52. package/dist/common/Link.d.ts +0 -9
  53. package/dist/common/Link.js +0 -37
  54. package/dist/common/Link.js.map +0 -1
  55. package/dist/common/NavigationHelper.cjs +0 -30
  56. package/dist/common/NavigationHelper.cjs.map +0 -1
  57. package/dist/common/NavigationHelper.d.ts +0 -4
  58. package/dist/common/NavigationHelper.js +0 -23
  59. package/dist/common/NavigationHelper.js.map +0 -1
@@ -79,26 +79,98 @@ const modalTransitions = `
79
79
  transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);
80
80
  }
81
81
  `;
82
- const Counter = {
83
- openInstances: 0
84
- };
85
- const ModalContainer = props => {
86
- const [scroll, setScroll] = React.useState();
87
- const [wasOpened, setWasOpened] = React.useState(false);
88
- const preventScroll = offset => {
89
- Counter.openInstances++;
90
- setWasOpened(true);
91
- if (document) {
92
- setScroll(offset);
82
+ class ModalContainer extends React.Component {
83
+ componentDidMount() {
84
+ if (_reactModal.default.defaultStyles.overlay) {
85
+ _reactModal.default.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
86
+ }
87
+
88
+ //append style node to override modal transition classes
89
+ if (!document.querySelector('[modal-custom-styling="active"]')) {
90
+ const head = document.head || document.getElementsByTagName('head')[0];
91
+ const style = document.createElement('style');
92
+ style.setAttribute('modal-custom-styling', 'active');
93
+ head.appendChild(style);
94
+ style.appendChild(document.createTextNode(modalTransitions));
95
+ }
96
+ if (this.props.showModal) {
97
+ this.preventScroll(window.scrollY);
98
+ }
99
+ }
100
+ getSnapshotBeforeUpdate(prevProps, prevState) {
101
+ return {
102
+ scroll: window.scrollY
103
+ };
104
+ }
105
+ componentDidUpdate(prevProps, prevState, snapshot) {
106
+ if (this.props.showModal && !prevProps.showModal) {
107
+ this.preventScroll(snapshot.scroll);
108
+ }
109
+ if (!this.props.showModal && prevProps.showModal) {
110
+ this.resetScroll();
111
+ }
112
+ }
113
+ componentWillUnmount() {
114
+ if (this.props.showModal) {
115
+ this.resetScroll();
116
+ }
117
+ }
118
+ render() {
119
+ const {
120
+ id,
121
+ showModal,
122
+ closeModal,
123
+ children,
124
+ height = 'auto',
125
+ width = 'auto',
126
+ overflow = 'visible',
127
+ padding,
128
+ minWidth = '',
129
+ maxWidth = '',
130
+ zIndex = parseInt(_styles.Z_INDEXES.modal),
131
+ shouldCloseOnOverlayClick = true
132
+ } = this.props;
133
+
134
+ // should be at least z-index of modal and below z-index of toast
135
+ const zIndexValue = Math.min(Math.max(zIndex, +_styles.Z_INDEXES.modal), +_styles.Z_INDEXES.toast - 1);
136
+ const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
137
+ height,
138
+ width,
139
+ padding,
140
+ overflow,
141
+ minWidth,
142
+ maxWidth,
143
+ zIndex: zIndexValue
144
+ });
145
+ const styles = {
146
+ content: stylesConfiguration
147
+ };
148
+ _reactModal.default.setAppElement('body');
149
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactModal.default, {
150
+ id: id,
151
+ isOpen: showModal,
152
+ closeTimeoutMS: 120,
153
+ onRequestClose: () => closeModal(),
154
+ shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
155
+ style: styles,
156
+ children: children
157
+ });
158
+ }
159
+ preventScroll(offset) {
160
+ if (!ModalContainer.openInstances) {
161
+ this.setState({
162
+ scroll: offset
163
+ });
93
164
  document.body.style.position = 'fixed';
94
165
  document.body.style.left = `0px`;
95
166
  document.body.style.right = `0px`;
96
167
  document.body.style.top = `-${offset}px`;
97
168
  }
98
- };
99
- const resetScroll = () => {
100
- Counter.openInstances--;
101
- if (!Counter.openInstances && document) {
169
+ ModalContainer.openInstances++;
170
+ }
171
+ resetScroll() {
172
+ ModalContainer.openInstances--;
173
+ if (!ModalContainer.openInstances) {
102
174
  //@ts-ignore
103
175
  document.body.style.position = null;
104
176
  //@ts-ignore
@@ -107,74 +179,14 @@ const ModalContainer = props => {
107
179
  document.body.style.top = null;
108
180
  //@ts-ignore
109
181
  document.body.style.right = null;
110
- scroll && window.scrollTo(0, scroll);
111
- setScroll(0);
112
- }
113
- };
114
- React.useEffect(() => {
115
- window && setScroll(window.scrollY);
116
- });
117
- React.useEffect(() => {
118
- //modal was opened
119
- window && !props.showModal && wasOpened && resetScroll();
120
- //modal was closed
121
- window && props.showModal && preventScroll(window.scrollY);
122
- }, [props.showModal]);
123
- React.useEffect(() => {
124
- if (_reactModal.default.defaultStyles.overlay) {
125
- _reactModal.default.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
126
- }
127
-
128
- //append style node to override modal transition classes
129
- if (document && !document.querySelector('[modal-custom-styling="active"]')) {
130
- const head = document.head || document.getElementsByTagName('head')[0];
131
- const style = document.createElement('style');
132
- style.setAttribute('modal-custom-styling', 'active');
133
- head.appendChild(style);
134
- style.appendChild(document.createTextNode(modalTransitions));
182
+ this.state.scroll && window.scrollTo(0, this.state.scroll);
183
+ this.setState({
184
+ scroll: 0
185
+ });
135
186
  }
136
- }, []);
137
- const {
138
- id,
139
- showModal,
140
- closeModal,
141
- children,
142
- height = 'auto',
143
- width = 'auto',
144
- overflow = 'visible',
145
- padding,
146
- minWidth = '',
147
- maxWidth = '',
148
- zIndex = parseInt(_styles.Z_INDEXES.modal),
149
- shouldCloseOnOverlayClick = true
150
- } = props;
151
-
152
- // should be at least z-index of modal and below z-index of toast
153
- const zIndexValue = Math.min(Math.max(zIndex, +_styles.Z_INDEXES.modal), +_styles.Z_INDEXES.toast - 1);
154
- const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
155
- height,
156
- width,
157
- padding,
158
- overflow,
159
- minWidth,
160
- maxWidth,
161
- zIndex: zIndexValue
162
- });
163
- const styles = {
164
- content: stylesConfiguration
165
- };
166
- _reactModal.default.setAppElement('body');
167
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactModal.default, {
168
- id: id,
169
- isOpen: showModal,
170
- closeTimeoutMS: 120,
171
- shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
172
- onRequestClose: () => closeModal(),
173
- style: styles,
174
- children: children
175
- });
176
- };
177
- ModalContainer.propTypes = {
187
+ }
188
+ }
189
+ (0, _defineProperty2.default)(ModalContainer, "propTypes", {
178
190
  id: _propTypes.default.string,
179
191
  showModal: _propTypes.default.bool.isRequired,
180
192
  closeModal: _propTypes.default.func.isRequired,
@@ -187,6 +199,7 @@ ModalContainer.propTypes = {
187
199
  maxWidth: _propTypes.default.string,
188
200
  zIndex: _propTypes.default.number,
189
201
  shouldCloseOnOverlayClick: _propTypes.default.bool
190
- };
202
+ });
203
+ (0, _defineProperty2.default)(ModalContainer, "openInstances", 0);
191
204
  var _default = exports.default = ModalContainer;
192
205
  //# sourceMappingURL=ModalContainer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","Counter","openInstances","ModalContainer","props","scroll","setScroll","useState","wasOpened","setWasOpened","preventScroll","offset","document","body","style","position","resetScroll","window","scrollTo","useEffect","scrollY","showModal","ReactModal","defaultStyles","overlay","backgroundColor","querySelector","head","getElementsByTagName","createElement","setAttribute","appendChild","createTextNode","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","propTypes","_propTypes","string","bool","isRequired","func","any","number","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\nconst Counter = { openInstances : 0};\r\nconst ModalContainer: React.FC<ModalContainerProps> = (props: ModalContainerProps) => {\r\n\r\n const [scroll, setScroll] = React.useState<number>();\r\n const [wasOpened, setWasOpened] = React.useState<boolean>(false);\r\n \r\n const preventScroll = (offset: number) => {\r\n Counter.openInstances++;\r\n setWasOpened(true);\r\n if (document) {\r\n setScroll(offset);\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n }\r\n\r\n const resetScroll = () => {\r\n Counter.openInstances--;\r\n if (!Counter.openInstances && document) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n scroll && window.scrollTo(0, scroll);\r\n setScroll(0);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n window && setScroll(window.scrollY);\r\n });\r\n\r\n React.useEffect(() => {\r\n //modal was opened\r\n window && !props.showModal && wasOpened && resetScroll();\r\n //modal was closed\r\n window && props.showModal && preventScroll(window.scrollY);\r\n }, [props.showModal]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (document && !document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n \r\n }, []);\r\n\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n onRequestClose={() => closeModal()}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n}\r\n\r\nexport default ModalContainer;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModalContainer.cjs","names":["React","_interopRequireWildcard","require","_reactModal","_interopRequireDefault","_styles","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ownKeys","keys","getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOWS","BOXSHADOW_L3","modalTransitions","Z_INDEXES","backdrop","modal","ModalContainer","Component","componentDidMount","ReactModal","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","assign","styles","setAppElement","jsx","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_propTypes","string","bool","isRequired","func","any","number","_default","exports"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}
@@ -13,5 +13,21 @@ type ModalContainerProps = {
13
13
  zIndex?: number;
14
14
  shouldCloseOnOverlayClick?: boolean;
15
15
  };
16
- declare const ModalContainer: React.FC<ModalContainerProps>;
16
+ type ModalContainerState = {
17
+ scroll: number;
18
+ };
19
+ declare class ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {
20
+ private static openInstances;
21
+ componentDidMount(): void;
22
+ getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): {
23
+ scroll: number;
24
+ };
25
+ componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: {
26
+ scroll: number;
27
+ }): void;
28
+ componentWillUnmount(): void;
29
+ render(): React.JSX.Element;
30
+ private preventScroll;
31
+ private resetScroll;
32
+ }
17
33
  export default ModalContainer;
@@ -71,26 +71,98 @@ const modalTransitions = `
71
71
  transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);
72
72
  }
73
73
  `;
74
- const Counter = {
75
- openInstances: 0
76
- };
77
- const ModalContainer = props => {
78
- const [scroll, setScroll] = React.useState();
79
- const [wasOpened, setWasOpened] = React.useState(false);
80
- const preventScroll = offset => {
81
- Counter.openInstances++;
82
- setWasOpened(true);
83
- if (document) {
84
- setScroll(offset);
74
+ class ModalContainer extends React.Component {
75
+ componentDidMount() {
76
+ if (ReactModal.defaultStyles.overlay) {
77
+ ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
78
+ }
79
+
80
+ //append style node to override modal transition classes
81
+ if (!document.querySelector('[modal-custom-styling="active"]')) {
82
+ const head = document.head || document.getElementsByTagName('head')[0];
83
+ const style = document.createElement('style');
84
+ style.setAttribute('modal-custom-styling', 'active');
85
+ head.appendChild(style);
86
+ style.appendChild(document.createTextNode(modalTransitions));
87
+ }
88
+ if (this.props.showModal) {
89
+ this.preventScroll(window.scrollY);
90
+ }
91
+ }
92
+ getSnapshotBeforeUpdate(prevProps, prevState) {
93
+ return {
94
+ scroll: window.scrollY
95
+ };
96
+ }
97
+ componentDidUpdate(prevProps, prevState, snapshot) {
98
+ if (this.props.showModal && !prevProps.showModal) {
99
+ this.preventScroll(snapshot.scroll);
100
+ }
101
+ if (!this.props.showModal && prevProps.showModal) {
102
+ this.resetScroll();
103
+ }
104
+ }
105
+ componentWillUnmount() {
106
+ if (this.props.showModal) {
107
+ this.resetScroll();
108
+ }
109
+ }
110
+ render() {
111
+ const {
112
+ id,
113
+ showModal,
114
+ closeModal,
115
+ children,
116
+ height = 'auto',
117
+ width = 'auto',
118
+ overflow = 'visible',
119
+ padding,
120
+ minWidth = '',
121
+ maxWidth = '',
122
+ zIndex = parseInt(Z_INDEXES.modal),
123
+ shouldCloseOnOverlayClick = true
124
+ } = this.props;
125
+
126
+ // should be at least z-index of modal and below z-index of toast
127
+ const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);
128
+ const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
129
+ height,
130
+ width,
131
+ padding,
132
+ overflow,
133
+ minWidth,
134
+ maxWidth,
135
+ zIndex: zIndexValue
136
+ });
137
+ const styles = {
138
+ content: stylesConfiguration
139
+ };
140
+ ReactModal.setAppElement('body');
141
+ return /*#__PURE__*/_jsx(ReactModal, {
142
+ id: id,
143
+ isOpen: showModal,
144
+ closeTimeoutMS: 120,
145
+ onRequestClose: () => closeModal(),
146
+ shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
147
+ style: styles,
148
+ children: children
149
+ });
150
+ }
151
+ preventScroll(offset) {
152
+ if (!ModalContainer.openInstances) {
153
+ this.setState({
154
+ scroll: offset
155
+ });
85
156
  document.body.style.position = 'fixed';
86
157
  document.body.style.left = `0px`;
87
158
  document.body.style.right = `0px`;
88
159
  document.body.style.top = `-${offset}px`;
89
160
  }
90
- };
91
- const resetScroll = () => {
92
- Counter.openInstances--;
93
- if (!Counter.openInstances && document) {
161
+ ModalContainer.openInstances++;
162
+ }
163
+ resetScroll() {
164
+ ModalContainer.openInstances--;
165
+ if (!ModalContainer.openInstances) {
94
166
  //@ts-ignore
95
167
  document.body.style.position = null;
96
168
  //@ts-ignore
@@ -99,74 +171,14 @@ const ModalContainer = props => {
99
171
  document.body.style.top = null;
100
172
  //@ts-ignore
101
173
  document.body.style.right = null;
102
- scroll && window.scrollTo(0, scroll);
103
- setScroll(0);
104
- }
105
- };
106
- React.useEffect(() => {
107
- window && setScroll(window.scrollY);
108
- });
109
- React.useEffect(() => {
110
- //modal was opened
111
- window && !props.showModal && wasOpened && resetScroll();
112
- //modal was closed
113
- window && props.showModal && preventScroll(window.scrollY);
114
- }, [props.showModal]);
115
- React.useEffect(() => {
116
- if (ReactModal.defaultStyles.overlay) {
117
- ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';
174
+ this.state.scroll && window.scrollTo(0, this.state.scroll);
175
+ this.setState({
176
+ scroll: 0
177
+ });
118
178
  }
119
-
120
- //append style node to override modal transition classes
121
- if (document && !document.querySelector('[modal-custom-styling="active"]')) {
122
- const head = document.head || document.getElementsByTagName('head')[0];
123
- const style = document.createElement('style');
124
- style.setAttribute('modal-custom-styling', 'active');
125
- head.appendChild(style);
126
- style.appendChild(document.createTextNode(modalTransitions));
127
- }
128
- }, []);
129
- const {
130
- id,
131
- showModal,
132
- closeModal,
133
- children,
134
- height = 'auto',
135
- width = 'auto',
136
- overflow = 'visible',
137
- padding,
138
- minWidth = '',
139
- maxWidth = '',
140
- zIndex = parseInt(Z_INDEXES.modal),
141
- shouldCloseOnOverlayClick = true
142
- } = props;
143
-
144
- // should be at least z-index of modal and below z-index of toast
145
- const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);
146
- const stylesConfiguration = Object.assign(_objectSpread({}, ModalContainerStyles.content), {
147
- height,
148
- width,
149
- padding,
150
- overflow,
151
- minWidth,
152
- maxWidth,
153
- zIndex: zIndexValue
154
- });
155
- const styles = {
156
- content: stylesConfiguration
157
- };
158
- ReactModal.setAppElement('body');
159
- return /*#__PURE__*/_jsx(ReactModal, {
160
- id: id,
161
- isOpen: showModal,
162
- closeTimeoutMS: 120,
163
- shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
164
- onRequestClose: () => closeModal(),
165
- style: styles,
166
- children: children
167
- });
168
- };
169
- ModalContainer.propTypes = {
179
+ }
180
+ }
181
+ _defineProperty(ModalContainer, "propTypes", {
170
182
  id: _pt.string,
171
183
  showModal: _pt.bool.isRequired,
172
184
  closeModal: _pt.func.isRequired,
@@ -179,6 +191,7 @@ ModalContainer.propTypes = {
179
191
  maxWidth: _pt.string,
180
192
  zIndex: _pt.number,
181
193
  shouldCloseOnOverlayClick: _pt.bool
182
- };
194
+ });
195
+ _defineProperty(ModalContainer, "openInstances", 0);
183
196
  export default ModalContainer;
184
197
  //# sourceMappingURL=ModalContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","Z_INDEXES","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","Counter","openInstances","ModalContainer","props","scroll","setScroll","useState","wasOpened","setWasOpened","preventScroll","offset","document","body","style","position","resetScroll","window","scrollTo","useEffect","scrollY","showModal","defaultStyles","overlay","backgroundColor","querySelector","head","getElementsByTagName","createElement","setAttribute","appendChild","createTextNode","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","propTypes","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\nconst Counter = { openInstances : 0};\r\nconst ModalContainer: React.FC<ModalContainerProps> = (props: ModalContainerProps) => {\r\n\r\n const [scroll, setScroll] = React.useState<number>();\r\n const [wasOpened, setWasOpened] = React.useState<boolean>(false);\r\n \r\n const preventScroll = (offset: number) => {\r\n Counter.openInstances++;\r\n setWasOpened(true);\r\n if (document) {\r\n setScroll(offset);\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n }\r\n\r\n const resetScroll = () => {\r\n Counter.openInstances--;\r\n if (!Counter.openInstances && document) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n scroll && window.scrollTo(0, scroll);\r\n setScroll(0);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n window && setScroll(window.scrollY);\r\n });\r\n\r\n React.useEffect(() => {\r\n //modal was opened\r\n window && !props.showModal && wasOpened && resetScroll();\r\n //modal was closed\r\n window && props.showModal && preventScroll(window.scrollY);\r\n }, [props.showModal]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (document && !document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n \r\n }, []);\r\n\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n onRequestClose={() => closeModal()}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n}\r\n\r\nexport default ModalContainer;\r\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ModalContainer.js","names":["React","ReactModal","BOXSHADOWS","Z_INDEXES","jsx","_jsx","ModalContainerStyles","content","top","left","right","bottom","marginRight","width","height","borderRadius","boxSizing","margin","overflow","boxShadow","BOXSHADOW_L3","modalTransitions","backdrop","modal","ModalContainer","Component","componentDidMount","defaultStyles","overlay","backgroundColor","document","querySelector","head","getElementsByTagName","style","createElement","setAttribute","appendChild","createTextNode","props","showModal","preventScroll","window","scrollY","getSnapshotBeforeUpdate","prevProps","prevState","scroll","componentDidUpdate","snapshot","resetScroll","componentWillUnmount","render","id","closeModal","children","padding","minWidth","maxWidth","zIndex","parseInt","shouldCloseOnOverlayClick","zIndexValue","Math","min","max","toast","stylesConfiguration","Object","assign","_objectSpread","styles","setAppElement","isOpen","closeTimeoutMS","onRequestClose","offset","openInstances","setState","body","position","state","scrollTo","_defineProperty","_pt","string","bool","isRequired","func","any","number"],"sources":["../../src/Modals/ModalContainer.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport ReactModal from 'react-modal';\r\nimport {BOXSHADOWS} from '../styles';\r\nimport {Z_INDEXES} from '../styles';\r\nimport styled, {keyframes} from 'styled-components';\r\n\r\nconst ModalContainerStyles = {\r\n content: {\r\n top: 'auto',\r\n left: 'auto',\r\n right: 'auto',\r\n bottom: 'auto',\r\n marginRight: '-50%',\r\n width: '640px',\r\n height: '320px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box' as any,\r\n margin: 0,\r\n overflow: 'auto',\r\n boxShadow: BOXSHADOWS.BOXSHADOW_L3,\r\n },\r\n};\r\n\r\n//override modal classes to define the animations\r\nconst modalTransitions = `\r\n\r\n@keyframes modalOpenAnimation {\r\n from{\r\n transform: scale(1.1, 1.1);\r\n }\r\n to {\r\n transform: scale(1, 1);\r\n }\r\n}\r\n\r\n.ReactModal__Overlay {\r\n opacity: 0;\r\n z-index: ${Z_INDEXES.backdrop};\r\n display:flex;\r\n justify-content: center;\r\n align-items: center;\r\n}\r\n\r\n.ReactModal__Overlay--after-open {\r\n opacity: 1;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content{\r\n z-index: ${Z_INDEXES.modal};\r\n opacity:0;\r\n transition: opacity 150ms cubic-bezier(0.22, 0.61, 0.35, 1);\r\n}\r\n\r\n.ReactModal__Content--after-open{\r\n opacity: 1;\r\n animation: modalOpenAnimation 150ms ease-in-out;\r\n}\r\n\r\n.ReactModal__Overlay--before-close {\r\n opacity: 0;\r\n transition: opacity 120ms linear;\r\n}\r\n\r\n.ReactModal__Content--before-close{\r\n opacity: 0;\r\n transform: scale(1.1, 1.1);\r\n transition: transform 120ms ease-in-out, opacity 120ms cubic-bezier(0.55, 0.05, 0.67, 0.19);\r\n}\r\n`;\r\n\r\n\r\ntype ModalContainerProps = {\r\n id?: string;\r\n showModal: boolean;\r\n closeModal: () => void;\r\n children: any;\r\n height?: any;\r\n width?: any;\r\n overflow?: string;\r\n padding?: string;\r\n minWidth?: string;\r\n maxWidth?: string;\r\n zIndex?: number;\r\n shouldCloseOnOverlayClick?: boolean;\r\n};\r\n\r\ntype ModalContainerState = {\r\n scroll: number;\r\n};\r\n\r\nclass ModalContainer extends React.Component<ModalContainerProps, ModalContainerState> {\r\n private static openInstances = 0;\r\n\r\n componentDidMount() {\r\n if (ReactModal.defaultStyles.overlay) {\r\n ReactModal.defaultStyles.overlay.backgroundColor = 'rgba(0,0,0,0.5)';\r\n }\r\n\r\n //append style node to override modal transition classes\r\n if (!document.querySelector('[modal-custom-styling=\"active\"]')) {\r\n const head = document.head || document.getElementsByTagName('head')[0];\r\n const style = document.createElement('style');\r\n style.setAttribute('modal-custom-styling', 'active');\r\n head.appendChild(style);\r\n style.appendChild(document.createTextNode(modalTransitions));\r\n }\r\n\r\n if (this.props.showModal) {\r\n this.preventScroll(window.scrollY);\r\n }\r\n }\r\n\r\n getSnapshotBeforeUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>): { scroll: number } {\r\n return {scroll: window.scrollY};\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly<ModalContainerProps>, prevState: Readonly<ModalContainerState>, snapshot?: { scroll: number }) {\r\n if (this.props.showModal && !prevProps.showModal) {\r\n this.preventScroll(snapshot!.scroll);\r\n }\r\n if (!this.props.showModal && prevProps.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.showModal) {\r\n this.resetScroll();\r\n }\r\n }\r\n\r\n render() {\r\n const {\r\n id,\r\n showModal,\r\n closeModal,\r\n children,\r\n height = 'auto',\r\n width = 'auto',\r\n overflow = 'visible',\r\n padding,\r\n minWidth = '',\r\n maxWidth = '',\r\n zIndex = parseInt(Z_INDEXES.modal),\r\n shouldCloseOnOverlayClick = true\r\n } = this.props;\r\n\r\n // should be at least z-index of modal and below z-index of toast\r\n const zIndexValue = Math.min(Math.max(zIndex, +Z_INDEXES.modal), +Z_INDEXES.toast - 1);\r\n const stylesConfiguration = Object.assign({...ModalContainerStyles.content}, {\r\n height,\r\n width,\r\n padding,\r\n overflow,\r\n minWidth,\r\n maxWidth,\r\n zIndex: zIndexValue\r\n });\r\n const styles = {content: stylesConfiguration};\r\n\r\n ReactModal.setAppElement('body');\r\n return (\r\n <ReactModal id={id}\r\n isOpen={showModal}\r\n closeTimeoutMS={120}\r\n onRequestClose={() => closeModal()}\r\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\r\n style={styles}>\r\n {children}\r\n </ReactModal>\r\n );\r\n }\r\n\r\n private preventScroll(offset: number) {\r\n if (!ModalContainer.openInstances) {\r\n this.setState({scroll: offset});\r\n document.body.style.position = 'fixed';\r\n document.body.style.left = `0px`;\r\n document.body.style.right = `0px`;\r\n document.body.style.top = `-${offset}px`;\r\n }\r\n ModalContainer.openInstances++\r\n }\r\n\r\n private resetScroll() {\r\n ModalContainer.openInstances--;\r\n if (!ModalContainer.openInstances) {\r\n //@ts-ignore\r\n document.body.style.position = null;\r\n //@ts-ignore\r\n document.body.style.left = null;\r\n //@ts-ignore\r\n document.body.style.top = null;\r\n //@ts-ignore\r\n document.body.style.right = null;\r\n this.state.scroll && window.scrollTo(0, this.state.scroll);\r\n this.setState({scroll: 0});\r\n }\r\n }\r\n}\r\n\r\nexport default ModalContainer;"],"mappings":"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","ignoreList":[]}