@zohodesk/components 1.4.4 → 1.4.6

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.
@@ -29,6 +29,8 @@ var _isMobilePopover = _interopRequireDefault(require("../DropBox/utils/isMobile
29
29
 
30
30
  var _selectn = _interopRequireDefault(require("selectn"));
31
31
 
32
+ var _Registry = _interopRequireDefault(require("./Registry.js"));
33
+
32
34
  var _excluded = ["isMobile"];
33
35
 
34
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -71,11 +73,8 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
71
73
 
72
74
  function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
73
75
 
74
- var lastOpenedGroup = [];
75
- var popups = {};
76
-
77
76
  global.closeGroupPopups = function (groupName) {
78
- var groupPopups = popups[groupName] || [];
77
+ var groupPopups = _Registry["default"].popups[groupName] || [];
79
78
  groupPopups.forEach(function (popup) {
80
79
  popup.state.isPopupOpen && popup.setState({
81
80
  isPopupOpen: false,
@@ -97,6 +96,53 @@ var defaultState = {
97
96
  //{height: ‘’, width: ‘’,}
98
97
  isAbsolutePositioningNeeded: true
99
98
  };
99
+ var SCROLL_BLOCK_EVENTS = Object.freeze([{
100
+ name: 'wheel',
101
+ handlerName: 'handleBlockScroll',
102
+ options: {
103
+ capture: true,
104
+ passive: false
105
+ }
106
+ }, {
107
+ name: 'touchmove',
108
+ handlerName: 'handleBlockScroll',
109
+ options: {
110
+ capture: true,
111
+ passive: false
112
+ }
113
+ }, {
114
+ name: 'scroll',
115
+ handlerName: 'handlePositionChange',
116
+ options: {
117
+ capture: true,
118
+ passive: false
119
+ }
120
+ }, {
121
+ name: 'keydown',
122
+ handlerName: 'preventKeyboardScroll',
123
+ options: {
124
+ capture: true,
125
+ passive: false
126
+ }
127
+ }]);
128
+ var IFRAME_SCROLL_BLOCK_EVENTS = Object.freeze(SCROLL_BLOCK_EVENTS.filter(function (event) {
129
+ return event.name !== 'keydown';
130
+ }));
131
+ var CLICK_EVENTS = Object.freeze([{
132
+ name: 'click',
133
+ handlerName: 'documentClickHandler',
134
+ options: {
135
+ capture: false,
136
+ passive: false
137
+ }
138
+ }, {
139
+ name: 'click',
140
+ handlerName: 'documentClickHandler1',
141
+ options: {
142
+ capture: true,
143
+ passive: false
144
+ }
145
+ }]);
100
146
  /* eslint-disable react/no-deprecated */
101
147
 
102
148
  /* eslint-disable react/prop-types */
@@ -172,8 +218,11 @@ var Popup = function Popup(Component) {
172
218
  _this.handleBlockScroll = _this.handleBlockScroll.bind(_assertThisInitialized(_this));
173
219
  _this.handlePositionChange = _this.handlePositionChange.bind(_assertThisInitialized(_this));
174
220
  _this.preventKeyboardScroll = _this.preventKeyboardScroll.bind(_assertThisInitialized(_this));
221
+ _this.updateListeners = _this.updateListeners.bind(_assertThisInitialized(_this));
175
222
  _this.addScrollBlockListeners = _this.addScrollBlockListeners.bind(_assertThisInitialized(_this));
176
223
  _this.removeScrollBlockListeners = _this.removeScrollBlockListeners.bind(_assertThisInitialized(_this));
224
+ _this.addScrollToUpdateListeners = _this.addScrollToUpdateListeners.bind(_assertThisInitialized(_this));
225
+ _this.removeScrollToUpdateListeners = _this.removeScrollToUpdateListeners.bind(_assertThisInitialized(_this));
177
226
  _this.handleAddingScrollBlock = _this.handleAddingScrollBlock.bind(_assertThisInitialized(_this));
178
227
  _this.handleRemovingScrollBlock = _this.handleRemovingScrollBlock.bind(_assertThisInitialized(_this));
179
228
  _this.handleIntersectionObserver = _this.handleIntersectionObserver.bind(_assertThisInitialized(_this));
@@ -183,8 +232,10 @@ var Popup = function Popup(Component) {
183
232
  _this.setContainerDynamicPositioning = _this.setContainerDynamicPositioning.bind(_assertThisInitialized(_this));
184
233
  _this.updatePopupState = _this.updatePopupState.bind(_assertThisInitialized(_this));
185
234
  _this.handleScrollAndBlockEvents = _this.handleScrollAndBlockEvents.bind(_assertThisInitialized(_this));
235
+ _this.handleIframeEventListeners = _this.handleIframeEventListeners.bind(_assertThisInitialized(_this));
186
236
  _this.handleDropElementStyleUpdate = _this.handleDropElementStyleUpdate.bind(_assertThisInitialized(_this));
187
237
  _this.positionRef = /*#__PURE__*/_react["default"].createRef();
238
+ _this.rootElement = _Registry["default"].getRootElement();
188
239
  _this.popupObserver = new _ResizeObserver["default"](_this.handlePopupResize); //dropBoxSize
189
240
 
190
241
  _this.size = null;
@@ -207,16 +258,15 @@ var Popup = function Popup(Component) {
207
258
  key: "componentDidMount",
208
259
  value: function componentDidMount() {
209
260
  var group = this.getGroup();
210
- var groupPopups = popups[group] || [];
261
+ var groupPopups = _Registry["default"].popups[group] || [];
211
262
  groupPopups.push(this);
212
- popups[group] = groupPopups;
263
+ _Registry["default"].popups[group] = groupPopups;
213
264
 
214
- if (Object.keys(popups).length === 1 && groupPopups.length === 1) {
215
- document.addEventListener('click', this.documentClickHandler, false);
265
+ if (Object.keys(_Registry["default"].popups).length === 1 && groupPopups.length === 1) {
266
+ this.updateListeners(true, CLICK_EVENTS, document);
216
267
  document.addEventListener('keyup', this.documentKeyupHandler, false); // document.addEventListener('scroll', this.handleScroll, true);
217
268
 
218
269
  window.addEventListener('resize', this.handleResize);
219
- document.addEventListener('click', this.documentClickHandler1, true);
220
270
  document.addEventListener('mousedown', this.handleDocumentMouseDown, true);
221
271
  document.addEventListener('focus', this.handleDocumentFocus, true);
222
272
  }
@@ -235,8 +285,8 @@ var Popup = function Popup(Component) {
235
285
  }
236
286
  }, {
237
287
  key: "handleScrollAndBlockEvents",
238
- value: function handleScrollAndBlockEvents(isPopupReady, isMobile) {
239
- if (isPopupReady && !isMobile) {
288
+ value: function handleScrollAndBlockEvents(shouldAdd) {
289
+ if (shouldAdd) {
240
290
  this.handleAddingScrollBlock();
241
291
  this.handleAddingScrollToUpdatePosition();
242
292
  } else {
@@ -244,6 +294,19 @@ var Popup = function Popup(Component) {
244
294
  this.handleRemovingScrollToUpdatePosition();
245
295
  }
246
296
  }
297
+ }, {
298
+ key: "handleIframeEventListeners",
299
+ value: function handleIframeEventListeners(shouldAdd, eventList) {
300
+ var _this2 = this;
301
+
302
+ this.rootElement.querySelectorAll('iframe').forEach(function (frame) {
303
+ var frameDocument = frame.contentDocument;
304
+
305
+ if (frameDocument) {
306
+ _this2.updateListeners(shouldAdd, eventList, frameDocument);
307
+ }
308
+ });
309
+ }
247
310
  }, {
248
311
  key: "componentDidUpdate",
249
312
  value: function componentDidUpdate(prevProps, prevState) {
@@ -269,33 +332,36 @@ var Popup = function Popup(Component) {
269
332
  }
270
333
 
271
334
  if (oldStateOpen !== isPopupReady && !isMobile || oldIsMobileState !== isMobile) {
272
- this.handleScrollAndBlockEvents(isPopupReady, isMobile);
335
+ var shouldAdd = isPopupReady && !isMobile;
336
+ this.handleScrollAndBlockEvents(shouldAdd);
337
+ this.handleIframeEventListeners(shouldAdd, CLICK_EVENTS);
273
338
  }
274
339
  }
275
340
  }, {
276
341
  key: "componentWillUnmount",
277
342
  value: function componentWillUnmount() {
278
- var _this2 = this;
343
+ var _this3 = this;
279
344
 
280
345
  var group = this.getGroup();
281
- popups = Object.keys(popups).reduce(function (res, groupName) {
346
+ _Registry["default"].popups = Object.keys(_Registry["default"].popups).reduce(function (res, groupName) {
282
347
  if (groupName === group) {
283
- var groupPopups = popups[group];
348
+ var groupPopups = _Registry["default"].popups[group];
284
349
  var newGroupPopups = groupPopups.filter(function (popup) {
285
- return popup !== _this2;
350
+ return popup !== _this3;
286
351
  });
287
- newGroupPopups.length === 0 && lastOpenedGroup.indexOf(group) >= 0 && lastOpenedGroup.splice(lastOpenedGroup.indexOf(group), 1);
352
+ newGroupPopups.length === 0 && _Registry["default"].lastOpenedGroup.indexOf(group) >= 0 && _Registry["default"].lastOpenedGroup.splice(_Registry["default"].lastOpenedGroup.indexOf(group), 1);
288
353
  res[group] = newGroupPopups;
289
354
  }
290
355
 
291
356
  return res;
292
- }, popups);
357
+ }, _Registry["default"].popups);
293
358
  this.handleRemovingScrollBlock();
294
359
  this.handleRemovingScrollToUpdatePosition();
360
+ this.handleIframeEventListeners(false, CLICK_EVENTS);
295
361
  var noPopups = true;
296
362
 
297
- for (var i in popups) {
298
- if (popups[i].length >= 1) {
363
+ for (var i in _Registry["default"].popups) {
364
+ if (_Registry["default"].popups[i].length >= 1) {
299
365
  noPopups = false;
300
366
  break;
301
367
  }
@@ -306,11 +372,10 @@ var Popup = function Popup(Component) {
306
372
  }
307
373
 
308
374
  if (noPopups) {
309
- document.removeEventListener('click', this.documentClickHandler);
375
+ this.updateListeners(false, CLICK_EVENTS, document);
310
376
  document.removeEventListener('keyup', this.documentKeyupHandler); // document.removeEventListener('scroll', this.handleScroll);
311
377
 
312
378
  window.removeEventListener('resize', this.handleResize);
313
- document.removeEventListener('click', this.documentClickHandler1, true);
314
379
  document.removeEventListener('mousedown', this.handleDocumentMouseDown, true);
315
380
  document.removeEventListener('focus', this.handleDocumentFocus, true);
316
381
  }
@@ -345,10 +410,13 @@ var Popup = function Popup(Component) {
345
410
 
346
411
  if (!isOutsideScrollBlocked && !isAbsolutePositioningNeeded) {
347
412
  (0, _intersectionObserver.addIntersectionObserver)(this.placeHolderElement, this.updateVisibilityOnIntersection);
348
- document.addEventListener('scroll', this.updatePositionOnScroll, {
349
- capture: true,
350
- passive: false
351
- });
413
+ var shouldAddScrollToUpdatePositionListeners = _Registry["default"].getOpenedScrollableFixedPopups().length === 1 && _Registry["default"].scrollableListenerPopupRef === undefined;
414
+
415
+ if (shouldAddScrollToUpdatePositionListeners) {
416
+ _Registry["default"].scrollableListenerPopupRef = this;
417
+
418
+ _Registry["default"].scrollableListenerPopupRef.addScrollToUpdateListeners();
419
+ }
352
420
  }
353
421
  }
354
422
  }, {
@@ -359,10 +427,13 @@ var Popup = function Popup(Component) {
359
427
 
360
428
  if (!isOutsideScrollBlocked && !isAbsolutePositioningNeeded) {
361
429
  (0, _intersectionObserver.removeIntersectionObserver)(this.placeHolderElement, this.updateVisibilityOnIntersection);
362
- document.removeEventListener('scroll', this.updatePositionOnScroll, {
363
- capture: true,
364
- passive: false
365
- });
430
+ var shouldRemoveScrollToUpdatePositionListeners = _Registry["default"].getOpenedScrollableFixedPopups().length === 0 && _Registry["default"].scrollableListenerPopupRef !== undefined;
431
+
432
+ if (shouldRemoveScrollToUpdatePositionListeners) {
433
+ _Registry["default"].scrollableListenerPopupRef.removeScrollToUpdateListeners();
434
+
435
+ _Registry["default"].scrollableListenerPopupRef = undefined;
436
+ }
366
437
  }
367
438
  }
368
439
  }, {
@@ -421,50 +492,81 @@ var Popup = function Popup(Component) {
421
492
  }, {
422
493
  key: "updatePositionOnScroll",
423
494
  value: function updatePositionOnScroll(e) {
424
- var placeHolderElement = this.placeHolderElement,
425
- defaultPosition = this.defaultPosition,
426
- isTargetElementVisible = this.isTargetElementVisible;
495
+ var scrollablePopups = _Registry["default"].getOpenedScrollableFixedPopups(); // Check if the event target is outside all dropElements
427
496
 
428
- if (e.target.contains(placeHolderElement) && isTargetElementVisible) {
429
- this.handlePopupPosition(defaultPosition, true);
430
- }
497
+
498
+ scrollablePopups.forEach(function (_ref5) {
499
+ var placeHolderElement = _ref5.placeHolderElement,
500
+ defaultPosition = _ref5.defaultPosition,
501
+ isTargetElementVisible = _ref5.isTargetElementVisible,
502
+ handlePopupPosition = _ref5.handlePopupPosition;
503
+
504
+ if (e.target.contains(placeHolderElement) && isTargetElementVisible) {
505
+ handlePopupPosition(defaultPosition, true);
506
+ }
507
+ });
508
+ }
509
+ }, {
510
+ key: "updateListeners",
511
+ value: function updateListeners() {
512
+ var _this4 = this;
513
+
514
+ var add = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
515
+ var eventList = arguments.length > 1 ? arguments[1] : undefined;
516
+ var element = arguments.length > 2 ? arguments[2] : undefined;
517
+ var method = add ? 'addEventListener' : 'removeEventListener';
518
+ eventList.forEach(function (_ref6) {
519
+ var name = _ref6.name,
520
+ handlerName = _ref6.handlerName,
521
+ options = _ref6.options;
522
+ var handler = _this4[handlerName];
523
+
524
+ if (handler) {
525
+ element[method](name, handler, options);
526
+ }
527
+ });
431
528
  }
432
529
  }, {
433
530
  key: "addScrollBlockListeners",
434
531
  value: function addScrollBlockListeners() {
435
- document.addEventListener('wheel', this.handleBlockScroll, {
436
- capture: true,
437
- passive: false
438
- });
439
- document.addEventListener('touchmove', this.handleBlockScroll, {
440
- capture: true,
441
- passive: false
442
- });
443
- document.addEventListener('scroll', this.handlePositionChange, {
444
- capture: true,
445
- passive: false
446
- });
447
- document.addEventListener('keydown', this.preventKeyboardScroll, {
448
- capture: true,
449
- passive: false
450
- });
532
+ // Only add scroll block listeners if at least one open popup needs outside scroll blocked
533
+ var shouldAddScrollBlockListeners = _Registry["default"].getOpenedScrollBlockedFixedPopups().length === 1 && _Registry["default"].scrollBlockedListenerPopupRef === undefined;
534
+
535
+ if (shouldAddScrollBlockListeners) {
536
+ _Registry["default"].scrollBlockedListenerPopupRef = this; // Main document
537
+
538
+ _Registry["default"].scrollBlockedListenerPopupRef.updateListeners(true, SCROLL_BLOCK_EVENTS, document); // Attach event listeners to all iframes within rootElement
539
+
540
+
541
+ _Registry["default"].scrollBlockedListenerPopupRef.handleIframeEventListeners(true, IFRAME_SCROLL_BLOCK_EVENTS);
542
+ }
451
543
  }
452
544
  }, {
453
545
  key: "removeScrollBlockListeners",
454
546
  value: function removeScrollBlockListeners() {
455
- document.removeEventListener('wheel', this.handleBlockScroll, {
456
- capture: true,
457
- passive: false
458
- });
459
- document.removeEventListener('touchmove', this.handleBlockScroll, {
460
- capture: true,
461
- passive: false
462
- });
463
- document.removeEventListener('scroll', this.handlePositionChange, {
547
+ // Only remove scroll block listeners if at least one open popup needs outside scroll blocked
548
+ var shouldRemoveScrollBlockListeners = _Registry["default"].getOpenedScrollBlockedFixedPopups().length === 0 && _Registry["default"].scrollBlockedListenerPopupRef !== undefined;
549
+
550
+ if (shouldRemoveScrollBlockListeners) {
551
+ _Registry["default"].scrollBlockedListenerPopupRef.updateListeners(false, SCROLL_BLOCK_EVENTS, document);
552
+
553
+ _Registry["default"].scrollBlockedListenerPopupRef.handleIframeEventListeners(false, IFRAME_SCROLL_BLOCK_EVENTS);
554
+
555
+ _Registry["default"].scrollBlockedListenerPopupRef = undefined;
556
+ }
557
+ }
558
+ }, {
559
+ key: "addScrollToUpdateListeners",
560
+ value: function addScrollToUpdateListeners() {
561
+ document.addEventListener('scroll', this.updatePositionOnScroll, {
464
562
  capture: true,
465
563
  passive: false
466
564
  });
467
- document.removeEventListener('keydown', this.preventKeyboardScroll, {
565
+ }
566
+ }, {
567
+ key: "removeScrollToUpdateListeners",
568
+ value: function removeScrollToUpdateListeners() {
569
+ document.removeEventListener('scroll', this.updatePositionOnScroll, {
468
570
  capture: true,
469
571
  passive: false
470
572
  });
@@ -472,35 +574,48 @@ var Popup = function Popup(Component) {
472
574
  }, {
473
575
  key: "handleBlockScroll",
474
576
  value: function handleBlockScroll(event) {
475
- // const targetElement = this.placeHolderElement;
476
- var containerElement = this.dropElement;
477
-
478
- if (containerElement && containerElement !== event.target && !containerElement.contains(event.target)) {
479
- // --- Scroll exclude Target & Container elements --- For reference. Will adopt in future
480
- // if(
481
- // (containerElement && (containerElement !== event.target && !containerElement.contains(event.target)))
482
- // && (targetElement && (targetElement !== event.target && !targetElement.contains(event.target)))
483
- // ) {
577
+ var scrollBlockedPopups = _Registry["default"].getOpenedScrollBlockedFixedPopups(); // Check if the event target is outside all dropElements
578
+
579
+
580
+ var isOutsideAllDropElements = scrollBlockedPopups.every(function (_ref7) {
581
+ var dropElement = _ref7.dropElement;
582
+ return dropElement && dropElement !== event.target && !dropElement.contains(event.target);
583
+ });
584
+
585
+ if (isOutsideAllDropElements) {
484
586
  event.preventDefault();
485
587
  }
486
588
  }
487
589
  }, {
488
590
  key: "handlePositionChange",
489
591
  value: function handlePositionChange(event) {
490
- var targetElement = this.placeHolderElement;
491
- var containerElement = this.dropElement;
592
+ var scrollBlockedPopups = _Registry["default"].getOpenedScrollBlockedFixedPopups();
492
593
 
493
- if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && targetElement && targetElement !== event.target && !targetElement.contains(event.target) && event.target.contains(targetElement)) {
494
- this.handlePopupPosition(this.state.position, true); // this.closePopupOnly(event);
495
- }
594
+ scrollBlockedPopups.forEach(function (_ref8) {
595
+ var placeHolderElement = _ref8.placeHolderElement,
596
+ dropElement = _ref8.dropElement,
597
+ handlePopupPosition = _ref8.handlePopupPosition,
598
+ state = _ref8.state;
599
+
600
+ if (dropElement && dropElement !== event.target && !dropElement.contains(event.target) && placeHolderElement && placeHolderElement !== event.target && !placeHolderElement.contains(event.target) && event.target.contains(placeHolderElement)) {
601
+ handlePopupPosition(state.position, true);
602
+ }
603
+ });
496
604
  }
497
605
  }, {
498
606
  key: "preventKeyboardScroll",
499
607
  value: function preventKeyboardScroll(event) {
500
- var containerElement = this.dropElement;
501
608
  var keys = [32, 37, 38, 39, 40]; // Space, Arrow keys
502
609
 
503
- if (containerElement && containerElement !== event.target && !containerElement.contains(event.target) && keys.includes(event.keyCode)) {
610
+ var scrollBlockedPopups = _Registry["default"].getOpenedScrollBlockedFixedPopups(); // Check if the event target is outside all dropElements
611
+
612
+
613
+ var isOutsideAllDropElements = scrollBlockedPopups.every(function (_ref9) {
614
+ var dropElement = _ref9.dropElement;
615
+ return dropElement && dropElement !== event.target && !dropElement.contains(event.target) && keys.includes(event.keyCode);
616
+ });
617
+
618
+ if (isOutsideAllDropElements) {
504
619
  event.preventDefault();
505
620
  }
506
621
  }
@@ -577,16 +692,16 @@ var Popup = function Popup(Component) {
577
692
  }, {
578
693
  key: "togglePopup",
579
694
  value: function togglePopup(e, defaultPosition) {
580
- var _this3 = this;
695
+ var _this5 = this;
581
696
 
582
697
  var group = this.getGroup();
583
698
  this.removeClose(e);
584
699
  var isPopupOpen = this.state.isPopupOpen;
585
- var groupPopups = popups[group] || [];
586
- lastOpenedGroup = !isPopupOpen && lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(lastOpenedGroup)) : lastOpenedGroup;
587
- isPopupOpen && lastOpenedGroup.splice(0, 1);
700
+ var groupPopups = _Registry["default"].popups[group] || [];
701
+ _Registry["default"].lastOpenedGroup = !isPopupOpen && _Registry["default"].lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(_Registry["default"].lastOpenedGroup)) : _Registry["default"].lastOpenedGroup;
702
+ isPopupOpen && _Registry["default"].lastOpenedGroup.splice(0, 1);
588
703
  groupPopups.forEach(function (popup) {
589
- if (popup !== _this3 && popup.state.isPopupOpen) {
704
+ if (popup !== _this5 && popup.state.isPopupOpen) {
590
705
  popup.setState({
591
706
  isPopupOpen: false,
592
707
  isPopupReady: false
@@ -608,17 +723,18 @@ var Popup = function Popup(Component) {
608
723
  value: function openPopupOnly(e, defaultPosition) {
609
724
  var group = this.getGroup();
610
725
  this.removeClose(e);
611
- lastOpenedGroup = lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(lastOpenedGroup)) : lastOpenedGroup;
726
+ _Registry["default"].lastOpenedGroup = _Registry["default"].lastOpenedGroup.indexOf(group) === -1 ? [group].concat(_toConsumableArray(_Registry["default"].lastOpenedGroup)) : _Registry["default"].lastOpenedGroup;
612
727
  this.handlePopupPosition(defaultPosition);
613
728
  }
614
729
  }, {
615
730
  key: "closePopupOnly",
616
731
  value: function closePopupOnly(e) {
617
732
  this.removeClose(e);
618
- lastOpenedGroup.splice(0, 1);
619
733
  var isPopupOpen = this.state.isPopupOpen;
620
734
 
621
735
  if (isPopupOpen) {
736
+ _Registry["default"].lastOpenedGroup.splice(0, 1);
737
+
622
738
  this.setState({
623
739
  isPopupOpen: false,
624
740
  isPopupReady: false
@@ -628,8 +744,10 @@ var Popup = function Popup(Component) {
628
744
  }, {
629
745
  key: "handleCloseLastOpenedGroup",
630
746
  value: function handleCloseLastOpenedGroup() {
631
- var groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] || [] : [];
632
- lastOpenedGroup.splice(0, 1);
747
+ var groupPopups = _Registry["default"].lastOpenedGroup.length ? _Registry["default"].popups[_Registry["default"].lastOpenedGroup[0]] || [] : [];
748
+
749
+ _Registry["default"].lastOpenedGroup.splice(0, 1);
750
+
633
751
  groupPopups.forEach(function (popup) {
634
752
  popup.state.isPopupOpen && popup.setState({
635
753
  isPopupOpen: false,
@@ -660,9 +778,9 @@ var Popup = function Popup(Component) {
660
778
  value: function handleGetNeedPrevent(e) {
661
779
  var needPrevent = false;
662
780
 
663
- if (lastOpenedGroup.length > 1) {
781
+ if (_Registry["default"].lastOpenedGroup.length > 1) {
664
782
  var target = e.target;
665
- var groupPopups = lastOpenedGroup.length ? popups[lastOpenedGroup[0]] : [];
783
+ var groupPopups = _Registry["default"].lastOpenedGroup.length ? _Registry["default"].popups[_Registry["default"].lastOpenedGroup[0]] : [];
666
784
  var openedPopup = null; // eslint-disable-next-line guard-for-in
667
785
 
668
786
  for (var i in groupPopups) {
@@ -707,8 +825,8 @@ var Popup = function Popup(Component) {
707
825
  key: "documentClickHandler",
708
826
  value: function documentClickHandler() {
709
827
  try {
710
- Object.keys(popups).forEach(function (groupName) {
711
- var groupPopups = popups[groupName] || [];
828
+ Object.keys(_Registry["default"].popups).forEach(function (groupName) {
829
+ var groupPopups = _Registry["default"].popups[groupName] || [];
712
830
  groupPopups.forEach(function (popup) {
713
831
  popup.state.isPopupOpen && (!popup.props.checkBeforeClose || popup.props.checkBeforeClose && popup.props.checkBeforeClose()) && !(0, _Common.isTextSelected)() && popup.setState({
714
832
  isPopupOpen: false,
@@ -716,7 +834,7 @@ var Popup = function Popup(Component) {
716
834
  });
717
835
  });
718
836
  });
719
- lastOpenedGroup = [];
837
+ _Registry["default"].lastOpenedGroup = [];
720
838
  } catch (e) {// eslint-disable-next-line no-console
721
839
  //console.error('popup component not unmounted properly', e);
722
840
  }
@@ -756,14 +874,14 @@ var Popup = function Popup(Component) {
756
874
  }, {
757
875
  key: "handlePopupPosition",
758
876
  value: function handlePopupPosition() {
759
- var _this4 = this;
877
+ var _this6 = this;
760
878
 
761
879
  var defaultPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'bottomCenter';
762
880
  var isUpdatePosition = arguments.length > 1 ? arguments[1] : undefined;
763
881
 
764
882
  // isUpdatePosition --->>> Window resize and dropBox resize and to update the position
765
- var _ref5 = this.context || {},
766
- direction = _ref5.direction;
883
+ var _ref10 = this.context || {},
884
+ direction = _ref10.direction;
767
885
 
768
886
  var placeHolderElement = this.placeHolderElement,
769
887
  dropElement = this.dropElement;
@@ -789,11 +907,11 @@ var Popup = function Popup(Component) {
789
907
 
790
908
  var setPosition = function setPosition() {
791
909
  requestAnimationFrame(function () {
792
- var placeHolderElement = _this4.placeHolderElement,
793
- dropElement = _this4.dropElement;
794
- var _this4$state = _this4.state,
795
- position = _this4$state.position,
796
- isPopupReady = _this4$state.isPopupReady;
910
+ var placeHolderElement = _this6.placeHolderElement,
911
+ dropElement = _this6.dropElement;
912
+ var _this6$state = _this6.state,
913
+ position = _this6$state.position,
914
+ isPopupReady = _this6$state.isPopupReady;
797
915
  var scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
798
916
 
799
917
  var betterPosition = _viewPort["default"].betterView(dropElement, placeHolderElement, defaultPosition, scrollContainer, {
@@ -802,26 +920,26 @@ var Popup = function Popup(Component) {
802
920
  customOrder: customOrder
803
921
  });
804
922
 
805
- var _ref6 = betterPosition || _Common.DUMMY_OBJECT,
806
- view = _ref6.view,
807
- views = _ref6.views,
808
- viewsOffset = _ref6.viewsOffset,
809
- targetOffset = _ref6.targetOffset,
810
- popupOffset = _ref6.popupOffset;
923
+ var _ref11 = betterPosition || _Common.DUMMY_OBJECT,
924
+ view = _ref11.view,
925
+ views = _ref11.views,
926
+ viewsOffset = _ref11.viewsOffset,
927
+ targetOffset = _ref11.targetOffset,
928
+ popupOffset = _ref11.popupOffset;
811
929
 
812
930
  if (!isAbsolute) {
813
931
  if (!isPopupReady) {
814
- _this4.updatePopupState(view, views, viewsOffset, targetOffset, popupOffset, isAbsolute);
932
+ _this6.updatePopupState(view, views, viewsOffset, targetOffset, popupOffset, isAbsolute);
815
933
  }
816
934
 
817
935
  if (!dropElement) {
818
936
  return;
819
937
  }
820
938
 
821
- _this4.setContainerDynamicPositioning(betterPosition, needArrow);
939
+ _this6.setContainerDynamicPositioning(betterPosition, needArrow);
822
940
  } else {
823
941
  if (position !== view || !isPopupReady) {
824
- _this4.updatePopupState(view, views, viewsOffset, targetOffset, popupOffset, isAbsolute);
942
+ _this6.updatePopupState(view, views, viewsOffset, targetOffset, popupOffset, isAbsolute);
825
943
  }
826
944
  }
827
945
  });
@@ -840,10 +958,10 @@ var Popup = function Popup(Component) {
840
958
  }, {
841
959
  key: "handleOpenPopupPositionChange",
842
960
  value: function handleOpenPopupPositionChange() {
843
- var _this5 = this;
961
+ var _this7 = this;
844
962
 
845
- Object.keys(popups).forEach(function (groupName) {
846
- var groupPopups = popups[groupName] || [];
963
+ Object.keys(_Registry["default"].popups).forEach(function (groupName) {
964
+ var groupPopups = _Registry["default"].popups[groupName] || [];
847
965
  groupPopups.forEach(function (popup) {
848
966
  if (popup.state.isPopupOpen) {
849
967
  var placeHolderElement = popup.placeHolderElement,
@@ -857,11 +975,11 @@ var Popup = function Popup(Component) {
857
975
  if (placeHolderElement && dropElement) {
858
976
  var scrollContainer = placeHolderElement.closest('[data-scroll=true]') || document.body;
859
977
  requestAnimationFrame(function () {
860
- var needArrow = _this5.getNeedArrow(popup);
978
+ var needArrow = _this7.getNeedArrow(popup);
861
979
 
862
- var isAbsolute = _this5.getIsAbsolutePopup(popup);
980
+ var isAbsolute = _this7.getIsAbsolutePopup(popup);
863
981
 
864
- var customOrder = _this5.getCustomPositionOrder(popup);
982
+ var customOrder = _this7.getCustomPositionOrder(popup);
865
983
 
866
984
  var isMobile = (0, _isMobilePopover["default"])(true);
867
985
 
@@ -871,33 +989,33 @@ var Popup = function Popup(Component) {
871
989
  customOrder: customOrder
872
990
  });
873
991
 
874
- var _ref7 = betterPosition || {},
875
- view = _ref7.view,
876
- views = _ref7.views,
877
- _ref7$viewsOffset = _ref7.viewsOffset,
878
- viewsOffset = _ref7$viewsOffset === void 0 ? {} : _ref7$viewsOffset,
879
- targetOffset = _ref7.targetOffset,
880
- popupOffset = _ref7.popupOffset;
881
-
882
- var _ref8 = positionsOffset[position] || {},
883
- _ref8$left = _ref8.left,
884
- oldLeft = _ref8$left === void 0 ? '' : _ref8$left,
885
- _ref8$top = _ref8.top,
886
- oldTop = _ref8$top === void 0 ? '' : _ref8$top,
887
- _ref8$bottom = _ref8.bottom,
888
- oldBottom = _ref8$bottom === void 0 ? '' : _ref8$bottom,
889
- _ref8$right = _ref8.right,
890
- oldRight = _ref8$right === void 0 ? '' : _ref8$right;
891
-
892
- var _ref9 = viewsOffset[view] || {},
893
- _ref9$left = _ref9.left,
894
- left = _ref9$left === void 0 ? '' : _ref9$left,
895
- _ref9$top = _ref9.top,
896
- top = _ref9$top === void 0 ? '' : _ref9$top,
897
- _ref9$bottom = _ref9.bottom,
898
- bottom = _ref9$bottom === void 0 ? '' : _ref9$bottom,
899
- _ref9$right = _ref9.right,
900
- right = _ref9$right === void 0 ? '' : _ref9$right;
992
+ var _ref12 = betterPosition || {},
993
+ view = _ref12.view,
994
+ views = _ref12.views,
995
+ _ref12$viewsOffset = _ref12.viewsOffset,
996
+ viewsOffset = _ref12$viewsOffset === void 0 ? {} : _ref12$viewsOffset,
997
+ targetOffset = _ref12.targetOffset,
998
+ popupOffset = _ref12.popupOffset;
999
+
1000
+ var _ref13 = positionsOffset[position] || {},
1001
+ _ref13$left = _ref13.left,
1002
+ oldLeft = _ref13$left === void 0 ? '' : _ref13$left,
1003
+ _ref13$top = _ref13.top,
1004
+ oldTop = _ref13$top === void 0 ? '' : _ref13$top,
1005
+ _ref13$bottom = _ref13.bottom,
1006
+ oldBottom = _ref13$bottom === void 0 ? '' : _ref13$bottom,
1007
+ _ref13$right = _ref13.right,
1008
+ oldRight = _ref13$right === void 0 ? '' : _ref13$right;
1009
+
1010
+ var _ref14 = viewsOffset[view] || {},
1011
+ _ref14$left = _ref14.left,
1012
+ left = _ref14$left === void 0 ? '' : _ref14$left,
1013
+ _ref14$top = _ref14.top,
1014
+ top = _ref14$top === void 0 ? '' : _ref14$top,
1015
+ _ref14$bottom = _ref14.bottom,
1016
+ bottom = _ref14$bottom === void 0 ? '' : _ref14$bottom,
1017
+ _ref14$right = _ref14.right,
1018
+ right = _ref14$right === void 0 ? '' : _ref14$right;
901
1019
 
902
1020
  var changeState = isAbsolute ? position !== view : oldLeft !== left || oldTop !== top || oldBottom !== bottom || oldRight !== right; // let isInViewPort = viewPort.isInViewPort(
903
1021
  // placeHolderElement,
@@ -956,11 +1074,11 @@ var Popup = function Popup(Component) {
956
1074
  var height = popupSize.height,
957
1075
  width = popupSize.width;
958
1076
 
959
- var _ref10 = this.size || {},
960
- _ref10$height = _ref10.height,
961
- oldHeight = _ref10$height === void 0 ? 0 : _ref10$height,
962
- _ref10$width = _ref10.width,
963
- oldWidth = _ref10$width === void 0 ? 0 : _ref10$width;
1077
+ var _ref15 = this.size || {},
1078
+ _ref15$height = _ref15.height,
1079
+ oldHeight = _ref15$height === void 0 ? 0 : _ref15$height,
1080
+ _ref15$width = _ref15.width,
1081
+ oldWidth = _ref15$width === void 0 ? 0 : _ref15$width;
964
1082
 
965
1083
  var _this$state2 = this.state,
966
1084
  isPopupReady = _this$state2.isPopupReady,