beem-component 2.1.18 → 2.1.20

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.
@@ -23,6 +23,7 @@ var _FeedPostComments = require("./FeedPostComments");
23
23
  const _excluded = ["state", "file", "src", "fileName", "onDownload", "extension", "link"],
24
24
  _excluded2 = ["state", "src", "extensions", "fileName"],
25
25
  _excluded3 = ["children", "state", "displayTime", "status", "session", "src", "file", "fileName", "sessionDetails", "sessionTimeline", "feedPostComments", "agentName", "metadata", "isInteractive", "type", "extension"];
26
+ /* eslint-disable react/no-array-index-key */
26
27
  /* eslint-disable no-nested-ternary */
27
28
  /* eslint-disable react/display-name */
28
29
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -39,7 +40,7 @@ BmChat.Body = _styledComponents.default.div.withConfig({
39
40
  })(["display:flex;flex-direction:column-reverse;padding:0rem 1rem;flex-grow:1;overflow:auto;height:100%;"]);
40
41
  const Details = _styledComponents.default.div.withConfig({
41
42
  displayName: "chatBody__Details"
42
- })(["display:flex;justify-content:", ";> *:not(:last-child){margin-right:1rem;margin-bottom:0.5rem;}overflow-wrap:break-word !important;word-wrap:break-word !important;margin:0rem;import{extension}from 'mime-types';flex-grow:1;", ""], _ref => {
43
+ })(["display:flex;justify-content:", ";> *:not(:last-child){margin-right:1rem;margin-bottom:0.5rem;}overflow-wrap:break-word !important;word-wrap:break-word !important;margin:0rem;flex-grow:1;", ""], _ref => {
43
44
  let {
44
45
  state
45
46
  } = _ref;
@@ -394,29 +395,56 @@ const RepliedTextWrapper = exports.RepliedTextWrapper = _styledComponents.defaul
394
395
  return "".concat(_colors.BmPrimaryWhite);
395
396
  });
396
397
  const QuickReplyRender = _ref24 => {
397
- var _content$text;
398
398
  let {
399
399
  content,
400
400
  options,
401
401
  type,
402
402
  state,
403
403
  rest,
404
- isInteractive
404
+ isInteractive,
405
+ connector,
406
+ body,
407
+ action,
408
+ header,
409
+ footer
405
410
  } = _ref24;
411
+ const MEDIA_TYPES = ['document', 'image', 'video'];
412
+ const renderers = {
413
+ dotgo_v3: () => {
414
+ var _header$header$type, _header$header$type2, _body$text, _action$buttons;
415
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, header && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, MEDIA_TYPES.includes(header === null || header === void 0 ? void 0 : header.type) ? /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
416
+ state: state,
417
+ src: (_header$header$type = header[header.type]) === null || _header$header$type === void 0 ? void 0 : _header$header$type.link
418
+ }, rest)) : /*#__PURE__*/_react.default.createElement("h5", null, (_header$header$type2 = header[header.type]) === null || _header$header$type2 === void 0 ? void 0 : _header$header$type2.text)), body && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, body === null || body === void 0 || (_body$text = body.text) === null || _body$text === void 0 ? void 0 : _body$text.split('\n').map((line, idx) => /*#__PURE__*/_react.default.createElement("p", {
419
+ key: "body-line-".concat(idx)
420
+ }, line, /*#__PURE__*/_react.default.createElement("br", null)))), footer && /*#__PURE__*/_react.default.createElement("small", null, footer === null || footer === void 0 ? void 0 : footer.text), (action === null || action === void 0 || (_action$buttons = action.buttons) === null || _action$buttons === void 0 ? void 0 : _action$buttons.length) > 0 && action.buttons.map((button, idx) => {
421
+ var _button$button$type;
422
+ return /*#__PURE__*/_react.default.createElement(IntButton, {
423
+ state: state,
424
+ key: "action-btn-".concat(idx)
425
+ }, (_button$button$type = button[button.type]) === null || _button$button$type === void 0 ? void 0 : _button$button$type.title);
426
+ }));
427
+ }
428
+ };
429
+ const FallbackRenderer = () => {
430
+ var _content$text;
431
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (content === null || content === void 0 ? void 0 : content.url) && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
432
+ state: state,
433
+ src: content === null || content === void 0 ? void 0 : content.url
434
+ }, rest))), (content === null || content === void 0 ? void 0 : content.header) && /*#__PURE__*/_react.default.createElement("strong", null, content.header), content === null || content === void 0 || (_content$text = content.text) === null || _content$text === void 0 ? void 0 : _content$text.split('\n').map((line, idx) => /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", {
435
+ key: "content-line-".concat(idx)
436
+ }, line, /*#__PURE__*/_react.default.createElement("br", null)))), (content === null || content === void 0 ? void 0 : content.caption) && /*#__PURE__*/_react.default.createElement("small", null, content.caption), options === null || options === void 0 ? void 0 : options.map((button, idx) => /*#__PURE__*/_react.default.createElement(IntButton, {
437
+ state: state,
438
+ key: "opt-btn-".concat(idx)
439
+ }, button === null || button === void 0 ? void 0 : button.title)));
440
+ };
441
+ const ConnectorRenderer = renderers[connector] || FallbackRenderer;
406
442
  return /*#__PURE__*/_react.default.createElement(Messages, {
407
443
  type: type,
408
444
  state: state,
409
445
  isInteractive: isInteractive,
410
446
  isImg: true
411
- }, (content === null || content === void 0 ? void 0 : content.url) && /*#__PURE__*/_react.default.createElement(BmImageChat, _extends({
412
- state: state,
413
- src: content === null || content === void 0 ? void 0 : content.url
414
- }, rest)), /*#__PURE__*/_react.default.createElement("strong", null, content === null || content === void 0 ? void 0 : content.header), content === null || content === void 0 || (_content$text = content.text) === null || _content$text === void 0 ? void 0 : _content$text.split('\n').map(line => /*#__PURE__*/_react.default.createElement("p", null, line, /*#__PURE__*/_react.default.createElement("br", null))), /*#__PURE__*/_react.default.createElement("small", null, content === null || content === void 0 ? void 0 : content.caption), options === null || options === void 0 ? void 0 : options.map(button =>
415
- /*#__PURE__*/
416
- // eslint-disable-next-line react/jsx-key
417
- _react.default.createElement(IntButton, {
418
- state: state
419
- }, button === null || button === void 0 ? void 0 : button.title)));
447
+ }, /*#__PURE__*/_react.default.createElement(ConnectorRenderer, null));
420
448
  };
421
449
  const ProductDetailRender = _ref25 => {
422
450
  let {
@@ -426,7 +454,6 @@ const ProductDetailRender = _ref25 => {
426
454
  body,
427
455
  isInteractive
428
456
  } = _ref25;
429
- console.log(type, state, header, body);
430
457
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Messages, {
431
458
  type: type,
432
459
  state: state,
@@ -436,68 +463,141 @@ const ProductDetailRender = _ref25 => {
436
463
  }, /*#__PURE__*/_react.default.createElement(_ShoppingCartOutlined.default, null), "Catalog")));
437
464
  };
438
465
  const ListReplyRender = _ref26 => {
439
- var _globalButtons$;
440
466
  let {
441
467
  title,
442
468
  body,
443
469
  globalButtons,
444
470
  isInteractive,
445
471
  type,
446
- state
472
+ state,
473
+ connector,
474
+ header,
475
+ action,
476
+ footer
447
477
  } = _ref26;
478
+ const renderers = {
479
+ dotgo_v3: () => {
480
+ var _header$header$type3, _body$text2;
481
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, header && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("h6", null, (_header$header$type3 = header[header.type]) === null || _header$header$type3 === void 0 ? void 0 : _header$header$type3.text)), body && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, body === null || body === void 0 || (_body$text2 = body.text) === null || _body$text2 === void 0 ? void 0 : _body$text2.split('\n').map((line, idx) => /*#__PURE__*/_react.default.createElement("p", {
482
+ key: "body-line-".concat(idx)
483
+ }, line, /*#__PURE__*/_react.default.createElement("br", null)))), footer && /*#__PURE__*/_react.default.createElement("small", null, footer === null || footer === void 0 ? void 0 : footer.text), action.button && /*#__PURE__*/_react.default.createElement(IntButton, {
484
+ state: state
485
+ }, /*#__PURE__*/_react.default.createElement(_List.default, null), action.button));
486
+ }
487
+ };
488
+ const FallbackRenderer = () => {
489
+ var _globalButtons$;
490
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("strong", null, title), body.split('\n').map(line => /*#__PURE__*/_react.default.createElement("p", null, line, /*#__PURE__*/_react.default.createElement("br", null))), /*#__PURE__*/_react.default.createElement(IntButton, {
491
+ state: state
492
+ }, /*#__PURE__*/_react.default.createElement(_List.default, null), (_globalButtons$ = globalButtons[0]) === null || _globalButtons$ === void 0 ? void 0 : _globalButtons$.title));
493
+ };
494
+ const ConnectorRenderer = renderers[connector] || FallbackRenderer;
448
495
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Messages, {
449
496
  type: type,
450
497
  state: state,
451
498
  isInteractive: isInteractive
452
- }, /*#__PURE__*/_react.default.createElement("strong", null, title), body.split('\n').map(line => /*#__PURE__*/_react.default.createElement("p", null, line, /*#__PURE__*/_react.default.createElement("br", null))), /*#__PURE__*/_react.default.createElement(IntButton, {
453
- state: state
454
- }, /*#__PURE__*/_react.default.createElement(_List.default, null), (_globalButtons$ = globalButtons[0]) === null || _globalButtons$ === void 0 ? void 0 : _globalButtons$.title)));
499
+ }, /*#__PURE__*/_react.default.createElement(ConnectorRenderer, null)));
455
500
  };
456
501
  const OrderRender = _ref27 => {
457
502
  let {
458
503
  amount,
459
504
  type,
460
505
  state,
461
- items
506
+ items,
507
+ product_items,
508
+ connector,
509
+ isInteractive
462
510
  } = _ref27;
511
+ const renderers = {
512
+ dotgo_v3: _ref28 => {
513
+ let {
514
+ displayItems,
515
+ sumQuantities,
516
+ setDisplayItems
517
+ } = _ref28;
518
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(OrderBody, {
519
+ state: state
520
+ }, /*#__PURE__*/_react.default.createElement(CartContent, {
521
+ state: state
522
+ }, /*#__PURE__*/_react.default.createElement(_ShoppingCartOutlined.default, {
523
+ fontSize: "small"
524
+ }), /*#__PURE__*/_react.default.createElement("h5", null, /*#__PURE__*/_react.default.createElement("strong", null, sumQuantities(product_items), ' ', sumQuantities(product_items) > 1 ? 'items' : 'item')))), displayItems ? /*#__PURE__*/_react.default.createElement(OrderBody, {
525
+ state: state
526
+ }, product_items.map((data, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(CartContent, {
527
+ state: state
528
+ }, /*#__PURE__*/_react.default.createElement("p", null, index + 1, ". "), /*#__PURE__*/_react.default.createElement(ProductImage, {
529
+ src: data.imgURL,
530
+ alt: "product"
531
+ }), /*#__PURE__*/_react.default.createElement("p", null, data.quantity, " X ", data.description, " @ ", data.currency, ' ', data.amount)), /*#__PURE__*/_react.default.createElement("hr", {
532
+ style: {
533
+ width: '100%'
534
+ }
535
+ })))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(OrderBody, {
536
+ state: state
537
+ }, /*#__PURE__*/_react.default.createElement(CartContent, {
538
+ state: state
539
+ }, /*#__PURE__*/_react.default.createElement("p", null, ' ', "Estimated Total: ", /*#__PURE__*/_react.default.createElement("strong", null, amount)))), /*#__PURE__*/_react.default.createElement(IntButton, {
540
+ state: state,
541
+ onClick: () => {
542
+ setDisplayItems(!displayItems);
543
+ }
544
+ }, /*#__PURE__*/_react.default.createElement("p", null, displayItems ? 'HIDE' : 'SHOW', " CART ITEMS")));
545
+ }
546
+ };
547
+ const FallbackRenderer = _ref29 => {
548
+ let {
549
+ sumQuantities,
550
+ displayItems,
551
+ setDisplayItems
552
+ } = _ref29;
553
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(OrderBody, {
554
+ state: state
555
+ }, /*#__PURE__*/_react.default.createElement(CartContent, {
556
+ state: state
557
+ }, /*#__PURE__*/_react.default.createElement(_ShoppingCartOutlined.default, {
558
+ fontSize: "small"
559
+ }), /*#__PURE__*/_react.default.createElement("h5", null, /*#__PURE__*/_react.default.createElement("strong", null, sumQuantities(items), ' ', sumQuantities(items) > 1 ? 'items' : 'item')))), displayItems ? /*#__PURE__*/_react.default.createElement(OrderBody, {
560
+ state: state
561
+ }, items.map((data, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(CartContent, {
562
+ state: state
563
+ }, /*#__PURE__*/_react.default.createElement("p", null, index + 1, ". "), /*#__PURE__*/_react.default.createElement(ProductImage, {
564
+ src: data.imgURL,
565
+ alt: "product"
566
+ }), /*#__PURE__*/_react.default.createElement("p", null, data.quantity, " X ", data.description, " @ ", data.currency, ' ', data.amount)), /*#__PURE__*/_react.default.createElement("hr", {
567
+ style: {
568
+ width: '100%'
569
+ }
570
+ })))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(OrderBody, {
571
+ state: state
572
+ }, /*#__PURE__*/_react.default.createElement(CartContent, {
573
+ state: state
574
+ }, /*#__PURE__*/_react.default.createElement("p", null, ' ', "Estimated Total: ", /*#__PURE__*/_react.default.createElement("strong", null, amount)))), /*#__PURE__*/_react.default.createElement(IntButton, {
575
+ state: state,
576
+ onClick: () => {
577
+ setDisplayItems(!displayItems);
578
+ }
579
+ }, /*#__PURE__*/_react.default.createElement("p", null, displayItems ? 'HIDE' : 'SHOW', " CART ITEMS")));
580
+ };
581
+ const ConnectorRenderer = renderers[connector] || FallbackRenderer;
463
582
  const [displayItems, setDisplayItems] = (0, _react.useState)(false);
464
- const sumQuantities = () => {
465
- return items === null || items === void 0 ? void 0 : items.reduce((total, item) => {
583
+ const sumQuantities = data => {
584
+ return data === null || data === void 0 ? void 0 : data.reduce((total, item) => {
466
585
  return total + parseInt(item.quantity, 10);
467
586
  }, 0);
468
587
  };
469
588
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Messages, {
470
589
  type: type,
471
- state: state
472
- }, /*#__PURE__*/_react.default.createElement(OrderBody, {
473
- state: state
474
- }, /*#__PURE__*/_react.default.createElement(CartContent, {
475
- state: state
476
- }, /*#__PURE__*/_react.default.createElement(_ShoppingCartOutlined.default, {
477
- fontSize: "small"
478
- }), /*#__PURE__*/_react.default.createElement("h5", null, /*#__PURE__*/_react.default.createElement("strong", null, sumQuantities(), " ", sumQuantities() > 1 ? 'items' : 'item')))), displayItems ? /*#__PURE__*/_react.default.createElement(OrderBody, {
479
- state: state
480
- }, items.map((data, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(CartContent, {
481
- state: state
482
- }, /*#__PURE__*/_react.default.createElement("p", null, index + 1, ". "), /*#__PURE__*/_react.default.createElement(ProductImage, {
483
- src: data.imgURL,
484
- alt: "product"
485
- }), /*#__PURE__*/_react.default.createElement("p", null, data.quantity, " X ", data.description, " @ ", data.currency, ' ', data.amount)), /*#__PURE__*/_react.default.createElement("hr", {
486
- style: {
487
- width: '100%'
488
- }
489
- })))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(OrderBody, {
490
- state: state
491
- }, /*#__PURE__*/_react.default.createElement(CartContent, {
492
- state: state
493
- }, /*#__PURE__*/_react.default.createElement("p", null, ' ', "Estimated Total: ", /*#__PURE__*/_react.default.createElement("strong", null, amount)))), /*#__PURE__*/_react.default.createElement(IntButton, {
494
590
  state: state,
495
- onClick: () => {
496
- setDisplayItems(!displayItems);
497
- }
498
- }, /*#__PURE__*/_react.default.createElement("p", null, displayItems ? 'HIDE' : 'SHOW', " CART ITEMS"))));
591
+ isInteractive: isInteractive
592
+ }, /*#__PURE__*/_react.default.createElement(ConnectorRenderer, {
593
+ sumQuantities: sumQuantities,
594
+ setDisplayItems: setDisplayItems,
595
+ displayItems: displayItems,
596
+ items: items
597
+ })));
499
598
  };
500
- BmChat.Details = _ref28 => {
599
+ BmChat.Details = _ref30 => {
600
+ var _children$message, _children$message2;
501
601
  let {
502
602
  children,
503
603
  state,
@@ -515,8 +615,8 @@ BmChat.Details = _ref28 => {
515
615
  isInteractive,
516
616
  type,
517
617
  extension
518
- } = _ref28,
519
- rest = _objectWithoutProperties(_ref28, _excluded3);
618
+ } = _ref30,
619
+ rest = _objectWithoutProperties(_ref30, _excluded3);
520
620
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Details, _extends({
521
621
  state: state
522
622
  }, rest), /*#__PURE__*/_react.default.createElement(MessageState, null, state === 'inbound' && session && handleState({
@@ -531,42 +631,50 @@ BmChat.Details = _ref28 => {
531
631
  fileName: fileName
532
632
  }, rest)), children && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, metadata ? /*#__PURE__*/_react.default.createElement(RepliedTextWrapper, {
533
633
  state: state
534
- }, metadata.type === 'quick_reply' ? /*#__PURE__*/_react.default.createElement(QuickReplyRender, _extends({
634
+ }, metadata.message.type === 'quick_reply' || metadata.message.type === 'button' ? /*#__PURE__*/_react.default.createElement(QuickReplyRender, _extends({
535
635
  isInteractive: true,
536
636
  rest: rest
537
- }, metadata, {
637
+ }, metadata.message, {
538
638
  type: type,
539
- state: state
540
- })) : metadata.type === 'list' ? /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({
639
+ state: state,
640
+ connector: metadata.connector
641
+ })) : metadata.message.type === 'list' ? /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({
541
642
  isInteractive: true
542
- }, metadata, {
643
+ }, metadata.message, {
543
644
  type: type,
544
- state: state
545
- })) : metadata.type === 'product_details' ? /*#__PURE__*/_react.default.createElement(ProductDetailRender, _extends({
645
+ state: state,
646
+ connector: metadata.connector
647
+ })) : metadata.message.type === 'product_details' ? /*#__PURE__*/_react.default.createElement(ProductDetailRender, _extends({
546
648
  isInteractive: true
547
- }, metadata, {
649
+ }, metadata.message, {
548
650
  type: type,
549
651
  state: state
550
- })) : metadata.type === 'order' ? /*#__PURE__*/_react.default.createElement(OrderRender, _extends({}, metadata, {
652
+ })) : metadata.message.type === 'order' ? /*#__PURE__*/_react.default.createElement(OrderRender, _extends({
653
+ isInteractive: true
654
+ }, metadata.message, {
551
655
  type: type,
552
- state: state
656
+ state: state,
657
+ connector: metadata.connector
553
658
  })) : /*#__PURE__*/_react.default.createElement(Messages, {
554
659
  metadata: metadata,
555
660
  state: state
556
- }, metadata), children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, type && (type === 'interactive' || type === 'order') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children.type === 'quick_reply' && /*#__PURE__*/_react.default.createElement(QuickReplyRender, _extends({
661
+ }, metadata.message), children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, type && (type === 'interactive' || type === 'order') ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, ((children === null || children === void 0 || (_children$message = children.message) === null || _children$message === void 0 ? void 0 : _children$message.type) === 'quick_reply' || (children === null || children === void 0 || (_children$message2 = children.message) === null || _children$message2 === void 0 ? void 0 : _children$message2.type) === 'button') && /*#__PURE__*/_react.default.createElement(QuickReplyRender, _extends({
557
662
  rest: rest
558
- }, children, {
663
+ }, children.message, {
559
664
  type: type,
560
- state: state
561
- })), children.type === 'list' && /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({}, children, {
665
+ state: state,
666
+ connector: children === null || children === void 0 ? void 0 : children.connector
667
+ })), children.message.type === 'list' && /*#__PURE__*/_react.default.createElement(ListReplyRender, _extends({}, children.message, {
562
668
  type: type,
563
- state: state
564
- })), children.type === 'product_details' && /*#__PURE__*/_react.default.createElement(ProductDetailRender, _extends({}, children, {
669
+ state: state,
670
+ connector: children === null || children === void 0 ? void 0 : children.connector
671
+ })), children.message.type === 'product_details' && /*#__PURE__*/_react.default.createElement(ProductDetailRender, _extends({}, children.message, {
565
672
  type: type,
566
673
  state: state
567
- })), children.type === 'order' && /*#__PURE__*/_react.default.createElement(OrderRender, _extends({}, children, {
674
+ })), children.message.type === 'order' && /*#__PURE__*/_react.default.createElement(OrderRender, _extends({}, children.message, {
568
675
  type: type,
569
- state: state
676
+ state: state,
677
+ connector: children === null || children === void 0 ? void 0 : children.connector
570
678
  }))) : type === 'pdf' ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactPdf.Document, {
571
679
  file: {
572
680
  url: "".concat(file)
@@ -10,7 +10,7 @@ var _icons = require("@material-ui/icons");
10
10
  var _styledComponents = _interopRequireDefault(require("styled-components"));
11
11
  var _colors = require("../colors");
12
12
  var _iconStyles = require("../iconStyles");
13
- const _excluded = ["children", "show", "size", "onHide", "centered"],
13
+ const _excluded = ["children", "show", "size", "zIndex", "onHide", "centered"],
14
14
  _excluded2 = ["children", "size", "onHide", "subHeading", "closeButton", "show", "icon", "trailingIcon"];
15
15
  /* eslint-disable no-undef */
16
16
  /* eslint-disable react/display-name */
@@ -25,13 +25,18 @@ const {
25
25
  } = /*#__PURE__*/_react.default.createContext();
26
26
  const Overlay = exports.Overlay = _styledComponents.default.div.withConfig({
27
27
  displayName: "modal__Overlay"
28
- })(["position:fixed;top:0;left:0;z-index:20;width:100vw;height:100vh;background-color:", ";"], _colors.BmBgGrey45);
28
+ })(["position:fixed;top:0;left:0;z-index:", ";width:100vw;height:100vh;background-color:", ";"], _ref => {
29
+ let {
30
+ zIndex
31
+ } = _ref;
32
+ return zIndex || 20;
33
+ }, _colors.BmBgGrey45);
29
34
  const ModalContent = exports.ModalContent = _styledComponents.default.div.withConfig({
30
35
  displayName: "modal__ModalContent"
31
- })(["display:flex;flex-direction:column;border-radius:0.8571rem;padding:1rem;margin:2rem auto;background:", ";width:auto;max-width:100%;> *:not(:last-child){margin-bottom:0.5rem;}@media (min-width:576px){width:", ";}"], _colors.BmPrimaryWhite, _ref => {
36
+ })(["display:flex;flex-direction:column;border-radius:0.8571rem;padding:1rem;margin:2rem auto;background:", ";width:auto;max-width:100%;> *:not(:last-child){margin-bottom:0.5rem;}@media (min-width:576px){width:", ";}"], _colors.BmPrimaryWhite, _ref2 => {
32
37
  let {
33
38
  size
34
- } = _ref;
39
+ } = _ref2;
35
40
  if (size) {
36
41
  return size;
37
42
  }
@@ -40,15 +45,16 @@ const ModalContent = exports.ModalContent = _styledComponents.default.div.withCo
40
45
  const ModalWrapper = exports.ModalWrapper = _styledComponents.default.div.withConfig({
41
46
  displayName: "modal__ModalWrapper"
42
47
  })(["position:fixed;top:0;left:0;z-index:9999;display:block;width:100%;height:100%;overflow:hidden;outline:0;margin:auto;overflow-x:hidden;overflow-y:auto;"]);
43
- const BmModal = _ref2 => {
48
+ const BmModal = _ref3 => {
44
49
  let {
45
50
  children,
46
51
  show,
47
52
  size,
53
+ zIndex,
48
54
  onHide,
49
55
  centered
50
- } = _ref2,
51
- rest = _objectWithoutProperties(_ref2, _excluded);
56
+ } = _ref3,
57
+ rest = _objectWithoutProperties(_ref3, _excluded);
52
58
  const [toggle, setToggle] = (0, _react.useState)(show);
53
59
  (0, _react.useEffect)(() => {
54
60
  setToggle(show);
@@ -62,7 +68,9 @@ const BmModal = _ref2 => {
62
68
  document.addEventListener('keydown', keyPress);
63
69
  return () => document.removeEventListener('keydown', keyPress);
64
70
  }, [keyPress]);
65
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toggle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Overlay, null), /*#__PURE__*/_react.default.createElement(ModalWrapper, {
71
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, toggle && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Overlay, {
72
+ zIndex: zIndex
73
+ }), /*#__PURE__*/_react.default.createElement(ModalWrapper, {
66
74
  showModal: show,
67
75
  centered: centered,
68
76
  onHide: onHide
@@ -87,7 +95,7 @@ const ModalHeaderContent = _styledComponents.default.div.withConfig({
87
95
  const IconContainer = _styledComponents.default.div.withConfig({
88
96
  displayName: "modal__IconContainer"
89
97
  })(["display:flex;padding:0.5714rem;justify-content:center;align-items:center;border-radius:0.7143rem;border:0.0714rem solid var(--Gray-200,#eaecf0);background:var(--Base-White,#fff);box-shadow:0rem 0.0714rem 0.1429rem 0rem rgba(16,24,40,0.05);"]);
90
- BmModal.Header = _ref3 => {
98
+ BmModal.Header = _ref4 => {
91
99
  let {
92
100
  children,
93
101
  size,
@@ -97,8 +105,8 @@ BmModal.Header = _ref3 => {
97
105
  show,
98
106
  icon,
99
107
  trailingIcon
100
- } = _ref3,
101
- rest = _objectWithoutProperties(_ref3, _excluded2);
108
+ } = _ref4,
109
+ rest = _objectWithoutProperties(_ref4, _excluded2);
102
110
  return /*#__PURE__*/_react.default.createElement(Consumer, null, value => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(ModalHeader, rest, trailingIcon && /*#__PURE__*/_react.default.createElement(IconContainer, null, trailingIcon), /*#__PURE__*/_react.default.createElement("div", {
103
111
  style: {
104
112
  width: '100%'
@@ -15,12 +15,13 @@ var _default = exports.default = {
15
15
  component: _modal.default,
16
16
  title: 'components/Modals',
17
17
  argTypes: {
18
- // size: {
19
- // options: ["small", "default", "large", "xlarge"],
20
- // control: { type: "select" },
21
- // description: "Size of the Modal (Optional)",
22
- // defaultValue: { summary: "default" },
23
- // },
18
+ size: {
19
+ control: {
20
+ type: 'text'
21
+ },
22
+ description: 'Controls the width of the modal in Pixels',
23
+ defaultValue: '500px'
24
+ },
24
25
  closeButton: {
25
26
  description: 'Placed on BmModal.Header component. Displays the close button (X)'
26
27
  },
@@ -35,6 +36,12 @@ var _default = exports.default = {
35
36
  },
36
37
  onHide: {
37
38
  description: 'Handling the closing of the modal'
39
+ },
40
+ zIndex: {
41
+ description: 'Controls the stacking order of the modal in an event you have multiple modals',
42
+ control: {
43
+ type: 'number'
44
+ }
38
45
  }
39
46
  }
40
47
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beem-component",
3
- "version": "2.1.18",
3
+ "version": "2.1.20",
4
4
  "private": false,
5
5
  "main": "dist/components/index.js",
6
6
  "scripts": {