@mjhls/mjh-framework 1.0.1073 → 1.0.1074

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +168 -168
  2. package/dist/cjs/AD300x250.js +1 -1
  3. package/dist/cjs/AD300x250x600.js +1 -1
  4. package/dist/cjs/AD728x90.js +1 -1
  5. package/dist/cjs/ADFloatingFooter.js +1 -1
  6. package/dist/cjs/ADGutter.js +1 -1
  7. package/dist/cjs/{ADInfeed-0519664d.js → ADInfeed-98ee4120.js} +1 -1
  8. package/dist/cjs/ADSkyscraper.js +1 -1
  9. package/dist/cjs/ADSponsoredResources.js +1 -1
  10. package/dist/cjs/ADWebcast.js +1 -1
  11. package/dist/cjs/ADWelcome.js +1 -1
  12. package/dist/cjs/{ADlgInfeed-e544ac1c.js → ADlgInfeed-55df7d69.js} +1 -1
  13. package/dist/cjs/AdSlot.js +1 -1
  14. package/dist/cjs/AdSlotsProvider.js +1 -1
  15. package/dist/cjs/AlgoliaSearch.js +63 -91
  16. package/dist/cjs/ArticleCarousel.js +1 -1
  17. package/dist/cjs/ArticleProgramLandingPage.js +3 -3
  18. package/dist/cjs/ArticleSeriesLandingPage.js +3 -3
  19. package/dist/cjs/ArticleSeriesListing.js +1 -1
  20. package/dist/cjs/AuthWrapper.js +1476 -294
  21. package/dist/cjs/CEDeckSupabase.js +2 -2
  22. package/dist/cjs/CMEDeck.js +1 -1
  23. package/dist/cjs/Column3.js +1 -1
  24. package/dist/cjs/ConferenceArticleCard.js +15 -15
  25. package/dist/cjs/ContentCardPaginated.js +3 -3
  26. package/dist/cjs/DeckContent.js +11 -11
  27. package/dist/cjs/DeckQueue.js +2 -2
  28. package/dist/cjs/DeckQueuePaginated.js +2 -2
  29. package/dist/cjs/EventsDeck.js +18 -18
  30. package/dist/cjs/ExternalResources.js +3 -3
  31. package/dist/cjs/Feature.js +1 -1
  32. package/dist/cjs/GridContent.js +4 -4
  33. package/dist/cjs/GridContentPaginated.js +4 -4
  34. package/dist/cjs/GridHero.js +1 -1
  35. package/dist/cjs/HamMagazine.js +11 -11
  36. package/dist/cjs/HealthCareProfessionalModal.js +1 -1
  37. package/dist/cjs/Hero.js +1 -1
  38. package/dist/cjs/HorizontalArticleListing.js +3 -3
  39. package/dist/cjs/{ImageSlider-62a43659.js → ImageSlider-984a697b.js} +92 -149
  40. package/dist/cjs/IssueLanding.js +34 -34
  41. package/dist/cjs/KMTracker.js +15 -15
  42. package/dist/cjs/LeftNav.js +1 -1
  43. package/dist/cjs/MasterDeck.js +11 -11
  44. package/dist/cjs/MasterDeckPaginated.js +11 -11
  45. package/dist/cjs/{MediaSeriesCard-a7e29435.js → MediaSeriesCard-19aab049.js} +2 -2
  46. package/dist/cjs/MediaSeriesLanding.js +13 -13
  47. package/dist/cjs/MediaSeriesLandingPaginated.js +13 -13
  48. package/dist/cjs/NavMagazine.js +12 -12
  49. package/dist/cjs/NavNative.js +10 -10
  50. package/dist/cjs/OncliveLargeHero.js +1 -1
  51. package/dist/cjs/PartnerDetailListing.js +7 -6
  52. package/dist/cjs/PartnerDetailListingPaginated.js +7 -6
  53. package/dist/cjs/PodcastsLanding.js +6 -6
  54. package/dist/cjs/PubSection.js +4 -4
  55. package/dist/cjs/PublicationLanding.js +26 -26
  56. package/dist/cjs/QueueDeckExpanded.js +4 -4
  57. package/dist/cjs/QueueDeckExpandedPaginated.js +4 -4
  58. package/dist/cjs/RelatedContent.js +28 -28
  59. package/dist/cjs/RelatedTopicsDropdown.js +10 -10
  60. package/dist/cjs/SeriesListingDeck.js +2 -2
  61. package/dist/cjs/{SeriesSlider-edcb8e4b.js → SeriesSlider-086a8319.js} +5 -5
  62. package/dist/cjs/SideFooter.js +2 -2
  63. package/dist/cjs/{SocialSearchComponent-e9ec9c63.js → SocialSearchComponent-d7e5d3a6.js} +1 -1
  64. package/dist/cjs/TaxonomyDescription.js +3 -3
  65. package/dist/cjs/TemplateNormal.js +2 -2
  66. package/dist/cjs/ThumbnailCard.js +1 -1
  67. package/dist/cjs/{Tooltip-980a1d1a.js → Tooltip-96fe6ef6.js} +264 -108
  68. package/dist/cjs/Ustream.js +1 -1
  69. package/dist/cjs/VideoProgramLandingPage.js +3 -3
  70. package/dist/cjs/VideoSeriesCard.js +1 -1
  71. package/dist/cjs/VideoSeriesLandingPage.js +3 -3
  72. package/dist/cjs/VideoSeriesListing.js +1 -1
  73. package/dist/cjs/View.js +34 -27
  74. package/dist/cjs/YahooHero.js +1 -1
  75. package/dist/cjs/YoutubeGroup.js +5 -5
  76. package/dist/cjs/defineProperty-e0fb52c5.js +73 -0
  77. package/dist/cjs/{entities-3f9d0f2f.js → entities-df1aed86.js} +4 -0
  78. package/dist/cjs/getSerializers.js +3 -3
  79. package/dist/cjs/{getTargeting-45ffbee8.js → getTargeting-5b954783.js} +9 -9
  80. package/dist/cjs/getTargeting.js +1 -1
  81. package/dist/cjs/{index-8041a4eb.js → index-50be6759.js} +15 -9
  82. package/dist/cjs/{index-43275e6f.js → index-a075129d.js} +2 -2
  83. package/dist/cjs/index.js +12 -10
  84. package/dist/cjs/{main-47be4f9f.js → main-ae8472f3.js} +4 -9
  85. package/dist/cjs/typeof-1358762e.js +33 -0
  86. package/dist/esm/AD300x250.js +1 -1
  87. package/dist/esm/AD300x250x600.js +1 -1
  88. package/dist/esm/AD728x90.js +1 -1
  89. package/dist/esm/ADFloatingFooter.js +1 -1
  90. package/dist/esm/ADGutter.js +1 -1
  91. package/dist/esm/{ADInfeed-c3f5613e.js → ADInfeed-6d0c0856.js} +1 -1
  92. package/dist/esm/ADSkyscraper.js +1 -1
  93. package/dist/esm/ADSponsoredResources.js +1 -1
  94. package/dist/esm/ADWebcast.js +1 -1
  95. package/dist/esm/ADWelcome.js +1 -1
  96. package/dist/esm/{ADlgInfeed-2b148f3f.js → ADlgInfeed-93bc2250.js} +1 -1
  97. package/dist/esm/AdSlot.js +1 -1
  98. package/dist/esm/AdSlotsProvider.js +1 -1
  99. package/dist/esm/AlgoliaSearch.js +63 -91
  100. package/dist/esm/ArticleCarousel.js +1 -1
  101. package/dist/esm/ArticleProgramLandingPage.js +3 -3
  102. package/dist/esm/ArticleSeriesLandingPage.js +3 -3
  103. package/dist/esm/ArticleSeriesListing.js +1 -1
  104. package/dist/esm/AuthWrapper.js +1470 -288
  105. package/dist/esm/CEDeckSupabase.js +2 -2
  106. package/dist/esm/CMEDeck.js +1 -1
  107. package/dist/esm/Column3.js +1 -1
  108. package/dist/esm/ConferenceArticleCard.js +15 -15
  109. package/dist/esm/ContentCardPaginated.js +3 -3
  110. package/dist/esm/DeckContent.js +11 -11
  111. package/dist/esm/DeckQueue.js +2 -2
  112. package/dist/esm/DeckQueuePaginated.js +2 -2
  113. package/dist/esm/EventsDeck.js +18 -18
  114. package/dist/esm/ExternalResources.js +3 -3
  115. package/dist/esm/Feature.js +1 -1
  116. package/dist/esm/GridContent.js +4 -4
  117. package/dist/esm/GridContentPaginated.js +4 -4
  118. package/dist/esm/GridHero.js +1 -1
  119. package/dist/esm/HamMagazine.js +11 -11
  120. package/dist/esm/HealthCareProfessionalModal.js +1 -1
  121. package/dist/esm/Hero.js +1 -1
  122. package/dist/esm/HorizontalArticleListing.js +3 -3
  123. package/dist/esm/{ImageSlider-aea3a615.js → ImageSlider-497e9c88.js} +10 -67
  124. package/dist/esm/IssueLanding.js +34 -34
  125. package/dist/esm/KMTracker.js +15 -15
  126. package/dist/esm/LeftNav.js +1 -1
  127. package/dist/esm/MasterDeck.js +11 -11
  128. package/dist/esm/MasterDeckPaginated.js +11 -11
  129. package/dist/esm/{MediaSeriesCard-b47e2393.js → MediaSeriesCard-6d08d387.js} +2 -2
  130. package/dist/esm/MediaSeriesLanding.js +13 -13
  131. package/dist/esm/MediaSeriesLandingPaginated.js +13 -13
  132. package/dist/esm/NavMagazine.js +12 -12
  133. package/dist/esm/NavNative.js +10 -10
  134. package/dist/esm/OncliveLargeHero.js +1 -1
  135. package/dist/esm/PartnerDetailListing.js +7 -6
  136. package/dist/esm/PartnerDetailListingPaginated.js +7 -6
  137. package/dist/esm/PodcastsLanding.js +6 -6
  138. package/dist/esm/PubSection.js +4 -4
  139. package/dist/esm/PublicationLanding.js +26 -26
  140. package/dist/esm/QueueDeckExpanded.js +4 -4
  141. package/dist/esm/QueueDeckExpandedPaginated.js +4 -4
  142. package/dist/esm/RelatedContent.js +28 -28
  143. package/dist/esm/RelatedTopicsDropdown.js +10 -10
  144. package/dist/esm/SeriesListingDeck.js +2 -2
  145. package/dist/esm/{SeriesSlider-2e83e861.js → SeriesSlider-a6b1d617.js} +5 -5
  146. package/dist/esm/SideFooter.js +2 -2
  147. package/dist/esm/{SocialSearchComponent-020f9e81.js → SocialSearchComponent-6065bff2.js} +1 -1
  148. package/dist/esm/TaxonomyDescription.js +3 -3
  149. package/dist/esm/TemplateNormal.js +2 -2
  150. package/dist/esm/ThumbnailCard.js +1 -1
  151. package/dist/esm/{Tooltip-51957f7c.js → Tooltip-bc98d17e.js} +264 -108
  152. package/dist/esm/Ustream.js +1 -1
  153. package/dist/esm/VideoProgramLandingPage.js +3 -3
  154. package/dist/esm/VideoSeriesCard.js +1 -1
  155. package/dist/esm/VideoSeriesLandingPage.js +3 -3
  156. package/dist/esm/VideoSeriesListing.js +1 -1
  157. package/dist/esm/View.js +34 -27
  158. package/dist/esm/YahooHero.js +1 -1
  159. package/dist/esm/YoutubeGroup.js +5 -5
  160. package/dist/esm/defineProperty-23a8f8cd.js +68 -0
  161. package/dist/esm/{entities-932b50cf.js → entities-6d9154b4.js} +4 -0
  162. package/dist/esm/getSerializers.js +3 -3
  163. package/dist/esm/{getTargeting-a569a9cc.js → getTargeting-5a281334.js} +9 -9
  164. package/dist/esm/getTargeting.js +1 -1
  165. package/dist/esm/{index-983ef4ad.js → index-6be9a1c4.js} +2 -2
  166. package/dist/esm/{index-67e1773f.js → index-98ca9cec.js} +15 -9
  167. package/dist/esm/index.js +12 -10
  168. package/dist/esm/{main-f97773b2.js → main-754d4992.js} +4 -9
  169. package/dist/esm/typeof-2f07d0e8.js +30 -0
  170. package/package.json +116 -116
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-8041a4eb.js');
3
+ var index = require('./index-50be6759.js');
4
4
  var React = require('react');
5
5
  var PropTypes = require('prop-types');
6
6
  var ReactDOM = require('react-dom');
@@ -178,15 +178,33 @@ var AccordionToggle = React__default["default"].forwardRef(function (_ref, ref)
178
178
  }, props), children);
179
179
  });
180
180
 
181
+ /**
182
+ * Returns the owner document of a given element.
183
+ *
184
+ * @param node the element
185
+ */
181
186
  function ownerDocument$1(node) {
182
187
  return node && node.ownerDocument || document;
183
188
  }
184
189
 
190
+ /**
191
+ * Returns the owner window of a given element.
192
+ *
193
+ * @param node the element
194
+ */
195
+
185
196
  function ownerWindow(node) {
186
197
  var doc = ownerDocument$1(node);
187
198
  return doc && doc.defaultView || window;
188
199
  }
189
200
 
201
+ /**
202
+ * Returns one or all computed style properties of an element.
203
+ *
204
+ * @param node the element
205
+ * @param psuedoElement the style property
206
+ */
207
+
190
208
  function getComputedStyle$2(node, psuedoElement) {
191
209
  return ownerWindow(node).getComputedStyle(node, psuedoElement);
192
210
  }
@@ -267,6 +285,11 @@ try {
267
285
 
268
286
  /**
269
287
  * An `addEventListener` ponyfill, supports the `once` option
288
+ *
289
+ * @param node the element
290
+ * @param eventName the event name
291
+ * @param handle the handler
292
+ * @param options event options
270
293
  */
271
294
  function addEventListener(node, eventName, handler, options) {
272
295
  if (options && typeof options !== 'boolean' && !onceSupported) {
@@ -289,6 +312,14 @@ function addEventListener(node, eventName, handler, options) {
289
312
  node.addEventListener(eventName, handler, options);
290
313
  }
291
314
 
315
+ /**
316
+ * A `removeEventListener` ponyfill
317
+ *
318
+ * @param node the element
319
+ * @param eventName the event name
320
+ * @param handle the handler
321
+ * @param options event options
322
+ */
292
323
  function removeEventListener(node, eventName, handler, options) {
293
324
  var capture = options && typeof options !== 'boolean' ? options.capture : options;
294
325
  node.removeEventListener(eventName, handler, capture);
@@ -305,18 +336,36 @@ function listen(node, eventName, handler, options) {
305
336
  };
306
337
  }
307
338
 
339
+ /**
340
+ * Triggers an event on a given element.
341
+ *
342
+ * @param node the element
343
+ * @param eventName the event name to trigger
344
+ * @param bubbles whether the event should bubble up
345
+ * @param cancelable whether the event should be cancelable
346
+ */
347
+ function triggerEvent(node, eventName, bubbles, cancelable) {
348
+ if (bubbles === void 0) {
349
+ bubbles = false;
350
+ }
351
+
352
+ if (cancelable === void 0) {
353
+ cancelable = true;
354
+ }
355
+
356
+ if (node) {
357
+ var event = document.createEvent('HTMLEvents');
358
+ event.initEvent(eventName, bubbles, cancelable);
359
+ node.dispatchEvent(event);
360
+ }
361
+ }
362
+
308
363
  function parseDuration(node) {
309
364
  var str = style(node, 'transitionDuration') || '';
310
365
  var mult = str.indexOf('ms') === -1 ? 1000 : 1;
311
366
  return parseFloat(str) * mult;
312
367
  }
313
368
 
314
- function triggerTransitionEnd(element) {
315
- var evt = document.createEvent('HTMLEvents');
316
- evt.initEvent('transitionend', true, true);
317
- element.dispatchEvent(evt);
318
- }
319
-
320
369
  function emulateTransitionEnd(element, duration, padding) {
321
370
  if (padding === void 0) {
322
371
  padding = 5;
@@ -324,7 +373,7 @@ function emulateTransitionEnd(element, duration, padding) {
324
373
 
325
374
  var called = false;
326
375
  var handle = setTimeout(function () {
327
- if (!called) triggerTransitionEnd(element);
376
+ if (!called) triggerEvent(element, 'transitionend', true);
328
377
  }, duration + padding);
329
378
  var remove = listen(element, 'transitionend', function () {
330
379
  called = true;
@@ -782,7 +831,10 @@ Transition.propTypes = process.env.NODE_ENV !== "production" ? {
782
831
  * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).
783
832
  */
784
833
  nodeRef: PropTypes__default["default"].shape({
785
- current: typeof Element === 'undefined' ? PropTypes__default["default"].any : PropTypes__default["default"].instanceOf(Element)
834
+ current: typeof Element === 'undefined' ? PropTypes__default["default"].any : function (propValue, key, componentName, location, propFullName, secret) {
835
+ var value = propValue[key];
836
+ return PropTypes__default["default"].instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);
837
+ }
786
838
  }),
787
839
 
788
840
  /**
@@ -2414,6 +2466,13 @@ function (_ref, ref) {
2414
2466
  Col.displayName = 'Col';
2415
2467
 
2416
2468
  var matchesImpl;
2469
+ /**
2470
+ * Checks if a given element matches a selector.
2471
+ *
2472
+ * @param node the element
2473
+ * @param selector the selector
2474
+ */
2475
+
2417
2476
  function matches(node, selector) {
2418
2477
  if (!matchesImpl) {
2419
2478
  var body = document.body;
@@ -2428,6 +2487,13 @@ function matches(node, selector) {
2428
2487
  }
2429
2488
 
2430
2489
  var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
2490
+ /**
2491
+ * Runs `querySelectorAll` on a given element.
2492
+ *
2493
+ * @param element the element
2494
+ * @param selector the selector
2495
+ */
2496
+
2431
2497
  function qsa(element, selector) {
2432
2498
  return toArray(element.querySelectorAll(selector));
2433
2499
  }
@@ -2561,45 +2627,6 @@ function getBasePlacement(placement) {
2561
2627
  return placement.split('-')[0];
2562
2628
  }
2563
2629
 
2564
- function getBoundingClientRect(element) {
2565
- var rect = element.getBoundingClientRect();
2566
- return {
2567
- width: rect.width,
2568
- height: rect.height,
2569
- top: rect.top,
2570
- right: rect.right,
2571
- bottom: rect.bottom,
2572
- left: rect.left,
2573
- x: rect.left,
2574
- y: rect.top
2575
- };
2576
- }
2577
-
2578
- // means it doesn't take into account transforms.
2579
-
2580
- function getLayoutRect(element) {
2581
- var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
2582
- // Fixes https://github.com/popperjs/popper-core/issues/1223
2583
-
2584
- var width = element.offsetWidth;
2585
- var height = element.offsetHeight;
2586
-
2587
- if (Math.abs(clientRect.width - width) <= 1) {
2588
- width = clientRect.width;
2589
- }
2590
-
2591
- if (Math.abs(clientRect.height - height) <= 1) {
2592
- height = clientRect.height;
2593
- }
2594
-
2595
- return {
2596
- x: element.offsetLeft,
2597
- y: element.offsetTop,
2598
- width: width,
2599
- height: height
2600
- };
2601
- }
2602
-
2603
2630
  function getWindow(node) {
2604
2631
  if (node == null) {
2605
2632
  return window;
@@ -2633,6 +2660,70 @@ function isShadowRoot(node) {
2633
2660
  return node instanceof OwnElement || node instanceof ShadowRoot;
2634
2661
  }
2635
2662
 
2663
+ var max = Math.max;
2664
+ var min = Math.min;
2665
+ var round = Math.round;
2666
+
2667
+ function getBoundingClientRect(element, includeScale) {
2668
+ if (includeScale === void 0) {
2669
+ includeScale = false;
2670
+ }
2671
+
2672
+ var rect = element.getBoundingClientRect();
2673
+ var scaleX = 1;
2674
+ var scaleY = 1;
2675
+
2676
+ if (isHTMLElement(element) && includeScale) {
2677
+ var offsetHeight = element.offsetHeight;
2678
+ var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale
2679
+ // Fallback to 1 in case both values are `0`
2680
+
2681
+ if (offsetWidth > 0) {
2682
+ scaleX = round(rect.width) / offsetWidth || 1;
2683
+ }
2684
+
2685
+ if (offsetHeight > 0) {
2686
+ scaleY = round(rect.height) / offsetHeight || 1;
2687
+ }
2688
+ }
2689
+
2690
+ return {
2691
+ width: rect.width / scaleX,
2692
+ height: rect.height / scaleY,
2693
+ top: rect.top / scaleY,
2694
+ right: rect.right / scaleX,
2695
+ bottom: rect.bottom / scaleY,
2696
+ left: rect.left / scaleX,
2697
+ x: rect.left / scaleX,
2698
+ y: rect.top / scaleY
2699
+ };
2700
+ }
2701
+
2702
+ // means it doesn't take into account transforms.
2703
+
2704
+ function getLayoutRect(element) {
2705
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
2706
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
2707
+
2708
+ var width = element.offsetWidth;
2709
+ var height = element.offsetHeight;
2710
+
2711
+ if (Math.abs(clientRect.width - width) <= 1) {
2712
+ width = clientRect.width;
2713
+ }
2714
+
2715
+ if (Math.abs(clientRect.height - height) <= 1) {
2716
+ height = clientRect.height;
2717
+ }
2718
+
2719
+ return {
2720
+ x: element.offsetLeft,
2721
+ y: element.offsetTop,
2722
+ width: width,
2723
+ height: height
2724
+ };
2725
+ }
2726
+
2636
2727
  function contains$1(parent, child) {
2637
2728
  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
2638
2729
 
@@ -2753,13 +2844,13 @@ function getMainAxisFromPlacement(placement) {
2753
2844
  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
2754
2845
  }
2755
2846
 
2756
- var max = Math.max;
2757
- var min = Math.min;
2758
- var round = Math.round;
2759
-
2760
2847
  function within(min$1, value, max$1) {
2761
2848
  return max(min$1, min(value, max$1));
2762
2849
  }
2850
+ function withinMaxClamp(min, value, max) {
2851
+ var v = within(min, value, max);
2852
+ return v > max ? max : v;
2853
+ }
2763
2854
 
2764
2855
  function getFreshSideObject() {
2765
2856
  return {
@@ -2872,6 +2963,10 @@ var arrow$1 = {
2872
2963
  requiresIfExists: ['preventOverflow']
2873
2964
  };
2874
2965
 
2966
+ function getVariation(placement) {
2967
+ return placement.split('-')[1];
2968
+ }
2969
+
2875
2970
  var unsetSides = {
2876
2971
  top: 'auto',
2877
2972
  right: 'auto',
@@ -2887,8 +2982,8 @@ function roundOffsetsByDPR(_ref) {
2887
2982
  var win = window;
2888
2983
  var dpr = win.devicePixelRatio || 1;
2889
2984
  return {
2890
- x: round(round(x * dpr) / dpr) || 0,
2891
- y: round(round(y * dpr) / dpr) || 0
2985
+ x: round(x * dpr) / dpr || 0,
2986
+ y: round(y * dpr) / dpr || 0
2892
2987
  };
2893
2988
  }
2894
2989
 
@@ -2898,11 +2993,13 @@ function mapToStyles(_ref2) {
2898
2993
  var popper = _ref2.popper,
2899
2994
  popperRect = _ref2.popperRect,
2900
2995
  placement = _ref2.placement,
2996
+ variation = _ref2.variation,
2901
2997
  offsets = _ref2.offsets,
2902
2998
  position = _ref2.position,
2903
2999
  gpuAcceleration = _ref2.gpuAcceleration,
2904
3000
  adaptive = _ref2.adaptive,
2905
- roundOffsets = _ref2.roundOffsets;
3001
+ roundOffsets = _ref2.roundOffsets,
3002
+ isFixed = _ref2.isFixed;
2906
3003
 
2907
3004
  var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
2908
3005
  _ref3$x = _ref3.x,
@@ -2924,7 +3021,7 @@ function mapToStyles(_ref2) {
2924
3021
  if (offsetParent === getWindow(popper)) {
2925
3022
  offsetParent = getDocumentElement(popper);
2926
3023
 
2927
- if (getComputedStyle$1(offsetParent).position !== 'static') {
3024
+ if (getComputedStyle$1(offsetParent).position !== 'static' && position === 'absolute') {
2928
3025
  heightProp = 'scrollHeight';
2929
3026
  widthProp = 'scrollWidth';
2930
3027
  }
@@ -2933,17 +3030,19 @@ function mapToStyles(_ref2) {
2933
3030
 
2934
3031
  offsetParent = offsetParent;
2935
3032
 
2936
- if (placement === top) {
2937
- sideY = bottom; // $FlowFixMe[prop-missing]
2938
-
2939
- y -= offsetParent[heightProp] - popperRect.height;
3033
+ if (placement === top || (placement === left || placement === right) && variation === end) {
3034
+ sideY = bottom;
3035
+ var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
3036
+ offsetParent[heightProp];
3037
+ y -= offsetY - popperRect.height;
2940
3038
  y *= gpuAcceleration ? 1 : -1;
2941
3039
  }
2942
3040
 
2943
- if (placement === left) {
2944
- sideX = right; // $FlowFixMe[prop-missing]
2945
-
2946
- x -= offsetParent[widthProp] - popperRect.width;
3041
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
3042
+ sideX = right;
3043
+ var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
3044
+ offsetParent[widthProp];
3045
+ x -= offsetX - popperRect.width;
2947
3046
  x *= gpuAcceleration ? 1 : -1;
2948
3047
  }
2949
3048
  }
@@ -2955,7 +3054,7 @@ function mapToStyles(_ref2) {
2955
3054
  if (gpuAcceleration) {
2956
3055
  var _Object$assign;
2957
3056
 
2958
- return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) < 2 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
3057
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
2959
3058
  }
2960
3059
 
2961
3060
  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
@@ -2983,9 +3082,11 @@ function computeStyles(_ref4) {
2983
3082
 
2984
3083
  var commonStyles = {
2985
3084
  placement: getBasePlacement(state.placement),
3085
+ variation: getVariation(state.placement),
2986
3086
  popper: state.elements.popper,
2987
3087
  popperRect: state.rects.popper,
2988
- gpuAcceleration: gpuAcceleration
3088
+ gpuAcceleration: gpuAcceleration,
3089
+ isFixed: state.options.strategy === 'fixed'
2989
3090
  };
2990
3091
 
2991
3092
  if (state.modifiersData.popperOffsets != null) {
@@ -3243,7 +3344,7 @@ function getInnerBoundingClientRect(element) {
3243
3344
  }
3244
3345
 
3245
3346
  function getClientRectFromMixedType(element, clippingParent) {
3246
- return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
3347
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
3247
3348
  } // A "clipping parent" is an overflowable container with the characteristic of
3248
3349
  // clipping (or hiding) overflowing elements with a position different from
3249
3350
  // `initial`
@@ -3260,7 +3361,7 @@ function getClippingParents(element) {
3260
3361
 
3261
3362
 
3262
3363
  return clippingParents.filter(function (clippingParent) {
3263
- return isElement(clippingParent) && contains$1(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
3364
+ return isElement(clippingParent) && contains$1(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body' && (canEscapeClipping ? getComputedStyle$1(clippingParent).position !== 'static' : true);
3264
3365
  });
3265
3366
  } // Gets the maximum area that the element is visible in due to any number of
3266
3367
  // clipping parents
@@ -3285,10 +3386,6 @@ function getClippingRect(element, boundary, rootBoundary) {
3285
3386
  return clippingRect;
3286
3387
  }
3287
3388
 
3288
- function getVariation(placement) {
3289
- return placement.split('-')[1];
3290
- }
3291
-
3292
3389
  function computeOffsets(_ref) {
3293
3390
  var reference = _ref.reference,
3294
3391
  element = _ref.element,
@@ -3374,11 +3471,10 @@ function detectOverflow(state, options) {
3374
3471
  padding = _options$padding === void 0 ? 0 : _options$padding;
3375
3472
  var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
3376
3473
  var altContext = elementContext === popper ? reference : popper;
3377
- var referenceElement = state.elements.reference;
3378
3474
  var popperRect = state.rects.popper;
3379
3475
  var element = state.elements[altBoundary ? altContext : elementContext];
3380
3476
  var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
3381
- var referenceClientRect = getBoundingClientRect(referenceElement);
3477
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
3382
3478
  var popperOffsets = computeOffsets({
3383
3479
  reference: referenceClientRect,
3384
3480
  element: popperRect,
@@ -3765,6 +3861,14 @@ function preventOverflow(_ref) {
3765
3861
  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
3766
3862
  placement: state.placement
3767
3863
  })) : tetherOffset;
3864
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
3865
+ mainAxis: tetherOffsetValue,
3866
+ altAxis: tetherOffsetValue
3867
+ } : Object.assign({
3868
+ mainAxis: 0,
3869
+ altAxis: 0
3870
+ }, tetherOffsetValue);
3871
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
3768
3872
  var data = {
3769
3873
  x: 0,
3770
3874
  y: 0
@@ -3774,13 +3878,15 @@ function preventOverflow(_ref) {
3774
3878
  return;
3775
3879
  }
3776
3880
 
3777
- if (checkMainAxis || checkAltAxis) {
3881
+ if (checkMainAxis) {
3882
+ var _offsetModifierState$;
3883
+
3778
3884
  var mainSide = mainAxis === 'y' ? top : left;
3779
3885
  var altSide = mainAxis === 'y' ? bottom : right;
3780
3886
  var len = mainAxis === 'y' ? 'height' : 'width';
3781
3887
  var offset = popperOffsets[mainAxis];
3782
- var min$1 = popperOffsets[mainAxis] + overflow[mainSide];
3783
- var max$1 = popperOffsets[mainAxis] - overflow[altSide];
3888
+ var min$1 = offset + overflow[mainSide];
3889
+ var max$1 = offset - overflow[altSide];
3784
3890
  var additive = tether ? -popperRect[len] / 2 : 0;
3785
3891
  var minLen = variation === start ? referenceRect[len] : popperRect[len];
3786
3892
  var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
@@ -3800,36 +3906,45 @@ function preventOverflow(_ref) {
3800
3906
  // width or height)
3801
3907
 
3802
3908
  var arrowLen = within(0, referenceRect[len], arrowRect[len]);
3803
- var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
3804
- var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
3909
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
3910
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
3805
3911
  var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
3806
3912
  var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
3807
- var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
3808
- var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
3809
- var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
3913
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
3914
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
3915
+ var tetherMax = offset + maxOffset - offsetModifierValue;
3916
+ var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3917
+ popperOffsets[mainAxis] = preventedOffset;
3918
+ data[mainAxis] = preventedOffset - offset;
3919
+ }
3810
3920
 
3811
- if (checkMainAxis) {
3812
- var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);
3813
- popperOffsets[mainAxis] = preventedOffset;
3814
- data[mainAxis] = preventedOffset - offset;
3815
- }
3921
+ if (checkAltAxis) {
3922
+ var _offsetModifierState$2;
3816
3923
 
3817
- if (checkAltAxis) {
3818
- var _mainSide = mainAxis === 'x' ? top : left;
3924
+ var _mainSide = mainAxis === 'x' ? top : left;
3819
3925
 
3820
- var _altSide = mainAxis === 'x' ? bottom : right;
3926
+ var _altSide = mainAxis === 'x' ? bottom : right;
3821
3927
 
3822
- var _offset = popperOffsets[altAxis];
3928
+ var _offset = popperOffsets[altAxis];
3823
3929
 
3824
- var _min = _offset + overflow[_mainSide];
3930
+ var _len = altAxis === 'y' ? 'height' : 'width';
3825
3931
 
3826
- var _max = _offset - overflow[_altSide];
3932
+ var _min = _offset + overflow[_mainSide];
3827
3933
 
3828
- var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max);
3934
+ var _max = _offset - overflow[_altSide];
3829
3935
 
3830
- popperOffsets[altAxis] = _preventedOffset;
3831
- data[altAxis] = _preventedOffset - _offset;
3832
- }
3936
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
3937
+
3938
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
3939
+
3940
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
3941
+
3942
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
3943
+
3944
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
3945
+
3946
+ popperOffsets[altAxis] = _preventedOffset;
3947
+ data[altAxis] = _preventedOffset - _offset;
3833
3948
  }
3834
3949
 
3835
3950
  state.modifiersData[name] = data;
@@ -3859,16 +3974,24 @@ function getNodeScroll(node) {
3859
3974
  }
3860
3975
  }
3861
3976
 
3977
+ function isElementScaled(element) {
3978
+ var rect = element.getBoundingClientRect();
3979
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
3980
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
3981
+ return scaleX !== 1 || scaleY !== 1;
3982
+ } // Returns the composite rect of an element relative to its offsetParent.
3862
3983
  // Composite means it takes into account transforms as well as layout.
3863
3984
 
3985
+
3864
3986
  function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
3865
3987
  if (isFixed === void 0) {
3866
3988
  isFixed = false;
3867
3989
  }
3868
3990
 
3869
- var documentElement = getDocumentElement(offsetParent);
3870
- var rect = getBoundingClientRect(elementOrVirtualElement);
3871
3991
  var isOffsetParentAnElement = isHTMLElement(offsetParent);
3992
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
3993
+ var documentElement = getDocumentElement(offsetParent);
3994
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);
3872
3995
  var scroll = {
3873
3996
  scrollLeft: 0,
3874
3997
  scrollTop: 0
@@ -3885,7 +4008,7 @@ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
3885
4008
  }
3886
4009
 
3887
4010
  if (isHTMLElement(offsetParent)) {
3888
- offsets = getBoundingClientRect(offsetParent);
4011
+ offsets = getBoundingClientRect(offsetParent, true);
3889
4012
  offsets.x += offsetParent.clientLeft;
3890
4013
  offsets.y += offsetParent.clientTop;
3891
4014
  } else if (documentElement) {
@@ -3975,7 +4098,10 @@ var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" mo
3975
4098
  var VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];
3976
4099
  function validateModifiers(modifiers) {
3977
4100
  modifiers.forEach(function (modifier) {
3978
- Object.keys(modifier).forEach(function (key) {
4101
+ [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`
4102
+ .filter(function (value, index, self) {
4103
+ return self.indexOf(value) === index;
4104
+ }).forEach(function (key) {
3979
4105
  switch (key) {
3980
4106
  case 'name':
3981
4107
  if (typeof modifier.name !== 'string') {
@@ -3989,6 +4115,8 @@ function validateModifiers(modifiers) {
3989
4115
  console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', "\"" + String(modifier.enabled) + "\""));
3990
4116
  }
3991
4117
 
4118
+ break;
4119
+
3992
4120
  case 'phase':
3993
4121
  if (modifierPhases.indexOf(modifier.phase) < 0) {
3994
4122
  console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(', '), "\"" + String(modifier.phase) + "\""));
@@ -4004,14 +4132,14 @@ function validateModifiers(modifiers) {
4004
4132
  break;
4005
4133
 
4006
4134
  case 'effect':
4007
- if (typeof modifier.effect !== 'function') {
4135
+ if (modifier.effect != null && typeof modifier.effect !== 'function') {
4008
4136
  console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', "\"" + String(modifier.fn) + "\""));
4009
4137
  }
4010
4138
 
4011
4139
  break;
4012
4140
 
4013
4141
  case 'requires':
4014
- if (!Array.isArray(modifier.requires)) {
4142
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
4015
4143
  console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', "\"" + String(modifier.requires) + "\""));
4016
4144
  }
4017
4145
 
@@ -4121,7 +4249,8 @@ function popperGenerator(generatorOptions) {
4121
4249
  var isDestroyed = false;
4122
4250
  var instance = {
4123
4251
  state: state,
4124
- setOptions: function setOptions(options) {
4252
+ setOptions: function setOptions(setOptionsAction) {
4253
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
4125
4254
  cleanupModifierEffects();
4126
4255
  state.options = Object.assign({}, defaultOptions, state.options, options);
4127
4256
  state.scrollParents = {
@@ -4493,9 +4622,16 @@ function usePopper(referenceElement, popperElement, _temp) {
4493
4622
  }
4494
4623
 
4495
4624
  /* eslint-disable no-bitwise, no-cond-assign */
4496
- // HTML DOM and SVG DOM may have different support levels,
4497
- // so we need to check on context instead of a document root element.
4625
+
4626
+ /**
4627
+ * Checks if an element contains another given element.
4628
+ *
4629
+ * @param context the context element
4630
+ * @param node the element to check
4631
+ */
4498
4632
  function contains(context, node) {
4633
+ // HTML DOM and SVG DOM may have different support levels,
4634
+ // so we need to check on context instead of a document root element.
4499
4635
  if (context.contains) return context.contains(node);
4500
4636
  if (context.compareDocumentPosition) return context === node || !!(context.compareDocumentPosition(node) & 16);
4501
4637
  }
@@ -5312,6 +5448,12 @@ function useWrappedRefWithWarning(ref, componentName) {
5312
5448
  return useMergedRefs(warningRef, ref);
5313
5449
  }
5314
5450
 
5451
+ /**
5452
+ * Checks if a given element has a CSS class.
5453
+ *
5454
+ * @param element the element
5455
+ * @param className the CSS class name
5456
+ */
5315
5457
  function hasClass(element, className) {
5316
5458
  if (element.classList) return !!className && element.classList.contains(className);
5317
5459
  return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
@@ -6751,9 +6893,9 @@ function scrollbarSize(recalc) {
6751
6893
  }
6752
6894
 
6753
6895
  /**
6754
- * Return the actively focused element safely.
6896
+ * Returns the actively focused element safely.
6755
6897
  *
6756
- * @param doc the document to checl
6898
+ * @param doc the document to check
6757
6899
  */
6758
6900
 
6759
6901
  function activeElement(doc) {
@@ -6775,6 +6917,13 @@ function activeElement(doc) {
6775
6917
  }
6776
6918
  }
6777
6919
 
6920
+ /**
6921
+ * Adds a CSS class to a given element.
6922
+ *
6923
+ * @param element the element
6924
+ * @param className the CSS class name
6925
+ */
6926
+
6778
6927
  function addClass(element, className) {
6779
6928
  if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + " " + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + " " + className);
6780
6929
  }
@@ -6782,6 +6931,13 @@ function addClass(element, className) {
6782
6931
  function replaceClassName(origClass, classToRemove) {
6783
6932
  return origClass.replace(new RegExp("(^|\\s)" + classToRemove + "(?:\\s|$)", 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
6784
6933
  }
6934
+ /**
6935
+ * Removes a CSS class from a given element.
6936
+ *
6937
+ * @param element the element
6938
+ * @param className the CSS class name
6939
+ */
6940
+
6785
6941
 
6786
6942
  function removeClass(element, className) {
6787
6943
  if (element.classList) {
@@ -4,7 +4,7 @@ var asyncToGenerator = require('./asyncToGenerator-65df6bf8.js');
4
4
  var slicedToArray = require('./slicedToArray-067dd3bc.js');
5
5
  var React = require('react');
6
6
  var index_esm = require('./index.esm-d51c9ac6.js');
7
- var main = require('./main-47be4f9f.js');
7
+ var main = require('./main-ae8472f3.js');
8
8
  require('./_commonjsHelpers-06173234.js');
9
9
  require('./core.get-iterator-method-5643aa10.js');
10
10
  require('./web.dom.iterable-d98303e0.js');