@activecollab/components 1.0.183 → 1.0.185

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.
@@ -39,7 +39,9 @@ var Step = function Step(_ref) {
39
39
  _ref$shouldRenderNext = _ref.shouldRenderNextButton,
40
40
  shouldRenderNextButton = _ref$shouldRenderNext === void 0 ? true : _ref$shouldRenderNext,
41
41
  _ref$changingStepInPr = _ref.changingStepInProgress,
42
- changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr;
42
+ changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr,
43
+ _ref$skip = _ref.skip,
44
+ skip = _ref$skip === void 0 ? false : _ref$skip;
43
45
  var onActionButtonClick = (0, _react.useCallback)(function () {
44
46
  if (isLast && onClose) {
45
47
  return onClose();
@@ -47,7 +49,7 @@ var Step = function Step(_ref) {
47
49
 
48
50
  return onNextButtonClick && onNextButtonClick();
49
51
  }, [isLast, onClose, onNextButtonClick]);
50
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Styles.StyledStepHeader, null, /*#__PURE__*/_react.default.createElement(_Styles.StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/_react.default.createElement(_Button.Button, {
52
+ return !skip ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Styles.StyledStepHeader, null, /*#__PURE__*/_react.default.createElement(_Styles.StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/_react.default.createElement(_Button.Button, {
51
53
  onClick: onPreviousButtonClick,
52
54
  variant: "text gray",
53
55
  className: "tw--ml-3 tw-mr-2",
@@ -60,7 +62,7 @@ var Step = function Step(_ref) {
60
62
  isLast: isLast,
61
63
  actionLabel: actionLabel,
62
64
  onNextButtonClick: onActionButtonClick
63
- }))) : /*#__PURE__*/_react.default.createElement(_Styles.StyledCustomStep, null, children));
65
+ }))) : /*#__PURE__*/_react.default.createElement(_Styles.StyledCustomStep, null, children)) : null;
64
66
  };
65
67
 
66
68
  exports.Step = Step;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Wizard/Step.tsx"],"names":["Step","index","isLast","subtitle","title","onNextButtonClick","onPreviousButtonClick","onClose","children","actionLabel","shouldRenderNextButton","changingStepInProgress","onActionButtonClick","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAqBO,IAAMA,IAAe,GAAG,SAAlBA,IAAkB,OAYzB;AAAA,MAXJC,KAWI,QAXJA,KAWI;AAAA,MAVJC,MAUI,QAVJA,MAUI;AAAA,MATJC,QASI,QATJA,QASI;AAAA,MARJC,KAQI,QARJA,KAQI;AAAA,MAPJC,iBAOI,QAPJA,iBAOI;AAAA,MANJC,qBAMI,QANJA,qBAMI;AAAA,MALJC,OAKI,QALJA,OAKI;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,8BAHJC,WAGI;AAAA,MAHJA,WAGI,iCAHU,SAGV;AAAA,mCAFJC,sBAEI;AAAA,MAFJA,sBAEI,sCAFqB,IAErB;AAAA,mCADJC,sBACI;AAAA,MADJA,sBACI,sCADqB,KACrB;AACJ,MAAMC,mBAAmB,GAAG,wBAAY,YAAM;AAC5C,QAAIV,MAAM,IAAIK,OAAd,EAAuB;AACrB,aAAOA,OAAO,EAAd;AACD;;AAED,WAAOF,iBAAiB,IAAIA,iBAAiB,EAA7C;AACD,GAN2B,EAMzB,CAACH,MAAD,EAASK,OAAT,EAAkBF,iBAAlB,CANyB,CAA5B;AAQA,sBACE,yEACE,6BAAC,wBAAD,qBACE,6BAAC,4BAAD,QACGJ,KAAK,IAAIA,KAAK,GAAG,CAAjB,gBACC,6BAAC,cAAD;AACE,IAAA,OAAO,EAAEK,qBADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,SAAS,EAAC,kBAHZ;AAIE,IAAA,QAAQ,EAAEK;AAJZ,kBAME,6BAAC,0BAAD,OANF,CADD,GASG,IAVN,eAWE,6BAAC,uBAAD,qBACE,6BAAC,oBAAD,QAAWP,KAAX,CADF,eAEE,6BAAC,mBAAD,QAAUD,QAAV,CAFF,CAXF,CADF,eAiBE,6BAAC,cAAD;AACE,IAAA,OAAO,EAAEI,OADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,QAAQ,EAAEI;AAHZ,kBAKE,6BAAC,sBAAD,OALF,CAjBF,CADF,eA0BE,6BAAC,4BAAD,OA1BF,EA2BGD,sBAAsB,gBACrB,yEACE,6BAAC,qBAAD,QAAgBF,QAAhB,CADF,eAEE,6BAAC,4BAAD,OAFF,eAGE,6BAAC,qBAAD,qBACE,6BAAC,kCAAD;AACE,IAAA,MAAM,EAAEN,MADV;AAEE,IAAA,WAAW,EAAEO,WAFf;AAGE,IAAA,iBAAiB,EAAEG;AAHrB,IADF,CAHF,CADqB,gBAarB,6BAAC,wBAAD,QAAmBJ,QAAnB,CAxCJ,CADF;AA6CD,CAlEM;;;AAoEPR,IAAI,CAACa,WAAL,GAAmB,MAAnB","sourcesContent":["import React, { FC, ReactNode, useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { ArrowBackMobileIcon, CancelCrossIcon } from \"../Icons\";\nimport { StepActionButton } from \"./StepActionButton\";\nimport { DialogActions, DialogContent, DialogContentDivider } from \"../Dialog\";\nimport { Caption2, Header3 } from \"../Typography\";\nimport {\n StyledStepTitle,\n StyledStepHeaderLeft,\n StyledStepHeader,\n StyledCustomStep,\n} from \"./Styles\";\n\nexport interface IStep {\n index?: number;\n isLast?: boolean;\n subtitle: string;\n title?: string;\n onNextButtonClick?: () => void;\n onPreviousButtonClick?: () => void;\n onClose?: () => void;\n children: ReactNode;\n actionLabel?: string;\n shouldRenderNextButton?: boolean;\n changingStepInProgress?: boolean;\n}\n\nexport const Step: FC<IStep> = ({\n index,\n isLast,\n subtitle,\n title,\n onNextButtonClick,\n onPreviousButtonClick,\n onClose,\n children,\n actionLabel = \"Proceed\",\n shouldRenderNextButton = true,\n changingStepInProgress = false,\n}) => {\n const onActionButtonClick = useCallback(() => {\n if (isLast && onClose) {\n return onClose();\n }\n\n return onNextButtonClick && onNextButtonClick();\n }, [isLast, onClose, onNextButtonClick]);\n\n return (\n <>\n <StyledStepHeader>\n <StyledStepHeaderLeft>\n {index && index > 0 ? (\n <Button\n onClick={onPreviousButtonClick}\n variant=\"text gray\"\n className=\"tw--ml-3 tw-mr-2\"\n disabled={changingStepInProgress}\n >\n <ArrowBackMobileIcon />\n </Button>\n ) : null}\n <StyledStepTitle>\n <Caption2>{title}</Caption2>\n <Header3>{subtitle}</Header3>\n </StyledStepTitle>\n </StyledStepHeaderLeft>\n <Button\n onClick={onClose}\n variant=\"text gray\"\n disabled={changingStepInProgress}\n >\n <CancelCrossIcon />\n </Button>\n </StyledStepHeader>\n <DialogContentDivider />\n {shouldRenderNextButton ? (\n <>\n <DialogContent>{children}</DialogContent>\n <DialogContentDivider />\n <DialogActions>\n <StepActionButton\n isLast={isLast}\n actionLabel={actionLabel}\n onNextButtonClick={onActionButtonClick}\n />\n </DialogActions>\n </>\n ) : (\n <StyledCustomStep>{children}</StyledCustomStep>\n )}\n </>\n );\n};\n\nStep.displayName = \"Step\";\n"],"file":"Step.js"}
1
+ {"version":3,"sources":["../../../../src/components/Wizard/Step.tsx"],"names":["Step","index","isLast","subtitle","title","onNextButtonClick","onPreviousButtonClick","onClose","children","actionLabel","shouldRenderNextButton","changingStepInProgress","skip","onActionButtonClick","displayName"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAsBO,IAAMA,IAAe,GAAG,SAAlBA,IAAkB,OAazB;AAAA,MAZJC,KAYI,QAZJA,KAYI;AAAA,MAXJC,MAWI,QAXJA,MAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,KASI,QATJA,KASI;AAAA,MARJC,iBAQI,QARJA,iBAQI;AAAA,MAPJC,qBAOI,QAPJA,qBAOI;AAAA,MANJC,OAMI,QANJA,OAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,8BAJJC,WAII;AAAA,MAJJA,WAII,iCAJU,SAIV;AAAA,mCAHJC,sBAGI;AAAA,MAHJA,sBAGI,sCAHqB,IAGrB;AAAA,mCAFJC,sBAEI;AAAA,MAFJA,sBAEI,sCAFqB,KAErB;AAAA,uBADJC,IACI;AAAA,MADJA,IACI,0BADG,KACH;AACJ,MAAMC,mBAAmB,GAAG,wBAAY,YAAM;AAC5C,QAAIX,MAAM,IAAIK,OAAd,EAAuB;AACrB,aAAOA,OAAO,EAAd;AACD;;AAED,WAAOF,iBAAiB,IAAIA,iBAAiB,EAA7C;AACD,GAN2B,EAMzB,CAACH,MAAD,EAASK,OAAT,EAAkBF,iBAAlB,CANyB,CAA5B;AAQA,SAAO,CAACO,IAAD,gBACL,yEACE,6BAAC,wBAAD,qBACE,6BAAC,4BAAD,QACGX,KAAK,IAAIA,KAAK,GAAG,CAAjB,gBACC,6BAAC,cAAD;AACE,IAAA,OAAO,EAAEK,qBADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,SAAS,EAAC,kBAHZ;AAIE,IAAA,QAAQ,EAAEK;AAJZ,kBAME,6BAAC,0BAAD,OANF,CADD,GASG,IAVN,eAWE,6BAAC,uBAAD,qBACE,6BAAC,oBAAD,QAAWP,KAAX,CADF,eAEE,6BAAC,mBAAD,QAAUD,QAAV,CAFF,CAXF,CADF,eAiBE,6BAAC,cAAD;AACE,IAAA,OAAO,EAAEI,OADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,QAAQ,EAAEI;AAHZ,kBAKE,6BAAC,sBAAD,OALF,CAjBF,CADF,eA0BE,6BAAC,4BAAD,OA1BF,EA2BGD,sBAAsB,gBACrB,yEACE,6BAAC,qBAAD,QAAgBF,QAAhB,CADF,eAEE,6BAAC,4BAAD,OAFF,eAGE,6BAAC,qBAAD,qBACE,6BAAC,kCAAD;AACE,IAAA,MAAM,EAAEN,MADV;AAEE,IAAA,WAAW,EAAEO,WAFf;AAGE,IAAA,iBAAiB,EAAEI;AAHrB,IADF,CAHF,CADqB,gBAarB,6BAAC,wBAAD,QAAmBL,QAAnB,CAxCJ,CADK,GA4CH,IA5CJ;AA6CD,CAnEM;;;AAqEPR,IAAI,CAACc,WAAL,GAAmB,MAAnB","sourcesContent":["import React, { FC, ReactNode, useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { ArrowBackMobileIcon, CancelCrossIcon } from \"../Icons\";\nimport { StepActionButton } from \"./StepActionButton\";\nimport { DialogActions, DialogContent, DialogContentDivider } from \"../Dialog\";\nimport { Caption2, Header3 } from \"../Typography\";\nimport {\n StyledStepTitle,\n StyledStepHeaderLeft,\n StyledStepHeader,\n StyledCustomStep,\n} from \"./Styles\";\n\nexport interface IStep {\n index?: number;\n isLast?: boolean;\n subtitle: string;\n title?: string;\n onNextButtonClick?: () => void;\n onPreviousButtonClick?: () => void;\n onClose?: () => void;\n children: ReactNode;\n actionLabel?: string;\n shouldRenderNextButton?: boolean;\n changingStepInProgress?: boolean;\n skip?: boolean;\n}\n\nexport const Step: FC<IStep> = ({\n index,\n isLast,\n subtitle,\n title,\n onNextButtonClick,\n onPreviousButtonClick,\n onClose,\n children,\n actionLabel = \"Proceed\",\n shouldRenderNextButton = true,\n changingStepInProgress = false,\n skip = false,\n}) => {\n const onActionButtonClick = useCallback(() => {\n if (isLast && onClose) {\n return onClose();\n }\n\n return onNextButtonClick && onNextButtonClick();\n }, [isLast, onClose, onNextButtonClick]);\n\n return !skip ? (\n <>\n <StyledStepHeader>\n <StyledStepHeaderLeft>\n {index && index > 0 ? (\n <Button\n onClick={onPreviousButtonClick}\n variant=\"text gray\"\n className=\"tw--ml-3 tw-mr-2\"\n disabled={changingStepInProgress}\n >\n <ArrowBackMobileIcon />\n </Button>\n ) : null}\n <StyledStepTitle>\n <Caption2>{title}</Caption2>\n <Header3>{subtitle}</Header3>\n </StyledStepTitle>\n </StyledStepHeaderLeft>\n <Button\n onClick={onClose}\n variant=\"text gray\"\n disabled={changingStepInProgress}\n >\n <CancelCrossIcon />\n </Button>\n </StyledStepHeader>\n <DialogContentDivider />\n {shouldRenderNextButton ? (\n <>\n <DialogContent>{children}</DialogContent>\n <DialogContentDivider />\n <DialogActions>\n <StepActionButton\n isLast={isLast}\n actionLabel={actionLabel}\n onNextButtonClick={onActionButtonClick}\n />\n </DialogActions>\n </>\n ) : (\n <StyledCustomStep>{children}</StyledCustomStep>\n )}\n </>\n ) : null;\n};\n\nStep.displayName = \"Step\";\n"],"file":"Step.js"}
@@ -55,12 +55,31 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
55
55
  setActiveStep(0);
56
56
  }
57
57
  }, [open]);
58
- var onNextButtonClick = (0, _react.useCallback)(function () {
59
- setActiveStep(activeStep + 1);
60
- }, [activeStep]);
61
- var onPreviousButtonClick = (0, _react.useCallback)(function () {
62
- setActiveStep(activeStep - 1);
63
- }, [activeStep]);
58
+ var goNext = (0, _react.useCallback)(function () {
59
+ var index = childrenCollection.findIndex(function (step, index) {
60
+ var _stepEl$props;
61
+
62
+ var stepEl = step;
63
+ return !(stepEl !== null && stepEl !== void 0 && (_stepEl$props = stepEl.props) !== null && _stepEl$props !== void 0 && _stepEl$props.skip) && index > activeStep;
64
+ });
65
+ setActiveStep(index);
66
+ }, [activeStep, childrenCollection]);
67
+ var goPrevious = (0, _react.useCallback)(function () {
68
+ var index = 0;
69
+
70
+ for (var i = childrenCollection.length - 1; i >= 0; i--) {
71
+ var _step$props;
72
+
73
+ var step = childrenCollection[i];
74
+
75
+ if (!(step !== null && step !== void 0 && (_step$props = step.props) !== null && _step$props !== void 0 && _step$props.skip) && i < activeStep) {
76
+ index = i;
77
+ break;
78
+ }
79
+ }
80
+
81
+ setActiveStep(index);
82
+ }, [activeStep, childrenCollection]);
64
83
  var renderActiveStep = (0, _react.useMemo)(function () {
65
84
  var element = childrenCollection[activeStep];
66
85
 
@@ -69,19 +88,21 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
69
88
  index: activeStep,
70
89
  isLast: childrenCollection.length - 1 === activeStep,
71
90
  title: title,
72
- onNextButtonClick: onNextButtonClick,
73
- onPreviousButtonClick: onPreviousButtonClick,
91
+ onNextButtonClick: goNext,
92
+ onPreviousButtonClick: goPrevious,
74
93
  onClose: onClose,
75
94
  changingStepInProgress: changingStepInProgress
76
95
  });
77
96
  }
78
97
 
79
98
  return null;
80
- }, [activeStep, changingStepInProgress, childrenCollection, onClose, onNextButtonClick, onPreviousButtonClick, title]);
99
+ }, [activeStep, changingStepInProgress, childrenCollection, goNext, goPrevious, onClose, title]);
81
100
  return /*#__PURE__*/_react.default.createElement(_context.WizardContextProvider, {
82
101
  value: {
83
102
  activeStep: activeStep,
84
103
  setActiveStep: setActiveStep,
104
+ goNext: goNext,
105
+ goPrevious: goPrevious,
85
106
  close: onClose,
86
107
  setChangingStepInProgress: setChangingStepInProgress
87
108
  }
@@ -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","onNextButtonClick","onPreviousButtonClick","renderActiveStep","element","type","Step","cloneElement","index","isLast","length","close","displayName"],"mappings":";;;;;;;;;AAAA;;AASA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,MAAM,gBAAG,uBACpB,gBAAqCC,GAArC,EAA6C;AAAA,MAA1CC,KAA0C,QAA1CA,KAA0C;AAAA,MAAnCC,IAAmC,QAAnCA,IAAmC;AAAA,MAA7BC,OAA6B,QAA7BA,OAA6B;AAAA,MAApBC,QAAoB,QAApBA,QAAoB;AAC3C,MAAMC,kBAAkB,GAAG,oBACzB;AAAA,WAAMC,eAAMC,QAAN,CAAeC,OAAf,CAAuBJ,QAAvB,CAAN;AAAA,GADyB,EAEzB,CAACA,QAAD,CAFyB,CAA3B;;AAKA,kBAAoC,qBAAS,CAAT,CAApC;AAAA;AAAA,MAAOK,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4D,qBAAS,KAAT,CAA5D;AAAA;AAAA,MAAOC,sBAAP;AAAA,MAA+BC,yBAA/B;;AAEA,wBAAU,YAAM;AACd,QAAIV,IAAJ,EAAU;AACRQ,MAAAA,aAAa,CAAC,CAAD,CAAb;AACD;AACF,GAJD,EAIG,CAACR,IAAD,CAJH;AAMA,MAAMW,iBAAiB,GAAG,wBAAY,YAAM;AAC1CH,IAAAA,aAAa,CAACD,UAAU,GAAG,CAAd,CAAb;AACD,GAFyB,EAEvB,CAACA,UAAD,CAFuB,CAA1B;AAIA,MAAMK,qBAAqB,GAAG,wBAAY,YAAM;AAC9CJ,IAAAA,aAAa,CAACD,UAAU,GAAG,CAAd,CAAb;AACD,GAF6B,EAE3B,CAACA,UAAD,CAF2B,CAA9B;AAIA,MAAMM,gBAAgB,GAAG,oBAAQ,YAAM;AACrC,QAAMC,OAAO,GAAGX,kBAAkB,CAACI,UAAD,CAAlC;;AAEA,QAAI,CAAAO,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEC,IAAT,MAAkBC,UAAtB,EAA4B;AAC1B,0BAAOZ,eAAMa,YAAN,CAAmBH,OAAnB,EAA4B;AACjCI,QAAAA,KAAK,EAAEX,UAD0B;AAEjCY,QAAAA,MAAM,EAAEhB,kBAAkB,CAACiB,MAAnB,GAA4B,CAA5B,KAAkCb,UAFT;AAGjCR,QAAAA,KAAK,EAAEA,KAH0B;AAIjCY,QAAAA,iBAAiB,EAAEA,iBAJc;AAKjCC,QAAAA,qBAAqB,EAAEA,qBALU;AAMjCX,QAAAA,OAAO,EAAPA,OANiC;AAOjCQ,QAAAA,sBAAsB,EAAEA;AAPS,OAA5B,CAAP;AASD;;AAED,WAAO,IAAP;AACD,GAhBwB,EAgBtB,CACDF,UADC,EAEDE,sBAFC,EAGDN,kBAHC,EAIDF,OAJC,EAKDU,iBALC,EAMDC,qBANC,EAODb,KAPC,CAhBsB,CAAzB;AA0BA,sBACE,6BAAC,8BAAD;AACE,IAAA,KAAK,EAAE;AACLQ,MAAAA,UAAU,EAAVA,UADK;AAELC,MAAAA,aAAa,EAAbA,aAFK;AAGLa,MAAAA,KAAK,EAAEpB,OAHF;AAILS,MAAAA,yBAAyB,EAAzBA;AAJK;AADT,kBAQE,6BAAC,cAAD;AAAQ,IAAA,GAAG,EAAEZ,GAAb;AAAkB,IAAA,IAAI,EAAEE,IAAxB;AAA8B,IAAA,OAAO,EAAEC;AAAvC,KACGY,gBADH,CARF,CADF;AAcD,CAhEmB,CAAf;;AAmEPhB,MAAM,CAACyB,WAAP,GAAqB,QAArB","sourcesContent":["import React, {\n forwardRef,\n ReactElement,\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 onNextButtonClick = useCallback(() => {\n setActiveStep(activeStep + 1);\n }, [activeStep]);\n\n const onPreviousButtonClick = useCallback(() => {\n setActiveStep(activeStep - 1);\n }, [activeStep]);\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: onNextButtonClick,\n onPreviousButtonClick: onPreviousButtonClick,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n onClose,\n onNextButtonClick,\n onPreviousButtonClick,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\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","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 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Wizard/context/index.ts"],"names":["WizardContext","WizardContextProvider","Provider","WizardContextConsumer","Consumer","useWizardContext"],"mappings":";;;;;;;AAAA;;AASA,IAAMA,aAAa,gBAAG,0BAA8B,EAA9B,CAAtB;AAEO,IAAMC,qBAAqB,GAAGD,aAAa,CAACE,QAA5C;;AACA,IAAMC,qBAAqB,GAAGH,aAAa,CAACI,QAA5C;;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAsB,uBAAWL,aAAX,CAAtB;AAAA,CAAzB;;;eAEQA,a","sourcesContent":["import { createContext, useContext } from \"react\";\n\ninterface IWizardContext {\n activeStep?: number;\n setActiveStep?: (integer) => void;\n close?: () => void;\n setChangingStepInProgress?: (boolean) => void;\n}\n\nconst WizardContext = createContext<IWizardContext>({});\n\nexport const WizardContextProvider = WizardContext.Provider;\nexport const WizardContextConsumer = WizardContext.Consumer;\n\nexport const useWizardContext = (): IWizardContext => useContext(WizardContext);\n\nexport default WizardContext;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Wizard/context/index.ts"],"names":["WizardContext","WizardContextProvider","Provider","WizardContextConsumer","Consumer","useWizardContext"],"mappings":";;;;;;;AAAA;;AAWA,IAAMA,aAAa,gBAAG,0BAA8B,EAA9B,CAAtB;AAEO,IAAMC,qBAAqB,GAAGD,aAAa,CAACE,QAA5C;;AACA,IAAMC,qBAAqB,GAAGH,aAAa,CAACI,QAA5C;;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAsB,uBAAWL,aAAX,CAAtB;AAAA,CAAzB;;;eAEQA,a","sourcesContent":["import { createContext, useContext } from \"react\";\n\ninterface IWizardContext {\n activeStep?: number;\n setActiveStep?: (integer) => void;\n goNext?: () => void;\n goPrevious?: () => void;\n close?: () => void;\n setChangingStepInProgress?: (boolean) => void;\n}\n\nconst WizardContext = createContext<IWizardContext>({});\n\nexport const WizardContextProvider = WizardContext.Provider;\nexport const WizardContextConsumer = WizardContext.Consumer;\n\nexport const useWizardContext = (): IWizardContext => useContext(WizardContext);\n\nexport default WizardContext;\n"],"file":"index.js"}
@@ -11,6 +11,7 @@ export interface IStep {
11
11
  actionLabel?: string;
12
12
  shouldRenderNextButton?: boolean;
13
13
  changingStepInProgress?: boolean;
14
+ skip?: boolean;
14
15
  }
15
16
  export declare const Step: FC<IStep>;
16
17
  //# sourceMappingURL=Step.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Step.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAa1D,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAkE1B,CAAC"}
1
+ {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Step.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAa1D,MAAM,WAAW,KAAK;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAmE1B,CAAC"}
@@ -19,7 +19,9 @@ export var Step = function Step(_ref) {
19
19
  _ref$shouldRenderNext = _ref.shouldRenderNextButton,
20
20
  shouldRenderNextButton = _ref$shouldRenderNext === void 0 ? true : _ref$shouldRenderNext,
21
21
  _ref$changingStepInPr = _ref.changingStepInProgress,
22
- changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr;
22
+ changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr,
23
+ _ref$skip = _ref.skip,
24
+ skip = _ref$skip === void 0 ? false : _ref$skip;
23
25
  var onActionButtonClick = useCallback(function () {
24
26
  if (isLast && onClose) {
25
27
  return onClose();
@@ -27,7 +29,7 @@ export var Step = function Step(_ref) {
27
29
 
28
30
  return onNextButtonClick && onNextButtonClick();
29
31
  }, [isLast, onClose, onNextButtonClick]);
30
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledStepHeader, null, /*#__PURE__*/React.createElement(StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/React.createElement(Button, {
32
+ return !skip ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledStepHeader, null, /*#__PURE__*/React.createElement(StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/React.createElement(Button, {
31
33
  onClick: onPreviousButtonClick,
32
34
  variant: "text gray",
33
35
  className: "tw--ml-3 tw-mr-2",
@@ -40,7 +42,7 @@ export var Step = function Step(_ref) {
40
42
  isLast: isLast,
41
43
  actionLabel: actionLabel,
42
44
  onNextButtonClick: onActionButtonClick
43
- }))) : /*#__PURE__*/React.createElement(StyledCustomStep, null, children));
45
+ }))) : /*#__PURE__*/React.createElement(StyledCustomStep, null, children)) : null;
44
46
  };
45
47
  Step.displayName = "Step";
46
48
  //# sourceMappingURL=Step.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/Wizard/Step.tsx"],"names":["React","useCallback","Button","ArrowBackMobileIcon","CancelCrossIcon","StepActionButton","DialogActions","DialogContent","DialogContentDivider","Caption2","Header3","StyledStepTitle","StyledStepHeaderLeft","StyledStepHeader","StyledCustomStep","Step","index","isLast","subtitle","title","onNextButtonClick","onPreviousButtonClick","onClose","children","actionLabel","shouldRenderNextButton","changingStepInProgress","onActionButtonClick","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAA+BC,WAA/B,QAAkD,OAAlD;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,mBAAT,EAA8BC,eAA9B,QAAqD,UAArD;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,oBAAvC,QAAmE,WAAnE;AACA,SAASC,QAAT,EAAmBC,OAAnB,QAAkC,eAAlC;AACA,SACEC,eADF,EAEEC,oBAFF,EAGEC,gBAHF,EAIEC,gBAJF,QAKO,UALP;AAqBA,OAAO,IAAMC,IAAe,GAAG,SAAlBA,IAAkB,OAYzB;AAAA,MAXJC,KAWI,QAXJA,KAWI;AAAA,MAVJC,MAUI,QAVJA,MAUI;AAAA,MATJC,QASI,QATJA,QASI;AAAA,MARJC,KAQI,QARJA,KAQI;AAAA,MAPJC,iBAOI,QAPJA,iBAOI;AAAA,MANJC,qBAMI,QANJA,qBAMI;AAAA,MALJC,OAKI,QALJA,OAKI;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,8BAHJC,WAGI;AAAA,MAHJA,WAGI,iCAHU,SAGV;AAAA,mCAFJC,sBAEI;AAAA,MAFJA,sBAEI,sCAFqB,IAErB;AAAA,mCADJC,sBACI;AAAA,MADJA,sBACI,sCADqB,KACrB;AACJ,MAAMC,mBAAmB,GAAG1B,WAAW,CAAC,YAAM;AAC5C,QAAIgB,MAAM,IAAIK,OAAd,EAAuB;AACrB,aAAOA,OAAO,EAAd;AACD;;AAED,WAAOF,iBAAiB,IAAIA,iBAAiB,EAA7C;AACD,GANsC,EAMpC,CAACH,MAAD,EAASK,OAAT,EAAkBF,iBAAlB,CANoC,CAAvC;AAQA,sBACE,uDACE,oBAAC,gBAAD,qBACE,oBAAC,oBAAD,QACGJ,KAAK,IAAIA,KAAK,GAAG,CAAjB,gBACC,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEK,qBADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,SAAS,EAAC,kBAHZ;AAIE,IAAA,QAAQ,EAAEK;AAJZ,kBAME,oBAAC,mBAAD,OANF,CADD,GASG,IAVN,eAWE,oBAAC,eAAD,qBACE,oBAAC,QAAD,QAAWP,KAAX,CADF,eAEE,oBAAC,OAAD,QAAUD,QAAV,CAFF,CAXF,CADF,eAiBE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEI,OADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,QAAQ,EAAEI;AAHZ,kBAKE,oBAAC,eAAD,OALF,CAjBF,CADF,eA0BE,oBAAC,oBAAD,OA1BF,EA2BGD,sBAAsB,gBACrB,uDACE,oBAAC,aAAD,QAAgBF,QAAhB,CADF,eAEE,oBAAC,oBAAD,OAFF,eAGE,oBAAC,aAAD,qBACE,oBAAC,gBAAD;AACE,IAAA,MAAM,EAAEN,MADV;AAEE,IAAA,WAAW,EAAEO,WAFf;AAGE,IAAA,iBAAiB,EAAEG;AAHrB,IADF,CAHF,CADqB,gBAarB,oBAAC,gBAAD,QAAmBJ,QAAnB,CAxCJ,CADF;AA6CD,CAlEM;AAoEPR,IAAI,CAACa,WAAL,GAAmB,MAAnB","sourcesContent":["import React, { FC, ReactNode, useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { ArrowBackMobileIcon, CancelCrossIcon } from \"../Icons\";\nimport { StepActionButton } from \"./StepActionButton\";\nimport { DialogActions, DialogContent, DialogContentDivider } from \"../Dialog\";\nimport { Caption2, Header3 } from \"../Typography\";\nimport {\n StyledStepTitle,\n StyledStepHeaderLeft,\n StyledStepHeader,\n StyledCustomStep,\n} from \"./Styles\";\n\nexport interface IStep {\n index?: number;\n isLast?: boolean;\n subtitle: string;\n title?: string;\n onNextButtonClick?: () => void;\n onPreviousButtonClick?: () => void;\n onClose?: () => void;\n children: ReactNode;\n actionLabel?: string;\n shouldRenderNextButton?: boolean;\n changingStepInProgress?: boolean;\n}\n\nexport const Step: FC<IStep> = ({\n index,\n isLast,\n subtitle,\n title,\n onNextButtonClick,\n onPreviousButtonClick,\n onClose,\n children,\n actionLabel = \"Proceed\",\n shouldRenderNextButton = true,\n changingStepInProgress = false,\n}) => {\n const onActionButtonClick = useCallback(() => {\n if (isLast && onClose) {\n return onClose();\n }\n\n return onNextButtonClick && onNextButtonClick();\n }, [isLast, onClose, onNextButtonClick]);\n\n return (\n <>\n <StyledStepHeader>\n <StyledStepHeaderLeft>\n {index && index > 0 ? (\n <Button\n onClick={onPreviousButtonClick}\n variant=\"text gray\"\n className=\"tw--ml-3 tw-mr-2\"\n disabled={changingStepInProgress}\n >\n <ArrowBackMobileIcon />\n </Button>\n ) : null}\n <StyledStepTitle>\n <Caption2>{title}</Caption2>\n <Header3>{subtitle}</Header3>\n </StyledStepTitle>\n </StyledStepHeaderLeft>\n <Button\n onClick={onClose}\n variant=\"text gray\"\n disabled={changingStepInProgress}\n >\n <CancelCrossIcon />\n </Button>\n </StyledStepHeader>\n <DialogContentDivider />\n {shouldRenderNextButton ? (\n <>\n <DialogContent>{children}</DialogContent>\n <DialogContentDivider />\n <DialogActions>\n <StepActionButton\n isLast={isLast}\n actionLabel={actionLabel}\n onNextButtonClick={onActionButtonClick}\n />\n </DialogActions>\n </>\n ) : (\n <StyledCustomStep>{children}</StyledCustomStep>\n )}\n </>\n );\n};\n\nStep.displayName = \"Step\";\n"],"file":"Step.js"}
1
+ {"version":3,"sources":["../../../../src/components/Wizard/Step.tsx"],"names":["React","useCallback","Button","ArrowBackMobileIcon","CancelCrossIcon","StepActionButton","DialogActions","DialogContent","DialogContentDivider","Caption2","Header3","StyledStepTitle","StyledStepHeaderLeft","StyledStepHeader","StyledCustomStep","Step","index","isLast","subtitle","title","onNextButtonClick","onPreviousButtonClick","onClose","children","actionLabel","shouldRenderNextButton","changingStepInProgress","skip","onActionButtonClick","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAA+BC,WAA/B,QAAkD,OAAlD;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,mBAAT,EAA8BC,eAA9B,QAAqD,UAArD;AACA,SAASC,gBAAT,QAAiC,oBAAjC;AACA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,oBAAvC,QAAmE,WAAnE;AACA,SAASC,QAAT,EAAmBC,OAAnB,QAAkC,eAAlC;AACA,SACEC,eADF,EAEEC,oBAFF,EAGEC,gBAHF,EAIEC,gBAJF,QAKO,UALP;AAsBA,OAAO,IAAMC,IAAe,GAAG,SAAlBA,IAAkB,OAazB;AAAA,MAZJC,KAYI,QAZJA,KAYI;AAAA,MAXJC,MAWI,QAXJA,MAWI;AAAA,MAVJC,QAUI,QAVJA,QAUI;AAAA,MATJC,KASI,QATJA,KASI;AAAA,MARJC,iBAQI,QARJA,iBAQI;AAAA,MAPJC,qBAOI,QAPJA,qBAOI;AAAA,MANJC,OAMI,QANJA,OAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,8BAJJC,WAII;AAAA,MAJJA,WAII,iCAJU,SAIV;AAAA,mCAHJC,sBAGI;AAAA,MAHJA,sBAGI,sCAHqB,IAGrB;AAAA,mCAFJC,sBAEI;AAAA,MAFJA,sBAEI,sCAFqB,KAErB;AAAA,uBADJC,IACI;AAAA,MADJA,IACI,0BADG,KACH;AACJ,MAAMC,mBAAmB,GAAG3B,WAAW,CAAC,YAAM;AAC5C,QAAIgB,MAAM,IAAIK,OAAd,EAAuB;AACrB,aAAOA,OAAO,EAAd;AACD;;AAED,WAAOF,iBAAiB,IAAIA,iBAAiB,EAA7C;AACD,GANsC,EAMpC,CAACH,MAAD,EAASK,OAAT,EAAkBF,iBAAlB,CANoC,CAAvC;AAQA,SAAO,CAACO,IAAD,gBACL,uDACE,oBAAC,gBAAD,qBACE,oBAAC,oBAAD,QACGX,KAAK,IAAIA,KAAK,GAAG,CAAjB,gBACC,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEK,qBADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,SAAS,EAAC,kBAHZ;AAIE,IAAA,QAAQ,EAAEK;AAJZ,kBAME,oBAAC,mBAAD,OANF,CADD,GASG,IAVN,eAWE,oBAAC,eAAD,qBACE,oBAAC,QAAD,QAAWP,KAAX,CADF,eAEE,oBAAC,OAAD,QAAUD,QAAV,CAFF,CAXF,CADF,eAiBE,oBAAC,MAAD;AACE,IAAA,OAAO,EAAEI,OADX;AAEE,IAAA,OAAO,EAAC,WAFV;AAGE,IAAA,QAAQ,EAAEI;AAHZ,kBAKE,oBAAC,eAAD,OALF,CAjBF,CADF,eA0BE,oBAAC,oBAAD,OA1BF,EA2BGD,sBAAsB,gBACrB,uDACE,oBAAC,aAAD,QAAgBF,QAAhB,CADF,eAEE,oBAAC,oBAAD,OAFF,eAGE,oBAAC,aAAD,qBACE,oBAAC,gBAAD;AACE,IAAA,MAAM,EAAEN,MADV;AAEE,IAAA,WAAW,EAAEO,WAFf;AAGE,IAAA,iBAAiB,EAAEI;AAHrB,IADF,CAHF,CADqB,gBAarB,oBAAC,gBAAD,QAAmBL,QAAnB,CAxCJ,CADK,GA4CH,IA5CJ;AA6CD,CAnEM;AAqEPR,IAAI,CAACc,WAAL,GAAmB,MAAnB","sourcesContent":["import React, { FC, ReactNode, useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { ArrowBackMobileIcon, CancelCrossIcon } from \"../Icons\";\nimport { StepActionButton } from \"./StepActionButton\";\nimport { DialogActions, DialogContent, DialogContentDivider } from \"../Dialog\";\nimport { Caption2, Header3 } from \"../Typography\";\nimport {\n StyledStepTitle,\n StyledStepHeaderLeft,\n StyledStepHeader,\n StyledCustomStep,\n} from \"./Styles\";\n\nexport interface IStep {\n index?: number;\n isLast?: boolean;\n subtitle: string;\n title?: string;\n onNextButtonClick?: () => void;\n onPreviousButtonClick?: () => void;\n onClose?: () => void;\n children: ReactNode;\n actionLabel?: string;\n shouldRenderNextButton?: boolean;\n changingStepInProgress?: boolean;\n skip?: boolean;\n}\n\nexport const Step: FC<IStep> = ({\n index,\n isLast,\n subtitle,\n title,\n onNextButtonClick,\n onPreviousButtonClick,\n onClose,\n children,\n actionLabel = \"Proceed\",\n shouldRenderNextButton = true,\n changingStepInProgress = false,\n skip = false,\n}) => {\n const onActionButtonClick = useCallback(() => {\n if (isLast && onClose) {\n return onClose();\n }\n\n return onNextButtonClick && onNextButtonClick();\n }, [isLast, onClose, onNextButtonClick]);\n\n return !skip ? (\n <>\n <StyledStepHeader>\n <StyledStepHeaderLeft>\n {index && index > 0 ? (\n <Button\n onClick={onPreviousButtonClick}\n variant=\"text gray\"\n className=\"tw--ml-3 tw-mr-2\"\n disabled={changingStepInProgress}\n >\n <ArrowBackMobileIcon />\n </Button>\n ) : null}\n <StyledStepTitle>\n <Caption2>{title}</Caption2>\n <Header3>{subtitle}</Header3>\n </StyledStepTitle>\n </StyledStepHeaderLeft>\n <Button\n onClick={onClose}\n variant=\"text gray\"\n disabled={changingStepInProgress}\n >\n <CancelCrossIcon />\n </Button>\n </StyledStepHeader>\n <DialogContentDivider />\n {shouldRenderNextButton ? (\n <>\n <DialogContent>{children}</DialogContent>\n <DialogContentDivider />\n <DialogActions>\n <StepActionButton\n isLast={isLast}\n actionLabel={actionLabel}\n onNextButtonClick={onActionButtonClick}\n />\n </DialogActions>\n </>\n ) : (\n <StyledCustomStep>{children}</StyledCustomStep>\n )}\n </>\n ) : null;\n};\n\nStep.displayName = \"Step\";\n"],"file":"Step.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,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,gFAiElB,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;CACrB;AAED,eAAO,MAAM,MAAM,gFAiFlB,CAAC"}
@@ -24,12 +24,31 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
24
24
  setActiveStep(0);
25
25
  }
26
26
  }, [open]);
27
- var onNextButtonClick = useCallback(function () {
28
- setActiveStep(activeStep + 1);
29
- }, [activeStep]);
30
- var onPreviousButtonClick = useCallback(function () {
31
- setActiveStep(activeStep - 1);
32
- }, [activeStep]);
27
+ var goNext = useCallback(function () {
28
+ var index = childrenCollection.findIndex(function (step, index) {
29
+ var _stepEl$props;
30
+
31
+ var stepEl = step;
32
+ return !(stepEl != null && (_stepEl$props = stepEl.props) != null && _stepEl$props.skip) && index > activeStep;
33
+ });
34
+ setActiveStep(index);
35
+ }, [activeStep, childrenCollection]);
36
+ var goPrevious = useCallback(function () {
37
+ var index = 0;
38
+
39
+ for (var i = childrenCollection.length - 1; i >= 0; i--) {
40
+ var _step$props;
41
+
42
+ var step = childrenCollection[i];
43
+
44
+ if (!(step != null && (_step$props = step.props) != null && _step$props.skip) && i < activeStep) {
45
+ index = i;
46
+ break;
47
+ }
48
+ }
49
+
50
+ setActiveStep(index);
51
+ }, [activeStep, childrenCollection]);
33
52
  var renderActiveStep = useMemo(function () {
34
53
  var element = childrenCollection[activeStep];
35
54
 
@@ -38,19 +57,21 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
38
57
  index: activeStep,
39
58
  isLast: childrenCollection.length - 1 === activeStep,
40
59
  title: title,
41
- onNextButtonClick: onNextButtonClick,
42
- onPreviousButtonClick: onPreviousButtonClick,
60
+ onNextButtonClick: goNext,
61
+ onPreviousButtonClick: goPrevious,
43
62
  onClose: onClose,
44
63
  changingStepInProgress: changingStepInProgress
45
64
  });
46
65
  }
47
66
 
48
67
  return null;
49
- }, [activeStep, changingStepInProgress, childrenCollection, onClose, onNextButtonClick, onPreviousButtonClick, title]);
68
+ }, [activeStep, changingStepInProgress, childrenCollection, goNext, goPrevious, onClose, title]);
50
69
  return /*#__PURE__*/React.createElement(WizardContextProvider, {
51
70
  value: {
52
71
  activeStep: activeStep,
53
72
  setActiveStep: setActiveStep,
73
+ goNext: goNext,
74
+ goPrevious: goPrevious,
54
75
  close: onClose,
55
76
  setChangingStepInProgress: setChangingStepInProgress
56
77
  }
@@ -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","onNextButtonClick","onPreviousButtonClick","renderActiveStep","element","type","cloneElement","index","isLast","length","close","displayName"],"mappings":"AAAA,OAAOA,KAAP,IACEC,UADF,EAIEC,WAJF,EAKEC,SALF,EAMEC,OANF,EAOEC,QAPF,QAQO,OARP;AASA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,qBAAT,QAAsC,WAAtC;AACA,SAASC,IAAT,QAAqB,QAArB;AASA,OAAO,IAAMC,MAAM,gBAAGR,UAAU,CAC9B,gBAAqCS,GAArC,EAA6C;AAAA,MAA1CC,KAA0C,QAA1CA,KAA0C;AAAA,MAAnCC,IAAmC,QAAnCA,IAAmC;AAAA,MAA7BC,OAA6B,QAA7BA,OAA6B;AAAA,MAApBC,QAAoB,QAApBA,QAAoB;AAC3C,MAAMC,kBAAkB,GAAGX,OAAO,CAChC;AAAA,WAAMJ,KAAK,CAACgB,QAAN,CAAeC,OAAf,CAAuBH,QAAvB,CAAN;AAAA,GADgC,EAEhC,CAACA,QAAD,CAFgC,CAAlC;;AAKA,kBAAoCT,QAAQ,CAAC,CAAD,CAA5C;AAAA,MAAOa,UAAP;AAAA,MAAmBC,aAAnB;;AACA,mBAA4Dd,QAAQ,CAAC,KAAD,CAApE;AAAA,MAAOe,sBAAP;AAAA,MAA+BC,yBAA/B;;AAEAlB,EAAAA,SAAS,CAAC,YAAM;AACd,QAAIS,IAAJ,EAAU;AACRO,MAAAA,aAAa,CAAC,CAAD,CAAb;AACD;AACF,GAJQ,EAIN,CAACP,IAAD,CAJM,CAAT;AAMA,MAAMU,iBAAiB,GAAGpB,WAAW,CAAC,YAAM;AAC1CiB,IAAAA,aAAa,CAACD,UAAU,GAAG,CAAd,CAAb;AACD,GAFoC,EAElC,CAACA,UAAD,CAFkC,CAArC;AAIA,MAAMK,qBAAqB,GAAGrB,WAAW,CAAC,YAAM;AAC9CiB,IAAAA,aAAa,CAACD,UAAU,GAAG,CAAd,CAAb;AACD,GAFwC,EAEtC,CAACA,UAAD,CAFsC,CAAzC;AAIA,MAAMM,gBAAgB,GAAGpB,OAAO,CAAC,YAAM;AACrC,QAAMqB,OAAO,GAAGV,kBAAkB,CAACG,UAAD,CAAlC;;AAEA,QAAI,CAAAO,OAAO,QAAP,YAAAA,OAAO,CAAEC,IAAT,MAAkBlB,IAAtB,EAA4B;AAC1B,0BAAOR,KAAK,CAAC2B,YAAN,CAAmBF,OAAnB,EAA4B;AACjCG,QAAAA,KAAK,EAAEV,UAD0B;AAEjCW,QAAAA,MAAM,EAAEd,kBAAkB,CAACe,MAAnB,GAA4B,CAA5B,KAAkCZ,UAFT;AAGjCP,QAAAA,KAAK,EAAEA,KAH0B;AAIjCW,QAAAA,iBAAiB,EAAEA,iBAJc;AAKjCC,QAAAA,qBAAqB,EAAEA,qBALU;AAMjCV,QAAAA,OAAO,EAAPA,OANiC;AAOjCO,QAAAA,sBAAsB,EAAEA;AAPS,OAA5B,CAAP;AASD;;AAED,WAAO,IAAP;AACD,GAhB+B,EAgB7B,CACDF,UADC,EAEDE,sBAFC,EAGDL,kBAHC,EAIDF,OAJC,EAKDS,iBALC,EAMDC,qBANC,EAODZ,KAPC,CAhB6B,CAAhC;AA0BA,sBACE,oBAAC,qBAAD;AACE,IAAA,KAAK,EAAE;AACLO,MAAAA,UAAU,EAAVA,UADK;AAELC,MAAAA,aAAa,EAAbA,aAFK;AAGLY,MAAAA,KAAK,EAAElB,OAHF;AAILQ,MAAAA,yBAAyB,EAAzBA;AAJK;AADT,kBAQE,oBAAC,MAAD;AAAQ,IAAA,GAAG,EAAEX,GAAb;AAAkB,IAAA,IAAI,EAAEE,IAAxB;AAA8B,IAAA,OAAO,EAAEC;AAAvC,KACGW,gBADH,CARF,CADF;AAcD,CAhE6B,CAAzB;AAmEPf,MAAM,CAACuB,WAAP,GAAqB,QAArB","sourcesContent":["import React, {\n forwardRef,\n ReactElement,\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 onNextButtonClick = useCallback(() => {\n setActiveStep(activeStep + 1);\n }, [activeStep]);\n\n const onPreviousButtonClick = useCallback(() => {\n setActiveStep(activeStep - 1);\n }, [activeStep]);\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: onNextButtonClick,\n onPreviousButtonClick: onPreviousButtonClick,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n onClose,\n onNextButtonClick,\n onPreviousButtonClick,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\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","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"}
@@ -2,6 +2,8 @@
2
2
  interface IWizardContext {
3
3
  activeStep?: number;
4
4
  setActiveStep?: (integer: any) => void;
5
+ goNext?: () => void;
6
+ goPrevious?: () => void;
5
7
  close?: () => void;
6
8
  setChangingStepInProgress?: (boolean: any) => void;
7
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wizard/context/index.ts"],"names":[],"mappings":";AAEA,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,KAAA,KAAK,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,yBAAyB,CAAC,EAAE,CAAC,OAAO,KAAA,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,aAAa,yCAAoC,CAAC;AAExD,eAAO,MAAM,qBAAqB,0CAAyB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,0CAAyB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,QAAO,cAA2C,CAAC;AAEhF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Wizard/context/index.ts"],"names":[],"mappings":";AAEA,UAAU,cAAc;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,OAAO,KAAA,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,yBAAyB,CAAC,EAAE,CAAC,OAAO,KAAA,KAAK,IAAI,CAAC;CAC/C;AAED,QAAA,MAAM,aAAa,yCAAoC,CAAC;AAExD,eAAO,MAAM,qBAAqB,0CAAyB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,0CAAyB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,QAAO,cAA2C,CAAC;AAEhF,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Wizard/context/index.ts"],"names":["createContext","useContext","WizardContext","WizardContextProvider","Provider","WizardContextConsumer","Consumer","useWizardContext"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AASA,IAAMC,aAAa,gBAAGF,aAAa,CAAiB,EAAjB,CAAnC;AAEA,OAAO,IAAMG,qBAAqB,GAAGD,aAAa,CAACE,QAA5C;AACP,OAAO,IAAMC,qBAAqB,GAAGH,aAAa,CAACI,QAA5C;AAEP,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAsBN,UAAU,CAACC,aAAD,CAAhC;AAAA,CAAzB;AAEP,eAAeA,aAAf","sourcesContent":["import { createContext, useContext } from \"react\";\n\ninterface IWizardContext {\n activeStep?: number;\n setActiveStep?: (integer) => void;\n close?: () => void;\n setChangingStepInProgress?: (boolean) => void;\n}\n\nconst WizardContext = createContext<IWizardContext>({});\n\nexport const WizardContextProvider = WizardContext.Provider;\nexport const WizardContextConsumer = WizardContext.Consumer;\n\nexport const useWizardContext = (): IWizardContext => useContext(WizardContext);\n\nexport default WizardContext;\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Wizard/context/index.ts"],"names":["createContext","useContext","WizardContext","WizardContextProvider","Provider","WizardContextConsumer","Consumer","useWizardContext"],"mappings":"AAAA,SAASA,aAAT,EAAwBC,UAAxB,QAA0C,OAA1C;AAWA,IAAMC,aAAa,gBAAGF,aAAa,CAAiB,EAAjB,CAAnC;AAEA,OAAO,IAAMG,qBAAqB,GAAGD,aAAa,CAACE,QAA5C;AACP,OAAO,IAAMC,qBAAqB,GAAGH,aAAa,CAACI,QAA5C;AAEP,OAAO,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,SAAsBN,UAAU,CAACC,aAAD,CAAhC;AAAA,CAAzB;AAEP,eAAeA,aAAf","sourcesContent":["import { createContext, useContext } from \"react\";\n\ninterface IWizardContext {\n activeStep?: number;\n setActiveStep?: (integer) => void;\n goNext?: () => void;\n goPrevious?: () => void;\n close?: () => void;\n setChangingStepInProgress?: (boolean) => void;\n}\n\nconst WizardContext = createContext<IWizardContext>({});\n\nexport const WizardContextProvider = WizardContext.Provider;\nexport const WizardContextConsumer = WizardContext.Consumer;\n\nexport const useWizardContext = (): IWizardContext => useContext(WizardContext);\n\nexport default WizardContext;\n"],"file":"index.js"}
package/dist/index.js CHANGED
@@ -12624,7 +12624,9 @@
12624
12624
  _ref$shouldRenderNext = _ref.shouldRenderNextButton,
12625
12625
  shouldRenderNextButton = _ref$shouldRenderNext === void 0 ? true : _ref$shouldRenderNext,
12626
12626
  _ref$changingStepInPr = _ref.changingStepInProgress,
12627
- changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr;
12627
+ changingStepInProgress = _ref$changingStepInPr === void 0 ? false : _ref$changingStepInPr,
12628
+ _ref$skip = _ref.skip,
12629
+ skip = _ref$skip === void 0 ? false : _ref$skip;
12628
12630
  var onActionButtonClick = React.useCallback(function () {
12629
12631
  if (isLast && onClose) {
12630
12632
  return onClose();
@@ -12632,7 +12634,7 @@
12632
12634
 
12633
12635
  return onNextButtonClick && onNextButtonClick();
12634
12636
  }, [isLast, onClose, onNextButtonClick]);
12635
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(StyledStepHeader, null, /*#__PURE__*/React__default["default"].createElement(StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/React__default["default"].createElement(Button, {
12637
+ return !skip ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(StyledStepHeader, null, /*#__PURE__*/React__default["default"].createElement(StyledStepHeaderLeft, null, index && index > 0 ? /*#__PURE__*/React__default["default"].createElement(Button, {
12636
12638
  onClick: onPreviousButtonClick,
12637
12639
  variant: "text gray",
12638
12640
  className: "tw--ml-3 tw-mr-2",
@@ -12645,7 +12647,7 @@
12645
12647
  isLast: isLast,
12646
12648
  actionLabel: actionLabel,
12647
12649
  onNextButtonClick: onActionButtonClick
12648
- }))) : /*#__PURE__*/React__default["default"].createElement(StyledCustomStep, null, children));
12650
+ }))) : /*#__PURE__*/React__default["default"].createElement(StyledCustomStep, null, children)) : null;
12649
12651
  };
12650
12652
  Step.displayName = "Step";
12651
12653
 
@@ -12673,12 +12675,31 @@
12673
12675
  setActiveStep(0);
12674
12676
  }
12675
12677
  }, [open]);
12676
- var onNextButtonClick = React.useCallback(function () {
12677
- setActiveStep(activeStep + 1);
12678
- }, [activeStep]);
12679
- var onPreviousButtonClick = React.useCallback(function () {
12680
- setActiveStep(activeStep - 1);
12681
- }, [activeStep]);
12678
+ var goNext = React.useCallback(function () {
12679
+ var index = childrenCollection.findIndex(function (step, index) {
12680
+ var _stepEl$props;
12681
+
12682
+ var stepEl = step;
12683
+ return !(stepEl !== null && stepEl !== void 0 && (_stepEl$props = stepEl.props) !== null && _stepEl$props !== void 0 && _stepEl$props.skip) && index > activeStep;
12684
+ });
12685
+ setActiveStep(index);
12686
+ }, [activeStep, childrenCollection]);
12687
+ var goPrevious = React.useCallback(function () {
12688
+ var index = 0;
12689
+
12690
+ for (var i = childrenCollection.length - 1; i >= 0; i--) {
12691
+ var _step$props;
12692
+
12693
+ var step = childrenCollection[i];
12694
+
12695
+ if (!(step !== null && step !== void 0 && (_step$props = step.props) !== null && _step$props !== void 0 && _step$props.skip) && i < activeStep) {
12696
+ index = i;
12697
+ break;
12698
+ }
12699
+ }
12700
+
12701
+ setActiveStep(index);
12702
+ }, [activeStep, childrenCollection]);
12682
12703
  var renderActiveStep = React.useMemo(function () {
12683
12704
  var element = childrenCollection[activeStep];
12684
12705
 
@@ -12687,19 +12708,21 @@
12687
12708
  index: activeStep,
12688
12709
  isLast: childrenCollection.length - 1 === activeStep,
12689
12710
  title: title,
12690
- onNextButtonClick: onNextButtonClick,
12691
- onPreviousButtonClick: onPreviousButtonClick,
12711
+ onNextButtonClick: goNext,
12712
+ onPreviousButtonClick: goPrevious,
12692
12713
  onClose: onClose,
12693
12714
  changingStepInProgress: changingStepInProgress
12694
12715
  });
12695
12716
  }
12696
12717
 
12697
12718
  return null;
12698
- }, [activeStep, changingStepInProgress, childrenCollection, onClose, onNextButtonClick, onPreviousButtonClick, title]);
12719
+ }, [activeStep, changingStepInProgress, childrenCollection, goNext, goPrevious, onClose, title]);
12699
12720
  return /*#__PURE__*/React__default["default"].createElement(WizardContextProvider, {
12700
12721
  value: {
12701
12722
  activeStep: activeStep,
12702
12723
  setActiveStep: setActiveStep,
12724
+ goNext: goNext,
12725
+ goPrevious: goPrevious,
12703
12726
  close: onClose,
12704
12727
  setChangingStepInProgress: setChangingStepInProgress
12705
12728
  }