@activecollab/components 1.0.193 → 1.0.194

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.
@@ -30,12 +30,15 @@ var Dialog = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
30
30
  onClose = _ref.onClose,
31
31
  className = _ref.className,
32
32
  _ref$enableBackground = _ref.enableBackgroundClick,
33
- enableBackgroundClick = _ref$enableBackground === void 0 ? false : _ref$enableBackground;
33
+ enableBackgroundClick = _ref$enableBackground === void 0 ? false : _ref$enableBackground,
34
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
35
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs;
34
36
  return /*#__PURE__*/_react.default.createElement(_Modal.Modal, {
35
37
  ref: ref,
36
38
  open: open,
37
39
  onClose: onClose,
38
- disableBackgroundClick: !enableBackgroundClick
40
+ disableBackgroundClick: !enableBackgroundClick,
41
+ disableCloseOnEsc: disableCloseOnEsc
39
42
  }, /*#__PURE__*/_react.default.createElement(_SlideFromTop.SlideFromTop, {
40
43
  in: open
41
44
  }, /*#__PURE__*/_react.default.createElement(_Styles.StyledDialog, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":["Dialog","ref","children","open","onClose","className","enableBackgroundClick","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAUO,IAAMA,MAAM,gBAAG,uBACpB,gBAQEC,GARF,EASK;AAAA,MAPDC,QAOC,QAPDA,QAOC;AAAA,uBANDC,IAMC;AAAA,MANDA,IAMC,0BANM,KAMN;AAAA,MALDC,OAKC,QALDA,OAKC;AAAA,MAJDC,SAIC,QAJDA,SAIC;AAAA,mCAHDC,qBAGC;AAAA,MAHDA,qBAGC,sCAHuB,KAGvB;AACH,sBACE,6BAAC,YAAD;AACE,IAAA,GAAG,EAAEL,GADP;AAEE,IAAA,IAAI,EAAEE,IAFR;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,sBAAsB,EAAE,CAACE;AAJ3B,kBAME,6BAAC,0BAAD;AAAc,IAAA,EAAE,EAAEH;AAAlB,kBACE,6BAAC,oBAAD;AAAc,IAAA,SAAS,EAAE,yBAAW,UAAX,EAAuBE,SAAvB;AAAzB,KACGH,QADH,CADF,CANF,CADF;AAcD,CAzBmB,CAAf;;AA4BPF,MAAM,CAACO,WAAP,GAAqB,QAArB","sourcesContent":["import React, { forwardRef, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport { Modal } from \"../Modal\";\nimport { SlideFromTop } from \"../Transitions/SlideFromTop\";\nimport { StyledDialog } from \"./Styles\";\n\nexport interface IDialog {\n open?: boolean;\n onClose?: () => void;\n className?: string;\n children?: ReactNode;\n enableBackgroundClick?: boolean;\n}\n\nexport const Dialog = forwardRef<HTMLDivElement, IDialog>(\n (\n {\n children,\n open = false,\n onClose,\n className,\n enableBackgroundClick = false,\n },\n ref\n ) => {\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={onClose}\n disableBackgroundClick={!enableBackgroundClick}\n >\n <SlideFromTop in={open}>\n <StyledDialog className={classnames(\"c-dialog\", className)}>\n {children}\n </StyledDialog>\n </SlideFromTop>\n </Modal>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n"],"file":"Dialog.js"}
1
+ {"version":3,"sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":["Dialog","ref","children","open","onClose","className","enableBackgroundClick","disableCloseOnEsc","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAWO,IAAMA,MAAM,gBAAG,uBACpB,gBASEC,GATF,EAUK;AAAA,MARDC,QAQC,QARDA,QAQC;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,KAON;AAAA,MANDC,OAMC,QANDA,OAMC;AAAA,MALDC,SAKC,QALDA,SAKC;AAAA,mCAJDC,qBAIC;AAAA,MAJDA,qBAIC,sCAJuB,KAIvB;AAAA,mCAHDC,iBAGC;AAAA,MAHDA,iBAGC,sCAHmB,KAGnB;AACH,sBACE,6BAAC,YAAD;AACE,IAAA,GAAG,EAAEN,GADP;AAEE,IAAA,IAAI,EAAEE,IAFR;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,sBAAsB,EAAE,CAACE,qBAJ3B;AAKE,IAAA,iBAAiB,EAAEC;AALrB,kBAOE,6BAAC,0BAAD;AAAc,IAAA,EAAE,EAAEJ;AAAlB,kBACE,6BAAC,oBAAD;AAAc,IAAA,SAAS,EAAE,yBAAW,UAAX,EAAuBE,SAAvB;AAAzB,KACGH,QADH,CADF,CAPF,CADF;AAeD,CA3BmB,CAAf;;AA8BPF,MAAM,CAACQ,WAAP,GAAqB,QAArB","sourcesContent":["import React, { forwardRef, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport { Modal } from \"../Modal\";\nimport { SlideFromTop } from \"../Transitions/SlideFromTop\";\nimport { StyledDialog } from \"./Styles\";\n\nexport interface IDialog {\n open?: boolean;\n onClose?: () => void;\n className?: string;\n children?: ReactNode;\n enableBackgroundClick?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Dialog = forwardRef<HTMLDivElement, IDialog>(\n (\n {\n children,\n open = false,\n onClose,\n className,\n enableBackgroundClick = false,\n disableCloseOnEsc = false,\n },\n ref\n ) => {\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={onClose}\n disableBackgroundClick={!enableBackgroundClick}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n <SlideFromTop in={open}>\n <StyledDialog className={classnames(\"c-dialog\", className)}>\n {children}\n </StyledDialog>\n </SlideFromTop>\n </Modal>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n"],"file":"Dialog.js"}
@@ -17,7 +17,7 @@ var _createChainedFunction = _interopRequireDefault(require("../../utils/createC
17
17
 
18
18
  var _Overlay = require("../Overlay");
19
19
 
20
- var _excluded = ["children", "disableFocusLock", "disableScrollLock", "disableBackgroundClick", "disableBackgroundColor", "open", "onClose"];
20
+ var _excluded = ["children", "disableFocusLock", "disableScrollLock", "disableBackgroundClick", "disableBackgroundColor", "disableCloseOnEsc", "open", "onClose"];
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
@@ -57,6 +57,8 @@ var Modal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
57
57
  disableBackgroundClick = _ref$disableBackgroun === void 0 ? false : _ref$disableBackgroun,
58
58
  _ref$disableBackgroun2 = _ref.disableBackgroundColor,
59
59
  disableBackgroundColor = _ref$disableBackgroun2 === void 0 ? false : _ref$disableBackgroun2,
60
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
61
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
60
62
  _ref$open = _ref.open,
61
63
  defaultOpen = _ref$open === void 0 ? false : _ref$open,
62
64
  onClose = _ref.onClose,
@@ -122,7 +124,8 @@ var Modal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
122
124
  ref: handleRef,
123
125
  onClose: handleClose,
124
126
  disableFocusLock: disableFocusLock,
125
- disableScrollLock: disableScrollLock
127
+ disableScrollLock: disableScrollLock,
128
+ disableCloseOnEsc: disableCloseOnEsc
126
129
  }), open ? /*#__PURE__*/_react.default.createElement(_Overlay.Overlay, {
127
130
  onClick: handleBackgroundClick,
128
131
  disableBackgroundColor: disableBackgroundColor
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Modal/Modal.tsx"],"names":["getHasTransition","children","props","Object","prototype","hasOwnProperty","call","Modal","ref","disableFocusLock","disableScrollLock","disableBackgroundClick","disableBackgroundColor","open","defaultOpen","onClose","rest","setOpen","exited","setExited","innerRef","handleRef","hasTransition","handleClose","handleBackgroundClick","event","preventDefault","handleEnter","handleExited","childProps","onEnter","onExited","in","displayName"],"mappings":";;;;;;;;;AAAA;;AAYA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,QAAD,EAAuB;AAC9C,SAAOA,QAAQ,CAACC,KAAT,GACHC,MAAM,CAACC,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCL,QAAQ,CAACC,KAA9C,EAAqD,IAArD,CADG,GAEH,KAFJ;AAGD,CAJD;;AAMO,IAAMK,KAAK,gBAAG,uBAInB,gBAWEC,GAXF,EAYK;AAAA,MAVDP,QAUC,QAVDA,QAUC;AAAA,mCATDQ,gBASC;AAAA,MATDA,gBASC,sCATkB,KASlB;AAAA,mCARDC,iBAQC;AAAA,MARDA,iBAQC,sCARmB,KAQnB;AAAA,mCAPDC,sBAOC;AAAA,MAPDA,sBAOC,sCAPwB,KAOxB;AAAA,oCANDC,sBAMC;AAAA,MANDA,sBAMC,uCANwB,KAMxB;AAAA,uBALDC,IAKC;AAAA,MALKC,WAKL,0BALmB,KAKnB;AAAA,MAJDC,OAIC,QAJDA,OAIC;AAAA,MAHEC,IAGF;;AACH,kBAAwB,qBAASF,WAAT,CAAxB;AAAA;AAAA,MAAOD,IAAP;AAAA,MAAaI,OAAb;;AACA,mBAA4B,qBAAS,IAAT,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,MAAMC,QAAQ,GAAG,mBAAuB,IAAvB,CAAjB;AACA,MAAMC,SAAS,GAAG,yBAAWD,QAAX,EAAqBZ,GAArB,CAAlB;AAEA,MAAMc,aAAa,GAAG,oBAAQ,YAAM;AAClC,WAAOtB,gBAAgB,CAACC,QAAD,CAAvB;AACD,GAFqB,EAEnB,CAACA,QAAD,CAFmB,CAAtB;AAIA,wBAAU,YAAM;AACdgB,IAAAA,OAAO,CAACH,WAAD,CAAP;AACD,GAFD,EAEG,CAACA,WAAD,CAFH;AAIA,MAAMS,WAAW,GAAG,wBAAY,YAAM;AACpCN,IAAAA,OAAO,CAAC,KAAD,CAAP;;AACA,QAAI,CAACK,aAAL,EAAoB;AAClB,aAAOP,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,EAAxC;AACD;AACF,GALmB,EAKjB,CAACO,aAAD,EAAgBP,OAAhB,CALiB,CAApB;AAOA,MAAMS,qBAAqB,GAAG,wBAC5B,UAACC,KAAD,EAAuC;AACrC,QAAI,CAACd,sBAAL,EAA6B;AAC3Bc,MAAAA,KAAK,CAACC,cAAN;AACAH,MAAAA,WAAW;AACZ;AACF,GAN2B,EAO5B,CAACZ,sBAAD,EAAyBY,WAAzB,CAP4B,CAA9B;AAUA,MAAMI,WAAW,GAAG,wBAAY,YAAM;AACpCR,IAAAA,SAAS,CAAC,KAAD,CAAT;AACD,GAFmB,EAEjB,EAFiB,CAApB;AAIA,MAAMS,YAAY,GAAG,wBAAY,YAAM;AACrCT,IAAAA,SAAS,CAAC,IAAD,CAAT;AACA,WAAOJ,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,EAAxC;AACD,GAHoB,EAGlB,CAACA,OAAD,CAHkB,CAArB;AAKA,MAAMc,UAAU,GAAG,oBAAQ,YAAM;AAC/B,QAAI3B,KAAK,GAAG,EAAZ,CAD+B,CAG/B;;AACA,QAAIoB,aAAa,IAAIrB,QAArB,EAA+B;AAC7BC,MAAAA,KAAK,GAAG;AACN4B,QAAAA,OAAO,EAAE,oCAAsBH,WAAtB,EAAmC1B,QAAQ,CAACC,KAAT,CAAe4B,OAAlD,CADH;AAENC,QAAAA,QAAQ,EAAE,oCACRH,YADQ,EAER3B,QAAQ,CAACC,KAAT,CAAe6B,QAFP,CAFJ;AAMNC,QAAAA,EAAE,EAAEnB;AANE,OAAR;AAQD;;AAED,WAAOX,KAAP;AACD,GAhBkB,EAgBhB,CAACD,QAAD,EAAW0B,WAAX,EAAwBC,YAAxB,EAAsCN,aAAtC,EAAqDT,IAArD,CAhBgB,CAAnB;;AAkBA,MAAI,CAACA,IAAD,KAAU,CAACS,aAAD,IAAkBJ,MAA5B,CAAJ,EAAyC;AACvC,WAAO,IAAP;AACD;;AAED,sBACE,6BAAC,cAAD,eACMF,IADN;AAEE,IAAA,GAAG,EAAEK,SAFP;AAGE,IAAA,OAAO,EAAEE,WAHX;AAIE,IAAA,gBAAgB,EAAEd,gBAJpB;AAKE,IAAA,iBAAiB,EAAEC;AALrB,MAOGG,IAAI,gBACH,6BAAC,gBAAD;AACE,IAAA,OAAO,EAAEW,qBADX;AAEE,IAAA,sBAAsB,EAAEZ;AAF1B,IADG,GAKD,IAZN,eAaG,yBAAaX,QAAb,EAAuB4B,UAAvB,CAbH,CADF;AAiBD,CA/FkB,CAAd;;AAkGPtB,KAAK,CAAC0B,WAAN,GAAoB,OAApB","sourcesContent":["import React, {\n forwardRef,\n HTMLAttributes,\n useRef,\n cloneElement,\n useMemo,\n useCallback,\n ReactElement,\n useState,\n useEffect,\n MouseEvent,\n} from \"react\";\nimport { Window } from \"../Window\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport createChainedFunction from \"../../utils/createChainedFunction\";\nimport { Overlay } from \"../Overlay\";\n\nexport interface IModal {\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n open?: boolean;\n disableBackgroundClick?: boolean;\n disableBackgroundColor?: boolean;\n onClose?: () => void;\n children: ReactElement;\n}\n\nconst getHasTransition = (children): boolean => {\n return children.props\n ? Object.prototype.hasOwnProperty.call(children.props, \"in\")\n : false;\n};\n\nexport const Modal = forwardRef<\n HTMLDivElement,\n IModal & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundClick = false,\n disableBackgroundColor = false,\n open: defaultOpen = false,\n onClose,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n\n const hasTransition = useMemo(() => {\n return getHasTransition(children);\n }, [children]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n if (!hasTransition) {\n typeof onClose === \"function\" && onClose();\n }\n }, [hasTransition, onClose]);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const childProps = useMemo(() => {\n let props = {};\n\n // It's a Transition like component\n if (hasTransition && children) {\n props = {\n onEnter: createChainedFunction(handleEnter, children.props.onEnter),\n onExited: createChainedFunction(\n handleExited,\n children.props.onExited\n ),\n in: open,\n };\n }\n\n return props;\n }, [children, handleEnter, handleExited, hasTransition, open]);\n\n if (!open && (!hasTransition || exited)) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n {cloneElement(children, childProps)}\n </Window>\n );\n }\n);\n\nModal.displayName = \"Modal\";\n"],"file":"Modal.js"}
1
+ {"version":3,"sources":["../../../../src/components/Modal/Modal.tsx"],"names":["getHasTransition","children","props","Object","prototype","hasOwnProperty","call","Modal","ref","disableFocusLock","disableScrollLock","disableBackgroundClick","disableBackgroundColor","disableCloseOnEsc","open","defaultOpen","onClose","rest","setOpen","exited","setExited","innerRef","handleRef","hasTransition","handleClose","handleBackgroundClick","event","preventDefault","handleEnter","handleExited","childProps","onEnter","onExited","in","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n HTMLAttributes,\n useRef,\n cloneElement,\n useMemo,\n useCallback,\n ReactElement,\n useState,\n useEffect,\n MouseEvent,\n} from \"react\";\nimport { Window } from \"../Window\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport createChainedFunction from \"../../utils/createChainedFunction\";\nimport { Overlay } from \"../Overlay\";\n\nexport interface IModal {\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n open?: boolean;\n disableBackgroundClick?: boolean;\n disableCloseOnEsc?: boolean;\n disableBackgroundColor?: boolean;\n onClose?: () => void;\n children: ReactElement;\n}\n\nconst getHasTransition = (children): boolean => {\n return children.props\n ? Object.prototype.hasOwnProperty.call(children.props, \"in\")\n : false;\n};\n\nexport const Modal = forwardRef<\n HTMLDivElement,\n IModal & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundClick = false,\n disableBackgroundColor = false,\n disableCloseOnEsc = false,\n open: defaultOpen = false,\n onClose,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n\n const hasTransition = useMemo(() => {\n return getHasTransition(children);\n }, [children]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n if (!hasTransition) {\n typeof onClose === \"function\" && onClose();\n }\n }, [hasTransition, onClose]);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const childProps = useMemo(() => {\n let props = {};\n\n // It's a Transition like component\n if (hasTransition && children) {\n props = {\n onEnter: createChainedFunction(handleEnter, children.props.onEnter),\n onExited: createChainedFunction(\n handleExited,\n children.props.onExited\n ),\n in: open,\n };\n }\n\n return props;\n }, [children, handleEnter, handleExited, hasTransition, open]);\n\n if (!open && (!hasTransition || exited)) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n {cloneElement(children, childProps)}\n </Window>\n );\n }\n);\n\nModal.displayName = \"Modal\";\n"],"file":"Modal.js"}
@@ -23,7 +23,7 @@ var _Style = require("./Style");
23
23
 
24
24
  var _utils = require("../../utils");
25
25
 
26
- var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "onClick"];
26
+ var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "disableCloseOnEsc", "onClick"];
27
27
 
28
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
29
 
@@ -56,6 +56,8 @@ var Window = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
56
56
  disableFocusLock = _ref$disableFocusLock === void 0 ? false : _ref$disableFocusLock,
57
57
  _ref$disableScrollLoc = _ref.disableScrollLock,
58
58
  disableScrollLock = _ref$disableScrollLoc === void 0 ? false : _ref$disableScrollLoc,
59
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
60
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
59
61
  onClick = _ref.onClick,
60
62
  rest = _objectWithoutProperties(_ref, _excluded);
61
63
 
@@ -67,7 +69,7 @@ var Window = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
67
69
  zIndex = _useLayerContext$zInd === void 0 ? _utils.layers.skyscraper : _useLayerContext$zInd;
68
70
 
69
71
  var handleKeyDown = (0, _react.useCallback)(function (event) {
70
- if (!event.defaultPrevented && (event.key === "Esc" || event.key === "Escape")) {
72
+ if (!event.defaultPrevented && (event.key === "Esc" || event.key === "Escape") && !disableCloseOnEsc) {
71
73
  event.preventDefault();
72
74
 
73
75
  if (onClose) {
@@ -78,7 +80,7 @@ var Window = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
78
80
  if (typeof onKeyDown === "function") {
79
81
  onKeyDown(event);
80
82
  }
81
- }, [onClose, onKeyDown]);
83
+ }, [disableCloseOnEsc, onClose, onKeyDown]);
82
84
  (0, _react.useEffect)(function () {
83
85
  return function () {
84
86
  typeof onClose === "function" && onClose();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","onClick","rest","innerRef","handleRef","zIndex","layers","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":";;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,WAAW,GAAG;AAAEC,EAAAA,aAAa,EAAE;AAAjB,CAApB;AAEO,IAAMC,MAAM,gBAAG,uBAIpB,gBAYEC,GAZF,EAaK;AAAA,MAXDC,QAWC,QAXDA,QAWC;AAAA,MAVDC,OAUC,QAVDA,OAUC;AAAA,MATDC,SASC,QATDA,SASC;AAAA,MARDC,KAQC,QARDA,KAQC;AAAA,MAPDC,SAOC,QAPDA,SAOC;AAAA,mCANDC,gBAMC;AAAA,MANDA,gBAMC,sCANkB,KAMlB;AAAA,mCALDC,iBAKC;AAAA,MALDA,iBAKC,sCALmB,KAKnB;AAAA,MAJDC,OAIC,QAJDA,OAIC;AAAA,MAHEC,IAGF;;AACH,MAAMC,QAAQ,GAAG,mBAAuB,IAAvB,CAAjB;AACA,MAAMC,SAAS,GAAG,yBAAWD,QAAX,EAAqBV,GAArB,CAAlB;;AACA,yBAAuC,+BAAvC;AAAA,+CAAQY,MAAR;AAAA,MAAQA,MAAR,sCAAiBC,cAAOC,UAAxB;;AAEA,MAAMC,aAAa,GAAG,wBACpB,UAACC,KAAD,EAA0C;AACxC,QACE,CAACA,KAAK,CAACC,gBAAP,KACCD,KAAK,CAACE,GAAN,KAAc,KAAd,IAAuBF,KAAK,CAACE,GAAN,KAAc,QADtC,CADF,EAGE;AACAF,MAAAA,KAAK,CAACG,cAAN;;AACA,UAAIjB,OAAJ,EAAa;AACXA,QAAAA,OAAO;AACR;AACF;;AACD,QAAI,OAAOG,SAAP,KAAqB,UAAzB,EAAqC;AACnCA,MAAAA,SAAS,CAACW,KAAD,CAAT;AACD;AACF,GAdmB,EAepB,CAACd,OAAD,EAAUG,SAAV,CAfoB,CAAtB;AAkBA,wBAAU,YAAM;AACd,WAAO,YAAY;AACjB,aAAOH,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,EAAxC;AACD,KAFD,CADc,CAId;AACA;AACD,GAND,EAMG,EANH;AAQA,MAAMkB,WAAW,GAAG,wBAClB,UAACJ,KAAD,EAAW;AACTA,IAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEK,eAAP;AACA,WAAOb,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,CAACQ,KAAD,CAAxC;AACD,GAJiB,EAKlB,CAACR,OAAD,CALkB,CAApB;AAQA,sBACE,6BAAC,eAAD,qBACE,6BAAC,uBAAD;AAAW,IAAA,WAAW,EAAEX,WAAxB;AAAqC,IAAA,QAAQ,EAAES;AAA/C,kBACE,6BAAC,+BAAD;AACE,IAAA,YAAY,MADd;AAEE,IAAA,GAAG,EAAEK,SAFP;AAGE,IAAA,OAAO,EAAE,CAACJ,iBAHZ;AAIE,IAAA,WAAW;AAJb,kBAME,6BAAC,mBAAD,eACME,IADN;AAEE,IAAA,KAAK;AAAIG,MAAAA,MAAM,EAANA;AAAJ,OAAeR,KAAf,CAFP;AAGE,IAAA,SAAS,EAAEW,aAHb;AAIE,IAAA,QAAQ,EAAE,CAJZ;AAKE,IAAA,SAAS,EAAE,yBAAW,UAAX,EAAuBZ,SAAvB,CALb;AAME,IAAA,OAAO,EAAEiB;AANX,MAQGnB,QARH,CANF,CADF,CADF,CADF;AAuBD,CA/EmB,CAAf;;AAkFPF,MAAM,CAACuB,WAAP,GAAqB,QAArB","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\")\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}
1
+ {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","disableCloseOnEsc","onClick","rest","innerRef","handleRef","zIndex","layers","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":";;;;;;;;;AAAA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AASA,IAAMA,WAAW,GAAG;AAAEC,EAAAA,aAAa,EAAE;AAAjB,CAApB;AAEO,IAAMC,MAAM,gBAAG,uBAIpB,gBAaEC,GAbF,EAcK;AAAA,MAZDC,QAYC,QAZDA,QAYC;AAAA,MAXDC,OAWC,QAXDA,OAWC;AAAA,MAVDC,SAUC,QAVDA,SAUC;AAAA,MATDC,KASC,QATDA,KASC;AAAA,MARDC,SAQC,QARDA,SAQC;AAAA,mCAPDC,gBAOC;AAAA,MAPDA,gBAOC,sCAPkB,KAOlB;AAAA,mCANDC,iBAMC;AAAA,MANDA,iBAMC,sCANmB,KAMnB;AAAA,mCALDC,iBAKC;AAAA,MALDA,iBAKC,sCALmB,KAKnB;AAAA,MAJDC,OAIC,QAJDA,OAIC;AAAA,MAHEC,IAGF;;AACH,MAAMC,QAAQ,GAAG,mBAAuB,IAAvB,CAAjB;AACA,MAAMC,SAAS,GAAG,yBAAWD,QAAX,EAAqBX,GAArB,CAAlB;;AACA,yBAAuC,+BAAvC;AAAA,+CAAQa,MAAR;AAAA,MAAQA,MAAR,sCAAiBC,cAAOC,UAAxB;;AAEA,MAAMC,aAAa,GAAG,wBACpB,UAACC,KAAD,EAA0C;AACxC,QACE,CAACA,KAAK,CAACC,gBAAP,KACCD,KAAK,CAACE,GAAN,KAAc,KAAd,IAAuBF,KAAK,CAACE,GAAN,KAAc,QADtC,KAEA,CAACX,iBAHH,EAIE;AACAS,MAAAA,KAAK,CAACG,cAAN;;AACA,UAAIlB,OAAJ,EAAa;AACXA,QAAAA,OAAO;AACR;AACF;;AACD,QAAI,OAAOG,SAAP,KAAqB,UAAzB,EAAqC;AACnCA,MAAAA,SAAS,CAACY,KAAD,CAAT;AACD;AACF,GAfmB,EAgBpB,CAACT,iBAAD,EAAoBN,OAApB,EAA6BG,SAA7B,CAhBoB,CAAtB;AAmBA,wBAAU,YAAM;AACd,WAAO,YAAY;AACjB,aAAOH,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,EAAxC;AACD,KAFD,CADc,CAId;AACA;AACD,GAND,EAMG,EANH;AAQA,MAAMmB,WAAW,GAAG,wBAClB,UAACJ,KAAD,EAAW;AACTA,IAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEK,eAAP;AACA,WAAOb,OAAP,KAAmB,UAAnB,IAAiCA,OAAO,CAACQ,KAAD,CAAxC;AACD,GAJiB,EAKlB,CAACR,OAAD,CALkB,CAApB;AAQA,sBACE,6BAAC,eAAD,qBACE,6BAAC,uBAAD;AAAW,IAAA,WAAW,EAAEZ,WAAxB;AAAqC,IAAA,QAAQ,EAAES;AAA/C,kBACE,6BAAC,+BAAD;AACE,IAAA,YAAY,MADd;AAEE,IAAA,GAAG,EAAEM,SAFP;AAGE,IAAA,OAAO,EAAE,CAACL,iBAHZ;AAIE,IAAA,WAAW;AAJb,kBAME,6BAAC,mBAAD,eACMG,IADN;AAEE,IAAA,KAAK;AAAIG,MAAAA,MAAM,EAANA;AAAJ,OAAeT,KAAf,CAFP;AAGE,IAAA,SAAS,EAAEY,aAHb;AAIE,IAAA,QAAQ,EAAE,CAJZ;AAKE,IAAA,SAAS,EAAE,yBAAW,UAAX,EAAuBb,SAAvB,CALb;AAME,IAAA,OAAO,EAAEkB;AANX,MAQGpB,QARH,CANF,CADF,CADF,CADF;AAuBD,CAjFmB,CAAf;;AAoFPF,MAAM,CAACwB,WAAP,GAAqB,QAArB","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n disableCloseOnEsc = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\") &&\n !disableCloseOnEsc\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [disableCloseOnEsc, onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}
@@ -35,6 +35,8 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
35
35
  var title = _ref.title,
36
36
  open = _ref.open,
37
37
  onClose = _ref.onClose,
38
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
39
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
38
40
  children = _ref.children;
39
41
  var childrenCollection = (0, _react.useMemo)(function () {
40
42
  return _react.default.Children.toArray(children);
@@ -109,7 +111,8 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
109
111
  }, /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
110
112
  ref: ref,
111
113
  open: open,
112
- onClose: onClose
114
+ onClose: onClose,
115
+ disableCloseOnEsc: disableCloseOnEsc
113
116
  }, renderActiveStep));
114
117
  });
115
118
  exports.Wizard = Wizard;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":["Wizard","ref","title","open","onClose","children","childrenCollection","React","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","Step","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title: title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog ref={ref} open={open} onClose={onClose}>\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"file":"Wizard.js"}
1
+ {"version":3,"sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":["Wizard","ref","title","open","onClose","disableCloseOnEsc","children","childrenCollection","React","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","Step","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, disableCloseOnEsc = false, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"file":"Wizard.js"}
@@ -5,6 +5,7 @@ export interface IDialog {
5
5
  className?: string;
6
6
  children?: ReactNode;
7
7
  enableBackgroundClick?: boolean;
8
+ disableCloseOnEsc?: boolean;
8
9
  }
9
10
  export declare const Dialog: React.ForwardRefExoticComponent<IDialog & React.RefAttributes<HTMLDivElement>>;
10
11
  //# sourceMappingURL=Dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAMrD,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,gFA0BlB,CAAC"}
1
+ {"version":3,"file":"Dialog.d.ts","sourceRoot":"","sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAc,SAAS,EAAE,MAAM,OAAO,CAAC;AAMrD,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,gFA4BlB,CAAC"}
@@ -10,12 +10,15 @@ export var Dialog = /*#__PURE__*/forwardRef(function (_ref, ref) {
10
10
  onClose = _ref.onClose,
11
11
  className = _ref.className,
12
12
  _ref$enableBackground = _ref.enableBackgroundClick,
13
- enableBackgroundClick = _ref$enableBackground === void 0 ? false : _ref$enableBackground;
13
+ enableBackgroundClick = _ref$enableBackground === void 0 ? false : _ref$enableBackground,
14
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
15
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs;
14
16
  return /*#__PURE__*/React.createElement(Modal, {
15
17
  ref: ref,
16
18
  open: open,
17
19
  onClose: onClose,
18
- disableBackgroundClick: !enableBackgroundClick
20
+ disableBackgroundClick: !enableBackgroundClick,
21
+ disableCloseOnEsc: disableCloseOnEsc
19
22
  }, /*#__PURE__*/React.createElement(SlideFromTop, {
20
23
  in: open
21
24
  }, /*#__PURE__*/React.createElement(StyledDialog, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":["React","forwardRef","classnames","Modal","SlideFromTop","StyledDialog","Dialog","ref","children","open","onClose","className","enableBackgroundClick","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAA6C,OAA7C;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,YAAT,QAA6B,UAA7B;AAUA,OAAO,IAAMC,MAAM,gBAAGL,UAAU,CAC9B,gBAQEM,GARF,EASK;AAAA,MAPDC,QAOC,QAPDA,QAOC;AAAA,uBANDC,IAMC;AAAA,MANDA,IAMC,0BANM,KAMN;AAAA,MALDC,OAKC,QALDA,OAKC;AAAA,MAJDC,SAIC,QAJDA,SAIC;AAAA,mCAHDC,qBAGC;AAAA,MAHDA,qBAGC,sCAHuB,KAGvB;AACH,sBACE,oBAAC,KAAD;AACE,IAAA,GAAG,EAAEL,GADP;AAEE,IAAA,IAAI,EAAEE,IAFR;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,sBAAsB,EAAE,CAACE;AAJ3B,kBAME,oBAAC,YAAD;AAAc,IAAA,EAAE,EAAEH;AAAlB,kBACE,oBAAC,YAAD;AAAc,IAAA,SAAS,EAAEP,UAAU,CAAC,UAAD,EAAaS,SAAb;AAAnC,KACGH,QADH,CADF,CANF,CADF;AAcD,CAzB6B,CAAzB;AA4BPF,MAAM,CAACO,WAAP,GAAqB,QAArB","sourcesContent":["import React, { forwardRef, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport { Modal } from \"../Modal\";\nimport { SlideFromTop } from \"../Transitions/SlideFromTop\";\nimport { StyledDialog } from \"./Styles\";\n\nexport interface IDialog {\n open?: boolean;\n onClose?: () => void;\n className?: string;\n children?: ReactNode;\n enableBackgroundClick?: boolean;\n}\n\nexport const Dialog = forwardRef<HTMLDivElement, IDialog>(\n (\n {\n children,\n open = false,\n onClose,\n className,\n enableBackgroundClick = false,\n },\n ref\n ) => {\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={onClose}\n disableBackgroundClick={!enableBackgroundClick}\n >\n <SlideFromTop in={open}>\n <StyledDialog className={classnames(\"c-dialog\", className)}>\n {children}\n </StyledDialog>\n </SlideFromTop>\n </Modal>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n"],"file":"Dialog.js"}
1
+ {"version":3,"sources":["../../../../src/components/Dialog/Dialog.tsx"],"names":["React","forwardRef","classnames","Modal","SlideFromTop","StyledDialog","Dialog","ref","children","open","onClose","className","enableBackgroundClick","disableCloseOnEsc","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAA6C,OAA7C;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,YAAT,QAA6B,6BAA7B;AACA,SAASC,YAAT,QAA6B,UAA7B;AAWA,OAAO,IAAMC,MAAM,gBAAGL,UAAU,CAC9B,gBASEM,GATF,EAUK;AAAA,MARDC,QAQC,QARDA,QAQC;AAAA,uBAPDC,IAOC;AAAA,MAPDA,IAOC,0BAPM,KAON;AAAA,MANDC,OAMC,QANDA,OAMC;AAAA,MALDC,SAKC,QALDA,SAKC;AAAA,mCAJDC,qBAIC;AAAA,MAJDA,qBAIC,sCAJuB,KAIvB;AAAA,mCAHDC,iBAGC;AAAA,MAHDA,iBAGC,sCAHmB,KAGnB;AACH,sBACE,oBAAC,KAAD;AACE,IAAA,GAAG,EAAEN,GADP;AAEE,IAAA,IAAI,EAAEE,IAFR;AAGE,IAAA,OAAO,EAAEC,OAHX;AAIE,IAAA,sBAAsB,EAAE,CAACE,qBAJ3B;AAKE,IAAA,iBAAiB,EAAEC;AALrB,kBAOE,oBAAC,YAAD;AAAc,IAAA,EAAE,EAAEJ;AAAlB,kBACE,oBAAC,YAAD;AAAc,IAAA,SAAS,EAAEP,UAAU,CAAC,UAAD,EAAaS,SAAb;AAAnC,KACGH,QADH,CADF,CAPF,CADF;AAeD,CA3B6B,CAAzB;AA8BPF,MAAM,CAACQ,WAAP,GAAqB,QAArB","sourcesContent":["import React, { forwardRef, ReactNode } from \"react\";\nimport classnames from \"classnames\";\nimport { Modal } from \"../Modal\";\nimport { SlideFromTop } from \"../Transitions/SlideFromTop\";\nimport { StyledDialog } from \"./Styles\";\n\nexport interface IDialog {\n open?: boolean;\n onClose?: () => void;\n className?: string;\n children?: ReactNode;\n enableBackgroundClick?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Dialog = forwardRef<HTMLDivElement, IDialog>(\n (\n {\n children,\n open = false,\n onClose,\n className,\n enableBackgroundClick = false,\n disableCloseOnEsc = false,\n },\n ref\n ) => {\n return (\n <Modal\n ref={ref}\n open={open}\n onClose={onClose}\n disableBackgroundClick={!enableBackgroundClick}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n <SlideFromTop in={open}>\n <StyledDialog className={classnames(\"c-dialog\", className)}>\n {children}\n </StyledDialog>\n </SlideFromTop>\n </Modal>\n );\n }\n);\n\nDialog.displayName = \"Dialog\";\n"],"file":"Dialog.js"}
@@ -4,6 +4,7 @@ export interface IModal {
4
4
  disableScrollLock?: boolean;
5
5
  open?: boolean;
6
6
  disableBackgroundClick?: boolean;
7
+ disableCloseOnEsc?: boolean;
7
8
  disableBackgroundColor?: boolean;
8
9
  onClose?: () => void;
9
10
  children: ReactElement;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,YAAY,EAIb,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,MAAM;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAQD,eAAO,MAAM,KAAK,sHAgGjB,CAAC"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAOZ,YAAY,EAIb,MAAM,OAAO,CAAC;AAMf,MAAM,WAAW,MAAM;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAQD,eAAO,MAAM,KAAK,sHAkGjB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["children", "disableFocusLock", "disableScrollLock", "disableBackgroundClick", "disableBackgroundColor", "open", "onClose"];
3
+ var _excluded = ["children", "disableFocusLock", "disableScrollLock", "disableBackgroundClick", "disableBackgroundColor", "disableCloseOnEsc", "open", "onClose"];
4
4
  import React, { forwardRef, useRef, cloneElement, useMemo, useCallback, useState, useEffect } from "react";
5
5
  import { Window } from "../Window";
6
6
  import useForkRef from "../../utils/useForkRef";
@@ -21,6 +21,8 @@ export var Modal = /*#__PURE__*/forwardRef(function (_ref, ref) {
21
21
  disableBackgroundClick = _ref$disableBackgroun === void 0 ? false : _ref$disableBackgroun,
22
22
  _ref$disableBackgroun2 = _ref.disableBackgroundColor,
23
23
  disableBackgroundColor = _ref$disableBackgroun2 === void 0 ? false : _ref$disableBackgroun2,
24
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
25
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
24
26
  _ref$open = _ref.open,
25
27
  defaultOpen = _ref$open === void 0 ? false : _ref$open,
26
28
  onClose = _ref.onClose,
@@ -84,7 +86,8 @@ export var Modal = /*#__PURE__*/forwardRef(function (_ref, ref) {
84
86
  ref: handleRef,
85
87
  onClose: handleClose,
86
88
  disableFocusLock: disableFocusLock,
87
- disableScrollLock: disableScrollLock
89
+ disableScrollLock: disableScrollLock,
90
+ disableCloseOnEsc: disableCloseOnEsc
88
91
  }), open ? /*#__PURE__*/React.createElement(Overlay, {
89
92
  onClick: handleBackgroundClick,
90
93
  disableBackgroundColor: disableBackgroundColor
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Modal/Modal.tsx"],"names":["React","forwardRef","useRef","cloneElement","useMemo","useCallback","useState","useEffect","Window","useForkRef","createChainedFunction","Overlay","getHasTransition","children","props","Object","prototype","hasOwnProperty","call","Modal","ref","disableFocusLock","disableScrollLock","disableBackgroundClick","disableBackgroundColor","open","defaultOpen","onClose","rest","setOpen","exited","setExited","innerRef","handleRef","hasTransition","handleClose","handleBackgroundClick","event","preventDefault","handleEnter","handleExited","childProps","onEnter","onExited","in","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n HTMLAttributes,\n useRef,\n cloneElement,\n useMemo,\n useCallback,\n ReactElement,\n useState,\n useEffect,\n MouseEvent,\n} from \"react\";\nimport { Window } from \"../Window\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport createChainedFunction from \"../../utils/createChainedFunction\";\nimport { Overlay } from \"../Overlay\";\n\nexport interface IModal {\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n open?: boolean;\n disableBackgroundClick?: boolean;\n disableBackgroundColor?: boolean;\n onClose?: () => void;\n children: ReactElement;\n}\n\nconst getHasTransition = (children): boolean => {\n return children.props\n ? Object.prototype.hasOwnProperty.call(children.props, \"in\")\n : false;\n};\n\nexport const Modal = forwardRef<\n HTMLDivElement,\n IModal & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundClick = false,\n disableBackgroundColor = false,\n open: defaultOpen = false,\n onClose,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n\n const hasTransition = useMemo(() => {\n return getHasTransition(children);\n }, [children]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n if (!hasTransition) {\n typeof onClose === \"function\" && onClose();\n }\n }, [hasTransition, onClose]);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const childProps = useMemo(() => {\n let props = {};\n\n // It's a Transition like component\n if (hasTransition && children) {\n props = {\n onEnter: createChainedFunction(handleEnter, children.props.onEnter),\n onExited: createChainedFunction(\n handleExited,\n children.props.onExited\n ),\n in: open,\n };\n }\n\n return props;\n }, [children, handleEnter, handleExited, hasTransition, open]);\n\n if (!open && (!hasTransition || exited)) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n {cloneElement(children, childProps)}\n </Window>\n );\n }\n);\n\nModal.displayName = \"Modal\";\n"],"file":"Modal.js"}
1
+ {"version":3,"sources":["../../../../src/components/Modal/Modal.tsx"],"names":["React","forwardRef","useRef","cloneElement","useMemo","useCallback","useState","useEffect","Window","useForkRef","createChainedFunction","Overlay","getHasTransition","children","props","Object","prototype","hasOwnProperty","call","Modal","ref","disableFocusLock","disableScrollLock","disableBackgroundClick","disableBackgroundColor","disableCloseOnEsc","open","defaultOpen","onClose","rest","setOpen","exited","setExited","innerRef","handleRef","hasTransition","handleClose","handleBackgroundClick","event","preventDefault","handleEnter","handleExited","childProps","onEnter","onExited","in","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n HTMLAttributes,\n useRef,\n cloneElement,\n useMemo,\n useCallback,\n ReactElement,\n useState,\n useEffect,\n MouseEvent,\n} from \"react\";\nimport { Window } from \"../Window\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport createChainedFunction from \"../../utils/createChainedFunction\";\nimport { Overlay } from \"../Overlay\";\n\nexport interface IModal {\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n open?: boolean;\n disableBackgroundClick?: boolean;\n disableCloseOnEsc?: boolean;\n disableBackgroundColor?: boolean;\n onClose?: () => void;\n children: ReactElement;\n}\n\nconst getHasTransition = (children): boolean => {\n return children.props\n ? Object.prototype.hasOwnProperty.call(children.props, \"in\")\n : false;\n};\n\nexport const Modal = forwardRef<\n HTMLDivElement,\n IModal & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundClick = false,\n disableBackgroundColor = false,\n disableCloseOnEsc = false,\n open: defaultOpen = false,\n onClose,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n\n const hasTransition = useMemo(() => {\n return getHasTransition(children);\n }, [children]);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n if (!hasTransition) {\n typeof onClose === \"function\" && onClose();\n }\n }, [hasTransition, onClose]);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const childProps = useMemo(() => {\n let props = {};\n\n // It's a Transition like component\n if (hasTransition && children) {\n props = {\n onEnter: createChainedFunction(handleEnter, children.props.onEnter),\n onExited: createChainedFunction(\n handleExited,\n children.props.onExited\n ),\n in: open,\n };\n }\n\n return props;\n }, [children, handleEnter, handleExited, hasTransition, open]);\n\n if (!open && (!hasTransition || exited)) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n {cloneElement(children, childProps)}\n </Window>\n );\n }\n);\n\nModal.displayName = \"Modal\";\n"],"file":"Modal.js"}
@@ -3,6 +3,7 @@ export interface IWindow {
3
3
  onClose?: () => void;
4
4
  disableFocusLock?: boolean;
5
5
  disableScrollLock?: boolean;
6
+ disableCloseOnEsc?: boolean;
6
7
  }
7
8
  export declare const Window: React.ForwardRefExoticComponent<IWindow & Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "slot" | "style" | "title" | "key" | "css" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "cs" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "tw">, keyof IWindow> & React.RefAttributes<HTMLDivElement>>;
8
9
  //# sourceMappingURL=Window.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,eAAO,MAAM,MAAM,usJAgFlB,CAAC"}
1
+ {"version":3,"file":"Window.d.ts","sourceRoot":"","sources":["../../../../src/components/Window/Window.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AASf,MAAM,WAAW,OAAO;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAID,eAAO,MAAM,MAAM,usJAkFlB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "onClick"];
3
+ var _excluded = ["children", "onClose", "className", "style", "onKeyDown", "disableFocusLock", "disableScrollLock", "disableCloseOnEsc", "onClick"];
4
4
  import React, { useCallback, useRef, useEffect, forwardRef } from "react";
5
5
  import classnames from "classnames";
6
6
  import FocusLock from "react-focus-lock";
@@ -22,6 +22,8 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
22
22
  disableFocusLock = _ref$disableFocusLock === void 0 ? false : _ref$disableFocusLock,
23
23
  _ref$disableScrollLoc = _ref.disableScrollLock,
24
24
  disableScrollLock = _ref$disableScrollLoc === void 0 ? false : _ref$disableScrollLoc,
25
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
26
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
25
27
  onClick = _ref.onClick,
26
28
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
27
29
 
@@ -33,7 +35,7 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
33
35
  zIndex = _useLayerContext$zInd === void 0 ? layers.skyscraper : _useLayerContext$zInd;
34
36
 
35
37
  var handleKeyDown = useCallback(function (event) {
36
- if (!event.defaultPrevented && (event.key === "Esc" || event.key === "Escape")) {
38
+ if (!event.defaultPrevented && (event.key === "Esc" || event.key === "Escape") && !disableCloseOnEsc) {
37
39
  event.preventDefault();
38
40
 
39
41
  if (onClose) {
@@ -44,7 +46,7 @@ export var Window = /*#__PURE__*/forwardRef(function (_ref, ref) {
44
46
  if (typeof onKeyDown === "function") {
45
47
  onKeyDown(event);
46
48
  }
47
- }, [onClose, onKeyDown]);
49
+ }, [disableCloseOnEsc, onClose, onKeyDown]);
48
50
  useEffect(function () {
49
51
  return function () {
50
52
  typeof onClose === "function" && onClose();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["React","useCallback","useRef","useEffect","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\")\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}
1
+ {"version":3,"sources":["../../../../src/components/Window/Window.tsx"],"names":["React","useCallback","useRef","useEffect","forwardRef","classnames","FocusLock","Portal","useLayerContext","useForkRef","RemoveScroll","StyledWindow","layers","returnFocus","preventScroll","Window","ref","children","onClose","className","style","onKeyDown","disableFocusLock","disableScrollLock","disableCloseOnEsc","onClick","rest","innerRef","handleRef","zIndex","skyscraper","handleKeyDown","event","defaultPrevented","key","preventDefault","handleClick","stopPropagation","displayName"],"mappings":"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","sourcesContent":["import React, {\n useCallback,\n useRef,\n useEffect,\n forwardRef,\n KeyboardEvent,\n} from \"react\";\nimport classnames from \"classnames\";\nimport FocusLock from \"react-focus-lock\";\nimport { Portal, useLayerContext } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { StyledWindow } from \"./Style\";\nimport { layers } from \"../../utils\";\n\nexport interface IWindow {\n onClose?: () => void;\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableCloseOnEsc?: boolean;\n}\n\nconst returnFocus = { preventScroll: true };\n\nexport const Window = forwardRef<\n HTMLDivElement,\n IWindow & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof IWindow>\n>(\n (\n {\n children,\n onClose,\n className,\n style,\n onKeyDown,\n disableFocusLock = false,\n disableScrollLock = false,\n disableCloseOnEsc = false,\n onClick,\n ...rest\n },\n ref\n ) => {\n const innerRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(innerRef, ref);\n const { zIndex = layers.skyscraper } = useLayerContext();\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (\n !event.defaultPrevented &&\n (event.key === \"Esc\" || event.key === \"Escape\") &&\n !disableCloseOnEsc\n ) {\n event.preventDefault();\n if (onClose) {\n onClose();\n }\n }\n if (typeof onKeyDown === \"function\") {\n onKeyDown(event);\n }\n },\n [disableCloseOnEsc, onClose, onKeyDown]\n );\n\n useEffect(() => {\n return (): void => {\n typeof onClose === \"function\" && onClose();\n };\n // Dependency is empty because we only want to call onClose when component is unmounted\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleClick = useCallback(\n (event) => {\n event?.stopPropagation();\n typeof onClick === \"function\" && onClick(event);\n },\n [onClick]\n );\n\n return (\n <Portal>\n <FocusLock returnFocus={returnFocus} disabled={disableFocusLock}>\n <RemoveScroll\n forwardProps\n ref={handleRef}\n enabled={!disableScrollLock}\n noIsolation\n >\n <StyledWindow\n {...rest}\n style={{ zIndex, ...style }}\n onKeyDown={handleKeyDown}\n tabIndex={0}\n className={classnames(\"c-window\", className)}\n onClick={handleClick}\n >\n {children}\n </StyledWindow>\n </RemoveScroll>\n </FocusLock>\n </Portal>\n );\n }\n);\n\nWindow.displayName = \"Window\";\n"],"file":"Window.js"}
@@ -4,6 +4,7 @@ export interface IWizard {
4
4
  open: boolean;
5
5
  onClose: () => void;
6
6
  children: ReactNode;
7
+ disableCloseOnEsc?: boolean;
7
8
  }
8
9
  export declare const Wizard: React.ForwardRefExoticComponent<IWizard & React.RefAttributes<HTMLDivElement>>;
9
10
  //# sourceMappingURL=Wizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAKf,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,eAAO,MAAM,MAAM,gFAiFlB,CAAC"}
1
+ {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAKf,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,gFAsFlB,CAAC"}
@@ -6,6 +6,8 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
6
6
  var title = _ref.title,
7
7
  open = _ref.open,
8
8
  onClose = _ref.onClose,
9
+ _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
10
+ disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
9
11
  children = _ref.children;
10
12
  var childrenCollection = useMemo(function () {
11
13
  return React.Children.toArray(children);
@@ -78,7 +80,8 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
78
80
  }, /*#__PURE__*/React.createElement(Dialog, {
79
81
  ref: ref,
80
82
  open: open,
81
- onClose: onClose
83
+ onClose: onClose,
84
+ disableCloseOnEsc: disableCloseOnEsc
82
85
  }, renderActiveStep));
83
86
  });
84
87
  Wizard.displayName = "Wizard";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Dialog","WizardContextProvider","Step","Wizard","ref","title","open","onClose","children","childrenCollection","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title: title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog ref={ref} open={open} onClose={onClose}>\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"file":"Wizard.js"}
1
+ {"version":3,"sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Dialog","WizardContextProvider","Step","Wizard","ref","title","open","onClose","disableCloseOnEsc","children","childrenCollection","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"mappings":"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","sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, disableCloseOnEsc = false, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"file":"Wizard.js"}