Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer - Version 2.6.6

Version Description

Release date: March 30, 2022

Changelog: - Added an easier way to exit the Buttonizer editor. - Fixed an issue with Facebook Messenger Chat Widget not working. - Fixed missing translations in templates dialog. - Made the normal label background color overwrite the hover just like how the other color options does. - Some other minor fixes.

If you experience bugs, problems or you just have some feedback, let us know on our Buttonizer community!

Download this release

Release Info

Developer buttonizer
Plugin Icon wp plugin Smart Floating / Sticky Buttons – Call, Sharing, Chat Widgets & More – Buttonizer
Version 2.6.6
Comparing to
See all releases

Code changes from version 2.6.4 to 2.6.6

Files changed (2) hide show
  1. assets/dashboard.css +6 -5
  2. assets/dashboard.js +12153 -12920
assets/dashboard.css CHANGED
@@ -9,7 +9,7 @@
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
- * (C) 2017-2022 Buttonizer v2.6.4
13
  *
14
  */
15
  /*!
@@ -23,15 +23,16 @@
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
- * (C) 2017-2022 Buttonizer v2.6.4
27
  *
28
  */
29
  @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap);
30
- .device-preview{flex-grow:1;position:relative}.device-preview .button-group{box-shadow:0 3px 10px rgba(0,0,0,.2);background-color:#fff;position:absolute;left:10px;bottom:-35px;width:40px;border-radius:8px;cursor:pointer}.device-preview .icon{margin-top:5px}.device-preview .button{border:none;opacity:.5}.device-preview .button .MuiSvgIcon-root{font-size:20px}.device-preview .button:hover{border:none;border-radius:5px}.device-preview .button:focus{border-radius:5px}.device-preview .current-device .MuiSvgIcon-root{font-size:20px;position:absolute;left:20px;color:#2f7789;bottom:-30px;cursor:pointer}
 
 
31
  .revert-button{margin:0 5px !important}.revert-button .MuiButton-label{font-size:15px}.revert-button .spin{animation:spin-animation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite}@keyframes spin-animation{0%{transform:rotate(0deg)}100%{transform:rotate(-360deg)}}
32
  .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
33
  .tippy-box[data-theme~=material]{background-color:#505355;font-weight:600}.tippy-box[data-theme~=material][data-placement^=top]>.tippy-arrow:before{border-top-color:#505355}.tippy-box[data-theme~=material][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#505355}.tippy-box[data-theme~=material][data-placement^=left]>.tippy-arrow:before{border-left-color:#505355}.tippy-box[data-theme~=material][data-placement^=right]>.tippy-arrow:before{border-right-color:#505355}.tippy-box[data-theme~=material]>.tippy-backdrop{background-color:#505355}.tippy-box[data-theme~=material]>.tippy-svg-arrow{fill:#505355}
34
- .MuiDialog-root #alert-dialog-title i{margin-right:15px;vertical-align:middle}.MuiDialog-root.warning .MuiBackdrop-root{background-color:rgba(93,0,0,.6)}.MuiDialog-root.warning #alert-dialog-title{color:#710909}
35
  .random-tip{background:#fff;border-radius:50px;margin:15px 0;display:flex;flex-flow:row wrap;height:72px;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);color:#2e788a}.random-tip .buzz{background:#fdf2e8;position:relative;margin:8px;order:1;height:56px;width:56px;border-radius:60px;box-sizing:border-box}.random-tip .tip{margin:8px 20px 8px 8px;flex:1;order:2;display:flex;align-items:center;font-size:14px}
36
  .knowledgebase-link{color:#2f7789;text-decoration:none}.knowledgebase-link.medium{font-size:14px !important}.knowledgebase-link.small{font-size:12px !important}.knowledgebase-link:hover{text-decoration:underline}.knowledgebase-icon{color:#2f7789}
37
  .button-container{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:10px;border:1px solid #e2e2e2;background-color:#fff}.button-container .button-name{max-width:100%}.button-container .button-name .button-name-span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.button-container .button-name.drag-icon{min-width:10px}.button-container .button-header{display:flex}.button-container .button-header .button-actions{margin-left:auto;flex-shrink:0}.button-container .button-settings{display:flex}.button-container .button-settings .button-title{display:inline-flex;height:30px;align-items:center;margin-right:10px;font-size:14px}.button-container .button-settings button{height:30px}.button-container .button-settings .button-visibility{flex-grow:1}.button-container .button-settings .button-visibility button{width:40px;min-width:40px;margin:0 2px}.button-container .button-settings .button-actions button{min-width:35px}.button-container .button-settings .clear{clear:both}.button-container-new-button{margin:7px 0px !important}.button-container-new-button-line{height:15px;display:flex;transition:height 150ms ease-in-out}.button-container-new-button-line>button{opacity:0;height:100%}.button-container-new-button-line>button>span:not(:last-child) hr{width:100%;border-top:1px solid #f08419;border-left:0px;margin-bottom:.5em;opacity:0;transition:all 250ms ease-in-out}.button-container-new-button-line>button>span:not(:last-child)>span{opacity:0;visibility:hidden;margin:0px;padding:0;display:flex;justify-content:center;width:0px;transition:all 150ms ease-in-out}.button-container-new-button-line>button>span:not(:last-child)>span span.fas{font-size:1.4em}.button-container-new-button-line:hover{transition:height 150ms ease-in-out 500ms;height:30px}.button-container-new-button-line:hover>button{opacity:1}.button-container-new-button-line:hover>button>span:not(:last-child) hr{opacity:1}.button-container-new-button-line:hover>button>span:not(:last-child)>span{padding:0px 10px;visibility:visible;opacity:1;margin:0 10px;transition:all 150ms ease-in-out 500ms,opacity 150ms ease-in-out 750ms}
@@ -58,7 +59,7 @@
58
  .position-buttons-container{margin-bottom:unset}.position-buttons-container .position-buttons{max-width:unset !important}.position-buttons-container .position-buttons button svg{width:20px;fill:currentColor}.position-buttons-container .position-buttons.position-horizontal button:nth-child(1) svg,.position-buttons-container .position-buttons.position-horizontal button:nth-child(2) svg{transform:rotate(-90deg)}.position-buttons-container .position-buttons.position-horizontal button:nth-child(3) svg{transform:rotate(90deg)}.position-buttons-container .position-buttons.position-vertical button:nth-child(3) svg{transform:rotate(180deg)}.position-buttons-container .position-advanced{margin-left:5px}.position-buttons-container .position-advanced .MuiButton-endIcon{margin-left:4px}.position-buttons-container .position-advanced .MuiButton-endIcon.MuiButton-iconSizeMedium .MuiIcon-root{font-size:15px}.position-advanced-container .position-advanced-buttons{flex-grow:1}.position-advanced-container .position-advanced-buttons button{flex-grow:1;height:32px}.position-advanced-container .position-advanced-textfield{font-size:15px;height:32px;padding:0 10px}.position-textfield{height:28px;-moz-appearance:textfield}.position-textfield ::-webkit-outer-spin-button,.position-textfield ::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
59
  .image-selector{display:inline-flex;width:100%;justify-content:flex-end;text-align:center}.image-selector .image{width:100%;height:101px;display:inline-flex;text-decoration:none;line-height:26px;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center;background-color:#ededed}.image-selector .image i{font-size:40px;line-height:54px;color:#4795a9bd}.image-selector .image .image-text{background-color:#2f788a;color:#fff;border-radius:0 0 3px 3px}.image-selector .image .selected{opacity:0;transition:250ms}.image-selector .image:hover .selected{opacity:1}
60
  .advanced-scroll-timeout .advanced-timeout{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll .MuiTextField-root{min-width:calc(100% / 3);margin-top:auto;margin-bottom:auto}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent{display:flex;width:calc(100% / 3);flex-direction:column}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent button{padding:0;height:45%;min-width:30px;font-size:10px;margin:auto}.advanced-scroll-timeout .advanced-scroll-hide{display:flex;justify-content:flex-end}.advanced-scroll-timeout .advanced-scroll-hide .settings-container{height:35px;width:calc(900% / 10)}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .settings-title{font-size:11px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .MuiTabs-root.icon-or-image{min-height:30px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container.disabled .settings-content .MuiTabs-indicator{background-color:#747474}.advanced-scroll-timeout .advanced-scroll-container{margin:15px 0 -15px}.advanced-scroll-timeout .advanced-scroll-description{display:flex;justify-content:center}.advanced-scroll-timeout .advanced-scroll-description p{margin:0}
61
- .buttonizer-bar{position:fixed;left:0;top:0;bottom:0;width:430px;background:#f0f0f0;border-right:1px solid #d2d2d2;transition:all 250ms ease-in-out}.buttonizer-bar:not(.ready){transform:translateX(-440px)}@media screen and (max-width: 769px){.buttonizer-bar{width:100%}}.buttonizer-bar.is-loading .router{opacity:0}.buttonizer-bar.is-loading .buttonizer-logo{display:none}.buttonizer-bar .router-window{position:absolute;top:0;bottom:56px;left:0;width:100%}.buttonizer-bar .router-window .simplebar-content-wrapper{height:100% !important}.buttonizer-bar .router-window .simplebar-placeholder{min-height:100vh}.buttonizer-bar .router-window .router{padding:0 30px 50px}.buttonizer-bar .buttonizer-logo img{max-width:200px;display:block;margin:20px auto 30px}.buttonizer-bar .bar-header{margin:10px 0}.buttonizer-bar .bar-header .breadcrumb{margin:15px 0 15px;display:flex}.buttonizer-bar .bar-header .breadcrumb button{height:28px;line-height:28px;padding:0 10px}.buttonizer-bar .bar-header .breadcrumb button .breadcrumb-text{white-space:nowrap;letter-spacing:.07em;overflow:hidden;text-overflow:ellipsis;height:100%;display:inline-block;align-items:center}.buttonizer-bar .bar-header .breadcrumb button i{margin-left:10px;color:rgba(0,0,0,.3);vertical-align:middle}.buttonizer-bar .bar-header .breadcrumb button.home-button{flex-shrink:0}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary{color:#95bac3}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary:hover{color:#2f7789}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary.Mui-selected{color:#f08419}.buttonizer-bar .bar-header .MuiTabs-flexContainer a{min-width:unset}.buttonizer-bar .bar-header .MuiTabs-flexContainer a i{font-size:20px;margin-bottom:8px}.buttonizer-bar .bar-header .MuiTabs-flexContainer a .MuiTab-wrapper{font-weight:600;font-size:12px;letter-spacing:1.25006px}.buttonizer-bar .bar-footer{position:absolute;bottom:0;left:0;right:0;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);background:#fff}.buttonizer-bar .bar-footer .bar-footer-container{display:flex;align-content:space-between;padding:10px}.buttonizer-bar .bar-footer .bar-footer-container .settings-button{font-size:20px;position:relative;margin-right:8px}.buttonizer-bar .bar-footer .bar-footer-container button{min-width:36px;height:36px}.buttonizer-bar .bar-footer .bar-footer-container button.MuiIconButton-root{padding:0;font-size:16px}.buttonizer-bar .bar-footer .bar-footer-container .MuiButton-Publish{padding:6px 16px !important;font-size:.785rem !important}.buttonizer-bar .bar-footer .bar-footer-container .footer-button-group-start{position:relative;border-right:#ddd 1px solid;margin-right:5px}
62
  [data-simplebar] {
63
  position: relative;
64
  flex-direction: column;
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
+ * (C) 2017-2022 Buttonizer v2.6.6
13
  *
14
  */
15
  /*!
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
+ * (C) 2017-2022 Buttonizer v2.6.6
27
  *
28
  */
29
  @import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700&display=swap);
30
+ .device-preview{flex-grow:1;position:relative}.device-preview .button-group{box-shadow:0 3px 10px rgba(0,0,0,.2);background-color:#fff;position:absolute;left:10px;bottom:-40px;width:40px;border-radius:8px;cursor:pointer}.device-preview .icon{margin-top:5px}.device-preview .button{border:none;opacity:.5}.device-preview .button .MuiSvgIcon-root{font-size:20px}.device-preview .button:hover{border:none;border-radius:5px}.device-preview .button:focus{border-radius:5px}.device-preview .current-device .MuiSvgIcon-root{font-size:20px;position:absolute;left:20px;color:#2f7789;bottom:-30px;cursor:pointer}
31
+ .MuiDialog-root #alert-dialog-title i{margin-right:15px;vertical-align:middle}.MuiDialog-root.warning .MuiBackdrop-root{background-color:rgba(93,0,0,.6)}.MuiDialog-root.warning #alert-dialog-title{color:#710909}
32
+ ._3s81HemeKZtqu65wI1fy6E{font-size:19px !important;width:30px !important;height:24px !important}._2PiruT2xp0ahiZEbiVpgcf{position:relative;margin-top:20px}._2PiruT2xp0ahiZEbiVpgcf button{position:absolute;right:10px;bottom:10px;z-index:10}._2PiruT2xp0ahiZEbiVpgcf textarea{display:block;width:100%;min-width:100%;max-width:100%;overflow-x:scroll;height:180px;border-radius:4px;margin:0 1px;background:rgba(0,0,0,.07);border:0;padding:15px;box-sizing:border-box;resize:none;font-size:12px;margin-bottom:15px}._2fpqeP5Cl7bfJ6a5Nh7IP_{background:#ffd281;border-left:4px solid #f1ad00;padding:20px;margin-bottom:15px}._2fpqeP5Cl7bfJ6a5Nh7IP_ p{font-size:14px !important}._3FErKLfln3upSA8QUvjViU{display:block !important}
33
  .revert-button{margin:0 5px !important}.revert-button .MuiButton-label{font-size:15px}.revert-button .spin{animation:spin-animation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite}@keyframes spin-animation{0%{transform:rotate(0deg)}100%{transform:rotate(-360deg)}}
34
  .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
35
  .tippy-box[data-theme~=material]{background-color:#505355;font-weight:600}.tippy-box[data-theme~=material][data-placement^=top]>.tippy-arrow:before{border-top-color:#505355}.tippy-box[data-theme~=material][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#505355}.tippy-box[data-theme~=material][data-placement^=left]>.tippy-arrow:before{border-left-color:#505355}.tippy-box[data-theme~=material][data-placement^=right]>.tippy-arrow:before{border-right-color:#505355}.tippy-box[data-theme~=material]>.tippy-backdrop{background-color:#505355}.tippy-box[data-theme~=material]>.tippy-svg-arrow{fill:#505355}
 
36
  .random-tip{background:#fff;border-radius:50px;margin:15px 0;display:flex;flex-flow:row wrap;height:72px;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);color:#2e788a}.random-tip .buzz{background:#fdf2e8;position:relative;margin:8px;order:1;height:56px;width:56px;border-radius:60px;box-sizing:border-box}.random-tip .tip{margin:8px 20px 8px 8px;flex:1;order:2;display:flex;align-items:center;font-size:14px}
37
  .knowledgebase-link{color:#2f7789;text-decoration:none}.knowledgebase-link.medium{font-size:14px !important}.knowledgebase-link.small{font-size:12px !important}.knowledgebase-link:hover{text-decoration:underline}.knowledgebase-icon{color:#2f7789}
38
  .button-container{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;padding:10px;border:1px solid #e2e2e2;background-color:#fff}.button-container .button-name{max-width:100%}.button-container .button-name .button-name-span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block;max-width:100%}.button-container .button-name.drag-icon{min-width:10px}.button-container .button-header{display:flex}.button-container .button-header .button-actions{margin-left:auto;flex-shrink:0}.button-container .button-settings{display:flex}.button-container .button-settings .button-title{display:inline-flex;height:30px;align-items:center;margin-right:10px;font-size:14px}.button-container .button-settings button{height:30px}.button-container .button-settings .button-visibility{flex-grow:1}.button-container .button-settings .button-visibility button{width:40px;min-width:40px;margin:0 2px}.button-container .button-settings .button-actions button{min-width:35px}.button-container .button-settings .clear{clear:both}.button-container-new-button{margin:7px 0px !important}.button-container-new-button-line{height:15px;display:flex;transition:height 150ms ease-in-out}.button-container-new-button-line>button{opacity:0;height:100%}.button-container-new-button-line>button>span:not(:last-child) hr{width:100%;border-top:1px solid #f08419;border-left:0px;margin-bottom:.5em;opacity:0;transition:all 250ms ease-in-out}.button-container-new-button-line>button>span:not(:last-child)>span{opacity:0;visibility:hidden;margin:0px;padding:0;display:flex;justify-content:center;width:0px;transition:all 150ms ease-in-out}.button-container-new-button-line>button>span:not(:last-child)>span span.fas{font-size:1.4em}.button-container-new-button-line:hover{transition:height 150ms ease-in-out 500ms;height:30px}.button-container-new-button-line:hover>button{opacity:1}.button-container-new-button-line:hover>button>span:not(:last-child) hr{opacity:1}.button-container-new-button-line:hover>button>span:not(:last-child)>span{padding:0px 10px;visibility:visible;opacity:1;margin:0 10px;transition:all 150ms ease-in-out 500ms,opacity 150ms ease-in-out 750ms}
59
  .position-buttons-container{margin-bottom:unset}.position-buttons-container .position-buttons{max-width:unset !important}.position-buttons-container .position-buttons button svg{width:20px;fill:currentColor}.position-buttons-container .position-buttons.position-horizontal button:nth-child(1) svg,.position-buttons-container .position-buttons.position-horizontal button:nth-child(2) svg{transform:rotate(-90deg)}.position-buttons-container .position-buttons.position-horizontal button:nth-child(3) svg{transform:rotate(90deg)}.position-buttons-container .position-buttons.position-vertical button:nth-child(3) svg{transform:rotate(180deg)}.position-buttons-container .position-advanced{margin-left:5px}.position-buttons-container .position-advanced .MuiButton-endIcon{margin-left:4px}.position-buttons-container .position-advanced .MuiButton-endIcon.MuiButton-iconSizeMedium .MuiIcon-root{font-size:15px}.position-advanced-container .position-advanced-buttons{flex-grow:1}.position-advanced-container .position-advanced-buttons button{flex-grow:1;height:32px}.position-advanced-container .position-advanced-textfield{font-size:15px;height:32px;padding:0 10px}.position-textfield{height:28px;-moz-appearance:textfield}.position-textfield ::-webkit-outer-spin-button,.position-textfield ::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
60
  .image-selector{display:inline-flex;width:100%;justify-content:flex-end;text-align:center}.image-selector .image{width:100%;height:101px;display:inline-flex;text-decoration:none;line-height:26px;cursor:pointer;border-radius:3px;flex-direction:column;justify-content:flex-end;background-size:cover;background-position:center;background-color:#ededed}.image-selector .image i{font-size:40px;line-height:54px;color:#4795a9bd}.image-selector .image .image-text{background-color:#2f788a;color:#fff;border-radius:0 0 3px 3px}.image-selector .image .selected{opacity:0;transition:250ms}.image-selector .image:hover .selected{opacity:1}
61
  .advanced-scroll-timeout .advanced-timeout{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-timeout .timeout-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll{display:flex;margin-bottom:10px}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group{margin-right:0;width:calc(100% /3)}.advanced-scroll-timeout .advanced-scroll .scroll-radio-group .MuiFormControlLabel-label{text-transform:capitalize;text-align:left;display:flex;justify-content:left;color:#717171;font-size:13px;padding-right:40px !important;padding-left:0px !important}.advanced-scroll-timeout .advanced-scroll .MuiTextField-root{min-width:calc(100% / 3);margin-top:auto;margin-bottom:auto}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent{display:flex;width:calc(100% / 3);flex-direction:column}.advanced-scroll-timeout .advanced-scroll .advanced-scroll-pixel-percent button{padding:0;height:45%;min-width:30px;font-size:10px;margin:auto}.advanced-scroll-timeout .advanced-scroll-hide{display:flex;justify-content:flex-end}.advanced-scroll-timeout .advanced-scroll-hide .settings-container{height:35px;width:calc(900% / 10)}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .settings-title{font-size:11px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container .MuiTabs-root.icon-or-image{min-height:30px}.advanced-scroll-timeout .advanced-scroll-hide .settings-container.disabled .settings-content .MuiTabs-indicator{background-color:#747474}.advanced-scroll-timeout .advanced-scroll-container{margin:15px 0 -15px}.advanced-scroll-timeout .advanced-scroll-description{display:flex;justify-content:center}.advanced-scroll-timeout .advanced-scroll-description p{margin:0}
62
+ .buttonizer-bar{position:fixed;left:0;top:0;bottom:0;width:430px;background:#f0f0f0;border-right:1px solid #d2d2d2;transition:all 250ms ease-in-out}.buttonizer-bar:not(.ready){transform:translateX(-440px)}@media screen and (max-width: 769px){.buttonizer-bar{width:100%}}.buttonizer-bar.is-loading .router{opacity:0}.buttonizer-bar.is-loading .buttonizer-logo{display:none}.buttonizer-bar .router-window{position:absolute;top:0;bottom:56px;left:0;width:100%}.buttonizer-bar .router-window .simplebar-content-wrapper{height:100% !important}.buttonizer-bar .router-window .simplebar-placeholder{min-height:100vh}.buttonizer-bar .router-window .router{padding:0 30px 50px}.buttonizer-bar .buttonizer-logo img{max-width:200px;display:block;margin:20px auto 30px}.buttonizer-bar .bar-header{margin:10px 0}.buttonizer-bar .bar-header .breadcrumb{margin:15px 0 15px;display:flex}.buttonizer-bar .bar-header .breadcrumb button{height:28px;line-height:28px;padding:0 10px}.buttonizer-bar .bar-header .breadcrumb button .breadcrumb-text{white-space:nowrap;letter-spacing:.07em;overflow:hidden;text-overflow:ellipsis;height:100%;display:inline-block;align-items:center}.buttonizer-bar .bar-header .breadcrumb button i{margin-left:10px;color:rgba(0,0,0,.3);vertical-align:middle}.buttonizer-bar .bar-header .breadcrumb button.home-button{flex-shrink:0}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary{color:#95bac3}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary:hover{color:#2f7789}.buttonizer-bar .bar-header .MuiTabs-flexContainer .MuiTab-textColorSecondary.Mui-selected{color:#f08419}.buttonizer-bar .bar-header .MuiTabs-flexContainer a{min-width:unset}.buttonizer-bar .bar-header .MuiTabs-flexContainer a i{font-size:20px;margin-bottom:8px}.buttonizer-bar .bar-header .MuiTabs-flexContainer a .MuiTab-wrapper{font-weight:600;font-size:12px;letter-spacing:1.25006px}.buttonizer-bar .bar-footer{position:absolute;bottom:0;left:0;right:0;box-shadow:0 1px 1px 0 rgba(60,64,67,.08),0 1px 3px 1px rgba(60,64,67,.16);background:#fff}.buttonizer-bar .bar-footer .bar-footer-container{display:flex;align-content:space-between;padding:10px}.buttonizer-bar .bar-footer .bar-footer-container .settings-button{font-size:20px;position:relative;margin:0 8px}.buttonizer-bar .bar-footer .bar-footer-container .go-back-button{font-size:18px;display:flex;margin-right:8px;min-width:36px;align-items:center;height:100%}.buttonizer-bar .bar-footer .bar-footer-container button{min-width:36px;height:36px}.buttonizer-bar .bar-footer .bar-footer-container button.MuiIconButton-root{padding:0;font-size:16px}.buttonizer-bar .bar-footer .bar-footer-container .MuiButton-Publish{padding:6px 16px !important;font-size:.785rem !important;border-right-color:#124956}.buttonizer-bar .bar-footer .bar-footer-container .MuiButton-PublishGroup{padding:0 !important}.buttonizer-bar .bar-footer .bar-footer-container .footer-button-group-start{position:relative;border-right:#ddd 1px solid}
63
  [data-simplebar] {
64
  position: relative;
65
  flex-direction: column;
assets/dashboard.js CHANGED
@@ -9,7 +9,7 @@
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
- * (C) 2017-2022 Buttonizer v2.6.4
13
  *
14
  */
15
  /*!
@@ -23,7 +23,7 @@
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
- * (C) 2017-2022 Buttonizer v2.6.4
27
  *
28
  */
29
  /******/ (function() { // webpackBootstrap
@@ -2808,6 +2808,118 @@ function useIsFocusVisible() {
2808
 
2809
  /***/ }),
2810
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2811
  /***/ 89974:
2812
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2813
 
@@ -2892,6 +3004,34 @@ exports.Z = _default;
2892
 
2893
  /***/ }),
2894
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2895
  /***/ 79015:
2896
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2897
 
@@ -7611,7 +7751,7 @@ module.exports = JSON.parse('{"name":"axios","version":"0.21.4","description":"P
7611
 
7612
  /***/ }),
7613
 
7614
- /***/ 18671:
7615
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
7616
 
7617
  "use strict";
@@ -14797,6 +14937,7 @@ var defaultStore = {
14797
  draftStore.additional_permissions = action.payload.additional_permissions;
14798
  draftStore._premiumCode = action.payload.premium_code;
14799
  draftStore.domain = action.payload.info ? action.payload.info.domain : null;
 
14800
  break;
14801
  }
14802
 
@@ -16986,6 +17127,7 @@ function DevicePreview() {
16986
  "data-testid": "device:button-group"
16987
  }, devices.map(function (device, key) {
16988
  return /*#__PURE__*/react.createElement(esm_Button_Button, {
 
16989
  onClick: function onClick() {
16990
  return setDevice(device.type);
16991
  },
@@ -17004,5621 +17146,5643 @@ function DevicePreview() {
17004
  return setShowDeviceViews(true);
17005
  },
17006
  className: "current-device",
17007
- "data-testId": "device:current-device"
17008
  }, showDeviceViews === false && chosenDeviceView()));
17009
  }
17010
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Context.js
17011
-
17012
- var Context_ReactReduxContext = /*#__PURE__*/react.createContext(null);
17013
-
17014
- if (false) {}
17015
-
17016
- /* harmony default export */ var Context = ((/* unused pure expression or super */ null && (Context_ReactReduxContext)));
17017
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/batch.js
17018
- // Default to a dummy "batch" implementation that just runs the callback
17019
- function defaultNoopBatch(callback) {
17020
- callback();
17021
- }
 
 
 
17022
 
17023
- var batch = defaultNoopBatch; // Allow injecting another batching function later
17024
 
17025
- var setBatch = function setBatch(newBatch) {
17026
- return batch = newBatch;
17027
- }; // Supply a getter just to skip dealing with ESM bindings
17028
 
17029
- var getBatch = function getBatch() {
17030
- return batch;
17031
- };
17032
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/Subscription.js
17033
- // encapsulates the subscription logic for connecting a component to the redux store, as
17034
- // well as nesting subscriptions of descendant components, so that we can ensure the
17035
- // ancestor components re-render before descendants
17036
 
17037
- var nullListeners = {
17038
- notify: function notify() {}
17039
- };
17040
 
17041
- function createListenerCollection() {
17042
- var batch = getBatch();
17043
- var first = null;
17044
- var last = null;
17045
- return {
17046
- clear: function clear() {
17047
- first = null;
17048
- last = null;
17049
- },
17050
- notify: function notify() {
17051
- batch(function () {
17052
- var listener = first;
17053
 
17054
- while (listener) {
17055
- listener.callback();
17056
- listener = listener.next;
17057
- }
17058
- });
17059
- },
17060
- get: function get() {
17061
- var listeners = [];
17062
- var listener = first;
17063
 
17064
- while (listener) {
17065
- listeners.push(listener);
17066
- listener = listener.next;
17067
- }
17068
 
17069
- return listeners;
17070
- },
17071
- subscribe: function subscribe(callback) {
17072
- var isSubscribed = true;
17073
- var listener = last = {
17074
- callback: callback,
17075
- next: null,
17076
- prev: last
17077
- };
17078
 
17079
- if (listener.prev) {
17080
- listener.prev.next = listener;
17081
- } else {
17082
- first = listener;
17083
- }
17084
 
17085
- return function unsubscribe() {
17086
- if (!isSubscribed || first === null) return;
17087
- isSubscribed = false;
 
 
 
17088
 
17089
- if (listener.next) {
17090
- listener.next.prev = listener.prev;
17091
- } else {
17092
- last = listener.prev;
17093
- }
17094
 
17095
- if (listener.prev) {
17096
- listener.prev.next = listener.next;
17097
- } else {
17098
- first = listener.next;
17099
- }
 
 
 
 
 
 
17100
  };
17101
  }
17102
- };
17103
- }
17104
-
17105
- var Subscription = /*#__PURE__*/function () {
17106
- function Subscription(store, parentSub) {
17107
- this.store = store;
17108
- this.parentSub = parentSub;
17109
- this.unsubscribe = null;
17110
- this.listeners = nullListeners;
17111
- this.handleChangeWrapper = this.handleChangeWrapper.bind(this);
17112
- }
17113
 
17114
- var _proto = Subscription.prototype;
 
 
 
 
 
 
17115
 
17116
- _proto.addNestedSub = function addNestedSub(listener) {
17117
- this.trySubscribe();
17118
- return this.listeners.subscribe(listener);
17119
- };
 
 
17120
 
17121
- _proto.notifyNestedSubs = function notifyNestedSubs() {
17122
- this.listeners.notify();
17123
- };
17124
 
17125
- _proto.handleChangeWrapper = function handleChangeWrapper() {
17126
- if (this.onStateChange) {
17127
- this.onStateChange();
17128
- }
17129
- };
17130
 
17131
- _proto.isSubscribed = function isSubscribed() {
17132
- return Boolean(this.unsubscribe);
17133
- };
17134
 
17135
- _proto.trySubscribe = function trySubscribe() {
17136
- if (!this.unsubscribe) {
17137
- this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);
17138
- this.listeners = createListenerCollection();
17139
- }
17140
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
17141
 
17142
- _proto.tryUnsubscribe = function tryUnsubscribe() {
17143
- if (this.unsubscribe) {
17144
- this.unsubscribe();
17145
- this.unsubscribe = null;
17146
- this.listeners.clear();
17147
- this.listeners = nullListeners;
17148
- }
17149
- };
17150
 
17151
- return Subscription;
17152
- }();
17153
 
17154
 
17155
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js
17156
- // React currently throws a warning when using useLayoutEffect on the server.
17157
- // To get around it, we can conditionally useEffect on the server (no-op) and
17158
- // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
17159
- // subscription callback always has the selector from the latest render commit
17160
- // available, otherwise a store update may happen between render and the effect,
17161
- // which may cause missed updates; we also must ensure the store subscription
17162
- // is created synchronously, otherwise a store update may occur before the
17163
- // subscription is created and an inconsistent state may be observed
17164
 
17165
- var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react.useLayoutEffect : react.useEffect;
17166
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Provider.js
17167
 
 
 
17168
 
 
 
 
17169
 
 
 
17170
 
 
 
 
 
 
 
 
17171
 
 
 
 
17172
 
17173
- function Provider(_ref) {
17174
- var store = _ref.store,
17175
- context = _ref.context,
17176
- children = _ref.children;
17177
- var contextValue = (0,react.useMemo)(function () {
17178
- var subscription = new Subscription(store);
17179
- subscription.onStateChange = subscription.notifyNestedSubs;
17180
- return {
17181
- store: store,
17182
- subscription: subscription
17183
- };
17184
- }, [store]);
17185
- var previousState = (0,react.useMemo)(function () {
17186
- return store.getState();
17187
- }, [store]);
17188
- useIsomorphicLayoutEffect(function () {
17189
- var subscription = contextValue.subscription;
17190
- subscription.trySubscribe();
17191
 
17192
- if (previousState !== store.getState()) {
17193
- subscription.notifyNestedSubs();
 
 
 
 
17194
  }
17195
 
17196
- return function () {
17197
- subscription.tryUnsubscribe();
17198
- subscription.onStateChange = null;
17199
- };
17200
- }, [contextValue, previousState]);
17201
- var Context = context || Context_ReactReduxContext;
17202
- return /*#__PURE__*/react.createElement(Context.Provider, {
17203
- value: contextValue
17204
- }, children);
17205
  }
17206
 
17207
- if (false) {}
17208
-
17209
- /* harmony default export */ var components_Provider = (Provider);
17210
- // EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
17211
- var hoist_non_react_statics_cjs = __webpack_require__(8679);
17212
- var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);
17213
- // EXTERNAL MODULE: ./node_modules/react-redux/node_modules/react-is/index.js
17214
- var node_modules_react_is = __webpack_require__(72973);
17215
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/connectAdvanced.js
17216
 
 
 
 
 
 
 
 
 
 
17217
 
 
17218
 
 
 
 
 
 
 
 
17219
 
17220
 
 
 
 
17221
 
 
 
 
 
 
 
 
17222
 
17223
- // Define some constant arrays just to avoid re-creating these
 
 
 
 
 
 
 
 
 
17224
 
17225
- var EMPTY_ARRAY = [];
17226
- var NO_SUBSCRIPTION_ARRAY = [null, null];
 
 
17227
 
17228
- var stringifyComponent = function stringifyComponent(Comp) {
17229
- try {
17230
- return JSON.stringify(Comp);
17231
- } catch (err) {
17232
- return String(Comp);
17233
- }
17234
- };
17235
 
17236
- function storeStateUpdatesReducer(state, action) {
17237
- var updateCount = state[1];
17238
- return [action.payload, updateCount + 1];
17239
  }
17240
 
17241
- function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
17242
- useIsomorphicLayoutEffect(function () {
17243
- return effectFunc.apply(void 0, effectArgs);
17244
- }, dependencies);
 
 
 
 
17245
  }
 
 
 
 
 
 
 
17246
 
17247
- function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
17248
- // We want to capture the wrapper props and child props we used for later comparisons
17249
- lastWrapperProps.current = wrapperProps;
17250
- lastChildProps.current = actualChildProps;
17251
- renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
17252
 
17253
- if (childPropsFromStoreUpdate.current) {
17254
- childPropsFromStoreUpdate.current = null;
17255
- notifyNestedSubs();
17256
- }
17257
- }
17258
 
17259
- function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
17260
- // If we're not subscribed to the store, nothing to do here
17261
- if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
 
 
 
17262
 
17263
- var didUnsubscribe = false;
17264
- var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
17265
 
17266
- var checkForUpdates = function checkForUpdates() {
17267
- if (didUnsubscribe) {
17268
- // Don't run stale listeners.
17269
- // Redux doesn't guarantee unsubscriptions happen until next dispatch.
17270
- return;
17271
- }
17272
 
17273
- var latestStoreState = store.getState();
17274
- var newChildProps, error;
 
17275
 
17276
- try {
17277
- // Actually run the selector with the most recent store state and wrapper props
17278
- // to determine what the child props should be
17279
- newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
17280
- } catch (e) {
17281
- error = e;
17282
- lastThrownError = e;
17283
- }
17284
 
17285
- if (!error) {
17286
- lastThrownError = null;
17287
- } // If the child props haven't changed, nothing to do here - cascade the subscription update
17288
 
 
 
 
 
 
17289
 
17290
- if (newChildProps === lastChildProps.current) {
17291
- if (!renderIsScheduled.current) {
17292
- notifyNestedSubs();
17293
  }
17294
- } else {
17295
- // Save references to the new child props. Note that we track the "child props from store update"
17296
- // as a ref instead of a useState/useReducer because we need a way to determine if that value has
17297
- // been processed. If this went into useState/useReducer, we couldn't clear out the value without
17298
- // forcing another re-render, which we don't want.
17299
- lastChildProps.current = newChildProps;
17300
- childPropsFromStoreUpdate.current = newChildProps;
17301
- renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
17302
 
17303
- forceComponentUpdateDispatch({
17304
- type: 'STORE_UPDATED',
17305
- payload: {
17306
- error: error
17307
- }
17308
  });
 
17309
  }
17310
- }; // Actually subscribe to the nearest connected ancestor (or store)
 
 
 
 
 
 
17311
 
 
 
 
 
 
 
 
 
17312
 
17313
- subscription.onStateChange = checkForUpdates;
17314
- subscription.trySubscribe(); // Pull data from the store after first render in case the store has
17315
- // changed since we began.
17316
 
17317
- checkForUpdates();
 
 
 
 
 
17318
 
17319
- var unsubscribeWrapper = function unsubscribeWrapper() {
17320
- didUnsubscribe = true;
17321
- subscription.tryUnsubscribe();
17322
- subscription.onStateChange = null;
 
17323
 
17324
- if (lastThrownError) {
17325
- // It's possible that we caught an error due to a bad mapState function, but the
17326
- // parent re-rendered without this component and we're about to unmount.
17327
- // This shouldn't happen as long as we do top-down subscriptions correctly, but
17328
- // if we ever do those wrong, this throw will surface the error in our tests.
17329
- // In that case, throw the error from here so it doesn't get lost.
17330
- throw lastThrownError;
 
 
 
 
 
 
 
 
 
 
 
 
17331
  }
17332
- };
 
 
 
 
 
17333
 
17334
- return unsubscribeWrapper;
17335
- }
17336
 
17337
- var initStateUpdates = function initStateUpdates() {
17338
- return [null, 0];
17339
- };
17340
 
17341
- function connectAdvanced(
17342
- /*
17343
- selectorFactory is a func that is responsible for returning the selector function used to
17344
- compute new props from state, props, and dispatch. For example:
17345
- export default connectAdvanced((dispatch, options) => (state, props) => ({
17346
- thing: state.things[props.thingId],
17347
- saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
17348
- }))(YourComponent)
17349
- Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
17350
- outside of their selector as an optimization. Options passed to connectAdvanced are passed to
17351
- the selectorFactory, along with displayName and WrappedComponent, as the second argument.
17352
- Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
17353
- props. Do not use connectAdvanced directly without memoizing results between calls to your
17354
- selector, otherwise the Connect component will re-render on every state or props change.
17355
- */
17356
- selectorFactory, // options object:
17357
- _ref) {
17358
- if (_ref === void 0) {
17359
- _ref = {};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17360
  }
17361
 
17362
- var _ref2 = _ref,
17363
- _ref2$getDisplayName = _ref2.getDisplayName,
17364
- getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
17365
- return "ConnectAdvanced(" + name + ")";
17366
- } : _ref2$getDisplayName,
17367
- _ref2$methodName = _ref2.methodName,
17368
- methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
17369
- _ref2$renderCountProp = _ref2.renderCountProp,
17370
- renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
17371
- _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
17372
- shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
17373
- _ref2$storeKey = _ref2.storeKey,
17374
- storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
17375
- _ref2$withRef = _ref2.withRef,
17376
- withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
17377
- _ref2$forwardRef = _ref2.forwardRef,
17378
- forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
17379
- _ref2$context = _ref2.context,
17380
- context = _ref2$context === void 0 ? Context_ReactReduxContext : _ref2$context,
17381
- connectOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]);
17382
 
17383
- if (false) { var customStoreWarningMessage; }
17384
 
17385
- var Context = context;
17386
- return function wrapWithConnect(WrappedComponent) {
17387
- if (false) {}
17388
 
17389
- var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
17390
- var displayName = getDisplayName(wrappedComponentName);
17391
 
17392
- var selectorFactoryOptions = (0,esm_extends/* default */.Z)({}, connectOptions, {
17393
- getDisplayName: getDisplayName,
17394
- methodName: methodName,
17395
- renderCountProp: renderCountProp,
17396
- shouldHandleStateChanges: shouldHandleStateChanges,
17397
- storeKey: storeKey,
17398
- displayName: displayName,
17399
- wrappedComponentName: wrappedComponentName,
17400
- WrappedComponent: WrappedComponent
17401
- });
17402
 
17403
- var pure = connectOptions.pure;
 
 
17404
 
17405
- function createChildSelector(store) {
17406
- return selectorFactory(store.dispatch, selectorFactoryOptions);
17407
- } // If we aren't running in "pure" mode, we don't want to memoize values.
17408
- // To avoid conditionally calling hooks, we fall back to a tiny wrapper
17409
- // that just executes the given callback immediately.
17410
 
 
 
 
 
17411
 
17412
- var usePureOnlyMemo = pure ? react.useMemo : function (callback) {
17413
- return callback();
 
17414
  };
17415
 
17416
- function ConnectFunction(props) {
17417
- var _useMemo = (0,react.useMemo)(function () {
17418
- // Distinguish between actual "data" props that were passed to the wrapper component,
17419
- // and values needed to control behavior (forwarded refs, alternate context instances).
17420
- // To maintain the wrapperProps object reference, memoize this destructuring.
17421
- var reactReduxForwardedRef = props.reactReduxForwardedRef,
17422
- wrapperProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ["reactReduxForwardedRef"]);
17423
 
17424
- return [props.context, reactReduxForwardedRef, wrapperProps];
17425
- }, [props]),
17426
- propsContext = _useMemo[0],
17427
- reactReduxForwardedRef = _useMemo[1],
17428
- wrapperProps = _useMemo[2];
17429
 
17430
- var ContextToUse = (0,react.useMemo)(function () {
17431
- // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
17432
- // Memoize the check that determines which context instance we should use.
17433
- return propsContext && propsContext.Consumer && (0,node_modules_react_is.isContextConsumer)( /*#__PURE__*/react.createElement(propsContext.Consumer, null)) ? propsContext : Context;
17434
- }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
17435
 
17436
- var contextValue = (0,react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context.
17437
- // We'll check to see if it _looks_ like a Redux store first.
17438
- // This allows us to pass through a `store` prop that is just a plain value.
 
 
 
 
17439
 
17440
- var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
17441
- var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
 
 
 
 
17442
 
17443
- if (false) {} // Based on the previous check, one of these must be true
 
 
 
 
 
 
17444
 
 
 
 
 
 
 
 
 
17445
 
17446
- var store = didStoreComeFromProps ? props.store : contextValue.store;
17447
- var childPropsSelector = (0,react.useMemo)(function () {
17448
- // The child props selector needs the store reference as an input.
17449
- // Re-create this selector whenever the store changes.
17450
- return createChildSelector(store);
17451
- }, [store]);
 
 
 
 
 
 
 
 
 
 
17452
 
17453
- var _useMemo2 = (0,react.useMemo)(function () {
17454
- if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component
17455
- // connected to the store via props shouldn't use subscription from context, or vice versa.
17456
 
17457
- var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
17458
- // the middle of the notification loop, where `subscription` will then be null. This can
17459
- // probably be avoided if Subscription's listeners logic is changed to not call listeners
17460
- // that have been unsubscribed in the middle of the notification loop.
17461
 
17462
- var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
17463
- return [subscription, notifyNestedSubs];
17464
- }, [store, didStoreComeFromProps, contextValue]),
17465
- subscription = _useMemo2[0],
17466
- notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
17467
- // and memoize that value to avoid unnecessary context updates.
17468
 
17469
 
17470
- var overriddenContextValue = (0,react.useMemo)(function () {
17471
- if (didStoreComeFromProps) {
17472
- // This component is directly subscribed to a store from props.
17473
- // We don't want descendants reading from this store - pass down whatever
17474
- // the existing context value is from the nearest connected ancestor.
17475
- return contextValue;
17476
- } // Otherwise, put this component's subscription instance into context, so that
17477
- // connected descendants won't update until after this component is done
17478
 
17479
 
17480
- return (0,esm_extends/* default */.Z)({}, contextValue, {
17481
- subscription: subscription
17482
- });
17483
- }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
17484
- // causes a change to the calculated child component props (or we caught an error in mapState)
 
 
 
 
 
 
 
17485
 
17486
- var _useReducer = (0,react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
17487
- _useReducer$ = _useReducer[0],
17488
- previousStateUpdateResult = _useReducer$[0],
17489
- forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
 
 
 
 
17490
 
 
 
 
 
 
17491
 
17492
- if (previousStateUpdateResult && previousStateUpdateResult.error) {
17493
- throw previousStateUpdateResult.error;
17494
- } // Set up refs to coordinate values between the subscription effect and the render logic
 
 
 
 
 
 
 
17495
 
17496
 
17497
- var lastChildProps = (0,react.useRef)();
17498
- var lastWrapperProps = (0,react.useRef)(wrapperProps);
17499
- var childPropsFromStoreUpdate = (0,react.useRef)();
17500
- var renderIsScheduled = (0,react.useRef)(false);
17501
- var actualChildProps = usePureOnlyMemo(function () {
17502
- // Tricky logic here:
17503
- // - This render may have been triggered by a Redux store update that produced new child props
17504
- // - However, we may have gotten new wrapper props after that
17505
- // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
17506
- // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
17507
- // So, we'll use the child props from store update only if the wrapper props are the same as last time.
17508
- if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
17509
- return childPropsFromStoreUpdate.current;
17510
- } // TODO We're reading the store directly in render() here. Bad idea?
17511
- // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
17512
- // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
17513
- // to determine what the child props should be.
17514
 
17515
 
17516
- return childPropsSelector(store.getState(), wrapperProps);
17517
- }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
17518
- // about useLayoutEffect in SSR, so we try to detect environment and fall back to
17519
- // just useEffect instead to avoid the warning, since neither will run anyway.
17520
 
17521
- useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
17522
 
17523
- useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
17524
- // We memoize the elements for the rendered child component as an optimization.
17525
 
17526
- var renderedWrappedComponent = (0,react.useMemo)(function () {
17527
- return /*#__PURE__*/react.createElement(WrappedComponent, (0,esm_extends/* default */.Z)({}, actualChildProps, {
17528
- ref: reactReduxForwardedRef
17529
- }));
17530
- }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
17531
- // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
17532
 
17533
- var renderedChild = (0,react.useMemo)(function () {
17534
- if (shouldHandleStateChanges) {
17535
- // If this component is subscribed to store updates, we need to pass its own
17536
- // subscription instance down to our descendants. That means rendering the same
17537
- // Context instance, and putting a different value into the context.
17538
- return /*#__PURE__*/react.createElement(ContextToUse.Provider, {
17539
- value: overriddenContextValue
17540
- }, renderedWrappedComponent);
17541
- }
17542
 
17543
- return renderedWrappedComponent;
17544
- }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
17545
- return renderedChild;
17546
- } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
17547
 
17548
 
17549
- var Connect = pure ? react.memo(ConnectFunction) : ConnectFunction;
17550
- Connect.WrappedComponent = WrappedComponent;
17551
- Connect.displayName = displayName;
17552
 
17553
- if (forwardRef) {
17554
- var forwarded = react.forwardRef(function forwardConnectRef(props, ref) {
17555
- return /*#__PURE__*/react.createElement(Connect, (0,esm_extends/* default */.Z)({}, props, {
17556
- reactReduxForwardedRef: ref
17557
- }));
17558
- });
17559
- forwarded.displayName = displayName;
17560
- forwarded.WrappedComponent = WrappedComponent;
17561
- return hoist_non_react_statics_cjs_default()(forwarded, WrappedComponent);
17562
- }
17563
 
17564
- return hoist_non_react_statics_cjs_default()(Connect, WrappedComponent);
17565
- };
 
 
 
 
 
17566
  }
17567
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/shallowEqual.js
17568
- function is(x, y) {
17569
- if (x === y) {
17570
- return x !== 0 || y !== 0 || 1 / x === 1 / y;
17571
- } else {
17572
- return x !== x && y !== y;
17573
- }
17574
- }
17575
-
17576
- function shallowEqual(objA, objB) {
17577
- if (is(objA, objB)) return true;
17578
-
17579
- if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
17580
- return false;
17581
- }
17582
-
17583
- var keysA = Object.keys(objA);
17584
- var keysB = Object.keys(objB);
17585
- if (keysA.length !== keysB.length) return false;
17586
 
17587
- for (var i = 0; i < keysA.length; i++) {
17588
- if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
17589
- return false;
17590
- }
17591
- }
17592
 
17593
- return true;
17594
- }
17595
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/wrapMapToProps.js
17596
 
17597
- function wrapMapToPropsConstant(getConstant) {
17598
- return function initConstantSelector(dispatch, options) {
17599
- var constant = getConstant(dispatch, options);
 
 
 
 
 
 
 
 
 
17600
 
17601
- function constantSelector() {
17602
- return constant;
 
17603
  }
17604
-
17605
- constantSelector.dependsOnOwnProps = false;
17606
- return constantSelector;
17607
  };
17608
- } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
17609
- // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
17610
- // whether mapToProps needs to be invoked when props have changed.
17611
- //
17612
- // A length of one signals that mapToProps does not depend on props from the parent component.
17613
- // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
17614
- // therefore not reporting its length accurately..
17615
-
17616
- function getDependsOnOwnProps(mapToProps) {
17617
- return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
17618
- } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
17619
- // this function wraps mapToProps in a proxy function which does several things:
17620
- //
17621
- // * Detects whether the mapToProps function being called depends on props, which
17622
- // is used by selectorFactory to decide if it should reinvoke on props changes.
17623
- //
17624
- // * On first call, handles mapToProps if returns another function, and treats that
17625
- // new function as the true mapToProps for subsequent calls.
17626
- //
17627
- // * On first call, verifies the first result is a plain object, in order to warn
17628
- // the developer that their mapToProps function is not returning a valid result.
17629
- //
17630
-
17631
- function wrapMapToPropsFunc(mapToProps, methodName) {
17632
- return function initProxySelector(dispatch, _ref) {
17633
- var displayName = _ref.displayName;
17634
-
17635
- var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
17636
- return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
17637
- }; // allow detectFactoryAndVerify to get ownProps
17638
 
 
 
 
 
 
 
 
17639
 
17640
- proxy.dependsOnOwnProps = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17641
 
17642
- proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
17643
- proxy.mapToProps = mapToProps;
17644
- proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
17645
- var props = proxy(stateOrDispatch, ownProps);
17646
 
17647
- if (typeof props === 'function') {
17648
- proxy.mapToProps = props;
17649
- proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
17650
- props = proxy(stateOrDispatch, ownProps);
17651
- }
17652
 
17653
- if (false) {}
17654
- return props;
17655
- };
17656
 
17657
- return proxy;
 
 
 
17658
  };
17659
- }
17660
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapDispatchToProps.js
17661
 
 
 
 
 
17662
 
17663
- function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
17664
- return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;
17665
- }
17666
- function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
17667
- return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {
17668
- return {
17669
- dispatch: dispatch
17670
- };
17671
- }) : undefined;
17672
- }
17673
- function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
17674
- return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {
17675
- return bindActionCreators(mapDispatchToProps, dispatch);
17676
- }) : undefined;
17677
- }
17678
- /* harmony default export */ var mapDispatchToProps = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]);
17679
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapStateToProps.js
17680
 
17681
- function whenMapStateToPropsIsFunction(mapStateToProps) {
17682
- return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;
17683
- }
17684
- function whenMapStateToPropsIsMissing(mapStateToProps) {
17685
- return !mapStateToProps ? wrapMapToPropsConstant(function () {
17686
- return {};
17687
- }) : undefined;
17688
- }
17689
- /* harmony default export */ var mapStateToProps = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]);
17690
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mergeProps.js
17691
 
 
 
 
 
 
 
 
 
 
17692
 
17693
- function defaultMergeProps(stateProps, dispatchProps, ownProps) {
17694
- return (0,esm_extends/* default */.Z)({}, ownProps, stateProps, dispatchProps);
17695
- }
17696
- function wrapMergePropsFunc(mergeProps) {
17697
- return function initMergePropsProxy(dispatch, _ref) {
17698
- var displayName = _ref.displayName,
17699
- pure = _ref.pure,
17700
- areMergedPropsEqual = _ref.areMergedPropsEqual;
17701
- var hasRunOnce = false;
17702
- var mergedProps;
17703
- return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
17704
- var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
17705
 
17706
- if (hasRunOnce) {
17707
- if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
17708
- } else {
17709
- hasRunOnce = true;
17710
- mergedProps = nextMergedProps;
17711
- if (false) {}
17712
- }
17713
 
17714
- return mergedProps;
 
 
 
 
 
 
 
 
 
 
 
17715
  };
17716
- };
17717
- }
17718
- function whenMergePropsIsFunction(mergeProps) {
17719
- return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
17720
- }
17721
- function whenMergePropsIsOmitted(mergeProps) {
17722
- return !mergeProps ? function () {
17723
- return defaultMergeProps;
17724
- } : undefined;
17725
- }
17726
- /* harmony default export */ var mergeProps = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]);
17727
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/selectorFactory.js
17728
-
17729
-
17730
- function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {
17731
- return function impureFinalPropsSelector(state, ownProps) {
17732
- return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);
17733
- };
17734
- }
17735
- function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {
17736
- var areStatesEqual = _ref.areStatesEqual,
17737
- areOwnPropsEqual = _ref.areOwnPropsEqual,
17738
- areStatePropsEqual = _ref.areStatePropsEqual;
17739
- var hasRunAtLeastOnce = false;
17740
- var state;
17741
- var ownProps;
17742
- var stateProps;
17743
- var dispatchProps;
17744
- var mergedProps;
17745
-
17746
- function handleFirstCall(firstState, firstOwnProps) {
17747
- state = firstState;
17748
- ownProps = firstOwnProps;
17749
- stateProps = mapStateToProps(state, ownProps);
17750
- dispatchProps = mapDispatchToProps(dispatch, ownProps);
17751
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
17752
- hasRunAtLeastOnce = true;
17753
- return mergedProps;
17754
- }
17755
-
17756
- function handleNewPropsAndNewState() {
17757
- stateProps = mapStateToProps(state, ownProps);
17758
- if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
17759
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
17760
- return mergedProps;
17761
- }
17762
 
17763
- function handleNewProps() {
17764
- if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);
17765
- if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
17766
- mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
17767
- return mergedProps;
17768
  }
17769
 
17770
- function handleNewState() {
17771
- var nextStateProps = mapStateToProps(state, ownProps);
17772
- var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
17773
- stateProps = nextStateProps;
17774
- if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
17775
- return mergedProps;
17776
- }
17777
 
17778
- function handleSubsequentCalls(nextState, nextOwnProps) {
17779
- var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
17780
- var stateChanged = !areStatesEqual(nextState, state);
17781
- state = nextState;
17782
- ownProps = nextOwnProps;
17783
- if (propsChanged && stateChanged) return handleNewPropsAndNewState();
17784
- if (propsChanged) return handleNewProps();
17785
- if (stateChanged) return handleNewState();
17786
- return mergedProps;
17787
- }
17788
 
17789
- return function pureFinalPropsSelector(nextState, nextOwnProps) {
17790
- return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
 
17791
  };
17792
- } // TODO: Add more comments
17793
- // If pure is true, the selector returned by selectorFactory will memoize its results,
17794
- // allowing connectAdvanced's shouldComponentUpdate to return false if final
17795
- // props have not changed. If false, the selector will always return a new
17796
- // object and shouldComponentUpdate will always return true.
17797
 
17798
- function finalPropsSelectorFactory(dispatch, _ref2) {
17799
- var initMapStateToProps = _ref2.initMapStateToProps,
17800
- initMapDispatchToProps = _ref2.initMapDispatchToProps,
17801
- initMergeProps = _ref2.initMergeProps,
17802
- options = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]);
17803
 
17804
- var mapStateToProps = initMapStateToProps(dispatch, options);
17805
- var mapDispatchToProps = initMapDispatchToProps(dispatch, options);
17806
- var mergeProps = initMergeProps(dispatch, options);
17807
 
17808
- if (false) {}
 
 
 
17809
 
17810
- var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;
17811
- return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
17812
- }
17813
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/connect.js
 
 
 
 
 
 
17814
 
 
 
 
17815
 
 
 
 
17816
 
 
 
 
 
 
17817
 
 
 
 
 
17818
 
 
 
 
17819
 
17820
 
 
 
 
 
17821
 
17822
- /*
17823
- connect is a facade over connectAdvanced. It turns its args into a compatible
17824
- selectorFactory, which has the signature:
17825
-
17826
- (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps
17827
-
17828
- connect passes its args to connectAdvanced as options, which will in turn pass them to
17829
- selectorFactory each time a Connect component instance is instantiated or hot reloaded.
17830
-
17831
- selectorFactory returns a final props selector from its mapStateToProps,
17832
- mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,
17833
- mergePropsFactories, and pure args.
17834
-
17835
- The resulting final props selector is called by the Connect component instance whenever
17836
- it receives new props or store state.
17837
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17838
 
17839
- function match(arg, factories, name) {
17840
- for (var i = factories.length - 1; i >= 0; i--) {
17841
- var result = factories[i](arg);
17842
- if (result) return result;
17843
- }
17844
 
17845
- return function (dispatch, options) {
17846
- throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + ".");
17847
- };
17848
- }
17849
 
17850
- function strictEqual(a, b) {
17851
- return a === b;
17852
- } // createConnect with default args builds the 'official' connect behavior. Calling it with
17853
- // different options opens up some testing and extensibility scenarios
17854
 
17855
 
17856
- function createConnect(_temp) {
17857
- var _ref = _temp === void 0 ? {} : _temp,
17858
- _ref$connectHOC = _ref.connectHOC,
17859
- connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,
17860
- _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,
17861
- mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? mapStateToProps : _ref$mapStateToPropsF,
17862
- _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,
17863
- mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? mapDispatchToProps : _ref$mapDispatchToPro,
17864
- _ref$mergePropsFactor = _ref.mergePropsFactories,
17865
- mergePropsFactories = _ref$mergePropsFactor === void 0 ? mergeProps : _ref$mergePropsFactor,
17866
- _ref$selectorFactory = _ref.selectorFactory,
17867
- selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory;
17868
 
17869
- return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {
17870
- if (_ref2 === void 0) {
17871
- _ref2 = {};
17872
- }
17873
 
17874
- var _ref3 = _ref2,
17875
- _ref3$pure = _ref3.pure,
17876
- pure = _ref3$pure === void 0 ? true : _ref3$pure,
17877
- _ref3$areStatesEqual = _ref3.areStatesEqual,
17878
- areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,
17879
- _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,
17880
- areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,
17881
- _ref3$areStatePropsEq = _ref3.areStatePropsEqual,
17882
- areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,
17883
- _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,
17884
- areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,
17885
- extraOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref3, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]);
17886
 
17887
- var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');
17888
- var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');
17889
- var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');
17890
- return connectHOC(selectorFactory, (0,esm_extends/* default */.Z)({
17891
- // used in error messages
17892
- methodName: 'connect',
17893
- // used to compute Connect's displayName from the wrapped component's displayName.
17894
- getDisplayName: function getDisplayName(name) {
17895
- return "Connect(" + name + ")";
17896
- },
17897
- // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes
17898
- shouldHandleStateChanges: Boolean(mapStateToProps),
17899
- // passed through to selectorFactory
17900
- initMapStateToProps: initMapStateToProps,
17901
- initMapDispatchToProps: initMapDispatchToProps,
17902
- initMergeProps: initMergeProps,
17903
- pure: pure,
17904
- areStatesEqual: areStatesEqual,
17905
- areOwnPropsEqual: areOwnPropsEqual,
17906
- areStatePropsEqual: areStatePropsEqual,
17907
- areMergedPropsEqual: areMergedPropsEqual
17908
- }, extraOptions));
17909
- };
17910
- }
17911
- /* harmony default export */ var connect = (/*#__PURE__*/createConnect());
17912
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useReduxContext.js
17913
-
17914
-
17915
- /**
17916
- * A hook to access the value of the `ReactReduxContext`. This is a low-level
17917
- * hook that you should usually not need to call directly.
17918
- *
17919
- * @returns {any} the value of the `ReactReduxContext`
17920
- *
17921
- * @example
17922
- *
17923
- * import React from 'react'
17924
- * import { useReduxContext } from 'react-redux'
17925
- *
17926
- * export const CounterComponent = ({ value }) => {
17927
- * const { store } = useReduxContext()
17928
- * return <div>{store.getState()}</div>
17929
- * }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17930
  */
17931
 
17932
- function useReduxContext_useReduxContext() {
17933
- var contextValue = (0,react.useContext)(Context_ReactReduxContext);
17934
-
17935
- if (false) {}
17936
 
17937
- return contextValue;
17938
- }
17939
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useStore.js
17940
 
 
 
17941
 
 
 
 
17942
 
17943
- /**
17944
- * Hook factory, which creates a `useStore` hook bound to a given context.
17945
- *
17946
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
17947
- * @returns {Function} A `useStore` hook bound to the specified context.
17948
- */
 
 
 
 
 
 
 
 
17949
 
17950
- function useStore_createStoreHook(context) {
17951
- if (context === void 0) {
17952
- context = ReactReduxContext;
 
 
17953
  }
17954
 
17955
- var useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : function () {
17956
- return useContext(context);
17957
- };
17958
- return function useStore() {
17959
- var _useReduxContext = useReduxContext(),
17960
- store = _useReduxContext.store;
17961
-
17962
- return store;
17963
- };
17964
- }
17965
- /**
17966
- * A hook to access the redux store.
17967
- *
17968
- * @returns {any} the redux store
17969
- *
17970
- * @example
17971
- *
17972
- * import React from 'react'
17973
- * import { useStore } from 'react-redux'
17974
- *
17975
- * export const ExampleComponent = () => {
17976
- * const store = useStore()
17977
- * return <div>{store.getState()}</div>
17978
- * }
17979
- */
17980
-
17981
- var useStore = /*#__PURE__*/(/* unused pure expression or super */ null && (useStore_createStoreHook()));
17982
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useDispatch.js
17983
 
 
 
 
 
 
17984
 
17985
- /**
17986
- * Hook factory, which creates a `useDispatch` hook bound to a given context.
17987
- *
17988
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
17989
- * @returns {Function} A `useDispatch` hook bound to the specified context.
17990
- */
 
 
 
 
 
 
 
 
 
 
 
 
17991
 
17992
- function createDispatchHook(context) {
17993
- if (context === void 0) {
17994
- context = ReactReduxContext;
17995
- }
17996
 
17997
- var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);
17998
- return function useDispatch() {
17999
- var store = useStore();
18000
- return store.dispatch;
18001
  };
18002
- }
18003
- /**
18004
- * A hook to access the redux `dispatch` function.
18005
- *
18006
- * @returns {any|function} redux store's `dispatch` function
18007
- *
18008
- * @example
18009
- *
18010
- * import React, { useCallback } from 'react'
18011
- * import { useDispatch } from 'react-redux'
18012
- *
18013
- * export const CounterComponent = ({ value }) => {
18014
- * const dispatch = useDispatch()
18015
- * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
18016
- * return (
18017
- * <div>
18018
- * <span>{value}</span>
18019
- * <button onClick={increaseCounter}>Increase counter</button>
18020
- * </div>
18021
- * )
18022
- * }
18023
- */
18024
 
18025
- var useDispatch = /*#__PURE__*/(/* unused pure expression or super */ null && (createDispatchHook()));
18026
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useSelector.js
 
 
 
18027
 
 
 
 
 
 
 
 
 
 
 
18028
 
 
 
18029
 
 
 
 
18030
 
 
 
 
 
18031
 
 
 
 
18032
 
18033
- var refEquality = function refEquality(a, b) {
18034
- return a === b;
18035
- };
18036
 
18037
- function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {
18038
- var _useReducer = (0,react.useReducer)(function (s) {
18039
- return s + 1;
18040
- }, 0),
18041
- forceRender = _useReducer[1];
 
18042
 
18043
- var subscription = (0,react.useMemo)(function () {
18044
- return new Subscription(store, contextSub);
18045
- }, [store, contextSub]);
18046
- var latestSubscriptionCallbackError = (0,react.useRef)();
18047
- var latestSelector = (0,react.useRef)();
18048
- var latestStoreState = (0,react.useRef)();
18049
- var latestSelectedState = (0,react.useRef)();
18050
- var storeState = store.getState();
18051
- var selectedState;
18052
 
18053
- try {
18054
- if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {
18055
- var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references
18056
 
18057
- if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {
18058
- selectedState = newSelectedState;
18059
  } else {
18060
- selectedState = latestSelectedState.current;
18061
  }
18062
- } else {
18063
- selectedState = latestSelectedState.current;
18064
- }
18065
- } catch (err) {
18066
- if (latestSubscriptionCallbackError.current) {
18067
- err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n";
18068
  }
 
18069
 
18070
- throw err;
18071
- }
18072
 
18073
- useIsomorphicLayoutEffect(function () {
18074
- latestSelector.current = selector;
18075
- latestStoreState.current = storeState;
18076
- latestSelectedState.current = selectedState;
18077
- latestSubscriptionCallbackError.current = undefined;
18078
- });
18079
- useIsomorphicLayoutEffect(function () {
18080
- function checkForUpdates() {
18081
- try {
18082
- var _newSelectedState = latestSelector.current(store.getState());
18083
 
18084
- if (equalityFn(_newSelectedState, latestSelectedState.current)) {
18085
- return;
18086
- }
18087
 
18088
- latestSelectedState.current = _newSelectedState;
18089
- } catch (err) {
18090
- // we ignore all errors here, since when the component
18091
- // is re-rendered, the selectors are called again, and
18092
- // will throw again, if neither props nor store state
18093
- // changed
18094
- latestSubscriptionCallbackError.current = err;
18095
- }
18096
 
18097
- forceRender();
 
 
 
 
 
 
18098
  }
18099
 
18100
- subscription.onStateChange = checkForUpdates;
18101
- subscription.trySubscribe();
18102
- checkForUpdates();
18103
- return function () {
18104
- return subscription.tryUnsubscribe();
18105
- };
18106
- }, [store, subscription]);
18107
- return selectedState;
18108
- }
18109
- /**
18110
- * Hook factory, which creates a `useSelector` hook bound to a given context.
18111
- *
18112
- * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
18113
- * @returns {Function} A `useSelector` hook bound to the specified context.
18114
- */
18115
 
 
 
 
 
 
 
 
 
 
18116
 
18117
- function createSelectorHook(context) {
18118
- if (context === void 0) {
18119
- context = Context_ReactReduxContext;
18120
- }
18121
 
18122
- var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
18123
- return (0,react.useContext)(context);
18124
- };
18125
- return function useSelector(selector, equalityFn) {
18126
- if (equalityFn === void 0) {
18127
- equalityFn = refEquality;
18128
- }
18129
 
18130
- if (false) {}
 
 
 
 
 
 
 
18131
 
18132
- var _useReduxContext = useReduxContext(),
18133
- store = _useReduxContext.store,
18134
- contextSub = _useReduxContext.subscription;
 
 
18135
 
18136
- var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
18137
- (0,react.useDebugValue)(selectedState);
18138
- return selectedState;
 
 
 
 
 
18139
  };
18140
- }
18141
- /**
18142
- * A hook to access the redux store's state. This hook takes a selector function
18143
- * as an argument. The selector is called with the store state.
18144
- *
18145
- * This hook takes an optional equality comparison function as the second parameter
18146
- * that allows you to customize the way the selected state is compared to determine
18147
- * whether the component needs to be re-rendered.
18148
- *
18149
- * @param {Function} selector the selector function
18150
- * @param {Function=} equalityFn the function that will be used to determine equality
18151
- *
18152
- * @returns {any} the selected state
18153
- *
18154
- * @example
18155
- *
18156
- * import React from 'react'
18157
- * import { useSelector } from 'react-redux'
18158
- *
18159
- * export const CounterComponent = () => {
18160
- * const counter = useSelector(state => state.counter)
18161
- * return <div>{counter}</div>
18162
- * }
18163
- */
18164
 
18165
- var useSelector = /*#__PURE__*/createSelectorHook();
18166
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/reactBatchedUpdates.js
18167
- /* eslint-disable import/no-unresolved */
 
 
 
18168
 
18169
- ;// CONCATENATED MODULE: ./node_modules/react-redux/es/index.js
 
 
 
 
 
 
18170
 
 
 
18171
 
 
18172
 
 
 
 
 
 
 
 
18173
 
 
 
 
18174
 
 
 
18175
 
 
 
 
 
18176
 
 
 
 
 
18177
 
 
 
 
 
18178
 
 
 
18179
 
18180
- setBatch(react_dom.unstable_batchedUpdates);
 
 
 
18181
 
18182
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/PublishButton/PublishButton.js
18183
- function PublishButton_slicedToArray(arr, i) { return PublishButton_arrayWithHoles(arr) || PublishButton_iterableToArrayLimit(arr, i) || PublishButton_unsupportedIterableToArray(arr, i) || PublishButton_nonIterableRest(); }
18184
 
18185
- function PublishButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
18186
 
18187
- function PublishButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PublishButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PublishButton_arrayLikeToArray(o, minLen); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18188
 
18189
- function PublishButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
 
 
 
 
 
 
 
18190
 
18191
- function PublishButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
18192
 
18193
- function PublishButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
18194
 
 
18195
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18196
 
18197
 
18198
 
 
 
18199
 
 
18200
 
18201
- function PublishButton(_ref) {
18202
- var hasChanges = _ref.hasChanges;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18203
 
18204
- var _useState = (0,react.useState)(false),
18205
- _useState2 = PublishButton_slicedToArray(_useState, 2),
18206
- isPublishing = _useState2[0],
18207
- setIsPublishing = _useState2[1];
18208
 
18209
- var _useState3 = (0,react.useState)(false),
18210
- _useState4 = PublishButton_slicedToArray(_useState3, 2),
18211
- isPublished = _useState4[0],
18212
- setIsPublished = _useState4[1];
18213
 
18214
- function text() {
18215
- if (isPublishing) {
18216
- return translate_translate("common.publishing");
18217
- } else if (isPublished) {
18218
- return translate_translate("common.published");
18219
- } else {
18220
- return translate_translate("common.publish");
18221
- }
18222
- }
18223
- /**
18224
- * Publish buttons
18225
- */
18226
 
18227
 
18228
- function publish() {
18229
- setIsPublishing(true);
18230
- apiRequest("/publish", {
18231
- method: "POST",
18232
- data: {
18233
- nonce: buttonizer_admin.nonce
18234
- }
18235
- }).then(function (_ref2) {
18236
- var status = _ref2.status,
18237
- message = _ref2.message;
18238
- // Done publishing
18239
- setIsPublishing(false); // Error?
18240
 
18241
- if (status === "error") {
18242
- app.loader.hide();
18243
- app.error({
18244
- message: message
18245
- });
18246
- return;
18247
- }
18248
 
18249
- app.setHasChanges(false); // Published!
18250
 
18251
- setIsPublished(true); // Hide published message
18252
 
18253
- setTimeout(function () {
18254
- setIsPublished(false);
18255
- }, 3000);
18256
- })["catch"](function (_ref3) {
18257
- var code = _ref3.code;
18258
- setIsPublishing(false); // Lost internet connection
18259
 
18260
- if (code === 0) {
18261
- // app.showDialog(
18262
- // ConfirmDialog.create({
18263
- // title: "Lost internet",
18264
- // buttons: [
18265
- // {
18266
- // label: window.Buttonizer.translate("modal.close"),
18267
- // value: "close",
18268
- // },
18269
- // ],
18270
- // children: (
18271
- // <>
18272
- // <p>
18273
- // You've lost your internet connection. Please try again when
18274
- // you have your internet back!
18275
- // </p>
18276
- // </>
18277
- // ),
18278
- // })
18279
- // );
18280
- return;
18281
- } // app.showDialog(
18282
- // ConfirmDialog.create({
18283
- // title: "Something went wrong",
18284
- // buttons: [
18285
- // {
18286
- // label: window.Buttonizer.translate("modal.close"),
18287
- // value: "close",
18288
- // },
18289
- // ],
18290
- // children: (
18291
- // <>
18292
- // <p>Seems like something went wrong.</p>
18293
- // </>
18294
- // ),
18295
- // })
18296
- // );
18297
 
18298
- });
 
 
 
 
 
 
 
18299
  }
 
 
 
 
 
 
18300
 
18301
- return /*#__PURE__*/react.createElement(esm_Button_Button, {
18302
- onClick: function onClick() {
18303
- return publish();
18304
- },
18305
- disabled: isPublishing || hasChanges === false,
18306
- variant: "contained",
18307
- color: "primary",
18308
- "data-testid": "publish-button",
18309
- className: "MuiButton-Publish"
18310
- }, text());
18311
- }
 
 
 
 
 
 
18312
 
18313
- /* harmony default export */ var PublishButton_PublishButton = (connect(function (state) {
18314
- return {
18315
- hasChanges: state.misc.hasChanges
18316
- };
18317
- })(PublishButton));
18318
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
18319
- function getBoundingClientRect(element) {
18320
- var rect = element.getBoundingClientRect();
18321
- return {
18322
- width: rect.width,
18323
- height: rect.height,
18324
- top: rect.top,
18325
- right: rect.right,
18326
- bottom: rect.bottom,
18327
- left: rect.left,
18328
- x: rect.left,
18329
- y: rect.top
18330
- };
18331
- }
18332
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
18333
- function getWindow(node) {
18334
- if (node == null) {
18335
- return window;
18336
- }
18337
 
18338
- if (node.toString() !== '[object Window]') {
18339
- var ownerDocument = node.ownerDocument;
18340
- return ownerDocument ? ownerDocument.defaultView || window : window;
18341
- }
 
 
 
18342
 
18343
- return node;
18344
- }
18345
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
18346
 
18347
- function getWindowScroll(node) {
18348
- var win = getWindow(node);
18349
- var scrollLeft = win.pageXOffset;
18350
- var scrollTop = win.pageYOffset;
18351
- return {
18352
- scrollLeft: scrollLeft,
18353
- scrollTop: scrollTop
18354
  };
18355
- }
18356
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
18357
 
 
 
 
18358
 
18359
- function instanceOf_isElement(node) {
18360
- var OwnElement = getWindow(node).Element;
18361
- return node instanceof OwnElement || node instanceof Element;
18362
- }
 
 
 
 
18363
 
18364
- function isHTMLElement(node) {
18365
- var OwnElement = getWindow(node).HTMLElement;
18366
- return node instanceof OwnElement || node instanceof HTMLElement;
18367
- }
18368
 
18369
- function isShadowRoot(node) {
18370
- // IE 11 has no ShadowRoot
18371
- if (typeof ShadowRoot === 'undefined') {
18372
- return false;
18373
- }
 
18374
 
18375
- var OwnElement = getWindow(node).ShadowRoot;
18376
- return node instanceof OwnElement || node instanceof ShadowRoot;
18377
- }
 
 
 
 
18378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18379
 
18380
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
18381
- function getHTMLElementScroll(element) {
18382
- return {
18383
- scrollLeft: element.scrollLeft,
18384
- scrollTop: element.scrollTop
18385
- };
18386
- }
18387
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
18388
 
 
 
 
 
 
 
18389
 
 
 
 
 
 
 
 
 
 
18390
 
 
 
 
 
 
18391
 
18392
- function getNodeScroll(node) {
18393
- if (node === getWindow(node) || !isHTMLElement(node)) {
18394
- return getWindowScroll(node);
18395
- } else {
18396
- return getHTMLElementScroll(node);
18397
- }
18398
- }
18399
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
18400
- function getNodeName(element) {
18401
- return element ? (element.nodeName || '').toLowerCase() : null;
18402
- }
18403
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
18404
 
18405
- function getDocumentElement(element) {
18406
- // $FlowFixMe[incompatible-return]: assume body is always available
18407
- return ((instanceOf_isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
18408
- element.document) || window.document).documentElement;
18409
- }
18410
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
18411
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18412
 
18413
 
18414
- function getWindowScrollBarX(element) {
18415
- // If <html> has a CSS width greater than the viewport, then this will be
18416
- // incorrect for RTL.
18417
- // Popper 1 is broken in this case and never had a bug report so let's assume
18418
- // it's not an issue. I don't think anyone ever specifies width on <html>
18419
- // anyway.
18420
- // Browsers where the left scrollbar doesn't cause an issue report `0` for
18421
- // this (e.g. Edge 2019, IE11, Safari)
18422
- return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
18423
- }
18424
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
18425
 
18426
- function getComputedStyle_getComputedStyle(element) {
18427
- return getWindow(element).getComputedStyle(element);
18428
- }
18429
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
18430
 
18431
- function isScrollParent(element) {
18432
- // Firefox wants us to check `-x` and `-y` variations as well
18433
- var _getComputedStyle = getComputedStyle_getComputedStyle(element),
18434
- overflow = _getComputedStyle.overflow,
18435
- overflowX = _getComputedStyle.overflowX,
18436
- overflowY = _getComputedStyle.overflowY;
18437
 
18438
- return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
18439
- }
18440
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
18441
 
18442
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18443
 
 
 
 
 
18444
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18445
 
 
 
 
 
 
 
 
 
 
 
18446
 
18447
- // Returns the composite rect of an element relative to its offsetParent.
18448
- // Composite means it takes into account transforms as well as layout.
18449
 
18450
- function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
18451
- if (isFixed === void 0) {
18452
- isFixed = false;
18453
- }
18454
 
18455
- var documentElement = getDocumentElement(offsetParent);
18456
- var rect = getBoundingClientRect(elementOrVirtualElement);
18457
- var isOffsetParentAnElement = isHTMLElement(offsetParent);
18458
- var scroll = {
18459
- scrollLeft: 0,
18460
- scrollTop: 0
18461
- };
18462
- var offsets = {
18463
- x: 0,
18464
- y: 0
18465
- };
18466
 
18467
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
18468
- if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
18469
- isScrollParent(documentElement)) {
18470
- scroll = getNodeScroll(offsetParent);
18471
- }
18472
 
18473
- if (isHTMLElement(offsetParent)) {
18474
- offsets = getBoundingClientRect(offsetParent);
18475
- offsets.x += offsetParent.clientLeft;
18476
- offsets.y += offsetParent.clientTop;
18477
- } else if (documentElement) {
18478
- offsets.x = getWindowScrollBarX(documentElement);
18479
- }
18480
- }
18481
 
18482
- return {
18483
- x: rect.left + scroll.scrollLeft - offsets.x,
18484
- y: rect.top + scroll.scrollTop - offsets.y,
18485
- width: rect.width,
18486
- height: rect.height
18487
- };
18488
- }
18489
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
18490
- // Returns the layout rect of an element relative to its offsetParent. Layout
18491
- // means it doesn't take into account transforms.
18492
 
18493
- function getLayoutRect(element) {
18494
- var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
18495
- // Fixes https://github.com/popperjs/popper-core/issues/1223
18496
 
18497
- var width = element.offsetWidth;
18498
- var height = element.offsetHeight;
18499
 
18500
- if (Math.abs(clientRect.width - width) <= 1) {
18501
- width = clientRect.width;
18502
- }
18503
 
18504
- if (Math.abs(clientRect.height - height) <= 1) {
18505
- height = clientRect.height;
18506
- }
18507
 
18508
- return {
18509
- x: element.offsetLeft,
18510
- y: element.offsetTop,
18511
- width: width,
18512
- height: height
18513
- };
18514
- }
18515
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
18516
 
18517
 
18518
 
18519
- function getParentNode(element) {
18520
- if (getNodeName(element) === 'html') {
18521
- return element;
18522
- }
18523
 
18524
- return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
18525
- // $FlowFixMe[incompatible-return]
18526
- // $FlowFixMe[prop-missing]
18527
- element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
18528
- element.parentNode || ( // DOM Element detected
18529
- isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
18530
- // $FlowFixMe[incompatible-call]: HTMLElement is a Node
18531
- getDocumentElement(element) // fallback
18532
 
18533
- );
 
 
 
 
 
 
 
 
18534
  }
18535
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
 
 
 
 
 
 
 
 
 
18536
 
 
 
18537
 
 
 
 
 
 
18538
 
18539
 
18540
- function getScrollParent(node) {
18541
- if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
18542
- // $FlowFixMe[incompatible-return]: assume body is always available
18543
- return node.ownerDocument.body;
18544
- }
18545
 
18546
- if (isHTMLElement(node) && isScrollParent(node)) {
18547
- return node;
 
18548
  }
18549
 
18550
- return getScrollParent(getParentNode(node));
18551
  }
18552
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
18553
 
 
 
 
18554
 
 
 
 
18555
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18556
 
18557
- /*
18558
- given a DOM element, return the list of all scroll parents, up the list of ancesors
18559
- until we get to the top window object. This list is what we attach scroll listeners
18560
- to, because if any of these parent elements scroll, we'll need to re-calculate the
18561
- reference element's position.
18562
- */
18563
 
18564
- function listScrollParents(element, list) {
18565
- var _element$ownerDocumen;
 
18566
 
18567
- if (list === void 0) {
18568
- list = [];
18569
- }
18570
 
18571
- var scrollParent = getScrollParent(element);
18572
- var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
18573
- var win = getWindow(scrollParent);
18574
- var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
18575
- var updatedList = list.concat(target);
18576
- return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
18577
- updatedList.concat(listScrollParents(getParentNode(target)));
18578
- }
18579
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
18580
 
18581
- function isTableElement(element) {
18582
- return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
18583
- }
18584
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
18585
 
 
18586
 
 
 
 
 
 
 
18587
 
 
 
18588
 
 
 
18589
 
 
 
 
 
18590
 
18591
 
18592
- function getTrueOffsetParent(element) {
18593
- if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
18594
- getComputedStyle_getComputedStyle(element).position === 'fixed') {
18595
- return null;
18596
- }
18597
 
18598
- return element.offsetParent;
18599
- } // `.offsetParent` reports `null` for fixed elements, while absolute elements
18600
- // return the containing block
18601
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18602
 
18603
- function getContainingBlock(element) {
18604
- var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
18605
- var isIE = navigator.userAgent.indexOf('Trident') !== -1;
18606
 
18607
- if (isIE && isHTMLElement(element)) {
18608
- // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
18609
- var elementCss = getComputedStyle_getComputedStyle(element);
 
 
 
 
18610
 
18611
- if (elementCss.position === 'fixed') {
18612
- return null;
18613
- }
18614
- }
18615
 
18616
- var currentNode = getParentNode(element);
18617
 
18618
- while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
18619
- var css = getComputedStyle_getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
18620
- // create a containing block.
18621
- // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
18622
 
18623
- if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
18624
- return currentNode;
18625
- } else {
18626
- currentNode = currentNode.parentNode;
18627
- }
18628
- }
18629
 
18630
- return null;
18631
- } // Gets the closest ancestor positioned element. Handles some edge cases,
18632
- // such as table ancestors and cross browser bugs.
18633
 
 
 
 
 
 
 
18634
 
18635
- function getOffsetParent(element) {
18636
- var window = getWindow(element);
18637
- var offsetParent = getTrueOffsetParent(element);
18638
 
18639
- while (offsetParent && isTableElement(offsetParent) && getComputedStyle_getComputedStyle(offsetParent).position === 'static') {
18640
- offsetParent = getTrueOffsetParent(offsetParent);
18641
- }
18642
 
18643
- if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle_getComputedStyle(offsetParent).position === 'static')) {
18644
- return window;
18645
- }
18646
 
18647
- return offsetParent || getContainingBlock(element) || window;
18648
- }
18649
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/enums.js
18650
- var enums_top = 'top';
18651
- var bottom = 'bottom';
18652
- var right = 'right';
18653
- var left = 'left';
18654
- var auto = 'auto';
18655
- var basePlacements = [enums_top, bottom, right, left];
18656
- var start = 'start';
18657
- var end = 'end';
18658
- var clippingParents = 'clippingParents';
18659
- var viewport = 'viewport';
18660
- var popper = 'popper';
18661
- var reference = 'reference';
18662
- var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
18663
- return acc.concat([placement + "-" + start, placement + "-" + end]);
18664
- }, []);
18665
- var enums_placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
18666
- return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
18667
- }, []); // modifiers that need to read the DOM
18668
 
18669
- var beforeRead = 'beforeRead';
18670
- var read = 'read';
18671
- var afterRead = 'afterRead'; // pure-logic modifiers
 
18672
 
18673
- var beforeMain = 'beforeMain';
18674
- var main = 'main';
18675
- var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
18676
 
18677
- var beforeWrite = 'beforeWrite';
18678
- var write = 'write';
18679
- var afterWrite = 'afterWrite';
18680
- var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
18681
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/orderModifiers.js
18682
- // source: https://stackoverflow.com/questions/49875255
 
 
18683
 
18684
- function order(modifiers) {
18685
- var map = new Map();
18686
- var visited = new Set();
18687
- var result = [];
18688
- modifiers.forEach(function (modifier) {
18689
- map.set(modifier.name, modifier);
18690
- }); // On visiting object, check for its dependencies and visit them recursively
18691
 
18692
- function sort(modifier) {
18693
- visited.add(modifier.name);
18694
- var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
18695
- requires.forEach(function (dep) {
18696
- if (!visited.has(dep)) {
18697
- var depModifier = map.get(dep);
18698
 
18699
- if (depModifier) {
18700
- sort(depModifier);
18701
- }
18702
- }
18703
- });
18704
- result.push(modifier);
18705
- }
18706
 
18707
- modifiers.forEach(function (modifier) {
18708
- if (!visited.has(modifier.name)) {
18709
- // check for visited object
18710
- sort(modifier);
18711
  }
18712
- });
18713
- return result;
18714
- }
18715
 
18716
- function orderModifiers(modifiers) {
18717
- // order based on dependencies
18718
- var orderedModifiers = order(modifiers); // order based on phase
18719
 
18720
- return modifierPhases.reduce(function (acc, phase) {
18721
- return acc.concat(orderedModifiers.filter(function (modifier) {
18722
- return modifier.phase === phase;
18723
- }));
18724
- }, []);
18725
- }
18726
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/debounce.js
18727
- function debounce(fn) {
18728
- var pending;
18729
- return function () {
18730
- if (!pending) {
18731
- pending = new Promise(function (resolve) {
18732
- Promise.resolve().then(function () {
18733
- pending = undefined;
18734
- resolve(fn());
18735
- });
18736
- });
18737
  }
18738
 
18739
- return pending;
18740
  };
18741
- }
18742
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergeByName.js
18743
- function mergeByName(modifiers) {
18744
- var merged = modifiers.reduce(function (merged, current) {
18745
- var existing = merged[current.name];
18746
- merged[current.name] = existing ? Object.assign({}, existing, current, {
18747
- options: Object.assign({}, existing.options, current.options),
18748
- data: Object.assign({}, existing.data, current.data)
18749
- }) : current;
18750
- return merged;
18751
- }, {}); // IE11 does not support Object.values
18752
 
18753
- return Object.keys(merged).map(function (key) {
18754
- return merged[key];
 
 
 
 
 
 
18755
  });
18756
- }
18757
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/createPopper.js
 
 
 
 
 
 
 
 
 
18758
 
 
 
 
 
 
 
 
 
 
 
18759
 
 
 
 
 
 
18760
 
18761
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18762
 
 
 
 
18763
 
 
18764
 
 
18765
 
 
 
18766
 
18767
 
18768
 
18769
 
18770
 
18771
 
18772
- var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
18773
- var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
18774
- var DEFAULT_OPTIONS = {
18775
- placement: 'bottom',
18776
- modifiers: [],
18777
- strategy: 'absolute'
18778
- };
18779
 
18780
- function areValidElements() {
18781
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18782
- args[_key] = arguments[_key];
18783
- }
 
 
 
 
18784
 
18785
- return !args.some(function (element) {
18786
- return !(element && typeof element.getBoundingClientRect === 'function');
18787
- });
18788
- }
 
18789
 
18790
- function popperGenerator(generatorOptions) {
18791
- if (generatorOptions === void 0) {
18792
- generatorOptions = {};
18793
- }
18794
 
18795
- var _generatorOptions = generatorOptions,
18796
- _generatorOptions$def = _generatorOptions.defaultModifiers,
18797
- defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
18798
- _generatorOptions$def2 = _generatorOptions.defaultOptions,
18799
- defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
18800
- return function createPopper(reference, popper, options) {
18801
- if (options === void 0) {
18802
- options = defaultOptions;
18803
- }
 
 
 
 
 
 
 
 
18804
 
18805
- var state = {
18806
- placement: 'bottom',
18807
- orderedModifiers: [],
18808
- options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
18809
- modifiersData: {},
18810
- elements: {
18811
- reference: reference,
18812
- popper: popper
18813
- },
18814
- attributes: {},
18815
- styles: {}
18816
  };
18817
- var effectCleanupFns = [];
18818
- var isDestroyed = false;
18819
- var instance = {
18820
- state: state,
18821
- setOptions: function setOptions(options) {
18822
- cleanupModifierEffects();
18823
- state.options = Object.assign({}, defaultOptions, state.options, options);
18824
- state.scrollParents = {
18825
- reference: instanceOf_isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
18826
- popper: listScrollParents(popper)
18827
- }; // Orders the modifiers based on their dependencies and `phase`
18828
- // properties
 
18829
 
18830
- var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
18831
 
18832
- state.orderedModifiers = orderedModifiers.filter(function (m) {
18833
- return m.enabled;
18834
- }); // Validate the provided modifiers so that the consumer will get warned
18835
- // if one of the modifiers is invalid for any reason
18836
 
18837
- if (false) { var _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft, flipModifier, modifiers; }
18838
 
18839
- runModifierEffects();
18840
- return instance.update();
18841
- },
18842
- // Sync update – it will always be executed, even if not necessary. This
18843
- // is useful for low frequency updates where sync behavior simplifies the
18844
- // logic.
18845
- // For high frequency updates (e.g. `resize` and `scroll` events), always
18846
- // prefer the async Popper#update method
18847
- forceUpdate: function forceUpdate() {
18848
- if (isDestroyed) {
18849
- return;
18850
- }
18851
 
18852
- var _state$elements = state.elements,
18853
- reference = _state$elements.reference,
18854
- popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
18855
- // anymore
18856
 
18857
- if (!areValidElements(reference, popper)) {
18858
- if (false) {}
18859
 
18860
- return;
18861
- } // Store the reference and popper rects to be read by modifiers
18862
 
18863
 
18864
- state.rects = {
18865
- reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
18866
- popper: getLayoutRect(popper)
18867
- }; // Modifiers have the ability to reset the current update cycle. The
18868
- // most common use case for this is the `flip` modifier changing the
18869
- // placement, which then needs to re-run all the modifiers, because the
18870
- // logic was previously ran for the previous placement and is therefore
18871
- // stale/incorrect
18872
 
18873
- state.reset = false;
18874
- state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
18875
- // is filled with the initial data specified by the modifier. This means
18876
- // it doesn't persist and is fresh on each update.
18877
- // To ensure persistent data, use `${name}#persistent`
18878
 
18879
- state.orderedModifiers.forEach(function (modifier) {
18880
- return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
18881
- });
18882
- var __debug_loops__ = 0;
18883
 
18884
- for (var index = 0; index < state.orderedModifiers.length; index++) {
18885
- if (false) {}
 
18886
 
18887
- if (state.reset === true) {
18888
- state.reset = false;
18889
- index = -1;
18890
- continue;
18891
- }
18892
 
18893
- var _state$orderedModifie = state.orderedModifiers[index],
18894
- fn = _state$orderedModifie.fn,
18895
- _state$orderedModifie2 = _state$orderedModifie.options,
18896
- _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
18897
- name = _state$orderedModifie.name;
18898
 
18899
- if (typeof fn === 'function') {
18900
- state = fn({
18901
- state: state,
18902
- options: _options,
18903
- name: name,
18904
- instance: instance
18905
- }) || state;
18906
- }
18907
- }
18908
- },
18909
- // Async and optimistically optimized update – it will not be executed if
18910
- // not necessary (debounced to run at most once-per-tick)
18911
- update: debounce(function () {
18912
- return new Promise(function (resolve) {
18913
- instance.forceUpdate();
18914
- resolve(state);
18915
- });
18916
- }),
18917
- destroy: function destroy() {
18918
- cleanupModifierEffects();
18919
- isDestroyed = true;
18920
- }
18921
- };
18922
 
18923
- if (!areValidElements(reference, popper)) {
18924
- if (false) {}
18925
 
18926
- return instance;
18927
- }
 
 
18928
 
18929
- instance.setOptions(options).then(function (state) {
18930
- if (!isDestroyed && options.onFirstUpdate) {
18931
- options.onFirstUpdate(state);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18932
  }
18933
- }); // Modifiers have the ability to execute arbitrary code before the first
18934
- // update cycle runs. They will be executed in the same order as the update
18935
- // cycle. This is useful when a modifier adds some persistent data that
18936
- // other modifiers need to use, but the modifier is run after the dependent
18937
- // one.
18938
 
18939
- function runModifierEffects() {
18940
- state.orderedModifiers.forEach(function (_ref3) {
18941
- var name = _ref3.name,
18942
- _ref3$options = _ref3.options,
18943
- options = _ref3$options === void 0 ? {} : _ref3$options,
18944
- effect = _ref3.effect;
18945
 
18946
- if (typeof effect === 'function') {
18947
- var cleanupFn = effect({
18948
- state: state,
18949
- name: name,
18950
- instance: instance,
18951
- options: options
18952
- });
18953
 
18954
- var noopFn = function noopFn() {};
18955
 
18956
- effectCleanupFns.push(cleanupFn || noopFn);
18957
- }
18958
- });
 
 
 
18959
  }
 
 
18960
 
18961
- function cleanupModifierEffects() {
18962
- effectCleanupFns.forEach(function (fn) {
18963
- return fn();
18964
- });
18965
- effectCleanupFns = [];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18966
  }
 
 
 
 
 
 
 
18967
 
18968
- return instance;
18969
- };
18970
- }
18971
- var createPopper = /*#__PURE__*/(/* unused pure expression or super */ null && (popperGenerator())); // eslint-disable-next-line import/no-unused-modules
 
18972
 
 
 
 
 
18973
 
18974
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js
18975
- // eslint-disable-next-line import/no-unused-modules
 
 
 
 
 
 
 
18976
 
18977
- var passive = {
18978
- passive: true
18979
- };
18980
 
18981
- function effect(_ref) {
18982
- var state = _ref.state,
18983
- instance = _ref.instance,
18984
- options = _ref.options;
18985
- var _options$scroll = options.scroll,
18986
- scroll = _options$scroll === void 0 ? true : _options$scroll,
18987
- _options$resize = options.resize,
18988
- resize = _options$resize === void 0 ? true : _options$resize;
18989
- var window = getWindow(state.elements.popper);
18990
- var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
 
 
 
 
 
 
 
18991
 
18992
- if (scroll) {
18993
- scrollParents.forEach(function (scrollParent) {
18994
- scrollParent.addEventListener('scroll', instance.update, passive);
18995
- });
18996
- }
 
 
 
 
 
18997
 
18998
- if (resize) {
18999
- window.addEventListener('resize', instance.update, passive);
19000
- }
19001
 
19002
- return function () {
19003
- if (scroll) {
19004
- scrollParents.forEach(function (scrollParent) {
19005
- scrollParent.removeEventListener('scroll', instance.update, passive);
19006
- });
19007
  }
19008
 
19009
- if (resize) {
19010
- window.removeEventListener('resize', instance.update, passive);
19011
  }
19012
  };
19013
- } // eslint-disable-next-line import/no-unused-modules
19014
 
 
 
 
 
 
 
 
 
 
 
19015
 
19016
- /* harmony default export */ var eventListeners = ({
19017
- name: 'eventListeners',
19018
- enabled: true,
19019
- phase: 'write',
19020
- fn: function fn() {},
19021
- effect: effect,
19022
- data: {}
19023
- });
19024
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js
19025
 
19026
- function getBasePlacement(placement) {
19027
- return placement.split('-')[0];
19028
- }
19029
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getVariation.js
19030
- function getVariation(placement) {
19031
- return placement.split('-')[1];
19032
- }
19033
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
19034
- function getMainAxisFromPlacement(placement) {
19035
- return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
19036
- }
19037
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeOffsets.js
19038
 
 
19039
 
 
 
 
 
 
 
 
 
 
 
 
19040
 
 
 
 
19041
 
19042
- function computeOffsets(_ref) {
19043
- var reference = _ref.reference,
19044
- element = _ref.element,
19045
- placement = _ref.placement;
19046
- var basePlacement = placement ? getBasePlacement(placement) : null;
19047
- var variation = placement ? getVariation(placement) : null;
19048
- var commonX = reference.x + reference.width / 2 - element.width / 2;
19049
- var commonY = reference.y + reference.height / 2 - element.height / 2;
19050
- var offsets;
19051
 
19052
- switch (basePlacement) {
19053
- case enums_top:
19054
- offsets = {
19055
- x: commonX,
19056
- y: reference.y - element.height
19057
- };
19058
- break;
19059
 
19060
- case bottom:
19061
- offsets = {
19062
- x: commonX,
19063
- y: reference.y + reference.height
19064
- };
19065
- break;
 
 
 
 
 
 
 
19066
 
19067
- case right:
19068
- offsets = {
19069
- x: reference.x + reference.width,
19070
- y: commonY
19071
- };
19072
- break;
19073
 
19074
- case left:
19075
- offsets = {
19076
- x: reference.x - element.width,
19077
- y: commonY
19078
- };
19079
- break;
19080
 
19081
- default:
19082
- offsets = {
19083
- x: reference.x,
19084
- y: reference.y
19085
- };
19086
- }
19087
 
19088
- var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
19089
 
19090
- if (mainAxis != null) {
19091
- var len = mainAxis === 'y' ? 'height' : 'width';
19092
 
19093
- switch (variation) {
19094
- case start:
19095
- offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
19096
- break;
19097
 
19098
- case end:
19099
- offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
19100
- break;
19101
 
19102
- default:
19103
- }
19104
- }
19105
 
19106
- return offsets;
19107
- }
19108
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
19109
 
19110
 
19111
- function popperOffsets(_ref) {
19112
- var state = _ref.state,
19113
- name = _ref.name;
19114
- // Offsets are the actual position the popper needs to have to be
19115
- // properly positioned near its reference element
19116
- // This is the most basic placement, and will be adjusted by
19117
- // the modifiers in the next step
19118
- state.modifiersData[name] = computeOffsets({
19119
- reference: state.rects.reference,
19120
- element: state.rects.popper,
19121
- strategy: 'absolute',
19122
- placement: state.placement
19123
- });
19124
- } // eslint-disable-next-line import/no-unused-modules
19125
-
19126
-
19127
- /* harmony default export */ var modifiers_popperOffsets = ({
19128
- name: 'popperOffsets',
19129
- enabled: true,
19130
- phase: 'read',
19131
- fn: popperOffsets,
19132
- data: {}
19133
- });
19134
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/math.js
19135
- var math_max = Math.max;
19136
- var math_min = Math.min;
19137
- var round = Math.round;
19138
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js
19139
-
19140
 
19141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19142
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19143
 
 
 
 
 
19144
 
19145
- // eslint-disable-next-line import/no-unused-modules
 
 
19146
 
19147
- var unsetSides = {
19148
- top: 'auto',
19149
- right: 'auto',
19150
- bottom: 'auto',
19151
- left: 'auto'
19152
- }; // Round the offsets to the nearest suitable subpixel based on the DPR.
19153
- // Zooming can change the DPR, but it seems to report a value that will
19154
- // cleanly divide the values into the appropriate subpixels.
19155
 
19156
- function roundOffsetsByDPR(_ref) {
19157
- var x = _ref.x,
19158
- y = _ref.y;
19159
- var win = window;
19160
- var dpr = win.devicePixelRatio || 1;
19161
- return {
19162
- x: round(round(x * dpr) / dpr) || 0,
19163
- y: round(round(y * dpr) / dpr) || 0
19164
  };
19165
- }
19166
 
19167
- function mapToStyles(_ref2) {
19168
- var _Object$assign2;
 
19169
 
19170
- var popper = _ref2.popper,
19171
- popperRect = _ref2.popperRect,
19172
- placement = _ref2.placement,
19173
- offsets = _ref2.offsets,
19174
- position = _ref2.position,
19175
- gpuAcceleration = _ref2.gpuAcceleration,
19176
- adaptive = _ref2.adaptive,
19177
- roundOffsets = _ref2.roundOffsets;
 
 
19178
 
19179
- var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
19180
- _ref3$x = _ref3.x,
19181
- x = _ref3$x === void 0 ? 0 : _ref3$x,
19182
- _ref3$y = _ref3.y,
19183
- y = _ref3$y === void 0 ? 0 : _ref3$y;
19184
 
19185
- var hasX = offsets.hasOwnProperty('x');
19186
- var hasY = offsets.hasOwnProperty('y');
19187
- var sideX = left;
19188
- var sideY = enums_top;
19189
- var win = window;
19190
 
19191
- if (adaptive) {
19192
- var offsetParent = getOffsetParent(popper);
19193
- var heightProp = 'clientHeight';
19194
- var widthProp = 'clientWidth';
19195
 
19196
- if (offsetParent === getWindow(popper)) {
19197
- offsetParent = getDocumentElement(popper);
19198
 
19199
- if (getComputedStyle_getComputedStyle(offsetParent).position !== 'static') {
19200
- heightProp = 'scrollHeight';
19201
- widthProp = 'scrollWidth';
 
 
19202
  }
19203
- } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
 
 
 
 
 
 
 
 
 
 
 
19204
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19205
 
19206
- offsetParent = offsetParent;
19207
 
19208
- if (placement === enums_top) {
19209
- sideY = bottom; // $FlowFixMe[prop-missing]
19210
 
19211
- y -= offsetParent[heightProp] - popperRect.height;
19212
- y *= gpuAcceleration ? 1 : -1;
19213
- }
19214
 
19215
- if (placement === left) {
19216
- sideX = right; // $FlowFixMe[prop-missing]
19217
 
19218
- x -= offsetParent[widthProp] - popperRect.width;
19219
- x *= gpuAcceleration ? 1 : -1;
19220
- }
19221
- }
19222
 
19223
- var commonStyles = Object.assign({
19224
- position: position
19225
- }, adaptive && unsetSides);
19226
 
19227
- if (gpuAcceleration) {
19228
- var _Object$assign;
19229
 
19230
- 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));
19231
- }
19232
 
19233
- return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
19234
- }
19235
 
19236
- function computeStyles(_ref4) {
19237
- var state = _ref4.state,
19238
- options = _ref4.options;
19239
- var _options$gpuAccelerat = options.gpuAcceleration,
19240
- gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
19241
- _options$adaptive = options.adaptive,
19242
- adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
19243
- _options$roundOffsets = options.roundOffsets,
19244
- roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
19245
 
19246
- if (false) { var transitionProperty; }
19247
 
19248
- var commonStyles = {
19249
- placement: getBasePlacement(state.placement),
19250
- popper: state.elements.popper,
19251
- popperRect: state.rects.popper,
19252
- gpuAcceleration: gpuAcceleration
19253
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19254
 
19255
- if (state.modifiersData.popperOffsets != null) {
19256
- state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
19257
- offsets: state.modifiersData.popperOffsets,
19258
- position: state.options.strategy,
19259
- adaptive: adaptive,
19260
- roundOffsets: roundOffsets
19261
- })));
19262
- }
19263
 
19264
- if (state.modifiersData.arrow != null) {
19265
- state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
19266
- offsets: state.modifiersData.arrow,
19267
- position: 'absolute',
19268
- adaptive: false,
19269
- roundOffsets: roundOffsets
19270
- })));
19271
- }
19272
 
19273
- state.attributes.popper = Object.assign({}, state.attributes.popper, {
19274
- 'data-popper-placement': state.placement
19275
- });
19276
- } // eslint-disable-next-line import/no-unused-modules
 
19277
 
 
 
 
 
19278
 
19279
- /* harmony default export */ var modifiers_computeStyles = ({
19280
- name: 'computeStyles',
19281
- enabled: true,
19282
- phase: 'beforeWrite',
19283
- fn: computeStyles,
19284
- data: {}
19285
- });
19286
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js
19287
 
19288
- // This modifier takes the styles prepared by the `computeStyles` modifier
19289
- // and applies them to the HTMLElements such as popper and arrow
 
 
 
19290
 
19291
- function applyStyles(_ref) {
19292
- var state = _ref.state;
19293
- Object.keys(state.elements).forEach(function (name) {
19294
- var style = state.styles[name] || {};
19295
- var attributes = state.attributes[name] || {};
19296
- var element = state.elements[name]; // arrow is optional + virtual elements
19297
 
19298
- if (!isHTMLElement(element) || !getNodeName(element)) {
19299
- return;
19300
- } // Flow doesn't support to extend this property, but it's the most
19301
- // effective way to apply styles to an HTMLElement
19302
- // $FlowFixMe[cannot-write]
 
 
 
 
 
 
 
 
 
19303
 
 
 
 
 
 
 
19304
 
19305
- Object.assign(element.style, style);
19306
- Object.keys(attributes).forEach(function (name) {
19307
- var value = attributes[name];
 
 
 
 
 
19308
 
19309
- if (value === false) {
19310
- element.removeAttribute(name);
19311
- } else {
19312
- element.setAttribute(name, value === true ? '' : value);
19313
- }
19314
- });
19315
- });
19316
- }
 
 
 
 
 
 
 
19317
 
19318
- function applyStyles_effect(_ref2) {
19319
- var state = _ref2.state;
19320
- var initialStyles = {
19321
- popper: {
19322
- position: state.options.strategy,
19323
- left: '0',
19324
- top: '0',
19325
- margin: '0'
19326
- },
19327
- arrow: {
19328
- position: 'absolute'
19329
- },
19330
- reference: {}
 
 
 
 
 
 
19331
  };
19332
- Object.assign(state.elements.popper.style, initialStyles.popper);
19333
- state.styles = initialStyles;
 
 
 
 
 
 
 
 
 
 
 
 
 
19334
 
19335
- if (state.elements.arrow) {
19336
- Object.assign(state.elements.arrow.style, initialStyles.arrow);
19337
- }
 
19338
 
19339
- return function () {
19340
- Object.keys(state.elements).forEach(function (name) {
19341
- var element = state.elements[name];
19342
- var attributes = state.attributes[name] || {};
19343
- var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
19344
 
19345
- var style = styleProperties.reduce(function (style, property) {
19346
- style[property] = '';
19347
- return style;
19348
- }, {}); // arrow is optional + virtual elements
 
19349
 
19350
- if (!isHTMLElement(element) || !getNodeName(element)) {
19351
- return;
19352
- }
19353
 
19354
- Object.assign(element.style, style);
19355
- Object.keys(attributes).forEach(function (attribute) {
19356
- element.removeAttribute(attribute);
19357
- });
19358
- });
19359
- };
19360
- } // eslint-disable-next-line import/no-unused-modules
19361
 
 
 
 
 
 
 
 
19362
 
19363
- /* harmony default export */ var modifiers_applyStyles = ({
19364
- name: 'applyStyles',
19365
- enabled: true,
19366
- phase: 'write',
19367
- fn: applyStyles,
19368
- effect: applyStyles_effect,
19369
- requires: ['computeStyles']
19370
  });
19371
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/offset.js
 
 
 
 
19372
 
19373
 
19374
- function distanceAndSkiddingToXY(placement, rects, offset) {
19375
- var basePlacement = getBasePlacement(placement);
19376
- var invertDistance = [left, enums_top].indexOf(basePlacement) >= 0 ? -1 : 1;
19377
 
19378
- var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
19379
- placement: placement
19380
- })) : offset,
19381
- skidding = _ref[0],
19382
- distance = _ref[1];
19383
 
19384
- skidding = skidding || 0;
19385
- distance = (distance || 0) * invertDistance;
19386
- return [left, right].indexOf(basePlacement) >= 0 ? {
19387
- x: distance,
19388
- y: skidding
19389
- } : {
19390
- x: skidding,
19391
- y: distance
19392
- };
19393
- }
19394
-
19395
- function offset(_ref2) {
19396
- var state = _ref2.state,
19397
- options = _ref2.options,
19398
- name = _ref2.name;
19399
- var _options$offset = options.offset,
19400
- offset = _options$offset === void 0 ? [0, 0] : _options$offset;
19401
- var data = enums_placements.reduce(function (acc, placement) {
19402
- acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
19403
- return acc;
19404
- }, {});
19405
- var _data$state$placement = data[state.placement],
19406
- x = _data$state$placement.x,
19407
- y = _data$state$placement.y;
19408
 
19409
- if (state.modifiersData.popperOffsets != null) {
19410
- state.modifiersData.popperOffsets.x += x;
19411
- state.modifiersData.popperOffsets.y += y;
19412
- }
19413
 
19414
- state.modifiersData[name] = data;
19415
- } // eslint-disable-next-line import/no-unused-modules
19416
 
19417
 
19418
- /* harmony default export */ var modifiers_offset = ({
19419
- name: 'offset',
19420
- enabled: true,
19421
- phase: 'main',
19422
- requires: ['popperOffsets'],
19423
- fn: offset
19424
- });
19425
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
19426
- var hash = {
19427
- left: 'right',
19428
- right: 'left',
19429
- bottom: 'top',
19430
- top: 'bottom'
19431
- };
19432
- function getOppositePlacement(placement) {
19433
- return placement.replace(/left|right|bottom|top/g, function (matched) {
19434
- return hash[matched];
19435
- });
19436
- }
19437
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
19438
- var getOppositeVariationPlacement_hash = {
19439
- start: 'end',
19440
- end: 'start'
19441
- };
19442
- function getOppositeVariationPlacement(placement) {
19443
- return placement.replace(/start|end/g, function (matched) {
19444
- return getOppositeVariationPlacement_hash[matched];
19445
- });
19446
- }
19447
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
19448
 
 
 
19449
 
 
 
19450
 
19451
- function getViewportRect(element) {
19452
- var win = getWindow(element);
19453
- var html = getDocumentElement(element);
19454
- var visualViewport = win.visualViewport;
19455
- var width = html.clientWidth;
19456
- var height = html.clientHeight;
19457
- var x = 0;
19458
- var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
19459
- // can be obscured underneath it.
19460
- // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
19461
- // if it isn't open, so if this isn't available, the popper will be detected
19462
- // to overflow the bottom of the screen too early.
 
 
 
 
 
 
 
19463
 
19464
- if (visualViewport) {
19465
- width = visualViewport.width;
19466
- height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
19467
- // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
19468
- // errors due to floating point numbers, so we need to check precision.
19469
- // Safari returns a number <= 0, usually < -1 when pinch-zoomed
19470
- // Feature detection fails in mobile emulation mode in Chrome.
19471
- // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
19472
- // 0.001
19473
- // Fallback here: "Not Safari" userAgent
19474
 
19475
- if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
19476
- x = visualViewport.offsetLeft;
19477
- y = visualViewport.offsetTop;
19478
- }
19479
  }
19480
 
19481
- return {
19482
- width: width,
19483
- height: height,
19484
- x: x + getWindowScrollBarX(element),
19485
- y: y
19486
- };
19487
- }
19488
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
19489
-
 
 
 
 
 
 
 
 
 
 
19490
 
19491
 
19492
 
19493
- // Gets the entire size of the scrollable document area, even extending outside
19494
- // of the `<html>` and `<body>` rect bounds if horizontally scrollable
19495
 
19496
- function getDocumentRect(element) {
19497
- var _element$ownerDocumen;
19498
 
19499
- var html = getDocumentElement(element);
19500
- var winScroll = getWindowScroll(element);
19501
- var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
19502
- var width = math_max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
19503
- var height = math_max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
19504
- var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
19505
- var y = -winScroll.scrollTop;
19506
 
19507
- if (getComputedStyle_getComputedStyle(body || html).direction === 'rtl') {
19508
- x += math_max(html.clientWidth, body ? body.clientWidth : 0) - width;
19509
- }
19510
 
 
19511
  return {
19512
- width: width,
19513
- height: height,
19514
- x: x,
19515
- y: y
 
 
 
 
 
 
 
 
19516
  };
19517
- }
19518
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/contains.js
 
 
19519
 
19520
- function contains(parent, child) {
19521
- var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
 
 
19522
 
19523
- if (parent.contains(child)) {
19524
- return true;
19525
- } // then fallback to custom implementation with Shadow DOM support
19526
- else if (rootNode && isShadowRoot(rootNode)) {
19527
- var next = child;
 
 
 
 
 
 
19528
 
19529
- do {
19530
- if (next && parent.isSameNode(next)) {
19531
- return true;
19532
- } // $FlowFixMe[prop-missing]: need a better way to handle this...
19533
 
19534
 
19535
- next = next.parentNode || next.host;
19536
- } while (next);
19537
- } // Give up, the result is false
19538
 
19539
 
19540
- return false;
19541
- }
19542
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js
19543
- function rectToClientRect(rect) {
19544
- return Object.assign({}, rect, {
19545
- left: rect.x,
19546
- top: rect.y,
19547
- right: rect.x + rect.width,
19548
- bottom: rect.y + rect.height
19549
- });
19550
- }
19551
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
19552
 
19553
 
 
 
 
 
 
 
19554
 
 
 
19555
 
 
 
19556
 
 
 
19557
 
 
 
19558
 
 
 
19559
 
 
 
19560
 
 
 
19561
 
 
 
19562
 
 
 
19563
 
 
 
19564
 
 
 
19565
 
 
 
19566
 
19567
- function getInnerBoundingClientRect(element) {
19568
- var rect = getBoundingClientRect(element);
19569
- rect.top = rect.top + element.clientTop;
19570
- rect.left = rect.left + element.clientLeft;
19571
- rect.bottom = rect.top + element.clientHeight;
19572
- rect.right = rect.left + element.clientWidth;
19573
- rect.width = element.clientWidth;
19574
- rect.height = element.clientHeight;
19575
- rect.x = rect.left;
19576
- rect.y = rect.top;
19577
- return rect;
19578
- }
19579
 
19580
- function getClientRectFromMixedType(element, clippingParent) {
19581
- return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
19582
- } // A "clipping parent" is an overflowable container with the characteristic of
19583
- // clipping (or hiding) overflowing elements with a position different from
19584
- // `initial`
 
 
19585
 
 
 
 
 
19586
 
19587
- function getClippingParents(element) {
19588
- var clippingParents = listScrollParents(getParentNode(element));
19589
- var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle_getComputedStyle(element).position) >= 0;
19590
- var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
19591
 
19592
- if (!instanceOf_isElement(clipperElement)) {
19593
- return [];
19594
- } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
 
19595
 
 
 
 
 
19596
 
19597
- return clippingParents.filter(function (clippingParent) {
19598
- return instanceOf_isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
19599
- });
19600
- } // Gets the maximum area that the element is visible in due to any number of
19601
- // clipping parents
 
19602
 
 
 
 
 
19603
 
19604
- function getClippingRect(element, boundary, rootBoundary) {
19605
- var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
19606
- var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
19607
- var firstClippingParent = clippingParents[0];
19608
- var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
19609
- var rect = getClientRectFromMixedType(element, clippingParent);
19610
- accRect.top = math_max(rect.top, accRect.top);
19611
- accRect.right = math_min(rect.right, accRect.right);
19612
- accRect.bottom = math_min(rect.bottom, accRect.bottom);
19613
- accRect.left = math_max(rect.left, accRect.left);
19614
- return accRect;
19615
- }, getClientRectFromMixedType(element, firstClippingParent));
19616
- clippingRect.width = clippingRect.right - clippingRect.left;
19617
- clippingRect.height = clippingRect.bottom - clippingRect.top;
19618
- clippingRect.x = clippingRect.left;
19619
- clippingRect.y = clippingRect.top;
19620
- return clippingRect;
19621
- }
19622
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
19623
- function getFreshSideObject() {
19624
- return {
19625
- top: 0,
19626
- right: 0,
19627
- bottom: 0,
19628
- left: 0
19629
- };
19630
- }
19631
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
19632
 
19633
- function mergePaddingObject(paddingObject) {
19634
- return Object.assign({}, getFreshSideObject(), paddingObject);
19635
- }
19636
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js
19637
- function expandToHashMap(value, keys) {
19638
- return keys.reduce(function (hashMap, key) {
19639
- hashMap[key] = value;
19640
- return hashMap;
19641
- }, {});
19642
- }
19643
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/detectOverflow.js
19644
 
 
 
 
 
19645
 
 
 
 
 
19646
 
 
 
 
 
19647
 
 
 
 
 
19648
 
 
 
 
 
19649
 
 
 
 
 
19650
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19651
 
19652
- // eslint-disable-next-line import/no-unused-modules
 
 
 
 
 
 
 
 
 
 
19653
 
19654
- function detectOverflow(state, options) {
19655
- if (options === void 0) {
19656
- options = {};
19657
- }
19658
 
19659
- var _options = options,
19660
- _options$placement = _options.placement,
19661
- placement = _options$placement === void 0 ? state.placement : _options$placement,
19662
- _options$boundary = _options.boundary,
19663
- boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
19664
- _options$rootBoundary = _options.rootBoundary,
19665
- rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
19666
- _options$elementConte = _options.elementContext,
19667
- elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
19668
- _options$altBoundary = _options.altBoundary,
19669
- altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
19670
- _options$padding = _options.padding,
19671
- padding = _options$padding === void 0 ? 0 : _options$padding;
19672
- var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
19673
- var altContext = elementContext === popper ? reference : popper;
19674
- var referenceElement = state.elements.reference;
19675
- var popperRect = state.rects.popper;
19676
- var element = state.elements[altBoundary ? altContext : elementContext];
19677
- var clippingClientRect = getClippingRect(instanceOf_isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
19678
- var referenceClientRect = getBoundingClientRect(referenceElement);
19679
- var popperOffsets = computeOffsets({
19680
- reference: referenceClientRect,
19681
- element: popperRect,
19682
- strategy: 'absolute',
19683
- placement: placement
19684
- });
19685
- var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
19686
- var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
19687
- // 0 or negative = within the clipping rect
19688
 
19689
- var overflowOffsets = {
19690
- top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
19691
- bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
19692
- left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
19693
- right: elementClientRect.right - clippingClientRect.right + paddingObject.right
19694
- };
19695
- var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
19696
 
19697
- if (elementContext === popper && offsetData) {
19698
- var offset = offsetData[placement];
19699
- Object.keys(overflowOffsets).forEach(function (key) {
19700
- var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
19701
- var axis = [enums_top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
19702
- overflowOffsets[key] += offset[axis] * multiply;
19703
- });
19704
- }
19705
 
19706
- return overflowOffsets;
19707
- }
19708
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
19709
 
19710
 
19711
 
 
 
 
 
 
 
 
 
19712
 
19713
- function computeAutoPlacement(state, options) {
19714
- if (options === void 0) {
19715
- options = {};
19716
- }
 
19717
 
19718
- var _options = options,
19719
- placement = _options.placement,
19720
- boundary = _options.boundary,
19721
- rootBoundary = _options.rootBoundary,
19722
- padding = _options.padding,
19723
- flipVariations = _options.flipVariations,
19724
- _options$allowedAutoP = _options.allowedAutoPlacements,
19725
- allowedAutoPlacements = _options$allowedAutoP === void 0 ? enums_placements : _options$allowedAutoP;
19726
- var variation = getVariation(placement);
19727
- var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
19728
- return getVariation(placement) === variation;
19729
- }) : basePlacements;
19730
- var allowedPlacements = placements.filter(function (placement) {
19731
- return allowedAutoPlacements.indexOf(placement) >= 0;
19732
- });
19733
 
19734
- if (allowedPlacements.length === 0) {
19735
- allowedPlacements = placements;
 
 
19736
 
19737
- if (false) {}
19738
- } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
19739
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19740
 
19741
- var overflows = allowedPlacements.reduce(function (acc, placement) {
19742
- acc[placement] = detectOverflow(state, {
19743
- placement: placement,
19744
- boundary: boundary,
19745
- rootBoundary: rootBoundary,
19746
- padding: padding
19747
- })[getBasePlacement(placement)];
19748
- return acc;
19749
- }, {});
19750
- return Object.keys(overflows).sort(function (a, b) {
19751
- return overflows[a] - overflows[b];
19752
- });
19753
- }
19754
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/flip.js
19755
 
 
19756
 
 
 
 
 
 
 
 
 
19757
 
 
19758
 
 
 
 
 
 
 
 
 
19759
 
 
 
 
 
 
 
 
 
 
 
19760
 
19761
- // eslint-disable-next-line import/no-unused-modules
19762
 
19763
- function getExpandedFallbackPlacements(placement) {
19764
- if (getBasePlacement(placement) === auto) {
19765
- return [];
19766
- }
19767
 
19768
- var oppositePlacement = getOppositePlacement(placement);
19769
- return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
19770
- }
19771
 
19772
- function flip(_ref) {
19773
- var state = _ref.state,
19774
- options = _ref.options,
19775
- name = _ref.name;
19776
 
19777
- if (state.modifiersData[name]._skip) {
19778
- return;
19779
- }
19780
 
19781
- var _options$mainAxis = options.mainAxis,
19782
- checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
19783
- _options$altAxis = options.altAxis,
19784
- checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
19785
- specifiedFallbackPlacements = options.fallbackPlacements,
19786
- padding = options.padding,
19787
- boundary = options.boundary,
19788
- rootBoundary = options.rootBoundary,
19789
- altBoundary = options.altBoundary,
19790
- _options$flipVariatio = options.flipVariations,
19791
- flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
19792
- allowedAutoPlacements = options.allowedAutoPlacements;
19793
- var preferredPlacement = state.options.placement;
19794
- var basePlacement = getBasePlacement(preferredPlacement);
19795
- var isBasePlacement = basePlacement === preferredPlacement;
19796
- var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
19797
- var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
19798
- return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
19799
- placement: placement,
19800
- boundary: boundary,
19801
- rootBoundary: rootBoundary,
19802
- padding: padding,
19803
- flipVariations: flipVariations,
19804
- allowedAutoPlacements: allowedAutoPlacements
19805
- }) : placement);
19806
- }, []);
19807
- var referenceRect = state.rects.reference;
19808
- var popperRect = state.rects.popper;
19809
- var checksMap = new Map();
19810
- var makeFallbackChecks = true;
19811
- var firstFittingPlacement = placements[0];
19812
 
19813
- for (var i = 0; i < placements.length; i++) {
19814
- var placement = placements[i];
19815
 
19816
- var _basePlacement = getBasePlacement(placement);
 
 
 
 
 
 
19817
 
19818
- var isStartVariation = getVariation(placement) === start;
19819
- var isVertical = [enums_top, bottom].indexOf(_basePlacement) >= 0;
19820
- var len = isVertical ? 'width' : 'height';
19821
- var overflow = detectOverflow(state, {
19822
- placement: placement,
19823
- boundary: boundary,
19824
- rootBoundary: rootBoundary,
19825
- altBoundary: altBoundary,
19826
- padding: padding
19827
- });
19828
- var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : enums_top;
19829
 
19830
- if (referenceRect[len] > popperRect[len]) {
19831
- mainVariationSide = getOppositePlacement(mainVariationSide);
19832
- }
 
19833
 
19834
- var altVariationSide = getOppositePlacement(mainVariationSide);
19835
- var checks = [];
 
 
19836
 
19837
- if (checkMainAxis) {
19838
- checks.push(overflow[_basePlacement] <= 0);
19839
- }
 
19840
 
19841
- if (checkAltAxis) {
19842
- checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
19843
- }
 
19844
 
19845
- if (checks.every(function (check) {
19846
- return check;
19847
- })) {
19848
- firstFittingPlacement = placement;
19849
- makeFallbackChecks = false;
19850
- break;
19851
- }
19852
 
19853
- checksMap.set(placement, checks);
19854
- }
19855
 
19856
- if (makeFallbackChecks) {
19857
- // `2` may be desired in some cases – research later
19858
- var numberOfChecks = flipVariations ? 3 : 1;
 
19859
 
19860
- var _loop = function _loop(_i) {
19861
- var fittingPlacement = placements.find(function (placement) {
19862
- var checks = checksMap.get(placement);
19863
 
19864
- if (checks) {
19865
- return checks.slice(0, _i).every(function (check) {
19866
- return check;
19867
- });
19868
- }
19869
- });
19870
 
19871
- if (fittingPlacement) {
19872
- firstFittingPlacement = fittingPlacement;
19873
- return "break";
19874
- }
19875
- };
 
19876
 
19877
- for (var _i = numberOfChecks; _i > 0; _i--) {
19878
- var _ret = _loop(_i);
19879
 
19880
- if (_ret === "break") break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19881
  }
19882
- }
 
 
 
 
 
 
 
 
19883
 
19884
- if (state.placement !== firstFittingPlacement) {
19885
- state.modifiersData[name]._skip = true;
19886
- state.placement = firstFittingPlacement;
19887
- state.reset = true;
19888
- }
19889
- } // eslint-disable-next-line import/no-unused-modules
 
 
 
 
 
 
 
 
 
 
 
19890
 
 
 
 
19891
 
19892
- /* harmony default export */ var modifiers_flip = ({
19893
- name: 'flip',
19894
- enabled: true,
19895
- phase: 'main',
19896
- fn: flip,
19897
- requiresIfExists: ['offset'],
19898
- data: {
19899
- _skip: false
19900
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19901
  });
19902
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getAltAxis.js
19903
- function getAltAxis(axis) {
19904
- return axis === 'x' ? 'y' : 'x';
19905
- }
19906
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/within.js
 
 
 
 
 
 
 
19907
 
19908
- function within(min, value, max) {
19909
- return math_max(min, math_min(value, max));
 
 
 
 
 
 
 
19910
  }
19911
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
19912
 
 
19913
 
 
 
 
19914
 
 
 
 
 
 
 
 
19915
 
 
 
 
19916
 
 
 
 
 
 
 
 
 
 
 
 
 
19917
 
 
 
 
 
 
 
 
 
 
19918
 
 
 
 
 
19919
 
 
 
 
 
 
 
 
 
 
19920
 
 
 
 
 
 
19921
 
 
 
 
19922
 
 
 
 
 
 
19923
 
19924
- function preventOverflow(_ref) {
19925
- var state = _ref.state,
19926
- options = _ref.options,
19927
- name = _ref.name;
19928
- var _options$mainAxis = options.mainAxis,
19929
- checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
19930
- _options$altAxis = options.altAxis,
19931
- checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
19932
- boundary = options.boundary,
19933
- rootBoundary = options.rootBoundary,
19934
- altBoundary = options.altBoundary,
19935
- padding = options.padding,
19936
- _options$tether = options.tether,
19937
- tether = _options$tether === void 0 ? true : _options$tether,
19938
- _options$tetherOffset = options.tetherOffset,
19939
- tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
19940
- var overflow = detectOverflow(state, {
19941
- boundary: boundary,
19942
- rootBoundary: rootBoundary,
19943
- padding: padding,
19944
- altBoundary: altBoundary
19945
- });
19946
- var basePlacement = getBasePlacement(state.placement);
19947
- var variation = getVariation(state.placement);
19948
- var isBasePlacement = !variation;
19949
- var mainAxis = getMainAxisFromPlacement(basePlacement);
19950
- var altAxis = getAltAxis(mainAxis);
19951
- var popperOffsets = state.modifiersData.popperOffsets;
19952
- var referenceRect = state.rects.reference;
19953
- var popperRect = state.rects.popper;
19954
- var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
19955
- placement: state.placement
19956
- })) : tetherOffset;
19957
- var data = {
19958
- x: 0,
19959
- y: 0
19960
  };
 
19961
 
19962
- if (!popperOffsets) {
19963
- return;
 
 
 
 
 
19964
  }
19965
 
19966
- if (checkMainAxis || checkAltAxis) {
19967
- var mainSide = mainAxis === 'y' ? enums_top : left;
19968
- var altSide = mainAxis === 'y' ? bottom : right;
19969
- var len = mainAxis === 'y' ? 'height' : 'width';
19970
- var offset = popperOffsets[mainAxis];
19971
- var min = popperOffsets[mainAxis] + overflow[mainSide];
19972
- var max = popperOffsets[mainAxis] - overflow[altSide];
19973
- var additive = tether ? -popperRect[len] / 2 : 0;
19974
- var minLen = variation === start ? referenceRect[len] : popperRect[len];
19975
- var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
19976
- // outside the reference bounds
19977
-
19978
- var arrowElement = state.elements.arrow;
19979
- var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
19980
- width: 0,
19981
- height: 0
19982
- };
19983
- var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
19984
- var arrowPaddingMin = arrowPaddingObject[mainSide];
19985
- var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
19986
- // to include its full size in the calculation. If the reference is small
19987
- // and near the edge of a boundary, the popper can overflow even if the
19988
- // reference is not overflowing as well (e.g. virtual elements with no
19989
- // width or height)
19990
 
19991
- var arrowLen = within(0, referenceRect[len], arrowRect[len]);
19992
- var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
19993
- var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
19994
- var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
19995
- var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
19996
- var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
19997
- var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
19998
- var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
19999
 
20000
- if (checkMainAxis) {
20001
- var preventedOffset = within(tether ? math_min(min, tetherMin) : min, offset, tether ? math_max(max, tetherMax) : max);
20002
- popperOffsets[mainAxis] = preventedOffset;
20003
- data[mainAxis] = preventedOffset - offset;
 
 
 
20004
  }
 
20005
 
20006
- if (checkAltAxis) {
20007
- var _mainSide = mainAxis === 'x' ? enums_top : left;
 
20008
 
20009
- var _altSide = mainAxis === 'x' ? bottom : right;
 
 
 
 
 
20010
 
20011
- var _offset = popperOffsets[altAxis];
 
 
 
 
 
 
 
20012
 
20013
- var _min = _offset + overflow[_mainSide];
 
20014
 
20015
- var _max = _offset - overflow[_altSide];
20016
 
20017
- var _preventedOffset = within(tether ? math_min(_min, tetherMin) : _min, _offset, tether ? math_max(_max, tetherMax) : _max);
 
 
 
 
 
 
 
 
20018
 
20019
- popperOffsets[altAxis] = _preventedOffset;
20020
- data[altAxis] = _preventedOffset - _offset;
20021
- }
20022
- }
20023
 
20024
- state.modifiersData[name] = data;
20025
- } // eslint-disable-next-line import/no-unused-modules
20026
 
20027
 
20028
- /* harmony default export */ var modifiers_preventOverflow = ({
20029
- name: 'preventOverflow',
20030
- enabled: true,
20031
- phase: 'main',
20032
- fn: preventOverflow,
20033
- requiresIfExists: ['offset']
20034
- });
20035
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/arrow.js
20036
 
20037
 
20038
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20039
 
 
 
 
20040
 
 
 
 
 
 
 
 
 
 
 
20041
 
 
20042
 
 
 
 
 
 
 
 
20043
 
20044
 
20045
- // eslint-disable-next-line import/no-unused-modules
20046
 
20047
- var toPaddingObject = function toPaddingObject(padding, state) {
20048
- padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
20049
- placement: state.placement
20050
- })) : padding;
20051
- return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
20052
- };
20053
 
20054
- function arrow(_ref) {
20055
- var _state$modifiersData$;
20056
 
20057
- var state = _ref.state,
20058
- name = _ref.name,
20059
- options = _ref.options;
20060
- var arrowElement = state.elements.arrow;
20061
- var popperOffsets = state.modifiersData.popperOffsets;
20062
- var basePlacement = getBasePlacement(state.placement);
20063
- var axis = getMainAxisFromPlacement(basePlacement);
20064
- var isVertical = [left, right].indexOf(basePlacement) >= 0;
20065
- var len = isVertical ? 'height' : 'width';
20066
 
20067
- if (!arrowElement || !popperOffsets) {
20068
- return;
20069
- }
20070
 
20071
- var paddingObject = toPaddingObject(options.padding, state);
20072
- var arrowRect = getLayoutRect(arrowElement);
20073
- var minProp = axis === 'y' ? enums_top : left;
20074
- var maxProp = axis === 'y' ? bottom : right;
20075
- var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
20076
- var startDiff = popperOffsets[axis] - state.rects.reference[axis];
20077
- var arrowOffsetParent = getOffsetParent(arrowElement);
20078
- var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
20079
- var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
20080
- // outside of the popper bounds
20081
 
20082
- var min = paddingObject[minProp];
20083
- var max = clientSize - arrowRect[len] - paddingObject[maxProp];
20084
- var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
20085
- var offset = within(min, center, max); // Prevents breaking syntax highlighting...
20086
 
20087
- var axisProp = axis;
20088
- state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
 
 
 
 
 
 
 
 
 
20089
  }
20090
 
20091
- function arrow_effect(_ref2) {
20092
- var state = _ref2.state,
20093
- options = _ref2.options;
20094
- var _options$element = options.element,
20095
- arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
20096
 
20097
- if (arrowElement == null) {
20098
- return;
20099
- } // CSS selector
 
 
20100
 
 
 
 
 
 
20101
 
20102
- if (typeof arrowElement === 'string') {
20103
- arrowElement = state.elements.popper.querySelector(arrowElement);
 
20104
 
20105
- if (!arrowElement) {
 
 
 
 
 
 
20106
  return;
20107
  }
20108
- }
20109
 
20110
- if (false) {}
 
20111
 
20112
- if (!contains(state.elements.popper, arrowElement)) {
20113
- if (false) {}
 
 
 
 
 
 
20114
 
20115
- return;
20116
- }
 
20117
 
20118
- state.elements.arrow = arrowElement;
20119
- } // eslint-disable-next-line import/no-unused-modules
20120
 
 
 
 
 
 
 
 
 
 
 
 
 
20121
 
20122
- /* harmony default export */ var modifiers_arrow = ({
20123
- name: 'arrow',
20124
- enabled: true,
20125
- phase: 'main',
20126
- fn: arrow,
20127
- effect: arrow_effect,
20128
- requires: ['popperOffsets'],
20129
- requiresIfExists: ['preventOverflow']
20130
- });
20131
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/hide.js
20132
 
20133
 
 
 
 
20134
 
20135
- function getSideOffsets(overflow, rect, preventedOffsets) {
20136
- if (preventedOffsets === void 0) {
20137
- preventedOffsets = {
20138
- x: 0,
20139
- y: 0
20140
- };
20141
- }
20142
 
20143
- return {
20144
- top: overflow.top - rect.height - preventedOffsets.y,
20145
- right: overflow.right - rect.width + preventedOffsets.x,
20146
- bottom: overflow.bottom - rect.height + preventedOffsets.y,
20147
- left: overflow.left - rect.width - preventedOffsets.x
 
 
 
 
 
 
 
 
20148
  };
20149
- }
20150
 
20151
- function isAnySideFullyClipped(overflow) {
20152
- return [enums_top, right, bottom, left].some(function (side) {
20153
- return overflow[side] >= 0;
20154
- });
20155
  }
20156
 
20157
- function hide(_ref) {
20158
- var state = _ref.state,
20159
- name = _ref.name;
20160
- var referenceRect = state.rects.reference;
20161
- var popperRect = state.rects.popper;
20162
- var preventedOffsets = state.modifiersData.preventOverflow;
20163
- var referenceOverflow = detectOverflow(state, {
20164
- elementContext: 'reference'
20165
- });
20166
- var popperAltOverflow = detectOverflow(state, {
20167
- altBoundary: true
20168
- });
20169
- var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
20170
- var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
20171
- var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
20172
- var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
20173
- state.modifiersData[name] = {
20174
- referenceClippingOffsets: referenceClippingOffsets,
20175
- popperEscapeOffsets: popperEscapeOffsets,
20176
- isReferenceHidden: isReferenceHidden,
20177
- hasPopperEscaped: hasPopperEscaped
20178
- };
20179
- state.attributes.popper = Object.assign({}, state.attributes.popper, {
20180
- 'data-popper-reference-hidden': isReferenceHidden,
20181
- 'data-popper-escaped': hasPopperEscaped
20182
- });
20183
- } // eslint-disable-next-line import/no-unused-modules
20184
-
20185
 
20186
- /* harmony default export */ var modifiers_hide = ({
20187
- name: 'hide',
20188
- enabled: true,
20189
- phase: 'main',
20190
- requiresIfExists: ['preventOverflow'],
20191
- fn: hide
20192
- });
20193
- ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/popper.js
 
 
 
 
 
 
 
 
 
 
 
 
20194
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20195
 
 
20196
 
 
 
 
20197
 
 
 
20198
 
 
 
 
 
 
 
 
 
 
 
20199
 
 
20200
 
 
 
 
 
 
20201
 
20202
 
 
 
 
20203
 
20204
- var defaultModifiers = [eventListeners, modifiers_popperOffsets, modifiers_computeStyles, modifiers_applyStyles, modifiers_offset, modifiers_flip, modifiers_preventOverflow, modifiers_arrow, modifiers_hide];
20205
- var popper_createPopper = /*#__PURE__*/popperGenerator({
20206
- defaultModifiers: defaultModifiers
20207
- }); // eslint-disable-next-line import/no-unused-modules
 
 
 
20208
 
20209
- // eslint-disable-next-line import/no-unused-modules
 
 
 
 
20210
 
20211
- // eslint-disable-next-line import/no-unused-modules
 
 
 
 
20212
 
 
 
 
20213
 
20214
- ;// CONCATENATED MODULE: ./node_modules/@tippyjs/react/node_modules/tippy.js/dist/tippy.esm.js
20215
- /**!
20216
- * tippy.js v6.3.1
20217
- * (c) 2017-2021 atomiks
20218
- * MIT License
20219
- */
20220
 
 
20221
 
20222
- var ROUND_ARROW = '<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>';
20223
- var BOX_CLASS = "tippy-box";
20224
- var CONTENT_CLASS = "tippy-content";
20225
- var BACKDROP_CLASS = "tippy-backdrop";
20226
- var ARROW_CLASS = "tippy-arrow";
20227
- var SVG_ARROW_CLASS = "tippy-svg-arrow";
20228
- var TOUCH_OPTIONS = {
20229
- passive: true,
20230
- capture: true
20231
- };
20232
 
20233
- function tippy_esm_hasOwnProperty(obj, key) {
20234
- return {}.hasOwnProperty.call(obj, key);
20235
- }
20236
- function getValueAtIndexOrReturn(value, index, defaultValue) {
20237
- if (Array.isArray(value)) {
20238
- var v = value[index];
20239
- return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;
20240
- }
20241
 
20242
- return value;
20243
- }
20244
- function isType(value, type) {
20245
- var str = {}.toString.call(value);
20246
- return str.indexOf('[object') === 0 && str.indexOf(type + "]") > -1;
20247
- }
20248
- function invokeWithArgsOrReturn(value, args) {
20249
- return typeof value === 'function' ? value.apply(void 0, args) : value;
20250
- }
20251
- function tippy_esm_debounce(fn, ms) {
20252
- // Avoid wrapping in `setTimeout` if ms is 0 anyway
20253
- if (ms === 0) {
20254
- return fn;
20255
- }
20256
 
20257
- var timeout;
20258
- return function (arg) {
20259
- clearTimeout(timeout);
20260
- timeout = setTimeout(function () {
20261
- fn(arg);
20262
- }, ms);
20263
- };
20264
- }
20265
- function removeProperties(obj, keys) {
20266
- var clone = Object.assign({}, obj);
20267
- keys.forEach(function (key) {
20268
- delete clone[key];
20269
- });
20270
- return clone;
20271
- }
20272
- function splitBySpaces(value) {
20273
- return value.split(/\s+/).filter(Boolean);
20274
- }
20275
- function normalizeToArray(value) {
20276
- return [].concat(value);
20277
- }
20278
- function pushIfUnique(arr, value) {
20279
- if (arr.indexOf(value) === -1) {
20280
- arr.push(value);
20281
- }
20282
- }
20283
- function unique(arr) {
20284
- return arr.filter(function (item, index) {
20285
- return arr.indexOf(item) === index;
20286
- });
20287
- }
20288
- function tippy_esm_getBasePlacement(placement) {
20289
- return placement.split('-')[0];
20290
- }
20291
- function arrayFrom(value) {
20292
- return [].slice.call(value);
20293
- }
20294
- function removeUndefinedProps(obj) {
20295
- return Object.keys(obj).reduce(function (acc, key) {
20296
- if (obj[key] !== undefined) {
20297
- acc[key] = obj[key];
20298
- }
20299
 
20300
- return acc;
20301
- }, {});
20302
- }
20303
-
20304
- function div() {
20305
- return document.createElement('div');
20306
- }
20307
- function tippy_esm_isElement(value) {
20308
- return ['Element', 'Fragment'].some(function (type) {
20309
- return isType(value, type);
20310
- });
20311
- }
20312
- function isNodeList(value) {
20313
- return isType(value, 'NodeList');
20314
- }
20315
- function isMouseEvent(value) {
20316
- return isType(value, 'MouseEvent');
20317
- }
20318
- function isReferenceElement(value) {
20319
- return !!(value && value._tippy && value._tippy.reference === value);
20320
- }
20321
- function getArrayOfElements(value) {
20322
- if (tippy_esm_isElement(value)) {
20323
- return [value];
20324
- }
20325
 
20326
- if (isNodeList(value)) {
20327
- return arrayFrom(value);
20328
- }
20329
 
20330
- if (Array.isArray(value)) {
20331
- return value;
20332
- }
 
 
 
 
 
20333
 
20334
- return arrayFrom(document.querySelectorAll(value));
20335
- }
20336
- function setTransitionDuration(els, value) {
20337
- els.forEach(function (el) {
20338
- if (el) {
20339
- el.style.transitionDuration = value + "ms";
20340
- }
20341
- });
20342
- }
20343
- function setVisibilityState(els, state) {
20344
- els.forEach(function (el) {
20345
- if (el) {
20346
- el.setAttribute('data-state', state);
20347
- }
20348
- });
20349
- }
20350
- function getOwnerDocument(elementOrElements) {
20351
- var _element$ownerDocumen;
20352
 
20353
- var _normalizeToArray = normalizeToArray(elementOrElements),
20354
- element = _normalizeToArray[0]; // Elements created via a <template> have an ownerDocument with no reference to the body
 
 
 
20355
 
 
 
 
 
20356
 
20357
- return (element == null ? void 0 : (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body) ? element.ownerDocument : document;
20358
- }
20359
- function isCursorOutsideInteractiveBorder(popperTreeData, event) {
20360
- var clientX = event.clientX,
20361
- clientY = event.clientY;
20362
- return popperTreeData.every(function (_ref) {
20363
- var popperRect = _ref.popperRect,
20364
- popperState = _ref.popperState,
20365
- props = _ref.props;
20366
- var interactiveBorder = props.interactiveBorder;
20367
- var basePlacement = tippy_esm_getBasePlacement(popperState.placement);
20368
- var offsetData = popperState.modifiersData.offset;
20369
 
20370
- if (!offsetData) {
20371
- return true;
20372
- }
20373
 
20374
- var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;
20375
- var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;
20376
- var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;
20377
- var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;
20378
- var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;
20379
- var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;
20380
- var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;
20381
- var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;
20382
- return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;
20383
- });
20384
- }
20385
- function updateTransitionEndListener(box, action, listener) {
20386
- var method = action + "EventListener"; // some browsers apparently support `transition` (unprefixed) but only fire
20387
- // `webkitTransitionEnd`...
20388
 
20389
- ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
20390
- box[method](event, listener);
20391
- });
20392
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
20393
 
20394
- var currentInput = {
20395
- isTouch: false
20396
- };
20397
- var lastMouseMoveTime = 0;
20398
- /**
20399
- * When a `touchstart` event is fired, it's assumed the user is using touch
20400
- * input. We'll bind a `mousemove` event listener to listen for mouse input in
20401
- * the future. This way, the `isTouch` property is fully dynamic and will handle
20402
- * hybrid devices that use a mix of touch + mouse input.
20403
- */
20404
 
20405
- function onDocumentTouchStart() {
20406
- if (currentInput.isTouch) {
20407
- return;
20408
- }
20409
 
20410
- currentInput.isTouch = true;
20411
 
20412
- if (window.performance) {
20413
- document.addEventListener('mousemove', onDocumentMouseMove);
20414
- }
20415
- }
20416
- /**
20417
- * When two `mousemove` event are fired consecutively within 20ms, it's assumed
20418
- * the user is using mouse input again. `mousemove` can fire on touch devices as
20419
- * well, but very rarely that quickly.
20420
- */
20421
 
20422
- function onDocumentMouseMove() {
20423
- var now = performance.now();
 
 
 
 
20424
 
20425
- if (now - lastMouseMoveTime < 20) {
20426
- currentInput.isTouch = false;
20427
- document.removeEventListener('mousemove', onDocumentMouseMove);
20428
- }
 
 
 
 
 
20429
 
20430
- lastMouseMoveTime = now;
20431
- }
20432
- /**
20433
- * When an element is in focus and has a tippy, leaving the tab/window and
20434
- * returning causes it to show again. For mouse users this is unexpected, but
20435
- * for keyboard use it makes sense.
20436
- * TODO: find a better technique to solve this problem
20437
- */
20438
 
20439
- function onWindowBlur() {
20440
- var activeElement = document.activeElement;
20441
 
20442
- if (isReferenceElement(activeElement)) {
20443
- var instance = activeElement._tippy;
 
20444
 
20445
- if (activeElement.blur && !instance.state.isVisible) {
20446
- activeElement.blur();
 
 
 
 
 
 
 
20447
  }
20448
- }
20449
- }
20450
- function bindGlobalEventListeners() {
20451
- document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);
20452
- window.addEventListener('blur', onWindowBlur);
20453
- }
20454
-
20455
- var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
20456
- var ua = isBrowser ? navigator.userAgent : '';
20457
- var isIE = /MSIE |Trident\//.test(ua);
20458
 
20459
- function createMemoryLeakWarning(method) {
20460
- var txt = method === 'destroy' ? 'n already-' : ' ';
20461
- return [method + "() was called on a" + txt + "destroyed instance. This is a no-op but", 'indicates a potential memory leak.'].join(' ');
20462
  }
20463
- function clean(value) {
20464
- var spacesAndTabs = /[ \t]{2,}/g;
20465
- var lineStartWithSpaces = /^[ \t]*/gm;
20466
- return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();
 
 
 
20467
  }
20468
 
20469
- function getDevMessage(message) {
20470
- return clean("\n %ctippy.js\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development-only message. It will be removed in production.\n ");
20471
- }
20472
 
20473
- function getFormattedMessage(message) {
20474
- return [getDevMessage(message), // title
20475
- 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message
20476
- 'line-height: 1.5', // footer
20477
- 'color: #a6a095;'];
20478
- } // Assume warnings and errors never have the same message
20479
 
20480
- var visitedMessages;
 
 
20481
 
20482
- if (false) {}
 
 
 
 
20483
 
20484
- function resetVisitedMessages() {
20485
- visitedMessages = new Set();
20486
  }
20487
- function warnWhen(condition, message) {
20488
- if (condition && !visitedMessages.has(message)) {
20489
- var _console;
20490
 
20491
- visitedMessages.add(message);
 
 
20492
 
20493
- (_console = console).warn.apply(_console, getFormattedMessage(message));
20494
- }
20495
- }
20496
- function errorWhen(condition, message) {
20497
- if (condition && !visitedMessages.has(message)) {
20498
- var _console2;
20499
 
20500
- visitedMessages.add(message);
 
 
 
 
 
 
 
 
 
20501
 
20502
- (_console2 = console).error.apply(_console2, getFormattedMessage(message));
20503
- }
20504
- }
20505
- function validateTargets(targets) {
20506
- var didPassFalsyValue = !targets;
20507
- var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;
20508
- errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));
20509
- errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));
20510
- }
 
 
 
 
 
20511
 
20512
- var pluginProps = {
20513
- animateFill: false,
20514
- followCursor: false,
20515
- inlinePositioning: false,
20516
- sticky: false
20517
- };
20518
- var renderProps = {
20519
- allowHTML: false,
20520
- animation: 'fade',
20521
- arrow: true,
20522
- content: '',
20523
- inertia: false,
20524
- maxWidth: 350,
20525
- role: 'tooltip',
20526
- theme: '',
20527
- zIndex: 9999
20528
- };
20529
- var tippy_esm_defaultProps = Object.assign({
20530
- appendTo: function appendTo() {
20531
- return document.body;
20532
- },
20533
- aria: {
20534
- content: 'auto',
20535
- expanded: 'auto'
20536
- },
20537
- delay: 0,
20538
- duration: [300, 250],
20539
- getReferenceClientRect: null,
20540
- hideOnClick: true,
20541
- ignoreAttributes: false,
20542
- interactive: false,
20543
- interactiveBorder: 2,
20544
- interactiveDebounce: 0,
20545
- moveTransition: '',
20546
- offset: [0, 10],
20547
- onAfterUpdate: function onAfterUpdate() {},
20548
- onBeforeUpdate: function onBeforeUpdate() {},
20549
- onCreate: function onCreate() {},
20550
- onDestroy: function onDestroy() {},
20551
- onHidden: function onHidden() {},
20552
- onHide: function onHide() {},
20553
- onMount: function onMount() {},
20554
- onShow: function onShow() {},
20555
- onShown: function onShown() {},
20556
- onTrigger: function onTrigger() {},
20557
- onUntrigger: function onUntrigger() {},
20558
- onClickOutside: function onClickOutside() {},
20559
- placement: 'top',
20560
- plugins: [],
20561
- popperOptions: {},
20562
- render: null,
20563
- showOnCreate: false,
20564
- touch: true,
20565
- trigger: 'mouseenter focus',
20566
- triggerTarget: null
20567
- }, pluginProps, {}, renderProps);
20568
- var defaultKeys = Object.keys(tippy_esm_defaultProps);
20569
- var setDefaultProps = function setDefaultProps(partialProps) {
20570
- /* istanbul ignore else */
20571
- if (false) {}
20572
 
20573
- var keys = Object.keys(partialProps);
20574
- keys.forEach(function (key) {
20575
- tippy_esm_defaultProps[key] = partialProps[key];
20576
- });
20577
- };
20578
- function getExtendedPassedProps(passedProps) {
20579
- var plugins = passedProps.plugins || [];
20580
- var pluginProps = plugins.reduce(function (acc, plugin) {
20581
- var name = plugin.name,
20582
- defaultValue = plugin.defaultValue;
20583
 
20584
- if (name) {
20585
- acc[name] = passedProps[name] !== undefined ? passedProps[name] : defaultValue;
20586
- }
20587
 
20588
- return acc;
20589
- }, {});
20590
- return Object.assign({}, passedProps, {}, pluginProps);
20591
- }
20592
- function getDataAttributeProps(reference, plugins) {
20593
- var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, tippy_esm_defaultProps, {
20594
- plugins: plugins
20595
- }))) : defaultKeys;
20596
- var props = propKeys.reduce(function (acc, key) {
20597
- var valueAsString = (reference.getAttribute("data-tippy-" + key) || '').trim();
20598
 
20599
- if (!valueAsString) {
20600
- return acc;
20601
- }
 
20602
 
20603
- if (key === 'content') {
20604
- acc[key] = valueAsString;
20605
- } else {
20606
- try {
20607
- acc[key] = JSON.parse(valueAsString);
20608
- } catch (e) {
20609
- acc[key] = valueAsString;
20610
  }
20611
- }
20612
 
20613
- return acc;
20614
- }, {});
20615
- return props;
20616
- }
20617
- function evaluateProps(reference, props) {
20618
- var out = Object.assign({}, props, {
20619
- content: invokeWithArgsOrReturn(props.content, [reference])
20620
- }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));
20621
- out.aria = Object.assign({}, tippy_esm_defaultProps.aria, {}, out.aria);
20622
- out.aria = {
20623
- expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,
20624
- content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content
20625
  };
20626
- return out;
20627
  }
20628
- function validateProps(partialProps, plugins) {
20629
- if (partialProps === void 0) {
20630
- partialProps = {};
20631
- }
20632
-
20633
- if (plugins === void 0) {
20634
- plugins = [];
20635
- }
20636
 
20637
- var keys = Object.keys(partialProps);
20638
- keys.forEach(function (prop) {
20639
- var nonPluginProps = removeProperties(tippy_esm_defaultProps, Object.keys(pluginProps));
20640
- var didPassUnknownProp = !tippy_esm_hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`
20641
 
20642
- if (didPassUnknownProp) {
20643
- didPassUnknownProp = plugins.filter(function (plugin) {
20644
- return plugin.name === prop;
20645
- }).length === 0;
20646
- }
 
 
 
 
 
 
 
 
 
 
 
 
20647
 
20648
- warnWhen(didPassUnknownProp, ["`" + prop + "`", "is not a valid prop. You may have spelled it incorrectly, or if it's", 'a plugin, forgot to pass it in an array as props.plugins.', '\n\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));
20649
- });
 
 
 
 
 
20650
  }
 
 
20651
 
20652
- var innerHTML = function innerHTML() {
20653
- return 'innerHTML';
20654
- };
20655
 
20656
- function dangerouslySetInnerHTML(element, html) {
20657
- element[innerHTML()] = html;
20658
  }
 
 
 
 
 
 
 
 
 
20659
 
20660
- function createArrowElement(value) {
20661
- var arrow = div();
 
 
 
 
 
20662
 
20663
- if (value === true) {
20664
- arrow.className = ARROW_CLASS;
20665
- } else {
20666
- arrow.className = SVG_ARROW_CLASS;
20667
-
20668
- if (tippy_esm_isElement(value)) {
20669
- arrow.appendChild(value);
20670
- } else {
20671
- dangerouslySetInnerHTML(arrow, value);
20672
- }
20673
- }
20674
-
20675
- return arrow;
20676
  }
20677
-
20678
- function setContent(content, props) {
20679
- if (tippy_esm_isElement(props.content)) {
20680
- dangerouslySetInnerHTML(content, '');
20681
- content.appendChild(props.content);
20682
- } else if (typeof props.content !== 'function') {
20683
- if (props.allowHTML) {
20684
- dangerouslySetInnerHTML(content, props.content);
20685
- } else {
20686
- content.textContent = props.content;
20687
- }
20688
- }
20689
  }
20690
- function getChildren(popper) {
20691
- var box = popper.firstElementChild;
20692
- var boxChildren = arrayFrom(box.children);
20693
- return {
20694
- box: box,
20695
- content: boxChildren.find(function (node) {
20696
- return node.classList.contains(CONTENT_CLASS);
20697
- }),
20698
- arrow: boxChildren.find(function (node) {
20699
- return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);
20700
- }),
20701
- backdrop: boxChildren.find(function (node) {
20702
- return node.classList.contains(BACKDROP_CLASS);
20703
- })
20704
- };
20705
  }
20706
- function render(instance) {
20707
- var popper = div();
20708
- var box = div();
20709
- box.className = BOX_CLASS;
20710
- box.setAttribute('data-state', 'hidden');
20711
- box.setAttribute('tabindex', '-1');
20712
- var content = div();
20713
- content.className = CONTENT_CLASS;
20714
- content.setAttribute('data-state', 'hidden');
20715
- setContent(content, instance.props);
20716
- popper.appendChild(box);
20717
- box.appendChild(content);
20718
- onUpdate(instance.props, instance.props);
20719
-
20720
- function onUpdate(prevProps, nextProps) {
20721
- var _getChildren = getChildren(popper),
20722
- box = _getChildren.box,
20723
- content = _getChildren.content,
20724
- arrow = _getChildren.arrow;
20725
 
20726
- if (nextProps.theme) {
20727
- box.setAttribute('data-theme', nextProps.theme);
20728
- } else {
20729
- box.removeAttribute('data-theme');
20730
- }
20731
 
20732
- if (typeof nextProps.animation === 'string') {
20733
- box.setAttribute('data-animation', nextProps.animation);
20734
- } else {
20735
- box.removeAttribute('data-animation');
20736
- }
 
 
 
 
 
 
 
 
 
 
20737
 
20738
- if (nextProps.inertia) {
20739
- box.setAttribute('data-inertia', '');
20740
- } else {
20741
- box.removeAttribute('data-inertia');
20742
- }
 
 
 
 
20743
 
20744
- box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + "px" : nextProps.maxWidth;
 
 
 
 
 
20745
 
20746
- if (nextProps.role) {
20747
- box.setAttribute('role', nextProps.role);
20748
- } else {
20749
- box.removeAttribute('role');
20750
- }
 
20751
 
20752
- if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {
20753
- setContent(content, instance.props);
20754
- }
 
 
 
 
20755
 
20756
- if (nextProps.arrow) {
20757
- if (!arrow) {
20758
- box.appendChild(createArrowElement(nextProps.arrow));
20759
- } else if (prevProps.arrow !== nextProps.arrow) {
20760
- box.removeChild(arrow);
20761
- box.appendChild(createArrowElement(nextProps.arrow));
20762
- }
20763
- } else if (arrow) {
20764
- box.removeChild(arrow);
20765
- }
20766
  }
20767
 
20768
- return {
20769
- popper: popper,
20770
- onUpdate: onUpdate
20771
  };
20772
- } // Runtime check to identify if the render function is the default one; this
20773
- // way we can apply default CSS transitions logic and it can be tree-shaken away
20774
-
20775
- render.$$tippy = true;
20776
-
20777
- var idCounter = 1;
20778
- var mouseMoveListeners = []; // Used by `hideAll()`
20779
-
20780
- var mountedInstances = [];
20781
- function createTippy(reference, passedProps) {
20782
- var props = evaluateProps(reference, Object.assign({}, tippy_esm_defaultProps, {}, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================
20783
- // 🔒 Private members
20784
- // ===========================================================================
20785
 
20786
- var showTimeout;
20787
- var hideTimeout;
20788
- var scheduleHideAnimationFrame;
20789
- var isVisibleFromClick = false;
20790
- var didHideDueToDocumentMouseDown = false;
20791
- var didTouchMove = false;
20792
- var ignoreOnFirstUpdate = false;
20793
- var lastTriggerEvent;
20794
- var currentTransitionEndListener;
20795
- var onFirstUpdate;
20796
- var listeners = [];
20797
- var debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, props.interactiveDebounce);
20798
- var currentTarget; // ===========================================================================
20799
- // 🔑 Public members
20800
- // ===========================================================================
20801
 
20802
- var id = idCounter++;
20803
- var popperInstance = null;
20804
- var plugins = unique(props.plugins);
20805
- var state = {
20806
- // Is the instance currently enabled?
20807
- isEnabled: true,
20808
- // Is the tippy currently showing and not transitioning out?
20809
- isVisible: false,
20810
- // Has the instance been destroyed?
20811
- isDestroyed: false,
20812
- // Is the tippy currently mounted to the DOM?
20813
- isMounted: false,
20814
- // Has the tippy finished transitioning in?
20815
- isShown: false
20816
- };
20817
- var instance = {
20818
- // properties
20819
- id: id,
20820
- reference: reference,
20821
- popper: div(),
20822
- popperInstance: popperInstance,
20823
- props: props,
20824
- state: state,
20825
- plugins: plugins,
20826
- // methods
20827
- clearDelayTimeouts: clearDelayTimeouts,
20828
- setProps: setProps,
20829
- setContent: setContent,
20830
- show: show,
20831
- hide: hide,
20832
- hideWithInteractivity: hideWithInteractivity,
20833
- enable: enable,
20834
- disable: disable,
20835
- unmount: unmount,
20836
- destroy: destroy
20837
- }; // TODO: Investigate why this early return causes a TDZ error in the tests —
20838
- // it doesn't seem to happen in the browser
20839
 
20840
- /* istanbul ignore if */
20841
 
20842
- if (!props.render) {
20843
- if (false) {}
 
 
20844
 
20845
- return instance;
20846
- } // ===========================================================================
20847
- // Initial mutations
20848
- // ===========================================================================
20849
 
20850
 
20851
- var _props$render = props.render(instance),
20852
- popper = _props$render.popper,
20853
- onUpdate = _props$render.onUpdate;
20854
 
20855
- popper.setAttribute('data-tippy-root', '');
20856
- popper.id = "tippy-" + instance.id;
20857
- instance.popper = popper;
20858
- reference._tippy = instance;
20859
- popper._tippy = instance;
20860
- var pluginsHooks = plugins.map(function (plugin) {
20861
- return plugin.fn(instance);
20862
- });
20863
- var hasAriaExpanded = reference.hasAttribute('aria-expanded');
20864
- addListeners();
20865
- handleAriaExpandedAttribute();
20866
- handleStyles();
20867
- invokeHook('onCreate', [instance]);
20868
 
20869
- if (props.showOnCreate) {
20870
- scheduleShow();
20871
- } // Prevent a tippy with a delay from hiding if the cursor left then returned
20872
- // before it started hiding
20873
 
20874
 
20875
- popper.addEventListener('mouseenter', function () {
20876
- if (instance.props.interactive && instance.state.isVisible) {
20877
- instance.clearDelayTimeouts();
20878
- }
20879
- });
20880
- popper.addEventListener('mouseleave', function (event) {
20881
- if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {
20882
- getDocument().addEventListener('mousemove', debouncedOnMouseMove);
20883
- debouncedOnMouseMove(event);
20884
- }
20885
- });
20886
- return instance; // ===========================================================================
20887
- // 🔒 Private methods
20888
- // ===========================================================================
20889
 
20890
- function getNormalizedTouchSettings() {
20891
- var touch = instance.props.touch;
20892
- return Array.isArray(touch) ? touch : [touch, 0];
20893
- }
 
 
 
 
 
 
 
 
 
 
 
 
20894
 
20895
- function getIsCustomTouchBehavior() {
20896
- return getNormalizedTouchSettings()[0] === 'hold';
 
 
20897
  }
20898
 
20899
- function getIsDefaultRenderFn() {
20900
- var _instance$props$rende;
20901
-
20902
- // @ts-ignore
20903
- return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
20904
- }
20905
 
20906
- function getCurrentTarget() {
20907
- return currentTarget || reference;
20908
- }
 
20909
 
20910
- function getDocument() {
20911
- var parent = getCurrentTarget().parentNode;
20912
- return parent ? getOwnerDocument(parent) : document;
20913
- }
20914
 
20915
- function getDefaultTemplateChildren() {
20916
- return getChildren(popper);
20917
- }
 
 
 
 
 
 
 
 
 
20918
 
20919
- function getDelay(isShow) {
20920
- // For touch or keyboard input, force `0` delay for UX reasons
20921
- // Also if the instance is mounted but not visible (transitioning out),
20922
- // ignore delay
20923
- if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {
20924
- return 0;
20925
  }
20926
 
20927
- return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, tippy_esm_defaultProps.delay);
20928
- }
 
 
 
 
 
 
 
 
 
 
20929
 
20930
- function handleStyles() {
20931
- popper.style.pointerEvents = instance.props.interactive && instance.state.isVisible ? '' : 'none';
20932
- popper.style.zIndex = "" + instance.props.zIndex;
20933
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20934
 
20935
- function invokeHook(hook, args, shouldInvokePropsHook) {
20936
- if (shouldInvokePropsHook === void 0) {
20937
- shouldInvokePropsHook = true;
20938
- }
20939
 
20940
- pluginsHooks.forEach(function (pluginHooks) {
20941
- if (pluginHooks[hook]) {
20942
- pluginHooks[hook].apply(void 0, args);
20943
- }
20944
- });
 
 
 
 
 
 
 
 
 
 
 
20945
 
20946
- if (shouldInvokePropsHook) {
20947
- var _instance$props;
20948
 
20949
- (_instance$props = instance.props)[hook].apply(_instance$props, args);
20950
- }
20951
- }
20952
 
20953
- function handleAriaContentAttribute() {
20954
- var aria = instance.props.aria;
 
20955
 
20956
- if (!aria.content) {
20957
- return;
20958
- }
20959
 
20960
- var attr = "aria-" + aria.content;
20961
- var id = popper.id;
20962
- var nodes = normalizeToArray(instance.props.triggerTarget || reference);
20963
- nodes.forEach(function (node) {
20964
- var currentValue = node.getAttribute(attr);
20965
 
20966
- if (instance.state.isVisible) {
20967
- node.setAttribute(attr, currentValue ? currentValue + " " + id : id);
20968
- } else {
20969
- var nextValue = currentValue && currentValue.replace(id, '').trim();
 
 
20970
 
20971
- if (nextValue) {
20972
- node.setAttribute(attr, nextValue);
20973
- } else {
20974
- node.removeAttribute(attr);
20975
- }
20976
- }
20977
- });
20978
  }
20979
 
20980
- function handleAriaExpandedAttribute() {
20981
- if (hasAriaExpanded || !instance.props.aria.expanded) {
20982
- return;
20983
- }
 
 
20984
 
20985
- var nodes = normalizeToArray(instance.props.triggerTarget || reference);
20986
- nodes.forEach(function (node) {
20987
- if (instance.props.interactive) {
20988
- node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');
20989
- } else {
20990
- node.removeAttribute('aria-expanded');
20991
- }
20992
- });
20993
- }
 
 
 
 
 
 
 
 
 
20994
 
20995
- function cleanupInteractiveMouseListeners() {
20996
- getDocument().removeEventListener('mousemove', debouncedOnMouseMove);
20997
- mouseMoveListeners = mouseMoveListeners.filter(function (listener) {
20998
- return listener !== debouncedOnMouseMove;
20999
- });
21000
- }
21001
 
21002
- function onDocumentPress(event) {
21003
- // Moved finger to scroll instead of an intentional tap outside
21004
- if (currentInput.isTouch) {
21005
- if (didTouchMove || event.type === 'mousedown') {
21006
- return;
21007
- }
21008
- } // Clicked on interactive popper
21009
 
 
 
 
 
 
 
21010
 
21011
- if (instance.props.interactive && popper.contains(event.target)) {
21012
- return;
21013
- } // Clicked on the event listeners target
 
21014
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21015
 
21016
- if (getCurrentTarget().contains(event.target)) {
21017
- if (currentInput.isTouch) {
21018
- return;
21019
- }
21020
 
21021
- if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {
21022
- return;
21023
- }
21024
- } else {
21025
- invokeHook('onClickOutside', [instance, event]);
21026
- }
21027
 
21028
- if (instance.props.hideOnClick === true) {
21029
- instance.clearDelayTimeouts();
21030
- instance.hide(); // `mousedown` event is fired right before `focus` if pressing the
21031
- // currentTarget. This lets a tippy with `focus` trigger know that it
21032
- // should not show
21033
 
21034
- didHideDueToDocumentMouseDown = true;
21035
- setTimeout(function () {
21036
- didHideDueToDocumentMouseDown = false;
21037
- }); // The listener gets added in `scheduleShow()`, but this may be hiding it
21038
- // before it shows, and hide()'s early bail-out behavior can prevent it
21039
- // from being cleaned up
21040
 
21041
- if (!instance.state.isMounted) {
21042
- removeDocumentPress();
21043
- }
21044
- }
21045
- }
21046
 
21047
- function onTouchMove() {
21048
- didTouchMove = true;
21049
- }
21050
 
21051
- function onTouchStart() {
21052
- didTouchMove = false;
21053
- }
21054
 
21055
- function addDocumentPress() {
21056
- var doc = getDocument();
21057
- doc.addEventListener('mousedown', onDocumentPress, true);
21058
- doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
21059
- doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
21060
- doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
21061
- }
21062
 
21063
- function removeDocumentPress() {
21064
- var doc = getDocument();
21065
- doc.removeEventListener('mousedown', onDocumentPress, true);
21066
- doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
21067
- doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
21068
- doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
21069
- }
 
 
21070
 
21071
- function onTransitionedOut(duration, callback) {
21072
- onTransitionEnd(duration, function () {
21073
- if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {
21074
- callback();
 
 
 
 
21075
  }
21076
- });
21077
- }
 
 
 
 
 
21078
 
21079
- function onTransitionedIn(duration, callback) {
21080
- onTransitionEnd(duration, callback);
21081
  }
21082
 
21083
- function onTransitionEnd(duration, callback) {
21084
- var box = getDefaultTemplateChildren().box;
 
 
 
 
 
 
 
 
21085
 
21086
- function listener(event) {
21087
- if (event.target === box) {
21088
- updateTransitionEndListener(box, 'remove', listener);
21089
- callback();
21090
- }
21091
- } // Make callback synchronous if duration is 0
21092
- // `transitionend` won't fire otherwise
21093
 
 
 
 
 
 
 
 
 
21094
 
21095
- if (duration === 0) {
21096
- return callback();
21097
  }
21098
 
21099
- updateTransitionEndListener(box, 'remove', currentTransitionEndListener);
21100
- updateTransitionEndListener(box, 'add', listener);
21101
- currentTransitionEndListener = listener;
21102
- }
 
 
 
 
 
 
 
 
 
 
 
21103
 
21104
- function on(eventType, handler, options) {
21105
- if (options === void 0) {
21106
- options = false;
21107
- }
21108
 
21109
- var nodes = normalizeToArray(instance.props.triggerTarget || reference);
21110
- nodes.forEach(function (node) {
21111
- node.addEventListener(eventType, handler, options);
21112
- listeners.push({
21113
- node: node,
21114
- eventType: eventType,
21115
- handler: handler,
21116
- options: options
21117
- });
21118
- });
21119
  }
21120
 
21121
- function addListeners() {
21122
- if (getIsCustomTouchBehavior()) {
21123
- on('touchstart', onTrigger, {
21124
- passive: true
21125
- });
21126
- on('touchend', onMouseLeave, {
21127
- passive: true
21128
- });
21129
  }
21130
 
21131
- splitBySpaces(instance.props.trigger).forEach(function (eventType) {
21132
- if (eventType === 'manual') {
21133
- return;
21134
- }
21135
 
21136
- on(eventType, onTrigger);
 
 
21137
 
21138
- switch (eventType) {
21139
- case 'mouseenter':
21140
- on('mouseleave', onMouseLeave);
21141
- break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21142
 
21143
- case 'focus':
21144
- on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut);
21145
- break;
21146
 
21147
- case 'focusin':
21148
- on('focusout', onBlurOrFocusOut);
21149
- break;
21150
- }
21151
- });
21152
- }
21153
 
21154
- function removeListeners() {
21155
- listeners.forEach(function (_ref) {
21156
- var node = _ref.node,
21157
- eventType = _ref.eventType,
21158
- handler = _ref.handler,
21159
- options = _ref.options;
21160
- node.removeEventListener(eventType, handler, options);
21161
- });
21162
- listeners = [];
21163
- }
21164
 
21165
- function onTrigger(event) {
21166
- var _lastTriggerEvent;
21167
 
21168
- var shouldScheduleClickHide = false;
21169
 
21170
- if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {
21171
- return;
21172
- }
21173
 
21174
- var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';
21175
- lastTriggerEvent = event;
21176
- currentTarget = event.currentTarget;
21177
- handleAriaExpandedAttribute();
21178
 
21179
- if (!instance.state.isVisible && isMouseEvent(event)) {
21180
- // If scrolling, `mouseenter` events can be fired if the cursor lands
21181
- // over a new target, but `mousemove` events don't get fired. This
21182
- // causes interactive tooltips to get stuck open until the cursor is
21183
- // moved
21184
- mouseMoveListeners.forEach(function (listener) {
21185
- return listener(event);
21186
- });
21187
- } // Toggle show/hide when clicking click-triggered tooltips
21188
 
21189
 
21190
- if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
21191
- shouldScheduleClickHide = true;
21192
- } else {
21193
- scheduleShow(event);
21194
- }
21195
 
21196
- if (event.type === 'click') {
21197
- isVisibleFromClick = !shouldScheduleClickHide;
21198
- }
21199
 
21200
- if (shouldScheduleClickHide && !wasFocused) {
21201
- scheduleHide(event);
21202
- }
21203
- }
21204
 
21205
- function onMouseMove(event) {
21206
- var target = event.target;
21207
- var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);
21208
 
21209
- if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {
21210
- return;
21211
- }
21212
 
21213
- var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {
21214
- var _instance$popperInsta;
21215
 
21216
- var instance = popper._tippy;
21217
- var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;
21218
 
21219
- if (state) {
21220
- return {
21221
- popperRect: popper.getBoundingClientRect(),
21222
- popperState: state,
21223
- props: props
21224
- };
21225
- }
21226
 
21227
- return null;
21228
- }).filter(Boolean);
21229
 
21230
- if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {
21231
- cleanupInteractiveMouseListeners();
21232
- scheduleHide(event);
21233
- }
21234
- }
21235
 
21236
- function onMouseLeave(event) {
21237
- var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;
21238
 
21239
- if (shouldBail) {
21240
- return;
21241
- }
21242
 
21243
- if (instance.props.interactive) {
21244
- instance.hideWithInteractivity(event);
21245
- return;
21246
- }
21247
 
21248
- scheduleHide(event);
 
 
 
 
 
21249
  }
 
 
 
 
 
 
 
 
 
21250
 
21251
- function onBlurOrFocusOut(event) {
21252
- if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {
21253
- return;
21254
- } // If focus was moved to within the popper
21255
-
21256
-
21257
- if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {
21258
- return;
21259
- }
21260
-
21261
- scheduleHide(event);
21262
- }
 
 
 
 
 
21263
 
21264
- function isEventListenerStopped(event) {
21265
- return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;
21266
- }
 
 
21267
 
21268
- function createPopperInstance() {
21269
- destroyPopperInstance();
21270
- var _instance$props2 = instance.props,
21271
- popperOptions = _instance$props2.popperOptions,
21272
- placement = _instance$props2.placement,
21273
- offset = _instance$props2.offset,
21274
- getReferenceClientRect = _instance$props2.getReferenceClientRect,
21275
- moveTransition = _instance$props2.moveTransition;
21276
- var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;
21277
- var computedReference = getReferenceClientRect ? {
21278
- getBoundingClientRect: getReferenceClientRect,
21279
- contextElement: getReferenceClientRect.contextElement || getCurrentTarget()
21280
- } : reference;
21281
- var tippyModifier = {
21282
- name: '$$tippy',
21283
- enabled: true,
21284
- phase: 'beforeWrite',
21285
- requires: ['computeStyles'],
21286
- fn: function fn(_ref2) {
21287
- var state = _ref2.state;
21288
 
21289
- if (getIsDefaultRenderFn()) {
21290
- var _getDefaultTemplateCh = getDefaultTemplateChildren(),
21291
- box = _getDefaultTemplateCh.box;
21292
 
21293
- ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {
21294
- if (attr === 'placement') {
21295
- box.setAttribute('data-placement', state.placement);
21296
- } else {
21297
- if (state.attributes.popper["data-popper-" + attr]) {
21298
- box.setAttribute("data-" + attr, '');
21299
- } else {
21300
- box.removeAttribute("data-" + attr);
21301
- }
21302
- }
21303
- });
21304
- state.attributes.popper = {};
21305
  }
21306
  }
21307
  };
21308
- var modifiers = [{
21309
- name: 'offset',
21310
- options: {
21311
- offset: offset
21312
- }
21313
- }, {
21314
- name: 'preventOverflow',
21315
- options: {
21316
- padding: {
21317
- top: 2,
21318
- bottom: 2,
21319
- left: 5,
21320
- right: 5
21321
- }
21322
- }
21323
- }, {
21324
- name: 'flip',
21325
- options: {
21326
- padding: 5
21327
- }
21328
- }, {
21329
- name: 'computeStyles',
21330
- options: {
21331
- adaptive: !moveTransition
21332
- }
21333
- }, tippyModifier];
21334
 
21335
- if (getIsDefaultRenderFn() && arrow) {
21336
- modifiers.push({
21337
- name: 'arrow',
21338
- options: {
21339
- element: arrow,
21340
- padding: 3
21341
- }
21342
- });
21343
- }
21344
 
21345
- modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);
21346
- instance.popperInstance = popper_createPopper(computedReference, popper, Object.assign({}, popperOptions, {
21347
- placement: placement,
21348
- onFirstUpdate: onFirstUpdate,
21349
- modifiers: modifiers
21350
- }));
21351
- }
 
21352
 
21353
- function destroyPopperInstance() {
21354
- if (instance.popperInstance) {
21355
- instance.popperInstance.destroy();
21356
- instance.popperInstance = null;
21357
  }
21358
- }
21359
-
21360
- function mount() {
21361
- var appendTo = instance.props.appendTo;
21362
- var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so
21363
- // it's directly after the reference element so the elements inside the
21364
- // tippy can be tabbed to
21365
- // If there are clipping issues, the user can specify a different appendTo
21366
- // and ensure focus management is handled correctly manually
 
 
 
21367
 
21368
- var node = getCurrentTarget();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21369
 
21370
- if (instance.props.interactive && appendTo === tippy_esm_defaultProps.appendTo || appendTo === 'parent') {
21371
- parentNode = node.parentNode;
21372
- } else {
21373
- parentNode = invokeWithArgsOrReturn(appendTo, [node]);
21374
- } // The popper element needs to exist on the DOM before its position can be
21375
- // updated as Popper needs to read its dimensions
21376
 
21377
 
21378
- if (!parentNode.contains(popper)) {
21379
- parentNode.appendChild(popper);
21380
- }
21381
 
21382
- createPopperInstance();
21383
- /* istanbul ignore else */
21384
 
21385
- if (false) {}
21386
- }
21387
 
21388
- function getNestedPopperTree() {
21389
- return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21390
  }
 
 
 
 
 
 
 
 
 
 
 
 
21391
 
21392
- function scheduleShow(event) {
21393
- instance.clearDelayTimeouts();
 
 
 
 
 
 
 
 
 
 
 
 
21394
 
21395
- if (event) {
21396
- invokeHook('onTrigger', [instance, event]);
21397
- }
21398
 
21399
- addDocumentPress();
21400
- var delay = getDelay(true);
21401
 
21402
- var _getNormalizedTouchSe = getNormalizedTouchSettings(),
21403
- touchValue = _getNormalizedTouchSe[0],
21404
- touchDelay = _getNormalizedTouchSe[1];
21405
 
21406
- if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {
21407
- delay = touchDelay;
21408
- }
21409
 
21410
- if (delay) {
21411
- showTimeout = setTimeout(function () {
21412
- instance.show();
21413
- }, delay);
21414
- } else {
21415
- instance.show();
21416
- }
21417
- }
21418
 
21419
- function scheduleHide(event) {
21420
- instance.clearDelayTimeouts();
21421
- invokeHook('onUntrigger', [instance, event]);
21422
 
21423
- if (!instance.state.isVisible) {
21424
- removeDocumentPress();
21425
- return;
21426
- } // For interactive tippies, scheduleHide is added to a document.body handler
21427
- // from onMouseLeave so must intercept scheduled hides from mousemove/leave
21428
- // events when trigger contains mouseenter and click, and the tip is
21429
- // currently shown as a result of a click.
21430
 
21431
 
21432
- if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {
21433
- return;
21434
- }
21435
 
21436
- var delay = getDelay(false);
21437
 
21438
- if (delay) {
21439
- hideTimeout = setTimeout(function () {
21440
- if (instance.state.isVisible) {
21441
- instance.hide();
21442
- }
21443
- }, delay);
21444
- } else {
21445
- // Fixes a `transitionend` problem when it fires 1 frame too
21446
- // late sometimes, we don't want hide() to be called.
21447
- scheduleHideAnimationFrame = requestAnimationFrame(function () {
21448
- instance.hide();
21449
- });
21450
- }
21451
- } // ===========================================================================
21452
- // 🔑 Public methods
21453
- // ===========================================================================
21454
 
21455
 
21456
- function enable() {
21457
- instance.state.isEnabled = true;
21458
- }
 
 
 
 
 
 
21459
 
21460
- function disable() {
21461
- // Disabling the instance should also hide it
21462
- // https://github.com/atomiks/tippy.js-react/issues/106
21463
- instance.hide();
21464
- instance.state.isEnabled = false;
21465
- }
21466
 
21467
- function clearDelayTimeouts() {
21468
- clearTimeout(showTimeout);
21469
- clearTimeout(hideTimeout);
21470
- cancelAnimationFrame(scheduleHideAnimationFrame);
21471
- }
 
 
 
 
 
 
 
 
21472
 
21473
- function setProps(partialProps) {
21474
- /* istanbul ignore else */
21475
- if (false) {}
 
 
 
 
 
 
21476
 
21477
- if (instance.state.isDestroyed) {
21478
- return;
21479
- }
 
 
 
 
 
 
 
 
21480
 
21481
- invokeHook('onBeforeUpdate', [instance, partialProps]);
21482
- removeListeners();
21483
- var prevProps = instance.props;
21484
- var nextProps = evaluateProps(reference, Object.assign({}, instance.props, {}, partialProps, {
21485
- ignoreAttributes: true
21486
- }));
21487
- instance.props = nextProps;
21488
- addListeners();
21489
 
21490
- if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {
21491
- cleanupInteractiveMouseListeners();
21492
- debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, nextProps.interactiveDebounce);
21493
- } // Ensure stale aria-expanded attributes are removed
 
21494
 
 
21495
 
21496
- if (prevProps.triggerTarget && !nextProps.triggerTarget) {
21497
- normalizeToArray(prevProps.triggerTarget).forEach(function (node) {
21498
- node.removeAttribute('aria-expanded');
21499
- });
21500
- } else if (nextProps.triggerTarget) {
21501
- reference.removeAttribute('aria-expanded');
21502
- }
21503
 
21504
- handleAriaExpandedAttribute();
21505
- handleStyles();
 
 
 
 
 
21506
 
21507
- if (onUpdate) {
21508
- onUpdate(prevProps, nextProps);
21509
- }
 
 
 
 
21510
 
21511
- if (instance.popperInstance) {
21512
- createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,
21513
- // and the nested ones get re-rendered first.
21514
- // https://github.com/atomiks/tippyjs-react/issues/177
21515
- // TODO: find a cleaner / more efficient solution(!)
 
 
21516
 
21517
- getNestedPopperTree().forEach(function (nestedPopper) {
21518
- // React (and other UI libs likely) requires a rAF wrapper as it flushes
21519
- // its work in one
21520
- requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);
21521
- });
21522
- }
 
21523
 
21524
- invokeHook('onAfterUpdate', [instance, partialProps]);
21525
- }
 
 
 
 
 
21526
 
21527
- function setContent(content) {
21528
- instance.setProps({
21529
- content: content
21530
- });
21531
- }
21532
 
21533
- function show() {
21534
- /* istanbul ignore else */
21535
- if (false) {} // Early bail-out
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21536
 
 
21537
 
21538
- var isAlreadyVisible = instance.state.isVisible;
21539
- var isDestroyed = instance.state.isDestroyed;
21540
- var isDisabled = !instance.state.isEnabled;
21541
- var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;
21542
- var duration = getValueAtIndexOrReturn(instance.props.duration, 0, tippy_esm_defaultProps.duration);
21543
 
21544
- if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {
 
 
 
21545
  return;
21546
- } // Normalize `disabled` behavior across browsers.
21547
- // Firefox allows events on disabled elements, but Chrome doesn't.
21548
- // Using a wrapper element (i.e. <span>) is recommended.
21549
 
21550
 
21551
- if (getCurrentTarget().hasAttribute('disabled')) {
21552
  return;
21553
  }
21554
 
21555
- invokeHook('onShow', [instance], false);
21556
 
21557
- if (instance.props.onShow(instance) === false) {
21558
- return;
21559
  }
21560
 
21561
- instance.state.isVisible = true;
21562
-
21563
- if (getIsDefaultRenderFn()) {
21564
- popper.style.visibility = 'visible';
21565
  }
 
21566
 
21567
- handleStyles();
21568
- addDocumentPress();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21569
 
21570
- if (!instance.state.isMounted) {
21571
- popper.style.transition = 'none';
21572
- } // If flipping to the opposite side after hiding at least once, the
21573
- // animation will use the wrong placement without resetting the duration
21574
 
21575
 
21576
- if (getIsDefaultRenderFn()) {
21577
- var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),
21578
- box = _getDefaultTemplateCh2.box,
21579
- content = _getDefaultTemplateCh2.content;
21580
 
21581
- setTransitionDuration([box, content], 0);
21582
- }
21583
 
21584
- onFirstUpdate = function onFirstUpdate() {
21585
- var _instance$popperInsta2;
21586
 
21587
- if (!instance.state.isVisible || ignoreOnFirstUpdate) {
21588
- return;
21589
- }
21590
 
21591
- ignoreOnFirstUpdate = true; // reflow
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21592
 
21593
- void popper.offsetHeight;
21594
- popper.style.transition = instance.props.moveTransition;
 
 
 
 
 
 
 
 
 
 
 
21595
 
21596
- if (getIsDefaultRenderFn() && instance.props.animation) {
21597
- var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),
21598
- _box = _getDefaultTemplateCh3.box,
21599
- _content = _getDefaultTemplateCh3.content;
21600
 
21601
- setTransitionDuration([_box, _content], duration);
21602
- setVisibilityState([_box, _content], 'visible');
21603
- }
21604
 
21605
- handleAriaContentAttribute();
21606
- handleAriaExpandedAttribute();
21607
- pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the
21608
- // popper has been positioned for the first time
21609
 
21610
- (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();
21611
- instance.state.isMounted = true;
21612
- invokeHook('onMount', [instance]);
21613
 
21614
- if (instance.props.animation && getIsDefaultRenderFn()) {
21615
- onTransitionedIn(duration, function () {
21616
- instance.state.isShown = true;
21617
- invokeHook('onShown', [instance]);
21618
- });
 
 
 
 
 
 
 
 
21619
  }
21620
- };
21621
 
21622
- mount();
21623
- }
 
 
 
 
 
 
 
 
 
 
 
 
21624
 
21625
- function hide() {
21626
- /* istanbul ignore else */
21627
- if (false) {} // Early bail-out
 
 
 
 
 
 
 
21628
 
21629
 
21630
- var isAlreadyHidden = !instance.state.isVisible;
21631
- var isDestroyed = instance.state.isDestroyed;
21632
- var isDisabled = !instance.state.isEnabled;
21633
- var duration = getValueAtIndexOrReturn(instance.props.duration, 1, tippy_esm_defaultProps.duration);
21634
 
21635
- if (isAlreadyHidden || isDestroyed || isDisabled) {
21636
- return;
21637
- }
21638
 
21639
- invokeHook('onHide', [instance], false);
21640
 
21641
- if (instance.props.onHide(instance) === false) {
21642
- return;
21643
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21644
 
21645
- instance.state.isVisible = false;
21646
- instance.state.isShown = false;
21647
- ignoreOnFirstUpdate = false;
21648
- isVisibleFromClick = false;
21649
 
21650
- if (getIsDefaultRenderFn()) {
21651
- popper.style.visibility = 'hidden';
21652
- }
21653
 
21654
- cleanupInteractiveMouseListeners();
21655
- removeDocumentPress();
21656
- handleStyles();
21657
 
21658
- if (getIsDefaultRenderFn()) {
21659
- var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),
21660
- box = _getDefaultTemplateCh4.box,
21661
- content = _getDefaultTemplateCh4.content;
21662
 
21663
- if (instance.props.animation) {
21664
- setTransitionDuration([box, content], duration);
21665
- setVisibilityState([box, content], 'hidden');
21666
- }
21667
- }
21668
 
21669
- handleAriaContentAttribute();
21670
- handleAriaExpandedAttribute();
 
 
 
 
 
 
 
21671
 
21672
- if (instance.props.animation) {
21673
- if (getIsDefaultRenderFn()) {
21674
- onTransitionedOut(duration, instance.unmount);
21675
- }
21676
- } else {
21677
- instance.unmount();
21678
  }
21679
  }
 
 
 
 
 
 
 
21680
 
21681
- function hideWithInteractivity(event) {
21682
- /* istanbul ignore else */
21683
- if (false) {}
21684
-
21685
- getDocument().addEventListener('mousemove', debouncedOnMouseMove);
21686
- pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);
21687
- debouncedOnMouseMove(event);
21688
- }
21689
-
21690
- function unmount() {
21691
- /* istanbul ignore else */
21692
- if (false) {}
21693
-
21694
- if (instance.state.isVisible) {
21695
- instance.hide();
21696
- }
21697
 
21698
- if (!instance.state.isMounted) {
21699
- return;
21700
- }
21701
 
21702
- destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper
21703
- // tree by default. This seems mainly for interactive tippies, but we should
21704
- // find a workaround if possible
21705
 
21706
- getNestedPopperTree().forEach(function (nestedPopper) {
21707
- nestedPopper._tippy.unmount();
21708
- });
21709
 
21710
- if (popper.parentNode) {
21711
- popper.parentNode.removeChild(popper);
21712
- }
21713
 
21714
- mountedInstances = mountedInstances.filter(function (i) {
21715
- return i !== instance;
21716
- });
21717
- instance.state.isMounted = false;
21718
- invokeHook('onHidden', [instance]);
21719
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21720
 
21721
- function destroy() {
21722
- /* istanbul ignore else */
21723
- if (false) {}
21724
 
21725
- if (instance.state.isDestroyed) {
21726
- return;
21727
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21728
 
21729
- instance.clearDelayTimeouts();
21730
- instance.unmount();
21731
- removeListeners();
21732
- delete reference._tippy;
21733
- instance.state.isDestroyed = true;
21734
- invokeHook('onDestroy', [instance]);
21735
- }
 
 
 
 
21736
  }
 
21737
 
21738
- function tippy(targets, optionalProps) {
21739
- if (optionalProps === void 0) {
21740
- optionalProps = {};
21741
- }
21742
 
21743
- var plugins = tippy_esm_defaultProps.plugins.concat(optionalProps.plugins || []);
21744
- /* istanbul ignore else */
21745
 
21746
- if (false) {}
21747
 
21748
- bindGlobalEventListeners();
21749
- var passedProps = Object.assign({}, optionalProps, {
21750
- plugins: plugins
21751
- });
21752
- var elements = getArrayOfElements(targets);
21753
- /* istanbul ignore else */
21754
 
21755
- if (false) { var isMoreThanOneReferenceElement, isSingleContentElement; }
21756
 
21757
- var instances = elements.reduce(function (acc, reference) {
21758
- var instance = reference && createTippy(reference, passedProps);
21759
 
21760
- if (instance) {
21761
- acc.push(instance);
21762
- }
21763
 
21764
- return acc;
21765
- }, []);
21766
- return tippy_esm_isElement(targets) ? instances[0] : instances;
21767
- }
21768
 
21769
- tippy.defaultProps = tippy_esm_defaultProps;
21770
- tippy.setDefaultProps = setDefaultProps;
21771
- tippy.currentInput = currentInput;
21772
- var hideAll = function hideAll(_temp) {
21773
- var _ref = _temp === void 0 ? {} : _temp,
21774
- excludedReferenceOrInstance = _ref.exclude,
21775
- duration = _ref.duration;
21776
 
21777
- mountedInstances.forEach(function (instance) {
21778
- var isExcluded = false;
21779
 
21780
- if (excludedReferenceOrInstance) {
21781
- isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;
21782
- }
21783
 
21784
- if (!isExcluded) {
21785
- var originalDuration = instance.props.duration;
21786
- instance.setProps({
21787
- duration: duration
21788
- });
21789
- instance.hide();
21790
 
21791
- if (!instance.state.isDestroyed) {
21792
- instance.setProps({
21793
- duration: originalDuration
21794
- });
21795
- }
21796
- }
21797
- });
21798
- };
21799
 
21800
- // every time the popper is destroyed (i.e. a new target), removing the styles
21801
- // and causing transitions to break for singletons when the console is open, but
21802
- // most notably for non-transform styles being used, `gpuAcceleration: false`.
21803
 
21804
- var applyStylesModifier = Object.assign({}, modifiers_applyStyles, {
21805
- effect: function effect(_ref) {
21806
- var state = _ref.state;
21807
- var initialStyles = {
21808
- popper: {
21809
- position: state.options.strategy,
21810
- left: '0',
21811
- top: '0',
21812
- margin: '0'
21813
- },
21814
- arrow: {
21815
- position: 'absolute'
21816
- },
21817
- reference: {}
21818
- };
21819
- Object.assign(state.elements.popper.style, initialStyles.popper);
21820
- state.styles = initialStyles;
21821
 
21822
- if (state.elements.arrow) {
21823
- Object.assign(state.elements.arrow.style, initialStyles.arrow);
21824
- } // intentionally return no cleanup function
21825
- // return () => { ... }
21826
 
 
 
21827
  }
21828
- });
21829
 
21830
- var createSingleton = function createSingleton(tippyInstances, optionalProps) {
21831
- var _optionalProps$popper;
 
21832
 
21833
- if (optionalProps === void 0) {
21834
- optionalProps = {};
21835
- }
21836
 
21837
- /* istanbul ignore else */
21838
- if (false) {}
21839
 
21840
- var individualInstances = tippyInstances;
21841
- var references = [];
21842
- var currentTarget;
21843
- var overrides = optionalProps.overrides;
21844
- var interceptSetPropsCleanups = [];
21845
- var shownOnCreate = false;
21846
 
21847
- function setReferences() {
21848
- references = individualInstances.map(function (instance) {
21849
- return instance.reference;
21850
- });
21851
  }
 
 
 
 
 
 
 
 
 
21852
 
21853
- function enableInstances(isEnabled) {
21854
- individualInstances.forEach(function (instance) {
21855
- if (isEnabled) {
21856
- instance.enable();
21857
- } else {
21858
- instance.disable();
21859
- }
21860
- });
21861
- }
 
 
 
 
 
 
 
 
21862
 
21863
- function interceptSetProps(singleton) {
21864
- return individualInstances.map(function (instance) {
21865
- var originalSetProps = instance.setProps;
 
 
21866
 
21867
- instance.setProps = function (props) {
21868
- originalSetProps(props);
 
 
 
 
21869
 
21870
- if (instance.reference === currentTarget) {
21871
- singleton.setProps(props);
 
 
 
 
 
 
21872
  }
21873
- };
21874
-
21875
- return function () {
21876
- instance.setProps = originalSetProps;
21877
- };
21878
- });
21879
- } // have to pass singleton, as it maybe undefined on first call
21880
-
21881
 
21882
- function prepareInstance(singleton, target) {
21883
- var index = references.indexOf(target); // bail-out
 
21884
 
21885
- if (target === currentTarget) {
21886
- return;
21887
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21888
 
21889
- currentTarget = target;
21890
- var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {
21891
- acc[prop] = individualInstances[index].props[prop];
21892
- return acc;
21893
- }, {});
21894
- singleton.setProps(Object.assign({}, overrideProps, {
21895
- getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {
21896
- return target.getBoundingClientRect();
21897
- }
 
 
 
 
 
 
21898
  }));
21899
- }
 
 
 
21900
 
21901
- enableInstances(false);
21902
- setReferences();
21903
- var plugin = {
21904
- fn: function fn() {
21905
- return {
21906
- onDestroy: function onDestroy() {
21907
- enableInstances(true);
21908
- },
21909
- onHidden: function onHidden() {
21910
- currentTarget = null;
21911
- },
21912
- onClickOutside: function onClickOutside(instance) {
21913
- if (instance.props.showOnCreate && !shownOnCreate) {
21914
- shownOnCreate = true;
21915
- currentTarget = null;
21916
- }
21917
- },
21918
- onShow: function onShow(instance) {
21919
- if (instance.props.showOnCreate && !shownOnCreate) {
21920
- shownOnCreate = true;
21921
- prepareInstance(instance, references[0]);
21922
- }
21923
- },
21924
- onTrigger: function onTrigger(instance, event) {
21925
- prepareInstance(instance, event.currentTarget);
21926
- }
21927
- };
21928
  }
21929
- };
21930
- var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {
21931
- plugins: [plugin].concat(optionalProps.plugins || []),
21932
- triggerTarget: references,
21933
- popperOptions: Object.assign({}, optionalProps.popperOptions, {
21934
- modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])
21935
- })
21936
- }));
21937
- var originalShow = singleton.show;
21938
 
21939
- singleton.show = function (target) {
21940
- originalShow(); // first time, showOnCreate or programmatic call with no params
21941
- // default to showing first instance
 
 
 
 
 
 
 
 
 
 
 
21942
 
21943
- if (!currentTarget && target == null) {
21944
- return prepareInstance(singleton, references[0]);
21945
- } // triggered from event (do nothing as prepareInstance already called by onTrigger)
21946
- // programmatic call with no params when already visible (do nothing again)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21947
 
21948
 
21949
- if (currentTarget && target == null) {
21950
- return;
21951
- } // target is index of instance
21952
 
21953
 
21954
- if (typeof target === 'number') {
21955
- return references[target] && prepareInstance(singleton, references[target]);
21956
- } // target is a child tippy instance
 
 
 
21957
 
 
 
21958
 
21959
- if (individualInstances.includes(target)) {
21960
- var ref = target.reference;
21961
- return prepareInstance(singleton, ref);
21962
- } // target is a ReferenceElement
21963
 
21964
 
21965
- if (references.includes(target)) {
21966
- return prepareInstance(singleton, target);
21967
- }
21968
- };
21969
 
21970
- singleton.showNext = function () {
21971
- var first = references[0];
21972
 
21973
- if (!currentTarget) {
21974
- return singleton.show(0);
21975
- }
21976
 
21977
- var index = references.indexOf(currentTarget);
21978
- singleton.show(references[index + 1] || first);
21979
- };
21980
 
21981
- singleton.showPrevious = function () {
21982
- var last = references[references.length - 1];
21983
 
21984
- if (!currentTarget) {
21985
- return singleton.show(last);
21986
- }
21987
 
21988
- var index = references.indexOf(currentTarget);
21989
- var target = references[index - 1] || last;
21990
- singleton.show(target);
21991
- };
21992
 
21993
- var originalSetProps = singleton.setProps;
21994
 
21995
- singleton.setProps = function (props) {
21996
- overrides = props.overrides || overrides;
21997
- originalSetProps(props);
21998
- };
21999
 
22000
- singleton.setInstances = function (nextInstances) {
22001
- enableInstances(true);
22002
- interceptSetPropsCleanups.forEach(function (fn) {
22003
- return fn();
22004
- });
22005
- individualInstances = nextInstances;
22006
- enableInstances(false);
22007
- setReferences();
22008
- interceptSetProps(singleton);
22009
- singleton.setProps({
22010
- triggerTarget: references
22011
- });
22012
- };
22013
 
22014
- interceptSetPropsCleanups = interceptSetProps(singleton);
22015
- return singleton;
22016
- };
 
 
22017
 
22018
- var BUBBLING_EVENTS_MAP = {
22019
- mouseover: 'mouseenter',
22020
- focusin: 'focus',
22021
- click: 'click'
 
 
 
 
 
 
 
 
 
 
 
 
22022
  };
22023
  /**
22024
- * Creates a delegate instance that controls the creation of tippy instances
22025
- * for child elements (`target` CSS selector).
 
22026
  */
22027
 
22028
- function delegate(targets, props) {
22029
- /* istanbul ignore else */
22030
- if (false) {}
22031
-
22032
- var listeners = [];
22033
- var childTippyInstances = [];
22034
- var disabled = false;
22035
- var target = props.target;
22036
- var nativeProps = removeProperties(props, ['target']);
22037
- var parentProps = Object.assign({}, nativeProps, {
22038
- trigger: 'manual',
22039
- touch: false
22040
- });
22041
- var childProps = Object.assign({}, nativeProps, {
22042
- showOnCreate: true
22043
- });
22044
- var returnValue = tippy(targets, parentProps);
22045
- var normalizedReturnValue = normalizeToArray(returnValue);
 
 
 
 
 
22046
 
22047
- function onTrigger(event) {
22048
- if (!event.target || disabled) {
22049
- return;
22050
- }
 
 
 
 
 
 
 
 
 
22051
 
22052
- var targetNode = event.target.closest(target);
 
 
 
 
 
 
22053
 
22054
- if (!targetNode) {
22055
- return;
22056
- } // Get relevant trigger with fallbacks:
22057
- // 1. Check `data-tippy-trigger` attribute on target node
22058
- // 2. Fallback to `trigger` passed to `delegate()`
22059
- // 3. Fallback to `defaultProps.trigger`
22060
 
 
 
 
 
 
 
 
 
22061
 
22062
- var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || tippy_esm_defaultProps.trigger; // @ts-ignore
 
22063
 
22064
- if (targetNode._tippy) {
22065
- return;
22066
  }
 
 
 
22067
 
22068
- if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {
22069
- return;
22070
- }
 
 
 
 
22071
 
22072
- if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {
22073
- return;
 
 
 
 
22074
  }
22075
 
22076
- var instance = tippy(targetNode, childProps);
22077
 
22078
- if (instance) {
22079
- childTippyInstances = childTippyInstances.concat(instance);
22080
  }
22081
- }
 
 
22082
 
22083
- function on(node, eventType, handler, options) {
22084
- if (options === void 0) {
22085
- options = false;
22086
  }
 
 
 
 
22087
 
22088
- node.addEventListener(eventType, handler, options);
22089
- listeners.push({
22090
- node: node,
22091
- eventType: eventType,
22092
- handler: handler,
22093
- options: options
22094
- });
22095
- }
22096
 
22097
- function addEventListeners(instance) {
22098
- var reference = instance.reference;
22099
- on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);
22100
- on(reference, 'mouseover', onTrigger);
22101
- on(reference, 'focusin', onTrigger);
22102
- on(reference, 'click', onTrigger);
22103
- }
22104
 
22105
- function removeEventListeners() {
22106
- listeners.forEach(function (_ref) {
22107
- var node = _ref.node,
22108
- eventType = _ref.eventType,
22109
- handler = _ref.handler,
22110
- options = _ref.options;
22111
- node.removeEventListener(eventType, handler, options);
22112
- });
22113
- listeners = [];
22114
- }
22115
 
22116
- function applyMutations(instance) {
22117
- var originalDestroy = instance.destroy;
22118
- var originalEnable = instance.enable;
22119
- var originalDisable = instance.disable;
22120
 
22121
- instance.destroy = function (shouldDestroyChildInstances) {
22122
- if (shouldDestroyChildInstances === void 0) {
22123
- shouldDestroyChildInstances = true;
22124
- }
22125
 
22126
- if (shouldDestroyChildInstances) {
22127
- childTippyInstances.forEach(function (instance) {
22128
- instance.destroy();
22129
- });
22130
- }
22131
 
22132
- childTippyInstances = [];
22133
- removeEventListeners();
22134
- originalDestroy();
22135
- };
22136
 
22137
- instance.enable = function () {
22138
- originalEnable();
22139
- childTippyInstances.forEach(function (instance) {
22140
- return instance.enable();
22141
- });
22142
- disabled = false;
22143
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22144
 
22145
- instance.disable = function () {
22146
- originalDisable();
22147
- childTippyInstances.forEach(function (instance) {
22148
- return instance.disable();
22149
- });
22150
- disabled = true;
22151
- };
22152
 
22153
- addEventListeners(instance);
22154
- }
22155
 
22156
- normalizedReturnValue.forEach(applyMutations);
22157
- return returnValue;
22158
- }
22159
 
22160
- var animateFill = {
22161
- name: 'animateFill',
22162
- defaultValue: false,
22163
- fn: function fn(instance) {
22164
- var _instance$props$rende;
22165
 
22166
- // @ts-ignore
22167
- if (!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy)) {
22168
- if (false) {}
22169
 
22170
- return {};
22171
- }
22172
 
22173
- var _getChildren = getChildren(instance.popper),
22174
- box = _getChildren.box,
22175
- content = _getChildren.content;
22176
 
22177
- var backdrop = instance.props.animateFill ? createBackdropElement() : null;
22178
- return {
22179
- onCreate: function onCreate() {
22180
- if (backdrop) {
22181
- box.insertBefore(backdrop, box.firstElementChild);
22182
- box.setAttribute('data-animatefill', '');
22183
- box.style.overflow = 'hidden';
22184
- instance.setProps({
22185
- arrow: false,
22186
- animation: 'shift-away'
22187
- });
22188
- }
22189
- },
22190
- onMount: function onMount() {
22191
- if (backdrop) {
22192
- var transitionDuration = box.style.transitionDuration;
22193
- var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the
22194
- // tooltip element. `clip-path` is the other alternative but is not
22195
- // well-supported and is buggy on some devices.
22196
 
22197
- content.style.transitionDelay = Math.round(duration / 10) + "ms";
22198
- backdrop.style.transitionDuration = transitionDuration;
22199
- setVisibilityState([backdrop], 'visible');
22200
- }
22201
- },
22202
- onShow: function onShow() {
22203
- if (backdrop) {
22204
- backdrop.style.transitionDuration = '0ms';
22205
- }
22206
- },
22207
- onHide: function onHide() {
22208
- if (backdrop) {
22209
- setVisibilityState([backdrop], 'hidden');
22210
- }
22211
- }
22212
- };
22213
- }
22214
- };
22215
-
22216
- function createBackdropElement() {
22217
- var backdrop = div();
22218
- backdrop.className = BACKDROP_CLASS;
22219
- setVisibilityState([backdrop], 'hidden');
22220
- return backdrop;
22221
- }
22222
-
22223
- var mouseCoords = {
22224
- clientX: 0,
22225
- clientY: 0
22226
- };
22227
- var activeInstances = [];
22228
-
22229
- function storeMouseCoords(_ref) {
22230
- var clientX = _ref.clientX,
22231
- clientY = _ref.clientY;
22232
- mouseCoords = {
22233
- clientX: clientX,
22234
- clientY: clientY
22235
- };
22236
  }
 
 
 
 
22237
 
22238
- function addMouseCoordsListener(doc) {
22239
- doc.addEventListener('mousemove', storeMouseCoords);
22240
- }
22241
 
22242
- function removeMouseCoordsListener(doc) {
22243
- doc.removeEventListener('mousemove', storeMouseCoords);
22244
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22245
 
22246
- var followCursor = {
22247
- name: 'followCursor',
22248
- defaultValue: false,
22249
- fn: function fn(instance) {
22250
- var reference = instance.reference;
22251
- var doc = getOwnerDocument(instance.props.triggerTarget || reference);
22252
- var isInternalUpdate = false;
22253
- var wasFocusEvent = false;
22254
- var isUnmounted = true;
22255
- var prevProps = instance.props;
22256
 
22257
- function getIsInitialBehavior() {
22258
- return instance.props.followCursor === 'initial' && instance.state.isVisible;
22259
- }
 
 
 
 
22260
 
22261
- function addListener() {
22262
- doc.addEventListener('mousemove', onMouseMove);
22263
- }
22264
 
22265
- function removeListener() {
22266
- doc.removeEventListener('mousemove', onMouseMove);
22267
- }
22268
 
22269
- function unsetGetReferenceClientRect() {
22270
- isInternalUpdate = true;
22271
- instance.setProps({
22272
- getReferenceClientRect: null
22273
- });
22274
- isInternalUpdate = false;
22275
  }
22276
 
22277
- function onMouseMove(event) {
22278
- // If the instance is interactive, avoid updating the position unless it's
22279
- // over the reference element
22280
- var isCursorOverReference = event.target ? reference.contains(event.target) : true;
22281
- var followCursor = instance.props.followCursor;
22282
- var clientX = event.clientX,
22283
- clientY = event.clientY;
22284
- var rect = reference.getBoundingClientRect();
22285
- var relativeX = clientX - rect.left;
22286
- var relativeY = clientY - rect.top;
22287
-
22288
- if (isCursorOverReference || !instance.props.interactive) {
22289
- instance.setProps({
22290
- getReferenceClientRect: function getReferenceClientRect() {
22291
- var rect = reference.getBoundingClientRect();
22292
- var x = clientX;
22293
- var y = clientY;
22294
-
22295
- if (followCursor === 'initial') {
22296
- x = rect.left + relativeX;
22297
- y = rect.top + relativeY;
22298
- }
22299
 
22300
- var top = followCursor === 'horizontal' ? rect.top : y;
22301
- var right = followCursor === 'vertical' ? rect.right : x;
22302
- var bottom = followCursor === 'horizontal' ? rect.bottom : y;
22303
- var left = followCursor === 'vertical' ? rect.left : x;
22304
- return {
22305
- width: right - left,
22306
- height: bottom - top,
22307
- top: top,
22308
- right: right,
22309
- bottom: bottom,
22310
- left: left
22311
- };
22312
- }
22313
- });
22314
- }
22315
  }
22316
 
22317
- function create() {
22318
- if (instance.props.followCursor) {
22319
- activeInstances.push({
22320
- instance: instance,
22321
- doc: doc
22322
- });
22323
- addMouseCoordsListener(doc);
22324
- }
22325
  }
 
22326
 
22327
- function destroy() {
22328
- activeInstances = activeInstances.filter(function (data) {
22329
- return data.instance !== instance;
22330
- });
22331
 
22332
- if (activeInstances.filter(function (data) {
22333
- return data.doc === doc;
22334
- }).length === 0) {
22335
- removeMouseCoordsListener(doc);
22336
  }
22337
- }
 
22338
 
22339
- return {
22340
- onCreate: create,
22341
- onDestroy: destroy,
22342
- onBeforeUpdate: function onBeforeUpdate() {
22343
- prevProps = instance.props;
22344
- },
22345
- onAfterUpdate: function onAfterUpdate(_, _ref2) {
22346
- var followCursor = _ref2.followCursor;
22347
 
22348
- if (isInternalUpdate) {
22349
- return;
22350
- }
22351
 
22352
- if (followCursor !== undefined && prevProps.followCursor !== followCursor) {
22353
- destroy();
 
 
22354
 
22355
- if (followCursor) {
22356
- create();
 
22357
 
22358
- if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {
22359
- addListener();
22360
- }
22361
- } else {
22362
- removeListener();
22363
- unsetGetReferenceClientRect();
22364
- }
22365
- }
22366
- },
22367
- onMount: function onMount() {
22368
- if (instance.props.followCursor && !wasFocusEvent) {
22369
- if (isUnmounted) {
22370
- onMouseMove(mouseCoords);
22371
- isUnmounted = false;
22372
- }
22373
 
22374
- if (!getIsInitialBehavior()) {
22375
- addListener();
22376
- }
22377
- }
22378
- },
22379
- onTrigger: function onTrigger(_, event) {
22380
- if (isMouseEvent(event)) {
22381
- mouseCoords = {
22382
- clientX: event.clientX,
22383
- clientY: event.clientY
22384
- };
22385
- }
22386
 
22387
- wasFocusEvent = event.type === 'focus';
22388
- },
22389
- onHidden: function onHidden() {
22390
- if (instance.props.followCursor) {
22391
- unsetGetReferenceClientRect();
22392
- removeListener();
22393
- isUnmounted = true;
22394
- }
22395
- }
22396
- };
22397
  }
22398
- };
22399
-
22400
- function getProps(props, modifier) {
22401
- var _props$popperOptions;
22402
-
22403
- return {
22404
- popperOptions: Object.assign({}, props.popperOptions, {
22405
- modifiers: [].concat((((_props$popperOptions = props.popperOptions) == null ? void 0 : _props$popperOptions.modifiers) || []).filter(function (_ref) {
22406
- var name = _ref.name;
22407
- return name !== modifier.name;
22408
- }), [modifier])
22409
- })
22410
- };
22411
- }
22412
 
22413
- var inlinePositioning = {
22414
- name: 'inlinePositioning',
22415
- defaultValue: false,
22416
- fn: function fn(instance) {
22417
- var reference = instance.reference;
22418
-
22419
- function isEnabled() {
22420
- return !!instance.props.inlinePositioning;
22421
  }
22422
 
22423
- var placement;
22424
- var cursorRectIndex = -1;
22425
- var isInternalUpdate = false;
22426
- var modifier = {
22427
- name: 'tippyInlinePositioning',
22428
- enabled: true,
22429
- phase: 'afterWrite',
22430
- fn: function fn(_ref2) {
22431
- var state = _ref2.state;
22432
-
22433
- if (isEnabled()) {
22434
- if (placement !== state.placement) {
22435
- instance.setProps({
22436
- getReferenceClientRect: function getReferenceClientRect() {
22437
- return _getReferenceClientRect(state.placement);
22438
- }
22439
- });
22440
- }
22441
 
22442
- placement = state.placement;
22443
- }
22444
- }
22445
- };
22446
 
22447
- function _getReferenceClientRect(placement) {
22448
- return getInlineBoundingClientRect(tippy_esm_getBasePlacement(placement), reference.getBoundingClientRect(), arrayFrom(reference.getClientRects()), cursorRectIndex);
22449
- }
22450
 
22451
- function setInternalProps(partialProps) {
22452
- isInternalUpdate = true;
22453
- instance.setProps(partialProps);
22454
- isInternalUpdate = false;
22455
- }
22456
 
22457
- function addModifier() {
22458
- if (!isInternalUpdate) {
22459
- setInternalProps(getProps(instance.props, modifier));
22460
- }
22461
- }
22462
 
22463
- return {
22464
- onCreate: addModifier,
22465
- onAfterUpdate: addModifier,
22466
- onTrigger: function onTrigger(_, event) {
22467
- if (isMouseEvent(event)) {
22468
- var rects = arrayFrom(instance.reference.getClientRects());
22469
- var cursorRect = rects.find(function (rect) {
22470
- return rect.left - 2 <= event.clientX && rect.right + 2 >= event.clientX && rect.top - 2 <= event.clientY && rect.bottom + 2 >= event.clientY;
22471
- });
22472
- cursorRectIndex = rects.indexOf(cursorRect);
22473
- }
22474
- },
22475
- onUntrigger: function onUntrigger() {
22476
- cursorRectIndex = -1;
22477
- }
22478
- };
22479
- }
22480
- };
22481
- function getInlineBoundingClientRect(currentBasePlacement, boundingRect, clientRects, cursorRectIndex) {
22482
- // Not an inline element, or placement is not yet known
22483
- if (clientRects.length < 2 || currentBasePlacement === null) {
22484
- return boundingRect;
22485
- } // There are two rects and they are disjoined
22486
 
22487
 
22488
- if (clientRects.length === 2 && cursorRectIndex >= 0 && clientRects[0].left > clientRects[1].right) {
22489
- return clientRects[cursorRectIndex] || boundingRect;
22490
- }
22491
 
22492
- switch (currentBasePlacement) {
22493
- case 'top':
22494
- case 'bottom':
22495
- {
22496
- var firstRect = clientRects[0];
22497
- var lastRect = clientRects[clientRects.length - 1];
22498
- var isTop = currentBasePlacement === 'top';
22499
- var top = firstRect.top;
22500
- var bottom = lastRect.bottom;
22501
- var left = isTop ? firstRect.left : lastRect.left;
22502
- var right = isTop ? firstRect.right : lastRect.right;
22503
- var width = right - left;
22504
- var height = bottom - top;
22505
- return {
22506
- top: top,
22507
- bottom: bottom,
22508
- left: left,
22509
- right: right,
22510
- width: width,
22511
- height: height
22512
- };
22513
- }
22514
 
22515
- case 'left':
22516
- case 'right':
22517
- {
22518
- var minLeft = Math.min.apply(Math, clientRects.map(function (rects) {
22519
- return rects.left;
22520
- }));
22521
- var maxRight = Math.max.apply(Math, clientRects.map(function (rects) {
22522
- return rects.right;
22523
- }));
22524
- var measureRects = clientRects.filter(function (rect) {
22525
- return currentBasePlacement === 'left' ? rect.left === minLeft : rect.right === maxRight;
22526
- });
22527
- var _top = measureRects[0].top;
22528
- var _bottom = measureRects[measureRects.length - 1].bottom;
22529
- var _left = minLeft;
22530
- var _right = maxRight;
22531
 
22532
- var _width = _right - _left;
22533
 
22534
- var _height = _bottom - _top;
22535
 
22536
- return {
22537
- top: _top,
22538
- bottom: _bottom,
22539
- left: _left,
22540
- right: _right,
22541
- width: _width,
22542
- height: _height
22543
- };
22544
- }
22545
 
22546
- default:
22547
- {
22548
- return boundingRect;
22549
- }
 
 
 
22550
  }
22551
  }
22552
 
22553
- var sticky = {
22554
- name: 'sticky',
22555
- defaultValue: false,
22556
- fn: function fn(instance) {
22557
- var reference = instance.reference,
22558
- popper = instance.popper;
22559
-
22560
- function getReference() {
22561
- return instance.popperInstance ? instance.popperInstance.state.elements.reference : reference;
22562
- }
22563
-
22564
- function shouldCheck(value) {
22565
- return instance.props.sticky === true || instance.props.sticky === value;
22566
- }
22567
-
22568
- var prevRefRect = null;
22569
- var prevPopRect = null;
22570
 
22571
- function updatePosition() {
22572
- var currentRefRect = shouldCheck('reference') ? getReference().getBoundingClientRect() : null;
22573
- var currentPopRect = shouldCheck('popper') ? popper.getBoundingClientRect() : null;
 
22574
 
22575
- if (currentRefRect && areRectsDifferent(prevRefRect, currentRefRect) || currentPopRect && areRectsDifferent(prevPopRect, currentPopRect)) {
22576
- if (instance.popperInstance) {
22577
- instance.popperInstance.update();
22578
  }
22579
  }
22580
-
22581
- prevRefRect = currentRefRect;
22582
- prevPopRect = currentPopRect;
22583
-
22584
- if (instance.state.isMounted) {
22585
- requestAnimationFrame(updatePosition);
22586
- }
22587
  }
22588
 
22589
- return {
22590
- onMount: function onMount() {
22591
- if (instance.props.sticky) {
22592
- updatePosition();
22593
- }
22594
- }
22595
- };
22596
- }
22597
- };
22598
-
22599
- function areRectsDifferent(rectA, rectB) {
22600
- if (rectA && rectB) {
22601
- return rectA.top !== rectB.top || rectA.right !== rectB.right || rectA.bottom !== rectB.bottom || rectA.left !== rectB.left;
22602
- }
22603
 
22604
- return true;
22605
  }
22606
 
22607
- tippy.setDefaultProps({
22608
- render: render
22609
- });
22610
-
22611
- /* harmony default export */ var tippy_esm = (tippy);
22612
-
22613
- //# sourceMappingURL=tippy.esm.js.map
22614
-
22615
- ;// CONCATENATED MODULE: ./node_modules/@tippyjs/react/dist/tippy-react.esm.js
22616
-
22617
-
22618
-
22619
-
22620
 
22621
- function tippy_react_esm_objectWithoutPropertiesLoose(source, excluded) {
22622
  if (source == null) return {};
22623
  var target = {};
22624
  var sourceKeys = Object.keys(source);
@@ -22633,1113 +22797,1370 @@ function tippy_react_esm_objectWithoutPropertiesLoose(source, excluded) {
22633
  return target;
22634
  }
22635
 
22636
- var tippy_react_esm_isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
22637
- function preserveRef(ref, node) {
22638
- if (ref) {
22639
- if (typeof ref === 'function') {
22640
- ref(node);
22641
- }
22642
 
22643
- if ({}.hasOwnProperty.call(ref, 'current')) {
22644
- ref.current = node;
22645
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22646
  }
22647
- }
22648
- function ssrSafeCreateDiv() {
22649
- return tippy_react_esm_isBrowser && document.createElement('div');
22650
- }
22651
- function toDataAttributes(attrs) {
22652
- var dataAttrs = {
22653
- 'data-placement': attrs.placement
22654
- };
22655
-
22656
- if (attrs.referenceHidden) {
22657
- dataAttrs['data-reference-hidden'] = '';
 
22658
  }
22659
-
22660
- if (attrs.escaped) {
22661
- dataAttrs['data-escaped'] = '';
 
 
 
 
 
 
 
 
 
 
 
 
22662
  }
 
 
 
 
 
 
 
 
 
 
22663
 
22664
- return dataAttrs;
22665
- }
22666
-
22667
- function deepEqual(x, y) {
22668
- if (x === y) {
22669
- return true;
22670
- } else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {
22671
- if (Object.keys(x).length !== Object.keys(y).length) {
22672
- return false;
22673
- }
22674
 
22675
- for (var prop in x) {
22676
- if (y.hasOwnProperty(prop)) {
22677
- if (!deepEqual(x[prop], y[prop])) {
22678
- return false;
22679
- }
22680
- } else {
22681
- return false;
22682
- }
22683
- }
 
 
22684
 
22685
- return true;
22686
- } else {
22687
- return false;
 
 
 
 
 
 
 
 
22688
  }
22689
- }
 
 
 
22690
 
22691
- function uniqueByShape(arr) {
22692
- var output = [];
22693
- arr.forEach(function (item) {
22694
- if (!output.find(function (outputItem) {
22695
- return deepEqual(item, outputItem);
22696
- })) {
22697
- output.push(item);
 
 
 
 
22698
  }
22699
- });
22700
- return output;
22701
- }
22702
- function deepPreserveProps(instanceProps, componentProps) {
22703
- var _instanceProps$popper, _componentProps$poppe;
22704
 
22705
- return Object.assign({}, componentProps, {
22706
- popperOptions: Object.assign({}, instanceProps.popperOptions, componentProps.popperOptions, {
22707
- modifiers: uniqueByShape([].concat(((_instanceProps$popper = instanceProps.popperOptions) == null ? void 0 : _instanceProps$popper.modifiers) || [], ((_componentProps$poppe = componentProps.popperOptions) == null ? void 0 : _componentProps$poppe.modifiers) || []))
22708
- })
22709
- });
22710
- }
 
22711
 
22712
- var tippy_react_esm_useIsomorphicLayoutEffect = tippy_react_esm_isBrowser ? react.useLayoutEffect : react.useEffect;
22713
- function useMutableBox(initialValue) {
22714
- // Using refs instead of state as it's recommended to not store imperative
22715
- // values in state due to memory problems in React(?)
22716
- var ref = (0,react.useRef)();
22717
 
22718
- if (!ref.current) {
22719
- ref.current = typeof initialValue === 'function' ? initialValue() : initialValue;
22720
  }
22721
 
22722
- return ref.current;
22723
  }
22724
 
22725
- function updateClassName(box, action, classNames) {
22726
- classNames.split(/\s+/).forEach(function (name) {
22727
- if (name) {
22728
- box.classList[action](name);
22729
- }
 
 
 
 
 
 
 
22730
  });
22731
- }
22732
 
22733
- var classNamePlugin = {
22734
- name: 'className',
22735
- defaultValue: '',
22736
- fn: function fn(instance) {
22737
- var box = instance.popper.firstElementChild;
22738
 
22739
- var isDefaultRenderFn = function isDefaultRenderFn() {
22740
- var _instance$props$rende;
 
 
 
 
22741
 
22742
- return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
22743
- };
 
 
 
 
 
 
 
 
22744
 
22745
- function add() {
22746
- if (instance.props.className && !isDefaultRenderFn()) {
22747
- if (false) {}
22748
 
22749
- return;
22750
- }
 
 
 
22751
 
22752
- updateClassName(box, 'add', instance.props.className);
22753
- }
 
 
 
22754
 
22755
- function remove() {
22756
- if (isDefaultRenderFn()) {
22757
- updateClassName(box, 'remove', instance.props.className);
22758
- }
22759
- }
22760
 
22761
- return {
22762
- onCreate: add,
22763
- onBeforeUpdate: remove,
22764
- onAfterUpdate: add
22765
- };
22766
- }
22767
  };
22768
 
22769
- function TippyGenerator(tippy) {
22770
- function Tippy(_ref) {
22771
- var children = _ref.children,
22772
- content = _ref.content,
22773
- visible = _ref.visible,
22774
- singleton = _ref.singleton,
22775
- render = _ref.render,
22776
- reference = _ref.reference,
22777
- _ref$disabled = _ref.disabled,
22778
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
22779
- _ref$ignoreAttributes = _ref.ignoreAttributes,
22780
- ignoreAttributes = _ref$ignoreAttributes === void 0 ? true : _ref$ignoreAttributes,
22781
- __source = _ref.__source,
22782
- __self = _ref.__self,
22783
- restOfNativeProps = tippy_react_esm_objectWithoutPropertiesLoose(_ref, ["children", "content", "visible", "singleton", "render", "reference", "disabled", "ignoreAttributes", "__source", "__self"]);
 
 
 
 
22784
 
22785
- var isControlledMode = visible !== undefined;
22786
- var isSingletonMode = singleton !== undefined;
 
 
 
 
22787
 
22788
- var _useState = (0,react.useState)(false),
22789
- mounted = _useState[0],
22790
- setMounted = _useState[1];
22791
 
22792
- var _useState2 = (0,react.useState)({}),
22793
- attrs = _useState2[0],
22794
- setAttrs = _useState2[1];
 
22795
 
22796
- var _useState3 = (0,react.useState)(),
22797
- singletonContent = _useState3[0],
22798
- setSingletonContent = _useState3[1];
22799
 
22800
- var mutableBox = useMutableBox(function () {
22801
- return {
22802
- container: ssrSafeCreateDiv(),
22803
- renders: 1
22804
- };
22805
- });
22806
- var props = Object.assign({
22807
- ignoreAttributes: ignoreAttributes
22808
- }, restOfNativeProps, {
22809
- content: mutableBox.container
22810
- });
22811
 
22812
- if (isControlledMode) {
22813
- if (false) {}
 
 
 
22814
 
22815
- props.trigger = 'manual';
22816
- props.hideOnClick = false;
22817
- }
 
 
 
 
 
 
 
 
 
 
22818
 
22819
- if (isSingletonMode) {
22820
- disabled = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22821
  }
22822
 
22823
- var computedProps = props;
22824
- var plugins = props.plugins || [];
 
 
 
 
 
 
 
22825
 
22826
- if (render) {
22827
- computedProps = Object.assign({}, props, {
22828
- plugins: isSingletonMode ? [].concat(plugins, [{
22829
- fn: function fn() {
22830
- return {
22831
- onTrigger: function onTrigger(_, event) {
22832
- var _singleton$data$child = singleton.data.children.find(function (_ref2) {
22833
- var instance = _ref2.instance;
22834
- return instance.reference === event.currentTarget;
22835
- }),
22836
- content = _singleton$data$child.content;
22837
 
22838
- setSingletonContent(content);
22839
- }
22840
- };
22841
- }
22842
- }]) : plugins,
22843
- render: function render() {
22844
- return {
22845
- popper: mutableBox.container
22846
- };
22847
- }
22848
- });
22849
- }
22850
 
22851
- var deps = [reference].concat(children ? [children.type] : []); // CREATE
22852
 
22853
- tippy_react_esm_useIsomorphicLayoutEffect(function () {
22854
- var element = reference;
 
 
 
22855
 
22856
- if (reference && reference.hasOwnProperty('current')) {
22857
- element = reference.current;
22858
- }
 
22859
 
22860
- var instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), Object.assign({}, computedProps, {
22861
- plugins: [classNamePlugin].concat(props.plugins || [])
22862
- }));
22863
- mutableBox.instance = instance;
22864
 
22865
- if (disabled) {
22866
- instance.disable();
22867
- }
 
22868
 
22869
- if (visible) {
22870
- instance.show();
22871
- }
22872
 
22873
- if (isSingletonMode) {
22874
- singleton.hook({
22875
- instance: instance,
22876
- content: content,
22877
- props: computedProps
22878
- });
22879
- }
22880
 
22881
- setMounted(true);
 
 
 
22882
  return function () {
22883
- instance.destroy();
22884
- singleton == null ? void 0 : singleton.cleanup(instance);
22885
  };
22886
- }, deps); // UPDATE
22887
-
22888
- tippy_react_esm_useIsomorphicLayoutEffect(function () {
22889
- var _instance$popperInsta;
22890
-
22891
- // Prevent this effect from running on 1st render
22892
- if (mutableBox.renders === 1) {
22893
- mutableBox.renders++;
22894
- return;
22895
- }
22896
-
22897
- var instance = mutableBox.instance;
22898
- instance.setProps(deepPreserveProps(instance.props, computedProps)); // Fixes #264
22899
 
22900
- (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.forceUpdate();
 
 
 
 
 
 
 
 
 
22901
 
22902
- if (disabled) {
22903
- instance.disable();
22904
- } else {
22905
- instance.enable();
22906
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22907
 
22908
- if (isControlledMode) {
22909
- if (visible) {
22910
- instance.show();
22911
- } else {
22912
- instance.hide();
22913
- }
22914
- }
22915
 
22916
- if (isSingletonMode) {
22917
- singleton.hook({
22918
- instance: instance,
22919
- content: content,
22920
- props: computedProps
22921
- });
22922
- }
22923
- });
22924
- tippy_react_esm_useIsomorphicLayoutEffect(function () {
22925
- var _instance$props$poppe;
22926
 
22927
- if (!render) {
22928
- return;
 
 
 
 
 
 
22929
  }
 
 
 
22930
 
22931
- var instance = mutableBox.instance;
22932
- instance.setProps({
22933
- popperOptions: Object.assign({}, instance.props.popperOptions, {
22934
- modifiers: [].concat((((_instance$props$poppe = instance.props.popperOptions) == null ? void 0 : _instance$props$poppe.modifiers) || []).filter(function (_ref3) {
22935
- var name = _ref3.name;
22936
- return name !== '$$tippyReact';
22937
- }), [{
22938
- name: '$$tippyReact',
22939
- enabled: true,
22940
- phase: 'beforeWrite',
22941
- requires: ['computeStyles'],
22942
- fn: function fn(_ref4) {
22943
- var _state$modifiersData;
22944
 
22945
- var state = _ref4.state;
22946
- var hideData = (_state$modifiersData = state.modifiersData) == null ? void 0 : _state$modifiersData.hide; // WARNING: this is a high-risk path that can cause an infinite
22947
- // loop. This expression _must_ evaluate to false when required
 
 
22948
 
22949
- if (attrs.placement !== state.placement || attrs.referenceHidden !== (hideData == null ? void 0 : hideData.isReferenceHidden) || attrs.escaped !== (hideData == null ? void 0 : hideData.hasPopperEscaped)) {
22950
- setAttrs({
22951
- placement: state.placement,
22952
- referenceHidden: hideData == null ? void 0 : hideData.isReferenceHidden,
22953
- escaped: hideData == null ? void 0 : hideData.hasPopperEscaped
22954
- });
22955
- }
 
 
 
 
 
22956
 
22957
- state.attributes.popper = {};
22958
- }
22959
- }])
22960
- })
22961
- });
22962
- }, [attrs.placement, attrs.referenceHidden, attrs.escaped].concat(deps));
22963
- return /*#__PURE__*/react.createElement(react.Fragment, null, children ? /*#__PURE__*/(0,react.cloneElement)(children, {
22964
- ref: function ref(node) {
22965
- mutableBox.ref = node;
22966
- preserveRef(children.ref, node);
22967
- }
22968
- }) : null, mounted && /*#__PURE__*/(0,react_dom.createPortal)(render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content, mutableBox.container));
22969
- }
22970
 
22971
- return Tippy;
22972
- }
22973
 
22974
- function useSingletonGenerator(createSingleton) {
22975
- return function useSingleton(_temp) {
22976
- var _ref = _temp === void 0 ? {} : _temp,
22977
- _ref$disabled = _ref.disabled,
22978
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
22979
- _ref$overrides = _ref.overrides,
22980
- overrides = _ref$overrides === void 0 ? [] : _ref$overrides;
22981
 
22982
- var _useState = (0,react.useState)(false),
22983
- mounted = _useState[0],
22984
- setMounted = _useState[1];
22985
 
22986
- var mutableBox = useMutableBox({
22987
- children: [],
22988
- renders: 1
22989
- });
22990
- tippy_react_esm_useIsomorphicLayoutEffect(function () {
22991
- if (!mounted) {
22992
- setMounted(true);
22993
- return;
22994
- }
22995
 
22996
- var children = mutableBox.children,
22997
- sourceData = mutableBox.sourceData;
22998
 
22999
- if (!sourceData) {
23000
- if (false) {}
 
23001
 
23002
- return;
23003
- }
23004
 
23005
- var instance = createSingleton(children.map(function (child) {
23006
- return child.instance;
23007
- }), Object.assign({}, sourceData.props, {
23008
- popperOptions: sourceData.instance.props.popperOptions,
23009
- overrides: overrides,
23010
- plugins: [classNamePlugin].concat(sourceData.props.plugins || [])
23011
- }));
23012
- mutableBox.instance = instance;
23013
 
23014
- if (disabled) {
23015
- instance.disable();
23016
- }
23017
 
23018
- return function () {
23019
- instance.destroy();
23020
- mutableBox.children = children.filter(function (_ref2) {
23021
- var instance = _ref2.instance;
23022
- return !instance.state.isDestroyed;
23023
- });
23024
- };
23025
- }, [mounted]);
23026
- tippy_react_esm_useIsomorphicLayoutEffect(function () {
23027
- if (!mounted) {
23028
- return;
23029
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23030
 
23031
- if (mutableBox.renders === 1) {
23032
- mutableBox.renders++;
23033
- return;
23034
- }
23035
 
23036
- var children = mutableBox.children,
23037
- instance = mutableBox.instance,
23038
- sourceData = mutableBox.sourceData;
 
 
 
 
 
 
23039
 
23040
- if (!(instance && sourceData)) {
23041
- return;
23042
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23043
 
23044
- var _sourceData$props = sourceData.props,
23045
- content = _sourceData$props.content,
23046
- props = tippy_react_esm_objectWithoutPropertiesLoose(_sourceData$props, ["content"]);
23047
 
23048
- instance.setProps(deepPreserveProps(instance.props, Object.assign({}, props, {
23049
- overrides: overrides
23050
- })));
23051
- instance.setInstances(children.map(function (child) {
23052
- return child.instance;
23053
- }));
23054
 
23055
- if (disabled) {
23056
- instance.disable();
23057
- } else {
23058
- instance.enable();
23059
- }
23060
- });
23061
- return (0,react.useMemo)(function () {
23062
- var source = {
23063
- data: mutableBox,
23064
- hook: function hook(data) {
23065
- mutableBox.sourceData = data;
23066
- },
23067
- cleanup: function cleanup() {
23068
- mutableBox.sourceData = null;
23069
- }
23070
- };
23071
- var target = {
23072
- hook: function hook(data) {
23073
- if (!mutableBox.children.find(function (_ref3) {
23074
- var instance = _ref3.instance;
23075
- return data.instance === instance;
23076
- })) {
23077
- mutableBox.children.push(data);
23078
 
23079
- if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
23080
- mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
23081
- return child.instance;
23082
- }));
23083
- }
23084
- }
23085
- },
23086
- cleanup: function cleanup(instance) {
23087
- mutableBox.children = mutableBox.children.filter(function (data) {
23088
- return data.instance !== instance;
23089
- });
23090
 
23091
- if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
23092
- mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
23093
- return child.instance;
23094
- }));
23095
- }
23096
- }
23097
- };
23098
- return [source, target];
23099
- }, []);
23100
- };
23101
- }
23102
 
23103
- var forwardRef = (function (Tippy, defaultProps) {
23104
- return /*#__PURE__*/(0,react.forwardRef)(function TippyWrapper(_ref, _ref2) {
23105
- var children = _ref.children,
23106
- props = tippy_react_esm_objectWithoutPropertiesLoose(_ref, ["children"]);
23107
 
23108
- return (
23109
- /*#__PURE__*/
23110
- // If I spread them separately here, Babel adds the _extends ponyfill for
23111
- // some reason
23112
- react.createElement(Tippy, Object.assign({}, defaultProps, props), children ? /*#__PURE__*/(0,react.cloneElement)(children, {
23113
- ref: function ref(node) {
23114
- preserveRef(_ref2, node);
23115
- preserveRef(children.ref, node);
23116
- }
23117
- }) : null)
23118
- );
23119
- });
23120
  });
23121
 
23122
- var useSingleton = /*#__PURE__*/useSingletonGenerator(createSingleton);
23123
- var index = /*#__PURE__*/forwardRef( /*#__PURE__*/TippyGenerator(tippy_esm));
23124
 
23125
- /* harmony default export */ var tippy_react_esm = (index);
 
23126
 
23127
- //# sourceMappingURL=tippy-react.esm.js.map
 
 
 
 
23128
 
23129
- ;// CONCATENATED MODULE: ./node_modules/tippy.js/dist/tippy.css
23130
- // extracted by mini-css-extract-plugin
 
 
23131
 
23132
- ;// CONCATENATED MODULE: ./node_modules/tippy.js/themes/material.css
23133
- // extracted by mini-css-extract-plugin
 
 
23134
 
23135
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Tippy/Tippy.js
 
 
23136
 
 
 
 
 
 
 
 
 
 
 
 
23137
 
 
 
 
23138
 
 
 
 
 
 
23139
 
 
 
23140
 
 
 
 
 
23141
 
 
 
 
 
23142
 
 
 
 
 
 
 
23143
 
23144
- function Tippy(_ref) {
23145
- var props = _ref.props,
23146
- _ref$arrow = _ref.arrow,
23147
- arrow = _ref$arrow === void 0 ? true : _ref$arrow,
23148
- _ref$trigger = _ref.trigger,
23149
- trigger = _ref$trigger === void 0 ? "manual" : _ref$trigger,
23150
- _ref$timer = _ref.timer,
23151
- timer = _ref$timer === void 0 ? 500 : _ref$timer,
23152
- preference = _ref.preference;
23153
- if (!preference && props.ignorePreference !== true) return props.children;
23154
- var test = setTimeout(function () {});
23155
- var currentX = false;
23156
- var currentY = false;
23157
- return /*#__PURE__*/react.createElement(tippy_react_esm, {
23158
- content: !props.shiftClick ? props.content : (0,clsx_m/* default */.Z)(props.content, props.shiftClick && " (".concat(translate_translate("utils.shift_click"), ")")),
23159
- hideOnClick: props.hideOnClick,
23160
- theme: "material" // duration={[100, 100]}
23161
- ,
23162
- disabled: preference || props.ignorePreference === true ? props.disabled : true,
23163
- trigger: trigger,
23164
- arrow: arrow,
23165
- onCreate: function onCreate(instance) {
23166
- if (trigger === "manual") {
23167
- instance.reference.addEventListener("mousemove", function (e) {
23168
- if (currentX && currentY && (Math.abs(e.clientX - currentX) > 25 || Math.abs(e.clientY - currentY) > 25) && instance.state.isShown) instance.hide();
23169
- clearTimeout(test);
23170
- test = setTimeout(function () {
23171
- instance.show();
23172
- currentX = e.clientX;
23173
- currentY = e.clientY;
23174
- }, timer);
23175
- });
23176
- instance.reference.addEventListener("mouseleave", function () {
23177
- clearTimeout(test);
23178
- instance.hide();
23179
- currentX = currentY = false;
23180
- });
23181
- }
23182
- }
23183
- }, props.children);
23184
- }
23185
 
23186
- /* harmony default export */ var Tippy_Tippy = (connect(function (state, props) {
23187
- return {
23188
- preference: state.settings.show_tooltips,
23189
- props: props
23190
- };
23191
- })(Tippy));
23192
- // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js
23193
- var useTheme = __webpack_require__(159);
23194
- // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js
23195
- var getThemeProps = __webpack_require__(93869);
23196
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerDocument.js
23197
- var ownerDocument = __webpack_require__(30626);
23198
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/setRef.js
23199
- var setRef = __webpack_require__(34236);
23200
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Portal/Portal.js
23201
 
 
 
 
23202
 
 
 
 
 
 
23203
 
23204
 
 
 
 
23205
 
 
 
 
 
 
 
23206
 
 
 
 
 
 
 
 
 
 
 
23207
 
23208
- function getContainer(container) {
23209
- container = typeof container === 'function' ? container() : container; // #StrictMode ready
23210
 
23211
- return react_dom.findDOMNode(container);
23212
- }
 
 
 
 
23213
 
23214
- var Portal_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
23215
- /**
23216
- * Portals provide a first-class way to render children into a DOM node
23217
- * that exists outside the DOM hierarchy of the parent component.
23218
- */
23219
 
23220
- var Portal = /*#__PURE__*/react.forwardRef(function Portal(props, ref) {
23221
- var children = props.children,
23222
- container = props.container,
23223
- _props$disablePortal = props.disablePortal,
23224
- disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
23225
- onRendered = props.onRendered;
23226
 
23227
- var _React$useState = react.useState(null),
23228
- mountNode = _React$useState[0],
23229
- setMountNode = _React$useState[1];
23230
 
23231
- var handleRef = (0,useForkRef/* default */.Z)( /*#__PURE__*/react.isValidElement(children) ? children.ref : null, ref);
23232
- Portal_useEnhancedEffect(function () {
23233
- if (!disablePortal) {
23234
- setMountNode(getContainer(container) || document.body);
23235
- }
23236
- }, [container, disablePortal]);
23237
- Portal_useEnhancedEffect(function () {
23238
- if (mountNode && !disablePortal) {
23239
- (0,setRef/* default */.Z)(ref, mountNode);
23240
- return function () {
23241
- (0,setRef/* default */.Z)(ref, null);
23242
- };
23243
- }
23244
 
23245
- return undefined;
23246
- }, [ref, mountNode, disablePortal]);
23247
- Portal_useEnhancedEffect(function () {
23248
- if (onRendered && (mountNode || disablePortal)) {
23249
- onRendered();
23250
- }
23251
- }, [onRendered, mountNode, disablePortal]);
23252
 
23253
- if (disablePortal) {
23254
- if ( /*#__PURE__*/react.isValidElement(children)) {
23255
- return /*#__PURE__*/react.cloneElement(children, {
23256
- ref: handleRef
23257
  });
23258
- }
 
 
 
 
 
 
23259
 
23260
- return children;
23261
- }
23262
 
23263
- return mountNode ? /*#__PURE__*/react_dom.createPortal(children, mountNode) : mountNode;
23264
- });
23265
- false ? 0 : void 0;
 
23266
 
23267
- if (false) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
23268
 
23269
- /* harmony default export */ var Portal_Portal = (Portal);
23270
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js
23271
- var createChainedFunction = __webpack_require__(82568);
23272
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/zIndex.js
23273
- var zIndex = __webpack_require__(92781);
23274
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js
23275
- // A change of the browser zoom change the scrollbar size.
23276
- // Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519
23277
- function getScrollbarSize() {
23278
- var scrollDiv = document.createElement('div');
23279
- scrollDiv.style.width = '99px';
23280
- scrollDiv.style.height = '99px';
23281
- scrollDiv.style.position = 'absolute';
23282
- scrollDiv.style.top = '-9999px';
23283
- scrollDiv.style.overflow = 'scroll';
23284
- document.body.appendChild(scrollDiv);
23285
- var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
23286
- document.body.removeChild(scrollDiv);
23287
- return scrollbarSize;
23288
- }
23289
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerWindow.js
23290
- var ownerWindow = __webpack_require__(80713);
23291
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/ModalManager.js
23292
 
 
 
 
 
 
 
23293
 
 
 
23294
 
 
 
 
 
 
 
 
 
23295
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23296
 
23297
- // Is a vertical scrollbar displayed?
23298
 
23299
- function isOverflowing(container) {
23300
- var doc = (0,ownerDocument/* default */.Z)(container);
 
 
 
23301
 
23302
- if (doc.body === container) {
23303
- return (0,ownerWindow/* default */.Z)(doc).innerWidth > doc.documentElement.clientWidth;
23304
- }
23305
 
23306
- return container.scrollHeight > container.clientHeight;
23307
- }
 
 
 
 
 
 
 
 
23308
 
23309
- function ariaHidden(node, show) {
23310
- if (show) {
23311
- node.setAttribute('aria-hidden', 'true');
23312
- } else {
23313
- node.removeAttribute('aria-hidden');
23314
- }
23315
- }
23316
 
23317
- function getPaddingRight(node) {
23318
- return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;
23319
- }
23320
 
23321
- function ariaHiddenSiblings(container, mountNode, currentNode) {
23322
- var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
23323
- var show = arguments.length > 4 ? arguments[4] : undefined;
23324
- var blacklist = [mountNode, currentNode].concat((0,toConsumableArray/* default */.Z)(nodesToExclude));
23325
- var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];
23326
- [].forEach.call(container.children, function (node) {
23327
- if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {
23328
- ariaHidden(node, show);
23329
- }
23330
- });
23331
- }
23332
 
23333
- function findIndexOf(containerInfo, callback) {
23334
- var idx = -1;
23335
- containerInfo.some(function (item, index) {
23336
- if (callback(item)) {
23337
- idx = index;
23338
- return true;
23339
- }
23340
 
23341
- return false;
23342
- });
23343
- return idx;
23344
- }
23345
 
23346
- function handleContainer(containerInfo, props) {
23347
- var restoreStyle = [];
23348
- var restorePaddings = [];
23349
- var container = containerInfo.container;
23350
- var fixedNodes;
23351
 
23352
- if (!props.disableScrollLock) {
23353
- if (isOverflowing(container)) {
23354
- // Compute the size before applying overflow hidden to avoid any scroll jumps.
23355
- var scrollbarSize = getScrollbarSize();
23356
- restoreStyle.push({
23357
- value: container.style.paddingRight,
23358
- key: 'padding-right',
23359
- el: container
23360
- }); // Use computed style, here to get the real padding to add our scrollbar width.
 
23361
 
23362
- container.style['padding-right'] = "".concat(getPaddingRight(container) + scrollbarSize, "px"); // .mui-fixed is a global helper.
23363
 
23364
- fixedNodes = (0,ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed');
23365
- [].forEach.call(fixedNodes, function (node) {
23366
- restorePaddings.push(node.style.paddingRight);
23367
- node.style.paddingRight = "".concat(getPaddingRight(node) + scrollbarSize, "px");
23368
- });
23369
- } // Improve Gatsby support
23370
- // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
23371
 
 
23372
 
23373
- var parent = container.parentElement;
23374
- var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard
23375
- // screensize shrink.
 
 
 
 
 
 
 
 
23376
 
23377
- restoreStyle.push({
23378
- value: scrollContainer.style.overflow,
23379
- key: 'overflow',
23380
- el: scrollContainer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23381
  });
23382
- scrollContainer.style.overflow = 'hidden';
23383
- }
 
 
23384
 
23385
- var restore = function restore() {
23386
- if (fixedNodes) {
23387
- [].forEach.call(fixedNodes, function (node, i) {
23388
- if (restorePaddings[i]) {
23389
- node.style.paddingRight = restorePaddings[i];
23390
- } else {
23391
- node.style.removeProperty('padding-right');
23392
- }
23393
- });
23394
  }
 
23395
 
23396
- restoreStyle.forEach(function (_ref) {
23397
- var value = _ref.value,
23398
- el = _ref.el,
23399
- key = _ref.key;
23400
-
23401
- if (value) {
23402
- el.style.setProperty(key, value);
23403
- } else {
23404
- el.style.removeProperty(key);
23405
- }
23406
- });
23407
- };
23408
 
23409
- return restore;
23410
- }
23411
 
23412
- function getHiddenSiblings(container) {
23413
- var hiddenSiblings = [];
23414
- [].forEach.call(container.children, function (node) {
23415
- if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {
23416
- hiddenSiblings.push(node);
23417
- }
23418
- });
23419
- return hiddenSiblings;
23420
- }
23421
  /**
23422
- * @ignore - do not document.
23423
- *
23424
- * Proper state management for containers and the modals in those containers.
23425
- * Simplified, but inspired by react-overlay's ModalManager class.
23426
- * Used by the Modal to ensure proper styling of containers.
23427
  */
23428
 
23429
 
23430
- var ModalManager = /*#__PURE__*/function () {
23431
- function ModalManager() {
23432
- _classCallCheck(this, ModalManager);
 
23433
 
23434
- // this.modals[modalIndex] = modal
23435
- this.modals = []; // this.containers[containerIndex] = {
23436
- // modals: [],
23437
- // container,
23438
- // restore: null,
23439
- // }
23440
 
23441
- this.containers = [];
23442
- }
 
 
 
 
 
 
23443
 
23444
- (0,createClass/* default */.Z)(ModalManager, [{
23445
- key: "add",
23446
- value: function add(modal, container) {
23447
- var modalIndex = this.modals.indexOf(modal);
23448
 
23449
- if (modalIndex !== -1) {
23450
- return modalIndex;
23451
- }
 
 
 
 
 
 
 
23452
 
23453
- modalIndex = this.modals.length;
23454
- this.modals.push(modal); // If the modal we are adding is already in the DOM.
23455
 
23456
- if (modal.modalRef) {
23457
- ariaHidden(modal.modalRef, false);
23458
- }
 
23459
 
23460
- var hiddenSiblingNodes = getHiddenSiblings(container);
23461
- ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);
23462
- var containerIndex = findIndexOf(this.containers, function (item) {
23463
- return item.container === container;
23464
- });
23465
 
23466
- if (containerIndex !== -1) {
23467
- this.containers[containerIndex].modals.push(modal);
23468
- return modalIndex;
23469
- }
23470
 
23471
- this.containers.push({
23472
- modals: [modal],
23473
- container: container,
23474
- restore: null,
23475
- hiddenSiblingNodes: hiddenSiblingNodes
23476
- });
23477
- return modalIndex;
23478
- }
23479
- }, {
23480
- key: "mount",
23481
- value: function mount(modal, props) {
23482
- var containerIndex = findIndexOf(this.containers, function (item) {
23483
- return item.modals.indexOf(modal) !== -1;
23484
- });
23485
- var containerInfo = this.containers[containerIndex];
23486
 
23487
- if (!containerInfo.restore) {
23488
- containerInfo.restore = handleContainer(containerInfo, props);
23489
- }
23490
  }
23491
- }, {
23492
- key: "remove",
23493
- value: function remove(modal) {
23494
- var modalIndex = this.modals.indexOf(modal);
23495
 
23496
- if (modalIndex === -1) {
23497
- return modalIndex;
23498
- }
23499
 
23500
- var containerIndex = findIndexOf(this.containers, function (item) {
23501
- return item.modals.indexOf(modal) !== -1;
23502
- });
23503
- var containerInfo = this.containers[containerIndex];
23504
- containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
23505
- this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.
 
 
 
 
23506
 
23507
- if (containerInfo.modals.length === 0) {
23508
- // The modal might be closed before it had the chance to be mounted in the DOM.
23509
- if (containerInfo.restore) {
23510
- containerInfo.restore();
23511
- }
23512
 
23513
- if (modal.modalRef) {
23514
- // In case the modal wasn't in the DOM yet.
23515
- ariaHidden(modal.modalRef, true);
23516
- }
23517
 
23518
- ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);
23519
- this.containers.splice(containerIndex, 1);
23520
- } else {
23521
- // Otherwise make sure the next top modal is visible to a screen reader.
23522
- var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set
23523
- // aria-hidden because the dom element doesn't exist either
23524
- // when modal was unmounted before modalRef gets null
23525
 
23526
- if (nextTop.modalRef) {
23527
- ariaHidden(nextTop.modalRef, false);
23528
- }
23529
- }
23530
 
23531
- return modalIndex;
23532
- }
23533
- }, {
23534
- key: "isTopModal",
23535
- value: function isTopModal(modal) {
23536
- return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
23537
- }
23538
- }]);
23539
 
23540
- return ModalManager;
23541
- }();
23542
 
 
 
 
 
23543
 
23544
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js
23545
- /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */
23546
 
 
23547
 
 
 
 
 
23548
 
23549
 
23550
 
23551
 
23552
- /**
23553
- * Utility component that locks focus inside the component.
23554
- */
23555
 
23556
- function Unstable_TrapFocus(props) {
23557
- var children = props.children,
23558
- _props$disableAutoFoc = props.disableAutoFocus,
23559
- disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
23560
- _props$disableEnforce = props.disableEnforceFocus,
23561
- disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
23562
- _props$disableRestore = props.disableRestoreFocus,
23563
- disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
23564
- getDoc = props.getDoc,
23565
- isEnabled = props.isEnabled,
23566
- open = props.open;
23567
- var ignoreNextEnforceFocus = react.useRef();
23568
- var sentinelStart = react.useRef(null);
23569
- var sentinelEnd = react.useRef(null);
23570
- var nodeToRestore = react.useRef();
23571
- var rootRef = react.useRef(null); // can be removed once we drop support for non ref forwarding class components
23572
 
23573
- var handleOwnRef = react.useCallback(function (instance) {
23574
- // #StrictMode ready
23575
- rootRef.current = react_dom.findDOMNode(instance);
23576
- }, []);
23577
- var handleRef = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef);
23578
- var prevOpenRef = react.useRef();
23579
- react.useEffect(function () {
23580
- prevOpenRef.current = open;
23581
- }, [open]);
23582
 
23583
- if (!prevOpenRef.current && open && typeof window !== 'undefined') {
23584
- // WARNING: Potentially unsafe in concurrent mode.
23585
- // The way the read on `nodeToRestore` is setup could make this actually safe.
23586
- // Say we render `open={false}` -> `open={true}` but never commit.
23587
- // We have now written a state that wasn't committed. But no committed effect
23588
- // will read this wrong value. We only read from `nodeToRestore` in effects
23589
- // that were committed on `open={true}`
23590
- // WARNING: Prevents the instance from being garbage collected. Should only
23591
- // hold a weak ref.
23592
- nodeToRestore.current = getDoc().activeElement;
23593
- }
23594
 
23595
- react.useEffect(function () {
23596
- if (!open) {
23597
- return;
23598
- }
23599
 
23600
- var doc = (0,ownerDocument/* default */.Z)(rootRef.current); // We might render an empty child.
23601
 
23602
- if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {
23603
- if (!rootRef.current.hasAttribute('tabIndex')) {
23604
- if (false) {}
23605
 
23606
- rootRef.current.setAttribute('tabIndex', -1);
23607
- }
23608
 
23609
- rootRef.current.focus();
23610
- }
23611
 
23612
- var contain = function contain() {
23613
- var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.
23614
- // Contain can be called between the component being unmounted and its cleanup function being run.
23615
 
23616
- if (rootElement === null) {
23617
- return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23618
  }
 
23619
 
23620
- if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {
23621
- ignoreNextEnforceFocus.current = false;
23622
- return;
 
 
 
 
 
 
 
 
 
 
 
 
23623
  }
 
23624
 
23625
- if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {
23626
- rootRef.current.focus();
23627
- }
23628
- };
23629
 
23630
- var loopFocus = function loopFocus(event) {
23631
- // 9 = Tab
23632
- if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {
23633
- return;
23634
- } // Make sure the next tab starts from the right place.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23635
 
 
 
 
 
 
 
 
 
 
23636
 
23637
- if (doc.activeElement === rootRef.current) {
23638
- // We need to ignore the next contain as
23639
- // it will try to move the focus back to the rootRef element.
23640
- ignoreNextEnforceFocus.current = true;
23641
 
23642
- if (event.shiftKey) {
23643
- sentinelEnd.current.focus();
23644
- } else {
23645
- sentinelStart.current.focus();
23646
- }
23647
- }
 
 
 
 
 
 
 
 
 
23648
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23649
 
23650
- doc.addEventListener('focus', contain, true);
23651
- doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area
23652
- // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
23653
- //
23654
- // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
23655
- // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.
23656
 
23657
- var interval = setInterval(function () {
23658
- contain();
23659
- }, 50);
23660
- return function () {
23661
- clearInterval(interval);
23662
- doc.removeEventListener('focus', contain, true);
23663
- doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()
23664
 
23665
- if (!disableRestoreFocus) {
23666
- // In IE 11 it is possible for document.activeElement to be null resulting
23667
- // in nodeToRestore.current being null.
23668
- // Not all elements in IE 11 have a focus method.
23669
- // Once IE 11 support is dropped the focus() call can be unconditional.
23670
- if (nodeToRestore.current && nodeToRestore.current.focus) {
23671
- nodeToRestore.current.focus();
23672
- }
23673
 
23674
- nodeToRestore.current = null;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23675
  }
23676
- };
23677
- }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);
23678
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
23679
- tabIndex: 0,
23680
- ref: sentinelStart,
23681
- "data-test": "sentinelStart"
23682
- }), /*#__PURE__*/react.cloneElement(children, {
23683
- ref: handleRef
23684
- }), /*#__PURE__*/react.createElement("div", {
23685
- tabIndex: 0,
23686
- ref: sentinelEnd,
23687
- "data-test": "sentinelEnd"
23688
- }));
23689
- }
23690
 
23691
- false ? 0 : void 0;
 
 
 
 
 
 
23692
 
23693
- if (false) {}
 
 
 
 
 
 
23694
 
23695
- /* harmony default export */ var Unstable_TrapFocus_Unstable_TrapFocus = (Unstable_TrapFocus);
23696
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js
 
 
23697
 
 
 
 
 
 
 
 
 
 
 
 
23698
 
 
 
 
 
 
 
 
 
 
 
 
23699
 
 
 
23700
 
23701
- var SimpleBackdrop_styles = {
23702
- /* Styles applied to the root element. */
23703
- root: {
23704
- zIndex: -1,
23705
- position: 'fixed',
23706
- right: 0,
23707
- bottom: 0,
23708
- top: 0,
23709
- left: 0,
23710
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
23711
- WebkitTapHighlightColor: 'transparent'
23712
- },
23713
 
23714
- /* Styles applied to the root element if `invisible={true}`. */
23715
- invisible: {
23716
- backgroundColor: 'transparent'
23717
- }
 
 
 
 
23718
  };
23719
  /**
23720
- * @ignore - internal component.
 
23721
  */
23722
 
23723
- var SimpleBackdrop = /*#__PURE__*/react.forwardRef(function SimpleBackdrop(props, ref) {
23724
- var _props$invisible = props.invisible,
23725
- invisible = _props$invisible === void 0 ? false : _props$invisible,
23726
- open = props.open,
23727
- other = (0,objectWithoutProperties/* default */.Z)(props, ["invisible", "open"]);
 
 
 
 
 
 
 
 
 
 
23728
 
23729
- return open ? /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
23730
- "aria-hidden": true,
 
 
 
 
 
 
23731
  ref: ref
23732
- }, other, {
23733
- style: (0,esm_extends/* default */.Z)({}, SimpleBackdrop_styles.root, invisible ? SimpleBackdrop_styles.invisible : {}, other.style)
23734
- })) : null;
23735
  });
23736
  false ? 0 : void 0;
23737
- /* harmony default export */ var Modal_SimpleBackdrop = (SimpleBackdrop);
23738
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/Modal.js
23739
-
 
23740
 
23741
 
23742
 
 
23743
 
23744
 
23745
 
@@ -23747,271 +24168,256 @@ var SimpleBackdrop = /*#__PURE__*/react.forwardRef(function SimpleBackdrop(props
23747
 
23748
 
23749
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23750
 
 
 
23751
 
 
 
23752
 
 
 
23753
 
 
 
 
 
 
 
 
 
 
 
23754
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23755
 
23756
- function Modal_getContainer(container) {
23757
- container = typeof container === 'function' ? container() : container;
23758
- return react_dom.findDOMNode(container);
23759
- }
23760
 
23761
- function getHasTransition(props) {
23762
- return props.children ? props.children.props.hasOwnProperty('in') : false;
23763
- } // A modal manager used to track and manage the state of open Modals.
23764
- // Modals don't open on the server so this won't conflict with concurrent requests.
23765
 
 
 
 
 
23766
 
23767
- var defaultManager = new ModalManager();
23768
- var Modal_styles = function styles(theme) {
23769
- return {
23770
- /* Styles applied to the root element. */
23771
- root: {
23772
- position: 'fixed',
23773
- zIndex: theme.zIndex.modal,
23774
- right: 0,
23775
- bottom: 0,
23776
- top: 0,
23777
- left: 0
23778
- },
23779
 
23780
- /* Styles applied to the root element if the `Modal` has exited. */
23781
- hidden: {
23782
- visibility: 'hidden'
23783
  }
23784
  };
23785
- };
23786
- /**
23787
- * Modal is a lower-level construct that is leveraged by the following components:
23788
- *
23789
- * - [Dialog](/api/dialog/)
23790
- * - [Drawer](/api/drawer/)
23791
- * - [Menu](/api/menu/)
23792
- * - [Popover](/api/popover/)
23793
- *
23794
- * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component
23795
- * rather than directly using Modal.
23796
- *
23797
- * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
23798
- */
23799
 
23800
- var Modal = /*#__PURE__*/react.forwardRef(function Modal(inProps, ref) {
23801
- var theme = (0,useTheme/* default */.Z)();
23802
- var props = (0,getThemeProps/* default */.Z)({
23803
- name: 'MuiModal',
23804
- props: (0,esm_extends/* default */.Z)({}, inProps),
23805
- theme: theme
23806
- });
23807
 
23808
- var _props$BackdropCompon = props.BackdropComponent,
23809
- BackdropComponent = _props$BackdropCompon === void 0 ? Modal_SimpleBackdrop : _props$BackdropCompon,
23810
- BackdropProps = props.BackdropProps,
23811
- children = props.children,
23812
- _props$closeAfterTran = props.closeAfterTransition,
23813
- closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,
23814
- container = props.container,
23815
- _props$disableAutoFoc = props.disableAutoFocus,
23816
- disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
23817
- _props$disableBackdro = props.disableBackdropClick,
23818
- disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
23819
- _props$disableEnforce = props.disableEnforceFocus,
23820
- disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
23821
- _props$disableEscapeK = props.disableEscapeKeyDown,
23822
- disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
23823
- _props$disablePortal = props.disablePortal,
23824
- disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
23825
- _props$disableRestore = props.disableRestoreFocus,
23826
- disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
23827
- _props$disableScrollL = props.disableScrollLock,
23828
- disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,
23829
- _props$hideBackdrop = props.hideBackdrop,
23830
- hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,
23831
- _props$keepMounted = props.keepMounted,
23832
- keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,
23833
- _props$manager = props.manager,
23834
- manager = _props$manager === void 0 ? defaultManager : _props$manager,
23835
- onBackdropClick = props.onBackdropClick,
23836
- onClose = props.onClose,
23837
- onEscapeKeyDown = props.onEscapeKeyDown,
23838
- onRendered = props.onRendered,
23839
- open = props.open,
23840
- other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropComponent", "BackdropProps", "children", "closeAfterTransition", "container", "disableAutoFocus", "disableBackdropClick", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onEscapeKeyDown", "onRendered", "open"]);
23841
-
23842
- var _React$useState = react.useState(true),
23843
- exited = _React$useState[0],
23844
- setExited = _React$useState[1];
23845
-
23846
- var modal = react.useRef({});
23847
- var mountNodeRef = react.useRef(null);
23848
- var modalRef = react.useRef(null);
23849
- var handleRef = (0,useForkRef/* default */.Z)(modalRef, ref);
23850
- var hasTransition = getHasTransition(props);
23851
 
23852
- var getDoc = function getDoc() {
23853
- return (0,ownerDocument/* default */.Z)(mountNodeRef.current);
 
23854
  };
23855
 
23856
- var getModal = function getModal() {
23857
- modal.current.modalRef = modalRef.current;
23858
- modal.current.mountNode = mountNodeRef.current;
23859
- return modal.current;
23860
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23861
 
23862
- var handleMounted = function handleMounted() {
23863
- manager.mount(getModal(), {
23864
- disableScrollLock: disableScrollLock
23865
- }); // Fix a bug on Chrome where the scroll isn't initially 0.
23866
 
23867
- modalRef.current.scrollTop = 0;
23868
- };
23869
 
23870
- var handleOpen = (0,useEventCallback/* default */.Z)(function () {
23871
- var resolvedContainer = Modal_getContainer(container) || getDoc().body;
23872
- manager.add(getModal(), resolvedContainer); // The element was already mounted.
23873
 
23874
- if (modalRef.current) {
23875
- handleMounted();
23876
- }
23877
- });
23878
- var isTopModal = react.useCallback(function () {
23879
- return manager.isTopModal(getModal());
23880
- }, [manager]);
23881
- var handlePortalRef = (0,useEventCallback/* default */.Z)(function (node) {
23882
- mountNodeRef.current = node;
23883
 
23884
- if (!node) {
23885
- return;
23886
- }
23887
 
23888
- if (onRendered) {
23889
- onRendered();
23890
- }
23891
 
23892
- if (open && isTopModal()) {
23893
- handleMounted();
23894
- } else {
23895
- ariaHidden(modalRef.current, true);
23896
- }
23897
- });
23898
- var handleClose = react.useCallback(function () {
23899
- manager.remove(getModal());
23900
- }, [manager]);
23901
- react.useEffect(function () {
23902
- return function () {
23903
- handleClose();
23904
- };
23905
- }, [handleClose]);
23906
- react.useEffect(function () {
23907
- if (open) {
23908
- handleOpen();
23909
- } else if (!hasTransition || !closeAfterTransition) {
23910
- handleClose();
23911
- }
23912
- }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
23913
 
23914
- if (!keepMounted && !open && (!hasTransition || exited)) {
23915
- return null;
23916
- }
 
23917
 
23918
- var handleEnter = function handleEnter() {
23919
- setExited(false);
23920
- };
 
23921
 
23922
- var handleExited = function handleExited() {
23923
- setExited(true);
 
 
23924
 
23925
- if (closeAfterTransition) {
23926
- handleClose();
23927
- }
23928
- };
23929
 
23930
- var handleBackdropClick = function handleBackdropClick(event) {
23931
- if (event.target !== event.currentTarget) {
23932
- return;
23933
- }
23934
 
23935
- if (onBackdropClick) {
23936
- onBackdropClick(event);
23937
- }
 
23938
 
23939
- if (!disableBackdropClick && onClose) {
23940
- onClose(event, 'backdropClick');
23941
- }
23942
- };
23943
 
23944
- var handleKeyDown = function handleKeyDown(event) {
23945
- // The handler doesn't take event.defaultPrevented into account:
23946
- //
23947
- // event.preventDefault() is meant to stop default behaviours like
23948
- // clicking a checkbox to check it, hitting a button to submit a form,
23949
- // and hitting left arrow to move the cursor in a text input etc.
23950
- // Only special HTML elements have these default behaviors.
23951
- if (event.key !== 'Escape' || !isTopModal()) {
23952
- return;
23953
  }
 
 
 
 
 
 
 
 
 
 
 
 
23954
 
23955
- if (onEscapeKeyDown) {
23956
- onEscapeKeyDown(event);
23957
- }
 
 
 
 
 
 
 
 
 
23958
 
23959
- if (!disableEscapeKeyDown) {
23960
- // Swallow the event, in case someone is listening for the escape key on the body.
23961
- event.stopPropagation();
23962
 
23963
- if (onClose) {
23964
- onClose(event, 'escapeKeyDown');
23965
- }
23966
- }
23967
- };
23968
 
23969
- var inlineStyle = Modal_styles(theme || {
23970
- zIndex: zIndex/* default */.Z
23971
- });
23972
- var childProps = {};
23973
 
23974
- if (children.props.tabIndex === undefined) {
23975
- childProps.tabIndex = children.props.tabIndex || '-1';
23976
- } // It's a Transition like component
23977
 
23978
 
23979
- if (hasTransition) {
23980
- childProps.onEnter = (0,createChainedFunction/* default */.Z)(handleEnter, children.props.onEnter);
23981
- childProps.onExited = (0,createChainedFunction/* default */.Z)(handleExited, children.props.onExited);
23982
- }
 
 
 
 
 
 
 
 
 
23983
 
23984
- return /*#__PURE__*/react.createElement(Portal_Portal, {
23985
- ref: handlePortalRef,
23986
- container: container,
23987
- disablePortal: disablePortal
23988
- }, /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
23989
- ref: handleRef,
23990
- onKeyDown: handleKeyDown,
23991
- role: "presentation"
23992
- }, other, {
23993
- style: (0,esm_extends/* default */.Z)({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)
23994
- }), hideBackdrop ? null : /*#__PURE__*/react.createElement(BackdropComponent, (0,esm_extends/* default */.Z)({
23995
- open: open,
23996
- onClick: handleBackdropClick
23997
- }, BackdropProps)), /*#__PURE__*/react.createElement(Unstable_TrapFocus_Unstable_TrapFocus, {
23998
- disableEnforceFocus: disableEnforceFocus,
23999
- disableAutoFocus: disableAutoFocus,
24000
- disableRestoreFocus: disableRestoreFocus,
24001
- getDoc: getDoc,
24002
- isEnabled: isTopModal,
24003
- open: open
24004
- }, /*#__PURE__*/react.cloneElement(children, childProps))));
24005
  });
24006
  false ? 0 : void 0;
24007
- /* harmony default export */ var Modal_Modal = (Modal);
24008
- // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
24009
- var slicedToArray = __webpack_require__(28481);
24010
- ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/config.js
24011
- /* harmony default export */ var config = ({
24012
- disabled: false
24013
- });
24014
- ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/Transition.js
24015
 
24016
 
24017
 
@@ -24020,960 +24426,949 @@ var slicedToArray = __webpack_require__(28481);
24020
 
24021
 
24022
 
24023
- var UNMOUNTED = 'unmounted';
24024
- var EXITED = 'exited';
24025
- var ENTERING = 'entering';
24026
- var ENTERED = 'entered';
24027
- var EXITING = 'exiting';
24028
- /**
24029
- * The Transition component lets you describe a transition from one component
24030
- * state to another _over time_ with a simple declarative API. Most commonly
24031
- * it's used to animate the mounting and unmounting of a component, but can also
24032
- * be used to describe in-place transition states as well.
24033
- *
24034
- * ---
24035
- *
24036
- * **Note**: `Transition` is a platform-agnostic base component. If you're using
24037
- * transitions in CSS, you'll probably want to use
24038
- * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
24039
- * instead. It inherits all the features of `Transition`, but contains
24040
- * additional features necessary to play nice with CSS transitions (hence the
24041
- * name of the component).
24042
- *
24043
- * ---
24044
- *
24045
- * By default the `Transition` component does not alter the behavior of the
24046
- * component it renders, it only tracks "enter" and "exit" states for the
24047
- * components. It's up to you to give meaning and effect to those states. For
24048
- * example we can add styles to a component when it enters or exits:
24049
- *
24050
- * ```jsx
24051
- * import { Transition } from 'react-transition-group';
24052
- *
24053
- * const duration = 300;
24054
- *
24055
- * const defaultStyle = {
24056
- * transition: `opacity ${duration}ms ease-in-out`,
24057
- * opacity: 0,
24058
- * }
24059
- *
24060
- * const transitionStyles = {
24061
- * entering: { opacity: 1 },
24062
- * entered: { opacity: 1 },
24063
- * exiting: { opacity: 0 },
24064
- * exited: { opacity: 0 },
24065
- * };
24066
- *
24067
- * const Fade = ({ in: inProp }) => (
24068
- * <Transition in={inProp} timeout={duration}>
24069
- * {state => (
24070
- * <div style={{
24071
- * ...defaultStyle,
24072
- * ...transitionStyles[state]
24073
- * }}>
24074
- * I'm a fade Transition!
24075
- * </div>
24076
- * )}
24077
- * </Transition>
24078
- * );
24079
- * ```
24080
- *
24081
- * There are 4 main states a Transition can be in:
24082
- * - `'entering'`
24083
- * - `'entered'`
24084
- * - `'exiting'`
24085
- * - `'exited'`
24086
- *
24087
- * Transition state is toggled via the `in` prop. When `true` the component
24088
- * begins the "Enter" stage. During this stage, the component will shift from
24089
- * its current transition state, to `'entering'` for the duration of the
24090
- * transition and then to the `'entered'` stage once it's complete. Let's take
24091
- * the following example (we'll use the
24092
- * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
24093
- *
24094
- * ```jsx
24095
- * function App() {
24096
- * const [inProp, setInProp] = useState(false);
24097
- * return (
24098
- * <div>
24099
- * <Transition in={inProp} timeout={500}>
24100
- * {state => (
24101
- * // ...
24102
- * )}
24103
- * </Transition>
24104
- * <button onClick={() => setInProp(true)}>
24105
- * Click to Enter
24106
- * </button>
24107
- * </div>
24108
- * );
24109
- * }
24110
- * ```
24111
- *
24112
- * When the button is clicked the component will shift to the `'entering'` state
24113
- * and stay there for 500ms (the value of `timeout`) before it finally switches
24114
- * to `'entered'`.
24115
- *
24116
- * When `in` is `false` the same thing happens except the state moves from
24117
- * `'exiting'` to `'exited'`.
24118
- */
24119
 
24120
- var Transition = /*#__PURE__*/function (_React$Component) {
24121
- (0,inheritsLoose/* default */.Z)(Transition, _React$Component);
24122
 
24123
- function Transition(props, context) {
24124
- var _this;
24125
 
24126
- _this = _React$Component.call(this, props, context) || this;
24127
- var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
 
24128
 
24129
- var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
24130
- var initialStatus;
24131
- _this.appearStatus = null;
 
24132
 
24133
- if (props.in) {
24134
- if (appear) {
24135
- initialStatus = EXITED;
24136
- _this.appearStatus = ENTERING;
24137
- } else {
24138
- initialStatus = ENTERED;
24139
- }
24140
- } else {
24141
- if (props.unmountOnExit || props.mountOnEnter) {
24142
- initialStatus = UNMOUNTED;
24143
- } else {
24144
- initialStatus = EXITED;
24145
- }
24146
  }
 
24147
 
24148
- _this.state = {
24149
- status: initialStatus
24150
- };
24151
- _this.nextCallback = null;
24152
- return _this;
24153
- }
24154
 
24155
- Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
24156
- var nextIn = _ref.in;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24157
 
24158
- if (nextIn && prevState.status === UNMOUNTED) {
24159
- return {
24160
- status: EXITED
24161
- };
24162
  }
 
24163
 
24164
- return null;
24165
- } // getSnapshotBeforeUpdate(prevProps) {
24166
- // let nextStatus = null
24167
- // if (prevProps !== this.props) {
24168
- // const { status } = this.state
24169
- // if (this.props.in) {
24170
- // if (status !== ENTERING && status !== ENTERED) {
24171
- // nextStatus = ENTERING
24172
- // }
24173
- // } else {
24174
- // if (status === ENTERING || status === ENTERED) {
24175
- // nextStatus = EXITING
24176
- // }
24177
- // }
24178
- // }
24179
- // return { nextStatus }
24180
- // }
24181
- ;
24182
 
24183
- var _proto = Transition.prototype;
 
 
 
24184
 
24185
- _proto.componentDidMount = function componentDidMount() {
24186
- this.updateStatus(true, this.appearStatus);
24187
- };
24188
 
24189
- _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
24190
- var nextStatus = null;
24191
 
24192
- if (prevProps !== this.props) {
24193
- var status = this.state.status;
 
 
 
24194
 
24195
- if (this.props.in) {
24196
- if (status !== ENTERING && status !== ENTERED) {
24197
- nextStatus = ENTERING;
24198
- }
24199
- } else {
24200
- if (status === ENTERING || status === ENTERED) {
24201
- nextStatus = EXITING;
24202
- }
24203
- }
24204
  }
 
24205
 
24206
- this.updateStatus(false, nextStatus);
24207
- };
 
 
24208
 
24209
- _proto.componentWillUnmount = function componentWillUnmount() {
24210
- this.cancelNextCallback();
 
24211
  };
24212
 
24213
- _proto.getTimeouts = function getTimeouts() {
24214
- var timeout = this.props.timeout;
24215
- var exit, enter, appear;
24216
- exit = enter = appear = timeout;
24217
-
24218
- if (timeout != null && typeof timeout !== 'number') {
24219
- exit = timeout.exit;
24220
- enter = timeout.enter; // TODO: remove fallback for next major
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24221
 
24222
- appear = timeout.appear !== undefined ? timeout.appear : enter;
 
 
 
24223
  }
24224
 
24225
- return {
24226
- exit: exit,
24227
- enter: enter,
24228
- appear: appear
24229
- };
24230
- };
24231
 
24232
- _proto.updateStatus = function updateStatus(mounting, nextStatus) {
24233
- if (mounting === void 0) {
24234
- mounting = false;
24235
- }
24236
 
24237
- if (nextStatus !== null) {
24238
- // nextStatus will always be ENTERING or EXITING.
24239
- this.cancelNextCallback();
24240
 
24241
- if (nextStatus === ENTERING) {
24242
- this.performEnter(mounting);
24243
- } else {
24244
- this.performExit();
24245
- }
24246
- } else if (this.props.unmountOnExit && this.state.status === EXITED) {
24247
- this.setState({
24248
- status: UNMOUNTED
24249
- });
24250
- }
24251
- };
24252
 
24253
- _proto.performEnter = function performEnter(mounting) {
24254
- var _this2 = this;
 
 
 
24255
 
24256
- var enter = this.props.enter;
24257
- var appearing = this.context ? this.context.isMounting : mounting;
24258
 
24259
- var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
24260
- maybeNode = _ref2[0],
24261
- maybeAppearing = _ref2[1];
24262
 
24263
- var timeouts = this.getTimeouts();
24264
- var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
24265
- // if we are mounting and running this it means appear _must_ be set
24266
 
24267
- if (!mounting && !enter || config.disabled) {
24268
- this.safeSetState({
24269
- status: ENTERED
24270
- }, function () {
24271
- _this2.props.onEntered(maybeNode);
24272
- });
24273
- return;
24274
- }
24275
 
24276
- this.props.onEnter(maybeNode, maybeAppearing);
24277
- this.safeSetState({
24278
- status: ENTERING
24279
- }, function () {
24280
- _this2.props.onEntering(maybeNode, maybeAppearing);
24281
 
24282
- _this2.onTransitionEnd(enterTimeout, function () {
24283
- _this2.safeSetState({
24284
- status: ENTERED
24285
- }, function () {
24286
- _this2.props.onEntered(maybeNode, maybeAppearing);
24287
- });
24288
- });
24289
- });
24290
- };
24291
 
24292
- _proto.performExit = function performExit() {
24293
- var _this3 = this;
 
24294
 
24295
- var exit = this.props.exit;
24296
- var timeouts = this.getTimeouts();
24297
- var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24298
 
24299
- if (!exit || config.disabled) {
24300
- this.safeSetState({
24301
- status: EXITED
24302
- }, function () {
24303
- _this3.props.onExited(maybeNode);
24304
- });
24305
- return;
24306
- }
24307
 
24308
- this.props.onExit(maybeNode);
24309
- this.safeSetState({
24310
- status: EXITING
24311
- }, function () {
24312
- _this3.props.onExiting(maybeNode);
24313
 
24314
- _this3.onTransitionEnd(timeouts.exit, function () {
24315
- _this3.safeSetState({
24316
- status: EXITED
24317
- }, function () {
24318
- _this3.props.onExited(maybeNode);
24319
- });
24320
- });
24321
- });
24322
- };
24323
 
24324
- _proto.cancelNextCallback = function cancelNextCallback() {
24325
- if (this.nextCallback !== null) {
24326
- this.nextCallback.cancel();
24327
- this.nextCallback = null;
24328
- }
24329
- };
24330
 
24331
- _proto.safeSetState = function safeSetState(nextState, callback) {
24332
- // This shouldn't be necessary, but there are weird race conditions with
24333
- // setState callbacks and unmounting in testing, so always make sure that
24334
- // we can cancel any pending setState callbacks after we unmount.
24335
- callback = this.setNextCallback(callback);
24336
- this.setState(nextState, callback);
24337
- };
24338
 
24339
- _proto.setNextCallback = function setNextCallback(callback) {
24340
- var _this4 = this;
 
 
 
 
24341
 
24342
- var active = true;
 
 
24343
 
24344
- this.nextCallback = function (event) {
24345
- if (active) {
24346
- active = false;
24347
- _this4.nextCallback = null;
24348
- callback(event);
24349
- }
24350
- };
24351
 
24352
- this.nextCallback.cancel = function () {
24353
- active = false;
24354
- };
24355
 
24356
- return this.nextCallback;
24357
- };
24358
 
24359
- _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
24360
- this.setNextCallback(handler);
24361
- var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
24362
- var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
24363
 
24364
- if (!node || doesNotHaveTimeoutOrListener) {
24365
- setTimeout(this.nextCallback, 0);
24366
- return;
24367
  }
24368
 
24369
- if (this.props.addEndListener) {
24370
- var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
24371
- maybeNode = _ref3[0],
24372
- maybeNextCallback = _ref3[1];
24373
 
24374
- this.props.addEndListener(maybeNode, maybeNextCallback);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24375
  }
24376
 
24377
- if (timeout != null) {
24378
- setTimeout(this.nextCallback, timeout);
24379
  }
24380
  };
24381
 
24382
- _proto.render = function render() {
24383
- var status = this.state.status;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24384
 
24385
- if (status === UNMOUNTED) {
24386
- return null;
24387
- }
 
 
 
 
 
 
24388
 
24389
- var _this$props = this.props,
24390
- children = _this$props.children,
24391
- _in = _this$props.in,
24392
- _mountOnEnter = _this$props.mountOnEnter,
24393
- _unmountOnExit = _this$props.unmountOnExit,
24394
- _appear = _this$props.appear,
24395
- _enter = _this$props.enter,
24396
- _exit = _this$props.exit,
24397
- _timeout = _this$props.timeout,
24398
- _addEndListener = _this$props.addEndListener,
24399
- _onEnter = _this$props.onEnter,
24400
- _onEntering = _this$props.onEntering,
24401
- _onEntered = _this$props.onEntered,
24402
- _onExit = _this$props.onExit,
24403
- _onExiting = _this$props.onExiting,
24404
- _onExited = _this$props.onExited,
24405
- _nodeRef = _this$props.nodeRef,
24406
- childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
24407
 
24408
- return (
24409
- /*#__PURE__*/
24410
- // allows for nested Transitions
24411
- react.createElement(TransitionGroupContext.Provider, {
24412
- value: null
24413
- }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
24414
- );
24415
- };
24416
 
24417
- return Transition;
24418
- }(react.Component);
24419
 
24420
- Transition.contextType = TransitionGroupContext;
24421
- Transition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation
24422
 
24423
- function Transition_noop() {}
24424
 
24425
- Transition.defaultProps = {
24426
- in: false,
24427
- mountOnEnter: false,
24428
- unmountOnExit: false,
24429
- appear: false,
24430
- enter: true,
24431
- exit: true,
24432
- onEnter: Transition_noop,
24433
- onEntering: Transition_noop,
24434
- onEntered: Transition_noop,
24435
- onExit: Transition_noop,
24436
- onExiting: Transition_noop,
24437
- onExited: Transition_noop
24438
- };
24439
- Transition.UNMOUNTED = UNMOUNTED;
24440
- Transition.EXITED = EXITED;
24441
- Transition.ENTERING = ENTERING;
24442
- Transition.ENTERED = ENTERED;
24443
- Transition.EXITING = EXITING;
24444
- /* harmony default export */ var esm_Transition = (Transition);
24445
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/transitions.js
24446
- var transitions = __webpack_require__(43366);
24447
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/defaultTheme.js
24448
- var defaultTheme = __webpack_require__(99700);
24449
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/useTheme.js
24450
 
24451
 
24452
 
24453
- function useTheme_useTheme() {
24454
- var theme = (0,useTheme/* default */.Z)() || defaultTheme/* default */.Z;
24455
 
24456
- if (false) {}
24457
 
24458
- return theme;
24459
- }
24460
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/transitions/utils.js
24461
- var reflow = function reflow(node) {
24462
- return node.scrollTop;
24463
- };
24464
- function getTransitionProps(props, options) {
24465
- var timeout = props.timeout,
24466
- _props$style = props.style,
24467
- style = _props$style === void 0 ? {} : _props$style;
24468
- return {
24469
- duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,
24470
- delay: style.transitionDelay
24471
- };
24472
- }
24473
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Fade/Fade.js
24474
 
24475
 
24476
 
24477
 
24478
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24479
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24480
 
 
 
24481
 
 
 
24482
 
 
 
24483
 
24484
- var Fade_styles = {
24485
- entering: {
24486
- opacity: 1
24487
- },
24488
- entered: {
24489
- opacity: 1
24490
- }
24491
- };
24492
- var defaultTimeout = {
24493
- enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
24494
- exit: transitions/* duration.leavingScreen */.x9.leavingScreen
24495
- };
24496
- /**
24497
- * The Fade transition is used by the [Modal](/components/modal/) component.
24498
- * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
24499
- */
24500
 
24501
- var Fade = /*#__PURE__*/react.forwardRef(function Fade(props, ref) {
24502
- var children = props.children,
24503
- _props$disableStrictM = props.disableStrictModeCompat,
24504
- disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
24505
- inProp = props.in,
24506
- onEnter = props.onEnter,
24507
- onEntered = props.onEntered,
24508
- onEntering = props.onEntering,
24509
- onExit = props.onExit,
24510
- onExited = props.onExited,
24511
- onExiting = props.onExiting,
24512
- style = props.style,
24513
- _props$TransitionComp = props.TransitionComponent,
24514
- TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
24515
- _props$timeout = props.timeout,
24516
- timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,
24517
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "TransitionComponent", "timeout"]);
24518
 
24519
- var theme = useTheme_useTheme();
24520
- var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
24521
- var nodeRef = react.useRef(null);
24522
- var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
24523
- var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
24524
-
24525
- var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
24526
- return function (nodeOrAppearing, maybeAppearing) {
24527
- if (callback) {
24528
- var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
24529
- _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
24530
- node = _ref2[0],
24531
- isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
24532
 
 
 
24533
 
24534
- if (isAppearing === undefined) {
24535
- callback(node);
24536
- } else {
24537
- callback(node, isAppearing);
24538
- }
24539
  }
24540
- };
24541
- };
24542
-
24543
- var handleEntering = normalizedTransitionCallback(onEntering);
24544
- var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
24545
- reflow(node); // So the animation always start from the start.
24546
 
24547
- var transitionProps = getTransitionProps({
24548
- style: style,
24549
- timeout: timeout
24550
- }, {
24551
- mode: 'enter'
24552
- });
24553
- node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
24554
- node.style.transition = theme.transitions.create('opacity', transitionProps);
24555
 
24556
- if (onEnter) {
24557
- onEnter(node, isAppearing);
24558
- }
24559
- });
24560
- var handleEntered = normalizedTransitionCallback(onEntered);
24561
- var handleExiting = normalizedTransitionCallback(onExiting);
24562
- var handleExit = normalizedTransitionCallback(function (node) {
24563
- var transitionProps = getTransitionProps({
24564
- style: style,
24565
- timeout: timeout
24566
- }, {
24567
- mode: 'exit'
24568
- });
24569
- node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
24570
- node.style.transition = theme.transitions.create('opacity', transitionProps);
24571
 
24572
- if (onExit) {
24573
- onExit(node);
24574
- }
24575
- });
24576
- var handleExited = normalizedTransitionCallback(onExited);
24577
- return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
24578
- appear: true,
24579
- in: inProp,
24580
- nodeRef: enableStrictModeCompat ? nodeRef : undefined,
24581
- onEnter: handleEnter,
24582
- onEntered: handleEntered,
24583
- onEntering: handleEntering,
24584
- onExit: handleExit,
24585
- onExited: handleExited,
24586
- onExiting: handleExiting,
24587
- timeout: timeout
24588
- }, other), function (state, childProps) {
24589
- return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
24590
- style: (0,esm_extends/* default */.Z)({
24591
- opacity: 0,
24592
- visibility: state === 'exited' && !inProp ? 'hidden' : undefined
24593
- }, Fade_styles[state], style, children.props.style),
24594
- ref: handleRef
24595
- }, childProps));
24596
- });
24597
- });
24598
- false ? 0 : void 0;
24599
- /* harmony default export */ var Fade_Fade = (Fade);
24600
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24601
 
 
 
 
24602
 
 
 
 
 
 
 
24603
 
 
 
 
 
24604
 
 
 
 
 
 
 
24605
 
 
 
 
 
 
 
24606
 
 
 
24607
 
24608
- var Backdrop_styles = {
24609
- /* Styles applied to the root element. */
24610
- root: {
24611
- // Improve scrollable dialog support.
24612
- zIndex: -1,
24613
- position: 'fixed',
24614
- display: 'flex',
24615
- alignItems: 'center',
24616
- justifyContent: 'center',
24617
- right: 0,
24618
- bottom: 0,
24619
- top: 0,
24620
- left: 0,
24621
- backgroundColor: 'rgba(0, 0, 0, 0.5)',
24622
- WebkitTapHighlightColor: 'transparent'
24623
- },
24624
 
24625
- /* Styles applied to the root element if `invisible={true}`. */
24626
- invisible: {
24627
- backgroundColor: 'transparent'
24628
- }
24629
  };
24630
- var Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(props, ref) {
24631
- var children = props.children,
 
 
 
 
 
 
 
 
 
24632
  classes = props.classes,
24633
  className = props.className,
24634
- _props$invisible = props.invisible,
24635
- invisible = _props$invisible === void 0 ? false : _props$invisible,
24636
- open = props.open,
24637
- transitionDuration = props.transitionDuration,
24638
- _props$TransitionComp = props.TransitionComponent,
24639
- TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
24640
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "invisible", "open", "transitionDuration", "TransitionComponent"]);
24641
-
24642
- return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
24643
- in: open,
24644
- timeout: transitionDuration
24645
- }, other), /*#__PURE__*/react.createElement("div", {
24646
- className: (0,clsx_m/* default */.Z)(classes.root, className, invisible && classes.invisible),
24647
- "aria-hidden": true,
24648
- ref: ref
24649
- }, children));
24650
- });
24651
- false ? 0 : void 0;
24652
- /* harmony default export */ var Backdrop_Backdrop = ((0,withStyles/* default */.Z)(Backdrop_styles, {
24653
- name: 'MuiBackdrop'
24654
- })(Backdrop));
24655
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Paper/Paper.js
 
 
 
 
 
 
 
 
 
 
 
 
24656
 
 
24657
 
 
 
24658
 
 
 
 
 
 
 
 
24659
 
 
 
 
24660
 
 
24661
 
 
24662
 
24663
- var Paper_styles = function styles(theme) {
24664
- var elevations = {};
24665
- theme.shadows.forEach(function (shadow, index) {
24666
- elevations["elevation".concat(index)] = {
24667
- boxShadow: shadow
24668
- };
24669
  });
24670
- return (0,esm_extends/* default */.Z)({
24671
- /* Styles applied to the root element. */
24672
- root: {
24673
- backgroundColor: theme.palette.background.paper,
24674
- color: theme.palette.text.primary,
24675
- transition: theme.transitions.create('box-shadow')
24676
- },
24677
 
24678
- /* Styles applied to the root element if `square={false}`. */
24679
- rounded: {
24680
- borderRadius: theme.shape.borderRadius
24681
- },
24682
 
24683
- /* Styles applied to the root element if `variant="outlined"`. */
24684
- outlined: {
24685
- border: "1px solid ".concat(theme.palette.divider)
24686
  }
24687
- }, elevations);
24688
- };
24689
- var Paper = /*#__PURE__*/react.forwardRef(function Paper(props, ref) {
24690
- var classes = props.classes,
24691
- className = props.className,
24692
- _props$component = props.component,
24693
- Component = _props$component === void 0 ? 'div' : _props$component,
24694
- _props$square = props.square,
24695
- square = _props$square === void 0 ? false : _props$square,
24696
- _props$elevation = props.elevation,
24697
- elevation = _props$elevation === void 0 ? 1 : _props$elevation,
24698
- _props$variant = props.variant,
24699
- variant = _props$variant === void 0 ? 'elevation' : _props$variant,
24700
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "square", "elevation", "variant"]);
 
 
 
 
 
24701
 
24702
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
24703
- className: (0,clsx_m/* default */.Z)(classes.root, className, variant === 'outlined' ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
24704
- ref: ref
24705
- }, other));
24706
- });
24707
- false ? 0 : void 0;
24708
- /* harmony default export */ var Paper_Paper = ((0,withStyles/* default */.Z)(Paper_styles, {
24709
- name: 'MuiPaper'
24710
- })(Paper));
24711
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Dialog/Dialog.js
24712
 
 
 
 
24713
 
 
 
 
24714
 
 
 
 
 
 
 
24715
 
 
 
 
 
24716
 
 
 
 
24717
 
 
 
 
 
 
 
24718
 
 
 
 
24719
 
 
 
 
24720
 
 
 
 
 
24721
 
 
 
 
24722
 
 
 
 
24723
 
24724
 
24725
- var Dialog_styles = function styles(theme) {
24726
- return {
24727
- /* Styles applied to the root element. */
24728
- root: {
24729
- '@media print': {
24730
- // Use !important to override the Modal inline-style.
24731
- position: 'absolute !important'
24732
- }
24733
- },
24734
 
24735
- /* Styles applied to the container element if `scroll="paper"`. */
24736
- scrollPaper: {
24737
- display: 'flex',
24738
- justifyContent: 'center',
24739
- alignItems: 'center'
24740
- },
24741
 
24742
- /* Styles applied to the container element if `scroll="body"`. */
24743
- scrollBody: {
24744
- overflowY: 'auto',
24745
- overflowX: 'hidden',
24746
- textAlign: 'center',
24747
- '&:after': {
24748
- content: '""',
24749
- display: 'inline-block',
24750
- verticalAlign: 'middle',
24751
- height: '100%',
24752
- width: '0'
24753
- }
24754
- },
24755
 
24756
- /* Styles applied to the container element. */
24757
- container: {
24758
- height: '100%',
24759
- '@media print': {
24760
- height: 'auto'
24761
- },
24762
- // We disable the focus ring for mouse, touch and keyboard users.
24763
- outline: 0
24764
- },
24765
 
24766
- /* Styles applied to the `Paper` component. */
24767
- paper: {
24768
- margin: 32,
24769
- position: 'relative',
24770
- overflowY: 'auto',
24771
- // Fix IE 11 issue, to remove at some point.
24772
- '@media print': {
24773
- overflowY: 'visible',
24774
- boxShadow: 'none'
24775
- }
24776
- },
24777
 
24778
- /* Styles applied to the `Paper` component if `scroll="paper"`. */
24779
- paperScrollPaper: {
24780
- display: 'flex',
24781
- flexDirection: 'column',
24782
- maxHeight: 'calc(100% - 64px)'
24783
- },
24784
 
24785
- /* Styles applied to the `Paper` component if `scroll="body"`. */
24786
- paperScrollBody: {
24787
- display: 'inline-block',
24788
- verticalAlign: 'middle',
24789
- textAlign: 'left' // 'initial' doesn't work on IE 11
24790
 
24791
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24792
 
24793
- /* Styles applied to the `Paper` component if `maxWidth=false`. */
24794
- paperWidthFalse: {
24795
- maxWidth: 'calc(100% - 64px)'
24796
- },
 
 
24797
 
24798
- /* Styles applied to the `Paper` component if `maxWidth="xs"`. */
24799
- paperWidthXs: {
24800
- maxWidth: Math.max(theme.breakpoints.values.xs, 444),
24801
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {
24802
- maxWidth: 'calc(100% - 64px)'
24803
- })
24804
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24805
 
24806
- /* Styles applied to the `Paper` component if `maxWidth="sm"`. */
24807
- paperWidthSm: {
24808
- maxWidth: theme.breakpoints.values.sm,
24809
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {
24810
- maxWidth: 'calc(100% - 64px)'
24811
- })
24812
- },
24813
 
24814
- /* Styles applied to the `Paper` component if `maxWidth="md"`. */
24815
- paperWidthMd: {
24816
- maxWidth: theme.breakpoints.values.md,
24817
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {
24818
- maxWidth: 'calc(100% - 64px)'
24819
- })
24820
- },
24821
 
24822
- /* Styles applied to the `Paper` component if `maxWidth="lg"`. */
24823
- paperWidthLg: {
24824
- maxWidth: theme.breakpoints.values.lg,
24825
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {
24826
- maxWidth: 'calc(100% - 64px)'
24827
- })
24828
- },
24829
 
24830
- /* Styles applied to the `Paper` component if `maxWidth="xl"`. */
24831
- paperWidthXl: {
24832
- maxWidth: theme.breakpoints.values.xl,
24833
- '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {
24834
- maxWidth: 'calc(100% - 64px)'
24835
- })
 
 
 
 
 
24836
  },
24837
 
24838
- /* Styles applied to the `Paper` component if `fullWidth={true}`. */
24839
- paperFullWidth: {
24840
- width: 'calc(100% - 64px)'
 
 
24841
  },
24842
 
24843
- /* Styles applied to the `Paper` component if `fullScreen={true}`. */
24844
- paperFullScreen: {
24845
- margin: 0,
24846
- width: '100%',
24847
- maxWidth: '100%',
24848
- height: '100%',
24849
- maxHeight: 'none',
24850
- borderRadius: 0,
24851
- '&$paperScrollBody': {
24852
- margin: 0,
24853
- maxWidth: '100%'
24854
  }
24855
- }
24856
- };
24857
- };
24858
- var defaultTransitionDuration = {
24859
- enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
24860
- exit: transitions/* duration.leavingScreen */.x9.leavingScreen
24861
- };
24862
- /**
24863
- * Dialogs are overlaid modal paper based components with a backdrop.
24864
- */
24865
 
24866
- var Dialog_Dialog = /*#__PURE__*/react.forwardRef(function Dialog(props, ref) {
24867
- var BackdropProps = props.BackdropProps,
24868
- children = props.children,
24869
- classes = props.classes,
24870
- className = props.className,
24871
- _props$disableBackdro = props.disableBackdropClick,
24872
- disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
24873
- _props$disableEscapeK = props.disableEscapeKeyDown,
24874
- disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
24875
- _props$fullScreen = props.fullScreen,
24876
- fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,
24877
- _props$fullWidth = props.fullWidth,
24878
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
24879
- _props$maxWidth = props.maxWidth,
24880
- maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,
24881
- onBackdropClick = props.onBackdropClick,
24882
- onClose = props.onClose,
24883
- onEnter = props.onEnter,
24884
- onEntered = props.onEntered,
24885
- onEntering = props.onEntering,
24886
- onEscapeKeyDown = props.onEscapeKeyDown,
24887
- onExit = props.onExit,
24888
- onExited = props.onExited,
24889
- onExiting = props.onExiting,
24890
- open = props.open,
24891
- _props$PaperComponent = props.PaperComponent,
24892
- PaperComponent = _props$PaperComponent === void 0 ? Paper_Paper : _props$PaperComponent,
24893
- _props$PaperProps = props.PaperProps,
24894
- PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
24895
- _props$scroll = props.scroll,
24896
- scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,
24897
- _props$TransitionComp = props.TransitionComponent,
24898
- TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
24899
- _props$transitionDura = props.transitionDuration,
24900
- transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,
24901
- TransitionProps = props.TransitionProps,
24902
- ariaDescribedby = props['aria-describedby'],
24903
- ariaLabelledby = props['aria-labelledby'],
24904
- other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropProps", "children", "classes", "className", "disableBackdropClick", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "onEnter", "onEntered", "onEntering", "onEscapeKeyDown", "onExit", "onExited", "onExiting", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps", "aria-describedby", "aria-labelledby"]);
24905
 
24906
- var mouseDownTarget = react.useRef();
 
 
 
 
 
 
24907
 
24908
- var handleMouseDown = function handleMouseDown(event) {
24909
- mouseDownTarget.current = event.target;
24910
- };
 
 
 
 
 
 
 
 
 
 
24911
 
24912
- var handleBackdropClick = function handleBackdropClick(event) {
24913
- // Ignore the events not coming from the "backdrop"
24914
- // We don't want to close the dialog when clicking the dialog content.
24915
- if (event.target !== event.currentTarget) {
24916
- return;
24917
- } // Make sure the event starts and ends on the same DOM element.
 
 
 
 
 
 
24918
 
 
 
24919
 
24920
- if (event.target !== mouseDownTarget.current) {
24921
- return;
24922
- }
24923
 
24924
- mouseDownTarget.current = null;
 
24925
 
24926
- if (onBackdropClick) {
24927
- onBackdropClick(event);
24928
- }
24929
 
24930
- if (!disableBackdropClick && onClose) {
24931
- onClose(event, 'backdropClick');
24932
- }
 
 
 
 
 
 
 
 
24933
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
24934
 
24935
- return /*#__PURE__*/react.createElement(Modal_Modal, (0,esm_extends/* default */.Z)({
24936
- className: (0,clsx_m/* default */.Z)(classes.root, className),
24937
- BackdropComponent: Backdrop_Backdrop,
24938
- BackdropProps: (0,esm_extends/* default */.Z)({
24939
- transitionDuration: transitionDuration
24940
- }, BackdropProps),
24941
- closeAfterTransition: true,
24942
- disableBackdropClick: disableBackdropClick,
24943
- disableEscapeKeyDown: disableEscapeKeyDown,
24944
- onEscapeKeyDown: onEscapeKeyDown,
24945
- onClose: onClose,
24946
- open: open,
24947
- ref: ref
24948
- }, other), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
24949
- appear: true,
24950
- in: open,
24951
- timeout: transitionDuration,
24952
- onEnter: onEnter,
24953
- onEntering: onEntering,
24954
- onEntered: onEntered,
24955
- onExit: onExit,
24956
- onExiting: onExiting,
24957
- onExited: onExited,
24958
- role: "none presentation"
24959
- }, TransitionProps), /*#__PURE__*/react.createElement("div", {
24960
- className: (0,clsx_m/* default */.Z)(classes.container, classes["scroll".concat((0,utils_capitalize/* default */.Z)(scroll))]),
24961
- onMouseUp: handleBackdropClick,
24962
- onMouseDown: handleMouseDown
24963
- }, /*#__PURE__*/react.createElement(PaperComponent, (0,esm_extends/* default */.Z)({
24964
- elevation: 24,
24965
- role: "dialog",
24966
- "aria-describedby": ariaDescribedby,
24967
- "aria-labelledby": ariaLabelledby
24968
- }, PaperProps, {
24969
- className: (0,clsx_m/* default */.Z)(classes.paper, classes["paperScroll".concat((0,utils_capitalize/* default */.Z)(scroll))], classes["paperWidth".concat((0,utils_capitalize/* default */.Z)(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)
24970
- }), children))));
24971
  });
24972
  false ? 0 : void 0;
24973
- /* harmony default export */ var esm_Dialog_Dialog = ((0,withStyles/* default */.Z)(Dialog_styles, {
24974
- name: 'MuiDialog'
24975
- })(Dialog_Dialog));
24976
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Typography/Typography.js
 
24977
 
24978
 
24979
 
@@ -24981,183 +25376,198 @@ var Dialog_Dialog = /*#__PURE__*/react.forwardRef(function Dialog(props, ref) {
24981
 
24982
 
24983
 
24984
- var Typography_styles = function styles(theme) {
 
 
 
 
24985
  return {
24986
  /* Styles applied to the root element. */
24987
  root: {
24988
- margin: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24989
  },
24990
 
24991
- /* Styles applied to the root element if `variant="body2"`. */
24992
- body2: theme.typography.body2,
24993
-
24994
- /* Styles applied to the root element if `variant="body1"`. */
24995
- body1: theme.typography.body1,
24996
-
24997
- /* Styles applied to the root element if `variant="caption"`. */
24998
- caption: theme.typography.caption,
24999
-
25000
- /* Styles applied to the root element if `variant="button"`. */
25001
- button: theme.typography.button,
25002
-
25003
- /* Styles applied to the root element if `variant="h1"`. */
25004
- h1: theme.typography.h1,
25005
-
25006
- /* Styles applied to the root element if `variant="h2"`. */
25007
- h2: theme.typography.h2,
25008
-
25009
- /* Styles applied to the root element if `variant="h3"`. */
25010
- h3: theme.typography.h3,
25011
 
25012
- /* Styles applied to the root element if `variant="h4"`. */
25013
- h4: theme.typography.h4,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25014
 
25015
- /* Styles applied to the root element if `variant="h5"`. */
25016
- h5: theme.typography.h5,
 
 
 
 
 
25017
 
25018
- /* Styles applied to the root element if `variant="h6"`. */
25019
- h6: theme.typography.h6,
 
 
 
 
 
 
 
 
 
 
 
25020
 
25021
- /* Styles applied to the root element if `variant="subtitle1"`. */
25022
- subtitle1: theme.typography.subtitle1,
 
 
 
 
 
 
25023
 
25024
- /* Styles applied to the root element if `variant="subtitle2"`. */
25025
- subtitle2: theme.typography.subtitle2,
25026
 
25027
- /* Styles applied to the root element if `variant="overline"`. */
25028
- overline: theme.typography.overline,
25029
 
25030
- /* Styles applied to the root element if `variant="srOnly"`. Only accessible to screen readers. */
25031
- srOnly: {
25032
- position: 'absolute',
25033
- height: 1,
25034
- width: 1,
25035
- overflow: 'hidden'
25036
  },
25037
 
25038
- /* Styles applied to the root element if `align="left"`. */
25039
- alignLeft: {
25040
- textAlign: 'left'
25041
  },
25042
 
25043
- /* Styles applied to the root element if `align="center"`. */
25044
- alignCenter: {
25045
- textAlign: 'center'
25046
- },
25047
 
25048
- /* Styles applied to the root element if `align="right"`. */
25049
- alignRight: {
25050
- textAlign: 'right'
25051
- },
25052
 
25053
- /* Styles applied to the root element if `align="justify"`. */
25054
- alignJustify: {
25055
- textAlign: 'justify'
 
 
 
 
25056
  },
25057
 
25058
- /* Styles applied to the root element if `nowrap={true}`. */
25059
- noWrap: {
25060
- overflow: 'hidden',
25061
- textOverflow: 'ellipsis',
25062
- whiteSpace: 'nowrap'
 
 
 
 
 
25063
  },
25064
 
25065
- /* Styles applied to the root element if `gutterBottom={true}`. */
25066
- gutterBottom: {
25067
- marginBottom: '0.35em'
 
25068
  },
25069
 
25070
- /* Styles applied to the root element if `paragraph={true}`. */
25071
- paragraph: {
25072
- marginBottom: 16
 
 
 
 
 
25073
  },
25074
 
25075
- /* Styles applied to the root element if `color="inherit"`. */
25076
- colorInherit: {
25077
- color: 'inherit'
25078
  },
25079
 
25080
- /* Styles applied to the root element if `color="primary"`. */
25081
- colorPrimary: {
25082
- color: theme.palette.primary.main
25083
- },
25084
-
25085
- /* Styles applied to the root element if `color="secondary"`. */
25086
- colorSecondary: {
25087
- color: theme.palette.secondary.main
25088
- },
25089
-
25090
- /* Styles applied to the root element if `color="textPrimary"`. */
25091
- colorTextPrimary: {
25092
- color: theme.palette.text.primary
25093
- },
25094
-
25095
- /* Styles applied to the root element if `color="textSecondary"`. */
25096
- colorTextSecondary: {
25097
- color: theme.palette.text.secondary
25098
- },
25099
-
25100
- /* Styles applied to the root element if `color="error"`. */
25101
- colorError: {
25102
- color: theme.palette.error.main
25103
- },
25104
-
25105
- /* Styles applied to the root element if `display="inline"`. */
25106
- displayInline: {
25107
- display: 'inline'
25108
  },
25109
 
25110
- /* Styles applied to the root element if `display="block"`. */
25111
- displayBlock: {
25112
- display: 'block'
25113
  }
25114
  };
25115
  };
25116
- var defaultVariantMapping = {
25117
- h1: 'h1',
25118
- h2: 'h2',
25119
- h3: 'h3',
25120
- h4: 'h4',
25121
- h5: 'h5',
25122
- h6: 'h6',
25123
- subtitle1: 'h6',
25124
- subtitle2: 'h6',
25125
- body1: 'p',
25126
- body2: 'p'
25127
- };
25128
- var Typography = /*#__PURE__*/react.forwardRef(function Typography(props, ref) {
25129
- var _props$align = props.align,
25130
- align = _props$align === void 0 ? 'inherit' : _props$align,
25131
  classes = props.classes,
25132
- className = props.className,
25133
- _props$color = props.color,
25134
- color = _props$color === void 0 ? 'initial' : _props$color,
25135
- component = props.component,
25136
- _props$display = props.display,
25137
- display = _props$display === void 0 ? 'initial' : _props$display,
25138
- _props$gutterBottom = props.gutterBottom,
25139
- gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,
25140
- _props$noWrap = props.noWrap,
25141
- noWrap = _props$noWrap === void 0 ? false : _props$noWrap,
25142
- _props$paragraph = props.paragraph,
25143
- paragraph = _props$paragraph === void 0 ? false : _props$paragraph,
25144
- _props$variant = props.variant,
25145
- variant = _props$variant === void 0 ? 'body1' : _props$variant,
25146
- _props$variantMapping = props.variantMapping,
25147
- variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,
25148
- other = (0,objectWithoutProperties/* default */.Z)(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
25149
 
25150
- var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
25151
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
25152
- className: (0,clsx_m/* default */.Z)(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes["align".concat((0,utils_capitalize/* default */.Z)(align))], display !== 'initial' && classes["display".concat((0,utils_capitalize/* default */.Z)(display))]),
25153
- ref: ref
 
 
 
 
 
 
25154
  }, other));
25155
  });
25156
  false ? 0 : void 0;
25157
- /* harmony default export */ var Typography_Typography = ((0,withStyles/* default */.Z)(Typography_styles, {
25158
- name: 'MuiTypography'
25159
- })(Typography));
25160
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js
 
25161
 
25162
 
25163
 
@@ -25165,211 +25575,289 @@ var Typography = /*#__PURE__*/react.forwardRef(function Typography(props, ref) {
25165
 
25166
 
25167
 
25168
- var DialogTitle_styles = {
25169
- /* Styles applied to the root element. */
25170
- root: {
25171
- margin: 0,
25172
- padding: '16px 24px',
25173
- flex: '0 0 auto'
25174
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25175
  };
25176
- var DialogTitle_DialogTitle = /*#__PURE__*/react.forwardRef(function DialogTitle(props, ref) {
 
 
 
 
25177
  var children = props.children,
25178
  classes = props.classes,
25179
  className = props.className,
25180
- _props$disableTypogra = props.disableTypography,
25181
- disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
25182
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography"]);
 
 
25183
 
25184
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25185
  className: (0,clsx_m/* default */.Z)(classes.root, className),
25186
  ref: ref
25187
- }, other), disableTypography ? children : /*#__PURE__*/react.createElement(Typography_Typography, {
25188
- component: "h2",
25189
- variant: "h6"
25190
- }, children));
 
 
 
 
 
 
 
 
 
25191
  });
25192
  false ? 0 : void 0;
25193
- /* harmony default export */ var esm_DialogTitle_DialogTitle = ((0,withStyles/* default */.Z)(DialogTitle_styles, {
25194
- name: 'MuiDialogTitle'
25195
- })(DialogTitle_DialogTitle));
25196
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js
25197
 
25198
 
25199
 
25200
 
25201
 
25202
 
25203
- var DialogContent_styles = function styles(theme) {
 
 
 
 
25204
  return {
25205
  /* Styles applied to the root element. */
25206
  root: {
25207
- flex: '1 1 auto',
25208
- WebkitOverflowScrolling: 'touch',
25209
- // Add iOS momentum scrolling.
25210
- overflowY: 'auto',
25211
- padding: '8px 24px',
25212
- '&:first-child': {
25213
- // dialog without title
25214
- paddingTop: 20
 
 
 
 
 
 
 
 
 
 
 
 
25215
  }
25216
  },
25217
 
25218
- /* Styles applied to the root element if `dividers={true}`. */
25219
- dividers: {
25220
- padding: '16px 24px',
25221
- borderTop: "1px solid ".concat(theme.palette.divider),
25222
- borderBottom: "1px solid ".concat(theme.palette.divider)
25223
- }
25224
- };
25225
- };
25226
- var DialogContent_DialogContent = /*#__PURE__*/react.forwardRef(function DialogContent(props, ref) {
25227
- var classes = props.classes,
25228
- className = props.className,
25229
- _props$dividers = props.dividers,
25230
- dividers = _props$dividers === void 0 ? false : _props$dividers,
25231
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "dividers"]);
25232
 
25233
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
25234
- className: (0,clsx_m/* default */.Z)(classes.root, className, dividers && classes.dividers),
25235
- ref: ref
25236
- }, other));
25237
- });
25238
- false ? 0 : void 0;
25239
- /* harmony default export */ var esm_DialogContent_DialogContent = ((0,withStyles/* default */.Z)(DialogContent_styles, {
25240
- name: 'MuiDialogContent'
25241
- })(DialogContent_DialogContent));
25242
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js
25243
 
 
 
25244
 
 
 
 
 
25245
 
 
 
 
 
25246
 
 
 
25247
 
25248
- var DialogContentText_styles = {
25249
- /* Styles applied to the root element. */
25250
- root: {
25251
- marginBottom: 12
25252
- }
25253
- };
25254
- var DialogContentText = /*#__PURE__*/react.forwardRef(function DialogContentText(props, ref) {
25255
- return /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
25256
- component: "p",
25257
- variant: "body1",
25258
- color: "textSecondary",
25259
- ref: ref
25260
- }, props));
25261
- });
25262
- false ? 0 : void 0;
25263
- /* harmony default export */ var DialogContentText_DialogContentText = ((0,withStyles/* default */.Z)(DialogContentText_styles, {
25264
- name: 'MuiDialogContentText'
25265
- })(DialogContentText));
25266
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js
25267
 
 
 
 
 
 
 
 
 
25268
 
 
 
 
 
25269
 
 
 
 
 
 
 
 
 
 
 
25270
 
 
 
 
 
 
25271
 
 
 
 
 
25272
 
25273
- var DialogActions_styles = {
25274
- /* Styles applied to the root element. */
25275
- root: {
25276
- display: 'flex',
25277
- alignItems: 'center',
25278
- padding: 8,
25279
- justifyContent: 'flex-end',
25280
- flex: '0 0 auto'
25281
- },
25282
 
25283
- /* Styles applied to the root element if `disableSpacing={false}`. */
25284
- spacing: {
25285
- '& > :not(:first-child)': {
25286
- marginLeft: 8
25287
  }
25288
- }
25289
  };
25290
- var DialogActions_DialogActions = /*#__PURE__*/react.forwardRef(function DialogActions(props, ref) {
25291
- var _props$disableSpacing = props.disableSpacing,
25292
- disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,
25293
- classes = props.classes,
25294
- className = props.className,
25295
- other = (0,objectWithoutProperties/* default */.Z)(props, ["disableSpacing", "classes", "className"]);
 
 
 
 
 
 
 
 
 
25296
 
25297
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
25298
- className: (0,clsx_m/* default */.Z)(classes.root, className, !disableSpacing && classes.spacing),
25299
- ref: ref
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25300
  }, other));
25301
  });
25302
  false ? 0 : void 0;
25303
- /* harmony default export */ var esm_DialogActions_DialogActions = ((0,withStyles/* default */.Z)(DialogActions_styles, {
25304
- name: 'MuiDialogActions'
25305
- })(DialogActions_DialogActions));
25306
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/ConfirmDialog/index.js
25307
- function ConfirmDialog_extends() { ConfirmDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ConfirmDialog_extends.apply(this, arguments); }
25308
-
25309
-
25310
-
25311
-
25312
-
25313
- function ConfirmDialog(_ref) {
25314
- var onClose = _ref.onClose,
25315
- _ref$icon = _ref.icon,
25316
- icon = _ref$icon === void 0 ? null : _ref$icon,
25317
- _ref$open = _ref.open,
25318
- open = _ref$open === void 0 ? false : _ref$open,
25319
- _ref$title = _ref.title,
25320
- title = _ref$title === void 0 ? "Confirm" : _ref$title,
25321
- _ref$children = _ref.children,
25322
- children = _ref$children === void 0 ? null : _ref$children,
25323
- _ref$buttons = _ref.buttons,
25324
- buttons = _ref$buttons === void 0 ? null : _ref$buttons,
25325
- _ref$maxWidth = _ref.maxWidth,
25326
- maxWidth = _ref$maxWidth === void 0 ? "xs" : _ref$maxWidth,
25327
- _ref$fullWidth = _ref.fullWidth,
25328
- fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
25329
- className = _ref.className,
25330
- _ref$testId = _ref.testId,
25331
- testId = _ref$testId === void 0 ? null : _ref$testId;
25332
- var defaultButtons = [{
25333
- value: "cancel",
25334
- text: translate_translate("modal.cancel")
25335
- }, {
25336
- value: "confirm",
25337
- text: translate_translate("common.confirm")
25338
- }];
25339
 
25340
- var handleClose = function handleClose(status) {
25341
- onClose(status);
25342
- };
25343
 
25344
- if (!buttons) buttons = defaultButtons;
25345
- return /*#__PURE__*/react.createElement(esm_Dialog_Dialog, {
25346
- open: open,
25347
- onClose: handleClose,
25348
- maxWidth: maxWidth,
25349
- fullWidth: fullWidth,
25350
- "aria-labelledby": "alert-dialog-title",
25351
- "aria-describedby": "alert-dialog-description",
25352
- className: className,
25353
- "data-testid": testId ? "dialog:".concat(testId) : null
25354
- }, /*#__PURE__*/react.createElement(esm_DialogTitle_DialogTitle, {
25355
- id: "alert-dialog-title"
25356
- }, icon, title), /*#__PURE__*/react.createElement(esm_DialogContent_DialogContent, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
25357
- id: "alert-dialog-description",
25358
- component: "div"
25359
- }, children)), /*#__PURE__*/react.createElement(esm_DialogActions_DialogActions, null, buttons.map(function (button, key) {
25360
- return /*#__PURE__*/react.createElement(esm_Button_Button, ConfirmDialog_extends({
25361
- onClick: function onClick() {
25362
- return handleClose(button.value);
25363
- },
25364
- color: "primary",
25365
- key: key,
25366
- variant: button.variant,
25367
- "data-testid": testId ? "dialog:".concat(testId, ":button:").concat(button.value) : null
25368
- }, button.props), button.text);
25369
- })));
25370
  }
25371
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/IconButton/IconButton.js
25372
-
25373
 
25374
 
25375
 
@@ -25379,3540 +25867,2354 @@ function ConfirmDialog(_ref) {
25379
 
25380
 
25381
 
25382
- var IconButton_styles = function styles(theme) {
25383
  return {
25384
  /* Styles applied to the root element. */
25385
- root: {
25386
- textAlign: 'center',
25387
- flex: '0 0 auto',
25388
- fontSize: theme.typography.pxToRem(24),
25389
- padding: 12,
25390
- borderRadius: '50%',
25391
- overflow: 'visible',
25392
- // Explicitly set the default value to solve a bug on IE 11.
25393
- color: theme.palette.action.active,
25394
- transition: theme.transitions.create('background-color', {
25395
- duration: theme.transitions.duration.shortest
25396
- }),
25397
- '&:hover': {
25398
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.action.active, theme.palette.action.hoverOpacity),
25399
- // Reset on touch devices, it doesn't add specificity
25400
- '@media (hover: none)': {
25401
- backgroundColor: 'transparent'
25402
- }
25403
  },
25404
  '&$disabled': {
25405
- backgroundColor: 'transparent',
25406
- color: theme.palette.action.disabled
 
 
25407
  }
25408
- },
25409
 
25410
- /* Styles applied to the root element if `edge="start"`. */
25411
- edgeStart: {
25412
- marginLeft: -12,
25413
- '$sizeSmall&': {
25414
- marginLeft: -3
25415
  }
25416
  },
25417
 
25418
- /* Styles applied to the root element if `edge="end"`. */
25419
- edgeEnd: {
25420
- marginRight: -12,
25421
- '$sizeSmall&': {
25422
- marginRight: -3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25423
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25424
  },
25425
 
25426
- /* Styles applied to the root element if `color="inherit"`. */
25427
- colorInherit: {
25428
- color: 'inherit'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25429
  },
25430
 
25431
- /* Styles applied to the root element if `color="primary"`. */
25432
- colorPrimary: {
25433
- color: theme.palette.primary.main,
25434
- '&:hover': {
25435
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
25436
- // Reset on touch devices, it doesn't add specificity
25437
- '@media (hover: none)': {
25438
- backgroundColor: 'transparent'
25439
- }
25440
- }
25441
  },
25442
 
25443
- /* Styles applied to the root element if `color="secondary"`. */
25444
- colorSecondary: {
25445
- color: theme.palette.secondary.main,
25446
- '&:hover': {
25447
- backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
25448
- // Reset on touch devices, it doesn't add specificity
25449
- '@media (hover: none)': {
25450
- backgroundColor: 'transparent'
25451
- }
25452
- }
25453
  },
25454
 
25455
- /* Pseudo-class applied to the root element if `disabled={true}`. */
25456
- disabled: {},
 
 
 
 
 
25457
 
25458
- /* Styles applied to the root element if `size="small"`. */
25459
- sizeSmall: {
25460
- padding: 3,
25461
- fontSize: theme.typography.pxToRem(18)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25462
  },
25463
 
25464
- /* Styles applied to the children container element. */
25465
- label: {
25466
- width: '100%',
25467
- display: 'flex',
25468
- alignItems: 'inherit',
25469
- justifyContent: 'inherit'
 
 
 
 
 
 
25470
  }
25471
  };
25472
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25473
  /**
25474
- * Refer to the [Icons](/components/icons/) section of the documentation
25475
- * regarding the available icon options.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25476
  */
25477
 
25478
- var IconButton_IconButton = /*#__PURE__*/react.forwardRef(function IconButton(props, ref) {
25479
- var _props$edge = props.edge,
25480
- edge = _props$edge === void 0 ? false : _props$edge,
25481
- children = props.children,
25482
  classes = props.classes,
25483
  className = props.className,
25484
  _props$color = props.color,
25485
- color = _props$color === void 0 ? 'default' : _props$color,
 
 
25486
  _props$disabled = props.disabled,
25487
  disabled = _props$disabled === void 0 ? false : _props$disabled,
25488
- _props$disableFocusRi = props.disableFocusRipple,
25489
- disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
25490
- _props$size = props.size,
25491
- size = _props$size === void 0 ? 'medium' : _props$size,
25492
- other = (0,objectWithoutProperties/* default */.Z)(props, ["edge", "children", "classes", "className", "color", "disabled", "disableFocusRipple", "size"]);
 
 
 
 
 
 
 
 
 
 
25493
 
25494
- return /*#__PURE__*/react.createElement(ButtonBase_ButtonBase, (0,esm_extends/* default */.Z)({
25495
- className: (0,clsx_m/* default */.Z)(classes.root, className, color !== 'default' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], disabled && classes.disabled, size === "small" && classes["size".concat((0,utils_capitalize/* default */.Z)(size))], {
25496
- 'start': classes.edgeStart,
25497
- 'end': classes.edgeEnd
25498
- }[edge]),
25499
- centerRipple: true,
25500
- focusRipple: !disableFocusRipple,
25501
- disabled: disabled,
25502
- ref: ref
25503
- }, other), /*#__PURE__*/react.createElement("span", {
25504
- className: classes.label
25505
- }, children));
25506
- });
25507
- false ? 0 : void 0;
25508
- /* harmony default export */ var esm_IconButton_IconButton = ((0,withStyles/* default */.Z)(IconButton_styles, {
25509
- name: 'MuiIconButton'
25510
- })(IconButton_IconButton));
25511
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/RevertButton/RevertButton.js
25512
- function RevertButton_slicedToArray(arr, i) { return RevertButton_arrayWithHoles(arr) || RevertButton_iterableToArrayLimit(arr, i) || RevertButton_unsupportedIterableToArray(arr, i) || RevertButton_nonIterableRest(); }
25513
 
25514
- function RevertButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
 
25515
 
25516
- function RevertButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return RevertButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return RevertButton_arrayLikeToArray(o, minLen); }
25517
 
25518
- function RevertButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
 
 
 
 
25519
 
25520
- function RevertButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
 
 
25521
 
25522
- function RevertButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
 
 
 
 
 
 
 
 
25523
 
 
 
 
 
 
25524
 
 
 
 
 
25525
 
 
 
 
25526
 
 
25527
 
 
 
 
25528
 
 
25529
 
 
25530
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25531
 
25532
 
25533
 
25534
- function RevertButton(_ref) {
25535
- var hasChanges = _ref.hasChanges;
25536
 
25537
- var _useState = (0,react.useState)(false),
25538
- _useState2 = RevertButton_slicedToArray(_useState, 2),
25539
- dialogOpened = _useState2[0],
25540
- setDialogOpened = _useState2[1];
25541
 
25542
- var _useState3 = (0,react.useState)(false),
25543
- _useState4 = RevertButton_slicedToArray(_useState3, 2),
25544
- startRotate = _useState4[0],
25545
- setStartRotate = _useState4[1];
25546
- /**
25547
- * Revert buttons
25548
- */
25549
 
25550
 
25551
- function startReverting() {
25552
- apiRequest("/revert", {
25553
- method: "POST",
25554
- data: {
25555
- nonce: buttonizer_admin.nonce
25556
- }
25557
- }).then(function (_ref2) {
25558
- var status = _ref2.status,
25559
- message = _ref2.message;
25560
 
25561
- if (status === "error") {
25562
- app.loader.hide();
25563
- app.error({
25564
- message: message
25565
- });
25566
- return;
 
 
 
 
 
 
 
 
25567
  }
 
25568
 
25569
- window.location.reload();
25570
- });
25571
- } // Handle close button
25572
 
 
 
25573
 
25574
- var handleClose = function handleClose(why) {
25575
- setDialogOpened(false);
 
 
25576
 
25577
- if (why === "revert") {
25578
- setStartRotate(true);
25579
- startReverting();
25580
- }
 
 
 
 
 
 
 
 
 
 
25581
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25582
 
25583
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
25584
- content: translate_translate("revert.revert_changes")
25585
- }, /*#__PURE__*/react.createElement(esm_IconButton_IconButton, {
25586
- onClick: function onClick() {
25587
- return setDialogOpened(true);
25588
- },
25589
- className: "revert-button",
25590
- color: "secondary",
25591
- disabled: !hasChanges || startRotate,
25592
- "data-testid": "revert-button"
25593
- }, /*#__PURE__*/react.createElement("i", {
25594
- className: (0,clsx_m/* default */.Z)("fas fa-history", startRotate && "spin")
25595
- }))), /*#__PURE__*/react.createElement(ConfirmDialog, {
25596
- open: dialogOpened,
25597
- title: translate_translate("revert.revert_changes"),
25598
- buttons: [{
25599
- text: translate_translate("modal.cancel"),
25600
- value: "close"
25601
- }, {
25602
- text: translate_translate("revert.revert_changes"),
25603
- value: "revert"
25604
- }],
25605
- onClose: handleClose,
25606
- testId: "revert-dialog"
25607
- }, /*#__PURE__*/react.createElement("p", null, translate_translate("revert.modal.intro")), /*#__PURE__*/react.createElement("p", null, translate_translate("revert.modal.action"))));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25608
  }
25609
 
25610
- /* harmony default export */ var RevertButton_RevertButton = (connect(function (state) {
25611
- return {
25612
- hasChanges: state.misc.hasChanges
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25613
  };
25614
- })(RevertButton));
25615
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.filter.js
25616
- var es_array_filter = __webpack_require__(57327);
25617
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.for-each.js
25618
- var es_array_for_each = __webpack_require__(89554);
25619
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.iterator.js
25620
- var es_array_iterator = __webpack_require__(66992);
25621
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.assign.js
25622
- var es_object_assign = __webpack_require__(19601);
25623
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.object.to-string.js
25624
- var es_object_to_string = __webpack_require__(41539);
25625
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.parse-int.js
25626
- var es_parse_int = __webpack_require__(91058);
25627
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.iterator.js
25628
- var es_string_iterator = __webpack_require__(78783);
25629
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.weak-map.js
25630
- var es_weak_map = __webpack_require__(4129);
25631
- // EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom-collections.iterator.js
25632
- var web_dom_collections_iterator = __webpack_require__(33948);
25633
- // EXTERNAL MODULE: ./node_modules/lodash.throttle/index.js
25634
- var lodash_throttle = __webpack_require__(93096);
25635
- var lodash_throttle_default = /*#__PURE__*/__webpack_require__.n(lodash_throttle);
25636
- // EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
25637
- var lodash_debounce = __webpack_require__(91296);
25638
- var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
25639
- // EXTERNAL MODULE: ./node_modules/lodash.memoize/index.js
25640
- var lodash_memoize = __webpack_require__(20773);
25641
- var lodash_memoize_default = /*#__PURE__*/__webpack_require__.n(lodash_memoize);
25642
- ;// CONCATENATED MODULE: ./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js
25643
- /**
25644
- * A collection of shims that provide minimal functionality of the ES6 collections.
25645
- *
25646
- * These implementations are not meant to be used outside of the ResizeObserver
25647
- * modules as they cover only a limited range of use cases.
25648
- */
25649
- /* eslint-disable require-jsdoc, valid-jsdoc */
25650
- var MapShim = (function () {
25651
- if (typeof Map !== 'undefined') {
25652
- return Map;
25653
- }
25654
- /**
25655
- * Returns index in provided array that matches the specified key.
25656
- *
25657
- * @param {Array<Array>} arr
25658
- * @param {*} key
25659
- * @returns {number}
25660
- */
25661
- function getIndex(arr, key) {
25662
- var result = -1;
25663
- arr.some(function (entry, index) {
25664
- if (entry[0] === key) {
25665
- result = index;
25666
- return true;
25667
- }
25668
- return false;
25669
- });
25670
- return result;
25671
- }
25672
- return /** @class */ (function () {
25673
- function class_1() {
25674
- this.__entries__ = [];
25675
- }
25676
- Object.defineProperty(class_1.prototype, "size", {
25677
- /**
25678
- * @returns {boolean}
25679
- */
25680
- get: function () {
25681
- return this.__entries__.length;
25682
- },
25683
- enumerable: true,
25684
- configurable: true
25685
- });
25686
- /**
25687
- * @param {*} key
25688
- * @returns {*}
25689
- */
25690
- class_1.prototype.get = function (key) {
25691
- var index = getIndex(this.__entries__, key);
25692
- var entry = this.__entries__[index];
25693
- return entry && entry[1];
25694
- };
25695
- /**
25696
- * @param {*} key
25697
- * @param {*} value
25698
- * @returns {void}
25699
- */
25700
- class_1.prototype.set = function (key, value) {
25701
- var index = getIndex(this.__entries__, key);
25702
- if (~index) {
25703
- this.__entries__[index][1] = value;
25704
- }
25705
- else {
25706
- this.__entries__.push([key, value]);
25707
- }
25708
- };
25709
- /**
25710
- * @param {*} key
25711
- * @returns {void}
25712
- */
25713
- class_1.prototype.delete = function (key) {
25714
- var entries = this.__entries__;
25715
- var index = getIndex(entries, key);
25716
- if (~index) {
25717
- entries.splice(index, 1);
25718
- }
25719
- };
25720
- /**
25721
- * @param {*} key
25722
- * @returns {void}
25723
- */
25724
- class_1.prototype.has = function (key) {
25725
- return !!~getIndex(this.__entries__, key);
25726
- };
25727
- /**
25728
- * @returns {void}
25729
- */
25730
- class_1.prototype.clear = function () {
25731
- this.__entries__.splice(0);
25732
- };
25733
- /**
25734
- * @param {Function} callback
25735
- * @param {*} [ctx=null]
25736
- * @returns {void}
25737
- */
25738
- class_1.prototype.forEach = function (callback, ctx) {
25739
- if (ctx === void 0) { ctx = null; }
25740
- for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
25741
- var entry = _a[_i];
25742
- callback.call(ctx, entry[1], entry[0]);
25743
- }
25744
- };
25745
- return class_1;
25746
- }());
25747
- })();
25748
 
25749
- /**
25750
- * Detects whether window and document objects are available in current environment.
25751
- */
25752
- var ResizeObserver_es_isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
 
25753
 
25754
- // Returns global object of a current environment.
25755
- var global$1 = (function () {
25756
- if (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g.Math === Math) {
25757
- return __webpack_require__.g;
25758
- }
25759
- if (typeof self !== 'undefined' && self.Math === Math) {
25760
- return self;
25761
- }
25762
- if (typeof window !== 'undefined' && window.Math === Math) {
25763
- return window;
25764
- }
25765
- // eslint-disable-next-line no-new-func
25766
- return Function('return this')();
25767
- })();
25768
 
25769
- /**
25770
- * A shim for the requestAnimationFrame which falls back to the setTimeout if
25771
- * first one is not supported.
25772
- *
25773
- * @returns {number} Requests' identifier.
25774
- */
25775
- var requestAnimationFrame$1 = (function () {
25776
- if (typeof requestAnimationFrame === 'function') {
25777
- // It's required to use a bounded function because IE sometimes throws
25778
- // an "Invalid calling object" error if rAF is invoked without the global
25779
- // object on the left hand side.
25780
- return requestAnimationFrame.bind(global$1);
25781
- }
25782
- return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
25783
- })();
25784
 
25785
- // Defines minimum timeout before adding a trailing call.
25786
- var trailingTimeout = 2;
25787
- /**
25788
- * Creates a wrapper function which ensures that provided callback will be
25789
- * invoked only once during the specified delay period.
25790
- *
25791
- * @param {Function} callback - Function to be invoked after the delay period.
25792
- * @param {number} delay - Delay after which to invoke callback.
25793
- * @returns {Function}
25794
- */
25795
- function throttle (callback, delay) {
25796
- var leadingCall = false, trailingCall = false, lastCallTime = 0;
25797
- /**
25798
- * Invokes the original callback function and schedules new invocation if
25799
- * the "proxy" was called during current request.
25800
- *
25801
- * @returns {void}
25802
- */
25803
- function resolvePending() {
25804
- if (leadingCall) {
25805
- leadingCall = false;
25806
- callback();
25807
- }
25808
- if (trailingCall) {
25809
- proxy();
25810
- }
25811
- }
25812
- /**
25813
- * Callback invoked after the specified delay. It will further postpone
25814
- * invocation of the original function delegating it to the
25815
- * requestAnimationFrame.
25816
- *
25817
- * @returns {void}
25818
- */
25819
- function timeoutCallback() {
25820
- requestAnimationFrame$1(resolvePending);
25821
- }
25822
- /**
25823
- * Schedules invocation of the original function.
25824
- *
25825
- * @returns {void}
25826
- */
25827
- function proxy() {
25828
- var timeStamp = Date.now();
25829
- if (leadingCall) {
25830
- // Reject immediately following calls.
25831
- if (timeStamp - lastCallTime < trailingTimeout) {
25832
- return;
25833
- }
25834
- // Schedule new call to be in invoked when the pending one is resolved.
25835
- // This is important for "transitions" which never actually start
25836
- // immediately so there is a chance that we might miss one if change
25837
- // happens amids the pending invocation.
25838
- trailingCall = true;
25839
- }
25840
- else {
25841
- leadingCall = true;
25842
- trailingCall = false;
25843
- setTimeout(timeoutCallback, delay);
25844
- }
25845
- lastCallTime = timeStamp;
25846
- }
25847
- return proxy;
25848
- }
25849
 
25850
- // Minimum delay before invoking the update of observers.
25851
- var REFRESH_DELAY = 20;
25852
- // A list of substrings of CSS properties used to find transition events that
25853
- // might affect dimensions of observed elements.
25854
- var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
25855
- // Check if MutationObserver is available.
25856
- var mutationObserverSupported = typeof MutationObserver !== 'undefined';
25857
- /**
25858
- * Singleton controller class which handles updates of ResizeObserver instances.
25859
- */
25860
- var ResizeObserverController = /** @class */ (function () {
25861
- /**
25862
- * Creates a new instance of ResizeObserverController.
25863
- *
25864
- * @private
25865
- */
25866
- function ResizeObserverController() {
25867
- /**
25868
- * Indicates whether DOM listeners have been added.
25869
- *
25870
- * @private {boolean}
25871
- */
25872
- this.connected_ = false;
25873
- /**
25874
- * Tells that controller has subscribed for Mutation Events.
25875
- *
25876
- * @private {boolean}
25877
- */
25878
- this.mutationEventsAdded_ = false;
25879
- /**
25880
- * Keeps reference to the instance of MutationObserver.
25881
- *
25882
- * @private {MutationObserver}
25883
- */
25884
- this.mutationsObserver_ = null;
25885
- /**
25886
- * A list of connected observers.
25887
- *
25888
- * @private {Array<ResizeObserverSPI>}
25889
- */
25890
- this.observers_ = [];
25891
- this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
25892
- this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
25893
- }
25894
- /**
25895
- * Adds observer to observers list.
25896
- *
25897
- * @param {ResizeObserverSPI} observer - Observer to be added.
25898
- * @returns {void}
25899
- */
25900
- ResizeObserverController.prototype.addObserver = function (observer) {
25901
- if (!~this.observers_.indexOf(observer)) {
25902
- this.observers_.push(observer);
25903
- }
25904
- // Add listeners if they haven't been added yet.
25905
- if (!this.connected_) {
25906
- this.connect_();
25907
- }
25908
- };
25909
- /**
25910
- * Removes observer from observers list.
25911
- *
25912
- * @param {ResizeObserverSPI} observer - Observer to be removed.
25913
- * @returns {void}
25914
- */
25915
- ResizeObserverController.prototype.removeObserver = function (observer) {
25916
- var observers = this.observers_;
25917
- var index = observers.indexOf(observer);
25918
- // Remove observer if it's present in registry.
25919
- if (~index) {
25920
- observers.splice(index, 1);
25921
- }
25922
- // Remove listeners if controller has no connected observers.
25923
- if (!observers.length && this.connected_) {
25924
- this.disconnect_();
25925
- }
25926
- };
25927
- /**
25928
- * Invokes the update of observers. It will continue running updates insofar
25929
- * it detects changes.
25930
- *
25931
- * @returns {void}
25932
- */
25933
- ResizeObserverController.prototype.refresh = function () {
25934
- var changesDetected = this.updateObservers_();
25935
- // Continue running updates if changes have been detected as there might
25936
- // be future ones caused by CSS transitions.
25937
- if (changesDetected) {
25938
- this.refresh();
25939
- }
25940
- };
25941
- /**
25942
- * Updates every observer from observers list and notifies them of queued
25943
- * entries.
25944
- *
25945
- * @private
25946
- * @returns {boolean} Returns "true" if any observer has detected changes in
25947
- * dimensions of it's elements.
25948
- */
25949
- ResizeObserverController.prototype.updateObservers_ = function () {
25950
- // Collect observers that have active observations.
25951
- var activeObservers = this.observers_.filter(function (observer) {
25952
- return observer.gatherActive(), observer.hasActive();
25953
- });
25954
- // Deliver notifications in a separate cycle in order to avoid any
25955
- // collisions between observers, e.g. when multiple instances of
25956
- // ResizeObserver are tracking the same element and the callback of one
25957
- // of them changes content dimensions of the observed target. Sometimes
25958
- // this may result in notifications being blocked for the rest of observers.
25959
- activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
25960
- return activeObservers.length > 0;
25961
- };
25962
- /**
25963
- * Initializes DOM listeners.
25964
- *
25965
- * @private
25966
- * @returns {void}
25967
- */
25968
- ResizeObserverController.prototype.connect_ = function () {
25969
- // Do nothing if running in a non-browser environment or if listeners
25970
- // have been already added.
25971
- if (!ResizeObserver_es_isBrowser || this.connected_) {
25972
- return;
25973
- }
25974
- // Subscription to the "Transitionend" event is used as a workaround for
25975
- // delayed transitions. This way it's possible to capture at least the
25976
- // final state of an element.
25977
- document.addEventListener('transitionend', this.onTransitionEnd_);
25978
- window.addEventListener('resize', this.refresh);
25979
- if (mutationObserverSupported) {
25980
- this.mutationsObserver_ = new MutationObserver(this.refresh);
25981
- this.mutationsObserver_.observe(document, {
25982
- attributes: true,
25983
- childList: true,
25984
- characterData: true,
25985
- subtree: true
25986
- });
25987
- }
25988
- else {
25989
- document.addEventListener('DOMSubtreeModified', this.refresh);
25990
- this.mutationEventsAdded_ = true;
25991
- }
25992
- this.connected_ = true;
25993
- };
25994
- /**
25995
- * Removes DOM listeners.
25996
- *
25997
- * @private
25998
- * @returns {void}
25999
- */
26000
- ResizeObserverController.prototype.disconnect_ = function () {
26001
- // Do nothing if running in a non-browser environment or if listeners
26002
- // have been already removed.
26003
- if (!ResizeObserver_es_isBrowser || !this.connected_) {
26004
- return;
26005
- }
26006
- document.removeEventListener('transitionend', this.onTransitionEnd_);
26007
- window.removeEventListener('resize', this.refresh);
26008
- if (this.mutationsObserver_) {
26009
- this.mutationsObserver_.disconnect();
26010
- }
26011
- if (this.mutationEventsAdded_) {
26012
- document.removeEventListener('DOMSubtreeModified', this.refresh);
26013
- }
26014
- this.mutationsObserver_ = null;
26015
- this.mutationEventsAdded_ = false;
26016
- this.connected_ = false;
26017
- };
26018
- /**
26019
- * "Transitionend" event handler.
26020
- *
26021
- * @private
26022
- * @param {TransitionEvent} event
26023
- * @returns {void}
26024
- */
26025
- ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
26026
- var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
26027
- // Detect whether transition may affect dimensions of an element.
26028
- var isReflowProperty = transitionKeys.some(function (key) {
26029
- return !!~propertyName.indexOf(key);
26030
- });
26031
- if (isReflowProperty) {
26032
- this.refresh();
26033
- }
26034
- };
26035
- /**
26036
- * Returns instance of the ResizeObserverController.
26037
- *
26038
- * @returns {ResizeObserverController}
26039
- */
26040
- ResizeObserverController.getInstance = function () {
26041
- if (!this.instance_) {
26042
- this.instance_ = new ResizeObserverController();
26043
- }
26044
- return this.instance_;
26045
- };
26046
- /**
26047
- * Holds reference to the controller's instance.
26048
- *
26049
- * @private {ResizeObserverController}
26050
- */
26051
- ResizeObserverController.instance_ = null;
26052
- return ResizeObserverController;
26053
- }());
26054
-
26055
- /**
26056
- * Defines non-writable/enumerable properties of the provided target object.
26057
- *
26058
- * @param {Object} target - Object for which to define properties.
26059
- * @param {Object} props - Properties to be defined.
26060
- * @returns {Object} Target object.
26061
- */
26062
- var defineConfigurable = (function (target, props) {
26063
- for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
26064
- var key = _a[_i];
26065
- Object.defineProperty(target, key, {
26066
- value: props[key],
26067
- enumerable: false,
26068
- writable: false,
26069
- configurable: true
26070
- });
26071
- }
26072
- return target;
26073
- });
26074
-
26075
- /**
26076
- * Returns the global object associated with provided element.
26077
- *
26078
- * @param {Object} target
26079
- * @returns {Object}
26080
- */
26081
- var getWindowOf = (function (target) {
26082
- // Assume that the element is an instance of Node, which means that it
26083
- // has the "ownerDocument" property from which we can retrieve a
26084
- // corresponding global object.
26085
- var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
26086
- // Return the local global object if it's not possible extract one from
26087
- // provided element.
26088
- return ownerGlobal || global$1;
26089
- });
26090
-
26091
- // Placeholder of an empty content rectangle.
26092
- var emptyRect = createRectInit(0, 0, 0, 0);
26093
- /**
26094
- * Converts provided string to a number.
26095
- *
26096
- * @param {number|string} value
26097
- * @returns {number}
26098
- */
26099
- function toFloat(value) {
26100
- return parseFloat(value) || 0;
26101
- }
26102
- /**
26103
- * Extracts borders size from provided styles.
26104
- *
26105
- * @param {CSSStyleDeclaration} styles
26106
- * @param {...string} positions - Borders positions (top, right, ...)
26107
- * @returns {number}
26108
- */
26109
- function getBordersSize(styles) {
26110
- var positions = [];
26111
- for (var _i = 1; _i < arguments.length; _i++) {
26112
- positions[_i - 1] = arguments[_i];
26113
- }
26114
- return positions.reduce(function (size, position) {
26115
- var value = styles['border-' + position + '-width'];
26116
- return size + toFloat(value);
26117
- }, 0);
26118
- }
26119
- /**
26120
- * Extracts paddings sizes from provided styles.
26121
- *
26122
- * @param {CSSStyleDeclaration} styles
26123
- * @returns {Object} Paddings box.
26124
- */
26125
- function getPaddings(styles) {
26126
- var positions = ['top', 'right', 'bottom', 'left'];
26127
- var paddings = {};
26128
- for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
26129
- var position = positions_1[_i];
26130
- var value = styles['padding-' + position];
26131
- paddings[position] = toFloat(value);
26132
- }
26133
- return paddings;
26134
- }
26135
- /**
26136
- * Calculates content rectangle of provided SVG element.
26137
- *
26138
- * @param {SVGGraphicsElement} target - Element content rectangle of which needs
26139
- * to be calculated.
26140
- * @returns {DOMRectInit}
26141
- */
26142
- function getSVGContentRect(target) {
26143
- var bbox = target.getBBox();
26144
- return createRectInit(0, 0, bbox.width, bbox.height);
26145
- }
26146
- /**
26147
- * Calculates content rectangle of provided HTMLElement.
26148
- *
26149
- * @param {HTMLElement} target - Element for which to calculate the content rectangle.
26150
- * @returns {DOMRectInit}
26151
- */
26152
- function getHTMLElementContentRect(target) {
26153
- // Client width & height properties can't be
26154
- // used exclusively as they provide rounded values.
26155
- var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
26156
- // By this condition we can catch all non-replaced inline, hidden and
26157
- // detached elements. Though elements with width & height properties less
26158
- // than 0.5 will be discarded as well.
26159
- //
26160
- // Without it we would need to implement separate methods for each of
26161
- // those cases and it's not possible to perform a precise and performance
26162
- // effective test for hidden elements. E.g. even jQuery's ':visible' filter
26163
- // gives wrong results for elements with width & height less than 0.5.
26164
- if (!clientWidth && !clientHeight) {
26165
- return emptyRect;
26166
- }
26167
- var styles = getWindowOf(target).getComputedStyle(target);
26168
- var paddings = getPaddings(styles);
26169
- var horizPad = paddings.left + paddings.right;
26170
- var vertPad = paddings.top + paddings.bottom;
26171
- // Computed styles of width & height are being used because they are the
26172
- // only dimensions available to JS that contain non-rounded values. It could
26173
- // be possible to utilize the getBoundingClientRect if only it's data wasn't
26174
- // affected by CSS transformations let alone paddings, borders and scroll bars.
26175
- var width = toFloat(styles.width), height = toFloat(styles.height);
26176
- // Width & height include paddings and borders when the 'border-box' box
26177
- // model is applied (except for IE).
26178
- if (styles.boxSizing === 'border-box') {
26179
- // Following conditions are required to handle Internet Explorer which
26180
- // doesn't include paddings and borders to computed CSS dimensions.
26181
- //
26182
- // We can say that if CSS dimensions + paddings are equal to the "client"
26183
- // properties then it's either IE, and thus we don't need to subtract
26184
- // anything, or an element merely doesn't have paddings/borders styles.
26185
- if (Math.round(width + horizPad) !== clientWidth) {
26186
- width -= getBordersSize(styles, 'left', 'right') + horizPad;
26187
- }
26188
- if (Math.round(height + vertPad) !== clientHeight) {
26189
- height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
26190
- }
26191
- }
26192
- // Following steps can't be applied to the document's root element as its
26193
- // client[Width/Height] properties represent viewport area of the window.
26194
- // Besides, it's as well not necessary as the <html> itself neither has
26195
- // rendered scroll bars nor it can be clipped.
26196
- if (!isDocumentElement(target)) {
26197
- // In some browsers (only in Firefox, actually) CSS width & height
26198
- // include scroll bars size which can be removed at this step as scroll
26199
- // bars are the only difference between rounded dimensions + paddings
26200
- // and "client" properties, though that is not always true in Chrome.
26201
- var vertScrollbar = Math.round(width + horizPad) - clientWidth;
26202
- var horizScrollbar = Math.round(height + vertPad) - clientHeight;
26203
- // Chrome has a rather weird rounding of "client" properties.
26204
- // E.g. for an element with content width of 314.2px it sometimes gives
26205
- // the client width of 315px and for the width of 314.7px it may give
26206
- // 314px. And it doesn't happen all the time. So just ignore this delta
26207
- // as a non-relevant.
26208
- if (Math.abs(vertScrollbar) !== 1) {
26209
- width -= vertScrollbar;
26210
- }
26211
- if (Math.abs(horizScrollbar) !== 1) {
26212
- height -= horizScrollbar;
26213
- }
26214
- }
26215
- return createRectInit(paddings.left, paddings.top, width, height);
26216
- }
26217
- /**
26218
- * Checks whether provided element is an instance of the SVGGraphicsElement.
26219
- *
26220
- * @param {Element} target - Element to be checked.
26221
- * @returns {boolean}
26222
- */
26223
- var isSVGGraphicsElement = (function () {
26224
- // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
26225
- // interface.
26226
- if (typeof SVGGraphicsElement !== 'undefined') {
26227
- return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
26228
- }
26229
- // If it's so, then check that element is at least an instance of the
26230
- // SVGElement and that it has the "getBBox" method.
26231
- // eslint-disable-next-line no-extra-parens
26232
- return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
26233
- typeof target.getBBox === 'function'); };
26234
- })();
26235
- /**
26236
- * Checks whether provided element is a document element (<html>).
26237
- *
26238
- * @param {Element} target - Element to be checked.
26239
- * @returns {boolean}
26240
- */
26241
- function isDocumentElement(target) {
26242
- return target === getWindowOf(target).document.documentElement;
26243
- }
26244
- /**
26245
- * Calculates an appropriate content rectangle for provided html or svg element.
26246
- *
26247
- * @param {Element} target - Element content rectangle of which needs to be calculated.
26248
- * @returns {DOMRectInit}
26249
- */
26250
- function getContentRect(target) {
26251
- if (!ResizeObserver_es_isBrowser) {
26252
- return emptyRect;
26253
- }
26254
- if (isSVGGraphicsElement(target)) {
26255
- return getSVGContentRect(target);
26256
- }
26257
- return getHTMLElementContentRect(target);
26258
- }
26259
- /**
26260
- * Creates rectangle with an interface of the DOMRectReadOnly.
26261
- * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
26262
- *
26263
- * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
26264
- * @returns {DOMRectReadOnly}
26265
- */
26266
- function createReadOnlyRect(_a) {
26267
- var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
26268
- // If DOMRectReadOnly is available use it as a prototype for the rectangle.
26269
- var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
26270
- var rect = Object.create(Constr.prototype);
26271
- // Rectangle's properties are not writable and non-enumerable.
26272
- defineConfigurable(rect, {
26273
- x: x, y: y, width: width, height: height,
26274
- top: y,
26275
- right: x + width,
26276
- bottom: height + y,
26277
- left: x
26278
- });
26279
- return rect;
26280
- }
26281
- /**
26282
- * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
26283
- * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
26284
- *
26285
- * @param {number} x - X coordinate.
26286
- * @param {number} y - Y coordinate.
26287
- * @param {number} width - Rectangle's width.
26288
- * @param {number} height - Rectangle's height.
26289
- * @returns {DOMRectInit}
26290
- */
26291
- function createRectInit(x, y, width, height) {
26292
- return { x: x, y: y, width: width, height: height };
26293
- }
26294
-
26295
- /**
26296
- * Class that is responsible for computations of the content rectangle of
26297
- * provided DOM element and for keeping track of it's changes.
26298
- */
26299
- var ResizeObservation = /** @class */ (function () {
26300
- /**
26301
- * Creates an instance of ResizeObservation.
26302
- *
26303
- * @param {Element} target - Element to be observed.
26304
- */
26305
- function ResizeObservation(target) {
26306
- /**
26307
- * Broadcasted width of content rectangle.
26308
- *
26309
- * @type {number}
26310
- */
26311
- this.broadcastWidth = 0;
26312
- /**
26313
- * Broadcasted height of content rectangle.
26314
- *
26315
- * @type {number}
26316
- */
26317
- this.broadcastHeight = 0;
26318
- /**
26319
- * Reference to the last observed content rectangle.
26320
- *
26321
- * @private {DOMRectInit}
26322
- */
26323
- this.contentRect_ = createRectInit(0, 0, 0, 0);
26324
- this.target = target;
26325
- }
26326
- /**
26327
- * Updates content rectangle and tells whether it's width or height properties
26328
- * have changed since the last broadcast.
26329
- *
26330
- * @returns {boolean}
26331
- */
26332
- ResizeObservation.prototype.isActive = function () {
26333
- var rect = getContentRect(this.target);
26334
- this.contentRect_ = rect;
26335
- return (rect.width !== this.broadcastWidth ||
26336
- rect.height !== this.broadcastHeight);
26337
- };
26338
- /**
26339
- * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
26340
- * from the corresponding properties of the last observed content rectangle.
26341
- *
26342
- * @returns {DOMRectInit} Last observed content rectangle.
26343
- */
26344
- ResizeObservation.prototype.broadcastRect = function () {
26345
- var rect = this.contentRect_;
26346
- this.broadcastWidth = rect.width;
26347
- this.broadcastHeight = rect.height;
26348
- return rect;
26349
- };
26350
- return ResizeObservation;
26351
- }());
26352
-
26353
- var ResizeObserverEntry = /** @class */ (function () {
26354
- /**
26355
- * Creates an instance of ResizeObserverEntry.
26356
- *
26357
- * @param {Element} target - Element that is being observed.
26358
- * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
26359
- */
26360
- function ResizeObserverEntry(target, rectInit) {
26361
- var contentRect = createReadOnlyRect(rectInit);
26362
- // According to the specification following properties are not writable
26363
- // and are also not enumerable in the native implementation.
26364
- //
26365
- // Property accessors are not being used as they'd require to define a
26366
- // private WeakMap storage which may cause memory leaks in browsers that
26367
- // don't support this type of collections.
26368
- defineConfigurable(this, { target: target, contentRect: contentRect });
26369
- }
26370
- return ResizeObserverEntry;
26371
- }());
26372
-
26373
- var ResizeObserverSPI = /** @class */ (function () {
26374
- /**
26375
- * Creates a new instance of ResizeObserver.
26376
- *
26377
- * @param {ResizeObserverCallback} callback - Callback function that is invoked
26378
- * when one of the observed elements changes it's content dimensions.
26379
- * @param {ResizeObserverController} controller - Controller instance which
26380
- * is responsible for the updates of observer.
26381
- * @param {ResizeObserver} callbackCtx - Reference to the public
26382
- * ResizeObserver instance which will be passed to callback function.
26383
- */
26384
- function ResizeObserverSPI(callback, controller, callbackCtx) {
26385
- /**
26386
- * Collection of resize observations that have detected changes in dimensions
26387
- * of elements.
26388
- *
26389
- * @private {Array<ResizeObservation>}
26390
- */
26391
- this.activeObservations_ = [];
26392
- /**
26393
- * Registry of the ResizeObservation instances.
26394
- *
26395
- * @private {Map<Element, ResizeObservation>}
26396
- */
26397
- this.observations_ = new MapShim();
26398
- if (typeof callback !== 'function') {
26399
- throw new TypeError('The callback provided as parameter 1 is not a function.');
26400
- }
26401
- this.callback_ = callback;
26402
- this.controller_ = controller;
26403
- this.callbackCtx_ = callbackCtx;
26404
- }
26405
- /**
26406
- * Starts observing provided element.
26407
- *
26408
- * @param {Element} target - Element to be observed.
26409
- * @returns {void}
26410
- */
26411
- ResizeObserverSPI.prototype.observe = function (target) {
26412
- if (!arguments.length) {
26413
- throw new TypeError('1 argument required, but only 0 present.');
26414
- }
26415
- // Do nothing if current environment doesn't have the Element interface.
26416
- if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26417
- return;
26418
- }
26419
- if (!(target instanceof getWindowOf(target).Element)) {
26420
- throw new TypeError('parameter 1 is not of type "Element".');
26421
- }
26422
- var observations = this.observations_;
26423
- // Do nothing if element is already being observed.
26424
- if (observations.has(target)) {
26425
- return;
26426
- }
26427
- observations.set(target, new ResizeObservation(target));
26428
- this.controller_.addObserver(this);
26429
- // Force the update of observations.
26430
- this.controller_.refresh();
26431
- };
26432
- /**
26433
- * Stops observing provided element.
26434
- *
26435
- * @param {Element} target - Element to stop observing.
26436
- * @returns {void}
26437
- */
26438
- ResizeObserverSPI.prototype.unobserve = function (target) {
26439
- if (!arguments.length) {
26440
- throw new TypeError('1 argument required, but only 0 present.');
26441
- }
26442
- // Do nothing if current environment doesn't have the Element interface.
26443
- if (typeof Element === 'undefined' || !(Element instanceof Object)) {
26444
- return;
26445
- }
26446
- if (!(target instanceof getWindowOf(target).Element)) {
26447
- throw new TypeError('parameter 1 is not of type "Element".');
26448
- }
26449
- var observations = this.observations_;
26450
- // Do nothing if element is not being observed.
26451
- if (!observations.has(target)) {
26452
- return;
26453
- }
26454
- observations.delete(target);
26455
- if (!observations.size) {
26456
- this.controller_.removeObserver(this);
26457
- }
26458
- };
26459
- /**
26460
- * Stops observing all elements.
26461
- *
26462
- * @returns {void}
26463
- */
26464
- ResizeObserverSPI.prototype.disconnect = function () {
26465
- this.clearActive();
26466
- this.observations_.clear();
26467
- this.controller_.removeObserver(this);
26468
- };
26469
- /**
26470
- * Collects observation instances the associated element of which has changed
26471
- * it's content rectangle.
26472
- *
26473
- * @returns {void}
26474
- */
26475
- ResizeObserverSPI.prototype.gatherActive = function () {
26476
- var _this = this;
26477
- this.clearActive();
26478
- this.observations_.forEach(function (observation) {
26479
- if (observation.isActive()) {
26480
- _this.activeObservations_.push(observation);
26481
- }
26482
- });
26483
- };
26484
- /**
26485
- * Invokes initial callback function with a list of ResizeObserverEntry
26486
- * instances collected from active resize observations.
26487
- *
26488
- * @returns {void}
26489
- */
26490
- ResizeObserverSPI.prototype.broadcastActive = function () {
26491
- // Do nothing if observer doesn't have active observations.
26492
- if (!this.hasActive()) {
26493
- return;
26494
- }
26495
- var ctx = this.callbackCtx_;
26496
- // Create ResizeObserverEntry instance for every active observation.
26497
- var entries = this.activeObservations_.map(function (observation) {
26498
- return new ResizeObserverEntry(observation.target, observation.broadcastRect());
26499
- });
26500
- this.callback_.call(ctx, entries, ctx);
26501
- this.clearActive();
26502
- };
26503
- /**
26504
- * Clears the collection of active observations.
26505
- *
26506
- * @returns {void}
26507
- */
26508
- ResizeObserverSPI.prototype.clearActive = function () {
26509
- this.activeObservations_.splice(0);
26510
- };
26511
- /**
26512
- * Tells whether observer has active observations.
26513
- *
26514
- * @returns {boolean}
26515
- */
26516
- ResizeObserverSPI.prototype.hasActive = function () {
26517
- return this.activeObservations_.length > 0;
26518
- };
26519
- return ResizeObserverSPI;
26520
- }());
26521
-
26522
- // Registry of internal observers. If WeakMap is not available use current shim
26523
- // for the Map collection as it has all required methods and because WeakMap
26524
- // can't be fully polyfilled anyway.
26525
- var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
26526
- /**
26527
- * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
26528
- * exposing only those methods and properties that are defined in the spec.
26529
- */
26530
- var ResizeObserver = /** @class */ (function () {
26531
- /**
26532
- * Creates a new instance of ResizeObserver.
26533
- *
26534
- * @param {ResizeObserverCallback} callback - Callback that is invoked when
26535
- * dimensions of the observed elements change.
26536
- */
26537
- function ResizeObserver(callback) {
26538
- if (!(this instanceof ResizeObserver)) {
26539
- throw new TypeError('Cannot call a class as a function.');
26540
- }
26541
- if (!arguments.length) {
26542
- throw new TypeError('1 argument required, but only 0 present.');
26543
- }
26544
- var controller = ResizeObserverController.getInstance();
26545
- var observer = new ResizeObserverSPI(callback, controller, this);
26546
- observers.set(this, observer);
26547
- }
26548
- return ResizeObserver;
26549
- }());
26550
- // Expose public methods of ResizeObserver.
26551
- [
26552
- 'observe',
26553
- 'unobserve',
26554
- 'disconnect'
26555
- ].forEach(function (method) {
26556
- ResizeObserver.prototype[method] = function () {
26557
- var _a;
26558
- return (_a = observers.get(this))[method].apply(_a, arguments);
26559
- };
26560
- });
26561
-
26562
- var ResizeObserver_es_index = (function () {
26563
- // Export existing implementation if available.
26564
- if (typeof global$1.ResizeObserver !== 'undefined') {
26565
- return global$1.ResizeObserver;
26566
- }
26567
- return ResizeObserver;
26568
- })();
26569
-
26570
- /* harmony default export */ var ResizeObserver_es = (ResizeObserver_es_index);
26571
-
26572
- // EXTERNAL MODULE: ./node_modules/can-use-dom/index.js
26573
- var can_use_dom = __webpack_require__(31807);
26574
- var can_use_dom_default = /*#__PURE__*/__webpack_require__.n(can_use_dom);
26575
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.reduce.js
26576
- var es_array_reduce = __webpack_require__(85827);
26577
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.function.name.js
26578
- var es_function_name = __webpack_require__(68309);
26579
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.regexp.exec.js
26580
- var es_regexp_exec = __webpack_require__(74916);
26581
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.match.js
26582
- var es_string_match = __webpack_require__(4723);
26583
- // EXTERNAL MODULE: ./node_modules/core-js/modules/es.string.replace.js
26584
- var es_string_replace = __webpack_require__(15306);
26585
- ;// CONCATENATED MODULE: ./node_modules/simplebar/dist/simplebar-core.esm.js
26586
- /**
26587
- * SimpleBar.js - v5.3.0
26588
- * Scrollbars, simpler.
26589
- * https://grsmto.github.io/simplebar/
26590
- *
26591
- * Made by Adrien Denat from a fork by Jonathan Nicol
26592
- * Under MIT License
26593
- */
26594
-
26595
-
26596
-
26597
-
26598
-
26599
-
26600
-
26601
-
26602
-
26603
-
26604
-
26605
-
26606
-
26607
-
26608
-
26609
-
26610
-
26611
-
26612
-
26613
-
26614
-
26615
- var cachedScrollbarWidth = null;
26616
- var cachedDevicePixelRatio = null;
26617
-
26618
- if ((can_use_dom_default())) {
26619
- window.addEventListener('resize', function () {
26620
- if (cachedDevicePixelRatio !== window.devicePixelRatio) {
26621
- cachedDevicePixelRatio = window.devicePixelRatio;
26622
- cachedScrollbarWidth = null;
26623
- }
26624
- });
26625
- }
26626
-
26627
- function scrollbarWidth() {
26628
- if (cachedScrollbarWidth === null) {
26629
- if (typeof document === 'undefined') {
26630
- cachedScrollbarWidth = 0;
26631
- return cachedScrollbarWidth;
26632
- }
26633
-
26634
- var body = document.body;
26635
- var box = document.createElement('div');
26636
- box.classList.add('simplebar-hide-scrollbar');
26637
- body.appendChild(box);
26638
- var width = box.getBoundingClientRect().right;
26639
- body.removeChild(box);
26640
- cachedScrollbarWidth = width;
26641
- }
26642
-
26643
- return cachedScrollbarWidth;
26644
- }
26645
-
26646
- function getElementWindow(element) {
26647
- if (!element || !element.ownerDocument || !element.ownerDocument.defaultView) {
26648
- return window;
26649
- }
26650
-
26651
- return element.ownerDocument.defaultView;
26652
- }
26653
- function getElementDocument(element) {
26654
- if (!element || !element.ownerDocument) {
26655
- return document;
26656
- }
26657
-
26658
- return element.ownerDocument;
26659
- }
26660
-
26661
- var SimpleBar =
26662
- /*#__PURE__*/
26663
- function () {
26664
- function SimpleBar(element, options) {
26665
- var _this = this;
26666
-
26667
- this.onScroll = function () {
26668
- var elWindow = getElementWindow(_this.el);
26669
-
26670
- if (!_this.scrollXTicking) {
26671
- elWindow.requestAnimationFrame(_this.scrollX);
26672
- _this.scrollXTicking = true;
26673
- }
26674
-
26675
- if (!_this.scrollYTicking) {
26676
- elWindow.requestAnimationFrame(_this.scrollY);
26677
- _this.scrollYTicking = true;
26678
- }
26679
- };
26680
-
26681
- this.scrollX = function () {
26682
- if (_this.axis.x.isOverflowing) {
26683
- _this.showScrollbar('x');
26684
-
26685
- _this.positionScrollbar('x');
26686
- }
26687
-
26688
- _this.scrollXTicking = false;
26689
- };
26690
-
26691
- this.scrollY = function () {
26692
- if (_this.axis.y.isOverflowing) {
26693
- _this.showScrollbar('y');
26694
-
26695
- _this.positionScrollbar('y');
26696
- }
26697
-
26698
- _this.scrollYTicking = false;
26699
- };
26700
-
26701
- this.onMouseEnter = function () {
26702
- _this.showScrollbar('x');
26703
-
26704
- _this.showScrollbar('y');
26705
- };
26706
-
26707
- this.onMouseMove = function (e) {
26708
- _this.mouseX = e.clientX;
26709
- _this.mouseY = e.clientY;
26710
-
26711
- if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
26712
- _this.onMouseMoveForAxis('x');
26713
- }
26714
-
26715
- if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
26716
- _this.onMouseMoveForAxis('y');
26717
- }
26718
- };
26719
-
26720
- this.onMouseLeave = function () {
26721
- _this.onMouseMove.cancel();
26722
-
26723
- if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
26724
- _this.onMouseLeaveForAxis('x');
26725
- }
26726
-
26727
- if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
26728
- _this.onMouseLeaveForAxis('y');
26729
- }
26730
-
26731
- _this.mouseX = -1;
26732
- _this.mouseY = -1;
26733
- };
26734
-
26735
- this.onWindowResize = function () {
26736
- // Recalculate scrollbarWidth in case it's a zoom
26737
- _this.scrollbarWidth = _this.getScrollbarWidth();
26738
-
26739
- _this.hideNativeScrollbar();
26740
- };
26741
-
26742
- this.hideScrollbars = function () {
26743
- _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();
26744
- _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();
26745
-
26746
- if (!_this.isWithinBounds(_this.axis.y.track.rect)) {
26747
- _this.axis.y.scrollbar.el.classList.remove(_this.classNames.visible);
26748
-
26749
- _this.axis.y.isVisible = false;
26750
- }
26751
-
26752
- if (!_this.isWithinBounds(_this.axis.x.track.rect)) {
26753
- _this.axis.x.scrollbar.el.classList.remove(_this.classNames.visible);
26754
-
26755
- _this.axis.x.isVisible = false;
26756
- }
26757
- };
26758
-
26759
- this.onPointerEvent = function (e) {
26760
- var isWithinTrackXBounds, isWithinTrackYBounds;
26761
- _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();
26762
- _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();
26763
-
26764
- if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {
26765
- isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);
26766
- }
26767
-
26768
- if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {
26769
- isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);
26770
- } // If any pointer event is called on the scrollbar
26771
-
26772
-
26773
- if (isWithinTrackXBounds || isWithinTrackYBounds) {
26774
- // Preventing the event's default action stops text being
26775
- // selectable during the drag.
26776
- e.preventDefault(); // Prevent event leaking
26777
-
26778
- e.stopPropagation();
26779
-
26780
- if (e.type === 'mousedown') {
26781
- if (isWithinTrackXBounds) {
26782
- _this.axis.x.scrollbar.rect = _this.axis.x.scrollbar.el.getBoundingClientRect();
26783
-
26784
- if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {
26785
- _this.onDragStart(e, 'x');
26786
- } else {
26787
- _this.onTrackClick(e, 'x');
26788
- }
26789
- }
26790
-
26791
- if (isWithinTrackYBounds) {
26792
- _this.axis.y.scrollbar.rect = _this.axis.y.scrollbar.el.getBoundingClientRect();
26793
-
26794
- if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {
26795
- _this.onDragStart(e, 'y');
26796
- } else {
26797
- _this.onTrackClick(e, 'y');
26798
- }
26799
- }
26800
- }
26801
- }
26802
- };
26803
-
26804
- this.drag = function (e) {
26805
- var eventOffset;
26806
- var track = _this.axis[_this.draggedAxis].track;
26807
- var trackSize = track.rect[_this.axis[_this.draggedAxis].sizeAttr];
26808
- var scrollbar = _this.axis[_this.draggedAxis].scrollbar;
26809
- var contentSize = _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollSizeAttr];
26810
- var hostSize = parseInt(_this.elStyles[_this.axis[_this.draggedAxis].sizeAttr], 10);
26811
- e.preventDefault();
26812
- e.stopPropagation();
26813
-
26814
- if (_this.draggedAxis === 'y') {
26815
- eventOffset = e.pageY;
26816
- } else {
26817
- eventOffset = e.pageX;
26818
- } // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).
26819
-
26820
-
26821
- var dragPos = eventOffset - track.rect[_this.axis[_this.draggedAxis].offsetAttr] - _this.axis[_this.draggedAxis].dragOffset; // Convert the mouse position into a percentage of the scrollbar height/width.
26822
-
26823
- var dragPerc = dragPos / (trackSize - scrollbar.size); // Scroll the content by the same percentage.
26824
-
26825
- var scrollPos = dragPerc * (contentSize - hostSize); // Fix browsers inconsistency on RTL
26826
-
26827
- if (_this.draggedAxis === 'x') {
26828
- scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? scrollPos - (trackSize + scrollbar.size) : scrollPos;
26829
- scrollPos = _this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollPos : scrollPos;
26830
- }
26831
-
26832
- _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] = scrollPos;
26833
- };
26834
-
26835
- this.onEndDrag = function (e) {
26836
- var elDocument = getElementDocument(_this.el);
26837
- var elWindow = getElementWindow(_this.el);
26838
- e.preventDefault();
26839
- e.stopPropagation();
26840
-
26841
- _this.el.classList.remove(_this.classNames.dragging);
26842
-
26843
- elDocument.removeEventListener('mousemove', _this.drag, true);
26844
- elDocument.removeEventListener('mouseup', _this.onEndDrag, true);
26845
- _this.removePreventClickId = elWindow.setTimeout(function () {
26846
- // Remove these asynchronously so we still suppress click events
26847
- // generated simultaneously with mouseup.
26848
- elDocument.removeEventListener('click', _this.preventClick, true);
26849
- elDocument.removeEventListener('dblclick', _this.preventClick, true);
26850
- _this.removePreventClickId = null;
26851
- });
26852
- };
26853
-
26854
- this.preventClick = function (e) {
26855
- e.preventDefault();
26856
- e.stopPropagation();
26857
- };
26858
-
26859
- this.el = element;
26860
- this.minScrollbarWidth = 20;
26861
- this.options = Object.assign({}, SimpleBar.defaultOptions, {}, options);
26862
- this.classNames = Object.assign({}, SimpleBar.defaultOptions.classNames, {}, this.options.classNames);
26863
- this.axis = {
26864
- x: {
26865
- scrollOffsetAttr: 'scrollLeft',
26866
- sizeAttr: 'width',
26867
- scrollSizeAttr: 'scrollWidth',
26868
- offsetSizeAttr: 'offsetWidth',
26869
- offsetAttr: 'left',
26870
- overflowAttr: 'overflowX',
26871
- dragOffset: 0,
26872
- isOverflowing: true,
26873
- isVisible: false,
26874
- forceVisible: false,
26875
- track: {},
26876
- scrollbar: {}
26877
- },
26878
- y: {
26879
- scrollOffsetAttr: 'scrollTop',
26880
- sizeAttr: 'height',
26881
- scrollSizeAttr: 'scrollHeight',
26882
- offsetSizeAttr: 'offsetHeight',
26883
- offsetAttr: 'top',
26884
- overflowAttr: 'overflowY',
26885
- dragOffset: 0,
26886
- isOverflowing: true,
26887
- isVisible: false,
26888
- forceVisible: false,
26889
- track: {},
26890
- scrollbar: {}
26891
- }
26892
- };
26893
- this.removePreventClickId = null; // Don't re-instantiate over an existing one
26894
-
26895
- if (SimpleBar.instances.has(this.el)) {
26896
- return;
26897
- }
26898
-
26899
- this.recalculate = lodash_throttle_default()(this.recalculate.bind(this), 64);
26900
- this.onMouseMove = lodash_throttle_default()(this.onMouseMove.bind(this), 64);
26901
- this.hideScrollbars = lodash_debounce_default()(this.hideScrollbars.bind(this), this.options.timeout);
26902
- this.onWindowResize = lodash_debounce_default()(this.onWindowResize.bind(this), 64, {
26903
- leading: true
26904
- });
26905
- SimpleBar.getRtlHelpers = lodash_memoize_default()(SimpleBar.getRtlHelpers);
26906
- this.init();
26907
- }
26908
- /**
26909
- * Static properties
26910
- */
26911
-
26912
- /**
26913
- * Helper to fix browsers inconsistency on RTL:
26914
- * - Firefox inverts the scrollbar initial position
26915
- * - IE11 inverts both scrollbar position and scrolling offset
26916
- * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634
26917
- */
26918
-
26919
-
26920
- SimpleBar.getRtlHelpers = function getRtlHelpers() {
26921
- var dummyDiv = document.createElement('div');
26922
- dummyDiv.innerHTML = '<div class="hs-dummy-scrollbar-size"><div style="height: 200%; width: 200%; margin: 10px 0;"></div></div>';
26923
- var scrollbarDummyEl = dummyDiv.firstElementChild;
26924
- document.body.appendChild(scrollbarDummyEl);
26925
- var dummyContainerChild = scrollbarDummyEl.firstElementChild;
26926
- scrollbarDummyEl.scrollLeft = 0;
26927
- var dummyContainerOffset = SimpleBar.getOffset(scrollbarDummyEl);
26928
- var dummyContainerChildOffset = SimpleBar.getOffset(dummyContainerChild);
26929
- scrollbarDummyEl.scrollLeft = 999;
26930
- var dummyContainerScrollOffsetAfterScroll = SimpleBar.getOffset(dummyContainerChild);
26931
- return {
26932
- // determines if the scrolling is responding with negative values
26933
- isRtlScrollingInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left && dummyContainerChildOffset.left - dummyContainerScrollOffsetAfterScroll.left !== 0,
26934
- // determines if the origin scrollbar position is inverted or not (positioned on left or right)
26935
- isRtlScrollbarInverted: dummyContainerOffset.left !== dummyContainerChildOffset.left
26936
- };
26937
- };
26938
-
26939
- SimpleBar.getOffset = function getOffset(el) {
26940
- var rect = el.getBoundingClientRect();
26941
- var elDocument = getElementDocument(el);
26942
- var elWindow = getElementWindow(el);
26943
- return {
26944
- top: rect.top + (elWindow.pageYOffset || elDocument.documentElement.scrollTop),
26945
- left: rect.left + (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)
26946
- };
26947
- };
26948
-
26949
- var _proto = SimpleBar.prototype;
26950
-
26951
- _proto.init = function init() {
26952
- // Save a reference to the instance, so we know this DOM node has already been instancied
26953
- SimpleBar.instances.set(this.el, this); // We stop here on server-side
26954
-
26955
- if ((can_use_dom_default())) {
26956
- this.initDOM();
26957
- this.scrollbarWidth = this.getScrollbarWidth();
26958
- this.recalculate();
26959
- this.initListeners();
26960
- }
26961
- };
26962
-
26963
- _proto.initDOM = function initDOM() {
26964
- var _this2 = this;
26965
-
26966
- // make sure this element doesn't have the elements yet
26967
- if (Array.prototype.filter.call(this.el.children, function (child) {
26968
- return child.classList.contains(_this2.classNames.wrapper);
26969
- }).length) {
26970
- // assume that element has his DOM already initiated
26971
- this.wrapperEl = this.el.querySelector("." + this.classNames.wrapper);
26972
- this.contentWrapperEl = this.options.scrollableNode || this.el.querySelector("." + this.classNames.contentWrapper);
26973
- this.contentEl = this.options.contentNode || this.el.querySelector("." + this.classNames.contentEl);
26974
- this.offsetEl = this.el.querySelector("." + this.classNames.offset);
26975
- this.maskEl = this.el.querySelector("." + this.classNames.mask);
26976
- this.placeholderEl = this.findChild(this.wrapperEl, "." + this.classNames.placeholder);
26977
- this.heightAutoObserverWrapperEl = this.el.querySelector("." + this.classNames.heightAutoObserverWrapperEl);
26978
- this.heightAutoObserverEl = this.el.querySelector("." + this.classNames.heightAutoObserverEl);
26979
- this.axis.x.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.horizontal);
26980
- this.axis.y.track.el = this.findChild(this.el, "." + this.classNames.track + "." + this.classNames.vertical);
26981
- } else {
26982
- // Prepare DOM
26983
- this.wrapperEl = document.createElement('div');
26984
- this.contentWrapperEl = document.createElement('div');
26985
- this.offsetEl = document.createElement('div');
26986
- this.maskEl = document.createElement('div');
26987
- this.contentEl = document.createElement('div');
26988
- this.placeholderEl = document.createElement('div');
26989
- this.heightAutoObserverWrapperEl = document.createElement('div');
26990
- this.heightAutoObserverEl = document.createElement('div');
26991
- this.wrapperEl.classList.add(this.classNames.wrapper);
26992
- this.contentWrapperEl.classList.add(this.classNames.contentWrapper);
26993
- this.offsetEl.classList.add(this.classNames.offset);
26994
- this.maskEl.classList.add(this.classNames.mask);
26995
- this.contentEl.classList.add(this.classNames.contentEl);
26996
- this.placeholderEl.classList.add(this.classNames.placeholder);
26997
- this.heightAutoObserverWrapperEl.classList.add(this.classNames.heightAutoObserverWrapperEl);
26998
- this.heightAutoObserverEl.classList.add(this.classNames.heightAutoObserverEl);
26999
-
27000
- while (this.el.firstChild) {
27001
- this.contentEl.appendChild(this.el.firstChild);
27002
- }
27003
-
27004
- this.contentWrapperEl.appendChild(this.contentEl);
27005
- this.offsetEl.appendChild(this.contentWrapperEl);
27006
- this.maskEl.appendChild(this.offsetEl);
27007
- this.heightAutoObserverWrapperEl.appendChild(this.heightAutoObserverEl);
27008
- this.wrapperEl.appendChild(this.heightAutoObserverWrapperEl);
27009
- this.wrapperEl.appendChild(this.maskEl);
27010
- this.wrapperEl.appendChild(this.placeholderEl);
27011
- this.el.appendChild(this.wrapperEl);
27012
- }
27013
-
27014
- if (!this.axis.x.track.el || !this.axis.y.track.el) {
27015
- var track = document.createElement('div');
27016
- var scrollbar = document.createElement('div');
27017
- track.classList.add(this.classNames.track);
27018
- scrollbar.classList.add(this.classNames.scrollbar);
27019
- track.appendChild(scrollbar);
27020
- this.axis.x.track.el = track.cloneNode(true);
27021
- this.axis.x.track.el.classList.add(this.classNames.horizontal);
27022
- this.axis.y.track.el = track.cloneNode(true);
27023
- this.axis.y.track.el.classList.add(this.classNames.vertical);
27024
- this.el.appendChild(this.axis.x.track.el);
27025
- this.el.appendChild(this.axis.y.track.el);
27026
- }
27027
-
27028
- this.axis.x.scrollbar.el = this.axis.x.track.el.querySelector("." + this.classNames.scrollbar);
27029
- this.axis.y.scrollbar.el = this.axis.y.track.el.querySelector("." + this.classNames.scrollbar);
27030
-
27031
- if (!this.options.autoHide) {
27032
- this.axis.x.scrollbar.el.classList.add(this.classNames.visible);
27033
- this.axis.y.scrollbar.el.classList.add(this.classNames.visible);
27034
- }
27035
-
27036
- this.el.setAttribute('data-simplebar', 'init');
27037
- };
27038
-
27039
- _proto.initListeners = function initListeners() {
27040
- var _this3 = this;
27041
-
27042
- var elWindow = getElementWindow(this.el); // Event listeners
27043
-
27044
- if (this.options.autoHide) {
27045
- this.el.addEventListener('mouseenter', this.onMouseEnter);
27046
- }
27047
-
27048
- ['mousedown', 'click', 'dblclick'].forEach(function (e) {
27049
- _this3.el.addEventListener(e, _this3.onPointerEvent, true);
27050
- });
27051
- ['touchstart', 'touchend', 'touchmove'].forEach(function (e) {
27052
- _this3.el.addEventListener(e, _this3.onPointerEvent, {
27053
- capture: true,
27054
- passive: true
27055
- });
27056
- });
27057
- this.el.addEventListener('mousemove', this.onMouseMove);
27058
- this.el.addEventListener('mouseleave', this.onMouseLeave);
27059
- this.contentWrapperEl.addEventListener('scroll', this.onScroll); // Browser zoom triggers a window resize
27060
-
27061
- elWindow.addEventListener('resize', this.onWindowResize); // Hack for https://github.com/WICG/ResizeObserver/issues/38
27062
-
27063
- var resizeObserverStarted = false;
27064
- var resizeObserver = elWindow.ResizeObserver || ResizeObserver_es;
27065
- this.resizeObserver = new resizeObserver(function () {
27066
- if (!resizeObserverStarted) return;
27067
-
27068
- _this3.recalculate();
27069
- });
27070
- this.resizeObserver.observe(this.el);
27071
- this.resizeObserver.observe(this.contentEl);
27072
- elWindow.requestAnimationFrame(function () {
27073
- resizeObserverStarted = true;
27074
- }); // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.
27075
-
27076
- this.mutationObserver = new elWindow.MutationObserver(this.recalculate);
27077
- this.mutationObserver.observe(this.contentEl, {
27078
- childList: true,
27079
- subtree: true,
27080
- characterData: true
27081
- });
27082
- };
27083
-
27084
- _proto.recalculate = function recalculate() {
27085
- var elWindow = getElementWindow(this.el);
27086
- this.elStyles = elWindow.getComputedStyle(this.el);
27087
- this.isRtl = this.elStyles.direction === 'rtl';
27088
- var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;
27089
- var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1;
27090
- var contentElOffsetWidth = this.contentEl.offsetWidth;
27091
- var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;
27092
- var elOverflowX = this.elStyles.overflowX;
27093
- var elOverflowY = this.elStyles.overflowY;
27094
- this.contentEl.style.padding = this.elStyles.paddingTop + " " + this.elStyles.paddingRight + " " + this.elStyles.paddingBottom + " " + this.elStyles.paddingLeft;
27095
- this.wrapperEl.style.margin = "-" + this.elStyles.paddingTop + " -" + this.elStyles.paddingRight + " -" + this.elStyles.paddingBottom + " -" + this.elStyles.paddingLeft;
27096
- var contentElScrollHeight = this.contentEl.scrollHeight;
27097
- var contentElScrollWidth = this.contentEl.scrollWidth;
27098
- this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%'; // Determine placeholder size
27099
-
27100
- this.placeholderEl.style.width = isWidthAuto ? contentElOffsetWidth + "px" : 'auto';
27101
- this.placeholderEl.style.height = contentElScrollHeight + "px";
27102
- var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;
27103
- this.axis.x.isOverflowing = contentElScrollWidth > contentElOffsetWidth;
27104
- this.axis.y.isOverflowing = contentElScrollHeight > contentWrapperElOffsetHeight; // Set isOverflowing to false if user explicitely set hidden overflow
27105
-
27106
- this.axis.x.isOverflowing = elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;
27107
- this.axis.y.isOverflowing = elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;
27108
- this.axis.x.forceVisible = this.options.forceVisible === 'x' || this.options.forceVisible === true;
27109
- this.axis.y.forceVisible = this.options.forceVisible === 'y' || this.options.forceVisible === true;
27110
- this.hideNativeScrollbar(); // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)
27111
-
27112
- var offsetForXScrollbar = this.axis.x.isOverflowing ? this.scrollbarWidth : 0;
27113
- var offsetForYScrollbar = this.axis.y.isOverflowing ? this.scrollbarWidth : 0;
27114
- this.axis.x.isOverflowing = this.axis.x.isOverflowing && contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;
27115
- this.axis.y.isOverflowing = this.axis.y.isOverflowing && contentElScrollHeight > contentWrapperElOffsetHeight - offsetForXScrollbar;
27116
- this.axis.x.scrollbar.size = this.getScrollbarSize('x');
27117
- this.axis.y.scrollbar.size = this.getScrollbarSize('y');
27118
- this.axis.x.scrollbar.el.style.width = this.axis.x.scrollbar.size + "px";
27119
- this.axis.y.scrollbar.el.style.height = this.axis.y.scrollbar.size + "px";
27120
- this.positionScrollbar('x');
27121
- this.positionScrollbar('y');
27122
- this.toggleTrackVisibility('x');
27123
- this.toggleTrackVisibility('y');
27124
- }
27125
- /**
27126
- * Calculate scrollbar size
27127
- */
27128
- ;
27129
-
27130
- _proto.getScrollbarSize = function getScrollbarSize(axis) {
27131
- if (axis === void 0) {
27132
- axis = 'y';
27133
- }
27134
-
27135
- if (!this.axis[axis].isOverflowing) {
27136
- return 0;
27137
- }
27138
-
27139
- var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];
27140
- var trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];
27141
- var scrollbarSize;
27142
- var scrollbarRatio = trackSize / contentSize; // Calculate new height/position of drag handle.
27143
-
27144
- scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);
27145
-
27146
- if (this.options.scrollbarMaxSize) {
27147
- scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);
27148
- }
27149
-
27150
- return scrollbarSize;
27151
- };
27152
-
27153
- _proto.positionScrollbar = function positionScrollbar(axis) {
27154
- if (axis === void 0) {
27155
- axis = 'y';
27156
- }
27157
-
27158
- if (!this.axis[axis].isOverflowing) {
27159
- return;
27160
- }
27161
-
27162
- var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];
27163
- var trackSize = this.axis[axis].track.el[this.axis[axis].offsetSizeAttr];
27164
- var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);
27165
- var scrollbar = this.axis[axis].scrollbar;
27166
- var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];
27167
- scrollOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollingInverted ? -scrollOffset : scrollOffset;
27168
- var scrollPourcent = scrollOffset / (contentSize - hostSize);
27169
- var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);
27170
- handleOffset = axis === 'x' && this.isRtl && SimpleBar.getRtlHelpers().isRtlScrollbarInverted ? handleOffset + (trackSize - scrollbar.size) : handleOffset;
27171
- scrollbar.el.style.transform = axis === 'x' ? "translate3d(" + handleOffset + "px, 0, 0)" : "translate3d(0, " + handleOffset + "px, 0)";
27172
- };
27173
-
27174
- _proto.toggleTrackVisibility = function toggleTrackVisibility(axis) {
27175
- if (axis === void 0) {
27176
- axis = 'y';
27177
- }
27178
-
27179
- var track = this.axis[axis].track.el;
27180
- var scrollbar = this.axis[axis].scrollbar.el;
27181
-
27182
- if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {
27183
- track.style.visibility = 'visible';
27184
- this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';
27185
- } else {
27186
- track.style.visibility = 'hidden';
27187
- this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';
27188
- } // Even if forceVisible is enabled, scrollbar itself should be hidden
27189
-
27190
-
27191
- if (this.axis[axis].isOverflowing) {
27192
- scrollbar.style.display = 'block';
27193
- } else {
27194
- scrollbar.style.display = 'none';
27195
- }
27196
- };
27197
-
27198
- _proto.hideNativeScrollbar = function hideNativeScrollbar() {
27199
- this.offsetEl.style[this.isRtl ? 'left' : 'right'] = this.axis.y.isOverflowing || this.axis.y.forceVisible ? "-" + this.scrollbarWidth + "px" : 0;
27200
- this.offsetEl.style.bottom = this.axis.x.isOverflowing || this.axis.x.forceVisible ? "-" + this.scrollbarWidth + "px" : 0;
27201
- }
27202
- /**
27203
- * On scroll event handling
27204
- */
27205
- ;
27206
-
27207
- _proto.onMouseMoveForAxis = function onMouseMoveForAxis(axis) {
27208
- if (axis === void 0) {
27209
- axis = 'y';
27210
- }
27211
-
27212
- this.axis[axis].track.rect = this.axis[axis].track.el.getBoundingClientRect();
27213
- this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();
27214
- var isWithinScrollbarBoundsX = this.isWithinBounds(this.axis[axis].scrollbar.rect);
27215
-
27216
- if (isWithinScrollbarBoundsX) {
27217
- this.axis[axis].scrollbar.el.classList.add(this.classNames.hover);
27218
- } else {
27219
- this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);
27220
- }
27221
-
27222
- if (this.isWithinBounds(this.axis[axis].track.rect)) {
27223
- this.showScrollbar(axis);
27224
- this.axis[axis].track.el.classList.add(this.classNames.hover);
27225
- } else {
27226
- this.axis[axis].track.el.classList.remove(this.classNames.hover);
27227
- }
27228
- };
27229
-
27230
- _proto.onMouseLeaveForAxis = function onMouseLeaveForAxis(axis) {
27231
- if (axis === void 0) {
27232
- axis = 'y';
27233
- }
27234
-
27235
- this.axis[axis].track.el.classList.remove(this.classNames.hover);
27236
- this.axis[axis].scrollbar.el.classList.remove(this.classNames.hover);
27237
- };
27238
-
27239
- /**
27240
- * Show scrollbar
27241
- */
27242
- _proto.showScrollbar = function showScrollbar(axis) {
27243
- if (axis === void 0) {
27244
- axis = 'y';
27245
- }
27246
-
27247
- var scrollbar = this.axis[axis].scrollbar.el;
27248
-
27249
- if (!this.axis[axis].isVisible) {
27250
- scrollbar.classList.add(this.classNames.visible);
27251
- this.axis[axis].isVisible = true;
27252
- }
27253
-
27254
- if (this.options.autoHide) {
27255
- this.hideScrollbars();
27256
- }
27257
- }
27258
- /**
27259
- * Hide Scrollbar
27260
- */
27261
- ;
27262
-
27263
- /**
27264
- * on scrollbar handle drag movement starts
27265
- */
27266
- _proto.onDragStart = function onDragStart(e, axis) {
27267
- if (axis === void 0) {
27268
- axis = 'y';
27269
- }
27270
-
27271
- var elDocument = getElementDocument(this.el);
27272
- var elWindow = getElementWindow(this.el);
27273
- var scrollbar = this.axis[axis].scrollbar; // Measure how far the user's mouse is from the top of the scrollbar drag handle.
27274
 
27275
- var eventOffset = axis === 'y' ? e.pageY : e.pageX;
27276
- this.axis[axis].dragOffset = eventOffset - scrollbar.rect[this.axis[axis].offsetAttr];
27277
- this.draggedAxis = axis;
27278
- this.el.classList.add(this.classNames.dragging);
27279
- elDocument.addEventListener('mousemove', this.drag, true);
27280
- elDocument.addEventListener('mouseup', this.onEndDrag, true);
27281
 
27282
- if (this.removePreventClickId === null) {
27283
- elDocument.addEventListener('click', this.preventClick, true);
27284
- elDocument.addEventListener('dblclick', this.preventClick, true);
27285
- } else {
27286
- elWindow.clearTimeout(this.removePreventClickId);
27287
- this.removePreventClickId = null;
27288
  }
27289
- }
27290
- /**
27291
- * Drag scrollbar handle
27292
- */
27293
- ;
27294
 
27295
- _proto.onTrackClick = function onTrackClick(e, axis) {
27296
- var _this4 = this;
27297
 
27298
- if (axis === void 0) {
27299
- axis = 'y';
27300
  }
 
27301
 
27302
- if (!this.options.clickOnTrack) return;
27303
- var elWindow = getElementWindow(this.el);
27304
- this.axis[axis].scrollbar.rect = this.axis[axis].scrollbar.el.getBoundingClientRect();
27305
- var scrollbar = this.axis[axis].scrollbar;
27306
- var scrollbarOffset = scrollbar.rect[this.axis[axis].offsetAttr];
27307
- var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);
27308
- var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];
27309
- var t = axis === 'y' ? this.mouseY - scrollbarOffset : this.mouseX - scrollbarOffset;
27310
- var dir = t < 0 ? -1 : 1;
27311
- var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;
27312
-
27313
- var scrollTo = function scrollTo() {
27314
- if (dir === -1) {
27315
- if (scrolled > scrollSize) {
27316
- var _this4$contentWrapper;
27317
 
27318
- scrolled -= _this4.options.clickOnTrackSpeed;
27319
 
27320
- _this4.contentWrapperEl.scrollTo((_this4$contentWrapper = {}, _this4$contentWrapper[_this4.axis[axis].offsetAttr] = scrolled, _this4$contentWrapper));
 
 
27321
 
27322
- elWindow.requestAnimationFrame(scrollTo);
 
 
 
27323
  }
27324
  } else {
27325
- if (scrolled < scrollSize) {
27326
- var _this4$contentWrapper2;
27327
-
27328
- scrolled += _this4.options.clickOnTrackSpeed;
27329
 
27330
- _this4.contentWrapperEl.scrollTo((_this4$contentWrapper2 = {}, _this4$contentWrapper2[_this4.axis[axis].offsetAttr] = scrolled, _this4$contentWrapper2));
 
 
27331
 
27332
- elWindow.requestAnimationFrame(scrollTo);
27333
- }
27334
  }
27335
- };
27336
 
27337
- scrollTo();
27338
- }
27339
- /**
27340
- * Getter for content element
27341
- */
27342
- ;
27343
 
27344
- _proto.getContentElement = function getContentElement() {
27345
- return this.contentEl;
27346
- }
27347
- /**
27348
- * Getter for original scrolling element
27349
- */
27350
- ;
27351
 
27352
- _proto.getScrollElement = function getScrollElement() {
27353
- return this.contentWrapperEl;
 
 
 
 
 
 
 
 
27354
  };
27355
 
27356
- _proto.getScrollbarWidth = function getScrollbarWidth() {
27357
- // Try/catch for FF 56 throwing on undefined computedStyles
27358
- try {
27359
- // Detect browsers supporting CSS scrollbar styling and do not calculate
27360
- if (getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar').display === 'none' || 'scrollbarWidth' in document.documentElement.style || '-ms-overflow-style' in document.documentElement.style) {
27361
- return 0;
27362
- } else {
27363
- return scrollbarWidth();
 
27364
  }
27365
- } catch (e) {
27366
- return scrollbarWidth();
27367
  }
27368
  };
27369
 
27370
- _proto.removeListeners = function removeListeners() {
27371
- var _this5 = this;
27372
-
27373
- var elWindow = getElementWindow(this.el); // Event listeners
27374
 
27375
- if (this.options.autoHide) {
27376
- this.el.removeEventListener('mouseenter', this.onMouseEnter);
27377
- }
 
27378
 
27379
- ['mousedown', 'click', 'dblclick'].forEach(function (e) {
27380
- _this5.el.removeEventListener(e, _this5.onPointerEvent, true);
27381
- });
27382
- ['touchstart', 'touchend', 'touchmove'].forEach(function (e) {
27383
- _this5.el.removeEventListener(e, _this5.onPointerEvent, {
27384
- capture: true,
27385
- passive: true
27386
  });
27387
- });
27388
- this.el.removeEventListener('mousemove', this.onMouseMove);
27389
- this.el.removeEventListener('mouseleave', this.onMouseLeave);
27390
-
27391
- if (this.contentWrapperEl) {
27392
- this.contentWrapperEl.removeEventListener('scroll', this.onScroll);
27393
  }
 
27394
 
27395
- elWindow.removeEventListener('resize', this.onWindowResize);
 
 
 
 
 
27396
 
27397
- if (this.mutationObserver) {
27398
- this.mutationObserver.disconnect();
 
 
 
 
 
27399
  }
27400
-
27401
- if (this.resizeObserver) {
27402
- this.resizeObserver.disconnect();
27403
- } // Cancel all debounced functions
27404
-
27405
-
27406
- this.recalculate.cancel();
27407
- this.onMouseMove.cancel();
27408
- this.hideScrollbars.cancel();
27409
- this.onWindowResize.cancel();
27410
- }
27411
- /**
27412
- * UnMount mutation observer and delete SimpleBar instance from DOM element
27413
- */
27414
- ;
27415
-
27416
- _proto.unMount = function unMount() {
27417
- this.removeListeners();
27418
- SimpleBar.instances.delete(this.el);
27419
- }
27420
- /**
27421
- * Check if mouse is within bounds
27422
- */
27423
- ;
27424
-
27425
- _proto.isWithinBounds = function isWithinBounds(bbox) {
27426
- return this.mouseX >= bbox.left && this.mouseX <= bbox.left + bbox.width && this.mouseY >= bbox.top && this.mouseY <= bbox.top + bbox.height;
27427
  }
27428
- /**
27429
- * Find element children matches query
27430
- */
27431
- ;
27432
-
27433
- _proto.findChild = function findChild(el, query) {
27434
- var matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;
27435
- return Array.prototype.filter.call(el.children, function (child) {
27436
- return matches.call(child, query);
27437
- })[0];
27438
- };
27439
-
27440
- return SimpleBar;
27441
- }();
27442
-
27443
- SimpleBar.defaultOptions = {
27444
- autoHide: true,
27445
- forceVisible: false,
27446
- clickOnTrack: true,
27447
- clickOnTrackSpeed: 40,
27448
- classNames: {
27449
- contentEl: 'simplebar-content',
27450
- contentWrapper: 'simplebar-content-wrapper',
27451
- offset: 'simplebar-offset',
27452
- mask: 'simplebar-mask',
27453
- wrapper: 'simplebar-wrapper',
27454
- placeholder: 'simplebar-placeholder',
27455
- scrollbar: 'simplebar-scrollbar',
27456
- track: 'simplebar-track',
27457
- heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',
27458
- heightAutoObserverEl: 'simplebar-height-auto-observer',
27459
- visible: 'simplebar-visible',
27460
- horizontal: 'simplebar-horizontal',
27461
- vertical: 'simplebar-vertical',
27462
- hover: 'simplebar-hover',
27463
- dragging: 'simplebar-dragging'
27464
- },
27465
- scrollbarMinSize: 25,
27466
- scrollbarMaxSize: 0,
27467
- timeout: 1000
27468
- };
27469
- SimpleBar.instances = new WeakMap();
27470
-
27471
- /* harmony default export */ var simplebar_core_esm = (SimpleBar);
27472
- //# sourceMappingURL=simplebar-core.esm.js.map
27473
-
27474
- ;// CONCATENATED MODULE: ./node_modules/simplebar-react/dist/simplebar-react.esm.js
27475
- /**
27476
- * simplebar-react - v2.3.0
27477
- * React component for SimpleBar
27478
- * https://grsmto.github.io/simplebar/
27479
- *
27480
- * Made by Adrien Denat
27481
- * Under MIT License
27482
- */
27483
-
27484
 
 
 
 
 
27485
 
 
27486
 
 
27487
 
27488
- function simplebar_react_esm_defineProperty(obj, key, value) {
27489
- if (key in obj) {
27490
- Object.defineProperty(obj, key, {
27491
- value: value,
27492
- enumerable: true,
27493
- configurable: true,
27494
- writable: true
27495
- });
27496
- } else {
27497
- obj[key] = value;
27498
- }
27499
 
27500
- return obj;
27501
- }
 
27502
 
27503
- function simplebar_react_esm_extends() {
27504
- simplebar_react_esm_extends = Object.assign || function (target) {
27505
- for (var i = 1; i < arguments.length; i++) {
27506
- var source = arguments[i];
 
27507
 
27508
- for (var key in source) {
27509
- if (Object.prototype.hasOwnProperty.call(source, key)) {
27510
- target[key] = source[key];
27511
- }
27512
  }
27513
  }
27514
 
27515
- return target;
27516
- };
 
27517
 
27518
- return simplebar_react_esm_extends.apply(this, arguments);
27519
- }
 
 
 
 
 
 
 
 
27520
 
27521
- function simplebar_react_esm_ownKeys(object, enumerableOnly) {
27522
- var keys = Object.keys(object);
 
 
 
 
 
 
 
27523
 
27524
- if (Object.getOwnPropertySymbols) {
27525
- var symbols = Object.getOwnPropertySymbols(object);
27526
- if (enumerableOnly) symbols = symbols.filter(function (sym) {
27527
- return Object.getOwnPropertyDescriptor(object, sym).enumerable;
27528
  });
27529
- keys.push.apply(keys, symbols);
27530
- }
27531
-
27532
- return keys;
27533
- }
27534
 
27535
- function simplebar_react_esm_objectSpread2(target) {
27536
- for (var i = 1; i < arguments.length; i++) {
27537
- var source = arguments[i] != null ? arguments[i] : {};
27538
 
27539
- if (i % 2) {
27540
- simplebar_react_esm_ownKeys(source, true).forEach(function (key) {
27541
- simplebar_react_esm_defineProperty(target, key, source[key]);
27542
- });
27543
- } else if (Object.getOwnPropertyDescriptors) {
27544
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
27545
- } else {
27546
- simplebar_react_esm_ownKeys(source).forEach(function (key) {
27547
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
27548
- });
27549
- }
27550
- }
27551
 
27552
- return target;
27553
- }
27554
 
27555
- function simplebar_react_esm_objectWithoutPropertiesLoose(source, excluded) {
27556
- if (source == null) return {};
27557
- var target = {};
27558
- var sourceKeys = Object.keys(source);
27559
- var key, i;
27560
 
27561
- for (i = 0; i < sourceKeys.length; i++) {
27562
- key = sourceKeys[i];
27563
- if (excluded.indexOf(key) >= 0) continue;
27564
- target[key] = source[key];
27565
  }
27566
 
27567
- return target;
27568
- }
27569
-
27570
- function _objectWithoutProperties(source, excluded) {
27571
- if (source == null) return {};
27572
-
27573
- var target = simplebar_react_esm_objectWithoutPropertiesLoose(source, excluded);
27574
-
27575
- var key, i;
27576
-
27577
- if (Object.getOwnPropertySymbols) {
27578
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
27579
 
27580
- for (i = 0; i < sourceSymbolKeys.length; i++) {
27581
- key = sourceSymbolKeys[i];
27582
- if (excluded.indexOf(key) >= 0) continue;
27583
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
27584
- target[key] = source[key];
27585
- }
27586
  }
27587
 
27588
- return target;
27589
- }
27590
-
27591
- /* Deprecated
27592
- * Hardcore this here until we can safely deprecated it.
27593
- * Helper function to retrieve options from element attributes
27594
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27595
 
27596
- var getOptions = function getOptions(obj) {
27597
- var options = Array.prototype.reduce.call(obj, function (acc, attribute) {
27598
- var option = attribute.name.match(/data-simplebar-(.+)/);
27599
 
27600
- if (option) {
27601
- var key = option[1].replace(/\W+(.)/g, function (x, chr) {
27602
- return chr.toUpperCase();
27603
- });
27604
 
27605
- switch (attribute.value) {
27606
- case 'true':
27607
- acc[key] = true;
27608
- break;
27609
 
27610
- case 'false':
27611
- acc[key] = false;
27612
- break;
27613
 
27614
- case undefined:
27615
- acc[key] = true;
27616
- break;
27617
 
27618
- default:
27619
- acc[key] = attribute.value;
27620
- }
27621
- }
27622
 
27623
- return acc;
27624
- }, {});
27625
- return options;
27626
- };
27627
 
27628
- var simplebar_react_esm_SimpleBar = react.forwardRef(function (_ref, ref) {
27629
- var children = _ref.children,
27630
- _ref$scrollableNodePr = _ref.scrollableNodeProps,
27631
- scrollableNodeProps = _ref$scrollableNodePr === void 0 ? {} : _ref$scrollableNodePr,
27632
- otherProps = _objectWithoutProperties(_ref, ["children", "scrollableNodeProps"]);
27633
 
27634
- var instance;
27635
- var scrollableNodeRef = (0,react.useRef)();
27636
- var elRef = (0,react.useRef)();
27637
- var contentNodeRef = (0,react.useRef)();
27638
- var options = {};
27639
- var rest = {};
27640
- var deprecatedOptions = [];
27641
- Object.keys(otherProps).forEach(function (key) {
27642
- if (Object.prototype.hasOwnProperty.call(simplebar_core_esm.defaultOptions, key)) {
27643
- options[key] = otherProps[key];
27644
- } else if (key.match(/data-simplebar-(.+)/) && key !== 'data-simplebar-direction') {
27645
- deprecatedOptions.push({
27646
- name: key,
27647
- value: otherProps[key]
27648
- });
27649
- } else {
27650
- rest[key] = otherProps[key];
27651
- }
27652
- });
27653
 
27654
- if (deprecatedOptions.length) {
27655
- console.warn("simplebar-react: this way of passing options is deprecated. Pass it like normal props instead:\n 'data-simplebar-auto-hide=\"false\"' \u2014> 'autoHide=\"false\"'\n ");
27656
- }
27657
 
27658
- (0,react.useEffect)(function () {
27659
- scrollableNodeRef = scrollableNodeProps.ref || scrollableNodeRef;
 
 
 
 
 
 
 
27660
 
27661
- if (elRef.current) {
27662
- instance = new simplebar_core_esm(elRef.current, simplebar_react_esm_objectSpread2({}, getOptions(deprecatedOptions), {}, options, {}, scrollableNodeRef && {
27663
- scrollableNode: scrollableNodeRef.current
27664
- }, {}, contentNodeRef.current && {
27665
- contentNode: contentNodeRef.current
27666
- }));
 
 
 
 
 
 
27667
 
27668
- if (ref) {
27669
- ref.current = instance;
27670
- }
27671
- }
27672
 
27673
- return function () {
27674
- instance.unMount();
27675
- instance = null;
27676
- };
27677
- }, []);
27678
- return react.createElement("div", simplebar_react_esm_extends({
27679
- ref: elRef,
27680
- "data-simplebar": true
27681
- }, rest), react.createElement("div", {
27682
- className: "simplebar-wrapper"
27683
- }, react.createElement("div", {
27684
- className: "simplebar-height-auto-observer-wrapper"
27685
- }, react.createElement("div", {
27686
- className: "simplebar-height-auto-observer"
27687
- })), react.createElement("div", {
27688
- className: "simplebar-mask"
27689
- }, react.createElement("div", {
27690
- className: "simplebar-offset"
27691
- }, typeof children === 'function' ? children({
27692
- scrollableNodeRef: scrollableNodeRef,
27693
- contentNodeRef: contentNodeRef
27694
- }) : react.createElement("div", simplebar_react_esm_extends({}, scrollableNodeProps, {
27695
- className: "simplebar-content-wrapper".concat(scrollableNodeProps.className ? " ".concat(scrollableNodeProps.className) : '')
27696
- }), react.createElement("div", {
27697
- className: "simplebar-content"
27698
- }, children)))), react.createElement("div", {
27699
- className: "simplebar-placeholder"
27700
- })), react.createElement("div", {
27701
- className: "simplebar-track simplebar-horizontal"
27702
- }, react.createElement("div", {
27703
- className: "simplebar-scrollbar"
27704
- })), react.createElement("div", {
27705
- className: "simplebar-track simplebar-vertical"
27706
- }, react.createElement("div", {
27707
- className: "simplebar-scrollbar"
27708
- })));
27709
- });
27710
- simplebar_react_esm_SimpleBar.displayName = 'SimpleBar';
27711
- simplebar_react_esm_SimpleBar.propTypes = {
27712
- children: prop_types_default().oneOfType([(prop_types_default()).node, (prop_types_default()).func]),
27713
- scrollableNodeProps: (prop_types_default()).object
27714
- };
27715
 
27716
- /* harmony default export */ var simplebar_react_esm = (simplebar_react_esm_SimpleBar);
27717
 
27718
- ;// CONCATENATED MODULE: ./node_modules/resolve-pathname/esm/resolve-pathname.js
27719
- function isAbsolute(pathname) {
27720
- return pathname.charAt(0) === '/';
27721
- }
27722
 
27723
- // About 1.5x faster than the two-arg version of Array#splice()
27724
- function spliceOne(list, index) {
27725
- for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {
27726
- list[i] = list[k];
27727
- }
27728
 
27729
- list.pop();
27730
- }
27731
 
27732
- // This implementation is based heavily on node's url.parse
27733
- function resolvePathname(to, from) {
27734
- if (from === undefined) from = '';
27735
 
27736
- var toParts = (to && to.split('/')) || [];
27737
- var fromParts = (from && from.split('/')) || [];
27738
 
27739
- var isToAbs = to && isAbsolute(to);
27740
- var isFromAbs = from && isAbsolute(from);
27741
- var mustEndAbs = isToAbs || isFromAbs;
27742
 
27743
- if (to && isAbsolute(to)) {
27744
- // to is absolute
27745
- fromParts = toParts;
27746
- } else if (toParts.length) {
27747
- // to is relative, drop the filename
27748
- fromParts.pop();
27749
- fromParts = fromParts.concat(toParts);
27750
- }
27751
 
27752
- if (!fromParts.length) return '/';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27753
 
27754
- var hasTrailingSlash;
27755
- if (fromParts.length) {
27756
- var last = fromParts[fromParts.length - 1];
27757
- hasTrailingSlash = last === '.' || last === '..' || last === '';
27758
- } else {
27759
- hasTrailingSlash = false;
27760
- }
 
 
 
 
 
 
 
 
 
 
 
27761
 
27762
- var up = 0;
27763
- for (var i = fromParts.length; i >= 0; i--) {
27764
- var part = fromParts[i];
 
 
 
27765
 
27766
- if (part === '.') {
27767
- spliceOne(fromParts, i);
27768
- } else if (part === '..') {
27769
- spliceOne(fromParts, i);
27770
- up++;
27771
- } else if (up) {
27772
- spliceOne(fromParts, i);
27773
- up--;
27774
- }
27775
- }
27776
 
27777
- if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');
 
 
 
 
 
 
 
 
 
27778
 
27779
- if (
27780
- mustEndAbs &&
27781
- fromParts[0] !== '' &&
27782
- (!fromParts[0] || !isAbsolute(fromParts[0]))
27783
- )
27784
- fromParts.unshift('');
27785
 
27786
- var result = fromParts.join('/');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27787
 
27788
- if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';
 
 
 
27789
 
27790
- return result;
27791
- }
 
 
27792
 
27793
- /* harmony default export */ var resolve_pathname = (resolvePathname);
 
 
 
27794
 
27795
- ;// CONCATENATED MODULE: ./node_modules/tiny-invariant/dist/tiny-invariant.esm.js
27796
- var isProduction = "production" === 'production';
27797
- var prefix = 'Invariant failed';
27798
- function tiny_invariant_esm_invariant(condition, message) {
27799
- if (condition) {
27800
- return;
27801
- }
27802
- if (isProduction) {
27803
- throw new Error(prefix);
27804
  }
27805
- throw new Error(prefix + ": " + (message || ''));
27806
- }
 
 
 
 
27807
 
27808
- /* harmony default export */ var tiny_invariant_esm = (tiny_invariant_esm_invariant);
 
 
 
 
 
 
 
 
 
27809
 
27810
- ;// CONCATENATED MODULE: ./node_modules/history/esm/history.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27811
 
27812
 
27813
 
27814
 
27815
 
27816
 
27817
- function addLeadingSlash(path) {
27818
- return path.charAt(0) === '/' ? path : '/' + path;
27819
- }
27820
- function stripLeadingSlash(path) {
27821
- return path.charAt(0) === '/' ? path.substr(1) : path;
27822
- }
27823
- function hasBasename(path, prefix) {
27824
- return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;
27825
- }
27826
- function stripBasename(path, prefix) {
27827
- return hasBasename(path, prefix) ? path.substr(prefix.length) : path;
27828
- }
27829
- function stripTrailingSlash(path) {
27830
- return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;
27831
- }
27832
- function parsePath(path) {
27833
- var pathname = path || '/';
27834
- var search = '';
27835
- var hash = '';
27836
- var hashIndex = pathname.indexOf('#');
27837
 
27838
- if (hashIndex !== -1) {
27839
- hash = pathname.substr(hashIndex);
27840
- pathname = pathname.substr(0, hashIndex);
27841
- }
27842
 
27843
- var searchIndex = pathname.indexOf('?');
27844
 
27845
- if (searchIndex !== -1) {
27846
- search = pathname.substr(searchIndex);
27847
- pathname = pathname.substr(0, searchIndex);
27848
- }
27849
 
27850
- return {
27851
- pathname: pathname,
27852
- search: search === '?' ? '' : search,
27853
- hash: hash === '#' ? '' : hash
27854
- };
27855
- }
27856
- function createPath(location) {
27857
- var pathname = location.pathname,
27858
- search = location.search,
27859
- hash = location.hash;
27860
- var path = pathname || '/';
27861
- if (search && search !== '?') path += search.charAt(0) === '?' ? search : "?" + search;
27862
- if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : "#" + hash;
27863
- return path;
27864
- }
27865
 
27866
- function history_createLocation(path, state, key, currentLocation) {
27867
- var location;
27868
 
27869
- if (typeof path === 'string') {
27870
- // Two-arg form: push(path, state)
27871
- location = parsePath(path);
27872
- location.state = state;
27873
- } else {
27874
- // One-arg form: push(location)
27875
- location = (0,esm_extends/* default */.Z)({}, path);
27876
- if (location.pathname === undefined) location.pathname = '';
27877
 
27878
- if (location.search) {
27879
- if (location.search.charAt(0) !== '?') location.search = '?' + location.search;
27880
- } else {
27881
- location.search = '';
27882
- }
27883
 
27884
- if (location.hash) {
27885
- if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;
27886
- } else {
27887
- location.hash = '';
27888
- }
27889
 
27890
- if (state !== undefined && location.state === undefined) location.state = state;
27891
- }
27892
 
27893
- try {
27894
- location.pathname = decodeURI(location.pathname);
27895
- } catch (e) {
27896
- if (e instanceof URIError) {
27897
- throw new URIError('Pathname "' + location.pathname + '" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');
27898
- } else {
27899
- throw e;
27900
- }
27901
- }
27902
 
27903
- if (key) location.key = key;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27904
 
27905
- if (currentLocation) {
27906
- // Resolve incomplete/relative pathname relative to current location.
27907
- if (!location.pathname) {
27908
- location.pathname = currentLocation.pathname;
27909
- } else if (location.pathname.charAt(0) !== '/') {
27910
- location.pathname = resolve_pathname(location.pathname, currentLocation.pathname);
27911
- }
27912
- } else {
27913
- // When there is no prior location and pathname is empty, set it to /
27914
- if (!location.pathname) {
27915
- location.pathname = '/';
27916
- }
27917
- }
27918
 
27919
- return location;
27920
- }
27921
- function history_locationsAreEqual(a, b) {
27922
- return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);
27923
- }
27924
 
27925
- function createTransitionManager() {
27926
- var prompt = null;
27927
 
27928
- function setPrompt(nextPrompt) {
27929
- false ? 0 : void 0;
27930
- prompt = nextPrompt;
27931
- return function () {
27932
- if (prompt === nextPrompt) prompt = null;
27933
- };
27934
- }
27935
 
27936
- function confirmTransitionTo(location, action, getUserConfirmation, callback) {
27937
- // TODO: If another transition starts while we're still confirming
27938
- // the previous one, we may end up in a weird state. Figure out the
27939
- // best way to handle this.
27940
- if (prompt != null) {
27941
- var result = typeof prompt === 'function' ? prompt(location, action) : prompt;
27942
 
27943
- if (typeof result === 'string') {
27944
- if (typeof getUserConfirmation === 'function') {
27945
- getUserConfirmation(result, callback);
27946
- } else {
27947
- false ? 0 : void 0;
27948
- callback(true);
27949
- }
27950
- } else {
27951
- // Return false from a transition hook to cancel the transition.
27952
- callback(result !== false);
27953
- }
27954
- } else {
27955
- callback(true);
27956
- }
27957
- }
27958
 
27959
- var listeners = [];
27960
 
27961
- function appendListener(fn) {
27962
- var isActive = true;
27963
 
27964
- function listener() {
27965
- if (isActive) fn.apply(void 0, arguments);
27966
- }
27967
 
27968
- listeners.push(listener);
27969
- return function () {
27970
- isActive = false;
27971
- listeners = listeners.filter(function (item) {
27972
- return item !== listener;
27973
- });
27974
- };
27975
- }
27976
 
27977
- function notifyListeners() {
27978
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
27979
- args[_key] = arguments[_key];
27980
- }
27981
 
27982
- listeners.forEach(function (listener) {
27983
- return listener.apply(void 0, args);
27984
- });
27985
- }
27986
 
27987
- return {
27988
- setPrompt: setPrompt,
27989
- confirmTransitionTo: confirmTransitionTo,
27990
- appendListener: appendListener,
27991
- notifyListeners: notifyListeners
27992
- };
27993
- }
27994
 
27995
- var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
27996
- function getConfirmation(message, callback) {
27997
- callback(window.confirm(message)); // eslint-disable-line no-alert
27998
- }
 
 
 
 
 
27999
  /**
28000
- * Returns true if the HTML5 history API is supported. Taken from Modernizr.
 
28001
  *
28002
- * https://github.com/Modernizr/Modernizr/blob/master/LICENSE
28003
- * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js
28004
- * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28005
  */
28006
 
28007
- function supportsHistory() {
28008
- var ua = window.navigator.userAgent;
28009
- if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;
28010
- return window.history && 'pushState' in window.history;
28011
- }
28012
- /**
28013
- * Returns true if browser fires popstate on hash change.
28014
- * IE10 and IE11 do not.
28015
- */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28016
 
28017
- function supportsPopStateOnHashChange() {
28018
- return window.navigator.userAgent.indexOf('Trident') === -1;
28019
- }
28020
- /**
28021
- * Returns false if using go(n) with hash history causes a full page reload.
28022
- */
28023
 
28024
- function supportsGoWithoutReloadUsingHash() {
28025
- return window.navigator.userAgent.indexOf('Firefox') === -1;
28026
- }
28027
- /**
28028
- * Returns true if a given popstate event is an extraneous WebKit event.
28029
- * Accounts for the fact that Chrome on iOS fires real popstate events
28030
- * containing undefined state when pressing the back button.
28031
- */
28032
 
28033
- function isExtraneousPopstateEvent(event) {
28034
- return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;
28035
- }
 
28036
 
28037
- var PopStateEvent = 'popstate';
28038
- var HashChangeEvent = 'hashchange';
28039
 
28040
- function getHistoryState() {
28041
- try {
28042
- return window.history.state || {};
28043
- } catch (e) {
28044
- // IE 11 sometimes throws when accessing window.history.state
28045
- // See https://github.com/ReactTraining/history/pull/289
28046
- return {};
28047
  }
28048
- }
28049
- /**
28050
- * Creates a history object that uses the HTML5 history API including
28051
- * pushState, replaceState, and the popstate event.
28052
- */
28053
 
 
 
 
 
 
28054
 
28055
- function createBrowserHistory(props) {
28056
- if (props === void 0) {
28057
- props = {};
28058
  }
28059
 
28060
- !canUseDOM ? false ? 0 : tiny_invariant_esm(false) : void 0;
28061
- var globalHistory = window.history;
28062
- var canUseHistory = supportsHistory();
28063
- var needsHashChangeListener = !supportsPopStateOnHashChange();
28064
- var _props = props,
28065
- _props$forceRefresh = _props.forceRefresh,
28066
- forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,
28067
- _props$getUserConfirm = _props.getUserConfirmation,
28068
- getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
28069
- _props$keyLength = _props.keyLength,
28070
- keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
28071
- var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28072
 
28073
- function getDOMLocation(historyState) {
28074
- var _ref = historyState || {},
28075
- key = _ref.key,
28076
- state = _ref.state;
28077
 
28078
- var _window$location = window.location,
28079
- pathname = _window$location.pathname,
28080
- search = _window$location.search,
28081
- hash = _window$location.hash;
28082
- var path = pathname + search + hash;
28083
- false ? 0 : void 0;
28084
- if (basename) path = stripBasename(path, basename);
28085
- return history_createLocation(path, state, key);
28086
- }
28087
 
28088
- function createKey() {
28089
- return Math.random().toString(36).substr(2, keyLength);
28090
- }
28091
 
28092
- var transitionManager = createTransitionManager();
28093
 
28094
- function setState(nextState) {
28095
- (0,esm_extends/* default */.Z)(history, nextState);
28096
 
28097
- history.length = globalHistory.length;
28098
- transitionManager.notifyListeners(history.location, history.action);
28099
- }
28100
 
28101
- function handlePopState(event) {
28102
- // Ignore extraneous popstate events in WebKit.
28103
- if (isExtraneousPopstateEvent(event)) return;
28104
- handlePop(getDOMLocation(event.state));
28105
- }
28106
 
28107
- function handleHashChange() {
28108
- handlePop(getDOMLocation(getHistoryState()));
28109
- }
28110
 
28111
- var forceNextPop = false;
28112
 
28113
- function handlePop(location) {
28114
- if (forceNextPop) {
28115
- forceNextPop = false;
28116
- setState();
28117
- } else {
28118
- var action = 'POP';
28119
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28120
- if (ok) {
28121
- setState({
28122
- action: action,
28123
- location: location
28124
- });
28125
- } else {
28126
- revertPop(location);
28127
- }
28128
- });
28129
- }
28130
- }
28131
 
28132
- function revertPop(fromLocation) {
28133
- var toLocation = history.location; // TODO: We could probably make this more reliable by
28134
- // keeping a list of keys we've seen in sessionStorage.
28135
- // Instead, we just default to 0 for keys we don't know.
28136
 
28137
- var toIndex = allKeys.indexOf(toLocation.key);
28138
- if (toIndex === -1) toIndex = 0;
28139
- var fromIndex = allKeys.indexOf(fromLocation.key);
28140
- if (fromIndex === -1) fromIndex = 0;
28141
- var delta = toIndex - fromIndex;
28142
 
28143
- if (delta) {
28144
- forceNextPop = true;
28145
- go(delta);
28146
- }
28147
- }
28148
 
28149
- var initialLocation = getDOMLocation(getHistoryState());
28150
- var allKeys = [initialLocation.key]; // Public interface
28151
 
28152
- function createHref(location) {
28153
- return basename + createPath(location);
28154
- }
28155
 
28156
- function push(path, state) {
28157
- false ? 0 : void 0;
28158
- var action = 'PUSH';
28159
- var location = history_createLocation(path, state, createKey(), history.location);
28160
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28161
- if (!ok) return;
28162
- var href = createHref(location);
28163
- var key = location.key,
28164
- state = location.state;
28165
 
28166
- if (canUseHistory) {
28167
- globalHistory.pushState({
28168
- key: key,
28169
- state: state
28170
- }, null, href);
28171
 
28172
- if (forceRefresh) {
28173
- window.location.href = href;
28174
- } else {
28175
- var prevIndex = allKeys.indexOf(history.location.key);
28176
- var nextKeys = allKeys.slice(0, prevIndex + 1);
28177
- nextKeys.push(location.key);
28178
- allKeys = nextKeys;
28179
- setState({
28180
- action: action,
28181
- location: location
28182
- });
28183
- }
28184
- } else {
28185
- false ? 0 : void 0;
28186
- window.location.href = href;
28187
- }
28188
- });
28189
- }
28190
 
28191
- function replace(path, state) {
28192
- false ? 0 : void 0;
28193
- var action = 'REPLACE';
28194
- var location = history_createLocation(path, state, createKey(), history.location);
28195
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28196
- if (!ok) return;
28197
- var href = createHref(location);
28198
- var key = location.key,
28199
- state = location.state;
28200
 
28201
- if (canUseHistory) {
28202
- globalHistory.replaceState({
28203
- key: key,
28204
- state: state
28205
- }, null, href);
28206
 
28207
- if (forceRefresh) {
28208
- window.location.replace(href);
28209
- } else {
28210
- var prevIndex = allKeys.indexOf(history.location.key);
28211
- if (prevIndex !== -1) allKeys[prevIndex] = location.key;
28212
- setState({
28213
- action: action,
28214
- location: location
28215
- });
28216
- }
28217
- } else {
28218
- false ? 0 : void 0;
28219
- window.location.replace(href);
28220
- }
28221
- });
28222
- }
28223
 
28224
- function go(n) {
28225
- globalHistory.go(n);
28226
- }
 
 
 
 
 
28227
 
28228
- function goBack() {
28229
- go(-1);
28230
- }
 
 
 
 
 
 
 
 
 
 
 
 
28231
 
28232
- function goForward() {
28233
- go(1);
28234
- }
 
 
 
 
28235
 
28236
- var listenerCount = 0;
 
 
 
28237
 
28238
- function checkDOMListeners(delta) {
28239
- listenerCount += delta;
 
 
 
28240
 
28241
- if (listenerCount === 1 && delta === 1) {
28242
- window.addEventListener(PopStateEvent, handlePopState);
28243
- if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);
28244
- } else if (listenerCount === 0) {
28245
- window.removeEventListener(PopStateEvent, handlePopState);
28246
- if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28247
  }
28248
- }
28249
-
28250
- var isBlocked = false;
28251
-
28252
- function block(prompt) {
28253
- if (prompt === void 0) {
28254
- prompt = false;
 
28255
  }
28256
-
28257
- var unblock = transitionManager.setPrompt(prompt);
28258
-
28259
- if (!isBlocked) {
28260
- checkDOMListeners(1);
28261
- isBlocked = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28262
  }
 
 
 
 
28263
 
28264
- return function () {
28265
- if (isBlocked) {
28266
- isBlocked = false;
28267
- checkDOMListeners(-1);
28268
- }
28269
 
28270
- return unblock();
28271
- };
28272
- }
28273
 
28274
- function listen(listener) {
28275
- var unlisten = transitionManager.appendListener(listener);
28276
- checkDOMListeners(1);
28277
- return function () {
28278
- checkDOMListeners(-1);
28279
- unlisten();
28280
- };
28281
- }
28282
 
28283
- var history = {
28284
- length: globalHistory.length,
28285
- action: 'POP',
28286
- location: initialLocation,
28287
- createHref: createHref,
28288
- push: push,
28289
- replace: replace,
28290
- go: go,
28291
- goBack: goBack,
28292
- goForward: goForward,
28293
- block: block,
28294
- listen: listen
28295
- };
28296
- return history;
28297
- }
28298
 
28299
- var HashChangeEvent$1 = 'hashchange';
28300
- var HashPathCoders = {
28301
- hashbang: {
28302
- encodePath: function encodePath(path) {
28303
- return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);
28304
- },
28305
- decodePath: function decodePath(path) {
28306
- return path.charAt(0) === '!' ? path.substr(1) : path;
28307
- }
28308
- },
28309
- noslash: {
28310
- encodePath: stripLeadingSlash,
28311
- decodePath: addLeadingSlash
28312
- },
28313
- slash: {
28314
- encodePath: addLeadingSlash,
28315
- decodePath: addLeadingSlash
28316
- }
28317
- };
28318
 
28319
- function stripHash(url) {
28320
- var hashIndex = url.indexOf('#');
28321
- return hashIndex === -1 ? url : url.slice(0, hashIndex);
28322
- }
28323
 
28324
- function getHashPath() {
28325
- // We can't use window.location.hash here because it's not
28326
- // consistent across browsers - Firefox will pre-decode it!
28327
- var href = window.location.href;
28328
- var hashIndex = href.indexOf('#');
28329
- return hashIndex === -1 ? '' : href.substring(hashIndex + 1);
28330
- }
28331
 
28332
- function pushHashPath(path) {
28333
- window.location.hash = path;
28334
- }
28335
 
28336
- function replaceHashPath(path) {
28337
- window.location.replace(stripHash(window.location.href) + '#' + path);
28338
- }
28339
 
28340
- function createHashHistory(props) {
28341
- if (props === void 0) {
28342
- props = {};
28343
- }
28344
 
28345
- !canUseDOM ? false ? 0 : tiny_invariant_esm(false) : void 0;
28346
- var globalHistory = window.history;
28347
- var canGoWithoutReload = supportsGoWithoutReloadUsingHash();
28348
- var _props = props,
28349
- _props$getUserConfirm = _props.getUserConfirmation,
28350
- getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,
28351
- _props$hashType = _props.hashType,
28352
- hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;
28353
- var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';
28354
- var _HashPathCoders$hashT = HashPathCoders[hashType],
28355
- encodePath = _HashPathCoders$hashT.encodePath,
28356
- decodePath = _HashPathCoders$hashT.decodePath;
28357
 
28358
- function getDOMLocation() {
28359
- var path = decodePath(getHashPath());
28360
- false ? 0 : void 0;
28361
- if (basename) path = stripBasename(path, basename);
28362
- return history_createLocation(path);
28363
- }
28364
 
28365
- var transitionManager = createTransitionManager();
28366
 
28367
- function setState(nextState) {
28368
- (0,esm_extends/* default */.Z)(history, nextState);
28369
 
28370
- history.length = globalHistory.length;
28371
- transitionManager.notifyListeners(history.location, history.action);
28372
- }
28373
 
28374
- var forceNextPop = false;
28375
- var ignorePath = null;
28376
 
28377
- function locationsAreEqual$$1(a, b) {
28378
- return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;
28379
- }
 
28380
 
28381
- function handleHashChange() {
28382
- var path = getHashPath();
28383
- var encodedPath = encodePath(path);
 
28384
 
28385
- if (path !== encodedPath) {
28386
- // Ensure we always have a properly-encoded hash.
28387
- replaceHashPath(encodedPath);
28388
- } else {
28389
- var location = getDOMLocation();
28390
- var prevLocation = history.location;
28391
- if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.
28392
 
28393
- if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.
 
 
 
28394
 
28395
- ignorePath = null;
28396
- handlePop(location);
28397
- }
28398
- }
28399
 
28400
- function handlePop(location) {
28401
- if (forceNextPop) {
28402
- forceNextPop = false;
28403
- setState();
 
 
 
28404
  } else {
28405
- var action = 'POP';
28406
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28407
- if (ok) {
28408
- setState({
28409
- action: action,
28410
- location: location
28411
- });
28412
- } else {
28413
- revertPop(location);
28414
- }
28415
- });
28416
  }
28417
  }
 
 
 
28418
 
28419
- function revertPop(fromLocation) {
28420
- var toLocation = history.location; // TODO: We could probably make this more reliable by
28421
- // keeping a list of paths we've seen in sessionStorage.
28422
- // Instead, we just default to 0 for paths we don't know.
28423
 
28424
- var toIndex = allPaths.lastIndexOf(createPath(toLocation));
28425
- if (toIndex === -1) toIndex = 0;
28426
- var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));
28427
- if (fromIndex === -1) fromIndex = 0;
28428
- var delta = toIndex - fromIndex;
28429
 
28430
- if (delta) {
28431
- forceNextPop = true;
28432
- go(delta);
 
 
 
28433
  }
28434
- } // Ensure the hash is encoded properly before doing anything else.
28435
 
 
 
 
 
 
 
 
 
 
 
 
28436
 
28437
- var path = getHashPath();
28438
- var encodedPath = encodePath(path);
28439
- if (path !== encodedPath) replaceHashPath(encodedPath);
28440
- var initialLocation = getDOMLocation();
28441
- var allPaths = [createPath(initialLocation)]; // Public interface
 
 
28442
 
28443
- function createHref(location) {
28444
- var baseTag = document.querySelector('base');
28445
- var href = '';
 
28446
 
28447
- if (baseTag && baseTag.getAttribute('href')) {
28448
- href = stripHash(window.location.href);
28449
- }
28450
 
28451
- return href + '#' + encodePath(basename + createPath(location));
28452
- }
28453
 
28454
- function push(path, state) {
28455
- false ? 0 : void 0;
28456
- var action = 'PUSH';
28457
- var location = history_createLocation(path, undefined, undefined, history.location);
28458
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28459
- if (!ok) return;
28460
- var path = createPath(location);
28461
- var encodedPath = encodePath(basename + path);
28462
- var hashChanged = getHashPath() !== encodedPath;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28463
 
28464
- if (hashChanged) {
28465
- // We cannot tell if a hashchange was caused by a PUSH, so we'd
28466
- // rather setState here and ignore the hashchange. The caveat here
28467
- // is that other hash histories in the page will consider it a POP.
28468
- ignorePath = path;
28469
- pushHashPath(encodedPath);
28470
- var prevIndex = allPaths.lastIndexOf(createPath(history.location));
28471
- var nextPaths = allPaths.slice(0, prevIndex + 1);
28472
- nextPaths.push(path);
28473
- allPaths = nextPaths;
28474
- setState({
28475
- action: action,
28476
- location: location
28477
- });
28478
- } else {
28479
- false ? 0 : void 0;
28480
- setState();
28481
- }
28482
  });
28483
- }
28484
 
28485
- function replace(path, state) {
28486
- false ? 0 : void 0;
28487
- var action = 'REPLACE';
28488
- var location = history_createLocation(path, undefined, undefined, history.location);
28489
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28490
- if (!ok) return;
28491
- var path = createPath(location);
28492
- var encodedPath = encodePath(basename + path);
28493
- var hashChanged = getHashPath() !== encodedPath;
28494
 
28495
- if (hashChanged) {
28496
- // We cannot tell if a hashchange was caused by a REPLACE, so we'd
28497
- // rather setState here and ignore the hashchange. The caveat here
28498
- // is that other hash histories in the page will consider it a POP.
28499
- ignorePath = path;
28500
- replaceHashPath(encodedPath);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28501
  }
28502
-
28503
- var prevIndex = allPaths.indexOf(createPath(history.location));
28504
- if (prevIndex !== -1) allPaths[prevIndex] = path;
28505
- setState({
28506
- action: action,
28507
- location: location
28508
- });
28509
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28510
  }
28511
 
28512
- function go(n) {
28513
- false ? 0 : void 0;
28514
- globalHistory.go(n);
28515
- }
 
 
 
 
 
 
 
28516
 
28517
- function goBack() {
28518
- go(-1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28519
  }
28520
 
28521
- function goForward() {
28522
- go(1);
 
28523
  }
28524
 
28525
- var listenerCount = 0;
 
 
28526
 
28527
- function checkDOMListeners(delta) {
28528
- listenerCount += delta;
 
 
 
 
 
 
 
 
28529
 
28530
- if (listenerCount === 1 && delta === 1) {
28531
- window.addEventListener(HashChangeEvent$1, handleHashChange);
28532
- } else if (listenerCount === 0) {
28533
- window.removeEventListener(HashChangeEvent$1, handleHashChange);
28534
- }
 
 
 
 
 
 
 
 
 
 
28535
  }
28536
 
28537
- var isBlocked = false;
 
 
28538
 
28539
- function block(prompt) {
28540
- if (prompt === void 0) {
28541
- prompt = false;
28542
- }
28543
 
28544
- var unblock = transitionManager.setPrompt(prompt);
 
 
 
 
 
 
 
28545
 
28546
- if (!isBlocked) {
28547
- checkDOMListeners(1);
28548
- isBlocked = true;
28549
- }
28550
 
28551
- return function () {
28552
- if (isBlocked) {
28553
- isBlocked = false;
28554
- checkDOMListeners(-1);
28555
- }
28556
 
28557
- return unblock();
28558
- };
28559
- }
28560
 
28561
- function listen(listener) {
28562
- var unlisten = transitionManager.appendListener(listener);
28563
- checkDOMListeners(1);
28564
- return function () {
28565
- checkDOMListeners(-1);
28566
- unlisten();
28567
- };
28568
  }
 
 
 
 
 
 
28569
 
28570
- var history = {
28571
- length: globalHistory.length,
28572
- action: 'POP',
28573
- location: initialLocation,
28574
- createHref: createHref,
28575
- push: push,
28576
- replace: replace,
28577
- go: go,
28578
- goBack: goBack,
28579
- goForward: goForward,
28580
- block: block,
28581
- listen: listen
28582
- };
28583
- return history;
28584
  }
 
28585
 
28586
- function clamp(n, lowerBound, upperBound) {
28587
- return Math.min(Math.max(n, lowerBound), upperBound);
28588
- }
28589
- /**
28590
- * Creates a history object that stores locations in memory.
28591
- */
28592
 
28593
 
28594
- function createMemoryHistory(props) {
28595
- if (props === void 0) {
28596
- props = {};
28597
- }
 
 
 
 
 
 
 
28598
 
28599
- var _props = props,
28600
- getUserConfirmation = _props.getUserConfirmation,
28601
- _props$initialEntries = _props.initialEntries,
28602
- initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,
28603
- _props$initialIndex = _props.initialIndex,
28604
- initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,
28605
- _props$keyLength = _props.keyLength,
28606
- keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;
28607
- var transitionManager = createTransitionManager();
28608
 
28609
- function setState(nextState) {
28610
- (0,esm_extends/* default */.Z)(history, nextState);
 
 
 
 
28611
 
28612
- history.length = history.entries.length;
28613
- transitionManager.notifyListeners(history.location, history.action);
28614
- }
28615
 
28616
- function createKey() {
28617
- return Math.random().toString(36).substr(2, keyLength);
28618
- }
28619
 
28620
- var index = clamp(initialIndex, 0, initialEntries.length - 1);
28621
- var entries = initialEntries.map(function (entry) {
28622
- return typeof entry === 'string' ? history_createLocation(entry, undefined, createKey()) : history_createLocation(entry, undefined, entry.key || createKey());
28623
- }); // Public interface
28624
 
28625
- var createHref = createPath;
28626
 
28627
- function push(path, state) {
28628
- false ? 0 : void 0;
28629
- var action = 'PUSH';
28630
- var location = history_createLocation(path, state, createKey(), history.location);
28631
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28632
- if (!ok) return;
28633
- var prevIndex = history.index;
28634
- var nextIndex = prevIndex + 1;
28635
- var nextEntries = history.entries.slice(0);
28636
 
28637
- if (nextEntries.length > nextIndex) {
28638
- nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);
28639
- } else {
28640
- nextEntries.push(location);
28641
- }
28642
 
28643
- setState({
28644
- action: action,
28645
- location: location,
28646
- index: nextIndex,
28647
- entries: nextEntries
28648
- });
28649
- });
28650
- }
28651
 
28652
- function replace(path, state) {
28653
- false ? 0 : void 0;
28654
- var action = 'REPLACE';
28655
- var location = history_createLocation(path, state, createKey(), history.location);
28656
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28657
- if (!ok) return;
28658
- history.entries[history.index] = location;
28659
- setState({
28660
- action: action,
28661
- location: location
28662
- });
28663
- });
28664
  }
28665
 
28666
- function go(n) {
28667
- var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);
28668
- var action = 'POP';
28669
- var location = history.entries[nextIndex];
28670
- transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {
28671
- if (ok) {
28672
- setState({
28673
- action: action,
28674
- location: location,
28675
- index: nextIndex
28676
- });
28677
- } else {
28678
- // Mimic the behavior of DOM histories by
28679
- // causing a render after a cancelled POP.
28680
- setState();
28681
- }
28682
- });
28683
- }
28684
 
28685
- function goBack() {
28686
- go(-1);
28687
- }
 
 
28688
 
28689
- function goForward() {
28690
- go(1);
 
 
 
 
 
28691
  }
28692
 
28693
- function canGo(n) {
28694
- var nextIndex = history.index + n;
28695
- return nextIndex >= 0 && nextIndex < history.entries.length;
28696
- }
 
 
 
 
 
 
28697
 
28698
- function block(prompt) {
28699
- if (prompt === void 0) {
28700
- prompt = false;
28701
- }
28702
 
28703
- return transitionManager.setPrompt(prompt);
 
 
 
 
28704
  }
28705
 
28706
- function listen(listener) {
28707
- return transitionManager.appendListener(listener);
28708
  }
28709
 
28710
- var history = {
28711
- length: entries.length,
28712
- action: 'POP',
28713
- location: entries[index],
28714
- index: index,
28715
- entries: entries,
28716
- createHref: createHref,
28717
- push: push,
28718
- replace: replace,
28719
- go: go,
28720
- goBack: goBack,
28721
- goForward: goForward,
28722
- canGo: canGo,
28723
- block: block,
28724
- listen: listen
28725
  };
28726
- return history;
28727
  }
 
28728
 
28729
 
28730
 
28731
- ;// CONCATENATED MODULE: ./node_modules/mini-create-react-context/dist/esm/index.js
 
 
 
28732
 
 
 
 
 
 
 
 
 
28733
 
 
 
 
28734
 
28735
 
28736
 
28737
- var MAX_SIGNED_31_BIT_INT = 1073741823;
28738
- var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : {};
28739
 
28740
- function getUniqueId() {
28741
- var key = '__global_unique_id__';
28742
- return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;
28743
- }
 
28744
 
28745
- function objectIs(x, y) {
28746
- if (x === y) {
28747
- return x !== 0 || 1 / x === 1 / y;
28748
- } else {
28749
- return x !== x && y !== y;
28750
  }
28751
- }
28752
 
28753
- function createEventEmitter(value) {
28754
- var handlers = [];
28755
- return {
28756
- on: function on(handler) {
28757
- handlers.push(handler);
28758
- },
28759
- off: function off(handler) {
28760
- handlers = handlers.filter(function (h) {
28761
- return h !== handler;
28762
- });
28763
- },
28764
- get: function get() {
28765
- return value;
28766
- },
28767
- set: function set(newValue, changedBits) {
28768
- value = newValue;
28769
- handlers.forEach(function (handler) {
28770
- return handler(value, changedBits);
28771
- });
28772
- }
28773
- };
28774
  }
 
28775
 
28776
- function onlyChild(children) {
28777
- return Array.isArray(children) ? children[0] : children;
28778
- }
28779
 
28780
- function createReactContext(defaultValue, calculateChangedBits) {
28781
- var _Provider$childContex, _Consumer$contextType;
28782
 
28783
- var contextProp = '__create-react-context-' + getUniqueId() + '__';
28784
 
28785
- var Provider = /*#__PURE__*/function (_Component) {
28786
- (0,inheritsLoose/* default */.Z)(Provider, _Component);
 
 
 
 
28787
 
28788
- function Provider() {
28789
- var _this;
28790
 
28791
- _this = _Component.apply(this, arguments) || this;
28792
- _this.emitter = createEventEmitter(_this.props.value);
28793
- return _this;
28794
- }
28795
 
28796
- var _proto = Provider.prototype;
 
 
 
 
 
 
 
 
28797
 
28798
- _proto.getChildContext = function getChildContext() {
28799
- var _ref;
 
 
28800
 
28801
- return _ref = {}, _ref[contextProp] = this.emitter, _ref;
28802
- };
28803
 
28804
- _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
28805
- if (this.props.value !== nextProps.value) {
28806
- var oldValue = this.props.value;
28807
- var newValue = nextProps.value;
28808
- var changedBits;
28809
 
28810
- if (objectIs(oldValue, newValue)) {
28811
- changedBits = 0;
28812
- } else {
28813
- changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;
28814
 
28815
- if (false) {}
28816
 
28817
- changedBits |= 0;
28818
 
28819
- if (changedBits !== 0) {
28820
- this.emitter.set(nextProps.value, changedBits);
28821
- }
28822
- }
28823
- }
28824
- };
28825
 
28826
- _proto.render = function render() {
28827
- return this.props.children;
28828
- };
 
 
28829
 
28830
- return Provider;
28831
- }(react.Component);
 
28832
 
28833
- Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = (prop_types_default()).object.isRequired, _Provider$childContex);
28834
 
28835
- var Consumer = /*#__PURE__*/function (_Component2) {
28836
- (0,inheritsLoose/* default */.Z)(Consumer, _Component2);
 
28837
 
28838
- function Consumer() {
28839
- var _this2;
 
28840
 
28841
- _this2 = _Component2.apply(this, arguments) || this;
28842
- _this2.state = {
28843
- value: _this2.getValue()
28844
- };
28845
 
28846
- _this2.onUpdate = function (newValue, changedBits) {
28847
- var observedBits = _this2.observedBits | 0;
28848
 
28849
- if ((observedBits & changedBits) !== 0) {
28850
- _this2.setState({
28851
- value: _this2.getValue()
28852
- });
28853
- }
28854
- };
28855
 
28856
- return _this2;
 
 
 
28857
  }
 
28858
 
28859
- var _proto2 = Consumer.prototype;
 
 
28860
 
28861
- _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
28862
- var observedBits = nextProps.observedBits;
28863
- this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
28864
- };
28865
 
28866
- _proto2.componentDidMount = function componentDidMount() {
28867
- if (this.context[contextProp]) {
28868
- this.context[contextProp].on(this.onUpdate);
28869
- }
28870
 
28871
- var observedBits = this.props.observedBits;
28872
- this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;
28873
- };
28874
 
28875
- _proto2.componentWillUnmount = function componentWillUnmount() {
28876
- if (this.context[contextProp]) {
28877
- this.context[contextProp].off(this.onUpdate);
28878
- }
28879
- };
28880
 
28881
- _proto2.getValue = function getValue() {
28882
- if (this.context[contextProp]) {
28883
- return this.context[contextProp].get();
28884
- } else {
28885
- return defaultValue;
28886
- }
28887
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28888
 
28889
- _proto2.render = function render() {
28890
- return onlyChild(this.props.children)(this.state.value);
28891
- };
28892
 
28893
- return Consumer;
28894
- }(react.Component);
 
28895
 
28896
- Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = (prop_types_default()).object, _Consumer$contextType);
28897
- return {
28898
- Provider: Provider,
28899
- Consumer: Consumer
28900
- };
28901
- }
28902
 
28903
- var esm_index = react.createContext || createReactContext;
 
 
 
 
 
 
28904
 
28905
- /* harmony default export */ var esm = (esm_index);
 
 
 
 
 
28906
 
28907
- // EXTERNAL MODULE: ./node_modules/react-router/node_modules/path-to-regexp/index.js
28908
- var path_to_regexp = __webpack_require__(39658);
28909
- var path_to_regexp_default = /*#__PURE__*/__webpack_require__.n(path_to_regexp);
28910
- // EXTERNAL MODULE: ./node_modules/react-router/node_modules/react-is/index.js
28911
- var react_router_node_modules_react_is = __webpack_require__(50663);
28912
- ;// CONCATENATED MODULE: ./node_modules/react-router/esm/react-router.js
 
 
 
 
 
 
 
 
 
 
28913
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28914
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28915
 
 
 
 
 
 
28916
 
28917
 
28918
 
@@ -28923,1186 +28225,1150 @@ var react_router_node_modules_react_is = __webpack_require__(50663);
28923
 
28924
 
28925
 
28926
- // TODO: Replace with React.createContext once we can assume React 16+
28927
 
28928
- var createNamedContext = function createNamedContext(name) {
28929
- var context = esm();
28930
- context.displayName = name;
28931
- return context;
28932
- };
28933
 
28934
- var historyContext =
28935
- /*#__PURE__*/
28936
- createNamedContext("Router-History");
28937
 
28938
- // TODO: Replace with React.createContext once we can assume React 16+
28939
 
28940
- var createNamedContext$1 = function createNamedContext(name) {
28941
- var context = esm();
28942
- context.displayName = name;
28943
- return context;
 
 
28944
  };
28945
 
28946
- var context =
28947
- /*#__PURE__*/
28948
- createNamedContext$1("Router");
 
28949
 
28950
- /**
28951
- * The public API for putting history on context.
28952
- */
 
28953
 
28954
- var Router =
28955
- /*#__PURE__*/
28956
- function (_React$Component) {
28957
- (0,inheritsLoose/* default */.Z)(Router, _React$Component);
28958
 
28959
- Router.computeRootMatch = function computeRootMatch(pathname) {
28960
- return {
28961
- path: "/",
28962
- url: "/",
28963
- params: {},
28964
- isExact: pathname === "/"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28965
  };
28966
- };
 
 
 
 
 
 
 
 
 
 
 
28967
 
28968
- function Router(props) {
28969
- var _this;
28970
 
28971
- _this = _React$Component.call(this, props) || this;
28972
- _this.state = {
28973
- location: props.history.location
28974
- }; // This is a bit of a hack. We have to start listening for location
28975
- // changes here in the constructor in case there are any <Redirect>s
28976
- // on the initial render. If there are, they will replace/push when
28977
- // they mount and since cDM fires in children before parents, we may
28978
- // get a new location before the <Router> is mounted.
28979
 
28980
- _this._isMounted = false;
28981
- _this._pendingLocation = null;
28982
 
28983
- if (!props.staticContext) {
28984
- _this.unlisten = props.history.listen(function (location) {
28985
- if (_this._isMounted) {
28986
- _this.setState({
28987
- location: location
28988
- });
28989
- } else {
28990
- _this._pendingLocation = location;
 
 
 
28991
  }
28992
- });
28993
- }
28994
 
28995
- return _this;
28996
- }
28997
-
28998
- var _proto = Router.prototype;
28999
-
29000
- _proto.componentDidMount = function componentDidMount() {
29001
- this._isMounted = true;
29002
 
29003
- if (this._pendingLocation) {
29004
- this.setState({
29005
- location: this._pendingLocation
29006
- });
29007
- }
29008
- };
29009
 
29010
- _proto.componentWillUnmount = function componentWillUnmount() {
29011
- if (this.unlisten) this.unlisten();
29012
- };
29013
 
29014
- _proto.render = function render() {
29015
- return react.createElement(context.Provider, {
29016
- value: {
29017
- history: this.props.history,
29018
- location: this.state.location,
29019
- match: Router.computeRootMatch(this.state.location.pathname),
29020
- staticContext: this.props.staticContext
29021
- }
29022
- }, react.createElement(historyContext.Provider, {
29023
- children: this.props.children || null,
29024
- value: this.props.history
29025
- }));
29026
- };
29027
 
29028
- return Router;
29029
- }(react.Component);
 
 
 
 
 
 
29030
 
29031
- if (false) {}
 
 
 
 
29032
 
29033
- /**
29034
- * The public API for a <Router> that stores location in memory.
29035
- */
 
29036
 
29037
- var MemoryRouter =
29038
- /*#__PURE__*/
29039
- function (_React$Component) {
29040
- (0,inheritsLoose/* default */.Z)(MemoryRouter, _React$Component);
29041
 
29042
- function MemoryRouter() {
29043
- var _this;
 
 
 
29044
 
29045
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29046
- args[_key] = arguments[_key];
29047
- }
 
 
29048
 
29049
- _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
29050
- _this.history = createMemoryHistory(_this.props);
29051
- return _this;
29052
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29053
 
29054
- var _proto = MemoryRouter.prototype;
 
29055
 
29056
- _proto.render = function render() {
29057
- return react.createElement(Router, {
29058
- history: this.history,
29059
- children: this.props.children
29060
- });
29061
- };
29062
 
29063
- return MemoryRouter;
29064
- }(react.Component);
 
 
 
 
 
 
 
29065
 
29066
- if (false) {}
 
 
 
 
 
29067
 
29068
- var Lifecycle =
29069
- /*#__PURE__*/
29070
- function (_React$Component) {
29071
- (0,inheritsLoose/* default */.Z)(Lifecycle, _React$Component);
 
 
 
29072
 
29073
- function Lifecycle() {
29074
- return _React$Component.apply(this, arguments) || this;
29075
- }
29076
 
29077
- var _proto = Lifecycle.prototype;
 
 
 
29078
 
29079
- _proto.componentDidMount = function componentDidMount() {
29080
- if (this.props.onMount) this.props.onMount.call(this, this);
29081
- };
 
 
 
29082
 
29083
- _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
29084
- if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);
29085
  };
 
 
29086
 
29087
- _proto.componentWillUnmount = function componentWillUnmount() {
29088
- if (this.props.onUnmount) this.props.onUnmount.call(this, this);
29089
- };
29090
 
29091
- _proto.render = function render() {
29092
- return null;
29093
- };
29094
 
29095
- return Lifecycle;
29096
- }(react.Component);
 
29097
 
29098
- /**
29099
- * The public API for prompting the user before navigating away from a screen.
29100
- */
 
 
 
 
 
 
 
29101
 
29102
- function Prompt(_ref) {
29103
- var message = _ref.message,
29104
- _ref$when = _ref.when,
29105
- when = _ref$when === void 0 ? true : _ref$when;
29106
- return React.createElement(context.Consumer, null, function (context) {
29107
- !context ? false ? 0 : invariant(false) : void 0;
29108
- if (!when || context.staticContext) return null;
29109
- var method = context.history.block;
29110
- return React.createElement(Lifecycle, {
29111
- onMount: function onMount(self) {
29112
- self.release = method(message);
29113
- },
29114
- onUpdate: function onUpdate(self, prevProps) {
29115
- if (prevProps.message !== message) {
29116
- self.release();
29117
- self.release = method(message);
29118
- }
29119
- },
29120
- onUnmount: function onUnmount(self) {
29121
- self.release();
29122
- },
29123
- message: message
29124
  });
29125
- });
29126
- }
29127
-
29128
- if (false) { var messageType; }
29129
-
29130
- var react_router_cache = {};
29131
- var cacheLimit = 10000;
29132
- var cacheCount = 0;
29133
-
29134
- function compilePath(path) {
29135
- if (react_router_cache[path]) return react_router_cache[path];
29136
- var generator = pathToRegexp.compile(path);
29137
 
29138
- if (cacheCount < cacheLimit) {
29139
- react_router_cache[path] = generator;
29140
- cacheCount++;
29141
  }
29142
 
29143
- return generator;
29144
- }
29145
- /**
29146
- * Public API for generating a URL pathname from a path and parameters.
29147
- */
 
29148
 
 
 
 
 
 
29149
 
29150
- function generatePath(path, params) {
29151
- if (path === void 0) {
29152
- path = "/";
29153
- }
29154
 
29155
- if (params === void 0) {
29156
- params = {};
29157
- }
 
 
 
 
 
 
29158
 
29159
- return path === "/" ? path : compilePath(path)(params, {
29160
- pretty: true
29161
- });
 
 
 
29162
  }
 
 
 
 
 
29163
 
29164
- /**
29165
- * The public API for navigating programmatically with a component.
29166
- */
29167
 
29168
- function Redirect(_ref) {
29169
- var computedMatch = _ref.computedMatch,
29170
- to = _ref.to,
29171
- _ref$push = _ref.push,
29172
- push = _ref$push === void 0 ? false : _ref$push;
29173
- return React.createElement(context.Consumer, null, function (context) {
29174
- !context ? false ? 0 : invariant(false) : void 0;
29175
- var history = context.history,
29176
- staticContext = context.staticContext;
29177
- var method = push ? history.push : history.replace;
29178
- var location = createLocation(computedMatch ? typeof to === "string" ? generatePath(to, computedMatch.params) : _extends({}, to, {
29179
- pathname: generatePath(to.pathname, computedMatch.params)
29180
- }) : to); // When rendering in a static context,
29181
- // set the new location immediately.
29182
 
29183
- if (staticContext) {
29184
- method(location);
29185
- return null;
29186
- }
29187
 
29188
- return React.createElement(Lifecycle, {
29189
- onMount: function onMount() {
29190
- method(location);
29191
- },
29192
- onUpdate: function onUpdate(self, prevProps) {
29193
- var prevLocation = createLocation(prevProps.to);
 
 
 
29194
 
29195
- if (!locationsAreEqual(prevLocation, _extends({}, location, {
29196
- key: prevLocation.key
29197
- }))) {
29198
- method(location);
29199
- }
29200
- },
29201
- to: to
29202
- });
29203
- });
29204
- }
29205
 
29206
- if (false) {}
 
 
 
 
 
29207
 
29208
- var cache$1 = {};
29209
- var cacheLimit$1 = 10000;
29210
- var cacheCount$1 = 0;
 
 
 
29211
 
29212
- function compilePath$1(path, options) {
29213
- var cacheKey = "" + options.end + options.strict + options.sensitive;
29214
- var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});
29215
- if (pathCache[path]) return pathCache[path];
29216
- var keys = [];
29217
- var regexp = path_to_regexp_default()(path, keys, options);
29218
- var result = {
29219
- regexp: regexp,
29220
- keys: keys
29221
- };
29222
 
29223
- if (cacheCount$1 < cacheLimit$1) {
29224
- pathCache[path] = result;
29225
- cacheCount$1++;
 
 
29226
  }
29227
 
29228
- return result;
29229
- }
29230
- /**
29231
- * Public API for matching a URL pathname to a path.
29232
- */
29233
-
29234
 
29235
- function matchPath(pathname, options) {
29236
- if (options === void 0) {
29237
- options = {};
29238
- }
29239
 
29240
- if (typeof options === "string" || Array.isArray(options)) {
29241
- options = {
29242
- path: options
29243
- };
29244
- }
29245
 
29246
- var _options = options,
29247
- path = _options.path,
29248
- _options$exact = _options.exact,
29249
- exact = _options$exact === void 0 ? false : _options$exact,
29250
- _options$strict = _options.strict,
29251
- strict = _options$strict === void 0 ? false : _options$strict,
29252
- _options$sensitive = _options.sensitive,
29253
- sensitive = _options$sensitive === void 0 ? false : _options$sensitive;
29254
- var paths = [].concat(path);
29255
- return paths.reduce(function (matched, path) {
29256
- if (!path && path !== "") return null;
29257
- if (matched) return matched;
29258
 
29259
- var _compilePath = compilePath$1(path, {
29260
- end: exact,
29261
- strict: strict,
29262
- sensitive: sensitive
29263
- }),
29264
- regexp = _compilePath.regexp,
29265
- keys = _compilePath.keys;
29266
 
29267
- var match = regexp.exec(pathname);
29268
- if (!match) return null;
29269
- var url = match[0],
29270
- values = match.slice(1);
29271
- var isExact = pathname === url;
29272
- if (exact && !isExact) return null;
29273
- return {
29274
- path: path,
29275
- // the path used to match
29276
- url: path === "/" && url === "" ? "/" : url,
29277
- // the matched portion of the URL
29278
- isExact: isExact,
29279
- // whether or not we matched exactly
29280
- params: keys.reduce(function (memo, key, index) {
29281
- memo[key.name] = values[index];
29282
- return memo;
29283
- }, {})
29284
- };
29285
- }, null);
29286
  }
 
29287
 
29288
- function isEmptyChildren(children) {
29289
- return React.Children.count(children) === 0;
29290
- }
29291
 
29292
- function evalChildrenDev(children, props, path) {
29293
- var value = children(props);
29294
- false ? 0 : void 0;
29295
- return value || null;
29296
- }
29297
- /**
29298
- * The public API for matching a single path and rendering.
29299
- */
 
 
 
 
 
 
29300
 
29301
 
29302
- var Route =
29303
- /*#__PURE__*/
29304
- function (_React$Component) {
29305
- (0,inheritsLoose/* default */.Z)(Route, _React$Component);
 
 
 
 
 
 
 
 
29306
 
29307
- function Route() {
29308
- return _React$Component.apply(this, arguments) || this;
29309
- }
29310
 
29311
- var _proto = Route.prototype;
29312
 
29313
- _proto.render = function render() {
29314
- var _this = this;
29315
 
29316
- return react.createElement(context.Consumer, null, function (context$1) {
29317
- !context$1 ? false ? 0 : tiny_invariant_esm(false) : void 0;
29318
- var location = _this.props.location || context$1.location;
29319
- var match = _this.props.computedMatch ? _this.props.computedMatch // <Switch> already computed the match for us
29320
- : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;
29321
 
29322
- var props = (0,esm_extends/* default */.Z)({}, context$1, {
29323
- location: location,
29324
- match: match
29325
- });
29326
 
29327
- var _this$props = _this.props,
29328
- children = _this$props.children,
29329
- component = _this$props.component,
29330
- render = _this$props.render; // Preact uses an empty array as children by
29331
- // default, so use null if that's the case.
29332
 
29333
- if (Array.isArray(children) && children.length === 0) {
29334
- children = null;
29335
- }
 
 
 
 
 
29336
 
29337
- return react.createElement(context.Provider, {
29338
- value: props
29339
- }, props.match ? children ? typeof children === "function" ? false ? 0 : children(props) : children : component ? react.createElement(component, props) : render ? render(props) : null : typeof children === "function" ? false ? 0 : children(props) : null);
29340
- });
 
 
 
 
29341
  };
 
29342
 
29343
- return Route;
29344
- }(react.Component);
29345
-
29346
- if (false) {}
29347
 
29348
- function react_router_addLeadingSlash(path) {
29349
- return path.charAt(0) === "/" ? path : "/" + path;
29350
- }
 
 
 
 
 
29351
 
29352
- function addBasename(basename, location) {
29353
- if (!basename) return location;
29354
- return (0,esm_extends/* default */.Z)({}, location, {
29355
- pathname: react_router_addLeadingSlash(basename) + location.pathname
29356
- });
29357
- }
29358
 
29359
- function react_router_stripBasename(basename, location) {
29360
- if (!basename) return location;
29361
- var base = react_router_addLeadingSlash(basename);
29362
- if (location.pathname.indexOf(base) !== 0) return location;
29363
- return (0,esm_extends/* default */.Z)({}, location, {
29364
- pathname: location.pathname.substr(base.length)
29365
- });
29366
- }
29367
 
29368
- function createURL(location) {
29369
- return typeof location === "string" ? location : createPath(location);
29370
- }
 
29371
 
29372
- function staticHandler(methodName) {
29373
- return function () {
29374
- false ? 0 : tiny_invariant_esm(false) ;
29375
- };
29376
- }
29377
 
29378
- function react_router_noop() {}
29379
- /**
29380
- * The public top-level API for a "static" <Router>, so-called because it
29381
- * can't actually change the current location. Instead, it just records
29382
- * location changes in a context object. Useful mainly in testing and
29383
- * server-rendering scenarios.
29384
- */
29385
 
29386
 
29387
- var StaticRouter =
29388
- /*#__PURE__*/
29389
- function (_React$Component) {
29390
- (0,inheritsLoose/* default */.Z)(StaticRouter, _React$Component);
29391
 
29392
- function StaticRouter() {
29393
- var _this;
29394
 
29395
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
29396
- args[_key] = arguments[_key];
29397
  }
29398
 
29399
- _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
29400
-
29401
- _this.handlePush = function (location) {
29402
- return _this.navigateTo(location, "PUSH");
29403
- };
29404
 
29405
- _this.handleReplace = function (location) {
29406
- return _this.navigateTo(location, "REPLACE");
29407
- };
 
29408
 
29409
- _this.handleListen = function () {
29410
- return react_router_noop;
29411
- };
29412
 
29413
- _this.handleBlock = function () {
29414
- return react_router_noop;
29415
- };
29416
 
29417
- return _this;
29418
  }
29419
 
29420
- var _proto = StaticRouter.prototype;
 
29421
 
29422
- _proto.navigateTo = function navigateTo(location, action) {
29423
- var _this$props = this.props,
29424
- _this$props$basename = _this$props.basename,
29425
- basename = _this$props$basename === void 0 ? "" : _this$props$basename,
29426
- _this$props$context = _this$props.context,
29427
- context = _this$props$context === void 0 ? {} : _this$props$context;
29428
- context.action = action;
29429
- context.location = addBasename(basename, history_createLocation(location));
29430
- context.url = createURL(context.location);
29431
- };
29432
 
29433
- _proto.render = function render() {
29434
- var _this$props2 = this.props,
29435
- _this$props2$basename = _this$props2.basename,
29436
- basename = _this$props2$basename === void 0 ? "" : _this$props2$basename,
29437
- _this$props2$context = _this$props2.context,
29438
- context = _this$props2$context === void 0 ? {} : _this$props2$context,
29439
- _this$props2$location = _this$props2.location,
29440
- location = _this$props2$location === void 0 ? "/" : _this$props2$location,
29441
- rest = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props2, ["basename", "context", "location"]);
29442
 
29443
- var history = {
29444
- createHref: function createHref(path) {
29445
- return react_router_addLeadingSlash(basename + createURL(path));
29446
- },
29447
- action: "POP",
29448
- location: react_router_stripBasename(basename, history_createLocation(location)),
29449
- push: this.handlePush,
29450
- replace: this.handleReplace,
29451
- go: staticHandler("go"),
29452
- goBack: staticHandler("goBack"),
29453
- goForward: staticHandler("goForward"),
29454
- listen: this.handleListen,
29455
- block: this.handleBlock
29456
- };
29457
- return react.createElement(Router, (0,esm_extends/* default */.Z)({}, rest, {
29458
- history: history,
29459
- staticContext: context
29460
- }));
29461
  };
29462
 
29463
- return StaticRouter;
29464
- }(react.Component);
 
 
 
 
 
 
29465
 
29466
- if (false) {}
 
 
 
 
 
 
 
29467
 
29468
- /**
29469
- * The public API for rendering the first <Route> that matches.
29470
- */
 
29471
 
29472
- var Switch =
29473
- /*#__PURE__*/
29474
- function (_React$Component) {
29475
- (0,inheritsLoose/* default */.Z)(Switch, _React$Component);
29476
 
29477
- function Switch() {
29478
- return _React$Component.apply(this, arguments) || this;
29479
- }
 
 
 
 
 
29480
 
29481
- var _proto = Switch.prototype;
 
29482
 
29483
- _proto.render = function render() {
29484
- var _this = this;
 
 
 
 
29485
 
29486
- return react.createElement(context.Consumer, null, function (context) {
29487
- !context ? false ? 0 : tiny_invariant_esm(false) : void 0;
29488
- var location = _this.props.location || context.location;
29489
- var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()
29490
- // here because toArray adds keys to all child elements and we do not want
29491
- // to trigger an unmount/remount for two <Route>s that render the same
29492
- // component at different URLs.
29493
 
29494
- react.Children.forEach(_this.props.children, function (child) {
29495
- if (match == null && react.isValidElement(child)) {
29496
- element = child;
29497
- var path = child.props.path || child.props.from;
29498
- match = path ? matchPath(location.pathname, (0,esm_extends/* default */.Z)({}, child.props, {
29499
- path: path
29500
- })) : context.match;
29501
- }
29502
- });
29503
- return match ? react.cloneElement(element, {
29504
- location: location,
29505
- computedMatch: match
29506
- }) : null;
29507
  });
29508
- };
 
29509
 
29510
- return Switch;
29511
- }(react.Component);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29512
 
29513
- if (false) {}
 
 
29514
 
29515
- /**
29516
- * A public higher-order component to access the imperative API
29517
- */
 
 
29518
 
29519
- function withRouter(Component) {
29520
- var displayName = "withRouter(" + (Component.displayName || Component.name) + ")";
 
 
29521
 
29522
- var C = function C(props) {
29523
- var wrappedComponentRef = props.wrappedComponentRef,
29524
- remainingProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ["wrappedComponentRef"]);
29525
 
29526
- return react.createElement(context.Consumer, null, function (context) {
29527
- !context ? false ? 0 : tiny_invariant_esm(false) : void 0;
29528
- return react.createElement(Component, (0,esm_extends/* default */.Z)({}, remainingProps, context, {
29529
- ref: wrappedComponentRef
29530
- }));
29531
  });
29532
  };
 
29533
 
29534
- C.displayName = displayName;
29535
- C.WrappedComponent = Component;
29536
-
29537
- if (false) {}
29538
-
29539
- return hoist_non_react_statics_cjs_default()(C, Component);
29540
- }
29541
 
29542
- var react_router_useContext = react.useContext;
29543
- function useHistory() {
29544
- if (false) {}
 
 
 
 
 
 
29545
 
29546
- return react_router_useContext(historyContext);
29547
- }
29548
- function useLocation() {
29549
- if (false) {}
29550
 
29551
- return react_router_useContext(context).location;
29552
- }
29553
- function useParams() {
29554
- if (false) {}
29555
 
29556
- var match = react_router_useContext(context).match;
29557
- return match ? match.params : {};
29558
- }
29559
- function useRouteMatch(path) {
29560
- if (false) {}
29561
 
29562
- var location = useLocation();
29563
- var match = react_router_useContext(context).match;
29564
- return path ? matchPath(location.pathname, path) : match;
 
 
 
 
 
 
29565
  }
29566
 
29567
- if (false) { var secondaryBuildName, initialBuildName, buildNames, key, react_router_global; }
 
 
 
 
 
 
 
 
 
 
 
 
29568
 
 
 
 
 
29569
 
29570
- //# sourceMappingURL=react-router.js.map
 
29571
 
29572
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/RandomTip/RandomTip.js
29573
- function RandomTip_slicedToArray(arr, i) { return RandomTip_arrayWithHoles(arr) || RandomTip_iterableToArrayLimit(arr, i) || RandomTip_unsupportedIterableToArray(arr, i) || RandomTip_nonIterableRest(); }
29574
 
29575
- function RandomTip_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29576
 
29577
- function RandomTip_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return RandomTip_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return RandomTip_arrayLikeToArray(o, minLen); }
29578
 
29579
- function RandomTip_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
29580
 
29581
- function RandomTip_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
 
 
 
 
 
 
 
 
 
 
29582
 
29583
- function RandomTip_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
 
 
 
 
 
 
 
 
29584
 
 
 
 
 
 
29585
 
 
 
 
 
 
 
 
 
29586
 
29587
 
29588
 
29589
 
 
 
29590
 
29591
- function RandomTip(_ref) {
29592
- var settings = _ref.settings;
29593
- var tips = [translate_translate("random_tips.tip_1"), translate_translate("random_tips.tip_2"), translate_translate("random_tips.tip_3"), translate_translate("random_tips.tip_4"), translate_translate("random_tips.tip_5"), translate_translate("random_tips.tip_6"), translate_translate("random_tips.tip_7"), translate_translate("random_tips.tip_8"), translate_translate("random_tips.tip_9"), translate_translate("random_tips.tip_10"), translate_translate("random_tips.tip_11"), translate_translate("random_tips.tip_12"), translate_translate("random_tips.tip_13"), translate_translate("random_tips.tip_14"), translate_translate("random_tips.tip_15"), translate_translate("random_tips.tip_16"), translate_translate("random_tips.tip_17"), translate_translate("random_tips.tip_18"), translate_translate("random_tips.tip_19"), translate_translate("random_tips.tip_20"), translate_translate("random_tips.tip_21"), translate_translate("random_tips.tip_22"), translate_translate("random_tips.tip_23")];
29594
 
29595
- var _useState = (0,react.useState)(0),
29596
- _useState2 = RandomTip_slicedToArray(_useState, 2),
29597
- currentTip = _useState2[0],
29598
- setCurrentTip = _useState2[1];
 
 
 
29599
 
29600
- var _useState3 = (0,react.useState)(shuffleTips(tips)),
29601
- _useState4 = RandomTip_slicedToArray(_useState3, 1),
29602
- randomTips = _useState4[0];
29603
 
29604
- if (settings["tips_enabled"] !== true) return /*#__PURE__*/react.createElement(react.Fragment, null);
29605
- return /*#__PURE__*/react.createElement("div", {
29606
- className: "random-tip",
29607
- "data-testid": "random-tip"
29608
- }, /*#__PURE__*/react.createElement("span", {
29609
- className: "buzz"
29610
- }, /*#__PURE__*/react.createElement("img", {
29611
- onDoubleClick: function onDoubleClick() {
29612
- window.open("https://www.youtube.com/watch?v=dQw4w9WgXcQ");
29613
- },
29614
- src: buttonizer_admin.assets + "/images/ButtonizerBuzzer.svg",
29615
- "data-testid": "random-tip:buzzer"
29616
- })), /*#__PURE__*/react.createElement("span", {
29617
- className: "tip",
29618
- style: {
29619
- userSelect: "none"
29620
- },
29621
- onClick: function onClick() {
29622
- var nextTip = currentTip + 1;
29623
 
29624
- if (nextTip >= randomTips.length) {
29625
- nextTip = 0;
29626
- }
29627
 
29628
- setCurrentTip(nextTip);
29629
- },
29630
- "data-testid": "random-tip:new-tip"
29631
- }, randomTips[currentTip]));
29632
- }
29633
 
29634
- /* harmony default export */ var RandomTip_RandomTip = (connect(function (state) {
29635
- return {
29636
- settings: state.settings
29637
- };
29638
- })(RandomTip));
29639
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Icon/Icon.js
29640
 
29641
 
 
 
 
29642
 
29643
 
 
 
 
 
 
 
 
 
 
 
 
 
29644
 
29645
 
29646
 
29647
- var Icon_styles = function styles(theme) {
29648
- return {
29649
- /* Styles applied to the root element. */
29650
- root: {
29651
- userSelect: 'none',
29652
- fontSize: theme.typography.pxToRem(24),
29653
- width: '1em',
29654
- height: '1em',
29655
- // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541
29656
- // To remove at some point.
29657
- overflow: 'hidden',
29658
- flexShrink: 0
29659
- },
29660
 
29661
- /* Styles applied to the root element if `color="primary"`. */
29662
- colorPrimary: {
29663
- color: theme.palette.primary.main
29664
- },
29665
 
29666
- /* Styles applied to the root element if `color="secondary"`. */
29667
- colorSecondary: {
29668
- color: theme.palette.secondary.main
29669
- },
29670
 
29671
- /* Styles applied to the root element if `color="action"`. */
29672
- colorAction: {
29673
- color: theme.palette.action.active
29674
- },
29675
 
29676
- /* Styles applied to the root element if `color="error"`. */
29677
- colorError: {
29678
- color: theme.palette.error.main
29679
- },
29680
 
29681
- /* Styles applied to the root element if `color="disabled"`. */
29682
- colorDisabled: {
29683
- color: theme.palette.action.disabled
29684
- },
29685
 
29686
- /* Styles applied to the root element if `fontSize="inherit"`. */
29687
- fontSizeInherit: {
29688
- fontSize: 'inherit'
29689
- },
29690
 
29691
- /* Styles applied to the root element if `fontSize="small"`. */
29692
- fontSizeSmall: {
29693
- fontSize: theme.typography.pxToRem(20)
29694
- },
29695
 
29696
- /* Styles applied to the root element if `fontSize="large"`. */
29697
- fontSizeLarge: {
29698
- fontSize: theme.typography.pxToRem(36)
29699
- }
29700
- };
29701
- };
29702
- var Icon_Icon = /*#__PURE__*/react.forwardRef(function Icon(props, ref) {
29703
- var classes = props.classes,
29704
- className = props.className,
29705
- _props$color = props.color,
29706
- color = _props$color === void 0 ? 'inherit' : _props$color,
29707
- _props$component = props.component,
29708
- Component = _props$component === void 0 ? 'span' : _props$component,
29709
- _props$fontSize = props.fontSize,
29710
- fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,
29711
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "component", "fontSize"]);
29712
 
29713
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
29714
- className: (0,clsx_m/* default */.Z)('material-icons', classes.root, className, color !== 'inherit' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], fontSize !== 'default' && classes["fontSize".concat((0,utils_capitalize/* default */.Z)(fontSize))]),
29715
- "aria-hidden": true,
29716
- ref: ref
29717
- }, other));
29718
- });
29719
- false ? 0 : void 0;
29720
- Icon_Icon.muiName = 'Icon';
29721
- /* harmony default export */ var esm_Icon_Icon = ((0,withStyles/* default */.Z)(Icon_styles, {
29722
- name: 'MuiIcon'
29723
- })(Icon_Icon));
29724
- ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/GroupActions.js
29725
- function GroupActions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
29726
 
29727
- function GroupActions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { GroupActions_ownKeys(Object(source), true).forEach(function (key) { GroupActions_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { GroupActions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29728
 
29729
- function GroupActions_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
29730
 
 
 
 
 
 
 
 
 
 
 
 
 
29731
 
 
 
 
 
 
29732
 
29733
 
 
 
 
 
29734
 
 
 
 
29735
 
29736
 
29737
- function GroupActions_addGroup(payload) {
29738
- var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
29739
- var dispatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : dashboard_store.dispatch;
29740
- var group = dispatch(dataActions_addRecord(GroupActions_objectSpread({
29741
- name: translate_translate("utils.new_group"),
29742
- show_mobile: true,
29743
- show_desktop: true,
29744
- children: []
29745
- }, payload), "groups", index)).payload.record; // Create simple button
29746
 
29747
- var button = dispatch(dataActions_addRecord({
29748
- name: translate_translate("utils.new_button"),
29749
- show_mobile: true,
29750
- show_desktop: true,
29751
- label: translate_translate("templates.first_button")
29752
- }, "buttons")).payload.record; // Add group relation
29753
 
29754
- dispatch(dataActions_addRelation(button.id, group.id));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29755
  }
29756
- function addButton(payload, group_id, index) {
29757
- var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : dashboard_store.dispatch;
29758
- var redirect = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
29759
- var button = dispatch(dataActions_addRecord(GroupActions_objectSpread({
29760
- name: translate_translate("utils.new_button"),
29761
- show_mobile: true,
29762
- show_desktop: true,
29763
- label: translate_translate("templates.first_button")
29764
- }, payload), "buttons")).payload.record;
29765
- dispatch(dataActions_addRelation(button.id, group_id, index));
29766
- if (redirect) document.location.hash = "/group/".concat(group_id, "/button/").concat(button.id);
29767
  }
29768
- function GroupActions_removeGroup(id) {
29769
- var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
29770
- var dispatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.store.dispatch;
29771
- if (!state.groups[id]) console.error("ID " + id + " not in store!");
29772
- var buttons = getButtons(id, state);
29773
- dispatch(removeRecord(id, "groups"));
29774
- Object.keys(buttons).map(function (id) {
29775
- return dispatch(removeRecord(id, "buttons"));
29776
- });
29777
  }
29778
- function GroupActions_duplicateGroup(id, payload) {
29779
- var state = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.store.getState();
29780
- var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : window.store.dispatch;
 
 
 
 
 
29781
 
29782
- if (state.groups[id]) {
29783
- var attr = GroupActions_objectSpread(GroupActions_objectSpread({}, state.groups[id]), {}, {
29784
- name: state.groups[id].name + " Copy",
29785
- id: undefined,
29786
- children: []
29787
- }, payload); // delete unnecesercary attrs
29788
 
29789
 
29790
- delete attr.id;
29791
- var buttons = getButtons(id, state);
29792
- var index = Object.values(state.groups).reduce(function (acc, item, index) {
29793
- return item.id === id ? index + 1 : acc;
29794
- }, "");
29795
- var group_id = dispatch(dataActions_addRecord(attr, "groups", index)).payload.record.id;
29796
- Object.keys(buttons).map(function (key) {
29797
- ButtonActions_duplicateButton(buttons[key].id, group_id, {
29798
- name: buttons[key].name
29799
- }, state, dispatch);
29800
- });
29801
- } else {
29802
- console.error("ID " + id + " not in group store!");
29803
- }
29804
 
29805
- save();
29806
- }
29807
- function importGroup() {
29808
- var groupAttr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
29809
- var buttons = arguments.length > 1 ? arguments[1] : undefined;
29810
- var index = arguments.length > 2 ? arguments[2] : undefined;
29811
- var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : dashboard_store.dispatch;
29812
- var groupAttrDef = {
29813
- name: translate_translate("utils.new_group"),
29814
- show_mobile: true,
29815
- show_desktop: true,
29816
- children: []
29817
- };
29818
- var group_id = dispatch(dataActions_addRecord(groupAttr ? groupAttr : groupAttrDef, "groups", index)).payload.record.id;
29819
- buttons.map(function (button, key) {
29820
- // Do not import
29821
- if (Object.keys(button).length === 0) return false;
29822
- addButton(button, group_id, key, dispatch);
29823
- });
29824
- }
29825
- function replaceGroup(currentGroupId, groupAttr, buttons) {
29826
- var dispatch = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : dashboard_store.dispatch;
29827
- var state = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : dashboard_store.getState();
29828
 
29829
- if (state.groups[currentGroupId]) {
29830
- // Remove current group
29831
- GroupActions_removeGroup(currentGroupId, state, dispatch); // Create new group with same index
29832
 
29833
- var index = Object.values(state.groups).reduce(function (acc, item, index) {
29834
- return item.id === currentGroupId ? index : acc;
29835
- }, "");
29836
- var group_id = dispatch(dataActions_addRecord(groupAttr, "groups", index)).payload.record.id;
29837
- buttons.map(function (button, key) {
29838
- // Do not import
29839
- if (Object.keys(button).length === 0) return false;
29840
- addButton(button, group_id, key, dispatch);
29841
- });
29842
- } else {
29843
- console.error(state.groups, state.groups[currentGroupId]);
29844
- }
29845
 
29846
- save();
29847
- }
29848
- ;// CONCATENATED MODULE: ./src/js/dashboard/store/actions/ButtonActions.js
29849
- function ButtonActions_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
29850
 
29851
- function ButtonActions_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ButtonActions_ownKeys(Object(source), true).forEach(function (key) { ButtonActions_defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ButtonActions_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29852
 
29853
- function ButtonActions_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
 
 
 
29854
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29855
 
 
 
 
 
 
 
 
29856
 
 
 
 
 
 
 
 
 
29857
 
29858
- function ButtonActions_removeButton(id) {
29859
- var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : window.store.getState();
29860
- var dispatch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : window.store.dispatch;
29861
- if (!state.buttons[id]) throw ReferenceError("ID " + id + " not in store!");
29862
- dispatch(removeRelation(id, state.buttons[id].parent));
29863
- dispatch(removeRecord(id, "buttons"));
29864
  }
29865
- function ButtonActions_duplicateButton(id, group_id, payload) {
29866
- var state = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : window.store.getState();
29867
- var dispatch = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : window.store.dispatch;
29868
 
29869
- if (state.buttons[id]) {
29870
- var attr = ButtonActions_objectSpread(ButtonActions_objectSpread({}, state.buttons[id]), {}, {
29871
- name: state.buttons[id].name + " Copy",
29872
- id: undefined
29873
- }, payload);
29874
 
29875
- switch (state.buttons[id].type) {
29876
- case "popup_maker":
29877
- attr.action = "popupMaker" + uniqueCharset() + "Pv2";
29878
- break;
29879
 
29880
- case "elementor_popup":
29881
- attr.action = "elementor" + uniqueCharset() + "Ev2";
29882
- break;
29883
- }
29884
 
29885
- delete attr.id;
29886
- addButton(attr, group_id, Object.values(state.buttons).reduce(function (acc, item, index) {
29887
- return item.id === id ? index + 1 : acc;
29888
- }, ""), dispatch);
29889
- } else {
29890
- throw ReferenceError("ID " + id + " not in button store!");
29891
  }
29892
- }
29893
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/isMuiElement.js
29894
- var isMuiElement = __webpack_require__(83711);
29895
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/List/ListContext.js
29896
-
29897
- /**
29898
- * @ignore - internal component.
29899
- */
29900
 
29901
- var ListContext = react.createContext({});
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29902
 
29903
- if (false) {}
 
29904
 
29905
- /* harmony default export */ var List_ListContext = (ListContext);
29906
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItem/ListItem.js
29907
 
29908
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29909
 
29910
 
29911
 
29912
 
29913
 
29914
 
 
29915
 
 
 
 
 
29916
 
 
 
 
29917
 
 
 
 
 
29918
 
29919
- var ListItem_styles = function styles(theme) {
29920
- return {
29921
- /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */
29922
- root: {
29923
- display: 'flex',
29924
- justifyContent: 'flex-start',
29925
- alignItems: 'center',
29926
- position: 'relative',
29927
- textDecoration: 'none',
29928
- width: '100%',
29929
- boxSizing: 'border-box',
29930
- textAlign: 'left',
29931
- paddingTop: 8,
29932
- paddingBottom: 8,
29933
- '&$focusVisible': {
29934
- backgroundColor: theme.palette.action.selected
29935
- },
29936
- '&$selected, &$selected:hover': {
29937
- backgroundColor: theme.palette.action.selected
29938
- },
29939
- '&$disabled': {
29940
- opacity: 0.5
29941
- }
29942
- },
29943
 
29944
- /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */
29945
- container: {
29946
- position: 'relative'
29947
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29948
 
29949
- /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */
29950
- focusVisible: {},
29951
 
29952
- /* Styles applied to the `component` element if dense. */
29953
- dense: {
29954
- paddingTop: 4,
29955
- paddingBottom: 4
29956
- },
29957
 
29958
- /* Styles applied to the `component` element if `alignItems="flex-start"`. */
29959
- alignItemsFlexStart: {
29960
- alignItems: 'flex-start'
29961
- },
 
 
 
 
 
 
 
29962
 
29963
- /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */
29964
- disabled: {},
 
29965
 
29966
- /* Styles applied to the inner `component` element if `divider={true}`. */
29967
- divider: {
29968
- borderBottom: "1px solid ".concat(theme.palette.divider),
29969
- backgroundClip: 'padding-box'
29970
- },
29971
 
29972
- /* Styles applied to the inner `component` element if `disableGutters={false}`. */
29973
- gutters: {
29974
- paddingLeft: 16,
29975
- paddingRight: 16
29976
- },
29977
 
29978
- /* Styles applied to the inner `component` element if `button={true}`. */
29979
- button: {
29980
- transition: theme.transitions.create('background-color', {
29981
- duration: theme.transitions.duration.shortest
29982
- }),
29983
- '&:hover': {
29984
- textDecoration: 'none',
29985
- backgroundColor: theme.palette.action.hover,
29986
- // Reset on touch devices, it doesn't add specificity
29987
- '@media (hover: none)': {
29988
- backgroundColor: 'transparent'
29989
- }
29990
- }
29991
- },
29992
 
29993
- /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */
29994
- secondaryAction: {
29995
- // Add some space to avoid collision as `ListItemSecondaryAction`
29996
- // is absolutely positioned.
29997
- paddingRight: 48
29998
- },
 
29999
 
30000
- /* Pseudo-class applied to the root element if `selected={true}`. */
30001
- selected: {}
30002
- };
30003
- };
30004
- var ListItem_useEnhancedEffect = typeof window === 'undefined' ? react.useEffect : react.useLayoutEffect;
30005
- /**
30006
- * Uses an additional container component if `ListItemSecondaryAction` is the last child.
30007
- */
30008
 
30009
- var ListItem = /*#__PURE__*/react.forwardRef(function ListItem(props, ref) {
30010
- var _props$alignItems = props.alignItems,
30011
- alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,
30012
- _props$autoFocus = props.autoFocus,
30013
- autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
30014
- _props$button = props.button,
30015
- button = _props$button === void 0 ? false : _props$button,
30016
- childrenProp = props.children,
30017
- classes = props.classes,
30018
- className = props.className,
30019
- componentProp = props.component,
30020
- _props$ContainerCompo = props.ContainerComponent,
30021
- ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,
30022
- _props$ContainerProps = props.ContainerProps;
30023
- _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;
30024
 
30025
- var ContainerClassName = _props$ContainerProps.className,
30026
- ContainerProps = (0,objectWithoutProperties/* default */.Z)(_props$ContainerProps, ["className"]),
30027
- _props$dense = props.dense,
30028
- dense = _props$dense === void 0 ? false : _props$dense,
30029
- _props$disabled = props.disabled,
30030
- disabled = _props$disabled === void 0 ? false : _props$disabled,
30031
- _props$disableGutters = props.disableGutters,
30032
- disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,
30033
- _props$divider = props.divider,
30034
- divider = _props$divider === void 0 ? false : _props$divider,
30035
- focusVisibleClassName = props.focusVisibleClassName,
30036
- _props$selected = props.selected,
30037
- selected = _props$selected === void 0 ? false : _props$selected,
30038
- other = (0,objectWithoutProperties/* default */.Z)(props, ["alignItems", "autoFocus", "button", "children", "classes", "className", "component", "ContainerComponent", "ContainerProps", "dense", "disabled", "disableGutters", "divider", "focusVisibleClassName", "selected"]);
30039
 
30040
- var context = react.useContext(List_ListContext);
30041
- var childContext = {
30042
- dense: dense || context.dense || false,
30043
- alignItems: alignItems
30044
- };
30045
- var listItemRef = react.useRef(null);
30046
- ListItem_useEnhancedEffect(function () {
30047
- if (autoFocus) {
30048
- if (listItemRef.current) {
30049
- listItemRef.current.focus();
30050
- } else if (false) {}
30051
- }
30052
- }, [autoFocus]);
30053
- var children = react.Children.toArray(childrenProp);
30054
- var hasSecondaryAction = children.length && (0,isMuiElement/* default */.Z)(children[children.length - 1], ['ListItemSecondaryAction']);
30055
- var handleOwnRef = react.useCallback(function (instance) {
30056
- // #StrictMode ready
30057
- listItemRef.current = react_dom.findDOMNode(instance);
30058
- }, []);
30059
- var handleRef = (0,useForkRef/* default */.Z)(handleOwnRef, ref);
30060
 
30061
- var componentProps = (0,esm_extends/* default */.Z)({
30062
- className: (0,clsx_m/* default */.Z)(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== "center" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),
30063
- disabled: disabled
30064
- }, other);
 
30065
 
30066
- var Component = componentProp || 'li';
 
30067
 
30068
- if (button) {
30069
- componentProps.component = componentProp || 'div';
30070
- componentProps.focusVisibleClassName = (0,clsx_m/* default */.Z)(classes.focusVisible, focusVisibleClassName);
30071
- Component = ButtonBase_ButtonBase;
30072
  }
30073
 
30074
- if (hasSecondaryAction) {
30075
- // Use div by default.
30076
- Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.
 
 
 
30077
 
30078
- if (ContainerComponent === 'li') {
30079
- if (Component === 'li') {
30080
- Component = 'div';
30081
- } else if (componentProps.component === 'li') {
30082
- componentProps.component = 'div';
30083
- }
30084
- }
30085
 
30086
- return /*#__PURE__*/react.createElement(List_ListContext.Provider, {
30087
- value: childContext
30088
- }, /*#__PURE__*/react.createElement(ContainerComponent, (0,esm_extends/* default */.Z)({
30089
- className: (0,clsx_m/* default */.Z)(classes.container, ContainerClassName),
30090
- ref: handleRef
30091
- }, ContainerProps), /*#__PURE__*/react.createElement(Component, componentProps, children), children.pop()));
 
 
30092
  }
30093
-
30094
- return /*#__PURE__*/react.createElement(List_ListContext.Provider, {
30095
- value: childContext
30096
- }, /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
30097
- ref: handleRef
30098
- }, componentProps), children));
30099
  });
30100
- false ? 0 : void 0;
30101
- /* harmony default export */ var ListItem_ListItem = ((0,withStyles/* default */.Z)(ListItem_styles, {
30102
- name: 'MuiListItem'
30103
- })(ListItem));
30104
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js
30105
 
 
 
 
 
30106
 
30107
 
30108
 
@@ -30110,3074 +29376,3223 @@ var ListItem = /*#__PURE__*/react.forwardRef(function ListItem(props, ref) {
30110
 
30111
 
30112
 
30113
- var MenuItem_styles = function styles(theme) {
30114
- return {
30115
- /* Styles applied to the root element. */
30116
- root: (0,esm_extends/* default */.Z)({}, theme.typography.body1, (0,defineProperty/* default */.Z)({
30117
- minHeight: 48,
30118
- paddingTop: 6,
30119
- paddingBottom: 6,
30120
- boxSizing: 'border-box',
30121
- width: 'auto',
30122
- overflow: 'hidden',
30123
- whiteSpace: 'nowrap'
30124
- }, theme.breakpoints.up('sm'), {
30125
- minHeight: 'auto'
30126
- })),
30127
- // TODO v5: remove
30128
 
30129
- /* Styles applied to the root element if `disableGutters={false}`. */
30130
- gutters: {},
30131
 
30132
- /* Styles applied to the root element if `selected={true}`. */
30133
- selected: {},
30134
 
30135
- /* Styles applied to the root element if dense. */
30136
- dense: (0,esm_extends/* default */.Z)({}, theme.typography.body2, {
30137
- minHeight: 'auto'
30138
- })
30139
- };
30140
- };
30141
- var MenuItem = /*#__PURE__*/react.forwardRef(function MenuItem(props, ref) {
30142
- var classes = props.classes,
30143
- className = props.className,
30144
- _props$component = props.component,
30145
- component = _props$component === void 0 ? 'li' : _props$component,
30146
- _props$disableGutters = props.disableGutters,
30147
- disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,
30148
- ListItemClasses = props.ListItemClasses,
30149
- _props$role = props.role,
30150
- role = _props$role === void 0 ? 'menuitem' : _props$role,
30151
- selected = props.selected,
30152
- tabIndexProp = props.tabIndex,
30153
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "disableGutters", "ListItemClasses", "role", "selected", "tabIndex"]);
30154
 
30155
- var tabIndex;
30156
 
30157
- if (!props.disabled) {
30158
- tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30159
  }
30160
 
30161
- return /*#__PURE__*/react.createElement(ListItem_ListItem, (0,esm_extends/* default */.Z)({
30162
- button: true,
30163
- role: role,
30164
- tabIndex: tabIndex,
30165
- component: component,
30166
- selected: selected,
30167
- disableGutters: disableGutters,
30168
- classes: (0,esm_extends/* default */.Z)({
30169
- dense: classes.dense
30170
- }, ListItemClasses),
30171
- className: (0,clsx_m/* default */.Z)(classes.root, className, selected && classes.selected, !disableGutters && classes.gutters),
30172
- ref: ref
30173
- }, other));
30174
- });
30175
- false ? 0 : void 0;
30176
- /* harmony default export */ var MenuItem_MenuItem = ((0,withStyles/* default */.Z)(MenuItem_styles, {
30177
- name: 'MuiMenuItem'
30178
- })(MenuItem));
30179
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30180
 
 
 
 
 
 
30181
 
 
 
30182
 
 
30183
 
 
30184
 
 
30185
 
 
30186
 
30187
- var ListItemIcon_styles = function styles(theme) {
30188
- return {
30189
- /* Styles applied to the root element. */
30190
- root: {
30191
- minWidth: 56,
30192
- color: theme.palette.action.active,
30193
- flexShrink: 0,
30194
- display: 'inline-flex'
30195
- },
30196
 
30197
- /* Styles applied to the root element when the parent `ListItem` uses `alignItems="flex-start"`. */
30198
- alignItemsFlexStart: {
30199
- marginTop: 8
30200
  }
30201
- };
30202
- };
30203
- /**
30204
- * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.
30205
- */
30206
 
30207
- var ListItemIcon = /*#__PURE__*/react.forwardRef(function ListItemIcon(props, ref) {
30208
- var classes = props.classes,
30209
- className = props.className,
30210
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className"]);
30211
 
30212
- var context = react.useContext(List_ListContext);
30213
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
30214
- className: (0,clsx_m/* default */.Z)(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),
30215
- ref: ref
30216
- }, other));
 
 
30217
  });
30218
- false ? 0 : void 0;
30219
- /* harmony default export */ var ListItemIcon_ListItemIcon = ((0,withStyles/* default */.Z)(ListItemIcon_styles, {
30220
- name: 'MuiListItemIcon'
30221
- })(ListItemIcon));
30222
- ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Containers/ContainerActions/DeleteButton.js
30223
- function DeleteButton_extends() { DeleteButton_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return DeleteButton_extends.apply(this, arguments); }
30224
 
30225
- function DeleteButton_slicedToArray(arr, i) { return DeleteButton_arrayWithHoles(arr) || DeleteButton_iterableToArrayLimit(arr, i) || DeleteButton_unsupportedIterableToArray(arr, i) || DeleteButton_nonIterableRest(); }
30226
 
30227
- function DeleteButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
30228
 
30229
- function DeleteButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return DeleteButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return DeleteButton_arrayLikeToArray(o, minLen); }
30230
 
30231
- function DeleteButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
30232
 
30233
- function DeleteButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
30234
 
30235
- function DeleteButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
30236
 
30237
- function DeleteButton_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = DeleteButton_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30238
 
30239
- function DeleteButton_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30240
 
 
30241
 
 
 
 
 
 
 
30242
 
 
 
30243
 
 
 
 
 
 
 
 
 
 
30244
 
 
 
 
30245
 
30246
- var DeleteButton = /*#__PURE__*/react.forwardRef(function (_ref, ref) {
30247
- var _ref$model = _ref.model,
30248
- model = _ref$model === void 0 ? "group" : _ref$model,
30249
- _ref$deleteDisabled = _ref.deleteDisabled,
30250
- deleteDisabled = _ref$deleteDisabled === void 0 ? false : _ref$deleteDisabled,
30251
- _ref$size = _ref.size,
30252
- size = _ref$size === void 0 ? "small" : _ref$size,
30253
- onClose = _ref.onClose,
30254
- _ref$buttonCount = _ref.buttonCount,
30255
- buttonCount = _ref$buttonCount === void 0 ? 1 : _ref$buttonCount,
30256
- _ref$inDropdown = _ref.inDropdown,
30257
- inDropdown = _ref$inDropdown === void 0 ? false : _ref$inDropdown,
30258
- props = DeleteButton_objectWithoutProperties(_ref, ["model", "deleteDisabled", "size", "onClose", "buttonCount", "inDropdown"]);
30259
 
30260
- var _useState = (0,react.useState)(false),
30261
- _useState2 = DeleteButton_slicedToArray(_useState, 2),
30262
- dialogOpened = _useState2[0],
30263
- setDialogOpened = _useState2[1]; // Handle close button
30264
 
 
 
 
30265
 
30266
- var handleClose = function handleClose(why) {
30267
- setDialogOpened(false);
 
 
 
30268
 
30269
- if (why === "confirm" && !deleteDisabled) {
30270
- onClose();
30271
- }
30272
- };
30273
 
30274
- var dialogContent = function dialogContent() {
30275
- // For a button, make sure it's not the only button left in the group, otherwise deny
30276
- if (deleteDisabled) {
30277
- return /*#__PURE__*/react.createElement(Typography_Typography, null, translate_translate("modal.remove.".concat(model, ".cannot_delete")));
30278
- }
30279
 
30280
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Typography_Typography, null, translate_translate("modal.remove.".concat(model, ".question"))), model === "group" && /*#__PURE__*/react.createElement(Typography_Typography, null, translate_translate("modal.remove.group.question_multiple_buttons", {
30281
- count: buttonCount
30282
- })), /*#__PURE__*/react.createElement(Typography_Typography, {
30283
- style: {
30284
- marginTop: 15
30285
- }
30286
- }, translate_translate("modal.remove.permanent")));
30287
- };
30288
 
30289
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(Tippy_Tippy, {
30290
- content: translate_translate("modal.remove.".concat(model, ".cannot_delete")),
30291
- disabled: !deleteDisabled,
30292
- trigger: "click"
30293
- }, !inDropdown ? /*#__PURE__*/react.createElement("span", {
30294
- tabIndex: 0
30295
- }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
30296
- content: translate_translate("utils.delete"),
30297
- disabled: deleteDisabled,
30298
- style: {
30299
- "float": "right"
30300
- },
30301
- shiftClick: true
30302
- }, /*#__PURE__*/react.createElement(esm_IconButton_IconButton, DeleteButton_extends({
30303
- onClick: function onClick(e) {
30304
- if (!deleteDisabled) {
30305
- if (e.shiftKey) return handleClose("confirm");
30306
- setDialogOpened(true);
30307
- }
30308
- },
30309
- color: "primary",
30310
- disabled: deleteDisabled,
30311
- size: size,
30312
- style: {
30313
- width: "35px",
30314
- height: "35px"
30315
  }
30316
- }, props), /*#__PURE__*/react.createElement(esm_Icon_Icon, {
30317
- fontSize: "inherit",
30318
- style: {
30319
- overflow: "unset"
30320
- },
30321
- className: "fas fa-times"
30322
- })))) : /*#__PURE__*/react.createElement("div", {
30323
- ref: ref
30324
- }, /*#__PURE__*/react.createElement(Tippy_Tippy, {
30325
- content: "",
30326
- disabled: deleteDisabled,
30327
- style: {
30328
- "float": "right"
30329
- },
30330
- shiftClick: true
30331
- }, /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
30332
- onClick: function onClick(e) {
30333
- if (!deleteDisabled) {
30334
- if (e.shiftKey) return handleClose("confirm");
30335
- setDialogOpened(true);
30336
- }
30337
- },
30338
- disabled: deleteDisabled,
30339
- "data-testid": model === "page_rule" ? props["data-testid"] : "delete-button-".concat(model)
30340
- }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(esm_Icon_Icon, {
30341
- className: "fas fa-trash-alt"
30342
- })), /*#__PURE__*/react.createElement(Typography_Typography, {
30343
- variant: "inherit"
30344
- }, translate_translate("utils.delete")))))), /*#__PURE__*/react.createElement(ConfirmDialog, {
30345
- open: dialogOpened,
30346
- title: deleteDisabled ? translate_translate("modal.remove.".concat(model, ".cannot_delete_window_title")) : translate_translate("modal.remove.".concat(model, ".window_title")),
30347
- buttons: deleteDisabled ? [{
30348
- value: "close",
30349
- text: translate_translate("modal.close")
30350
- }] : null,
30351
- onClose: handleClose,
30352
- testId: "delete-button:dialog"
30353
- }, dialogContent()));
30354
- });
30355
- /* harmony default export */ var ContainerActions_DeleteButton = (DeleteButton);
30356
- // EXTERNAL MODULE: ./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js
30357
- var formatMuiErrorMessage = __webpack_require__(60288);
30358
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/formControlState.js
30359
- function formControlState(_ref) {
30360
- var props = _ref.props,
30361
- states = _ref.states,
30362
- muiFormControl = _ref.muiFormControl;
30363
- return states.reduce(function (acc, state) {
30364
- acc[state] = props[state];
30365
 
30366
- if (muiFormControl) {
30367
- if (typeof props[state] === 'undefined') {
30368
- acc[state] = muiFormControl[state];
30369
- }
30370
- }
30371
 
30372
- return acc;
30373
- }, {});
30374
- }
30375
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js
30376
 
30377
- /**
30378
- * @ignore - internal component.
30379
- */
30380
 
30381
- var FormControlContext = react.createContext();
 
30382
 
30383
- if (false) {}
30384
 
30385
- function useFormControl() {
30386
- return react.useContext(FormControlContext);
30387
- }
30388
- /* harmony default export */ var FormControl_FormControlContext = (FormControlContext);
30389
- // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/debounce.js
30390
- var utils_debounce = __webpack_require__(79437);
30391
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js
 
 
 
30392
 
30393
 
30394
 
 
 
 
 
 
 
 
30395
 
 
 
 
 
 
 
 
30396
 
 
 
 
 
 
30397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30398
 
30399
- function getStyleValue(computedStyle, property) {
30400
- return parseInt(computedStyle[property], 10) || 0;
30401
- }
30402
 
30403
- var TextareaAutosize_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
30404
- var TextareaAutosize_styles = {
30405
- /* Styles applied to the shadow textarea element. */
30406
- shadow: {
30407
- // Visibility needed to hide the extra text area on iPads
30408
- visibility: 'hidden',
30409
- // Remove from the content flow
30410
- position: 'absolute',
30411
- // Ignore the scrollbar width
30412
- overflow: 'hidden',
30413
- height: 0,
30414
- top: 0,
30415
- left: 0,
30416
- // Create a new layer, increase the isolation of the computed values
30417
- transform: 'translateZ(0)'
30418
- }
30419
- };
30420
- var TextareaAutosize = /*#__PURE__*/react.forwardRef(function TextareaAutosize(props, ref) {
30421
- var onChange = props.onChange,
30422
- rows = props.rows,
30423
- rowsMax = props.rowsMax,
30424
- _props$rowsMin = props.rowsMin,
30425
- rowsMinProp = _props$rowsMin === void 0 ? 1 : _props$rowsMin,
30426
- style = props.style,
30427
- value = props.value,
30428
- other = (0,objectWithoutProperties/* default */.Z)(props, ["onChange", "rows", "rowsMax", "rowsMin", "style", "value"]);
30429
 
30430
- var rowsMin = rows || rowsMinProp;
30431
 
30432
- var _React$useRef = react.useRef(value != null),
30433
- isControlled = _React$useRef.current;
30434
 
30435
- var inputRef = react.useRef(null);
30436
- var handleRef = (0,useForkRef/* default */.Z)(ref, inputRef);
30437
- var shadowRef = react.useRef(null);
30438
- var renders = react.useRef(0);
30439
 
30440
- var _React$useState = react.useState({}),
30441
- state = _React$useState[0],
30442
- setState = _React$useState[1];
30443
 
30444
- var syncHeight = react.useCallback(function () {
30445
- var input = inputRef.current;
30446
- var computedStyle = window.getComputedStyle(input);
30447
- var inputShallow = shadowRef.current;
30448
- inputShallow.style.width = computedStyle.width;
30449
- inputShallow.value = input.value || props.placeholder || 'x';
30450
 
30451
- if (inputShallow.value.slice(-1) === '\n') {
30452
- // Certain fonts which overflow the line height will cause the textarea
30453
- // to report a different scrollHeight depending on whether the last line
30454
- // is empty. Make it non-empty to avoid this issue.
30455
- inputShallow.value += ' ';
30456
- }
30457
 
30458
- var boxSizing = computedStyle['box-sizing'];
30459
- var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');
30460
- var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content
30461
 
30462
- var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row
30463
 
30464
- inputShallow.value = 'x';
30465
- var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content
30466
 
30467
- var outerHeight = innerHeight;
 
 
 
30468
 
30469
- if (rowsMin) {
30470
- outerHeight = Math.max(Number(rowsMin) * singleRowHeight, outerHeight);
30471
- }
30472
 
30473
- if (rowsMax) {
30474
- outerHeight = Math.min(Number(rowsMax) * singleRowHeight, outerHeight);
30475
- }
30476
 
30477
- outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.
30478
 
30479
- var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);
30480
- var overflow = Math.abs(outerHeight - innerHeight) <= 1;
30481
- setState(function (prevState) {
30482
- // Need a large enough difference to update the height.
30483
- // This prevents infinite rendering loop.
30484
- if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {
30485
- renders.current += 1;
30486
- return {
30487
- overflow: overflow,
30488
- outerHeightStyle: outerHeightStyle
30489
- };
30490
- }
30491
 
30492
- if (false) {}
30493
 
30494
- return prevState;
30495
- });
30496
- }, [rowsMax, rowsMin, props.placeholder]);
30497
- react.useEffect(function () {
30498
- var handleResize = (0,utils_debounce/* default */.Z)(function () {
30499
- renders.current = 0;
30500
- syncHeight();
30501
- });
30502
- window.addEventListener('resize', handleResize);
30503
- return function () {
30504
- handleResize.clear();
30505
- window.removeEventListener('resize', handleResize);
30506
- };
30507
- }, [syncHeight]);
30508
- TextareaAutosize_useEnhancedEffect(function () {
30509
- syncHeight();
30510
- });
30511
- react.useEffect(function () {
30512
- renders.current = 0;
30513
- }, [value]);
30514
 
30515
- var handleChange = function handleChange(event) {
30516
- renders.current = 0;
 
 
 
 
 
 
30517
 
30518
- if (!isControlled) {
30519
- syncHeight();
30520
- }
 
 
 
 
 
 
 
 
 
 
 
30521
 
30522
- if (onChange) {
30523
- onChange(event);
30524
- }
 
 
 
30525
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30526
 
30527
- return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("textarea", (0,esm_extends/* default */.Z)({
30528
- value: value,
30529
- onChange: handleChange,
30530
- ref: handleRef // Apply the rows prop to get a "correct" first SSR paint
30531
- ,
30532
- rows: rowsMin,
30533
- style: (0,esm_extends/* default */.Z)({
30534
- height: state.outerHeightStyle,
30535
- // Need a large enough difference to allow scrolling.
30536
- // This prevents infinite rendering loop.
30537
- overflow: state.overflow ? 'hidden' : null
30538
- }, style)
30539
- }, other)), /*#__PURE__*/react.createElement("textarea", {
30540
- "aria-hidden": true,
30541
- className: props.className,
30542
- readOnly: true,
30543
- ref: shadowRef,
30544
- tabIndex: -1,
30545
- style: (0,esm_extends/* default */.Z)({}, TextareaAutosize_styles.shadow, style)
30546
- }));
30547
- });
30548
- false ? 0 : void 0;
30549
- /* harmony default export */ var TextareaAutosize_TextareaAutosize = (TextareaAutosize);
30550
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputBase/utils.js
30551
- // Supports determination of isControlled().
30552
- // Controlled input accepts its current value as a prop.
30553
- //
30554
- // @see https://facebook.github.io/react/docs/forms.html#controlled-components
30555
- // @param value
30556
- // @returns {boolean} true if string (including '') or number (including zero)
30557
- function hasValue(value) {
30558
- return value != null && !(Array.isArray(value) && value.length === 0);
30559
- } // Determine if field is empty or filled.
30560
- // Response determines if label is presented above field or as placeholder.
30561
- //
30562
- // @param obj
30563
- // @param SSR
30564
- // @returns {boolean} False when not present or empty string.
30565
- // True when any number or string with length.
30566
-
30567
- function isFilled(obj) {
30568
- var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
30569
- return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');
30570
- } // Determine if an Input is adorned on start.
30571
- // It's corresponding to the left with LTR.
30572
- //
30573
- // @param obj
30574
- // @returns {boolean} False when no adornments.
30575
- // True when adorned at the start.
30576
 
30577
- function isAdornedStart(obj) {
30578
- return obj.startAdornment;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30579
  }
30580
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputBase/InputBase.js
30581
-
30582
-
30583
-
30584
-
30585
- /* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
30586
 
 
 
 
30587
 
 
 
 
30588
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30589
 
 
 
30590
 
30591
 
 
 
 
 
 
 
 
 
 
 
 
 
30592
 
 
 
 
30593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30594
 
 
 
 
 
30595
 
 
 
 
 
 
 
 
 
 
 
30596
 
30597
- var InputBase_styles = function styles(theme) {
30598
- var light = theme.palette.type === 'light';
30599
- var placeholder = {
30600
- color: 'currentColor',
30601
- opacity: light ? 0.42 : 0.5,
30602
- transition: theme.transitions.create('opacity', {
30603
- duration: theme.transitions.duration.shorter
30604
- })
30605
- };
30606
- var placeholderHidden = {
30607
- opacity: '0 !important'
30608
- };
30609
- var placeholderVisible = {
30610
- opacity: light ? 0.42 : 0.5
30611
- };
30612
- return {
30613
- '@global': {
30614
- '@keyframes mui-auto-fill': {},
30615
- '@keyframes mui-auto-fill-cancel': {}
30616
- },
30617
 
30618
- /* Styles applied to the root element. */
30619
- root: (0,esm_extends/* default */.Z)({}, theme.typography.body1, {
30620
- color: theme.palette.text.primary,
30621
- lineHeight: '1.1876em',
30622
- // Reset (19px), match the native input line-height
30623
- boxSizing: 'border-box',
30624
- // Prevent padding issue with fullWidth.
30625
- position: 'relative',
30626
- cursor: 'text',
30627
- display: 'inline-flex',
30628
- alignItems: 'center',
30629
- '&$disabled': {
30630
- color: theme.palette.text.disabled,
30631
- cursor: 'default'
30632
- }
30633
- }),
30634
 
30635
- /* Styles applied to the root element if the component is a descendant of `FormControl`. */
30636
- formControl: {},
 
 
 
 
 
 
 
30637
 
30638
- /* Styles applied to the root element if the component is focused. */
30639
- focused: {},
30640
 
30641
- /* Styles applied to the root element if `disabled={true}`. */
30642
- disabled: {},
 
 
30643
 
30644
- /* Styles applied to the root element if `startAdornment` is provided. */
30645
- adornedStart: {},
 
 
 
 
 
 
30646
 
30647
- /* Styles applied to the root element if `endAdornment` is provided. */
30648
- adornedEnd: {},
30649
 
30650
- /* Pseudo-class applied to the root element if `error={true}`. */
30651
- error: {},
30652
 
30653
- /* Styles applied to the `input` element if `margin="dense"`. */
30654
- marginDense: {},
 
 
 
 
 
 
 
30655
 
30656
- /* Styles applied to the root element if `multiline={true}`. */
30657
- multiline: {
30658
- padding: "".concat(8 - 2, "px 0 ").concat(8 - 1, "px"),
30659
- '&$marginDense': {
30660
- paddingTop: 4 - 1
30661
- }
30662
- },
30663
 
30664
- /* Styles applied to the root element if the color is secondary. */
30665
- colorSecondary: {},
 
 
 
 
 
 
 
30666
 
30667
- /* Styles applied to the root element if `fullWidth={true}`. */
30668
- fullWidth: {
30669
- width: '100%'
30670
- },
30671
 
30672
- /* Styles applied to the `input` element. */
30673
- input: {
30674
- font: 'inherit',
30675
- letterSpacing: 'inherit',
30676
- color: 'currentColor',
30677
- padding: "".concat(8 - 2, "px 0 ").concat(8 - 1, "px"),
30678
- border: 0,
30679
- boxSizing: 'content-box',
30680
- background: 'none',
30681
- height: '1.1876em',
30682
- // Reset (19px), match the native input line-height
30683
- margin: 0,
30684
- // Reset for Safari
30685
- WebkitTapHighlightColor: 'transparent',
30686
- display: 'block',
30687
- // Make the flex item shrink with Firefox
30688
- minWidth: 0,
30689
- width: '100%',
30690
- // Fix IE 11 width issue
30691
- animationName: 'mui-auto-fill-cancel',
30692
- animationDuration: '10ms',
30693
- '&::-webkit-input-placeholder': placeholder,
30694
- '&::-moz-placeholder': placeholder,
30695
- // Firefox 19+
30696
- '&:-ms-input-placeholder': placeholder,
30697
- // IE 11
30698
- '&::-ms-input-placeholder': placeholder,
30699
- // Edge
30700
- '&:focus': {
30701
- outline: 0
30702
- },
30703
- // Reset Firefox invalid required input style
30704
- '&:invalid': {
30705
- boxShadow: 'none'
30706
- },
30707
- '&::-webkit-search-decoration': {
30708
- // Remove the padding when type=search.
30709
- '-webkit-appearance': 'none'
30710
- },
30711
- // Show and hide the placeholder logic
30712
- 'label[data-shrink=false] + $formControl &': {
30713
- '&::-webkit-input-placeholder': placeholderHidden,
30714
- '&::-moz-placeholder': placeholderHidden,
30715
- // Firefox 19+
30716
- '&:-ms-input-placeholder': placeholderHidden,
30717
- // IE 11
30718
- '&::-ms-input-placeholder': placeholderHidden,
30719
- // Edge
30720
- '&:focus::-webkit-input-placeholder': placeholderVisible,
30721
- '&:focus::-moz-placeholder': placeholderVisible,
30722
- // Firefox 19+
30723
- '&:focus:-ms-input-placeholder': placeholderVisible,
30724
- // IE 11
30725
- '&:focus::-ms-input-placeholder': placeholderVisible // Edge
30726
 
30727
- },
30728
- '&$disabled': {
30729
- opacity: 1 // Reset iOS opacity
30730
 
30731
- },
30732
- '&:-webkit-autofill': {
30733
- animationDuration: '5000s',
30734
- animationName: 'mui-auto-fill'
30735
- }
30736
- },
30737
 
30738
- /* Styles applied to the `input` element if `margin="dense"`. */
30739
- inputMarginDense: {
30740
- paddingTop: 4 - 1
30741
- },
 
 
30742
 
30743
- /* Styles applied to the `input` element if `multiline={true}`. */
30744
- inputMultiline: {
30745
- height: 'auto',
30746
- resize: 'none',
30747
- padding: 0
30748
- },
30749
 
30750
- /* Styles applied to the `input` element if `type="search"`. */
30751
- inputTypeSearch: {
30752
- // Improve type search style.
30753
- '-moz-appearance': 'textfield',
30754
- '-webkit-appearance': 'textfield'
30755
- },
30756
 
30757
- /* Styles applied to the `input` element if `startAdornment` is provided. */
30758
- inputAdornedStart: {},
30759
 
30760
- /* Styles applied to the `input` element if `endAdornment` is provided. */
30761
- inputAdornedEnd: {},
 
 
 
 
 
 
 
30762
 
30763
- /* Styles applied to the `input` element if `hiddenLabel={true}`. */
30764
- inputHiddenLabel: {}
30765
- };
 
 
30766
  };
30767
- var InputBase_useEnhancedEffect = typeof window === 'undefined' ? react.useEffect : react.useLayoutEffect;
30768
- /**
30769
- * `InputBase` contains as few styles as possible.
30770
- * It aims to be a simple building block for creating an input.
30771
- * It contains a load of style reset and some state logic.
30772
- */
30773
-
30774
- var InputBase = /*#__PURE__*/react.forwardRef(function InputBase(props, ref) {
30775
- var ariaDescribedby = props['aria-describedby'],
30776
- autoComplete = props.autoComplete,
30777
- autoFocus = props.autoFocus,
30778
- classes = props.classes,
30779
- className = props.className,
30780
- color = props.color,
30781
- defaultValue = props.defaultValue,
30782
- disabled = props.disabled,
30783
- endAdornment = props.endAdornment,
30784
- error = props.error,
30785
- _props$fullWidth = props.fullWidth,
30786
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
30787
- id = props.id,
30788
- _props$inputComponent = props.inputComponent,
30789
- inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
30790
- _props$inputProps = props.inputProps,
30791
- inputPropsProp = _props$inputProps === void 0 ? {} : _props$inputProps,
30792
- inputRefProp = props.inputRef,
30793
- margin = props.margin,
30794
- _props$multiline = props.multiline,
30795
- multiline = _props$multiline === void 0 ? false : _props$multiline,
30796
- name = props.name,
30797
- onBlur = props.onBlur,
30798
- onChange = props.onChange,
30799
- onClick = props.onClick,
30800
- onFocus = props.onFocus,
30801
- onKeyDown = props.onKeyDown,
30802
- onKeyUp = props.onKeyUp,
30803
- placeholder = props.placeholder,
30804
- readOnly = props.readOnly,
30805
- renderSuffix = props.renderSuffix,
30806
- rows = props.rows,
30807
- rowsMax = props.rowsMax,
30808
- rowsMin = props.rowsMin,
30809
- startAdornment = props.startAdornment,
30810
- _props$type = props.type,
30811
- type = _props$type === void 0 ? 'text' : _props$type,
30812
- valueProp = props.value,
30813
- other = (0,objectWithoutProperties/* default */.Z)(props, ["aria-describedby", "autoComplete", "autoFocus", "classes", "className", "color", "defaultValue", "disabled", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputRef", "margin", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "rows", "rowsMax", "rowsMin", "startAdornment", "type", "value"]);
30814
-
30815
- var value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;
30816
-
30817
- var _React$useRef = react.useRef(value != null),
30818
- isControlled = _React$useRef.current;
30819
-
30820
- var inputRef = react.useRef();
30821
- var handleInputRefWarning = react.useCallback(function (instance) {
30822
- if (false) {}
30823
- }, []);
30824
- var handleInputPropsRefProp = (0,useForkRef/* default */.Z)(inputPropsProp.ref, handleInputRefWarning);
30825
- var handleInputRefProp = (0,useForkRef/* default */.Z)(inputRefProp, handleInputPropsRefProp);
30826
- var handleInputRef = (0,useForkRef/* default */.Z)(inputRef, handleInputRefProp);
30827
-
30828
- var _React$useState = react.useState(false),
30829
- focused = _React$useState[0],
30830
- setFocused = _React$useState[1];
30831
-
30832
- var muiFormControl = useFormControl();
30833
-
30834
  if (false) {}
30835
 
30836
- var fcs = formControlState({
30837
- props: props,
30838
- muiFormControl: muiFormControl,
30839
- states: ['color', 'disabled', 'error', 'hiddenLabel', 'margin', 'required', 'filled']
30840
  });
30841
- fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.
30842
- // We need to book keep the focused state manually.
30843
-
30844
- react.useEffect(function () {
30845
- if (!muiFormControl && disabled && focused) {
30846
- setFocused(false);
30847
-
30848
- if (onBlur) {
30849
- onBlur();
30850
- }
30851
- }
30852
- }, [muiFormControl, disabled, focused, onBlur]);
30853
- var onFilled = muiFormControl && muiFormControl.onFilled;
30854
- var onEmpty = muiFormControl && muiFormControl.onEmpty;
30855
- var checkDirty = react.useCallback(function (obj) {
30856
- if (isFilled(obj)) {
30857
- if (onFilled) {
30858
- onFilled();
30859
- }
30860
- } else if (onEmpty) {
30861
- onEmpty();
30862
- }
30863
- }, [onFilled, onEmpty]);
30864
- InputBase_useEnhancedEffect(function () {
30865
- if (isControlled) {
30866
- checkDirty({
30867
- value: value
30868
- });
30869
- }
30870
- }, [value, checkDirty, isControlled]);
30871
-
30872
- var handleFocus = function handleFocus(event) {
30873
- // Fix a bug with IE 11 where the focus/blur events are triggered
30874
- // while the input is disabled.
30875
- if (fcs.disabled) {
30876
- event.stopPropagation();
30877
- return;
30878
- }
30879
-
30880
- if (onFocus) {
30881
- onFocus(event);
30882
- }
30883
-
30884
- if (inputPropsProp.onFocus) {
30885
- inputPropsProp.onFocus(event);
30886
- }
30887
-
30888
- if (muiFormControl && muiFormControl.onFocus) {
30889
- muiFormControl.onFocus(event);
30890
- } else {
30891
- setFocused(true);
30892
- }
30893
- };
30894
 
30895
- var handleBlur = function handleBlur(event) {
30896
- if (onBlur) {
30897
- onBlur(event);
30898
  }
30899
 
30900
- if (inputPropsProp.onBlur) {
30901
- inputPropsProp.onBlur(event);
 
 
 
 
 
 
 
 
 
 
 
30902
  }
30903
 
30904
- if (muiFormControl && muiFormControl.onBlur) {
30905
- muiFormControl.onBlur(event);
30906
  } else {
30907
- setFocused(false);
 
 
 
 
30908
  }
30909
- };
30910
 
30911
- var handleChange = function handleChange(event) {
30912
- if (!isControlled) {
30913
- var element = event.target || inputRef.current;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30914
 
30915
- if (element == null) {
30916
- throw new Error( false ? 0 : (0,formatMuiErrorMessage/* default */.Z)(1));
30917
- }
30918
 
30919
- checkDirty({
30920
- value: element.value
30921
- });
30922
- }
30923
 
30924
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
30925
- args[_key - 1] = arguments[_key];
 
 
30926
  }
30927
 
30928
- if (inputPropsProp.onChange) {
30929
- inputPropsProp.onChange.apply(inputPropsProp, [event].concat(args));
30930
- } // Perform in the willUpdate
30931
 
 
 
 
30932
 
30933
- if (onChange) {
30934
- onChange.apply(void 0, [event].concat(args));
30935
- }
30936
- }; // Check the input state on mount, in case it was filled by the user
30937
- // or auto filled by the browser before the hydration (for SSR).
30938
 
 
 
30939
 
30940
- react.useEffect(function () {
30941
- checkDirty(inputRef.current);
30942
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
 
30943
 
30944
- var handleClick = function handleClick(event) {
30945
- if (inputRef.current && event.currentTarget === event.target) {
30946
- inputRef.current.focus();
 
30947
  }
 
30948
 
30949
- if (onClick) {
30950
- onClick(event);
 
 
 
 
 
 
 
 
 
 
30951
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30952
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30953
 
30954
- var InputComponent = inputComponent;
 
 
 
 
30955
 
30956
- var inputProps = (0,esm_extends/* default */.Z)({}, inputPropsProp, {
30957
- ref: handleInputRef
30958
- });
 
 
30959
 
30960
- if (typeof InputComponent !== 'string') {
30961
- inputProps = (0,esm_extends/* default */.Z)({
30962
- // Rename ref to inputRef as we don't know the
30963
- // provided `inputComponent` structure.
30964
- inputRef: handleInputRef,
30965
- type: type
30966
- }, inputProps, {
30967
- ref: null
30968
- });
30969
- } else if (multiline) {
30970
- if (rows && !rowsMax && !rowsMin) {
30971
- InputComponent = 'textarea';
30972
  } else {
30973
- inputProps = (0,esm_extends/* default */.Z)({
30974
- rows: rows,
30975
- rowsMax: rowsMax
30976
- }, inputProps);
30977
- InputComponent = TextareaAutosize_TextareaAutosize;
30978
  }
30979
- } else {
30980
- inputProps = (0,esm_extends/* default */.Z)({
30981
- type: type
30982
- }, inputProps);
30983
- }
30984
 
30985
- var handleAutoFill = function handleAutoFill(event) {
30986
- // Provide a fake value as Chrome might not let you access it for security reasons.
30987
- checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {
30988
- value: 'x'
30989
- });
30990
- };
30991
 
30992
- react.useEffect(function () {
30993
- if (muiFormControl) {
30994
- muiFormControl.setAdornedStart(Boolean(startAdornment));
 
 
 
30995
  }
30996
- }, [muiFormControl, startAdornment]);
30997
- return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
30998
- className: (0,clsx_m/* default */.Z)(classes.root, classes["color".concat((0,utils_capitalize/* default */.Z)(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fullWidth && classes.fullWidth, fcs.focused && classes.focused, muiFormControl && classes.formControl, multiline && classes.multiline, startAdornment && classes.adornedStart, endAdornment && classes.adornedEnd, fcs.margin === 'dense' && classes.marginDense),
30999
- onClick: handleClick,
31000
- ref: ref
31001
- }, other), startAdornment, /*#__PURE__*/react.createElement(FormControl_FormControlContext.Provider, {
31002
- value: null
31003
- }, /*#__PURE__*/react.createElement(InputComponent, (0,esm_extends/* default */.Z)({
31004
- "aria-invalid": fcs.error,
31005
- "aria-describedby": ariaDescribedby,
31006
- autoComplete: autoComplete,
31007
- autoFocus: autoFocus,
31008
- defaultValue: defaultValue,
31009
- disabled: fcs.disabled,
31010
- id: id,
31011
- onAnimationStart: handleAutoFill,
31012
- name: name,
31013
- placeholder: placeholder,
31014
- readOnly: readOnly,
31015
- required: fcs.required,
31016
- rows: rows,
31017
- value: value,
31018
- onKeyDown: onKeyDown,
31019
- onKeyUp: onKeyUp
31020
- }, inputProps, {
31021
- className: (0,clsx_m/* default */.Z)(classes.input, inputPropsProp.className, fcs.disabled && classes.disabled, multiline && classes.inputMultiline, fcs.hiddenLabel && classes.inputHiddenLabel, startAdornment && classes.inputAdornedStart, endAdornment && classes.inputAdornedEnd, type === 'search' && classes.inputTypeSearch, fcs.margin === 'dense' && classes.inputMarginDense),
31022
- onBlur: handleBlur,
31023
- onChange: handleChange,
31024
- onFocus: handleFocus
31025
- }))), endAdornment, renderSuffix ? renderSuffix((0,esm_extends/* default */.Z)({}, fcs, {
31026
- startAdornment: startAdornment
31027
- })) : null);
31028
- });
31029
- false ? 0 : void 0;
31030
- /* harmony default export */ var InputBase_InputBase = ((0,withStyles/* default */.Z)(InputBase_styles, {
31031
- name: 'MuiInputBase'
31032
- })(InputBase));
31033
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Input/Input.js
31034
 
 
 
 
31035
 
 
 
 
 
 
 
 
 
 
 
 
31036
 
 
 
 
 
 
 
31037
 
 
31038
 
 
 
31039
 
 
 
 
 
 
31040
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31041
 
31042
- var Input_styles = function styles(theme) {
31043
- var light = theme.palette.type === 'light';
31044
- var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
31045
- return {
31046
- /* Styles applied to the root element. */
31047
- root: {
31048
- position: 'relative'
31049
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31050
 
31051
- /* Styles applied to the root element if the component is a descendant of `FormControl`. */
31052
- formControl: {
31053
- 'label + &': {
31054
- marginTop: 16
31055
- }
31056
- },
31057
 
31058
- /* Styles applied to the root element if the component is focused. */
31059
- focused: {},
31060
 
31061
- /* Styles applied to the root element if `disabled={true}`. */
31062
- disabled: {},
 
 
31063
 
31064
- /* Styles applied to the root element if color secondary. */
31065
- colorSecondary: {
31066
- '&$underline:after': {
31067
- borderBottomColor: theme.palette.secondary.main
31068
- }
31069
- },
31070
 
31071
- /* Styles applied to the root element if `disableUnderline={false}`. */
31072
- underline: {
31073
- '&:after': {
31074
- borderBottom: "2px solid ".concat(theme.palette.primary.main),
31075
- left: 0,
31076
- bottom: 0,
31077
- // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
31078
- content: '""',
31079
- position: 'absolute',
31080
- right: 0,
31081
- transform: 'scaleX(0)',
31082
- transition: theme.transitions.create('transform', {
31083
- duration: theme.transitions.duration.shorter,
31084
- easing: theme.transitions.easing.easeOut
31085
- }),
31086
- pointerEvents: 'none' // Transparent to the hover style.
31087
 
31088
- },
31089
- '&$focused:after': {
31090
- transform: 'scaleX(1)'
31091
- },
31092
- '&$error:after': {
31093
- borderBottomColor: theme.palette.error.main,
31094
- transform: 'scaleX(1)' // error is always underlined in red
 
 
 
 
 
 
31095
 
31096
- },
31097
- '&:before': {
31098
- borderBottom: "1px solid ".concat(bottomLineColor),
31099
- left: 0,
31100
- bottom: 0,
31101
- // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
31102
- content: '"\\00a0"',
31103
- position: 'absolute',
31104
- right: 0,
31105
- transition: theme.transitions.create('border-bottom-color', {
31106
- duration: theme.transitions.duration.shorter
31107
- }),
31108
- pointerEvents: 'none' // Transparent to the hover style.
31109
 
31110
- },
31111
- '&:hover:not($disabled):before': {
31112
- borderBottom: "2px solid ".concat(theme.palette.text.primary),
31113
- // Reset on touch devices, it doesn't add specificity
31114
- '@media (hover: none)': {
31115
- borderBottom: "1px solid ".concat(bottomLineColor)
31116
- }
31117
- },
31118
- '&$disabled:before': {
31119
- borderBottomStyle: 'dotted'
31120
- }
31121
- },
31122
 
31123
- /* Pseudo-class applied to the root element if `error={true}`. */
31124
- error: {},
 
 
 
 
 
 
 
 
 
 
 
 
31125
 
31126
- /* Styles applied to the `input` element if `margin="dense"`. */
31127
- marginDense: {},
 
 
31128
 
31129
- /* Styles applied to the root element if `multiline={true}`. */
31130
- multiline: {},
 
31131
 
31132
- /* Styles applied to the root element if `fullWidth={true}`. */
31133
- fullWidth: {},
31134
 
31135
- /* Styles applied to the `input` element. */
31136
- input: {},
 
31137
 
31138
- /* Styles applied to the `input` element if `margin="dense"`. */
31139
- inputMarginDense: {},
 
31140
 
31141
- /* Styles applied to the `input` element if `multiline={true}`. */
31142
- inputMultiline: {},
 
 
31143
 
31144
- /* Styles applied to the `input` element if `type="search"`. */
31145
- inputTypeSearch: {}
31146
- };
31147
- };
31148
- var Input = /*#__PURE__*/react.forwardRef(function Input(props, ref) {
31149
- var disableUnderline = props.disableUnderline,
31150
- classes = props.classes,
31151
- _props$fullWidth = props.fullWidth,
31152
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
31153
- _props$inputComponent = props.inputComponent,
31154
- inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
31155
- _props$multiline = props.multiline,
31156
- multiline = _props$multiline === void 0 ? false : _props$multiline,
31157
- _props$type = props.type,
31158
- type = _props$type === void 0 ? 'text' : _props$type,
31159
- other = (0,objectWithoutProperties/* default */.Z)(props, ["disableUnderline", "classes", "fullWidth", "inputComponent", "multiline", "type"]);
31160
 
31161
- return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
31162
- classes: (0,esm_extends/* default */.Z)({}, classes, {
31163
- root: (0,clsx_m/* default */.Z)(classes.root, !disableUnderline && classes.underline),
31164
- underline: null
31165
- }),
31166
- fullWidth: fullWidth,
31167
- inputComponent: inputComponent,
31168
- multiline: multiline,
31169
- ref: ref,
31170
- type: type
31171
- }, other));
31172
- });
31173
- false ? 0 : void 0;
31174
- Input.muiName = 'Input';
31175
- /* harmony default export */ var Input_Input = ((0,withStyles/* default */.Z)(Input_styles, {
31176
- name: 'MuiInput'
31177
- })(Input));
31178
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js
31179
 
 
 
31180
 
 
 
 
 
31181
 
 
 
 
 
31182
 
 
 
 
 
 
31183
 
 
 
31184
 
 
 
 
31185
 
 
 
31186
 
31187
- var FilledInput_styles = function styles(theme) {
31188
- var light = theme.palette.type === 'light';
31189
- var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
31190
- var backgroundColor = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)';
31191
- return {
31192
- /* Styles applied to the root element. */
31193
- root: {
31194
- position: 'relative',
31195
- backgroundColor: backgroundColor,
31196
- borderTopLeftRadius: theme.shape.borderRadius,
31197
- borderTopRightRadius: theme.shape.borderRadius,
31198
- transition: theme.transitions.create('background-color', {
31199
- duration: theme.transitions.duration.shorter,
31200
- easing: theme.transitions.easing.easeOut
31201
- }),
31202
- '&:hover': {
31203
- backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)',
31204
- // Reset on touch devices, it doesn't add specificity
31205
- '@media (hover: none)': {
31206
- backgroundColor: backgroundColor
31207
  }
31208
- },
31209
- '&$focused': {
31210
- backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)'
31211
- },
31212
- '&$disabled': {
31213
- backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'
31214
  }
31215
- },
 
31216
 
31217
- /* Styles applied to the root element if color secondary. */
31218
- colorSecondary: {
31219
- '&$underline:after': {
31220
- borderBottomColor: theme.palette.secondary.main
 
 
 
 
 
 
 
31221
  }
31222
- },
 
31223
 
31224
- /* Styles applied to the root element if `disableUnderline={false}`. */
31225
- underline: {
31226
- '&:after': {
31227
- borderBottom: "2px solid ".concat(theme.palette.primary.main),
31228
- left: 0,
31229
- bottom: 0,
31230
- // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
31231
- content: '""',
31232
- position: 'absolute',
31233
- right: 0,
31234
- transform: 'scaleX(0)',
31235
- transition: theme.transitions.create('transform', {
31236
- duration: theme.transitions.duration.shorter,
31237
- easing: theme.transitions.easing.easeOut
31238
- }),
31239
- pointerEvents: 'none' // Transparent to the hover style.
31240
 
31241
- },
31242
- '&$focused:after': {
31243
- transform: 'scaleX(1)'
31244
- },
31245
- '&$error:after': {
31246
- borderBottomColor: theme.palette.error.main,
31247
- transform: 'scaleX(1)' // error is always underlined in red
31248
 
31249
- },
31250
- '&:before': {
31251
- borderBottom: "1px solid ".concat(bottomLineColor),
31252
- left: 0,
31253
- bottom: 0,
31254
- // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
31255
- content: '"\\00a0"',
31256
- position: 'absolute',
31257
- right: 0,
31258
- transition: theme.transitions.create('border-bottom-color', {
31259
- duration: theme.transitions.duration.shorter
31260
- }),
31261
- pointerEvents: 'none' // Transparent to the hover style.
31262
 
31263
- },
31264
- '&:hover:before': {
31265
- borderBottom: "1px solid ".concat(theme.palette.text.primary)
31266
- },
31267
- '&$disabled:before': {
31268
- borderBottomStyle: 'dotted'
 
 
31269
  }
31270
- },
31271
 
31272
- /* Pseudo-class applied to the root element if the component is focused. */
31273
- focused: {},
 
 
 
 
31274
 
31275
- /* Pseudo-class applied to the root element if `disabled={true}`. */
31276
- disabled: {},
 
 
 
31277
 
31278
- /* Styles applied to the root element if `startAdornment` is provided. */
31279
- adornedStart: {
31280
- paddingLeft: 12
31281
- },
 
 
31282
 
31283
- /* Styles applied to the root element if `endAdornment` is provided. */
31284
- adornedEnd: {
31285
- paddingRight: 12
31286
- },
 
31287
 
31288
- /* Pseudo-class applied to the root element if `error={true}`. */
31289
- error: {},
 
31290
 
31291
- /* Styles applied to the `input` element if `margin="dense"`. */
31292
- marginDense: {},
 
31293
 
31294
- /* Styles applied to the root element if `multiline={true}`. */
31295
- multiline: {
31296
- padding: '27px 12px 10px',
31297
- '&$marginDense': {
31298
- paddingTop: 23,
31299
- paddingBottom: 6
31300
- }
31301
- },
31302
 
31303
- /* Styles applied to the `input` element. */
31304
- input: {
31305
- padding: '27px 12px 10px',
31306
- '&:-webkit-autofill': {
31307
- WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',
31308
- WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',
31309
- caretColor: theme.palette.type === 'light' ? null : '#fff',
31310
- borderTopLeftRadius: 'inherit',
31311
- borderTopRightRadius: 'inherit'
 
 
 
31312
  }
31313
- },
 
31314
 
31315
- /* Styles applied to the `input` element if `margin="dense"`. */
31316
- inputMarginDense: {
31317
- paddingTop: 23,
31318
- paddingBottom: 6
31319
- },
31320
 
31321
- /* Styles applied to the `input` if in `<FormControl hiddenLabel />`. */
31322
- inputHiddenLabel: {
31323
- paddingTop: 18,
31324
- paddingBottom: 19,
31325
- '&$inputMarginDense': {
31326
- paddingTop: 10,
31327
- paddingBottom: 11
31328
- }
31329
- },
31330
 
31331
- /* Styles applied to the `input` element if `multiline={true}`. */
31332
- inputMultiline: {
31333
- padding: 0
31334
- },
 
 
 
31335
 
31336
- /* Styles applied to the `input` element if `startAdornment` is provided. */
31337
- inputAdornedStart: {
31338
- paddingLeft: 0
31339
- },
31340
 
31341
- /* Styles applied to the `input` element if `endAdornment` is provided. */
31342
- inputAdornedEnd: {
31343
- paddingRight: 0
31344
  }
31345
- };
31346
- };
31347
- var FilledInput = /*#__PURE__*/react.forwardRef(function FilledInput(props, ref) {
31348
- var disableUnderline = props.disableUnderline,
31349
- classes = props.classes,
31350
- _props$fullWidth = props.fullWidth,
31351
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
31352
- _props$inputComponent = props.inputComponent,
31353
- inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
31354
- _props$multiline = props.multiline,
31355
- multiline = _props$multiline === void 0 ? false : _props$multiline,
31356
- _props$type = props.type,
31357
- type = _props$type === void 0 ? 'text' : _props$type,
31358
- other = (0,objectWithoutProperties/* default */.Z)(props, ["disableUnderline", "classes", "fullWidth", "inputComponent", "multiline", "type"]);
31359
 
31360
- return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
31361
- classes: (0,esm_extends/* default */.Z)({}, classes, {
31362
- root: (0,clsx_m/* default */.Z)(classes.root, !disableUnderline && classes.underline),
31363
- underline: null
31364
- }),
31365
- fullWidth: fullWidth,
31366
- inputComponent: inputComponent,
31367
- multiline: multiline,
31368
- ref: ref,
31369
- type: type
31370
- }, other));
31371
- });
31372
- false ? 0 : void 0;
31373
- FilledInput.muiName = 'Input';
31374
- /* harmony default export */ var FilledInput_FilledInput = ((0,withStyles/* default */.Z)(FilledInput_styles, {
31375
- name: 'MuiFilledInput'
31376
- })(FilledInput));
31377
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js
31378
 
 
 
 
 
31379
 
 
 
 
 
 
 
 
 
 
 
 
31380
 
 
 
 
 
 
 
 
 
 
31381
 
 
 
 
 
31382
 
 
31383
 
 
 
 
 
31384
 
 
 
 
31385
 
 
 
 
 
 
 
31386
 
31387
- var NotchedOutline_styles = function styles(theme) {
31388
- return {
31389
- /* Styles applied to the root element. */
31390
- root: {
31391
- position: 'absolute',
31392
- bottom: 0,
31393
- right: 0,
31394
- top: -5,
31395
- left: 0,
31396
- margin: 0,
31397
- padding: '0 8px',
31398
- pointerEvents: 'none',
31399
- borderRadius: 'inherit',
31400
- borderStyle: 'solid',
31401
- borderWidth: 1,
31402
- overflow: 'hidden'
31403
- },
31404
 
31405
- /* Styles applied to the legend element when `labelWidth` is provided. */
31406
- legend: {
31407
- textAlign: 'left',
31408
- padding: 0,
31409
- lineHeight: '11px',
31410
- // sync with `height` in `legend` styles
31411
- transition: theme.transitions.create('width', {
31412
- duration: 150,
31413
- easing: theme.transitions.easing.easeOut
31414
- })
31415
- },
31416
 
31417
- /* Styles applied to the legend element. */
31418
- legendLabelled: {
31419
- display: 'block',
31420
- width: 'auto',
31421
- textAlign: 'left',
31422
- padding: 0,
31423
- height: 11,
31424
- // sync with `lineHeight` in `legend` styles
31425
- fontSize: '0.75em',
31426
- visibility: 'hidden',
31427
- maxWidth: 0.01,
31428
- transition: theme.transitions.create('max-width', {
31429
- duration: 50,
31430
- easing: theme.transitions.easing.easeOut
31431
- }),
31432
- '& > span': {
31433
- paddingLeft: 5,
31434
- paddingRight: 5,
31435
- display: 'inline-block'
31436
- }
31437
- },
31438
 
31439
- /* Styles applied to the legend element is notched. */
31440
- legendNotched: {
31441
- maxWidth: 1000,
31442
- transition: theme.transitions.create('max-width', {
31443
- duration: 100,
31444
- easing: theme.transitions.easing.easeOut,
31445
- delay: 50
31446
- })
31447
  }
31448
- };
31449
- };
31450
- /**
31451
- * @ignore - internal component.
31452
- */
31453
 
31454
- var NotchedOutline = /*#__PURE__*/react.forwardRef(function NotchedOutline(props, ref) {
31455
- var children = props.children,
31456
- classes = props.classes,
31457
- className = props.className,
31458
- label = props.label,
31459
- labelWidthProp = props.labelWidth,
31460
- notched = props.notched,
31461
- style = props.style,
31462
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "label", "labelWidth", "notched", "style"]);
31463
 
31464
- var theme = useTheme_useTheme();
31465
- var align = theme.direction === 'rtl' ? 'right' : 'left';
 
 
 
 
 
 
 
31466
 
31467
- if (label !== undefined) {
31468
- return /*#__PURE__*/react.createElement("fieldset", (0,esm_extends/* default */.Z)({
31469
- "aria-hidden": true,
31470
- className: (0,clsx_m/* default */.Z)(classes.root, className),
31471
- ref: ref,
31472
- style: style
31473
- }, other), /*#__PURE__*/react.createElement("legend", {
31474
- className: (0,clsx_m/* default */.Z)(classes.legendLabelled, notched && classes.legendNotched)
31475
- }, label ? /*#__PURE__*/react.createElement("span", null, label) : /*#__PURE__*/react.createElement("span", {
31476
- dangerouslySetInnerHTML: {
31477
- __html: '&#8203;'
31478
- }
31479
- })));
31480
- }
31481
 
31482
- var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0.01;
31483
- return /*#__PURE__*/react.createElement("fieldset", (0,esm_extends/* default */.Z)({
31484
- "aria-hidden": true,
31485
- style: (0,esm_extends/* default */.Z)((0,defineProperty/* default */.Z)({}, "padding".concat((0,utils_capitalize/* default */.Z)(align)), 8), style),
31486
- className: (0,clsx_m/* default */.Z)(classes.root, className),
31487
- ref: ref
31488
- }, other), /*#__PURE__*/react.createElement("legend", {
31489
- className: classes.legend,
31490
- style: {
31491
- // IE 11: fieldset with legend does not render
31492
- // a border radius. This maintains consistency
31493
- // by always having a legend rendered
31494
- width: notched ? labelWidth : 0.01
31495
  }
31496
- }, /*#__PURE__*/react.createElement("span", {
31497
- dangerouslySetInnerHTML: {
31498
- __html: '&#8203;'
 
 
 
 
 
 
 
 
 
 
 
 
 
31499
  }
31500
- })));
31501
- });
31502
- false ? 0 : void 0;
31503
- /* harmony default export */ var OutlinedInput_NotchedOutline = ((0,withStyles/* default */.Z)(NotchedOutline_styles, {
31504
- name: 'PrivateNotchedOutline'
31505
- })(NotchedOutline));
31506
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js
31507
 
 
 
31508
 
 
 
31509
 
 
 
 
 
 
 
 
31510
 
 
 
31511
 
 
 
 
 
 
31512
 
 
 
31513
 
 
 
 
31514
 
 
 
 
 
31515
 
31516
- var OutlinedInput_styles = function styles(theme) {
31517
- var borderColor = theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
31518
- return {
31519
- /* Styles applied to the root element. */
31520
- root: {
31521
- position: 'relative',
31522
- borderRadius: theme.shape.borderRadius,
31523
- '&:hover $notchedOutline': {
31524
- borderColor: theme.palette.text.primary
31525
- },
31526
- // Reset on touch devices, it doesn't add specificity
31527
- '@media (hover: none)': {
31528
- '&:hover $notchedOutline': {
31529
- borderColor: borderColor
31530
- }
31531
- },
31532
- '&$focused $notchedOutline': {
31533
- borderColor: theme.palette.primary.main,
31534
- borderWidth: 2
31535
- },
31536
- '&$error $notchedOutline': {
31537
- borderColor: theme.palette.error.main
31538
- },
31539
- '&$disabled $notchedOutline': {
31540
- borderColor: theme.palette.action.disabled
31541
- }
31542
- },
31543
 
31544
- /* Styles applied to the root element if the color is secondary. */
31545
- colorSecondary: {
31546
- '&$focused $notchedOutline': {
31547
- borderColor: theme.palette.secondary.main
31548
- }
31549
- },
31550
 
31551
- /* Styles applied to the root element if the component is focused. */
31552
- focused: {},
31553
 
31554
- /* Styles applied to the root element if `disabled={true}`. */
31555
- disabled: {},
 
31556
 
31557
- /* Styles applied to the root element if `startAdornment` is provided. */
31558
- adornedStart: {
31559
- paddingLeft: 14
31560
- },
31561
 
31562
- /* Styles applied to the root element if `endAdornment` is provided. */
31563
- adornedEnd: {
31564
- paddingRight: 14
31565
- },
31566
 
31567
- /* Pseudo-class applied to the root element if `error={true}`. */
31568
- error: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31569
 
31570
- /* Styles applied to the `input` element if `margin="dense"`. */
31571
- marginDense: {},
 
31572
 
31573
- /* Styles applied to the root element if `multiline={true}`. */
31574
- multiline: {
31575
- padding: '18.5px 14px',
31576
- '&$marginDense': {
31577
- paddingTop: 10.5,
31578
- paddingBottom: 10.5
 
 
 
 
 
 
 
31579
  }
31580
- },
31581
-
31582
- /* Styles applied to the `NotchedOutline` element. */
31583
- notchedOutline: {
31584
- borderColor: borderColor
31585
- },
31586
-
31587
- /* Styles applied to the `input` element. */
31588
- input: {
31589
- padding: '18.5px 14px',
31590
- '&:-webkit-autofill': {
31591
- WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',
31592
- WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',
31593
- caretColor: theme.palette.type === 'light' ? null : '#fff',
31594
- borderRadius: 'inherit'
31595
  }
31596
- },
31597
-
31598
- /* Styles applied to the `input` element if `margin="dense"`. */
31599
- inputMarginDense: {
31600
- paddingTop: 10.5,
31601
- paddingBottom: 10.5
31602
- },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31603
 
31604
- /* Styles applied to the `input` element if `multiline={true}`. */
31605
- inputMultiline: {
31606
- padding: 0
31607
- },
 
 
 
 
 
31608
 
31609
- /* Styles applied to the `input` element if `startAdornment` is provided. */
31610
- inputAdornedStart: {
31611
- paddingLeft: 0
31612
- },
 
 
 
31613
 
31614
- /* Styles applied to the `input` element if `endAdornment` is provided. */
31615
- inputAdornedEnd: {
31616
- paddingRight: 0
 
31617
  }
31618
- };
31619
- };
31620
- var OutlinedInput = /*#__PURE__*/react.forwardRef(function OutlinedInput(props, ref) {
31621
- var classes = props.classes,
31622
- _props$fullWidth = props.fullWidth,
31623
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
31624
- _props$inputComponent = props.inputComponent,
31625
- inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
31626
- label = props.label,
31627
- _props$labelWidth = props.labelWidth,
31628
- labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,
31629
- _props$multiline = props.multiline,
31630
- multiline = _props$multiline === void 0 ? false : _props$multiline,
31631
- notched = props.notched,
31632
- _props$type = props.type,
31633
- type = _props$type === void 0 ? 'text' : _props$type,
31634
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "fullWidth", "inputComponent", "label", "labelWidth", "multiline", "notched", "type"]);
31635
 
31636
- return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
31637
- renderSuffix: function renderSuffix(state) {
31638
- return /*#__PURE__*/react.createElement(OutlinedInput_NotchedOutline, {
31639
- className: classes.notchedOutline,
31640
- label: label,
31641
- labelWidth: labelWidth,
31642
- notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
31643
- });
31644
- },
31645
- classes: (0,esm_extends/* default */.Z)({}, classes, {
31646
- root: (0,clsx_m/* default */.Z)(classes.root, classes.underline),
31647
- notchedOutline: null
31648
- }),
31649
- fullWidth: fullWidth,
31650
- inputComponent: inputComponent,
31651
- multiline: multiline,
31652
- ref: ref,
31653
- type: type
31654
- }, other));
31655
- });
31656
- false ? 0 : void 0;
31657
- OutlinedInput.muiName = 'Input';
31658
- /* harmony default export */ var OutlinedInput_OutlinedInput = ((0,withStyles/* default */.Z)(OutlinedInput_styles, {
31659
- name: 'MuiOutlinedInput'
31660
- })(OutlinedInput));
31661
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/useFormControl.js
31662
 
 
31663
 
31664
- function useFormControl_useFormControl() {
31665
- return react.useContext(FormControl_FormControlContext);
31666
- }
31667
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js
 
 
31668
 
31669
 
 
 
 
31670
 
 
 
31671
 
 
 
31672
 
 
 
 
31673
 
 
 
31674
 
 
 
 
31675
 
 
 
31676
 
31677
- var FormLabel_styles = function styles(theme) {
31678
- return {
31679
- /* Styles applied to the root element. */
31680
- root: (0,esm_extends/* default */.Z)({
31681
- color: theme.palette.text.secondary
31682
- }, theme.typography.body1, {
31683
- lineHeight: 1,
31684
- padding: 0,
31685
- '&$focused': {
31686
- color: theme.palette.primary.main
31687
- },
31688
- '&$disabled': {
31689
- color: theme.palette.text.disabled
31690
- },
31691
- '&$error': {
31692
- color: theme.palette.error.main
31693
- }
31694
- }),
31695
 
31696
- /* Styles applied to the root element if the color is secondary. */
31697
- colorSecondary: {
31698
- '&$focused': {
31699
- color: theme.palette.secondary.main
31700
- }
31701
- },
31702
 
31703
- /* Pseudo-class applied to the root element if `focused={true}`. */
31704
- focused: {},
 
 
 
 
 
 
31705
 
31706
- /* Pseudo-class applied to the root element if `disabled={true}`. */
31707
- disabled: {},
 
31708
 
31709
- /* Pseudo-class applied to the root element if `error={true}`. */
31710
- error: {},
 
 
 
 
 
31711
 
31712
- /* Pseudo-class applied to the root element if `filled={true}`. */
31713
- filled: {},
31714
 
31715
- /* Pseudo-class applied to the root element if `required={true}`. */
31716
- required: {},
 
31717
 
31718
- /* Styles applied to the asterisk element. */
31719
- asterisk: {
31720
- '&$error': {
31721
- color: theme.palette.error.main
31722
- }
 
 
 
 
 
 
 
 
 
31723
  }
31724
- };
31725
- };
31726
- var FormLabel = /*#__PURE__*/react.forwardRef(function FormLabel(props, ref) {
31727
- var children = props.children,
31728
- classes = props.classes,
31729
- className = props.className,
31730
- color = props.color,
31731
- _props$component = props.component,
31732
- Component = _props$component === void 0 ? 'label' : _props$component,
31733
- disabled = props.disabled,
31734
- error = props.error,
31735
- filled = props.filled,
31736
- focused = props.focused,
31737
- required = props.required,
31738
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "error", "filled", "focused", "required"]);
31739
 
31740
- var muiFormControl = useFormControl_useFormControl();
31741
- var fcs = formControlState({
31742
- props: props,
31743
- muiFormControl: muiFormControl,
31744
- states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']
31745
- });
31746
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
31747
- className: (0,clsx_m/* default */.Z)(classes.root, classes["color".concat((0,utils_capitalize/* default */.Z)(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required),
31748
- ref: ref
31749
- }, other), children, fcs.required && /*#__PURE__*/react.createElement("span", {
31750
- "aria-hidden": true,
31751
- className: (0,clsx_m/* default */.Z)(classes.asterisk, fcs.error && classes.error)
31752
- }, "\u2009", '*'));
31753
- });
31754
- false ? 0 : void 0;
31755
- /* harmony default export */ var FormLabel_FormLabel = ((0,withStyles/* default */.Z)(FormLabel_styles, {
31756
- name: 'MuiFormLabel'
31757
- })(FormLabel));
31758
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js
31759
 
 
 
 
31760
 
 
 
 
 
 
 
31761
 
 
 
 
 
 
31762
 
 
 
 
31763
 
 
 
 
31764
 
 
 
 
 
 
 
 
 
31765
 
 
 
 
 
31766
 
31767
 
31768
- var InputLabel_styles = function styles(theme) {
31769
- return {
31770
- /* Styles applied to the root element. */
31771
- root: {
31772
- display: 'block',
31773
- transformOrigin: 'top left'
31774
- },
31775
 
31776
- /* Pseudo-class applied to the root element if `focused={true}`. */
31777
- focused: {},
31778
 
31779
- /* Pseudo-class applied to the root element if `disabled={true}`. */
31780
- disabled: {},
 
31781
 
31782
- /* Pseudo-class applied to the root element if `error={true}`. */
31783
- error: {},
 
 
 
31784
 
31785
- /* Pseudo-class applied to the root element if `required={true}`. */
31786
- required: {},
 
 
 
 
31787
 
31788
- /* Pseudo-class applied to the asterisk element. */
31789
- asterisk: {},
31790
 
31791
- /* Styles applied to the root element if the component is a descendant of `FormControl`. */
31792
- formControl: {
31793
- position: 'absolute',
31794
- left: 0,
31795
- top: 0,
31796
- // slight alteration to spec spacing to match visual spec result
31797
- transform: 'translate(0, 24px) scale(1)'
31798
- },
31799
 
31800
- /* Styles applied to the root element if `margin="dense"`. */
31801
- marginDense: {
31802
- // Compensation for the `Input.inputDense` style.
31803
- transform: 'translate(0, 21px) scale(1)'
31804
- },
 
 
 
 
 
 
 
 
 
 
 
31805
 
31806
- /* Styles applied to the `input` element if `shrink={true}`. */
31807
- shrink: {
31808
- transform: 'translate(0, 1.5px) scale(0.75)',
31809
- transformOrigin: 'top left'
31810
- },
31811
 
31812
- /* Styles applied to the `input` element if `disableAnimation={false}`. */
31813
- animated: {
31814
- transition: theme.transitions.create(['color', 'transform'], {
31815
- duration: theme.transitions.duration.shorter,
31816
- easing: theme.transitions.easing.easeOut
31817
- })
31818
- },
31819
 
31820
- /* Styles applied to the root element if `variant="filled"`. */
31821
- filled: {
31822
- // Chrome's autofill feature gives the input field a yellow background.
31823
- // Since the input field is behind the label in the HTML tree,
31824
- // the input field is drawn last and hides the label with an opaque background color.
31825
- // zIndex: 1 will raise the label above opaque background-colors of input.
31826
- zIndex: 1,
31827
- pointerEvents: 'none',
31828
- transform: 'translate(12px, 20px) scale(1)',
31829
- '&$marginDense': {
31830
- transform: 'translate(12px, 17px) scale(1)'
31831
- },
31832
- '&$shrink': {
31833
- transform: 'translate(12px, 10px) scale(0.75)',
31834
- '&$marginDense': {
31835
- transform: 'translate(12px, 7px) scale(0.75)'
31836
- }
31837
- }
31838
- },
31839
 
31840
- /* Styles applied to the root element if `variant="outlined"`. */
31841
- outlined: {
31842
- // see comment above on filled.zIndex
31843
- zIndex: 1,
31844
- pointerEvents: 'none',
31845
- transform: 'translate(14px, 20px) scale(1)',
31846
- '&$marginDense': {
31847
- transform: 'translate(14px, 12px) scale(1)'
31848
- },
31849
- '&$shrink': {
31850
- transform: 'translate(14px, -6px) scale(0.75)'
31851
- }
31852
  }
31853
- };
31854
- };
31855
- var InputLabel = /*#__PURE__*/react.forwardRef(function InputLabel(props, ref) {
31856
- var classes = props.classes,
31857
- className = props.className,
31858
- _props$disableAnimati = props.disableAnimation,
31859
- disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,
31860
- margin = props.margin,
31861
- shrinkProp = props.shrink,
31862
- variant = props.variant,
31863
- other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "disableAnimation", "margin", "shrink", "variant"]);
31864
 
31865
- var muiFormControl = useFormControl_useFormControl();
31866
- var shrink = shrinkProp;
31867
 
31868
- if (typeof shrink === 'undefined' && muiFormControl) {
31869
- shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;
31870
- }
31871
 
31872
- var fcs = formControlState({
31873
- props: props,
31874
- muiFormControl: muiFormControl,
31875
- states: ['margin', 'variant']
31876
- });
31877
- return /*#__PURE__*/react.createElement(FormLabel_FormLabel, (0,esm_extends/* default */.Z)({
31878
- "data-shrink": shrink,
31879
- className: (0,clsx_m/* default */.Z)(classes.root, className, muiFormControl && classes.formControl, !disableAnimation && classes.animated, shrink && classes.shrink, fcs.margin === 'dense' && classes.marginDense, {
31880
- 'filled': classes.filled,
31881
- 'outlined': classes.outlined
31882
- }[fcs.variant]),
31883
- classes: {
31884
- focused: classes.focused,
31885
- disabled: classes.disabled,
31886
- error: classes.error,
31887
- required: classes.required,
31888
- asterisk: classes.asterisk
31889
- },
31890
- ref: ref
31891
- }, other));
31892
- });
31893
- false ? 0 : void 0;
31894
- /* harmony default export */ var InputLabel_InputLabel = ((0,withStyles/* default */.Z)(InputLabel_styles, {
31895
- name: 'MuiInputLabel'
31896
- })(InputLabel));
31897
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/FormControl.js
31898
 
 
 
 
 
31899
 
31900
 
 
 
 
 
31901
 
 
 
31902
 
 
 
31903
 
 
 
 
31904
 
 
31905
 
 
 
31906
 
 
 
 
 
31907
 
31908
- var FormControl_styles = {
31909
- /* Styles applied to the root element. */
31910
- root: {
31911
- display: 'inline-flex',
31912
- flexDirection: 'column',
31913
- position: 'relative',
31914
- // Reset fieldset default style.
31915
- minWidth: 0,
31916
- padding: 0,
31917
- margin: 0,
31918
- border: 0,
31919
- verticalAlign: 'top' // Fix alignment issue on Safari.
31920
 
31921
- },
 
 
 
31922
 
31923
- /* Styles applied to the root element if `margin="normal"`. */
31924
- marginNormal: {
31925
- marginTop: 16,
31926
- marginBottom: 8
31927
- },
31928
 
31929
- /* Styles applied to the root element if `margin="dense"`. */
31930
- marginDense: {
31931
- marginTop: 8,
31932
- marginBottom: 4
31933
- },
 
 
31934
 
31935
- /* Styles applied to the root element if `fullWidth={true}`. */
31936
- fullWidth: {
31937
- width: '100%'
31938
  }
31939
- };
31940
- /**
31941
- * Provides context such as filled/focused/error/required for form inputs.
31942
- * Relying on the context provides high flexibility and ensures that the state always stays
31943
- * consistent across the children of the `FormControl`.
31944
- * This context is used by the following components:
31945
- *
31946
- * - FormLabel
31947
- * - FormHelperText
31948
- * - Input
31949
- * - InputLabel
31950
- *
31951
- * You can find one composition example below and more going to [the demos](/components/text-fields/#components).
31952
- *
31953
- * ```jsx
31954
- * <FormControl>
31955
- * <InputLabel htmlFor="my-input">Email address</InputLabel>
31956
- * <Input id="my-input" aria-describedby="my-helper-text" />
31957
- * <FormHelperText id="my-helper-text">We'll never share your email.</FormHelperText>
31958
- * </FormControl>
31959
- * ```
31960
- *
31961
- * ⚠️Only one input can be used within a FormControl.
31962
- */
31963
 
31964
- var FormControl = /*#__PURE__*/react.forwardRef(function FormControl(props, ref) {
31965
- var children = props.children,
31966
- classes = props.classes,
31967
- className = props.className,
31968
- _props$color = props.color,
31969
- color = _props$color === void 0 ? 'primary' : _props$color,
31970
- _props$component = props.component,
31971
- Component = _props$component === void 0 ? 'div' : _props$component,
31972
- _props$disabled = props.disabled,
31973
- disabled = _props$disabled === void 0 ? false : _props$disabled,
31974
- _props$error = props.error,
31975
- error = _props$error === void 0 ? false : _props$error,
31976
- _props$fullWidth = props.fullWidth,
31977
- fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
31978
- visuallyFocused = props.focused,
31979
- _props$hiddenLabel = props.hiddenLabel,
31980
- hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,
31981
- _props$margin = props.margin,
31982
- margin = _props$margin === void 0 ? 'none' : _props$margin,
31983
- _props$required = props.required,
31984
- required = _props$required === void 0 ? false : _props$required,
31985
- size = props.size,
31986
- _props$variant = props.variant,
31987
- variant = _props$variant === void 0 ? 'standard' : _props$variant,
31988
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "error", "fullWidth", "focused", "hiddenLabel", "margin", "required", "size", "variant"]);
31989
 
31990
- var _React$useState = react.useState(function () {
31991
- // We need to iterate through the children and find the Input in order
31992
- // to fully support server-side rendering.
31993
- var initialAdornedStart = false;
31994
 
31995
- if (children) {
31996
- react.Children.forEach(children, function (child) {
31997
- if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
31998
- return;
31999
- }
32000
 
32001
- var input = (0,isMuiElement/* default */.Z)(child, ['Select']) ? child.props.input : child;
 
 
32002
 
32003
- if (input && isAdornedStart(input.props)) {
32004
- initialAdornedStart = true;
32005
- }
32006
- });
32007
  }
32008
 
32009
- return initialAdornedStart;
32010
- }),
32011
- adornedStart = _React$useState[0],
32012
- setAdornedStart = _React$useState[1];
32013
 
32014
- var _React$useState2 = react.useState(function () {
32015
- // We need to iterate through the children and find the Input in order
32016
- // to fully support server-side rendering.
32017
- var initialFilled = false;
32018
 
32019
- if (children) {
32020
- react.Children.forEach(children, function (child) {
32021
- if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
32022
- return;
32023
- }
32024
 
32025
- if (isFilled(child.props, true)) {
32026
- initialFilled = true;
32027
- }
32028
- });
 
 
 
 
 
32029
  }
32030
 
32031
- return initialFilled;
32032
- }),
32033
- filled = _React$useState2[0],
32034
- setFilled = _React$useState2[1];
32035
 
32036
- var _React$useState3 = react.useState(false),
32037
- _focused = _React$useState3[0],
32038
- setFocused = _React$useState3[1];
 
 
 
 
 
32039
 
32040
- var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;
 
 
32041
 
32042
- if (disabled && focused) {
32043
- setFocused(false);
 
32044
  }
32045
 
32046
- var registerEffect;
 
 
32047
 
32048
- if (false) { var registeredInput; }
 
 
32049
 
32050
- var onFilled = react.useCallback(function () {
32051
- setFilled(true);
32052
- }, []);
32053
- var onEmpty = react.useCallback(function () {
32054
- setFilled(false);
32055
- }, []);
32056
- var childContext = {
32057
- adornedStart: adornedStart,
32058
- setAdornedStart: setAdornedStart,
32059
- color: color,
32060
- disabled: disabled,
32061
- error: error,
32062
- filled: filled,
32063
- focused: focused,
32064
- fullWidth: fullWidth,
32065
- hiddenLabel: hiddenLabel,
32066
- margin: (size === 'small' ? 'dense' : undefined) || margin,
32067
- onBlur: function onBlur() {
32068
- setFocused(false);
32069
- },
32070
- onEmpty: onEmpty,
32071
- onFilled: onFilled,
32072
- onFocus: function onFocus() {
32073
- setFocused(true);
32074
- },
32075
- registerEffect: registerEffect,
32076
- required: required,
32077
- variant: variant
32078
- };
32079
- return /*#__PURE__*/react.createElement(FormControl_FormControlContext.Provider, {
32080
- value: childContext
32081
- }, /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
32082
- className: (0,clsx_m/* default */.Z)(classes.root, className, margin !== 'none' && classes["margin".concat((0,utils_capitalize/* default */.Z)(margin))], fullWidth && classes.fullWidth),
32083
- ref: ref
32084
- }, other), children));
32085
- });
32086
- false ? 0 : void 0;
32087
- /* harmony default export */ var FormControl_FormControl = ((0,withStyles/* default */.Z)(FormControl_styles, {
32088
- name: 'MuiFormControl'
32089
- })(FormControl));
32090
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js
32091
 
 
 
 
32092
 
 
 
 
 
 
 
32093
 
 
 
 
32094
 
 
 
 
32095
 
 
 
 
 
 
 
 
 
32096
 
 
 
 
 
32097
 
 
 
32098
 
32099
- var FormHelperText_styles = function styles(theme) {
32100
- return {
32101
- /* Styles applied to the root element. */
32102
- root: (0,esm_extends/* default */.Z)({
32103
- color: theme.palette.text.secondary
32104
- }, theme.typography.caption, {
32105
- textAlign: 'left',
32106
- marginTop: 3,
32107
- margin: 0,
32108
- '&$disabled': {
32109
- color: theme.palette.text.disabled
32110
- },
32111
- '&$error': {
32112
- color: theme.palette.error.main
32113
- }
32114
- }),
32115
 
32116
- /* Pseudo-class applied to the root element if `error={true}`. */
32117
- error: {},
 
 
 
 
32118
 
32119
- /* Pseudo-class applied to the root element if `disabled={true}`. */
32120
- disabled: {},
32121
 
32122
- /* Styles applied to the root element if `margin="dense"`. */
32123
- marginDense: {
32124
- marginTop: 4
32125
- },
32126
 
32127
- /* Styles applied to the root element if `variant="filled"` or `variant="outlined"`. */
32128
- contained: {
32129
- marginLeft: 14,
32130
- marginRight: 14
32131
- },
32132
 
32133
- /* Pseudo-class applied to the root element if `focused={true}`. */
32134
- focused: {},
 
 
32135
 
32136
- /* Pseudo-class applied to the root element if `filled={true}`. */
32137
- filled: {},
 
 
 
 
 
32138
 
32139
- /* Pseudo-class applied to the root element if `required={true}`. */
32140
- required: {}
32141
- };
32142
- };
32143
- var FormHelperText = /*#__PURE__*/react.forwardRef(function FormHelperText(props, ref) {
32144
- var children = props.children,
32145
- classes = props.classes,
32146
- className = props.className,
32147
- _props$component = props.component,
32148
- Component = _props$component === void 0 ? 'p' : _props$component,
32149
- disabled = props.disabled,
32150
- error = props.error,
32151
- filled = props.filled,
32152
- focused = props.focused,
32153
- margin = props.margin,
32154
- required = props.required,
32155
- variant = props.variant,
32156
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"]);
32157
 
32158
- var muiFormControl = useFormControl_useFormControl();
32159
- var fcs = formControlState({
32160
- props: props,
32161
- muiFormControl: muiFormControl,
32162
- states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']
32163
- });
32164
- return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
32165
- className: (0,clsx_m/* default */.Z)(classes.root, (fcs.variant === 'filled' || fcs.variant === 'outlined') && classes.contained, className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required, fcs.margin === 'dense' && classes.marginDense),
32166
- ref: ref
32167
- }, other), children === ' ' ?
32168
- /*#__PURE__*/
32169
- // eslint-disable-next-line react/no-danger
32170
- react.createElement("span", {
32171
- dangerouslySetInnerHTML: {
32172
- __html: '&#8203;'
32173
  }
32174
- }) : children);
32175
- });
32176
- false ? 0 : void 0;
32177
- /* harmony default export */ var FormHelperText_FormHelperText = ((0,withStyles/* default */.Z)(FormHelperText_styles, {
32178
- name: 'MuiFormHelperText'
32179
- })(FormHelperText));
32180
- // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js
32181
- var mergeClasses = __webpack_require__(65835);
32182
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Grow/Grow.js
32183
 
 
 
 
 
 
 
32184
 
 
 
 
 
 
 
 
 
32185
 
 
 
 
32186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32187
 
 
 
 
 
32188
 
 
 
32189
 
 
 
32190
 
 
 
 
32191
 
 
 
32192
 
32193
- function getScale(value) {
32194
- return "scale(".concat(value, ", ").concat(Math.pow(value, 2), ")");
32195
- }
 
 
 
32196
 
32197
- var Grow_styles = {
32198
- entering: {
32199
- opacity: 1,
32200
- transform: getScale(1)
32201
- },
32202
- entered: {
32203
- opacity: 1,
32204
- transform: 'none'
32205
  }
32206
- };
32207
- /**
32208
- * The Grow transition is used by the [Tooltip](/components/tooltips/) and
32209
- * [Popover](/components/popover/) components.
32210
- * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
32211
- */
32212
-
32213
- var Grow = /*#__PURE__*/react.forwardRef(function Grow(props, ref) {
32214
- var children = props.children,
32215
- _props$disableStrictM = props.disableStrictModeCompat,
32216
- disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
32217
- inProp = props.in,
32218
- onEnter = props.onEnter,
32219
- onEntered = props.onEntered,
32220
- onEntering = props.onEntering,
32221
- onExit = props.onExit,
32222
- onExited = props.onExited,
32223
- onExiting = props.onExiting,
32224
- style = props.style,
32225
- _props$timeout = props.timeout,
32226
- timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,
32227
- _props$TransitionComp = props.TransitionComponent,
32228
- TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
32229
- other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
32230
 
32231
- var timer = react.useRef();
32232
- var autoTimeout = react.useRef();
32233
- var theme = useTheme_useTheme();
32234
- var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
32235
- var nodeRef = react.useRef(null);
32236
- var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
32237
- var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
 
 
32238
 
32239
- var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
32240
- return function (nodeOrAppearing, maybeAppearing) {
32241
- if (callback) {
32242
- var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
32243
- _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
32244
- node = _ref2[0],
32245
- isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
32246
 
 
 
32247
 
32248
- if (isAppearing === undefined) {
32249
- callback(node);
32250
- } else {
32251
- callback(node, isAppearing);
32252
  }
32253
- }
32254
- };
32255
- };
32256
 
32257
- var handleEntering = normalizedTransitionCallback(onEntering);
32258
- var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
32259
- reflow(node); // So the animation always start from the start.
 
 
32260
 
32261
- var _getTransitionProps = getTransitionProps({
32262
- style: style,
32263
- timeout: timeout
32264
- }, {
32265
- mode: 'enter'
32266
- }),
32267
- transitionDuration = _getTransitionProps.duration,
32268
- delay = _getTransitionProps.delay;
32269
 
32270
- var duration;
 
32271
 
32272
- if (timeout === 'auto') {
32273
- duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
32274
- autoTimeout.current = duration;
32275
- } else {
32276
- duration = transitionDuration;
32277
  }
32278
 
32279
- node.style.transition = [theme.transitions.create('opacity', {
32280
- duration: duration,
32281
- delay: delay
32282
- }), theme.transitions.create('transform', {
32283
- duration: duration * 0.666,
32284
- delay: delay
32285
- })].join(',');
 
 
 
 
32286
 
32287
- if (onEnter) {
32288
- onEnter(node, isAppearing);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32289
  }
32290
- });
32291
- var handleEntered = normalizedTransitionCallback(onEntered);
32292
- var handleExiting = normalizedTransitionCallback(onExiting);
32293
- var handleExit = normalizedTransitionCallback(function (node) {
32294
- var _getTransitionProps2 = getTransitionProps({
32295
- style: style,
32296
- timeout: timeout
32297
- }, {
32298
- mode: 'exit'
32299
- }),
32300
- transitionDuration = _getTransitionProps2.duration,
32301
- delay = _getTransitionProps2.delay;
32302
-
32303
- var duration;
32304
 
32305
- if (timeout === 'auto') {
32306
- duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
32307
- autoTimeout.current = duration;
32308
- } else {
32309
- duration = transitionDuration;
32310
- }
32311
 
32312
- node.style.transition = [theme.transitions.create('opacity', {
32313
- duration: duration,
32314
- delay: delay
32315
- }), theme.transitions.create('transform', {
32316
- duration: duration * 0.666,
32317
- delay: delay || duration * 0.333
32318
- })].join(',');
32319
- node.style.opacity = '0';
32320
- node.style.transform = getScale(0.75);
32321
 
32322
- if (onExit) {
32323
- onExit(node);
32324
- }
32325
- });
32326
- var handleExited = normalizedTransitionCallback(onExited);
32327
 
32328
- var addEndListener = function addEndListener(nodeOrNext, maybeNext) {
32329
- var next = enableStrictModeCompat ? nodeOrNext : maybeNext;
 
32330
 
32331
- if (timeout === 'auto') {
32332
- timer.current = setTimeout(next, autoTimeout.current || 0);
32333
- }
32334
- };
32335
 
32336
- react.useEffect(function () {
32337
- return function () {
32338
- clearTimeout(timer.current);
32339
- };
32340
- }, []);
32341
- return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
32342
- appear: true,
32343
- in: inProp,
32344
- nodeRef: enableStrictModeCompat ? nodeRef : undefined,
32345
- onEnter: handleEnter,
32346
- onEntered: handleEntered,
32347
- onEntering: handleEntering,
32348
- onExit: handleExit,
32349
- onExited: handleExited,
32350
- onExiting: handleExiting,
32351
- addEndListener: addEndListener,
32352
- timeout: timeout === 'auto' ? null : timeout
32353
- }, other), function (state, childProps) {
32354
- return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
32355
- style: (0,esm_extends/* default */.Z)({
32356
- opacity: 0,
32357
- transform: getScale(0.75),
32358
- visibility: state === 'exited' && !inProp ? 'hidden' : undefined
32359
- }, Grow_styles[state], style, children.props.style),
32360
- ref: handleRef
32361
- }, childProps));
32362
- });
32363
- });
32364
- false ? 0 : void 0;
32365
- Grow.muiSupportAuto = true;
32366
- /* harmony default export */ var Grow_Grow = (Grow);
32367
- ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Popover/Popover.js
32368
 
32369
 
 
 
 
 
32370
 
32371
 
 
 
 
 
32372
 
 
 
32373
 
 
 
 
32374
 
 
 
 
32375
 
 
 
32376
 
 
 
 
32377
 
 
 
 
 
32378
 
 
32379
 
 
 
 
 
32380
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32381
 
 
 
 
32382
 
32383
- function getOffsetTop(rect, vertical) {
32384
- var offset = 0;
 
 
 
 
 
 
 
32385
 
32386
- if (typeof vertical === 'number') {
32387
- offset = vertical;
32388
- } else if (vertical === 'center') {
32389
- offset = rect.height / 2;
32390
- } else if (vertical === 'bottom') {
32391
- offset = rect.height;
32392
- }
32393
 
32394
- return offset;
32395
- }
32396
- function getOffsetLeft(rect, horizontal) {
32397
- var offset = 0;
 
 
 
 
 
 
 
 
 
 
32398
 
32399
- if (typeof horizontal === 'number') {
32400
- offset = horizontal;
32401
- } else if (horizontal === 'center') {
32402
- offset = rect.width / 2;
32403
- } else if (horizontal === 'right') {
32404
- offset = rect.width;
32405
- }
32406
 
32407
- return offset;
32408
- }
32409
 
32410
- function getTransformOriginValue(transformOrigin) {
32411
- return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {
32412
- return typeof n === 'number' ? "".concat(n, "px") : n;
32413
- }).join(' ');
32414
- } // Sum the scrollTop between two elements.
 
32415
 
32416
 
32417
- function Popover_getScrollParent(parent, child) {
32418
- var element = child;
32419
- var scrollTop = 0;
32420
 
32421
- while (element && element !== parent) {
32422
- element = element.parentElement;
32423
- scrollTop += element.scrollTop;
32424
- }
32425
 
32426
- return scrollTop;
32427
- }
 
32428
 
32429
- function getAnchorEl(anchorEl) {
32430
- return typeof anchorEl === 'function' ? anchorEl() : anchorEl;
32431
- }
32432
 
32433
- var Popover_styles = {
32434
- /* Styles applied to the root element. */
32435
- root: {},
32436
 
32437
- /* Styles applied to the `Paper` component. */
32438
- paper: {
32439
- position: 'absolute',
32440
- overflowY: 'auto',
32441
- overflowX: 'hidden',
32442
- // So we see the popover when it's empty.
32443
- // It's most likely on issue on userland.
32444
- minWidth: 16,
32445
- minHeight: 16,
32446
- maxWidth: 'calc(100% - 32px)',
32447
- maxHeight: 'calc(100% - 32px)',
32448
- // We disable the focus ring for mouse, touch and keyboard users.
32449
- outline: 0
32450
  }
32451
- };
32452
- var Popover = /*#__PURE__*/react.forwardRef(function Popover(props, ref) {
32453
- var action = props.action,
32454
- anchorEl = props.anchorEl,
32455
- _props$anchorOrigin = props.anchorOrigin,
32456
- anchorOrigin = _props$anchorOrigin === void 0 ? {
32457
- vertical: 'top',
32458
- horizontal: 'left'
32459
- } : _props$anchorOrigin,
32460
- anchorPosition = props.anchorPosition,
32461
- _props$anchorReferenc = props.anchorReference,
32462
- anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,
32463
- children = props.children,
32464
- classes = props.classes,
32465
- className = props.className,
32466
- containerProp = props.container,
32467
- _props$elevation = props.elevation,
32468
- elevation = _props$elevation === void 0 ? 8 : _props$elevation,
32469
- getContentAnchorEl = props.getContentAnchorEl,
32470
- _props$marginThreshol = props.marginThreshold,
32471
- marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,
32472
- onEnter = props.onEnter,
32473
- onEntered = props.onEntered,
32474
- onEntering = props.onEntering,
32475
- onExit = props.onExit,
32476
- onExited = props.onExited,
32477
- onExiting = props.onExiting,
32478
- open = props.open,
32479
- _props$PaperProps = props.PaperProps,
32480
- PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
32481
- _props$transformOrigi = props.transformOrigin,
32482
- transformOrigin = _props$transformOrigi === void 0 ? {
32483
- vertical: 'top',
32484
- horizontal: 'left'
32485
- } : _props$transformOrigi,
32486
- _props$TransitionComp = props.TransitionComponent,
32487
- TransitionComponent = _props$TransitionComp === void 0 ? Grow_Grow : _props$TransitionComp,
32488
- _props$transitionDura = props.transitionDuration,
32489
- transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,
32490
- _props$TransitionProp = props.TransitionProps,
32491
- TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,
32492
- other = (0,objectWithoutProperties/* default */.Z)(props, ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "classes", "className", "container", "elevation", "getContentAnchorEl", "marginThreshold", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"]);
32493
 
32494
- var paperRef = react.useRef(); // Returns the top/left offset of the position
32495
- // to attach to on the anchor element (or body if none is provided)
 
 
32496
 
32497
- var getAnchorOffset = react.useCallback(function (contentAnchorOffset) {
32498
- if (anchorReference === 'anchorPosition') {
32499
- if (false) {}
 
 
 
 
 
32500
 
32501
- return anchorPosition;
32502
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32503
 
32504
- var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover
 
 
 
32505
 
32506
- var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : (0,ownerDocument/* default */.Z)(paperRef.current).body;
32507
- var anchorRect = anchorElement.getBoundingClientRect();
 
 
32508
 
32509
- if (false) { var box; }
 
 
 
 
32510
 
32511
- var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';
32512
- return {
32513
- top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),
32514
- left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)
32515
  };
32516
- }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided
32517
 
32518
- var getContentAnchorOffset = react.useCallback(function (element) {
32519
- var contentAnchorOffset = 0;
 
 
 
 
 
32520
 
32521
- if (getContentAnchorEl && anchorReference === 'anchorEl') {
32522
- var contentAnchorEl = getContentAnchorEl(element);
 
 
 
 
 
32523
 
32524
- if (contentAnchorEl && element.contains(contentAnchorEl)) {
32525
- var scrollTop = Popover_getScrollParent(element, contentAnchorEl);
32526
- contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;
32527
- } // != the default value
32528
 
 
 
 
 
 
 
 
 
 
32529
 
 
 
32530
  if (false) {}
 
 
32531
  }
32532
 
32533
- return contentAnchorOffset;
32534
- }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element
32535
- // and taking the content anchor offset into account if in use
32536
 
32537
- var getTransformOrigin = react.useCallback(function (elemRect) {
32538
- var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
32539
  return {
32540
- vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,
32541
- horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32542
  };
32543
- }, [transformOrigin.horizontal, transformOrigin.vertical]);
32544
- var getPositioningStyle = react.useCallback(function (element) {
32545
- // Check if the parent has requested anchoring on an inner content node
32546
- var contentAnchorOffset = getContentAnchorOffset(element);
32547
- var elemRect = {
32548
- width: element.offsetWidth,
32549
- height: element.offsetHeight
32550
- }; // Get the transform origin point on the element itself
32551
 
32552
- var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);
 
 
 
 
 
32553
 
32554
- if (anchorReference === 'none') {
32555
- return {
32556
- top: null,
32557
- left: null,
32558
- transformOrigin: getTransformOriginValue(elemTransformOrigin)
32559
- };
32560
- } // Get the offset of of the anchoring element
32561
 
 
 
 
 
 
 
 
 
32562
 
32563
- var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning
 
 
32564
 
32565
- var top = anchorOffset.top - elemTransformOrigin.vertical;
32566
- var left = anchorOffset.left - elemTransformOrigin.horizontal;
32567
- var bottom = top + elemRect.height;
32568
- var right = left + elemRect.width; // Use the parent window of the anchorEl if provided
32569
 
32570
- var containerWindow = (0,ownerWindow/* default */.Z)(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account
 
 
 
 
 
 
 
 
 
32571
 
32572
- var heightThreshold = containerWindow.innerHeight - marginThreshold;
32573
- var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting
 
32574
 
32575
- if (top < marginThreshold) {
32576
- var diff = top - marginThreshold;
32577
- top -= diff;
32578
- elemTransformOrigin.vertical += diff;
32579
- } else if (bottom > heightThreshold) {
32580
- var _diff = bottom - heightThreshold;
32581
 
32582
- top -= _diff;
32583
- elemTransformOrigin.vertical += _diff;
32584
  }
32585
 
32586
- if (false) {} // Check if the horizontal axis needs shifting
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32587
 
 
 
 
 
 
 
32588
 
32589
- if (left < marginThreshold) {
32590
- var _diff2 = left - marginThreshold;
 
 
32591
 
32592
- left -= _diff2;
32593
- elemTransformOrigin.horizontal += _diff2;
32594
- } else if (right > widthThreshold) {
32595
- var _diff3 = right - widthThreshold;
 
 
 
 
 
 
 
 
 
 
 
 
32596
 
32597
- left -= _diff3;
32598
- elemTransformOrigin.horizontal += _diff3;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32599
  }
32600
 
32601
  return {
32602
- top: "".concat(Math.round(top), "px"),
32603
- left: "".concat(Math.round(left), "px"),
32604
- transformOrigin: getTransformOriginValue(elemTransformOrigin)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  *
10
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
11
  *
12
+ * (C) 2017-2022 Buttonizer v2.6.6
13
  *
14
  */
15
  /*!
23
  *
24
  * Buttonizer is Freemium software. The free version (build) does not contain premium functionality.
25
  *
26
+ * (C) 2017-2022 Buttonizer v2.6.6
27
  *
28
  */
29
  /******/ (function() { // webpackBootstrap
2808
 
2809
  /***/ }),
2810
 
2811
+ /***/ 89039:
2812
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2813
+
2814
+ "use strict";
2815
+ var __webpack_unused_export__;
2816
+
2817
+
2818
+ var _interopRequireDefault = __webpack_require__(95318);
2819
+
2820
+ var _interopRequireWildcard = __webpack_require__(20862);
2821
+
2822
+ __webpack_unused_export__ = ({
2823
+ value: true
2824
+ });
2825
+ exports.Z = void 0;
2826
+
2827
+ var React = _interopRequireWildcard(__webpack_require__(67294));
2828
+
2829
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(2108));
2830
+
2831
+ var _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {
2832
+ d: "M7 10l5 5 5-5z"
2833
+ }), 'ArrowDropDown');
2834
+
2835
+ exports.Z = _default;
2836
+
2837
+ /***/ }),
2838
+
2839
+ /***/ 66521:
2840
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2841
+
2842
+ "use strict";
2843
+ var __webpack_unused_export__;
2844
+
2845
+
2846
+ var _interopRequireDefault = __webpack_require__(95318);
2847
+
2848
+ var _interopRequireWildcard = __webpack_require__(20862);
2849
+
2850
+ __webpack_unused_export__ = ({
2851
+ value: true
2852
+ });
2853
+ exports.Z = void 0;
2854
+
2855
+ var React = _interopRequireWildcard(__webpack_require__(67294));
2856
+
2857
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(2108));
2858
+
2859
+ var _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {
2860
+ d: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"
2861
+ }), 'Code');
2862
+
2863
+ exports.Z = _default;
2864
+
2865
+ /***/ }),
2866
+
2867
+ /***/ 64566:
2868
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2869
+
2870
+ "use strict";
2871
+ var __webpack_unused_export__;
2872
+
2873
+
2874
+ var _interopRequireDefault = __webpack_require__(95318);
2875
+
2876
+ var _interopRequireWildcard = __webpack_require__(20862);
2877
+
2878
+ __webpack_unused_export__ = ({
2879
+ value: true
2880
+ });
2881
+ exports.Z = void 0;
2882
+
2883
+ var React = _interopRequireWildcard(__webpack_require__(67294));
2884
+
2885
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(2108));
2886
+
2887
+ var _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {
2888
+ d: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"
2889
+ }), 'ExpandMore');
2890
+
2891
+ exports.Z = _default;
2892
+
2893
+ /***/ }),
2894
+
2895
+ /***/ 87239:
2896
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2897
+
2898
+ "use strict";
2899
+ var __webpack_unused_export__;
2900
+
2901
+
2902
+ var _interopRequireDefault = __webpack_require__(95318);
2903
+
2904
+ var _interopRequireWildcard = __webpack_require__(20862);
2905
+
2906
+ __webpack_unused_export__ = ({
2907
+ value: true
2908
+ });
2909
+ exports.Z = void 0;
2910
+
2911
+ var React = _interopRequireWildcard(__webpack_require__(67294));
2912
+
2913
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(2108));
2914
+
2915
+ var _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {
2916
+ d: "M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm-1 4l6 6v10c0 1.1-.9 2-2 2H7.99C6.89 23 6 22.1 6 21l.01-14c0-1.1.89-2 1.99-2h7zm-1 7h5.5L14 6.5V12z"
2917
+ }), 'FileCopy');
2918
+
2919
+ exports.Z = _default;
2920
+
2921
+ /***/ }),
2922
+
2923
  /***/ 89974:
2924
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2925
 
3004
 
3005
  /***/ }),
3006
 
3007
+ /***/ 9969:
3008
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3009
+
3010
+ "use strict";
3011
+ var __webpack_unused_export__;
3012
+
3013
+
3014
+ var _interopRequireDefault = __webpack_require__(95318);
3015
+
3016
+ var _interopRequireWildcard = __webpack_require__(20862);
3017
+
3018
+ __webpack_unused_export__ = ({
3019
+ value: true
3020
+ });
3021
+ exports.Z = void 0;
3022
+
3023
+ var React = _interopRequireWildcard(__webpack_require__(67294));
3024
+
3025
+ var _createSvgIcon = _interopRequireDefault(__webpack_require__(2108));
3026
+
3027
+ var _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement("path", {
3028
+ d: "M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"
3029
+ }), 'Settings');
3030
+
3031
+ exports.Z = _default;
3032
+
3033
+ /***/ }),
3034
+
3035
  /***/ 79015:
3036
  /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3037
 
7751
 
7752
  /***/ }),
7753
 
7754
+ /***/ 68324:
7755
  /***/ (function(__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) {
7756
 
7757
  "use strict";
14937
  draftStore.additional_permissions = action.payload.additional_permissions;
14938
  draftStore._premiumCode = action.payload.premium_code;
14939
  draftStore.domain = action.payload.info ? action.payload.info.domain : null;
14940
+ draftStore.identifier = action.payload.identifier ? action.payload.identifier : null;
14941
  break;
14942
  }
14943
 
17127
  "data-testid": "device:button-group"
17128
  }, devices.map(function (device, key) {
17129
  return /*#__PURE__*/react.createElement(esm_Button_Button, {
17130
+ color: currentDevicePreview === device.type ? "secondary" : "primary",
17131
  onClick: function onClick() {
17132
  return setDevice(device.type);
17133
  },
17146
  return setShowDeviceViews(true);
17147
  },
17148
  className: "current-device",
17149
+ "data-testid": "device:current-device"
17150
  }, showDeviceViews === false && chosenDeviceView()));
17151
  }
17152
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/debounce.js
17153
+ var debounce = __webpack_require__(79437);
17154
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerDocument.js
17155
+ var ownerDocument = __webpack_require__(30626);
17156
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/ownerWindow.js
17157
+ var ownerWindow = __webpack_require__(80713);
17158
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/createChainedFunction.js
17159
+ var createChainedFunction = __webpack_require__(82568);
17160
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/useTheme/useTheme.js
17161
+ var useTheme = __webpack_require__(159);
17162
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/getThemeProps/getThemeProps.js
17163
+ var getThemeProps = __webpack_require__(93869);
17164
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/setRef.js
17165
+ var setRef = __webpack_require__(34236);
17166
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Portal/Portal.js
17167
 
 
17168
 
 
 
 
17169
 
 
 
 
 
 
 
 
17170
 
 
 
 
17171
 
 
 
 
 
 
 
 
 
 
 
 
 
17172
 
 
 
 
 
 
 
 
 
 
17173
 
17174
+ function getContainer(container) {
17175
+ container = typeof container === 'function' ? container() : container; // #StrictMode ready
 
 
17176
 
17177
+ return react_dom.findDOMNode(container);
17178
+ }
 
 
 
 
 
 
 
17179
 
17180
+ var Portal_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
17181
+ /**
17182
+ * Portals provide a first-class way to render children into a DOM node
17183
+ * that exists outside the DOM hierarchy of the parent component.
17184
+ */
17185
 
17186
+ var Portal = /*#__PURE__*/react.forwardRef(function Portal(props, ref) {
17187
+ var children = props.children,
17188
+ container = props.container,
17189
+ _props$disablePortal = props.disablePortal,
17190
+ disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
17191
+ onRendered = props.onRendered;
17192
 
17193
+ var _React$useState = react.useState(null),
17194
+ mountNode = _React$useState[0],
17195
+ setMountNode = _React$useState[1];
 
 
17196
 
17197
+ var handleRef = (0,useForkRef/* default */.Z)( /*#__PURE__*/react.isValidElement(children) ? children.ref : null, ref);
17198
+ Portal_useEnhancedEffect(function () {
17199
+ if (!disablePortal) {
17200
+ setMountNode(getContainer(container) || document.body);
17201
+ }
17202
+ }, [container, disablePortal]);
17203
+ Portal_useEnhancedEffect(function () {
17204
+ if (mountNode && !disablePortal) {
17205
+ (0,setRef/* default */.Z)(ref, mountNode);
17206
+ return function () {
17207
+ (0,setRef/* default */.Z)(ref, null);
17208
  };
17209
  }
 
 
 
 
 
 
 
 
 
 
 
17210
 
17211
+ return undefined;
17212
+ }, [ref, mountNode, disablePortal]);
17213
+ Portal_useEnhancedEffect(function () {
17214
+ if (onRendered && (mountNode || disablePortal)) {
17215
+ onRendered();
17216
+ }
17217
+ }, [onRendered, mountNode, disablePortal]);
17218
 
17219
+ if (disablePortal) {
17220
+ if ( /*#__PURE__*/react.isValidElement(children)) {
17221
+ return /*#__PURE__*/react.cloneElement(children, {
17222
+ ref: handleRef
17223
+ });
17224
+ }
17225
 
17226
+ return children;
17227
+ }
 
17228
 
17229
+ return mountNode ? /*#__PURE__*/react_dom.createPortal(children, mountNode) : mountNode;
17230
+ });
17231
+ false ? 0 : void 0;
 
 
17232
 
17233
+ if (false) {}
 
 
17234
 
17235
+ /* harmony default export */ var Portal_Portal = (Portal);
17236
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/zIndex.js
17237
+ var zIndex = __webpack_require__(92781);
17238
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/utils/getScrollbarSize.js
17239
+ // A change of the browser zoom change the scrollbar size.
17240
+ // Credit https://github.com/twbs/bootstrap/blob/3ffe3a5d82f6f561b82ff78d82b32a7d14aed558/js/src/modal.js#L512-L519
17241
+ function getScrollbarSize() {
17242
+ var scrollDiv = document.createElement('div');
17243
+ scrollDiv.style.width = '99px';
17244
+ scrollDiv.style.height = '99px';
17245
+ scrollDiv.style.position = 'absolute';
17246
+ scrollDiv.style.top = '-9999px';
17247
+ scrollDiv.style.overflow = 'scroll';
17248
+ document.body.appendChild(scrollDiv);
17249
+ var scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
17250
+ document.body.removeChild(scrollDiv);
17251
+ return scrollbarSize;
17252
+ }
17253
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/ModalManager.js
17254
 
 
 
 
 
 
 
 
 
17255
 
 
 
17256
 
17257
 
 
 
 
 
 
 
 
 
 
17258
 
17259
+ // Is a vertical scrollbar displayed?
 
17260
 
17261
+ function isOverflowing(container) {
17262
+ var doc = (0,ownerDocument/* default */.Z)(container);
17263
 
17264
+ if (doc.body === container) {
17265
+ return (0,ownerWindow/* default */.Z)(doc).innerWidth > doc.documentElement.clientWidth;
17266
+ }
17267
 
17268
+ return container.scrollHeight > container.clientHeight;
17269
+ }
17270
 
17271
+ function ariaHidden(node, show) {
17272
+ if (show) {
17273
+ node.setAttribute('aria-hidden', 'true');
17274
+ } else {
17275
+ node.removeAttribute('aria-hidden');
17276
+ }
17277
+ }
17278
 
17279
+ function getPaddingRight(node) {
17280
+ return parseInt(window.getComputedStyle(node)['padding-right'], 10) || 0;
17281
+ }
17282
 
17283
+ function ariaHiddenSiblings(container, mountNode, currentNode) {
17284
+ var nodesToExclude = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
17285
+ var show = arguments.length > 4 ? arguments[4] : undefined;
17286
+ var blacklist = [mountNode, currentNode].concat((0,toConsumableArray/* default */.Z)(nodesToExclude));
17287
+ var blacklistTagNames = ['TEMPLATE', 'SCRIPT', 'STYLE'];
17288
+ [].forEach.call(container.children, function (node) {
17289
+ if (node.nodeType === 1 && blacklist.indexOf(node) === -1 && blacklistTagNames.indexOf(node.tagName) === -1) {
17290
+ ariaHidden(node, show);
17291
+ }
17292
+ });
17293
+ }
 
 
 
 
 
 
 
17294
 
17295
+ function findIndexOf(containerInfo, callback) {
17296
+ var idx = -1;
17297
+ containerInfo.some(function (item, index) {
17298
+ if (callback(item)) {
17299
+ idx = index;
17300
+ return true;
17301
  }
17302
 
17303
+ return false;
17304
+ });
17305
+ return idx;
 
 
 
 
 
 
17306
  }
17307
 
17308
+ function handleContainer(containerInfo, props) {
17309
+ var restoreStyle = [];
17310
+ var restorePaddings = [];
17311
+ var container = containerInfo.container;
17312
+ var fixedNodes;
 
 
 
 
17313
 
17314
+ if (!props.disableScrollLock) {
17315
+ if (isOverflowing(container)) {
17316
+ // Compute the size before applying overflow hidden to avoid any scroll jumps.
17317
+ var scrollbarSize = getScrollbarSize();
17318
+ restoreStyle.push({
17319
+ value: container.style.paddingRight,
17320
+ key: 'padding-right',
17321
+ el: container
17322
+ }); // Use computed style, here to get the real padding to add our scrollbar width.
17323
 
17324
+ container.style['padding-right'] = "".concat(getPaddingRight(container) + scrollbarSize, "px"); // .mui-fixed is a global helper.
17325
 
17326
+ fixedNodes = (0,ownerDocument/* default */.Z)(container).querySelectorAll('.mui-fixed');
17327
+ [].forEach.call(fixedNodes, function (node) {
17328
+ restorePaddings.push(node.style.paddingRight);
17329
+ node.style.paddingRight = "".concat(getPaddingRight(node) + scrollbarSize, "px");
17330
+ });
17331
+ } // Improve Gatsby support
17332
+ // https://css-tricks.com/snippets/css/force-vertical-scrollbar/
17333
 
17334
 
17335
+ var parent = container.parentElement;
17336
+ var scrollContainer = parent.nodeName === 'HTML' && window.getComputedStyle(parent)['overflow-y'] === 'scroll' ? parent : container; // Block the scroll even if no scrollbar is visible to account for mobile keyboard
17337
+ // screensize shrink.
17338
 
17339
+ restoreStyle.push({
17340
+ value: scrollContainer.style.overflow,
17341
+ key: 'overflow',
17342
+ el: scrollContainer
17343
+ });
17344
+ scrollContainer.style.overflow = 'hidden';
17345
+ }
17346
 
17347
+ var restore = function restore() {
17348
+ if (fixedNodes) {
17349
+ [].forEach.call(fixedNodes, function (node, i) {
17350
+ if (restorePaddings[i]) {
17351
+ node.style.paddingRight = restorePaddings[i];
17352
+ } else {
17353
+ node.style.removeProperty('padding-right');
17354
+ }
17355
+ });
17356
+ }
17357
 
17358
+ restoreStyle.forEach(function (_ref) {
17359
+ var value = _ref.value,
17360
+ el = _ref.el,
17361
+ key = _ref.key;
17362
 
17363
+ if (value) {
17364
+ el.style.setProperty(key, value);
17365
+ } else {
17366
+ el.style.removeProperty(key);
17367
+ }
17368
+ });
17369
+ };
17370
 
17371
+ return restore;
 
 
17372
  }
17373
 
17374
+ function getHiddenSiblings(container) {
17375
+ var hiddenSiblings = [];
17376
+ [].forEach.call(container.children, function (node) {
17377
+ if (node.getAttribute && node.getAttribute('aria-hidden') === 'true') {
17378
+ hiddenSiblings.push(node);
17379
+ }
17380
+ });
17381
+ return hiddenSiblings;
17382
  }
17383
+ /**
17384
+ * @ignore - do not document.
17385
+ *
17386
+ * Proper state management for containers and the modals in those containers.
17387
+ * Simplified, but inspired by react-overlay's ModalManager class.
17388
+ * Used by the Modal to ensure proper styling of containers.
17389
+ */
17390
 
 
 
 
 
 
17391
 
17392
+ var ModalManager = /*#__PURE__*/function () {
17393
+ function ModalManager() {
17394
+ _classCallCheck(this, ModalManager);
 
 
17395
 
17396
+ // this.modals[modalIndex] = modal
17397
+ this.modals = []; // this.containers[containerIndex] = {
17398
+ // modals: [],
17399
+ // container,
17400
+ // restore: null,
17401
+ // }
17402
 
17403
+ this.containers = [];
17404
+ }
17405
 
17406
+ (0,createClass/* default */.Z)(ModalManager, [{
17407
+ key: "add",
17408
+ value: function add(modal, container) {
17409
+ var modalIndex = this.modals.indexOf(modal);
 
 
17410
 
17411
+ if (modalIndex !== -1) {
17412
+ return modalIndex;
17413
+ }
17414
 
17415
+ modalIndex = this.modals.length;
17416
+ this.modals.push(modal); // If the modal we are adding is already in the DOM.
 
 
 
 
 
 
17417
 
17418
+ if (modal.modalRef) {
17419
+ ariaHidden(modal.modalRef, false);
17420
+ }
17421
 
17422
+ var hiddenSiblingNodes = getHiddenSiblings(container);
17423
+ ariaHiddenSiblings(container, modal.mountNode, modal.modalRef, hiddenSiblingNodes, true);
17424
+ var containerIndex = findIndexOf(this.containers, function (item) {
17425
+ return item.container === container;
17426
+ });
17427
 
17428
+ if (containerIndex !== -1) {
17429
+ this.containers[containerIndex].modals.push(modal);
17430
+ return modalIndex;
17431
  }
 
 
 
 
 
 
 
 
17432
 
17433
+ this.containers.push({
17434
+ modals: [modal],
17435
+ container: container,
17436
+ restore: null,
17437
+ hiddenSiblingNodes: hiddenSiblingNodes
17438
  });
17439
+ return modalIndex;
17440
  }
17441
+ }, {
17442
+ key: "mount",
17443
+ value: function mount(modal, props) {
17444
+ var containerIndex = findIndexOf(this.containers, function (item) {
17445
+ return item.modals.indexOf(modal) !== -1;
17446
+ });
17447
+ var containerInfo = this.containers[containerIndex];
17448
 
17449
+ if (!containerInfo.restore) {
17450
+ containerInfo.restore = handleContainer(containerInfo, props);
17451
+ }
17452
+ }
17453
+ }, {
17454
+ key: "remove",
17455
+ value: function remove(modal) {
17456
+ var modalIndex = this.modals.indexOf(modal);
17457
 
17458
+ if (modalIndex === -1) {
17459
+ return modalIndex;
17460
+ }
17461
 
17462
+ var containerIndex = findIndexOf(this.containers, function (item) {
17463
+ return item.modals.indexOf(modal) !== -1;
17464
+ });
17465
+ var containerInfo = this.containers[containerIndex];
17466
+ containerInfo.modals.splice(containerInfo.modals.indexOf(modal), 1);
17467
+ this.modals.splice(modalIndex, 1); // If that was the last modal in a container, clean up the container.
17468
 
17469
+ if (containerInfo.modals.length === 0) {
17470
+ // The modal might be closed before it had the chance to be mounted in the DOM.
17471
+ if (containerInfo.restore) {
17472
+ containerInfo.restore();
17473
+ }
17474
 
17475
+ if (modal.modalRef) {
17476
+ // In case the modal wasn't in the DOM yet.
17477
+ ariaHidden(modal.modalRef, true);
17478
+ }
17479
+
17480
+ ariaHiddenSiblings(containerInfo.container, modal.mountNode, modal.modalRef, containerInfo.hiddenSiblingNodes, false);
17481
+ this.containers.splice(containerIndex, 1);
17482
+ } else {
17483
+ // Otherwise make sure the next top modal is visible to a screen reader.
17484
+ var nextTop = containerInfo.modals[containerInfo.modals.length - 1]; // as soon as a modal is adding its modalRef is undefined. it can't set
17485
+ // aria-hidden because the dom element doesn't exist either
17486
+ // when modal was unmounted before modalRef gets null
17487
+
17488
+ if (nextTop.modalRef) {
17489
+ ariaHidden(nextTop.modalRef, false);
17490
+ }
17491
+ }
17492
+
17493
+ return modalIndex;
17494
  }
17495
+ }, {
17496
+ key: "isTopModal",
17497
+ value: function isTopModal(modal) {
17498
+ return this.modals.length > 0 && this.modals[this.modals.length - 1] === modal;
17499
+ }
17500
+ }]);
17501
 
17502
+ return ModalManager;
17503
+ }();
17504
 
 
 
 
17505
 
17506
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Unstable_TrapFocus/Unstable_TrapFocus.js
17507
+ /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex, camelcase */
17508
+
17509
+
17510
+
17511
+
17512
+
17513
+
17514
+ /**
17515
+ * Utility component that locks focus inside the component.
17516
+ */
17517
+
17518
+ function Unstable_TrapFocus(props) {
17519
+ var children = props.children,
17520
+ _props$disableAutoFoc = props.disableAutoFocus,
17521
+ disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
17522
+ _props$disableEnforce = props.disableEnforceFocus,
17523
+ disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
17524
+ _props$disableRestore = props.disableRestoreFocus,
17525
+ disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
17526
+ getDoc = props.getDoc,
17527
+ isEnabled = props.isEnabled,
17528
+ open = props.open;
17529
+ var ignoreNextEnforceFocus = react.useRef();
17530
+ var sentinelStart = react.useRef(null);
17531
+ var sentinelEnd = react.useRef(null);
17532
+ var nodeToRestore = react.useRef();
17533
+ var rootRef = react.useRef(null); // can be removed once we drop support for non ref forwarding class components
17534
+
17535
+ var handleOwnRef = react.useCallback(function (instance) {
17536
+ // #StrictMode ready
17537
+ rootRef.current = react_dom.findDOMNode(instance);
17538
+ }, []);
17539
+ var handleRef = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef);
17540
+ var prevOpenRef = react.useRef();
17541
+ react.useEffect(function () {
17542
+ prevOpenRef.current = open;
17543
+ }, [open]);
17544
+
17545
+ if (!prevOpenRef.current && open && typeof window !== 'undefined') {
17546
+ // WARNING: Potentially unsafe in concurrent mode.
17547
+ // The way the read on `nodeToRestore` is setup could make this actually safe.
17548
+ // Say we render `open={false}` -> `open={true}` but never commit.
17549
+ // We have now written a state that wasn't committed. But no committed effect
17550
+ // will read this wrong value. We only read from `nodeToRestore` in effects
17551
+ // that were committed on `open={true}`
17552
+ // WARNING: Prevents the instance from being garbage collected. Should only
17553
+ // hold a weak ref.
17554
+ nodeToRestore.current = getDoc().activeElement;
17555
  }
17556
 
17557
+ react.useEffect(function () {
17558
+ if (!open) {
17559
+ return;
17560
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17561
 
17562
+ var doc = (0,ownerDocument/* default */.Z)(rootRef.current); // We might render an empty child.
17563
 
17564
+ if (!disableAutoFocus && rootRef.current && !rootRef.current.contains(doc.activeElement)) {
17565
+ if (!rootRef.current.hasAttribute('tabIndex')) {
17566
+ if (false) {}
17567
 
17568
+ rootRef.current.setAttribute('tabIndex', -1);
17569
+ }
17570
 
17571
+ rootRef.current.focus();
17572
+ }
 
 
 
 
 
 
 
 
17573
 
17574
+ var contain = function contain() {
17575
+ var rootElement = rootRef.current; // Cleanup functions are executed lazily in React 17.
17576
+ // Contain can be called between the component being unmounted and its cleanup function being run.
17577
 
17578
+ if (rootElement === null) {
17579
+ return;
17580
+ }
 
 
17581
 
17582
+ if (!doc.hasFocus() || disableEnforceFocus || !isEnabled() || ignoreNextEnforceFocus.current) {
17583
+ ignoreNextEnforceFocus.current = false;
17584
+ return;
17585
+ }
17586
 
17587
+ if (rootRef.current && !rootRef.current.contains(doc.activeElement)) {
17588
+ rootRef.current.focus();
17589
+ }
17590
  };
17591
 
17592
+ var loopFocus = function loopFocus(event) {
17593
+ // 9 = Tab
17594
+ if (disableEnforceFocus || !isEnabled() || event.keyCode !== 9) {
17595
+ return;
17596
+ } // Make sure the next tab starts from the right place.
 
 
17597
 
 
 
 
 
 
17598
 
17599
+ if (doc.activeElement === rootRef.current) {
17600
+ // We need to ignore the next contain as
17601
+ // it will try to move the focus back to the rootRef element.
17602
+ ignoreNextEnforceFocus.current = true;
 
17603
 
17604
+ if (event.shiftKey) {
17605
+ sentinelEnd.current.focus();
17606
+ } else {
17607
+ sentinelStart.current.focus();
17608
+ }
17609
+ }
17610
+ };
17611
 
17612
+ doc.addEventListener('focus', contain, true);
17613
+ doc.addEventListener('keydown', loopFocus, true); // With Edge, Safari and Firefox, no focus related events are fired when the focused area stops being a focused area
17614
+ // e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=559561.
17615
+ //
17616
+ // The whatwg spec defines how the browser should behave but does not explicitly mention any events:
17617
+ // https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule.
17618
 
17619
+ var interval = setInterval(function () {
17620
+ contain();
17621
+ }, 50);
17622
+ return function () {
17623
+ clearInterval(interval);
17624
+ doc.removeEventListener('focus', contain, true);
17625
+ doc.removeEventListener('keydown', loopFocus, true); // restoreLastFocus()
17626
 
17627
+ if (!disableRestoreFocus) {
17628
+ // In IE 11 it is possible for document.activeElement to be null resulting
17629
+ // in nodeToRestore.current being null.
17630
+ // Not all elements in IE 11 have a focus method.
17631
+ // Once IE 11 support is dropped the focus() call can be unconditional.
17632
+ if (nodeToRestore.current && nodeToRestore.current.focus) {
17633
+ nodeToRestore.current.focus();
17634
+ }
17635
 
17636
+ nodeToRestore.current = null;
17637
+ }
17638
+ };
17639
+ }, [disableAutoFocus, disableEnforceFocus, disableRestoreFocus, isEnabled, open]);
17640
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", {
17641
+ tabIndex: 0,
17642
+ ref: sentinelStart,
17643
+ "data-test": "sentinelStart"
17644
+ }), /*#__PURE__*/react.cloneElement(children, {
17645
+ ref: handleRef
17646
+ }), /*#__PURE__*/react.createElement("div", {
17647
+ tabIndex: 0,
17648
+ ref: sentinelEnd,
17649
+ "data-test": "sentinelEnd"
17650
+ }));
17651
+ }
17652
 
17653
+ false ? 0 : void 0;
 
 
17654
 
17655
+ if (false) {}
 
 
 
17656
 
17657
+ /* harmony default export */ var Unstable_TrapFocus_Unstable_TrapFocus = (Unstable_TrapFocus);
17658
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/SimpleBackdrop.js
 
 
 
 
17659
 
17660
 
 
 
 
 
 
 
 
 
17661
 
17662
 
17663
+ var SimpleBackdrop_styles = {
17664
+ /* Styles applied to the root element. */
17665
+ root: {
17666
+ zIndex: -1,
17667
+ position: 'fixed',
17668
+ right: 0,
17669
+ bottom: 0,
17670
+ top: 0,
17671
+ left: 0,
17672
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
17673
+ WebkitTapHighlightColor: 'transparent'
17674
+ },
17675
 
17676
+ /* Styles applied to the root element if `invisible={true}`. */
17677
+ invisible: {
17678
+ backgroundColor: 'transparent'
17679
+ }
17680
+ };
17681
+ /**
17682
+ * @ignore - internal component.
17683
+ */
17684
 
17685
+ var SimpleBackdrop = /*#__PURE__*/react.forwardRef(function SimpleBackdrop(props, ref) {
17686
+ var _props$invisible = props.invisible,
17687
+ invisible = _props$invisible === void 0 ? false : _props$invisible,
17688
+ open = props.open,
17689
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["invisible", "open"]);
17690
 
17691
+ return open ? /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
17692
+ "aria-hidden": true,
17693
+ ref: ref
17694
+ }, other, {
17695
+ style: (0,esm_extends/* default */.Z)({}, SimpleBackdrop_styles.root, invisible ? SimpleBackdrop_styles.invisible : {}, other.style)
17696
+ })) : null;
17697
+ });
17698
+ false ? 0 : void 0;
17699
+ /* harmony default export */ var Modal_SimpleBackdrop = (SimpleBackdrop);
17700
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Modal/Modal.js
17701
 
17702
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17703
 
17704
 
 
 
 
 
17705
 
 
17706
 
 
 
17707
 
 
 
 
 
 
 
17708
 
 
 
 
 
 
 
 
 
 
17709
 
 
 
 
 
17710
 
17711
 
 
 
 
17712
 
 
 
 
 
 
 
 
 
 
 
17713
 
17714
+
17715
+
17716
+
17717
+
17718
+ function Modal_getContainer(container) {
17719
+ container = typeof container === 'function' ? container() : container;
17720
+ return react_dom.findDOMNode(container);
17721
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17722
 
17723
+ function getHasTransition(props) {
17724
+ return props.children ? props.children.props.hasOwnProperty('in') : false;
17725
+ } // A modal manager used to track and manage the state of open Modals.
17726
+ // Modals don't open on the server so this won't conflict with concurrent requests.
 
17727
 
 
 
 
17728
 
17729
+ var defaultManager = new ModalManager();
17730
+ var Modal_styles = function styles(theme) {
17731
+ return {
17732
+ /* Styles applied to the root element. */
17733
+ root: {
17734
+ position: 'fixed',
17735
+ zIndex: theme.zIndex.modal,
17736
+ right: 0,
17737
+ bottom: 0,
17738
+ top: 0,
17739
+ left: 0
17740
+ },
17741
 
17742
+ /* Styles applied to the root element if the `Modal` has exited. */
17743
+ hidden: {
17744
+ visibility: 'hidden'
17745
  }
 
 
 
17746
  };
17747
+ };
17748
+ /**
17749
+ * Modal is a lower-level construct that is leveraged by the following components:
17750
+ *
17751
+ * - [Dialog](/api/dialog/)
17752
+ * - [Drawer](/api/drawer/)
17753
+ * - [Menu](/api/menu/)
17754
+ * - [Popover](/api/popover/)
17755
+ *
17756
+ * If you are creating a modal dialog, you probably want to use the [Dialog](/api/dialog/) component
17757
+ * rather than directly using Modal.
17758
+ *
17759
+ * This component shares many concepts with [react-overlays](https://react-bootstrap.github.io/react-overlays/#modals).
17760
+ */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17761
 
17762
+ var Modal = /*#__PURE__*/react.forwardRef(function Modal(inProps, ref) {
17763
+ var theme = (0,useTheme/* default */.Z)();
17764
+ var props = (0,getThemeProps/* default */.Z)({
17765
+ name: 'MuiModal',
17766
+ props: (0,esm_extends/* default */.Z)({}, inProps),
17767
+ theme: theme
17768
+ });
17769
 
17770
+ var _props$BackdropCompon = props.BackdropComponent,
17771
+ BackdropComponent = _props$BackdropCompon === void 0 ? Modal_SimpleBackdrop : _props$BackdropCompon,
17772
+ BackdropProps = props.BackdropProps,
17773
+ children = props.children,
17774
+ _props$closeAfterTran = props.closeAfterTransition,
17775
+ closeAfterTransition = _props$closeAfterTran === void 0 ? false : _props$closeAfterTran,
17776
+ container = props.container,
17777
+ _props$disableAutoFoc = props.disableAutoFocus,
17778
+ disableAutoFocus = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
17779
+ _props$disableBackdro = props.disableBackdropClick,
17780
+ disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
17781
+ _props$disableEnforce = props.disableEnforceFocus,
17782
+ disableEnforceFocus = _props$disableEnforce === void 0 ? false : _props$disableEnforce,
17783
+ _props$disableEscapeK = props.disableEscapeKeyDown,
17784
+ disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
17785
+ _props$disablePortal = props.disablePortal,
17786
+ disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal,
17787
+ _props$disableRestore = props.disableRestoreFocus,
17788
+ disableRestoreFocus = _props$disableRestore === void 0 ? false : _props$disableRestore,
17789
+ _props$disableScrollL = props.disableScrollLock,
17790
+ disableScrollLock = _props$disableScrollL === void 0 ? false : _props$disableScrollL,
17791
+ _props$hideBackdrop = props.hideBackdrop,
17792
+ hideBackdrop = _props$hideBackdrop === void 0 ? false : _props$hideBackdrop,
17793
+ _props$keepMounted = props.keepMounted,
17794
+ keepMounted = _props$keepMounted === void 0 ? false : _props$keepMounted,
17795
+ _props$manager = props.manager,
17796
+ manager = _props$manager === void 0 ? defaultManager : _props$manager,
17797
+ onBackdropClick = props.onBackdropClick,
17798
+ onClose = props.onClose,
17799
+ onEscapeKeyDown = props.onEscapeKeyDown,
17800
+ onRendered = props.onRendered,
17801
+ open = props.open,
17802
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropComponent", "BackdropProps", "children", "closeAfterTransition", "container", "disableAutoFocus", "disableBackdropClick", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "manager", "onBackdropClick", "onClose", "onEscapeKeyDown", "onRendered", "open"]);
17803
 
17804
+ var _React$useState = react.useState(true),
17805
+ exited = _React$useState[0],
17806
+ setExited = _React$useState[1];
 
17807
 
17808
+ var modal = react.useRef({});
17809
+ var mountNodeRef = react.useRef(null);
17810
+ var modalRef = react.useRef(null);
17811
+ var handleRef = (0,useForkRef/* default */.Z)(modalRef, ref);
17812
+ var hasTransition = getHasTransition(props);
17813
 
17814
+ var getDoc = function getDoc() {
17815
+ return (0,ownerDocument/* default */.Z)(mountNodeRef.current);
17816
+ };
17817
 
17818
+ var getModal = function getModal() {
17819
+ modal.current.modalRef = modalRef.current;
17820
+ modal.current.mountNode = mountNodeRef.current;
17821
+ return modal.current;
17822
  };
 
 
17823
 
17824
+ var handleMounted = function handleMounted() {
17825
+ manager.mount(getModal(), {
17826
+ disableScrollLock: disableScrollLock
17827
+ }); // Fix a bug on Chrome where the scroll isn't initially 0.
17828
 
17829
+ modalRef.current.scrollTop = 0;
17830
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17831
 
17832
+ var handleOpen = (0,useEventCallback/* default */.Z)(function () {
17833
+ var resolvedContainer = Modal_getContainer(container) || getDoc().body;
17834
+ manager.add(getModal(), resolvedContainer); // The element was already mounted.
 
 
 
 
 
 
 
17835
 
17836
+ if (modalRef.current) {
17837
+ handleMounted();
17838
+ }
17839
+ });
17840
+ var isTopModal = react.useCallback(function () {
17841
+ return manager.isTopModal(getModal());
17842
+ }, [manager]);
17843
+ var handlePortalRef = (0,useEventCallback/* default */.Z)(function (node) {
17844
+ mountNodeRef.current = node;
17845
 
17846
+ if (!node) {
17847
+ return;
17848
+ }
 
 
 
 
 
 
 
 
 
17849
 
17850
+ if (onRendered) {
17851
+ onRendered();
17852
+ }
 
 
 
 
17853
 
17854
+ if (open && isTopModal()) {
17855
+ handleMounted();
17856
+ } else {
17857
+ ariaHidden(modalRef.current, true);
17858
+ }
17859
+ });
17860
+ var handleClose = react.useCallback(function () {
17861
+ manager.remove(getModal());
17862
+ }, [manager]);
17863
+ react.useEffect(function () {
17864
+ return function () {
17865
+ handleClose();
17866
  };
17867
+ }, [handleClose]);
17868
+ react.useEffect(function () {
17869
+ if (open) {
17870
+ handleOpen();
17871
+ } else if (!hasTransition || !closeAfterTransition) {
17872
+ handleClose();
17873
+ }
17874
+ }, [open, handleClose, hasTransition, closeAfterTransition, handleOpen]);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17875
 
17876
+ if (!keepMounted && !open && (!hasTransition || exited)) {
17877
+ return null;
 
 
 
17878
  }
17879
 
17880
+ var handleEnter = function handleEnter() {
17881
+ setExited(false);
17882
+ };
 
 
 
 
17883
 
17884
+ var handleExited = function handleExited() {
17885
+ setExited(true);
 
 
 
 
 
 
 
 
17886
 
17887
+ if (closeAfterTransition) {
17888
+ handleClose();
17889
+ }
17890
  };
 
 
 
 
 
17891
 
17892
+ var handleBackdropClick = function handleBackdropClick(event) {
17893
+ if (event.target !== event.currentTarget) {
17894
+ return;
17895
+ }
 
17896
 
17897
+ if (onBackdropClick) {
17898
+ onBackdropClick(event);
17899
+ }
17900
 
17901
+ if (!disableBackdropClick && onClose) {
17902
+ onClose(event, 'backdropClick');
17903
+ }
17904
+ };
17905
 
17906
+ var handleKeyDown = function handleKeyDown(event) {
17907
+ // The handler doesn't take event.defaultPrevented into account:
17908
+ //
17909
+ // event.preventDefault() is meant to stop default behaviours like
17910
+ // clicking a checkbox to check it, hitting a button to submit a form,
17911
+ // and hitting left arrow to move the cursor in a text input etc.
17912
+ // Only special HTML elements have these default behaviors.
17913
+ if (event.key !== 'Escape' || !isTopModal()) {
17914
+ return;
17915
+ }
17916
 
17917
+ if (onEscapeKeyDown) {
17918
+ onEscapeKeyDown(event);
17919
+ }
17920
 
17921
+ if (!disableEscapeKeyDown) {
17922
+ // Swallow the event, in case someone is listening for the escape key on the body.
17923
+ event.stopPropagation();
17924
 
17925
+ if (onClose) {
17926
+ onClose(event, 'escapeKeyDown');
17927
+ }
17928
+ }
17929
+ };
17930
 
17931
+ var inlineStyle = Modal_styles(theme || {
17932
+ zIndex: zIndex/* default */.Z
17933
+ });
17934
+ var childProps = {};
17935
 
17936
+ if (children.props.tabIndex === undefined) {
17937
+ childProps.tabIndex = children.props.tabIndex || '-1';
17938
+ } // It's a Transition like component
17939
 
17940
 
17941
+ if (hasTransition) {
17942
+ childProps.onEnter = (0,createChainedFunction/* default */.Z)(handleEnter, children.props.onEnter);
17943
+ childProps.onExited = (0,createChainedFunction/* default */.Z)(handleExited, children.props.onExited);
17944
+ }
17945
 
17946
+ return /*#__PURE__*/react.createElement(Portal_Portal, {
17947
+ ref: handlePortalRef,
17948
+ container: container,
17949
+ disablePortal: disablePortal
17950
+ }, /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
17951
+ ref: handleRef,
17952
+ onKeyDown: handleKeyDown,
17953
+ role: "presentation"
17954
+ }, other, {
17955
+ style: (0,esm_extends/* default */.Z)({}, inlineStyle.root, !open && exited ? inlineStyle.hidden : {}, other.style)
17956
+ }), hideBackdrop ? null : /*#__PURE__*/react.createElement(BackdropComponent, (0,esm_extends/* default */.Z)({
17957
+ open: open,
17958
+ onClick: handleBackdropClick
17959
+ }, BackdropProps)), /*#__PURE__*/react.createElement(Unstable_TrapFocus_Unstable_TrapFocus, {
17960
+ disableEnforceFocus: disableEnforceFocus,
17961
+ disableAutoFocus: disableAutoFocus,
17962
+ disableRestoreFocus: disableRestoreFocus,
17963
+ getDoc: getDoc,
17964
+ isEnabled: isTopModal,
17965
+ open: open
17966
+ }, /*#__PURE__*/react.cloneElement(children, childProps))));
17967
+ });
17968
+ false ? 0 : void 0;
17969
+ /* harmony default export */ var Modal_Modal = (Modal);
17970
+ // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js + 1 modules
17971
+ var slicedToArray = __webpack_require__(28481);
17972
+ ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/config.js
17973
+ /* harmony default export */ var config = ({
17974
+ disabled: false
17975
+ });
17976
+ ;// CONCATENATED MODULE: ./node_modules/react-transition-group/esm/Transition.js
17977
 
 
 
 
 
 
17978
 
 
 
 
 
17979
 
 
 
 
 
17980
 
17981
 
 
 
 
 
 
 
 
 
 
 
 
 
17982
 
 
 
 
 
17983
 
 
 
 
 
 
 
 
 
 
 
 
 
17984
 
17985
+ var UNMOUNTED = 'unmounted';
17986
+ var EXITED = 'exited';
17987
+ var ENTERING = 'entering';
17988
+ var ENTERED = 'entered';
17989
+ var EXITING = 'exiting';
17990
+ /**
17991
+ * The Transition component lets you describe a transition from one component
17992
+ * state to another _over time_ with a simple declarative API. Most commonly
17993
+ * it's used to animate the mounting and unmounting of a component, but can also
17994
+ * be used to describe in-place transition states as well.
17995
+ *
17996
+ * ---
17997
+ *
17998
+ * **Note**: `Transition` is a platform-agnostic base component. If you're using
17999
+ * transitions in CSS, you'll probably want to use
18000
+ * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
18001
+ * instead. It inherits all the features of `Transition`, but contains
18002
+ * additional features necessary to play nice with CSS transitions (hence the
18003
+ * name of the component).
18004
+ *
18005
+ * ---
18006
+ *
18007
+ * By default the `Transition` component does not alter the behavior of the
18008
+ * component it renders, it only tracks "enter" and "exit" states for the
18009
+ * components. It's up to you to give meaning and effect to those states. For
18010
+ * example we can add styles to a component when it enters or exits:
18011
+ *
18012
+ * ```jsx
18013
+ * import { Transition } from 'react-transition-group';
18014
+ *
18015
+ * const duration = 300;
18016
+ *
18017
+ * const defaultStyle = {
18018
+ * transition: `opacity ${duration}ms ease-in-out`,
18019
+ * opacity: 0,
18020
+ * }
18021
+ *
18022
+ * const transitionStyles = {
18023
+ * entering: { opacity: 1 },
18024
+ * entered: { opacity: 1 },
18025
+ * exiting: { opacity: 0 },
18026
+ * exited: { opacity: 0 },
18027
+ * };
18028
+ *
18029
+ * const Fade = ({ in: inProp }) => (
18030
+ * <Transition in={inProp} timeout={duration}>
18031
+ * {state => (
18032
+ * <div style={{
18033
+ * ...defaultStyle,
18034
+ * ...transitionStyles[state]
18035
+ * }}>
18036
+ * I'm a fade Transition!
18037
+ * </div>
18038
+ * )}
18039
+ * </Transition>
18040
+ * );
18041
+ * ```
18042
+ *
18043
+ * There are 4 main states a Transition can be in:
18044
+ * - `'entering'`
18045
+ * - `'entered'`
18046
+ * - `'exiting'`
18047
+ * - `'exited'`
18048
+ *
18049
+ * Transition state is toggled via the `in` prop. When `true` the component
18050
+ * begins the "Enter" stage. During this stage, the component will shift from
18051
+ * its current transition state, to `'entering'` for the duration of the
18052
+ * transition and then to the `'entered'` stage once it's complete. Let's take
18053
+ * the following example (we'll use the
18054
+ * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
18055
+ *
18056
+ * ```jsx
18057
+ * function App() {
18058
+ * const [inProp, setInProp] = useState(false);
18059
+ * return (
18060
+ * <div>
18061
+ * <Transition in={inProp} timeout={500}>
18062
+ * {state => (
18063
+ * // ...
18064
+ * )}
18065
+ * </Transition>
18066
+ * <button onClick={() => setInProp(true)}>
18067
+ * Click to Enter
18068
+ * </button>
18069
+ * </div>
18070
+ * );
18071
+ * }
18072
+ * ```
18073
+ *
18074
+ * When the button is clicked the component will shift to the `'entering'` state
18075
+ * and stay there for 500ms (the value of `timeout`) before it finally switches
18076
+ * to `'entered'`.
18077
+ *
18078
+ * When `in` is `false` the same thing happens except the state moves from
18079
+ * `'exiting'` to `'exited'`.
18080
  */
18081
 
18082
+ var Transition = /*#__PURE__*/function (_React$Component) {
18083
+ (0,inheritsLoose/* default */.Z)(Transition, _React$Component);
 
 
18084
 
18085
+ function Transition(props, context) {
18086
+ var _this;
 
18087
 
18088
+ _this = _React$Component.call(this, props, context) || this;
18089
+ var parentGroup = context; // In the context of a TransitionGroup all enters are really appears
18090
 
18091
+ var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
18092
+ var initialStatus;
18093
+ _this.appearStatus = null;
18094
 
18095
+ if (props.in) {
18096
+ if (appear) {
18097
+ initialStatus = EXITED;
18098
+ _this.appearStatus = ENTERING;
18099
+ } else {
18100
+ initialStatus = ENTERED;
18101
+ }
18102
+ } else {
18103
+ if (props.unmountOnExit || props.mountOnEnter) {
18104
+ initialStatus = UNMOUNTED;
18105
+ } else {
18106
+ initialStatus = EXITED;
18107
+ }
18108
+ }
18109
 
18110
+ _this.state = {
18111
+ status: initialStatus
18112
+ };
18113
+ _this.nextCallback = null;
18114
+ return _this;
18115
  }
18116
 
18117
+ Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
18118
+ var nextIn = _ref.in;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18119
 
18120
+ if (nextIn && prevState.status === UNMOUNTED) {
18121
+ return {
18122
+ status: EXITED
18123
+ };
18124
+ }
18125
 
18126
+ return null;
18127
+ } // getSnapshotBeforeUpdate(prevProps) {
18128
+ // let nextStatus = null
18129
+ // if (prevProps !== this.props) {
18130
+ // const { status } = this.state
18131
+ // if (this.props.in) {
18132
+ // if (status !== ENTERING && status !== ENTERED) {
18133
+ // nextStatus = ENTERING
18134
+ // }
18135
+ // } else {
18136
+ // if (status === ENTERING || status === ENTERED) {
18137
+ // nextStatus = EXITING
18138
+ // }
18139
+ // }
18140
+ // }
18141
+ // return { nextStatus }
18142
+ // }
18143
+ ;
18144
 
18145
+ var _proto = Transition.prototype;
 
 
 
18146
 
18147
+ _proto.componentDidMount = function componentDidMount() {
18148
+ this.updateStatus(true, this.appearStatus);
 
 
18149
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18150
 
18151
+ _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
18152
+ var nextStatus = null;
18153
+
18154
+ if (prevProps !== this.props) {
18155
+ var status = this.state.status;
18156
 
18157
+ if (this.props.in) {
18158
+ if (status !== ENTERING && status !== ENTERED) {
18159
+ nextStatus = ENTERING;
18160
+ }
18161
+ } else {
18162
+ if (status === ENTERING || status === ENTERED) {
18163
+ nextStatus = EXITING;
18164
+ }
18165
+ }
18166
+ }
18167
 
18168
+ this.updateStatus(false, nextStatus);
18169
+ };
18170
 
18171
+ _proto.componentWillUnmount = function componentWillUnmount() {
18172
+ this.cancelNextCallback();
18173
+ };
18174
 
18175
+ _proto.getTimeouts = function getTimeouts() {
18176
+ var timeout = this.props.timeout;
18177
+ var exit, enter, appear;
18178
+ exit = enter = appear = timeout;
18179
 
18180
+ if (timeout != null && typeof timeout !== 'number') {
18181
+ exit = timeout.exit;
18182
+ enter = timeout.enter; // TODO: remove fallback for next major
18183
 
18184
+ appear = timeout.appear !== undefined ? timeout.appear : enter;
18185
+ }
 
18186
 
18187
+ return {
18188
+ exit: exit,
18189
+ enter: enter,
18190
+ appear: appear
18191
+ };
18192
+ };
18193
 
18194
+ _proto.updateStatus = function updateStatus(mounting, nextStatus) {
18195
+ if (mounting === void 0) {
18196
+ mounting = false;
18197
+ }
 
 
 
 
 
18198
 
18199
+ if (nextStatus !== null) {
18200
+ // nextStatus will always be ENTERING or EXITING.
18201
+ this.cancelNextCallback();
18202
 
18203
+ if (nextStatus === ENTERING) {
18204
+ this.performEnter(mounting);
18205
  } else {
18206
+ this.performExit();
18207
  }
18208
+ } else if (this.props.unmountOnExit && this.state.status === EXITED) {
18209
+ this.setState({
18210
+ status: UNMOUNTED
18211
+ });
 
 
18212
  }
18213
+ };
18214
 
18215
+ _proto.performEnter = function performEnter(mounting) {
18216
+ var _this2 = this;
18217
 
18218
+ var enter = this.props.enter;
18219
+ var appearing = this.context ? this.context.isMounting : mounting;
 
 
 
 
 
 
 
 
18220
 
18221
+ var _ref2 = this.props.nodeRef ? [appearing] : [react_dom.findDOMNode(this), appearing],
18222
+ maybeNode = _ref2[0],
18223
+ maybeAppearing = _ref2[1];
18224
 
18225
+ var timeouts = this.getTimeouts();
18226
+ var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
18227
+ // if we are mounting and running this it means appear _must_ be set
 
 
 
 
 
18228
 
18229
+ if (!mounting && !enter || config.disabled) {
18230
+ this.safeSetState({
18231
+ status: ENTERED
18232
+ }, function () {
18233
+ _this2.props.onEntered(maybeNode);
18234
+ });
18235
+ return;
18236
  }
18237
 
18238
+ this.props.onEnter(maybeNode, maybeAppearing);
18239
+ this.safeSetState({
18240
+ status: ENTERING
18241
+ }, function () {
18242
+ _this2.props.onEntering(maybeNode, maybeAppearing);
 
 
 
 
 
 
 
 
 
 
18243
 
18244
+ _this2.onTransitionEnd(enterTimeout, function () {
18245
+ _this2.safeSetState({
18246
+ status: ENTERED
18247
+ }, function () {
18248
+ _this2.props.onEntered(maybeNode, maybeAppearing);
18249
+ });
18250
+ });
18251
+ });
18252
+ };
18253
 
18254
+ _proto.performExit = function performExit() {
18255
+ var _this3 = this;
 
 
18256
 
18257
+ var exit = this.props.exit;
18258
+ var timeouts = this.getTimeouts();
18259
+ var maybeNode = this.props.nodeRef ? undefined : react_dom.findDOMNode(this); // no exit animation skip right to EXITED
 
 
 
 
18260
 
18261
+ if (!exit || config.disabled) {
18262
+ this.safeSetState({
18263
+ status: EXITED
18264
+ }, function () {
18265
+ _this3.props.onExited(maybeNode);
18266
+ });
18267
+ return;
18268
+ }
18269
 
18270
+ this.props.onExit(maybeNode);
18271
+ this.safeSetState({
18272
+ status: EXITING
18273
+ }, function () {
18274
+ _this3.props.onExiting(maybeNode);
18275
 
18276
+ _this3.onTransitionEnd(timeouts.exit, function () {
18277
+ _this3.safeSetState({
18278
+ status: EXITED
18279
+ }, function () {
18280
+ _this3.props.onExited(maybeNode);
18281
+ });
18282
+ });
18283
+ });
18284
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18285
 
18286
+ _proto.cancelNextCallback = function cancelNextCallback() {
18287
+ if (this.nextCallback !== null) {
18288
+ this.nextCallback.cancel();
18289
+ this.nextCallback = null;
18290
+ }
18291
+ };
18292
 
18293
+ _proto.safeSetState = function safeSetState(nextState, callback) {
18294
+ // This shouldn't be necessary, but there are weird race conditions with
18295
+ // setState callbacks and unmounting in testing, so always make sure that
18296
+ // we can cancel any pending setState callbacks after we unmount.
18297
+ callback = this.setNextCallback(callback);
18298
+ this.setState(nextState, callback);
18299
+ };
18300
 
18301
+ _proto.setNextCallback = function setNextCallback(callback) {
18302
+ var _this4 = this;
18303
 
18304
+ var active = true;
18305
 
18306
+ this.nextCallback = function (event) {
18307
+ if (active) {
18308
+ active = false;
18309
+ _this4.nextCallback = null;
18310
+ callback(event);
18311
+ }
18312
+ };
18313
 
18314
+ this.nextCallback.cancel = function () {
18315
+ active = false;
18316
+ };
18317
 
18318
+ return this.nextCallback;
18319
+ };
18320
 
18321
+ _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {
18322
+ this.setNextCallback(handler);
18323
+ var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom.findDOMNode(this);
18324
+ var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
18325
 
18326
+ if (!node || doesNotHaveTimeoutOrListener) {
18327
+ setTimeout(this.nextCallback, 0);
18328
+ return;
18329
+ }
18330
 
18331
+ if (this.props.addEndListener) {
18332
+ var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],
18333
+ maybeNode = _ref3[0],
18334
+ maybeNextCallback = _ref3[1];
18335
 
18336
+ this.props.addEndListener(maybeNode, maybeNextCallback);
18337
+ }
18338
 
18339
+ if (timeout != null) {
18340
+ setTimeout(this.nextCallback, timeout);
18341
+ }
18342
+ };
18343
 
18344
+ _proto.render = function render() {
18345
+ var status = this.state.status;
18346
 
18347
+ if (status === UNMOUNTED) {
18348
+ return null;
18349
+ }
18350
 
18351
+ var _this$props = this.props,
18352
+ children = _this$props.children,
18353
+ _in = _this$props.in,
18354
+ _mountOnEnter = _this$props.mountOnEnter,
18355
+ _unmountOnExit = _this$props.unmountOnExit,
18356
+ _appear = _this$props.appear,
18357
+ _enter = _this$props.enter,
18358
+ _exit = _this$props.exit,
18359
+ _timeout = _this$props.timeout,
18360
+ _addEndListener = _this$props.addEndListener,
18361
+ _onEnter = _this$props.onEnter,
18362
+ _onEntering = _this$props.onEntering,
18363
+ _onEntered = _this$props.onEntered,
18364
+ _onExit = _this$props.onExit,
18365
+ _onExiting = _this$props.onExiting,
18366
+ _onExited = _this$props.onExited,
18367
+ _nodeRef = _this$props.nodeRef,
18368
+ childProps = (0,objectWithoutPropertiesLoose/* default */.Z)(_this$props, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"]);
18369
 
18370
+ return (
18371
+ /*#__PURE__*/
18372
+ // allows for nested Transitions
18373
+ react.createElement(TransitionGroupContext.Provider, {
18374
+ value: null
18375
+ }, typeof children === 'function' ? children(status, childProps) : react.cloneElement(react.Children.only(children), childProps))
18376
+ );
18377
+ };
18378
 
18379
+ return Transition;
18380
+ }(react.Component);
18381
 
18382
+ Transition.contextType = TransitionGroupContext;
18383
+ Transition.propTypes = false ? 0 : {}; // Name the function so it is clearer in the documentation
18384
 
18385
+ function Transition_noop() {}
18386
 
18387
+ Transition.defaultProps = {
18388
+ in: false,
18389
+ mountOnEnter: false,
18390
+ unmountOnExit: false,
18391
+ appear: false,
18392
+ enter: true,
18393
+ exit: true,
18394
+ onEnter: Transition_noop,
18395
+ onEntering: Transition_noop,
18396
+ onEntered: Transition_noop,
18397
+ onExit: Transition_noop,
18398
+ onExiting: Transition_noop,
18399
+ onExited: Transition_noop
18400
+ };
18401
+ Transition.UNMOUNTED = UNMOUNTED;
18402
+ Transition.EXITED = EXITED;
18403
+ Transition.ENTERING = ENTERING;
18404
+ Transition.ENTERED = ENTERED;
18405
+ Transition.EXITING = EXITING;
18406
+ /* harmony default export */ var esm_Transition = (Transition);
18407
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/defaultTheme.js
18408
+ var defaultTheme = __webpack_require__(99700);
18409
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/useTheme.js
18410
 
18411
 
18412
 
18413
+ function useTheme_useTheme() {
18414
+ var theme = (0,useTheme/* default */.Z)() || defaultTheme/* default */.Z;
18415
 
18416
+ if (false) {}
18417
 
18418
+ return theme;
18419
+ }
18420
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/transitions/utils.js
18421
+ var reflow = function reflow(node) {
18422
+ return node.scrollTop;
18423
+ };
18424
+ function getTransitionProps(props, options) {
18425
+ var timeout = props.timeout,
18426
+ _props$style = props.style,
18427
+ style = _props$style === void 0 ? {} : _props$style;
18428
+ return {
18429
+ duration: style.transitionDuration || typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,
18430
+ delay: style.transitionDelay
18431
+ };
18432
+ }
18433
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Grow/Grow.js
18434
 
 
 
 
 
18435
 
 
 
 
 
18436
 
 
 
 
 
 
 
 
 
 
 
 
 
18437
 
18438
 
 
 
 
 
 
 
 
 
 
 
 
 
18439
 
 
 
 
 
 
 
 
18440
 
 
18441
 
 
18442
 
 
 
 
 
 
 
18443
 
18444
+ function getScale(value) {
18445
+ return "scale(".concat(value, ", ").concat(Math.pow(value, 2), ")");
18446
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18447
 
18448
+ var Grow_styles = {
18449
+ entering: {
18450
+ opacity: 1,
18451
+ transform: getScale(1)
18452
+ },
18453
+ entered: {
18454
+ opacity: 1,
18455
+ transform: 'none'
18456
  }
18457
+ };
18458
+ /**
18459
+ * The Grow transition is used by the [Tooltip](/components/tooltips/) and
18460
+ * [Popover](/components/popover/) components.
18461
+ * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
18462
+ */
18463
 
18464
+ var Grow = /*#__PURE__*/react.forwardRef(function Grow(props, ref) {
18465
+ var children = props.children,
18466
+ _props$disableStrictM = props.disableStrictModeCompat,
18467
+ disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
18468
+ inProp = props.in,
18469
+ onEnter = props.onEnter,
18470
+ onEntered = props.onEntered,
18471
+ onEntering = props.onEntering,
18472
+ onExit = props.onExit,
18473
+ onExited = props.onExited,
18474
+ onExiting = props.onExiting,
18475
+ style = props.style,
18476
+ _props$timeout = props.timeout,
18477
+ timeout = _props$timeout === void 0 ? 'auto' : _props$timeout,
18478
+ _props$TransitionComp = props.TransitionComponent,
18479
+ TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
18480
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
18481
 
18482
+ var timer = react.useRef();
18483
+ var autoTimeout = react.useRef();
18484
+ var theme = useTheme_useTheme();
18485
+ var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
18486
+ var nodeRef = react.useRef(null);
18487
+ var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
18488
+ var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18489
 
18490
+ var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
18491
+ return function (nodeOrAppearing, maybeAppearing) {
18492
+ if (callback) {
18493
+ var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
18494
+ _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
18495
+ node = _ref2[0],
18496
+ isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
18497
 
 
 
 
18498
 
18499
+ if (isAppearing === undefined) {
18500
+ callback(node);
18501
+ } else {
18502
+ callback(node, isAppearing);
18503
+ }
18504
+ }
18505
+ };
18506
  };
 
 
18507
 
18508
+ var handleEntering = normalizedTransitionCallback(onEntering);
18509
+ var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
18510
+ reflow(node); // So the animation always start from the start.
18511
 
18512
+ var _getTransitionProps = getTransitionProps({
18513
+ style: style,
18514
+ timeout: timeout
18515
+ }, {
18516
+ mode: 'enter'
18517
+ }),
18518
+ transitionDuration = _getTransitionProps.duration,
18519
+ delay = _getTransitionProps.delay;
18520
 
18521
+ var duration;
 
 
 
18522
 
18523
+ if (timeout === 'auto') {
18524
+ duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
18525
+ autoTimeout.current = duration;
18526
+ } else {
18527
+ duration = transitionDuration;
18528
+ }
18529
 
18530
+ node.style.transition = [theme.transitions.create('opacity', {
18531
+ duration: duration,
18532
+ delay: delay
18533
+ }), theme.transitions.create('transform', {
18534
+ duration: duration * 0.666,
18535
+ delay: delay
18536
+ })].join(',');
18537
 
18538
+ if (onEnter) {
18539
+ onEnter(node, isAppearing);
18540
+ }
18541
+ });
18542
+ var handleEntered = normalizedTransitionCallback(onEntered);
18543
+ var handleExiting = normalizedTransitionCallback(onExiting);
18544
+ var handleExit = normalizedTransitionCallback(function (node) {
18545
+ var _getTransitionProps2 = getTransitionProps({
18546
+ style: style,
18547
+ timeout: timeout
18548
+ }, {
18549
+ mode: 'exit'
18550
+ }),
18551
+ transitionDuration = _getTransitionProps2.duration,
18552
+ delay = _getTransitionProps2.delay;
18553
 
18554
+ var duration;
 
 
 
 
 
 
 
18555
 
18556
+ if (timeout === 'auto') {
18557
+ duration = theme.transitions.getAutoHeightDuration(node.clientHeight);
18558
+ autoTimeout.current = duration;
18559
+ } else {
18560
+ duration = transitionDuration;
18561
+ }
18562
 
18563
+ node.style.transition = [theme.transitions.create('opacity', {
18564
+ duration: duration,
18565
+ delay: delay
18566
+ }), theme.transitions.create('transform', {
18567
+ duration: duration * 0.666,
18568
+ delay: delay || duration * 0.333
18569
+ })].join(',');
18570
+ node.style.opacity = '0';
18571
+ node.style.transform = getScale(0.75);
18572
 
18573
+ if (onExit) {
18574
+ onExit(node);
18575
+ }
18576
+ });
18577
+ var handleExited = normalizedTransitionCallback(onExited);
18578
 
18579
+ var addEndListener = function addEndListener(nodeOrNext, maybeNext) {
18580
+ var next = enableStrictModeCompat ? nodeOrNext : maybeNext;
 
 
 
 
 
 
 
 
 
 
18581
 
18582
+ if (timeout === 'auto') {
18583
+ timer.current = setTimeout(next, autoTimeout.current || 0);
18584
+ }
18585
+ };
 
 
18586
 
18587
+ react.useEffect(function () {
18588
+ return function () {
18589
+ clearTimeout(timer.current);
18590
+ };
18591
+ }, []);
18592
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
18593
+ appear: true,
18594
+ in: inProp,
18595
+ nodeRef: enableStrictModeCompat ? nodeRef : undefined,
18596
+ onEnter: handleEnter,
18597
+ onEntered: handleEntered,
18598
+ onEntering: handleEntering,
18599
+ onExit: handleExit,
18600
+ onExited: handleExited,
18601
+ onExiting: handleExiting,
18602
+ addEndListener: addEndListener,
18603
+ timeout: timeout === 'auto' ? null : timeout
18604
+ }, other), function (state, childProps) {
18605
+ return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
18606
+ style: (0,esm_extends/* default */.Z)({
18607
+ opacity: 0,
18608
+ transform: getScale(0.75),
18609
+ visibility: state === 'exited' && !inProp ? 'hidden' : undefined
18610
+ }, Grow_styles[state], style, children.props.style),
18611
+ ref: handleRef
18612
+ }, childProps));
18613
+ });
18614
+ });
18615
+ false ? 0 : void 0;
18616
+ Grow.muiSupportAuto = true;
18617
+ /* harmony default export */ var Grow_Grow = (Grow);
18618
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Paper/Paper.js
18619
 
18620
 
 
 
 
 
 
 
 
 
 
 
 
18621
 
 
 
 
 
18622
 
 
 
 
 
 
 
18623
 
 
 
 
18624
 
18625
 
18626
+ var Paper_styles = function styles(theme) {
18627
+ var elevations = {};
18628
+ theme.shadows.forEach(function (shadow, index) {
18629
+ elevations["elevation".concat(index)] = {
18630
+ boxShadow: shadow
18631
+ };
18632
+ });
18633
+ return (0,esm_extends/* default */.Z)({
18634
+ /* Styles applied to the root element. */
18635
+ root: {
18636
+ backgroundColor: theme.palette.background.paper,
18637
+ color: theme.palette.text.primary,
18638
+ transition: theme.transitions.create('box-shadow')
18639
+ },
18640
 
18641
+ /* Styles applied to the root element if `square={false}`. */
18642
+ rounded: {
18643
+ borderRadius: theme.shape.borderRadius
18644
+ },
18645
 
18646
+ /* Styles applied to the root element if `variant="outlined"`. */
18647
+ outlined: {
18648
+ border: "1px solid ".concat(theme.palette.divider)
18649
+ }
18650
+ }, elevations);
18651
+ };
18652
+ var Paper = /*#__PURE__*/react.forwardRef(function Paper(props, ref) {
18653
+ var classes = props.classes,
18654
+ className = props.className,
18655
+ _props$component = props.component,
18656
+ Component = _props$component === void 0 ? 'div' : _props$component,
18657
+ _props$square = props.square,
18658
+ square = _props$square === void 0 ? false : _props$square,
18659
+ _props$elevation = props.elevation,
18660
+ elevation = _props$elevation === void 0 ? 1 : _props$elevation,
18661
+ _props$variant = props.variant,
18662
+ variant = _props$variant === void 0 ? 'elevation' : _props$variant,
18663
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "square", "elevation", "variant"]);
18664
 
18665
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
18666
+ className: (0,clsx_m/* default */.Z)(classes.root, className, variant === 'outlined' ? classes.outlined : classes["elevation".concat(elevation)], !square && classes.rounded),
18667
+ ref: ref
18668
+ }, other));
18669
+ });
18670
+ false ? 0 : void 0;
18671
+ /* harmony default export */ var Paper_Paper = ((0,withStyles/* default */.Z)(Paper_styles, {
18672
+ name: 'MuiPaper'
18673
+ })(Paper));
18674
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Popover/Popover.js
18675
 
 
 
18676
 
 
 
 
 
18677
 
 
 
 
 
 
 
 
 
 
 
 
18678
 
 
 
 
 
 
18679
 
 
 
 
 
 
 
 
 
18680
 
 
 
 
 
 
 
 
 
 
 
18681
 
 
 
 
18682
 
 
 
18683
 
 
 
 
18684
 
 
 
 
18685
 
 
 
 
 
 
 
 
 
18686
 
18687
 
18688
 
 
 
 
 
18689
 
18690
+ function getOffsetTop(rect, vertical) {
18691
+ var offset = 0;
 
 
 
 
 
 
18692
 
18693
+ if (typeof vertical === 'number') {
18694
+ offset = vertical;
18695
+ } else if (vertical === 'center') {
18696
+ offset = rect.height / 2;
18697
+ } else if (vertical === 'bottom') {
18698
+ offset = rect.height;
18699
+ }
18700
+
18701
+ return offset;
18702
  }
18703
+ function getOffsetLeft(rect, horizontal) {
18704
+ var offset = 0;
18705
+
18706
+ if (typeof horizontal === 'number') {
18707
+ offset = horizontal;
18708
+ } else if (horizontal === 'center') {
18709
+ offset = rect.width / 2;
18710
+ } else if (horizontal === 'right') {
18711
+ offset = rect.width;
18712
+ }
18713
 
18714
+ return offset;
18715
+ }
18716
 
18717
+ function getTransformOriginValue(transformOrigin) {
18718
+ return [transformOrigin.horizontal, transformOrigin.vertical].map(function (n) {
18719
+ return typeof n === 'number' ? "".concat(n, "px") : n;
18720
+ }).join(' ');
18721
+ } // Sum the scrollTop between two elements.
18722
 
18723
 
18724
+ function getScrollParent(parent, child) {
18725
+ var element = child;
18726
+ var scrollTop = 0;
 
 
18727
 
18728
+ while (element && element !== parent) {
18729
+ element = element.parentElement;
18730
+ scrollTop += element.scrollTop;
18731
  }
18732
 
18733
+ return scrollTop;
18734
  }
 
18735
 
18736
+ function getAnchorEl(anchorEl) {
18737
+ return typeof anchorEl === 'function' ? anchorEl() : anchorEl;
18738
+ }
18739
 
18740
+ var Popover_styles = {
18741
+ /* Styles applied to the root element. */
18742
+ root: {},
18743
 
18744
+ /* Styles applied to the `Paper` component. */
18745
+ paper: {
18746
+ position: 'absolute',
18747
+ overflowY: 'auto',
18748
+ overflowX: 'hidden',
18749
+ // So we see the popover when it's empty.
18750
+ // It's most likely on issue on userland.
18751
+ minWidth: 16,
18752
+ minHeight: 16,
18753
+ maxWidth: 'calc(100% - 32px)',
18754
+ maxHeight: 'calc(100% - 32px)',
18755
+ // We disable the focus ring for mouse, touch and keyboard users.
18756
+ outline: 0
18757
+ }
18758
+ };
18759
+ var Popover = /*#__PURE__*/react.forwardRef(function Popover(props, ref) {
18760
+ var action = props.action,
18761
+ anchorEl = props.anchorEl,
18762
+ _props$anchorOrigin = props.anchorOrigin,
18763
+ anchorOrigin = _props$anchorOrigin === void 0 ? {
18764
+ vertical: 'top',
18765
+ horizontal: 'left'
18766
+ } : _props$anchorOrigin,
18767
+ anchorPosition = props.anchorPosition,
18768
+ _props$anchorReferenc = props.anchorReference,
18769
+ anchorReference = _props$anchorReferenc === void 0 ? 'anchorEl' : _props$anchorReferenc,
18770
+ children = props.children,
18771
+ classes = props.classes,
18772
+ className = props.className,
18773
+ containerProp = props.container,
18774
+ _props$elevation = props.elevation,
18775
+ elevation = _props$elevation === void 0 ? 8 : _props$elevation,
18776
+ getContentAnchorEl = props.getContentAnchorEl,
18777
+ _props$marginThreshol = props.marginThreshold,
18778
+ marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,
18779
+ onEnter = props.onEnter,
18780
+ onEntered = props.onEntered,
18781
+ onEntering = props.onEntering,
18782
+ onExit = props.onExit,
18783
+ onExited = props.onExited,
18784
+ onExiting = props.onExiting,
18785
+ open = props.open,
18786
+ _props$PaperProps = props.PaperProps,
18787
+ PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
18788
+ _props$transformOrigi = props.transformOrigin,
18789
+ transformOrigin = _props$transformOrigi === void 0 ? {
18790
+ vertical: 'top',
18791
+ horizontal: 'left'
18792
+ } : _props$transformOrigi,
18793
+ _props$TransitionComp = props.TransitionComponent,
18794
+ TransitionComponent = _props$TransitionComp === void 0 ? Grow_Grow : _props$TransitionComp,
18795
+ _props$transitionDura = props.transitionDuration,
18796
+ transitionDurationProp = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,
18797
+ _props$TransitionProp = props.TransitionProps,
18798
+ TransitionProps = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,
18799
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "classes", "className", "container", "elevation", "getContentAnchorEl", "marginThreshold", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"]);
18800
 
18801
+ var paperRef = react.useRef(); // Returns the top/left offset of the position
18802
+ // to attach to on the anchor element (or body if none is provided)
 
 
 
 
18803
 
18804
+ var getAnchorOffset = react.useCallback(function (contentAnchorOffset) {
18805
+ if (anchorReference === 'anchorPosition') {
18806
+ if (false) {}
18807
 
18808
+ return anchorPosition;
18809
+ }
 
18810
 
18811
+ var resolvedAnchorEl = getAnchorEl(anchorEl); // If an anchor element wasn't provided, just use the parent body element of this Popover
 
 
 
 
 
 
 
 
18812
 
18813
+ var anchorElement = resolvedAnchorEl && resolvedAnchorEl.nodeType === 1 ? resolvedAnchorEl : (0,ownerDocument/* default */.Z)(paperRef.current).body;
18814
+ var anchorRect = anchorElement.getBoundingClientRect();
 
 
18815
 
18816
+ if (false) { var box; }
18817
 
18818
+ var anchorVertical = contentAnchorOffset === 0 ? anchorOrigin.vertical : 'center';
18819
+ return {
18820
+ top: anchorRect.top + getOffsetTop(anchorRect, anchorVertical),
18821
+ left: anchorRect.left + getOffsetLeft(anchorRect, anchorOrigin.horizontal)
18822
+ };
18823
+ }, [anchorEl, anchorOrigin.horizontal, anchorOrigin.vertical, anchorPosition, anchorReference]); // Returns the vertical offset of inner content to anchor the transform on if provided
18824
 
18825
+ var getContentAnchorOffset = react.useCallback(function (element) {
18826
+ var contentAnchorOffset = 0;
18827
 
18828
+ if (getContentAnchorEl && anchorReference === 'anchorEl') {
18829
+ var contentAnchorEl = getContentAnchorEl(element);
18830
 
18831
+ if (contentAnchorEl && element.contains(contentAnchorEl)) {
18832
+ var scrollTop = getScrollParent(element, contentAnchorEl);
18833
+ contentAnchorOffset = contentAnchorEl.offsetTop + contentAnchorEl.clientHeight / 2 - scrollTop || 0;
18834
+ } // != the default value
18835
 
18836
 
18837
+ if (false) {}
18838
+ }
 
 
 
18839
 
18840
+ return contentAnchorOffset;
18841
+ }, [anchorOrigin.vertical, anchorReference, getContentAnchorEl]); // Return the base transform origin using the element
18842
+ // and taking the content anchor offset into account if in use
18843
 
18844
+ var getTransformOrigin = react.useCallback(function (elemRect) {
18845
+ var contentAnchorOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
18846
+ return {
18847
+ vertical: getOffsetTop(elemRect, transformOrigin.vertical) + contentAnchorOffset,
18848
+ horizontal: getOffsetLeft(elemRect, transformOrigin.horizontal)
18849
+ };
18850
+ }, [transformOrigin.horizontal, transformOrigin.vertical]);
18851
+ var getPositioningStyle = react.useCallback(function (element) {
18852
+ // Check if the parent has requested anchoring on an inner content node
18853
+ var contentAnchorOffset = getContentAnchorOffset(element);
18854
+ var elemRect = {
18855
+ width: element.offsetWidth,
18856
+ height: element.offsetHeight
18857
+ }; // Get the transform origin point on the element itself
18858
 
18859
+ var elemTransformOrigin = getTransformOrigin(elemRect, contentAnchorOffset);
 
 
18860
 
18861
+ if (anchorReference === 'none') {
18862
+ return {
18863
+ top: null,
18864
+ left: null,
18865
+ transformOrigin: getTransformOriginValue(elemTransformOrigin)
18866
+ };
18867
+ } // Get the offset of of the anchoring element
18868
 
 
 
 
 
18869
 
18870
+ var anchorOffset = getAnchorOffset(contentAnchorOffset); // Calculate element positioning
18871
 
18872
+ var top = anchorOffset.top - elemTransformOrigin.vertical;
18873
+ var left = anchorOffset.left - elemTransformOrigin.horizontal;
18874
+ var bottom = top + elemRect.height;
18875
+ var right = left + elemRect.width; // Use the parent window of the anchorEl if provided
18876
 
18877
+ var containerWindow = (0,ownerWindow/* default */.Z)(getAnchorEl(anchorEl)); // Window thresholds taking required margin into account
 
 
 
 
 
18878
 
18879
+ var heightThreshold = containerWindow.innerHeight - marginThreshold;
18880
+ var widthThreshold = containerWindow.innerWidth - marginThreshold; // Check if the vertical axis needs shifting
 
18881
 
18882
+ if (top < marginThreshold) {
18883
+ var diff = top - marginThreshold;
18884
+ top -= diff;
18885
+ elemTransformOrigin.vertical += diff;
18886
+ } else if (bottom > heightThreshold) {
18887
+ var _diff = bottom - heightThreshold;
18888
 
18889
+ top -= _diff;
18890
+ elemTransformOrigin.vertical += _diff;
18891
+ }
18892
 
18893
+ if (false) {} // Check if the horizontal axis needs shifting
 
 
18894
 
 
 
 
18895
 
18896
+ if (left < marginThreshold) {
18897
+ var _diff2 = left - marginThreshold;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18898
 
18899
+ left -= _diff2;
18900
+ elemTransformOrigin.horizontal += _diff2;
18901
+ } else if (right > widthThreshold) {
18902
+ var _diff3 = right - widthThreshold;
18903
 
18904
+ left -= _diff3;
18905
+ elemTransformOrigin.horizontal += _diff3;
18906
+ }
18907
 
18908
+ return {
18909
+ top: "".concat(Math.round(top), "px"),
18910
+ left: "".concat(Math.round(left), "px"),
18911
+ transformOrigin: getTransformOriginValue(elemTransformOrigin)
18912
+ };
18913
+ }, [anchorEl, anchorReference, getAnchorOffset, getContentAnchorOffset, getTransformOrigin, marginThreshold]);
18914
+ var setPositioningStyles = react.useCallback(function () {
18915
+ var element = paperRef.current;
18916
 
18917
+ if (!element) {
18918
+ return;
18919
+ }
 
 
 
 
18920
 
18921
+ var positioning = getPositioningStyle(element);
 
 
 
 
 
18922
 
18923
+ if (positioning.top !== null) {
18924
+ element.style.top = positioning.top;
18925
+ }
 
 
 
 
18926
 
18927
+ if (positioning.left !== null) {
18928
+ element.style.left = positioning.left;
 
 
18929
  }
 
 
 
18930
 
18931
+ element.style.transformOrigin = positioning.transformOrigin;
18932
+ }, [getPositioningStyle]);
 
18933
 
18934
+ var handleEntering = function handleEntering(element, isAppearing) {
18935
+ if (onEntering) {
18936
+ onEntering(element, isAppearing);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18937
  }
18938
 
18939
+ setPositioningStyles();
18940
  };
 
 
 
 
 
 
 
 
 
 
 
18941
 
18942
+ var handlePaperRef = react.useCallback(function (instance) {
18943
+ // #StrictMode ready
18944
+ paperRef.current = react_dom.findDOMNode(instance);
18945
+ }, []);
18946
+ react.useEffect(function () {
18947
+ if (open) {
18948
+ setPositioningStyles();
18949
+ }
18950
  });
18951
+ react.useImperativeHandle(action, function () {
18952
+ return open ? {
18953
+ updatePosition: function updatePosition() {
18954
+ setPositioningStyles();
18955
+ }
18956
+ } : null;
18957
+ }, [open, setPositioningStyles]);
18958
+ react.useEffect(function () {
18959
+ if (!open) {
18960
+ return undefined;
18961
+ }
18962
 
18963
+ var handleResize = (0,debounce/* default */.Z)(function () {
18964
+ setPositioningStyles();
18965
+ });
18966
+ window.addEventListener('resize', handleResize);
18967
+ return function () {
18968
+ handleResize.clear();
18969
+ window.removeEventListener('resize', handleResize);
18970
+ };
18971
+ }, [open, setPositioningStyles]);
18972
+ var transitionDuration = transitionDurationProp;
18973
 
18974
+ if (transitionDurationProp === 'auto' && !TransitionComponent.muiSupportAuto) {
18975
+ transitionDuration = undefined;
18976
+ } // If the container prop is provided, use that
18977
+ // If the anchorEl prop is provided, use its parent body element as the container
18978
+ // If neither are provided let the Modal take care of choosing the container
18979
 
18980
 
18981
+ var container = containerProp || (anchorEl ? (0,ownerDocument/* default */.Z)(getAnchorEl(anchorEl)).body : undefined);
18982
+ return /*#__PURE__*/react.createElement(Modal_Modal, (0,esm_extends/* default */.Z)({
18983
+ container: container,
18984
+ open: open,
18985
+ ref: ref,
18986
+ BackdropProps: {
18987
+ invisible: true
18988
+ },
18989
+ className: (0,clsx_m/* default */.Z)(classes.root, className)
18990
+ }, other), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
18991
+ appear: true,
18992
+ in: open,
18993
+ onEnter: onEnter,
18994
+ onEntered: onEntered,
18995
+ onExit: onExit,
18996
+ onExited: onExited,
18997
+ onExiting: onExiting,
18998
+ timeout: transitionDuration
18999
+ }, TransitionProps, {
19000
+ onEntering: (0,createChainedFunction/* default */.Z)(handleEntering, TransitionProps.onEntering)
19001
+ }), /*#__PURE__*/react.createElement(Paper_Paper, (0,esm_extends/* default */.Z)({
19002
+ elevation: elevation,
19003
+ ref: handlePaperRef
19004
+ }, PaperProps, {
19005
+ className: (0,clsx_m/* default */.Z)(classes.paper, PaperProps.className)
19006
+ }), children)));
19007
+ });
19008
+ false ? 0 : void 0;
19009
+ /* harmony default export */ var Popover_Popover = ((0,withStyles/* default */.Z)(Popover_styles, {
19010
+ name: 'MuiPopover'
19011
+ })(Popover));
19012
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/List/ListContext.js
19013
 
19014
+ /**
19015
+ * @ignore - internal component.
19016
+ */
19017
 
19018
+ var ListContext = react.createContext({});
19019
 
19020
+ if (false) {}
19021
 
19022
+ /* harmony default export */ var List_ListContext = (ListContext);
19023
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/List/List.js
19024
 
19025
 
19026
 
19027
 
19028
 
19029
 
 
 
 
 
 
 
 
19030
 
19031
+ var List_styles = {
19032
+ /* Styles applied to the root element. */
19033
+ root: {
19034
+ listStyle: 'none',
19035
+ margin: 0,
19036
+ padding: 0,
19037
+ position: 'relative'
19038
+ },
19039
 
19040
+ /* Styles applied to the root element if `disablePadding={false}`. */
19041
+ padding: {
19042
+ paddingTop: 8,
19043
+ paddingBottom: 8
19044
+ },
19045
 
19046
+ /* Styles applied to the root element if dense. */
19047
+ dense: {},
 
 
19048
 
19049
+ /* Styles applied to the root element if a `subheader` is provided. */
19050
+ subheader: {
19051
+ paddingTop: 0
19052
+ }
19053
+ };
19054
+ var List = /*#__PURE__*/react.forwardRef(function List(props, ref) {
19055
+ var children = props.children,
19056
+ classes = props.classes,
19057
+ className = props.className,
19058
+ _props$component = props.component,
19059
+ Component = _props$component === void 0 ? 'ul' : _props$component,
19060
+ _props$dense = props.dense,
19061
+ dense = _props$dense === void 0 ? false : _props$dense,
19062
+ _props$disablePadding = props.disablePadding,
19063
+ disablePadding = _props$disablePadding === void 0 ? false : _props$disablePadding,
19064
+ subheader = props.subheader,
19065
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "component", "dense", "disablePadding", "subheader"]);
19066
 
19067
+ var context = react.useMemo(function () {
19068
+ return {
19069
+ dense: dense
 
 
 
 
 
 
 
 
19070
  };
19071
+ }, [dense]);
19072
+ return /*#__PURE__*/react.createElement(List_ListContext.Provider, {
19073
+ value: context
19074
+ }, /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
19075
+ className: (0,clsx_m/* default */.Z)(classes.root, className, dense && classes.dense, !disablePadding && classes.padding, subheader && classes.subheader),
19076
+ ref: ref
19077
+ }, other), subheader, children));
19078
+ });
19079
+ false ? 0 : void 0;
19080
+ /* harmony default export */ var List_List = ((0,withStyles/* default */.Z)(List_styles, {
19081
+ name: 'MuiList'
19082
+ })(List));
19083
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/MenuList/MenuList.js
19084
 
 
19085
 
 
 
 
 
19086
 
 
19087
 
 
 
 
 
 
 
 
 
 
 
 
 
19088
 
 
 
 
 
19089
 
 
 
19090
 
 
 
19091
 
19092
 
 
 
 
 
 
 
 
 
19093
 
 
 
 
 
 
19094
 
19095
+ function nextItem(list, item, disableListWrap) {
19096
+ if (list === item) {
19097
+ return list.firstChild;
19098
+ }
19099
 
19100
+ if (item && item.nextElementSibling) {
19101
+ return item.nextElementSibling;
19102
+ }
19103
 
19104
+ return disableListWrap ? null : list.firstChild;
19105
+ }
 
 
 
19106
 
19107
+ function previousItem(list, item, disableListWrap) {
19108
+ if (list === item) {
19109
+ return disableListWrap ? list.firstChild : list.lastChild;
19110
+ }
 
19111
 
19112
+ if (item && item.previousElementSibling) {
19113
+ return item.previousElementSibling;
19114
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19115
 
19116
+ return disableListWrap ? null : list.lastChild;
19117
+ }
19118
 
19119
+ function textCriteriaMatches(nextFocus, textCriteria) {
19120
+ if (textCriteria === undefined) {
19121
+ return true;
19122
+ }
19123
 
19124
+ var text = nextFocus.innerText;
19125
+
19126
+ if (text === undefined) {
19127
+ // jsdom doesn't support innerText
19128
+ text = nextFocus.textContent;
19129
+ }
19130
+
19131
+ text = text.trim().toLowerCase();
19132
+
19133
+ if (text.length === 0) {
19134
+ return false;
19135
+ }
19136
+
19137
+ if (textCriteria.repeating) {
19138
+ return text[0] === textCriteria.keys[0];
19139
+ }
19140
+
19141
+ return text.indexOf(textCriteria.keys.join('')) === 0;
19142
+ }
19143
+
19144
+ function moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, traversalFunction, textCriteria) {
19145
+ var wrappedOnce = false;
19146
+ var nextFocus = traversalFunction(list, currentFocus, currentFocus ? disableListWrap : false);
19147
+
19148
+ while (nextFocus) {
19149
+ // Prevent infinite loop.
19150
+ if (nextFocus === list.firstChild) {
19151
+ if (wrappedOnce) {
19152
+ return;
19153
  }
 
 
 
 
 
19154
 
19155
+ wrappedOnce = true;
19156
+ } // Same logic as useAutocomplete.js
 
 
 
 
19157
 
 
 
 
 
 
 
 
19158
 
19159
+ var nextFocusDisabled = disabledItemsFocusable ? false : nextFocus.disabled || nextFocus.getAttribute('aria-disabled') === 'true';
19160
 
19161
+ if (!nextFocus.hasAttribute('tabindex') || !textCriteriaMatches(nextFocus, textCriteria) || nextFocusDisabled) {
19162
+ // Move to the next element.
19163
+ nextFocus = traversalFunction(list, nextFocus, disableListWrap);
19164
+ } else {
19165
+ nextFocus.focus();
19166
+ return;
19167
  }
19168
+ }
19169
+ }
19170
 
19171
+ var MenuList_useEnhancedEffect = typeof window === 'undefined' ? react.useEffect : react.useLayoutEffect;
19172
+ /**
19173
+ * A permanently displayed menu following https://www.w3.org/TR/wai-aria-practices/#menubutton.
19174
+ * It's exposed to help customization of the [`Menu`](/api/menu/) component. If you
19175
+ * use it separately you need to move focus into the component manually. Once
19176
+ * the focus is placed inside the component it is fully keyboard accessible.
19177
+ */
19178
+
19179
+ var MenuList = /*#__PURE__*/react.forwardRef(function MenuList(props, ref) {
19180
+ var actions = props.actions,
19181
+ _props$autoFocus = props.autoFocus,
19182
+ autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
19183
+ _props$autoFocusItem = props.autoFocusItem,
19184
+ autoFocusItem = _props$autoFocusItem === void 0 ? false : _props$autoFocusItem,
19185
+ children = props.children,
19186
+ className = props.className,
19187
+ _props$disabledItemsF = props.disabledItemsFocusable,
19188
+ disabledItemsFocusable = _props$disabledItemsF === void 0 ? false : _props$disabledItemsF,
19189
+ _props$disableListWra = props.disableListWrap,
19190
+ disableListWrap = _props$disableListWra === void 0 ? false : _props$disableListWra,
19191
+ onKeyDown = props.onKeyDown,
19192
+ _props$variant = props.variant,
19193
+ variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,
19194
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["actions", "autoFocus", "autoFocusItem", "children", "className", "disabledItemsFocusable", "disableListWrap", "onKeyDown", "variant"]);
19195
+
19196
+ var listRef = react.useRef(null);
19197
+ var textCriteriaRef = react.useRef({
19198
+ keys: [],
19199
+ repeating: true,
19200
+ previousKeyMatched: true,
19201
+ lastTime: null
19202
+ });
19203
+ MenuList_useEnhancedEffect(function () {
19204
+ if (autoFocus) {
19205
+ listRef.current.focus();
19206
  }
19207
+ }, [autoFocus]);
19208
+ react.useImperativeHandle(actions, function () {
19209
+ return {
19210
+ adjustStyleForScrollbar: function adjustStyleForScrollbar(containerElement, theme) {
19211
+ // Let's ignore that piece of logic if users are already overriding the width
19212
+ // of the menu.
19213
+ var noExplicitWidth = !listRef.current.style.width;
19214
 
19215
+ if (containerElement.clientHeight < listRef.current.clientHeight && noExplicitWidth) {
19216
+ var scrollbarSize = "".concat(getScrollbarSize(true), "px");
19217
+ listRef.current.style[theme.direction === 'rtl' ? 'paddingLeft' : 'paddingRight'] = scrollbarSize;
19218
+ listRef.current.style.width = "calc(100% + ".concat(scrollbarSize, ")");
19219
+ }
19220
 
19221
+ return listRef.current;
19222
+ }
19223
+ };
19224
+ }, []);
19225
 
19226
+ var handleKeyDown = function handleKeyDown(event) {
19227
+ var list = listRef.current;
19228
+ var key = event.key;
19229
+ /**
19230
+ * @type {Element} - will always be defined since we are in a keydown handler
19231
+ * attached to an element. A keydown event is either dispatched to the activeElement
19232
+ * or document.body or document.documentElement. Only the first case will
19233
+ * trigger this specific handler.
19234
+ */
19235
 
19236
+ var currentFocus = (0,ownerDocument/* default */.Z)(list).activeElement;
 
 
19237
 
19238
+ if (key === 'ArrowDown') {
19239
+ // Prevent scroll of the page
19240
+ event.preventDefault();
19241
+ moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, nextItem);
19242
+ } else if (key === 'ArrowUp') {
19243
+ event.preventDefault();
19244
+ moveFocus(list, currentFocus, disableListWrap, disabledItemsFocusable, previousItem);
19245
+ } else if (key === 'Home') {
19246
+ event.preventDefault();
19247
+ moveFocus(list, null, disableListWrap, disabledItemsFocusable, nextItem);
19248
+ } else if (key === 'End') {
19249
+ event.preventDefault();
19250
+ moveFocus(list, null, disableListWrap, disabledItemsFocusable, previousItem);
19251
+ } else if (key.length === 1) {
19252
+ var criteria = textCriteriaRef.current;
19253
+ var lowerKey = key.toLowerCase();
19254
+ var currTime = performance.now();
19255
 
19256
+ if (criteria.keys.length > 0) {
19257
+ // Reset
19258
+ if (currTime - criteria.lastTime > 500) {
19259
+ criteria.keys = [];
19260
+ criteria.repeating = true;
19261
+ criteria.previousKeyMatched = true;
19262
+ } else if (criteria.repeating && lowerKey !== criteria.keys[0]) {
19263
+ criteria.repeating = false;
19264
+ }
19265
+ }
19266
 
19267
+ criteria.lastTime = currTime;
19268
+ criteria.keys.push(lowerKey);
19269
+ var keepFocusOnCurrent = currentFocus && !criteria.repeating && textCriteriaMatches(currentFocus, criteria);
19270
 
19271
+ if (criteria.previousKeyMatched && (keepFocusOnCurrent || moveFocus(list, currentFocus, false, disabledItemsFocusable, nextItem, criteria))) {
19272
+ event.preventDefault();
19273
+ } else {
19274
+ criteria.previousKeyMatched = false;
19275
+ }
19276
  }
19277
 
19278
+ if (onKeyDown) {
19279
+ onKeyDown(event);
19280
  }
19281
  };
 
19282
 
19283
+ var handleOwnRef = react.useCallback(function (instance) {
19284
+ // #StrictMode ready
19285
+ listRef.current = react_dom.findDOMNode(instance);
19286
+ }, []);
19287
+ var handleRef = (0,useForkRef/* default */.Z)(handleOwnRef, ref);
19288
+ /**
19289
+ * the index of the item should receive focus
19290
+ * in a `variant="selectedMenu"` it's the first `selected` item
19291
+ * otherwise it's the very first item.
19292
+ */
19293
 
19294
+ var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead
19295
+ // to check if there is a `selected` item. We're looking for the last `selected`
19296
+ // item and use the first valid item as a fallback
 
 
 
 
 
 
19297
 
19298
+ react.Children.forEach(children, function (child, index) {
19299
+ if (! /*#__PURE__*/react.isValidElement(child)) {
19300
+ return;
19301
+ }
 
 
 
 
 
 
 
 
19302
 
19303
+ if (false) {}
19304
 
19305
+ if (!child.props.disabled) {
19306
+ if (variant === 'selectedMenu' && child.props.selected) {
19307
+ activeItemIndex = index;
19308
+ } else if (activeItemIndex === -1) {
19309
+ activeItemIndex = index;
19310
+ }
19311
+ }
19312
+ });
19313
+ var items = react.Children.map(children, function (child, index) {
19314
+ if (index === activeItemIndex) {
19315
+ var newChildProps = {};
19316
 
19317
+ if (autoFocusItem) {
19318
+ newChildProps.autoFocus = true;
19319
+ }
19320
 
19321
+ if (child.props.tabIndex === undefined && variant === 'selectedMenu') {
19322
+ newChildProps.tabIndex = 0;
19323
+ }
 
 
 
 
 
 
19324
 
19325
+ return /*#__PURE__*/react.cloneElement(child, newChildProps);
19326
+ }
 
 
 
 
 
19327
 
19328
+ return child;
19329
+ });
19330
+ return /*#__PURE__*/react.createElement(List_List, (0,esm_extends/* default */.Z)({
19331
+ role: "menu",
19332
+ ref: handleRef,
19333
+ className: className,
19334
+ onKeyDown: handleKeyDown,
19335
+ tabIndex: autoFocus ? 0 : -1
19336
+ }, other), items);
19337
+ });
19338
+ false ? 0 : void 0;
19339
+ /* harmony default export */ var MenuList_MenuList = (MenuList);
19340
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Menu/Menu.js
19341
 
 
 
 
 
 
 
19342
 
 
 
 
 
 
 
19343
 
 
 
 
 
 
 
19344
 
 
19345
 
 
 
19346
 
 
 
 
 
19347
 
 
 
 
19348
 
 
 
 
19349
 
 
 
 
19350
 
19351
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19352
 
19353
 
19354
+ var RTL_ORIGIN = {
19355
+ vertical: 'top',
19356
+ horizontal: 'right'
19357
+ };
19358
+ var LTR_ORIGIN = {
19359
+ vertical: 'top',
19360
+ horizontal: 'left'
19361
+ };
19362
+ var Menu_styles = {
19363
+ /* Styles applied to the `Paper` component. */
19364
+ paper: {
19365
+ // specZ: The maximum height of a simple menu should be one or more rows less than the view
19366
+ // height. This ensures a tapable area outside of the simple menu with which to dismiss
19367
+ // the menu.
19368
+ maxHeight: 'calc(100% - 96px)',
19369
+ // Add iOS momentum scrolling.
19370
+ WebkitOverflowScrolling: 'touch'
19371
+ },
19372
 
19373
+ /* Styles applied to the `List` component via `MenuList`. */
19374
+ list: {
19375
+ // We disable the focus ring for mouse, touch and keyboard users.
19376
+ outline: 0
19377
+ }
19378
+ };
19379
+ var Menu = /*#__PURE__*/react.forwardRef(function Menu(props, ref) {
19380
+ var _props$autoFocus = props.autoFocus,
19381
+ autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,
19382
+ children = props.children,
19383
+ classes = props.classes,
19384
+ _props$disableAutoFoc = props.disableAutoFocusItem,
19385
+ disableAutoFocusItem = _props$disableAutoFoc === void 0 ? false : _props$disableAutoFoc,
19386
+ _props$MenuListProps = props.MenuListProps,
19387
+ MenuListProps = _props$MenuListProps === void 0 ? {} : _props$MenuListProps,
19388
+ onClose = props.onClose,
19389
+ onEntering = props.onEntering,
19390
+ open = props.open,
19391
+ _props$PaperProps = props.PaperProps,
19392
+ PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
19393
+ PopoverClasses = props.PopoverClasses,
19394
+ _props$transitionDura = props.transitionDuration,
19395
+ transitionDuration = _props$transitionDura === void 0 ? 'auto' : _props$transitionDura,
19396
+ _props$variant = props.variant,
19397
+ variant = _props$variant === void 0 ? 'selectedMenu' : _props$variant,
19398
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["autoFocus", "children", "classes", "disableAutoFocusItem", "MenuListProps", "onClose", "onEntering", "open", "PaperProps", "PopoverClasses", "transitionDuration", "variant"]);
19399
 
19400
+ var theme = useTheme_useTheme();
19401
+ var autoFocusItem = autoFocus && !disableAutoFocusItem && open;
19402
+ var menuListActionsRef = react.useRef(null);
19403
+ var contentAnchorRef = react.useRef(null);
19404
 
19405
+ var getContentAnchorEl = function getContentAnchorEl() {
19406
+ return contentAnchorRef.current;
19407
+ };
19408
 
19409
+ var handleEntering = function handleEntering(element, isAppearing) {
19410
+ if (menuListActionsRef.current) {
19411
+ menuListActionsRef.current.adjustStyleForScrollbar(element, theme);
19412
+ }
 
 
 
 
19413
 
19414
+ if (onEntering) {
19415
+ onEntering(element, isAppearing);
19416
+ }
 
 
 
 
 
19417
  };
 
19418
 
19419
+ var handleListKeyDown = function handleListKeyDown(event) {
19420
+ if (event.key === 'Tab') {
19421
+ event.preventDefault();
19422
 
19423
+ if (onClose) {
19424
+ onClose(event, 'tabKeyDown');
19425
+ }
19426
+ }
19427
+ };
19428
+ /**
19429
+ * the index of the item should receive focus
19430
+ * in a `variant="selectedMenu"` it's the first `selected` item
19431
+ * otherwise it's the very first item.
19432
+ */
19433
 
 
 
 
 
 
19434
 
19435
+ var activeItemIndex = -1; // since we inject focus related props into children we have to do a lookahead
19436
+ // to check if there is a `selected` item. We're looking for the last `selected`
19437
+ // item and use the first valid item as a fallback
 
 
19438
 
19439
+ react.Children.map(children, function (child, index) {
19440
+ if (! /*#__PURE__*/react.isValidElement(child)) {
19441
+ return;
19442
+ }
19443
 
19444
+ if (false) {}
 
19445
 
19446
+ if (!child.props.disabled) {
19447
+ if (variant !== "menu" && child.props.selected) {
19448
+ activeItemIndex = index;
19449
+ } else if (activeItemIndex === -1) {
19450
+ activeItemIndex = index;
19451
  }
19452
+ }
19453
+ });
19454
+ var items = react.Children.map(children, function (child, index) {
19455
+ if (index === activeItemIndex) {
19456
+ return /*#__PURE__*/react.cloneElement(child, {
19457
+ ref: function ref(instance) {
19458
+ // #StrictMode ready
19459
+ contentAnchorRef.current = react_dom.findDOMNode(instance);
19460
+ (0,setRef/* default */.Z)(child.ref, instance);
19461
+ }
19462
+ });
19463
+ }
19464
 
19465
+ return child;
19466
+ });
19467
+ return /*#__PURE__*/react.createElement(Popover_Popover, (0,esm_extends/* default */.Z)({
19468
+ getContentAnchorEl: getContentAnchorEl,
19469
+ classes: PopoverClasses,
19470
+ onClose: onClose,
19471
+ onEntering: handleEntering,
19472
+ anchorOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,
19473
+ transformOrigin: theme.direction === 'rtl' ? RTL_ORIGIN : LTR_ORIGIN,
19474
+ PaperProps: (0,esm_extends/* default */.Z)({}, PaperProps, {
19475
+ classes: (0,esm_extends/* default */.Z)({}, PaperProps.classes, {
19476
+ root: classes.paper
19477
+ })
19478
+ }),
19479
+ open: open,
19480
+ ref: ref,
19481
+ transitionDuration: transitionDuration
19482
+ }, other), /*#__PURE__*/react.createElement(MenuList_MenuList, (0,esm_extends/* default */.Z)({
19483
+ onKeyDown: handleListKeyDown,
19484
+ actions: menuListActionsRef,
19485
+ autoFocus: autoFocus && (activeItemIndex === -1 || disableAutoFocusItem),
19486
+ autoFocusItem: autoFocusItem,
19487
+ variant: variant
19488
+ }, MenuListProps, {
19489
+ className: (0,clsx_m/* default */.Z)(classes.list, MenuListProps.className)
19490
+ }), items));
19491
+ });
19492
+ false ? 0 : void 0;
19493
+ /* harmony default export */ var Menu_Menu = ((0,withStyles/* default */.Z)(Menu_styles, {
19494
+ name: 'MuiMenu'
19495
+ })(Menu));
19496
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/isMuiElement.js
19497
+ var isMuiElement = __webpack_require__(83711);
19498
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItem/ListItem.js
19499
 
 
19500
 
 
 
19501
 
 
 
 
19502
 
 
 
19503
 
 
 
 
 
19504
 
 
 
 
19505
 
 
 
19506
 
 
 
19507
 
 
 
19508
 
 
 
 
 
 
 
 
 
 
19509
 
 
19510
 
19511
+ var ListItem_styles = function styles(theme) {
19512
+ return {
19513
+ /* Styles applied to the (normally root) `component` element. May be wrapped by a `container`. */
19514
+ root: {
19515
+ display: 'flex',
19516
+ justifyContent: 'flex-start',
19517
+ alignItems: 'center',
19518
+ position: 'relative',
19519
+ textDecoration: 'none',
19520
+ width: '100%',
19521
+ boxSizing: 'border-box',
19522
+ textAlign: 'left',
19523
+ paddingTop: 8,
19524
+ paddingBottom: 8,
19525
+ '&$focusVisible': {
19526
+ backgroundColor: theme.palette.action.selected
19527
+ },
19528
+ '&$selected, &$selected:hover': {
19529
+ backgroundColor: theme.palette.action.selected
19530
+ },
19531
+ '&$disabled': {
19532
+ opacity: 0.5
19533
+ }
19534
+ },
19535
 
19536
+ /* Styles applied to the `container` element if `children` includes `ListItemSecondaryAction`. */
19537
+ container: {
19538
+ position: 'relative'
19539
+ },
 
 
 
 
19540
 
19541
+ /* Pseudo-class applied to the `component`'s `focusVisibleClassName` prop if `button={true}`. */
19542
+ focusVisible: {},
 
 
 
 
 
 
19543
 
19544
+ /* Styles applied to the `component` element if dense. */
19545
+ dense: {
19546
+ paddingTop: 4,
19547
+ paddingBottom: 4
19548
+ },
19549
 
19550
+ /* Styles applied to the `component` element if `alignItems="flex-start"`. */
19551
+ alignItemsFlexStart: {
19552
+ alignItems: 'flex-start'
19553
+ },
19554
 
19555
+ /* Pseudo-class applied to the inner `component` element if `disabled={true}`. */
19556
+ disabled: {},
 
 
 
 
 
 
19557
 
19558
+ /* Styles applied to the inner `component` element if `divider={true}`. */
19559
+ divider: {
19560
+ borderBottom: "1px solid ".concat(theme.palette.divider),
19561
+ backgroundClip: 'padding-box'
19562
+ },
19563
 
19564
+ /* Styles applied to the inner `component` element if `disableGutters={false}`. */
19565
+ gutters: {
19566
+ paddingLeft: 16,
19567
+ paddingRight: 16
19568
+ },
 
19569
 
19570
+ /* Styles applied to the inner `component` element if `button={true}`. */
19571
+ button: {
19572
+ transition: theme.transitions.create('background-color', {
19573
+ duration: theme.transitions.duration.shortest
19574
+ }),
19575
+ '&:hover': {
19576
+ textDecoration: 'none',
19577
+ backgroundColor: theme.palette.action.hover,
19578
+ // Reset on touch devices, it doesn't add specificity
19579
+ '@media (hover: none)': {
19580
+ backgroundColor: 'transparent'
19581
+ }
19582
+ }
19583
+ },
19584
 
19585
+ /* Styles applied to the `component` element if `children` includes `ListItemSecondaryAction`. */
19586
+ secondaryAction: {
19587
+ // Add some space to avoid collision as `ListItemSecondaryAction`
19588
+ // is absolutely positioned.
19589
+ paddingRight: 48
19590
+ },
19591
 
19592
+ /* Pseudo-class applied to the root element if `selected={true}`. */
19593
+ selected: {}
19594
+ };
19595
+ };
19596
+ var ListItem_useEnhancedEffect = typeof window === 'undefined' ? react.useEffect : react.useLayoutEffect;
19597
+ /**
19598
+ * Uses an additional container component if `ListItemSecondaryAction` is the last child.
19599
+ */
19600
 
19601
+ var ListItem = /*#__PURE__*/react.forwardRef(function ListItem(props, ref) {
19602
+ var _props$alignItems = props.alignItems,
19603
+ alignItems = _props$alignItems === void 0 ? 'center' : _props$alignItems,
19604
+ _props$autoFocus = props.autoFocus,
19605
+ autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
19606
+ _props$button = props.button,
19607
+ button = _props$button === void 0 ? false : _props$button,
19608
+ childrenProp = props.children,
19609
+ classes = props.classes,
19610
+ className = props.className,
19611
+ componentProp = props.component,
19612
+ _props$ContainerCompo = props.ContainerComponent,
19613
+ ContainerComponent = _props$ContainerCompo === void 0 ? 'li' : _props$ContainerCompo,
19614
+ _props$ContainerProps = props.ContainerProps;
19615
+ _props$ContainerProps = _props$ContainerProps === void 0 ? {} : _props$ContainerProps;
19616
 
19617
+ var ContainerClassName = _props$ContainerProps.className,
19618
+ ContainerProps = (0,objectWithoutProperties/* default */.Z)(_props$ContainerProps, ["className"]),
19619
+ _props$dense = props.dense,
19620
+ dense = _props$dense === void 0 ? false : _props$dense,
19621
+ _props$disabled = props.disabled,
19622
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
19623
+ _props$disableGutters = props.disableGutters,
19624
+ disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,
19625
+ _props$divider = props.divider,
19626
+ divider = _props$divider === void 0 ? false : _props$divider,
19627
+ focusVisibleClassName = props.focusVisibleClassName,
19628
+ _props$selected = props.selected,
19629
+ selected = _props$selected === void 0 ? false : _props$selected,
19630
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["alignItems", "autoFocus", "button", "children", "classes", "className", "component", "ContainerComponent", "ContainerProps", "dense", "disabled", "disableGutters", "divider", "focusVisibleClassName", "selected"]);
19631
+
19632
+ var context = react.useContext(List_ListContext);
19633
+ var childContext = {
19634
+ dense: dense || context.dense || false,
19635
+ alignItems: alignItems
19636
  };
19637
+ var listItemRef = react.useRef(null);
19638
+ ListItem_useEnhancedEffect(function () {
19639
+ if (autoFocus) {
19640
+ if (listItemRef.current) {
19641
+ listItemRef.current.focus();
19642
+ } else if (false) {}
19643
+ }
19644
+ }, [autoFocus]);
19645
+ var children = react.Children.toArray(childrenProp);
19646
+ var hasSecondaryAction = children.length && (0,isMuiElement/* default */.Z)(children[children.length - 1], ['ListItemSecondaryAction']);
19647
+ var handleOwnRef = react.useCallback(function (instance) {
19648
+ // #StrictMode ready
19649
+ listItemRef.current = react_dom.findDOMNode(instance);
19650
+ }, []);
19651
+ var handleRef = (0,useForkRef/* default */.Z)(handleOwnRef, ref);
19652
 
19653
+ var componentProps = (0,esm_extends/* default */.Z)({
19654
+ className: (0,clsx_m/* default */.Z)(classes.root, className, childContext.dense && classes.dense, !disableGutters && classes.gutters, divider && classes.divider, disabled && classes.disabled, button && classes.button, alignItems !== "center" && classes.alignItemsFlexStart, hasSecondaryAction && classes.secondaryAction, selected && classes.selected),
19655
+ disabled: disabled
19656
+ }, other);
19657
 
19658
+ var Component = componentProp || 'li';
 
 
 
 
19659
 
19660
+ if (button) {
19661
+ componentProps.component = componentProp || 'div';
19662
+ componentProps.focusVisibleClassName = (0,clsx_m/* default */.Z)(classes.focusVisible, focusVisibleClassName);
19663
+ Component = ButtonBase_ButtonBase;
19664
+ }
19665
 
19666
+ if (hasSecondaryAction) {
19667
+ // Use div by default.
19668
+ Component = !componentProps.component && !componentProp ? 'div' : Component; // Avoid nesting of li > li.
19669
 
19670
+ if (ContainerComponent === 'li') {
19671
+ if (Component === 'li') {
19672
+ Component = 'div';
19673
+ } else if (componentProps.component === 'li') {
19674
+ componentProps.component = 'div';
19675
+ }
19676
+ }
19677
 
19678
+ return /*#__PURE__*/react.createElement(List_ListContext.Provider, {
19679
+ value: childContext
19680
+ }, /*#__PURE__*/react.createElement(ContainerComponent, (0,esm_extends/* default */.Z)({
19681
+ className: (0,clsx_m/* default */.Z)(classes.container, ContainerClassName),
19682
+ ref: handleRef
19683
+ }, ContainerProps), /*#__PURE__*/react.createElement(Component, componentProps, children), children.pop()));
19684
+ }
19685
 
19686
+ return /*#__PURE__*/react.createElement(List_ListContext.Provider, {
19687
+ value: childContext
19688
+ }, /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
19689
+ ref: handleRef
19690
+ }, componentProps), children));
 
 
19691
  });
19692
+ false ? 0 : void 0;
19693
+ /* harmony default export */ var ListItem_ListItem = ((0,withStyles/* default */.Z)(ListItem_styles, {
19694
+ name: 'MuiListItem'
19695
+ })(ListItem));
19696
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/MenuItem/MenuItem.js
19697
 
19698
 
 
 
 
19699
 
 
 
 
 
 
19700
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19701
 
 
 
 
 
19702
 
 
 
19703
 
19704
 
19705
+ var MenuItem_styles = function styles(theme) {
19706
+ return {
19707
+ /* Styles applied to the root element. */
19708
+ root: (0,esm_extends/* default */.Z)({}, theme.typography.body1, (0,defineProperty/* default */.Z)({
19709
+ minHeight: 48,
19710
+ paddingTop: 6,
19711
+ paddingBottom: 6,
19712
+ boxSizing: 'border-box',
19713
+ width: 'auto',
19714
+ overflow: 'hidden',
19715
+ whiteSpace: 'nowrap'
19716
+ }, theme.breakpoints.up('sm'), {
19717
+ minHeight: 'auto'
19718
+ })),
19719
+ // TODO v5: remove
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19720
 
19721
+ /* Styles applied to the root element if `disableGutters={false}`. */
19722
+ gutters: {},
19723
 
19724
+ /* Styles applied to the root element if `selected={true}`. */
19725
+ selected: {},
19726
 
19727
+ /* Styles applied to the root element if dense. */
19728
+ dense: (0,esm_extends/* default */.Z)({}, theme.typography.body2, {
19729
+ minHeight: 'auto'
19730
+ })
19731
+ };
19732
+ };
19733
+ var MenuItem = /*#__PURE__*/react.forwardRef(function MenuItem(props, ref) {
19734
+ var classes = props.classes,
19735
+ className = props.className,
19736
+ _props$component = props.component,
19737
+ component = _props$component === void 0 ? 'li' : _props$component,
19738
+ _props$disableGutters = props.disableGutters,
19739
+ disableGutters = _props$disableGutters === void 0 ? false : _props$disableGutters,
19740
+ ListItemClasses = props.ListItemClasses,
19741
+ _props$role = props.role,
19742
+ role = _props$role === void 0 ? 'menuitem' : _props$role,
19743
+ selected = props.selected,
19744
+ tabIndexProp = props.tabIndex,
19745
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "component", "disableGutters", "ListItemClasses", "role", "selected", "tabIndex"]);
19746
 
19747
+ var tabIndex;
 
 
 
 
 
 
 
 
 
19748
 
19749
+ if (!props.disabled) {
19750
+ tabIndex = tabIndexProp !== undefined ? tabIndexProp : -1;
 
 
19751
  }
19752
 
19753
+ return /*#__PURE__*/react.createElement(ListItem_ListItem, (0,esm_extends/* default */.Z)({
19754
+ button: true,
19755
+ role: role,
19756
+ tabIndex: tabIndex,
19757
+ component: component,
19758
+ selected: selected,
19759
+ disableGutters: disableGutters,
19760
+ classes: (0,esm_extends/* default */.Z)({
19761
+ dense: classes.dense
19762
+ }, ListItemClasses),
19763
+ className: (0,clsx_m/* default */.Z)(classes.root, className, selected && classes.selected, !disableGutters && classes.gutters),
19764
+ ref: ref
19765
+ }, other));
19766
+ });
19767
+ false ? 0 : void 0;
19768
+ /* harmony default export */ var MenuItem_MenuItem = ((0,withStyles/* default */.Z)(MenuItem_styles, {
19769
+ name: 'MuiMenuItem'
19770
+ })(MenuItem));
19771
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItemIcon/ListItemIcon.js
19772
 
19773
 
19774
 
 
 
19775
 
 
 
19776
 
 
 
 
 
 
 
 
19777
 
 
 
 
19778
 
19779
+ var ListItemIcon_styles = function styles(theme) {
19780
  return {
19781
+ /* Styles applied to the root element. */
19782
+ root: {
19783
+ minWidth: 56,
19784
+ color: theme.palette.action.active,
19785
+ flexShrink: 0,
19786
+ display: 'inline-flex'
19787
+ },
19788
+
19789
+ /* Styles applied to the root element when the parent `ListItem` uses `alignItems="flex-start"`. */
19790
+ alignItemsFlexStart: {
19791
+ marginTop: 8
19792
+ }
19793
  };
19794
+ };
19795
+ /**
19796
+ * A simple wrapper to apply `List` styles to an `Icon` or `SvgIcon`.
19797
+ */
19798
 
19799
+ var ListItemIcon = /*#__PURE__*/react.forwardRef(function ListItemIcon(props, ref) {
19800
+ var classes = props.classes,
19801
+ className = props.className,
19802
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className"]);
19803
 
19804
+ var context = react.useContext(List_ListContext);
19805
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
19806
+ className: (0,clsx_m/* default */.Z)(classes.root, className, context.alignItems === 'flex-start' && classes.alignItemsFlexStart),
19807
+ ref: ref
19808
+ }, other));
19809
+ });
19810
+ false ? 0 : void 0;
19811
+ /* harmony default export */ var ListItemIcon_ListItemIcon = ((0,withStyles/* default */.Z)(ListItemIcon_styles, {
19812
+ name: 'MuiListItemIcon'
19813
+ })(ListItemIcon));
19814
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Typography/Typography.js
19815
 
 
 
 
 
19816
 
19817
 
 
 
 
19818
 
19819
 
 
 
 
 
 
 
 
 
 
 
 
 
19820
 
19821
 
19822
+ var Typography_styles = function styles(theme) {
19823
+ return {
19824
+ /* Styles applied to the root element. */
19825
+ root: {
19826
+ margin: 0
19827
+ },
19828
 
19829
+ /* Styles applied to the root element if `variant="body2"`. */
19830
+ body2: theme.typography.body2,
19831
 
19832
+ /* Styles applied to the root element if `variant="body1"`. */
19833
+ body1: theme.typography.body1,
19834
 
19835
+ /* Styles applied to the root element if `variant="caption"`. */
19836
+ caption: theme.typography.caption,
19837
 
19838
+ /* Styles applied to the root element if `variant="button"`. */
19839
+ button: theme.typography.button,
19840
 
19841
+ /* Styles applied to the root element if `variant="h1"`. */
19842
+ h1: theme.typography.h1,
19843
 
19844
+ /* Styles applied to the root element if `variant="h2"`. */
19845
+ h2: theme.typography.h2,
19846
 
19847
+ /* Styles applied to the root element if `variant="h3"`. */
19848
+ h3: theme.typography.h3,
19849
 
19850
+ /* Styles applied to the root element if `variant="h4"`. */
19851
+ h4: theme.typography.h4,
19852
 
19853
+ /* Styles applied to the root element if `variant="h5"`. */
19854
+ h5: theme.typography.h5,
19855
 
19856
+ /* Styles applied to the root element if `variant="h6"`. */
19857
+ h6: theme.typography.h6,
19858
 
19859
+ /* Styles applied to the root element if `variant="subtitle1"`. */
19860
+ subtitle1: theme.typography.subtitle1,
19861
 
19862
+ /* Styles applied to the root element if `variant="subtitle2"`. */
19863
+ subtitle2: theme.typography.subtitle2,
19864
 
19865
+ /* Styles applied to the root element if `variant="overline"`. */
19866
+ overline: theme.typography.overline,
 
 
 
 
 
 
 
 
 
 
19867
 
19868
+ /* Styles applied to the root element if `variant="srOnly"`. Only accessible to screen readers. */
19869
+ srOnly: {
19870
+ position: 'absolute',
19871
+ height: 1,
19872
+ width: 1,
19873
+ overflow: 'hidden'
19874
+ },
19875
 
19876
+ /* Styles applied to the root element if `align="left"`. */
19877
+ alignLeft: {
19878
+ textAlign: 'left'
19879
+ },
19880
 
19881
+ /* Styles applied to the root element if `align="center"`. */
19882
+ alignCenter: {
19883
+ textAlign: 'center'
19884
+ },
19885
 
19886
+ /* Styles applied to the root element if `align="right"`. */
19887
+ alignRight: {
19888
+ textAlign: 'right'
19889
+ },
19890
 
19891
+ /* Styles applied to the root element if `align="justify"`. */
19892
+ alignJustify: {
19893
+ textAlign: 'justify'
19894
+ },
19895
 
19896
+ /* Styles applied to the root element if `nowrap={true}`. */
19897
+ noWrap: {
19898
+ overflow: 'hidden',
19899
+ textOverflow: 'ellipsis',
19900
+ whiteSpace: 'nowrap'
19901
+ },
19902
 
19903
+ /* Styles applied to the root element if `gutterBottom={true}`. */
19904
+ gutterBottom: {
19905
+ marginBottom: '0.35em'
19906
+ },
19907
 
19908
+ /* Styles applied to the root element if `paragraph={true}`. */
19909
+ paragraph: {
19910
+ marginBottom: 16
19911
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19912
 
19913
+ /* Styles applied to the root element if `color="inherit"`. */
19914
+ colorInherit: {
19915
+ color: 'inherit'
19916
+ },
 
 
 
 
 
 
 
19917
 
19918
+ /* Styles applied to the root element if `color="primary"`. */
19919
+ colorPrimary: {
19920
+ color: theme.palette.primary.main
19921
+ },
19922
 
19923
+ /* Styles applied to the root element if `color="secondary"`. */
19924
+ colorSecondary: {
19925
+ color: theme.palette.secondary.main
19926
+ },
19927
 
19928
+ /* Styles applied to the root element if `color="textPrimary"`. */
19929
+ colorTextPrimary: {
19930
+ color: theme.palette.text.primary
19931
+ },
19932
 
19933
+ /* Styles applied to the root element if `color="textSecondary"`. */
19934
+ colorTextSecondary: {
19935
+ color: theme.palette.text.secondary
19936
+ },
19937
 
19938
+ /* Styles applied to the root element if `color="error"`. */
19939
+ colorError: {
19940
+ color: theme.palette.error.main
19941
+ },
19942
 
19943
+ /* Styles applied to the root element if `display="inline"`. */
19944
+ displayInline: {
19945
+ display: 'inline'
19946
+ },
19947
 
19948
+ /* Styles applied to the root element if `display="block"`. */
19949
+ displayBlock: {
19950
+ display: 'block'
19951
+ }
19952
+ };
19953
+ };
19954
+ var defaultVariantMapping = {
19955
+ h1: 'h1',
19956
+ h2: 'h2',
19957
+ h3: 'h3',
19958
+ h4: 'h4',
19959
+ h5: 'h5',
19960
+ h6: 'h6',
19961
+ subtitle1: 'h6',
19962
+ subtitle2: 'h6',
19963
+ body1: 'p',
19964
+ body2: 'p'
19965
+ };
19966
+ var Typography = /*#__PURE__*/react.forwardRef(function Typography(props, ref) {
19967
+ var _props$align = props.align,
19968
+ align = _props$align === void 0 ? 'inherit' : _props$align,
19969
+ classes = props.classes,
19970
+ className = props.className,
19971
+ _props$color = props.color,
19972
+ color = _props$color === void 0 ? 'initial' : _props$color,
19973
+ component = props.component,
19974
+ _props$display = props.display,
19975
+ display = _props$display === void 0 ? 'initial' : _props$display,
19976
+ _props$gutterBottom = props.gutterBottom,
19977
+ gutterBottom = _props$gutterBottom === void 0 ? false : _props$gutterBottom,
19978
+ _props$noWrap = props.noWrap,
19979
+ noWrap = _props$noWrap === void 0 ? false : _props$noWrap,
19980
+ _props$paragraph = props.paragraph,
19981
+ paragraph = _props$paragraph === void 0 ? false : _props$paragraph,
19982
+ _props$variant = props.variant,
19983
+ variant = _props$variant === void 0 ? 'body1' : _props$variant,
19984
+ _props$variantMapping = props.variantMapping,
19985
+ variantMapping = _props$variantMapping === void 0 ? defaultVariantMapping : _props$variantMapping,
19986
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["align", "classes", "className", "color", "component", "display", "gutterBottom", "noWrap", "paragraph", "variant", "variantMapping"]);
19987
 
19988
+ var Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';
19989
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
19990
+ className: (0,clsx_m/* default */.Z)(classes.root, className, variant !== 'inherit' && classes[variant], color !== 'initial' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], noWrap && classes.noWrap, gutterBottom && classes.gutterBottom, paragraph && classes.paragraph, align !== 'inherit' && classes["align".concat((0,utils_capitalize/* default */.Z)(align))], display !== 'initial' && classes["display".concat((0,utils_capitalize/* default */.Z)(display))]),
19991
+ ref: ref
19992
+ }, other));
19993
+ });
19994
+ false ? 0 : void 0;
19995
+ /* harmony default export */ var Typography_Typography = ((0,withStyles/* default */.Z)(Typography_styles, {
19996
+ name: 'MuiTypography'
19997
+ })(Typography));
19998
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ListItemText/ListItemText.js
19999
 
 
 
 
 
20000
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20001
 
 
 
 
 
 
 
 
20002
 
 
 
 
 
 
 
 
 
20003
 
 
 
 
20004
 
20005
 
20006
 
20007
+ var ListItemText_styles = {
20008
+ /* Styles applied to the root element. */
20009
+ root: {
20010
+ flex: '1 1 auto',
20011
+ minWidth: 0,
20012
+ marginTop: 4,
20013
+ marginBottom: 4
20014
+ },
20015
 
20016
+ /* Styles applied to the `Typography` components if primary and secondary are set. */
20017
+ multiline: {
20018
+ marginTop: 6,
20019
+ marginBottom: 6
20020
+ },
20021
 
20022
+ /* Styles applied to the `Typography` components if dense. */
20023
+ dense: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
20024
 
20025
+ /* Styles applied to the root element if `inset={true}`. */
20026
+ inset: {
20027
+ paddingLeft: 56
20028
+ },
20029
 
20030
+ /* Styles applied to the primary `Typography` component. */
20031
+ primary: {},
20032
 
20033
+ /* Styles applied to the secondary `Typography` component. */
20034
+ secondary: {}
20035
+ };
20036
+ var ListItemText = /*#__PURE__*/react.forwardRef(function ListItemText(props, ref) {
20037
+ var children = props.children,
20038
+ classes = props.classes,
20039
+ className = props.className,
20040
+ _props$disableTypogra = props.disableTypography,
20041
+ disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
20042
+ _props$inset = props.inset,
20043
+ inset = _props$inset === void 0 ? false : _props$inset,
20044
+ primaryProp = props.primary,
20045
+ primaryTypographyProps = props.primaryTypographyProps,
20046
+ secondaryProp = props.secondary,
20047
+ secondaryTypographyProps = props.secondaryTypographyProps,
20048
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography", "inset", "primary", "primaryTypographyProps", "secondary", "secondaryTypographyProps"]);
20049
 
20050
+ var _React$useContext = react.useContext(List_ListContext),
20051
+ dense = _React$useContext.dense;
 
 
 
 
 
 
 
 
 
 
 
 
20052
 
20053
+ var primary = primaryProp != null ? primaryProp : children;
20054
 
20055
+ if (primary != null && primary.type !== Typography_Typography && !disableTypography) {
20056
+ primary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
20057
+ variant: dense ? 'body2' : 'body1',
20058
+ className: classes.primary,
20059
+ component: "span",
20060
+ display: "block"
20061
+ }, primaryTypographyProps), primary);
20062
+ }
20063
 
20064
+ var secondary = secondaryProp;
20065
 
20066
+ if (secondary != null && secondary.type !== Typography_Typography && !disableTypography) {
20067
+ secondary = /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
20068
+ variant: "body2",
20069
+ className: classes.secondary,
20070
+ color: "textSecondary",
20071
+ display: "block"
20072
+ }, secondaryTypographyProps), secondary);
20073
+ }
20074
 
20075
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
20076
+ className: (0,clsx_m/* default */.Z)(classes.root, className, dense && classes.dense, inset && classes.inset, primary && secondary && classes.multiline),
20077
+ ref: ref
20078
+ }, other), primary, secondary);
20079
+ });
20080
+ false ? 0 : void 0;
20081
+ /* harmony default export */ var ListItemText_ListItemText = ((0,withStyles/* default */.Z)(ListItemText_styles, {
20082
+ name: 'MuiListItemText'
20083
+ })(ListItemText));
20084
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/CircularProgress/CircularProgress.js
20085
 
 
20086
 
 
 
 
 
20087
 
 
 
 
20088
 
 
 
 
 
20089
 
 
 
 
20090
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20091
 
 
 
20092
 
20093
+ var SIZE = 44;
20094
+ var CircularProgress_styles = function styles(theme) {
20095
+ return {
20096
+ /* Styles applied to the root element. */
20097
+ root: {
20098
+ display: 'inline-block'
20099
+ },
20100
 
20101
+ /* Styles applied to the root element if `variant="static"`. */
20102
+ static: {
20103
+ transition: theme.transitions.create('transform')
20104
+ },
 
 
 
 
 
 
 
20105
 
20106
+ /* Styles applied to the root element if `variant="indeterminate"`. */
20107
+ indeterminate: {
20108
+ animation: '$circular-rotate 1.4s linear infinite'
20109
+ },
20110
 
20111
+ /* Styles applied to the root element if `variant="determinate"`. */
20112
+ determinate: {
20113
+ transition: theme.transitions.create('transform')
20114
+ },
20115
 
20116
+ /* Styles applied to the root element if `color="primary"`. */
20117
+ colorPrimary: {
20118
+ color: theme.palette.primary.main
20119
+ },
20120
 
20121
+ /* Styles applied to the root element if `color="secondary"`. */
20122
+ colorSecondary: {
20123
+ color: theme.palette.secondary.main
20124
+ },
20125
 
20126
+ /* Styles applied to the `svg` element. */
20127
+ svg: {
20128
+ display: 'block' // Keeps the progress centered
 
 
 
 
20129
 
20130
+ },
 
20131
 
20132
+ /* Styles applied to the `circle` svg path. */
20133
+ circle: {
20134
+ stroke: 'currentColor' // Use butt to follow the specification, by chance, it's already the default CSS value.
20135
+ // strokeLinecap: 'butt',
20136
 
20137
+ },
 
 
20138
 
20139
+ /* Styles applied to the `circle` svg path if `variant="static"`. */
20140
+ circleStatic: {
20141
+ transition: theme.transitions.create('stroke-dashoffset')
20142
+ },
 
 
20143
 
20144
+ /* Styles applied to the `circle` svg path if `variant="indeterminate"`. */
20145
+ circleIndeterminate: {
20146
+ animation: '$circular-dash 1.4s ease-in-out infinite',
20147
+ // Some default value that looks fine waiting for the animation to kicks in.
20148
+ strokeDasharray: '80px, 200px',
20149
+ strokeDashoffset: '0px' // Add the unit to fix a Edge 16 and below bug.
20150
 
20151
+ },
 
20152
 
20153
+ /* Styles applied to the `circle` svg path if `variant="determinate"`. */
20154
+ circleDeterminate: {
20155
+ transition: theme.transitions.create('stroke-dashoffset')
20156
+ },
20157
+ '@keyframes circular-rotate': {
20158
+ '0%': {
20159
+ // Fix IE 11 wobbly
20160
+ transformOrigin: '50% 50%'
20161
+ },
20162
+ '100%': {
20163
+ transform: 'rotate(360deg)'
20164
+ }
20165
+ },
20166
+ '@keyframes circular-dash': {
20167
+ '0%': {
20168
+ strokeDasharray: '1px, 200px',
20169
+ strokeDashoffset: '0px'
20170
+ },
20171
+ '50%': {
20172
+ strokeDasharray: '100px, 200px',
20173
+ strokeDashoffset: '-15px'
20174
+ },
20175
+ '100%': {
20176
+ strokeDasharray: '100px, 200px',
20177
+ strokeDashoffset: '-125px'
20178
+ }
20179
+ },
20180
+
20181
+ /* Styles applied to the `circle` svg path if `disableShrink={true}`. */
20182
+ circleDisableShrink: {
20183
+ animation: 'none'
20184
  }
20185
+ };
20186
+ };
20187
+ /**
20188
+ * ## ARIA
20189
+ *
20190
+ * If the progress bar is describing the loading progress of a particular region of a page,
20191
+ * you should use `aria-describedby` to point to the progress bar, and set the `aria-busy`
20192
+ * attribute to `true` on that region until it has finished loading.
20193
+ */
20194
 
20195
+ var CircularProgress = /*#__PURE__*/react.forwardRef(function CircularProgress(props, ref) {
20196
+ var classes = props.classes,
20197
+ className = props.className,
20198
+ _props$color = props.color,
20199
+ color = _props$color === void 0 ? 'primary' : _props$color,
20200
+ _props$disableShrink = props.disableShrink,
20201
+ disableShrink = _props$disableShrink === void 0 ? false : _props$disableShrink,
20202
+ _props$size = props.size,
20203
+ size = _props$size === void 0 ? 40 : _props$size,
20204
+ style = props.style,
20205
+ _props$thickness = props.thickness,
20206
+ thickness = _props$thickness === void 0 ? 3.6 : _props$thickness,
20207
+ _props$value = props.value,
20208
+ value = _props$value === void 0 ? 0 : _props$value,
20209
+ _props$variant = props.variant,
20210
+ variant = _props$variant === void 0 ? 'indeterminate' : _props$variant,
20211
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "disableShrink", "size", "style", "thickness", "value", "variant"]);
20212
 
20213
+ var circleStyle = {};
20214
+ var rootStyle = {};
20215
+ var rootProps = {};
20216
 
20217
+ if (variant === 'determinate' || variant === 'static') {
20218
+ var circumference = 2 * Math.PI * ((SIZE - thickness) / 2);
20219
+ circleStyle.strokeDasharray = circumference.toFixed(3);
20220
+ rootProps['aria-valuenow'] = Math.round(value);
20221
+ circleStyle.strokeDashoffset = "".concat(((100 - value) / 100 * circumference).toFixed(3), "px");
20222
+ rootStyle.transform = 'rotate(-90deg)';
 
 
20223
  }
20224
+
20225
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
20226
+ className: (0,clsx_m/* default */.Z)(classes.root, className, color !== 'inherit' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], {
20227
+ 'determinate': classes.determinate,
20228
+ 'indeterminate': classes.indeterminate,
20229
+ 'static': classes.static
20230
+ }[variant]),
20231
+ style: (0,esm_extends/* default */.Z)({
20232
+ width: size,
20233
+ height: size
20234
+ }, rootStyle, style),
20235
+ ref: ref,
20236
+ role: "progressbar"
20237
+ }, rootProps, other), /*#__PURE__*/react.createElement("svg", {
20238
+ className: classes.svg,
20239
+ viewBox: "".concat(SIZE / 2, " ").concat(SIZE / 2, " ").concat(SIZE, " ").concat(SIZE)
20240
+ }, /*#__PURE__*/react.createElement("circle", {
20241
+ className: (0,clsx_m/* default */.Z)(classes.circle, disableShrink && classes.circleDisableShrink, {
20242
+ 'determinate': classes.circleDeterminate,
20243
+ 'indeterminate': classes.circleIndeterminate,
20244
+ 'static': classes.circleStatic
20245
+ }[variant]),
20246
+ style: circleStyle,
20247
+ cx: SIZE,
20248
+ cy: SIZE,
20249
+ r: (SIZE - thickness) / 2,
20250
+ fill: "none",
20251
+ strokeWidth: thickness
20252
+ })));
20253
  });
20254
+ false ? 0 : void 0;
20255
+ /* harmony default export */ var CircularProgress_CircularProgress = ((0,withStyles/* default */.Z)(CircularProgress_styles, {
20256
+ name: 'MuiCircularProgress',
20257
+ flip: false
20258
+ })(CircularProgress));
20259
+ // EXTERNAL MODULE: ./node_modules/@material-ui/icons/ArrowDropDown.js
20260
+ var ArrowDropDown = __webpack_require__(89039);
20261
+ // EXTERNAL MODULE: ./node_modules/@material-ui/icons/Settings.js
20262
+ var Settings = __webpack_require__(9969);
20263
+ // EXTERNAL MODULE: ./node_modules/@material-ui/icons/Code.js
20264
+ var Code = __webpack_require__(66521);
20265
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Context.js
20266
 
20267
+ var Context_ReactReduxContext = /*#__PURE__*/react.createContext(null);
20268
+
20269
+ if (false) {}
20270
+
20271
+ /* harmony default export */ var Context = ((/* unused pure expression or super */ null && (Context_ReactReduxContext)));
20272
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/batch.js
20273
+ // Default to a dummy "batch" implementation that just runs the callback
20274
+ function defaultNoopBatch(callback) {
20275
+ callback();
20276
  }
 
20277
 
20278
+ var batch = defaultNoopBatch; // Allow injecting another batching function later
20279
 
20280
+ var setBatch = function setBatch(newBatch) {
20281
+ return batch = newBatch;
20282
+ }; // Supply a getter just to skip dealing with ESM bindings
20283
 
20284
+ var getBatch = function getBatch() {
20285
+ return batch;
20286
+ };
20287
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/Subscription.js
20288
+ // encapsulates the subscription logic for connecting a component to the redux store, as
20289
+ // well as nesting subscriptions of descendant components, so that we can ensure the
20290
+ // ancestor components re-render before descendants
20291
 
20292
+ var nullListeners = {
20293
+ notify: function notify() {}
20294
+ };
20295
 
20296
+ function createListenerCollection() {
20297
+ var batch = getBatch();
20298
+ var first = null;
20299
+ var last = null;
20300
+ return {
20301
+ clear: function clear() {
20302
+ first = null;
20303
+ last = null;
20304
+ },
20305
+ notify: function notify() {
20306
+ batch(function () {
20307
+ var listener = first;
20308
 
20309
+ while (listener) {
20310
+ listener.callback();
20311
+ listener = listener.next;
20312
+ }
20313
+ });
20314
+ },
20315
+ get: function get() {
20316
+ var listeners = [];
20317
+ var listener = first;
20318
 
20319
+ while (listener) {
20320
+ listeners.push(listener);
20321
+ listener = listener.next;
20322
+ }
20323
 
20324
+ return listeners;
20325
+ },
20326
+ subscribe: function subscribe(callback) {
20327
+ var isSubscribed = true;
20328
+ var listener = last = {
20329
+ callback: callback,
20330
+ next: null,
20331
+ prev: last
20332
+ };
20333
 
20334
+ if (listener.prev) {
20335
+ listener.prev.next = listener;
20336
+ } else {
20337
+ first = listener;
20338
+ }
20339
 
20340
+ return function unsubscribe() {
20341
+ if (!isSubscribed || first === null) return;
20342
+ isSubscribed = false;
20343
 
20344
+ if (listener.next) {
20345
+ listener.next.prev = listener.prev;
20346
+ } else {
20347
+ last = listener.prev;
20348
+ }
20349
 
20350
+ if (listener.prev) {
20351
+ listener.prev.next = listener.next;
20352
+ } else {
20353
+ first = listener.next;
20354
+ }
20355
+ };
20356
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20357
  };
20358
+ }
20359
 
20360
+ var Subscription = /*#__PURE__*/function () {
20361
+ function Subscription(store, parentSub) {
20362
+ this.store = store;
20363
+ this.parentSub = parentSub;
20364
+ this.unsubscribe = null;
20365
+ this.listeners = nullListeners;
20366
+ this.handleChangeWrapper = this.handleChangeWrapper.bind(this);
20367
  }
20368
 
20369
+ var _proto = Subscription.prototype;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20370
 
20371
+ _proto.addNestedSub = function addNestedSub(listener) {
20372
+ this.trySubscribe();
20373
+ return this.listeners.subscribe(listener);
20374
+ };
 
 
 
 
20375
 
20376
+ _proto.notifyNestedSubs = function notifyNestedSubs() {
20377
+ this.listeners.notify();
20378
+ };
20379
+
20380
+ _proto.handleChangeWrapper = function handleChangeWrapper() {
20381
+ if (this.onStateChange) {
20382
+ this.onStateChange();
20383
  }
20384
+ };
20385
 
20386
+ _proto.isSubscribed = function isSubscribed() {
20387
+ return Boolean(this.unsubscribe);
20388
+ };
20389
 
20390
+ _proto.trySubscribe = function trySubscribe() {
20391
+ if (!this.unsubscribe) {
20392
+ this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper);
20393
+ this.listeners = createListenerCollection();
20394
+ }
20395
+ };
20396
 
20397
+ _proto.tryUnsubscribe = function tryUnsubscribe() {
20398
+ if (this.unsubscribe) {
20399
+ this.unsubscribe();
20400
+ this.unsubscribe = null;
20401
+ this.listeners.clear();
20402
+ this.listeners = nullListeners;
20403
+ }
20404
+ };
20405
 
20406
+ return Subscription;
20407
+ }();
20408
 
 
20409
 
20410
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js
20411
+ // React currently throws a warning when using useLayoutEffect on the server.
20412
+ // To get around it, we can conditionally useEffect on the server (no-op) and
20413
+ // useLayoutEffect in the browser. We need useLayoutEffect to ensure the store
20414
+ // subscription callback always has the selector from the latest render commit
20415
+ // available, otherwise a store update may happen between render and the effect,
20416
+ // which may cause missed updates; we also must ensure the store subscription
20417
+ // is created synchronously, otherwise a store update may occur before the
20418
+ // subscription is created and an inconsistent state may be observed
20419
 
20420
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined' ? react.useLayoutEffect : react.useEffect;
20421
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/Provider.js
 
 
20422
 
 
 
20423
 
20424
 
 
 
 
 
 
 
 
 
20425
 
20426
 
20427
 
20428
+ function Provider(_ref) {
20429
+ var store = _ref.store,
20430
+ context = _ref.context,
20431
+ children = _ref.children;
20432
+ var contextValue = (0,react.useMemo)(function () {
20433
+ var subscription = new Subscription(store);
20434
+ subscription.onStateChange = subscription.notifyNestedSubs;
20435
+ return {
20436
+ store: store,
20437
+ subscription: subscription
20438
+ };
20439
+ }, [store]);
20440
+ var previousState = (0,react.useMemo)(function () {
20441
+ return store.getState();
20442
+ }, [store]);
20443
+ useIsomorphicLayoutEffect(function () {
20444
+ var subscription = contextValue.subscription;
20445
+ subscription.trySubscribe();
20446
 
20447
+ if (previousState !== store.getState()) {
20448
+ subscription.notifyNestedSubs();
20449
+ }
20450
 
20451
+ return function () {
20452
+ subscription.tryUnsubscribe();
20453
+ subscription.onStateChange = null;
20454
+ };
20455
+ }, [contextValue, previousState]);
20456
+ var Context = context || Context_ReactReduxContext;
20457
+ return /*#__PURE__*/react.createElement(Context.Provider, {
20458
+ value: contextValue
20459
+ }, children);
20460
+ }
20461
 
20462
+ if (false) {}
20463
 
20464
+ /* harmony default export */ var components_Provider = (Provider);
20465
+ // EXTERNAL MODULE: ./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js
20466
+ var hoist_non_react_statics_cjs = __webpack_require__(8679);
20467
+ var hoist_non_react_statics_cjs_default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics_cjs);
20468
+ // EXTERNAL MODULE: ./node_modules/react-redux/node_modules/react-is/index.js
20469
+ var node_modules_react_is = __webpack_require__(72973);
20470
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/components/connectAdvanced.js
20471
 
20472
 
 
20473
 
 
 
 
 
 
 
20474
 
 
 
20475
 
 
 
 
 
 
 
 
 
 
20476
 
 
 
 
20477
 
20478
+ // Define some constant arrays just to avoid re-creating these
 
 
 
 
 
 
 
 
 
20479
 
20480
+ var EMPTY_ARRAY = [];
20481
+ var NO_SUBSCRIPTION_ARRAY = [null, null];
 
 
20482
 
20483
+ var stringifyComponent = function stringifyComponent(Comp) {
20484
+ try {
20485
+ return JSON.stringify(Comp);
20486
+ } catch (err) {
20487
+ return String(Comp);
20488
+ }
20489
+ };
20490
+
20491
+ function storeStateUpdatesReducer(state, action) {
20492
+ var updateCount = state[1];
20493
+ return [action.payload, updateCount + 1];
20494
  }
20495
 
20496
+ function useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {
20497
+ useIsomorphicLayoutEffect(function () {
20498
+ return effectFunc.apply(void 0, effectArgs);
20499
+ }, dependencies);
20500
+ }
20501
 
20502
+ function captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs) {
20503
+ // We want to capture the wrapper props and child props we used for later comparisons
20504
+ lastWrapperProps.current = wrapperProps;
20505
+ lastChildProps.current = actualChildProps;
20506
+ renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update
20507
 
20508
+ if (childPropsFromStoreUpdate.current) {
20509
+ childPropsFromStoreUpdate.current = null;
20510
+ notifyNestedSubs();
20511
+ }
20512
+ }
20513
 
20514
+ function subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch) {
20515
+ // If we're not subscribed to the store, nothing to do here
20516
+ if (!shouldHandleStateChanges) return; // Capture values for checking if and when this component unmounts
20517
 
20518
+ var didUnsubscribe = false;
20519
+ var lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component
20520
+
20521
+ var checkForUpdates = function checkForUpdates() {
20522
+ if (didUnsubscribe) {
20523
+ // Don't run stale listeners.
20524
+ // Redux doesn't guarantee unsubscriptions happen until next dispatch.
20525
  return;
20526
  }
 
20527
 
20528
+ var latestStoreState = store.getState();
20529
+ var newChildProps, error;
20530
 
20531
+ try {
20532
+ // Actually run the selector with the most recent store state and wrapper props
20533
+ // to determine what the child props should be
20534
+ newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);
20535
+ } catch (e) {
20536
+ error = e;
20537
+ lastThrownError = e;
20538
+ }
20539
 
20540
+ if (!error) {
20541
+ lastThrownError = null;
20542
+ } // If the child props haven't changed, nothing to do here - cascade the subscription update
20543
 
 
 
20544
 
20545
+ if (newChildProps === lastChildProps.current) {
20546
+ if (!renderIsScheduled.current) {
20547
+ notifyNestedSubs();
20548
+ }
20549
+ } else {
20550
+ // Save references to the new child props. Note that we track the "child props from store update"
20551
+ // as a ref instead of a useState/useReducer because we need a way to determine if that value has
20552
+ // been processed. If this went into useState/useReducer, we couldn't clear out the value without
20553
+ // forcing another re-render, which we don't want.
20554
+ lastChildProps.current = newChildProps;
20555
+ childPropsFromStoreUpdate.current = newChildProps;
20556
+ renderIsScheduled.current = true; // If the child props _did_ change (or we caught an error), this wrapper component needs to re-render
20557
 
20558
+ forceComponentUpdateDispatch({
20559
+ type: 'STORE_UPDATED',
20560
+ payload: {
20561
+ error: error
20562
+ }
20563
+ });
20564
+ }
20565
+ }; // Actually subscribe to the nearest connected ancestor (or store)
 
 
20566
 
20567
 
20568
+ subscription.onStateChange = checkForUpdates;
20569
+ subscription.trySubscribe(); // Pull data from the store after first render in case the store has
20570
+ // changed since we began.
20571
 
20572
+ checkForUpdates();
 
 
 
 
 
 
20573
 
20574
+ var unsubscribeWrapper = function unsubscribeWrapper() {
20575
+ didUnsubscribe = true;
20576
+ subscription.tryUnsubscribe();
20577
+ subscription.onStateChange = null;
20578
+
20579
+ if (lastThrownError) {
20580
+ // It's possible that we caught an error due to a bad mapState function, but the
20581
+ // parent re-rendered without this component and we're about to unmount.
20582
+ // This shouldn't happen as long as we do top-down subscriptions correctly, but
20583
+ // if we ever do those wrong, this throw will surface the error in our tests.
20584
+ // In that case, throw the error from here so it doesn't get lost.
20585
+ throw lastThrownError;
20586
+ }
20587
  };
 
20588
 
20589
+ return unsubscribeWrapper;
 
 
 
20590
  }
20591
 
20592
+ var initStateUpdates = function initStateUpdates() {
20593
+ return [null, 0];
20594
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20595
 
20596
+ function connectAdvanced(
20597
+ /*
20598
+ selectorFactory is a func that is responsible for returning the selector function used to
20599
+ compute new props from state, props, and dispatch. For example:
20600
+ export default connectAdvanced((dispatch, options) => (state, props) => ({
20601
+ thing: state.things[props.thingId],
20602
+ saveThing: fields => dispatch(actionCreators.saveThing(props.thingId, fields)),
20603
+ }))(YourComponent)
20604
+ Access to dispatch is provided to the factory so selectorFactories can bind actionCreators
20605
+ outside of their selector as an optimization. Options passed to connectAdvanced are passed to
20606
+ the selectorFactory, along with displayName and WrappedComponent, as the second argument.
20607
+ Note that selectorFactory is responsible for all caching/memoization of inbound and outbound
20608
+ props. Do not use connectAdvanced directly without memoizing results between calls to your
20609
+ selector, otherwise the Connect component will re-render on every state or props change.
20610
+ */
20611
+ selectorFactory, // options object:
20612
+ _ref) {
20613
+ if (_ref === void 0) {
20614
+ _ref = {};
20615
+ }
20616
 
20617
+ var _ref2 = _ref,
20618
+ _ref2$getDisplayName = _ref2.getDisplayName,
20619
+ getDisplayName = _ref2$getDisplayName === void 0 ? function (name) {
20620
+ return "ConnectAdvanced(" + name + ")";
20621
+ } : _ref2$getDisplayName,
20622
+ _ref2$methodName = _ref2.methodName,
20623
+ methodName = _ref2$methodName === void 0 ? 'connectAdvanced' : _ref2$methodName,
20624
+ _ref2$renderCountProp = _ref2.renderCountProp,
20625
+ renderCountProp = _ref2$renderCountProp === void 0 ? undefined : _ref2$renderCountProp,
20626
+ _ref2$shouldHandleSta = _ref2.shouldHandleStateChanges,
20627
+ shouldHandleStateChanges = _ref2$shouldHandleSta === void 0 ? true : _ref2$shouldHandleSta,
20628
+ _ref2$storeKey = _ref2.storeKey,
20629
+ storeKey = _ref2$storeKey === void 0 ? 'store' : _ref2$storeKey,
20630
+ _ref2$withRef = _ref2.withRef,
20631
+ withRef = _ref2$withRef === void 0 ? false : _ref2$withRef,
20632
+ _ref2$forwardRef = _ref2.forwardRef,
20633
+ forwardRef = _ref2$forwardRef === void 0 ? false : _ref2$forwardRef,
20634
+ _ref2$context = _ref2.context,
20635
+ context = _ref2$context === void 0 ? Context_ReactReduxContext : _ref2$context,
20636
+ connectOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]);
20637
 
20638
+ if (false) { var customStoreWarningMessage; }
20639
 
20640
+ var Context = context;
20641
+ return function wrapWithConnect(WrappedComponent) {
20642
+ if (false) {}
20643
 
20644
+ var wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';
20645
+ var displayName = getDisplayName(wrappedComponentName);
20646
 
20647
+ var selectorFactoryOptions = (0,esm_extends/* default */.Z)({}, connectOptions, {
20648
+ getDisplayName: getDisplayName,
20649
+ methodName: methodName,
20650
+ renderCountProp: renderCountProp,
20651
+ shouldHandleStateChanges: shouldHandleStateChanges,
20652
+ storeKey: storeKey,
20653
+ displayName: displayName,
20654
+ wrappedComponentName: wrappedComponentName,
20655
+ WrappedComponent: WrappedComponent
20656
+ });
20657
 
20658
+ var pure = connectOptions.pure;
20659
 
20660
+ function createChildSelector(store) {
20661
+ return selectorFactory(store.dispatch, selectorFactoryOptions);
20662
+ } // If we aren't running in "pure" mode, we don't want to memoize values.
20663
+ // To avoid conditionally calling hooks, we fall back to a tiny wrapper
20664
+ // that just executes the given callback immediately.
20665
 
20666
 
20667
+ var usePureOnlyMemo = pure ? react.useMemo : function (callback) {
20668
+ return callback();
20669
+ };
20670
 
20671
+ function ConnectFunction(props) {
20672
+ var _useMemo = (0,react.useMemo)(function () {
20673
+ // Distinguish between actual "data" props that were passed to the wrapper component,
20674
+ // and values needed to control behavior (forwarded refs, alternate context instances).
20675
+ // To maintain the wrapperProps object reference, memoize this destructuring.
20676
+ var reactReduxForwardedRef = props.reactReduxForwardedRef,
20677
+ wrapperProps = (0,objectWithoutPropertiesLoose/* default */.Z)(props, ["reactReduxForwardedRef"]);
20678
 
20679
+ return [props.context, reactReduxForwardedRef, wrapperProps];
20680
+ }, [props]),
20681
+ propsContext = _useMemo[0],
20682
+ reactReduxForwardedRef = _useMemo[1],
20683
+ wrapperProps = _useMemo[2];
20684
 
20685
+ var ContextToUse = (0,react.useMemo)(function () {
20686
+ // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.
20687
+ // Memoize the check that determines which context instance we should use.
20688
+ return propsContext && propsContext.Consumer && (0,node_modules_react_is.isContextConsumer)( /*#__PURE__*/react.createElement(propsContext.Consumer, null)) ? propsContext : Context;
20689
+ }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available
20690
 
20691
+ var contextValue = (0,react.useContext)(ContextToUse); // The store _must_ exist as either a prop or in context.
20692
+ // We'll check to see if it _looks_ like a Redux store first.
20693
+ // This allows us to pass through a `store` prop that is just a plain value.
20694
 
20695
+ var didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);
20696
+ var didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);
 
 
 
 
20697
 
20698
+ if (false) {} // Based on the previous check, one of these must be true
20699
 
 
 
 
 
 
 
 
 
 
 
20700
 
20701
+ var store = didStoreComeFromProps ? props.store : contextValue.store;
20702
+ var childPropsSelector = (0,react.useMemo)(function () {
20703
+ // The child props selector needs the store reference as an input.
20704
+ // Re-create this selector whenever the store changes.
20705
+ return createChildSelector(store);
20706
+ }, [store]);
 
 
20707
 
20708
+ var _useMemo2 = (0,react.useMemo)(function () {
20709
+ if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component
20710
+ // connected to the store via props shouldn't use subscription from context, or vice versa.
 
 
 
 
 
 
 
 
 
 
 
20711
 
20712
+ var subscription = new Subscription(store, didStoreComeFromProps ? null : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in
20713
+ // the middle of the notification loop, where `subscription` will then be null. This can
20714
+ // probably be avoided if Subscription's listeners logic is changed to not call listeners
20715
+ // that have been unsubscribed in the middle of the notification loop.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20716
 
20717
+ var notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);
20718
+ return [subscription, notifyNestedSubs];
20719
+ }, [store, didStoreComeFromProps, contextValue]),
20720
+ subscription = _useMemo2[0],
20721
+ notifyNestedSubs = _useMemo2[1]; // Determine what {store, subscription} value should be put into nested context, if necessary,
20722
+ // and memoize that value to avoid unnecessary context updates.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20723
 
 
 
 
20724
 
20725
+ var overriddenContextValue = (0,react.useMemo)(function () {
20726
+ if (didStoreComeFromProps) {
20727
+ // This component is directly subscribed to a store from props.
20728
+ // We don't want descendants reading from this store - pass down whatever
20729
+ // the existing context value is from the nearest connected ancestor.
20730
+ return contextValue;
20731
+ } // Otherwise, put this component's subscription instance into context, so that
20732
+ // connected descendants won't update until after this component is done
20733
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20734
 
20735
+ return (0,esm_extends/* default */.Z)({}, contextValue, {
20736
+ subscription: subscription
20737
+ });
20738
+ }, [didStoreComeFromProps, contextValue, subscription]); // We need to force this wrapper component to re-render whenever a Redux store update
20739
+ // causes a change to the calculated child component props (or we caught an error in mapState)
20740
 
20741
+ var _useReducer = (0,react.useReducer)(storeStateUpdatesReducer, EMPTY_ARRAY, initStateUpdates),
20742
+ _useReducer$ = _useReducer[0],
20743
+ previousStateUpdateResult = _useReducer$[0],
20744
+ forceComponentUpdateDispatch = _useReducer[1]; // Propagate any mapState/mapDispatch errors upwards
20745
 
 
 
 
 
 
 
 
 
 
 
 
 
20746
 
20747
+ if (previousStateUpdateResult && previousStateUpdateResult.error) {
20748
+ throw previousStateUpdateResult.error;
20749
+ } // Set up refs to coordinate values between the subscription effect and the render logic
20750
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20751
 
20752
+ var lastChildProps = (0,react.useRef)();
20753
+ var lastWrapperProps = (0,react.useRef)(wrapperProps);
20754
+ var childPropsFromStoreUpdate = (0,react.useRef)();
20755
+ var renderIsScheduled = (0,react.useRef)(false);
20756
+ var actualChildProps = usePureOnlyMemo(function () {
20757
+ // Tricky logic here:
20758
+ // - This render may have been triggered by a Redux store update that produced new child props
20759
+ // - However, we may have gotten new wrapper props after that
20760
+ // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.
20761
+ // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.
20762
+ // So, we'll use the child props from store update only if the wrapper props are the same as last time.
20763
+ if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {
20764
+ return childPropsFromStoreUpdate.current;
20765
+ } // TODO We're reading the store directly in render() here. Bad idea?
20766
+ // This will likely cause Bad Things (TM) to happen in Concurrent Mode.
20767
+ // Note that we do this because on renders _not_ caused by store updates, we need the latest store state
20768
+ // to determine what the child props should be.
20769
 
 
 
 
 
 
 
 
 
 
 
20770
 
20771
+ return childPropsSelector(store.getState(), wrapperProps);
20772
+ }, [store, previousStateUpdateResult, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns
20773
+ // about useLayoutEffect in SSR, so we try to detect environment and fall back to
20774
+ // just useEffect instead to avoid the warning, since neither will run anyway.
20775
 
20776
+ useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, actualChildProps, childPropsFromStoreUpdate, notifyNestedSubs]); // Our re-subscribe logic only runs when the store/subscription setup changes
20777
 
20778
+ useIsomorphicLayoutEffectWithArgs(subscribeUpdates, [shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, childPropsFromStoreUpdate, notifyNestedSubs, forceComponentUpdateDispatch], [store, subscription, childPropsSelector]); // Now that all that's done, we can finally try to actually render the child component.
20779
+ // We memoize the elements for the rendered child component as an optimization.
 
 
 
 
 
 
 
20780
 
20781
+ var renderedWrappedComponent = (0,react.useMemo)(function () {
20782
+ return /*#__PURE__*/react.createElement(WrappedComponent, (0,esm_extends/* default */.Z)({}, actualChildProps, {
20783
+ ref: reactReduxForwardedRef
20784
+ }));
20785
+ }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering
20786
+ // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.
20787
 
20788
+ var renderedChild = (0,react.useMemo)(function () {
20789
+ if (shouldHandleStateChanges) {
20790
+ // If this component is subscribed to store updates, we need to pass its own
20791
+ // subscription instance down to our descendants. That means rendering the same
20792
+ // Context instance, and putting a different value into the context.
20793
+ return /*#__PURE__*/react.createElement(ContextToUse.Provider, {
20794
+ value: overriddenContextValue
20795
+ }, renderedWrappedComponent);
20796
+ }
20797
 
20798
+ return renderedWrappedComponent;
20799
+ }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);
20800
+ return renderedChild;
20801
+ } // If we're in "pure" mode, ensure our wrapper component only re-renders when incoming props have changed.
 
 
 
 
20802
 
 
 
20803
 
20804
+ var Connect = pure ? react.memo(ConnectFunction) : ConnectFunction;
20805
+ Connect.WrappedComponent = WrappedComponent;
20806
+ Connect.displayName = displayName;
20807
 
20808
+ if (forwardRef) {
20809
+ var forwarded = react.forwardRef(function forwardConnectRef(props, ref) {
20810
+ return /*#__PURE__*/react.createElement(Connect, (0,esm_extends/* default */.Z)({}, props, {
20811
+ reactReduxForwardedRef: ref
20812
+ }));
20813
+ });
20814
+ forwarded.displayName = displayName;
20815
+ forwarded.WrappedComponent = WrappedComponent;
20816
+ return hoist_non_react_statics_cjs_default()(forwarded, WrappedComponent);
20817
  }
 
 
 
 
 
 
 
 
 
 
20818
 
20819
+ return hoist_non_react_statics_cjs_default()(Connect, WrappedComponent);
20820
+ };
 
20821
  }
20822
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/shallowEqual.js
20823
+ function is(x, y) {
20824
+ if (x === y) {
20825
+ return x !== 0 || y !== 0 || 1 / x === 1 / y;
20826
+ } else {
20827
+ return x !== x && y !== y;
20828
+ }
20829
  }
20830
 
20831
+ function shallowEqual(objA, objB) {
20832
+ if (is(objA, objB)) return true;
 
20833
 
20834
+ if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
20835
+ return false;
20836
+ }
 
 
 
20837
 
20838
+ var keysA = Object.keys(objA);
20839
+ var keysB = Object.keys(objB);
20840
+ if (keysA.length !== keysB.length) return false;
20841
 
20842
+ for (var i = 0; i < keysA.length; i++) {
20843
+ if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
20844
+ return false;
20845
+ }
20846
+ }
20847
 
20848
+ return true;
 
20849
  }
20850
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/wrapMapToProps.js
 
 
20851
 
20852
+ function wrapMapToPropsConstant(getConstant) {
20853
+ return function initConstantSelector(dispatch, options) {
20854
+ var constant = getConstant(dispatch, options);
20855
 
20856
+ function constantSelector() {
20857
+ return constant;
20858
+ }
 
 
 
20859
 
20860
+ constantSelector.dependsOnOwnProps = false;
20861
+ return constantSelector;
20862
+ };
20863
+ } // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args
20864
+ // to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine
20865
+ // whether mapToProps needs to be invoked when props have changed.
20866
+ //
20867
+ // A length of one signals that mapToProps does not depend on props from the parent component.
20868
+ // A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and
20869
+ // therefore not reporting its length accurately..
20870
 
20871
+ function getDependsOnOwnProps(mapToProps) {
20872
+ return mapToProps.dependsOnOwnProps !== null && mapToProps.dependsOnOwnProps !== undefined ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;
20873
+ } // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,
20874
+ // this function wraps mapToProps in a proxy function which does several things:
20875
+ //
20876
+ // * Detects whether the mapToProps function being called depends on props, which
20877
+ // is used by selectorFactory to decide if it should reinvoke on props changes.
20878
+ //
20879
+ // * On first call, handles mapToProps if returns another function, and treats that
20880
+ // new function as the true mapToProps for subsequent calls.
20881
+ //
20882
+ // * On first call, verifies the first result is a plain object, in order to warn
20883
+ // the developer that their mapToProps function is not returning a valid result.
20884
+ //
20885
 
20886
+ function wrapMapToPropsFunc(mapToProps, methodName) {
20887
+ return function initProxySelector(dispatch, _ref) {
20888
+ var displayName = _ref.displayName;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20889
 
20890
+ var proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {
20891
+ return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch);
20892
+ }; // allow detectFactoryAndVerify to get ownProps
 
 
 
 
 
 
 
20893
 
 
 
 
20894
 
20895
+ proxy.dependsOnOwnProps = true;
 
 
 
 
 
 
 
 
 
20896
 
20897
+ proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {
20898
+ proxy.mapToProps = mapToProps;
20899
+ proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);
20900
+ var props = proxy(stateOrDispatch, ownProps);
20901
 
20902
+ if (typeof props === 'function') {
20903
+ proxy.mapToProps = props;
20904
+ proxy.dependsOnOwnProps = getDependsOnOwnProps(props);
20905
+ props = proxy(stateOrDispatch, ownProps);
 
 
 
20906
  }
 
20907
 
20908
+ if (false) {}
20909
+ return props;
20910
+ };
20911
+
20912
+ return proxy;
 
 
 
 
 
 
 
20913
  };
 
20914
  }
20915
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapDispatchToProps.js
 
 
 
 
 
 
 
20916
 
 
 
 
 
20917
 
20918
+ function whenMapDispatchToPropsIsFunction(mapDispatchToProps) {
20919
+ return typeof mapDispatchToProps === 'function' ? wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : undefined;
20920
+ }
20921
+ function whenMapDispatchToPropsIsMissing(mapDispatchToProps) {
20922
+ return !mapDispatchToProps ? wrapMapToPropsConstant(function (dispatch) {
20923
+ return {
20924
+ dispatch: dispatch
20925
+ };
20926
+ }) : undefined;
20927
+ }
20928
+ function whenMapDispatchToPropsIsObject(mapDispatchToProps) {
20929
+ return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(function (dispatch) {
20930
+ return bindActionCreators(mapDispatchToProps, dispatch);
20931
+ }) : undefined;
20932
+ }
20933
+ /* harmony default export */ var mapDispatchToProps = ([whenMapDispatchToPropsIsFunction, whenMapDispatchToPropsIsMissing, whenMapDispatchToPropsIsObject]);
20934
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mapStateToProps.js
20935
 
20936
+ function whenMapStateToPropsIsFunction(mapStateToProps) {
20937
+ return typeof mapStateToProps === 'function' ? wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : undefined;
20938
+ }
20939
+ function whenMapStateToPropsIsMissing(mapStateToProps) {
20940
+ return !mapStateToProps ? wrapMapToPropsConstant(function () {
20941
+ return {};
20942
+ }) : undefined;
20943
  }
20944
+ /* harmony default export */ var mapStateToProps = ([whenMapStateToPropsIsFunction, whenMapStateToPropsIsMissing]);
20945
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/mergeProps.js
20946
 
 
 
 
20947
 
20948
+ function defaultMergeProps(stateProps, dispatchProps, ownProps) {
20949
+ return (0,esm_extends/* default */.Z)({}, ownProps, stateProps, dispatchProps);
20950
  }
20951
+ function wrapMergePropsFunc(mergeProps) {
20952
+ return function initMergePropsProxy(dispatch, _ref) {
20953
+ var displayName = _ref.displayName,
20954
+ pure = _ref.pure,
20955
+ areMergedPropsEqual = _ref.areMergedPropsEqual;
20956
+ var hasRunOnce = false;
20957
+ var mergedProps;
20958
+ return function mergePropsProxy(stateProps, dispatchProps, ownProps) {
20959
+ var nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);
20960
 
20961
+ if (hasRunOnce) {
20962
+ if (!pure || !areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;
20963
+ } else {
20964
+ hasRunOnce = true;
20965
+ mergedProps = nextMergedProps;
20966
+ if (false) {}
20967
+ }
20968
 
20969
+ return mergedProps;
20970
+ };
20971
+ };
 
 
 
 
 
 
 
 
 
 
20972
  }
20973
+ function whenMergePropsIsFunction(mergeProps) {
20974
+ return typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : undefined;
 
 
 
 
 
 
 
 
 
 
20975
  }
20976
+ function whenMergePropsIsOmitted(mergeProps) {
20977
+ return !mergeProps ? function () {
20978
+ return defaultMergeProps;
20979
+ } : undefined;
 
 
 
 
 
 
 
 
 
 
 
20980
  }
20981
+ /* harmony default export */ var mergeProps = ([whenMergePropsIsFunction, whenMergePropsIsOmitted]);
20982
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/selectorFactory.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20983
 
 
 
 
 
 
20984
 
20985
+ function impureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch) {
20986
+ return function impureFinalPropsSelector(state, ownProps) {
20987
+ return mergeProps(mapStateToProps(state, ownProps), mapDispatchToProps(dispatch, ownProps), ownProps);
20988
+ };
20989
+ }
20990
+ function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, _ref) {
20991
+ var areStatesEqual = _ref.areStatesEqual,
20992
+ areOwnPropsEqual = _ref.areOwnPropsEqual,
20993
+ areStatePropsEqual = _ref.areStatePropsEqual;
20994
+ var hasRunAtLeastOnce = false;
20995
+ var state;
20996
+ var ownProps;
20997
+ var stateProps;
20998
+ var dispatchProps;
20999
+ var mergedProps;
21000
 
21001
+ function handleFirstCall(firstState, firstOwnProps) {
21002
+ state = firstState;
21003
+ ownProps = firstOwnProps;
21004
+ stateProps = mapStateToProps(state, ownProps);
21005
+ dispatchProps = mapDispatchToProps(dispatch, ownProps);
21006
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
21007
+ hasRunAtLeastOnce = true;
21008
+ return mergedProps;
21009
+ }
21010
 
21011
+ function handleNewPropsAndNewState() {
21012
+ stateProps = mapStateToProps(state, ownProps);
21013
+ if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
21014
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
21015
+ return mergedProps;
21016
+ }
21017
 
21018
+ function handleNewProps() {
21019
+ if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);
21020
+ if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);
21021
+ mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
21022
+ return mergedProps;
21023
+ }
21024
 
21025
+ function handleNewState() {
21026
+ var nextStateProps = mapStateToProps(state, ownProps);
21027
+ var statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);
21028
+ stateProps = nextStateProps;
21029
+ if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);
21030
+ return mergedProps;
21031
+ }
21032
 
21033
+ function handleSubsequentCalls(nextState, nextOwnProps) {
21034
+ var propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);
21035
+ var stateChanged = !areStatesEqual(nextState, state);
21036
+ state = nextState;
21037
+ ownProps = nextOwnProps;
21038
+ if (propsChanged && stateChanged) return handleNewPropsAndNewState();
21039
+ if (propsChanged) return handleNewProps();
21040
+ if (stateChanged) return handleNewState();
21041
+ return mergedProps;
 
21042
  }
21043
 
21044
+ return function pureFinalPropsSelector(nextState, nextOwnProps) {
21045
+ return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);
 
21046
  };
21047
+ } // TODO: Add more comments
21048
+ // If pure is true, the selector returned by selectorFactory will memoize its results,
21049
+ // allowing connectAdvanced's shouldComponentUpdate to return false if final
21050
+ // props have not changed. If false, the selector will always return a new
21051
+ // object and shouldComponentUpdate will always return true.
 
 
 
 
 
 
 
 
21052
 
21053
+ function finalPropsSelectorFactory(dispatch, _ref2) {
21054
+ var initMapStateToProps = _ref2.initMapStateToProps,
21055
+ initMapDispatchToProps = _ref2.initMapDispatchToProps,
21056
+ initMergeProps = _ref2.initMergeProps,
21057
+ options = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref2, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]);
 
 
 
 
 
 
 
 
 
 
21058
 
21059
+ var mapStateToProps = initMapStateToProps(dispatch, options);
21060
+ var mapDispatchToProps = initMapDispatchToProps(dispatch, options);
21061
+ var mergeProps = initMergeProps(dispatch, options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21062
 
21063
+ if (false) {}
21064
 
21065
+ var selectorFactory = options.pure ? pureFinalPropsSelectorFactory : impureFinalPropsSelectorFactory;
21066
+ return selectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);
21067
+ }
21068
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/connect/connect.js
21069
 
 
 
 
 
21070
 
21071
 
 
 
 
21072
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21073
 
 
 
 
 
21074
 
21075
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21076
 
21077
+ /*
21078
+ connect is a facade over connectAdvanced. It turns its args into a compatible
21079
+ selectorFactory, which has the signature:
21080
+
21081
+ (dispatch, options) => (nextState, nextOwnProps) => nextFinalProps
21082
+
21083
+ connect passes its args to connectAdvanced as options, which will in turn pass them to
21084
+ selectorFactory each time a Connect component instance is instantiated or hot reloaded.
21085
+
21086
+ selectorFactory returns a final props selector from its mapStateToProps,
21087
+ mapStateToPropsFactories, mapDispatchToProps, mapDispatchToPropsFactories, mergeProps,
21088
+ mergePropsFactories, and pure args.
21089
+
21090
+ The resulting final props selector is called by the Connect component instance whenever
21091
+ it receives new props or store state.
21092
+ */
21093
 
21094
+ function match(arg, factories, name) {
21095
+ for (var i = factories.length - 1; i >= 0; i--) {
21096
+ var result = factories[i](arg);
21097
+ if (result) return result;
21098
  }
21099
 
21100
+ return function (dispatch, options) {
21101
+ throw new Error("Invalid value of type " + typeof arg + " for " + name + " argument when connecting component " + options.wrappedComponentName + ".");
21102
+ };
21103
+ }
 
 
21104
 
21105
+ function strictEqual(a, b) {
21106
+ return a === b;
21107
+ } // createConnect with default args builds the 'official' connect behavior. Calling it with
21108
+ // different options opens up some testing and extensibility scenarios
21109
 
 
 
 
 
21110
 
21111
+ function createConnect(_temp) {
21112
+ var _ref = _temp === void 0 ? {} : _temp,
21113
+ _ref$connectHOC = _ref.connectHOC,
21114
+ connectHOC = _ref$connectHOC === void 0 ? connectAdvanced : _ref$connectHOC,
21115
+ _ref$mapStateToPropsF = _ref.mapStateToPropsFactories,
21116
+ mapStateToPropsFactories = _ref$mapStateToPropsF === void 0 ? mapStateToProps : _ref$mapStateToPropsF,
21117
+ _ref$mapDispatchToPro = _ref.mapDispatchToPropsFactories,
21118
+ mapDispatchToPropsFactories = _ref$mapDispatchToPro === void 0 ? mapDispatchToProps : _ref$mapDispatchToPro,
21119
+ _ref$mergePropsFactor = _ref.mergePropsFactories,
21120
+ mergePropsFactories = _ref$mergePropsFactor === void 0 ? mergeProps : _ref$mergePropsFactor,
21121
+ _ref$selectorFactory = _ref.selectorFactory,
21122
+ selectorFactory = _ref$selectorFactory === void 0 ? finalPropsSelectorFactory : _ref$selectorFactory;
21123
 
21124
+ return function connect(mapStateToProps, mapDispatchToProps, mergeProps, _ref2) {
21125
+ if (_ref2 === void 0) {
21126
+ _ref2 = {};
 
 
 
21127
  }
21128
 
21129
+ var _ref3 = _ref2,
21130
+ _ref3$pure = _ref3.pure,
21131
+ pure = _ref3$pure === void 0 ? true : _ref3$pure,
21132
+ _ref3$areStatesEqual = _ref3.areStatesEqual,
21133
+ areStatesEqual = _ref3$areStatesEqual === void 0 ? strictEqual : _ref3$areStatesEqual,
21134
+ _ref3$areOwnPropsEqua = _ref3.areOwnPropsEqual,
21135
+ areOwnPropsEqual = _ref3$areOwnPropsEqua === void 0 ? shallowEqual : _ref3$areOwnPropsEqua,
21136
+ _ref3$areStatePropsEq = _ref3.areStatePropsEqual,
21137
+ areStatePropsEqual = _ref3$areStatePropsEq === void 0 ? shallowEqual : _ref3$areStatePropsEq,
21138
+ _ref3$areMergedPropsE = _ref3.areMergedPropsEqual,
21139
+ areMergedPropsEqual = _ref3$areMergedPropsE === void 0 ? shallowEqual : _ref3$areMergedPropsE,
21140
+ extraOptions = (0,objectWithoutPropertiesLoose/* default */.Z)(_ref3, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]);
21141
 
21142
+ var initMapStateToProps = match(mapStateToProps, mapStateToPropsFactories, 'mapStateToProps');
21143
+ var initMapDispatchToProps = match(mapDispatchToProps, mapDispatchToPropsFactories, 'mapDispatchToProps');
21144
+ var initMergeProps = match(mergeProps, mergePropsFactories, 'mergeProps');
21145
+ return connectHOC(selectorFactory, (0,esm_extends/* default */.Z)({
21146
+ // used in error messages
21147
+ methodName: 'connect',
21148
+ // used to compute Connect's displayName from the wrapped component's displayName.
21149
+ getDisplayName: function getDisplayName(name) {
21150
+ return "Connect(" + name + ")";
21151
+ },
21152
+ // if mapStateToProps is falsy, the Connect component doesn't subscribe to store state changes
21153
+ shouldHandleStateChanges: Boolean(mapStateToProps),
21154
+ // passed through to selectorFactory
21155
+ initMapStateToProps: initMapStateToProps,
21156
+ initMapDispatchToProps: initMapDispatchToProps,
21157
+ initMergeProps: initMergeProps,
21158
+ pure: pure,
21159
+ areStatesEqual: areStatesEqual,
21160
+ areOwnPropsEqual: areOwnPropsEqual,
21161
+ areStatePropsEqual: areStatePropsEqual,
21162
+ areMergedPropsEqual: areMergedPropsEqual
21163
+ }, extraOptions));
21164
+ };
21165
+ }
21166
+ /* harmony default export */ var connect = (/*#__PURE__*/createConnect());
21167
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useReduxContext.js
21168
 
 
 
 
 
21169
 
21170
+ /**
21171
+ * A hook to access the value of the `ReactReduxContext`. This is a low-level
21172
+ * hook that you should usually not need to call directly.
21173
+ *
21174
+ * @returns {any} the value of the `ReactReduxContext`
21175
+ *
21176
+ * @example
21177
+ *
21178
+ * import React from 'react'
21179
+ * import { useReduxContext } from 'react-redux'
21180
+ *
21181
+ * export const CounterComponent = ({ value }) => {
21182
+ * const { store } = useReduxContext()
21183
+ * return <div>{store.getState()}</div>
21184
+ * }
21185
+ */
21186
 
21187
+ function useReduxContext_useReduxContext() {
21188
+ var contextValue = (0,react.useContext)(Context_ReactReduxContext);
21189
 
21190
+ if (false) {}
 
 
21191
 
21192
+ return contextValue;
21193
+ }
21194
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useStore.js
21195
 
 
 
 
21196
 
 
 
 
 
 
21197
 
21198
+ /**
21199
+ * Hook factory, which creates a `useStore` hook bound to a given context.
21200
+ *
21201
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
21202
+ * @returns {Function} A `useStore` hook bound to the specified context.
21203
+ */
21204
 
21205
+ function useStore_createStoreHook(context) {
21206
+ if (context === void 0) {
21207
+ context = Context_ReactReduxContext;
 
 
 
 
21208
  }
21209
 
21210
+ var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
21211
+ return (0,react.useContext)(context);
21212
+ };
21213
+ return function useStore() {
21214
+ var _useReduxContext = useReduxContext(),
21215
+ store = _useReduxContext.store;
21216
 
21217
+ return store;
21218
+ };
21219
+ }
21220
+ /**
21221
+ * A hook to access the redux store.
21222
+ *
21223
+ * @returns {any} the redux store
21224
+ *
21225
+ * @example
21226
+ *
21227
+ * import React from 'react'
21228
+ * import { useStore } from 'react-redux'
21229
+ *
21230
+ * export const ExampleComponent = () => {
21231
+ * const store = useStore()
21232
+ * return <div>{store.getState()}</div>
21233
+ * }
21234
+ */
21235
 
21236
+ var useStore = /*#__PURE__*/useStore_createStoreHook();
21237
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useDispatch.js
 
 
 
 
21238
 
 
 
 
 
 
 
 
21239
 
21240
+ /**
21241
+ * Hook factory, which creates a `useDispatch` hook bound to a given context.
21242
+ *
21243
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
21244
+ * @returns {Function} A `useDispatch` hook bound to the specified context.
21245
+ */
21246
 
21247
+ function createDispatchHook(context) {
21248
+ if (context === void 0) {
21249
+ context = ReactReduxContext;
21250
+ }
21251
 
21252
+ var useStore = context === ReactReduxContext ? useDefaultStore : createStoreHook(context);
21253
+ return function useDispatch() {
21254
+ var store = useStore();
21255
+ return store.dispatch;
21256
+ };
21257
+ }
21258
+ /**
21259
+ * A hook to access the redux `dispatch` function.
21260
+ *
21261
+ * @returns {any|function} redux store's `dispatch` function
21262
+ *
21263
+ * @example
21264
+ *
21265
+ * import React, { useCallback } from 'react'
21266
+ * import { useDispatch } from 'react-redux'
21267
+ *
21268
+ * export const CounterComponent = ({ value }) => {
21269
+ * const dispatch = useDispatch()
21270
+ * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])
21271
+ * return (
21272
+ * <div>
21273
+ * <span>{value}</span>
21274
+ * <button onClick={increaseCounter}>Increase counter</button>
21275
+ * </div>
21276
+ * )
21277
+ * }
21278
+ */
21279
 
21280
+ var useDispatch = /*#__PURE__*/(/* unused pure expression or super */ null && (createDispatchHook()));
21281
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/hooks/useSelector.js
 
 
21282
 
 
 
 
 
 
 
21283
 
 
 
 
 
 
21284
 
 
 
 
 
 
 
21285
 
 
 
 
 
 
21286
 
 
 
 
21287
 
21288
+ var refEquality = function refEquality(a, b) {
21289
+ return a === b;
21290
+ };
21291
 
21292
+ function useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub) {
21293
+ var _useReducer = (0,react.useReducer)(function (s) {
21294
+ return s + 1;
21295
+ }, 0),
21296
+ forceRender = _useReducer[1];
 
 
21297
 
21298
+ var subscription = (0,react.useMemo)(function () {
21299
+ return new Subscription(store, contextSub);
21300
+ }, [store, contextSub]);
21301
+ var latestSubscriptionCallbackError = (0,react.useRef)();
21302
+ var latestSelector = (0,react.useRef)();
21303
+ var latestStoreState = (0,react.useRef)();
21304
+ var latestSelectedState = (0,react.useRef)();
21305
+ var storeState = store.getState();
21306
+ var selectedState;
21307
 
21308
+ try {
21309
+ if (selector !== latestSelector.current || storeState !== latestStoreState.current || latestSubscriptionCallbackError.current) {
21310
+ var newSelectedState = selector(storeState); // ensure latest selected state is reused so that a custom equality function can result in identical references
21311
+
21312
+ if (latestSelectedState.current === undefined || !equalityFn(newSelectedState, latestSelectedState.current)) {
21313
+ selectedState = newSelectedState;
21314
+ } else {
21315
+ selectedState = latestSelectedState.current;
21316
  }
21317
+ } else {
21318
+ selectedState = latestSelectedState.current;
21319
+ }
21320
+ } catch (err) {
21321
+ if (latestSubscriptionCallbackError.current) {
21322
+ err.message += "\nThe error may be correlated with this previous error:\n" + latestSubscriptionCallbackError.current.stack + "\n\n";
21323
+ }
21324
 
21325
+ throw err;
 
21326
  }
21327
 
21328
+ useIsomorphicLayoutEffect(function () {
21329
+ latestSelector.current = selector;
21330
+ latestStoreState.current = storeState;
21331
+ latestSelectedState.current = selectedState;
21332
+ latestSubscriptionCallbackError.current = undefined;
21333
+ });
21334
+ useIsomorphicLayoutEffect(function () {
21335
+ function checkForUpdates() {
21336
+ try {
21337
+ var _newSelectedState = latestSelector.current(store.getState());
21338
 
21339
+ if (equalityFn(_newSelectedState, latestSelectedState.current)) {
21340
+ return;
21341
+ }
 
 
 
 
21342
 
21343
+ latestSelectedState.current = _newSelectedState;
21344
+ } catch (err) {
21345
+ // we ignore all errors here, since when the component
21346
+ // is re-rendered, the selectors are called again, and
21347
+ // will throw again, if neither props nor store state
21348
+ // changed
21349
+ latestSubscriptionCallbackError.current = err;
21350
+ }
21351
 
21352
+ forceRender();
 
21353
  }
21354
 
21355
+ subscription.onStateChange = checkForUpdates;
21356
+ subscription.trySubscribe();
21357
+ checkForUpdates();
21358
+ return function () {
21359
+ return subscription.tryUnsubscribe();
21360
+ };
21361
+ }, [store, subscription]);
21362
+ return selectedState;
21363
+ }
21364
+ /**
21365
+ * Hook factory, which creates a `useSelector` hook bound to a given context.
21366
+ *
21367
+ * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.
21368
+ * @returns {Function} A `useSelector` hook bound to the specified context.
21369
+ */
21370
 
 
 
 
 
21371
 
21372
+ function createSelectorHook(context) {
21373
+ if (context === void 0) {
21374
+ context = Context_ReactReduxContext;
 
 
 
 
 
 
 
21375
  }
21376
 
21377
+ var useReduxContext = context === Context_ReactReduxContext ? useReduxContext_useReduxContext : function () {
21378
+ return (0,react.useContext)(context);
21379
+ };
21380
+ return function useSelector(selector, equalityFn) {
21381
+ if (equalityFn === void 0) {
21382
+ equalityFn = refEquality;
 
 
21383
  }
21384
 
21385
+ if (false) {}
 
 
 
21386
 
21387
+ var _useReduxContext = useReduxContext(),
21388
+ store = _useReduxContext.store,
21389
+ contextSub = _useReduxContext.subscription;
21390
 
21391
+ var selectedState = useSelectorWithStoreAndSubscription(selector, equalityFn, store, contextSub);
21392
+ (0,react.useDebugValue)(selectedState);
21393
+ return selectedState;
21394
+ };
21395
+ }
21396
+ /**
21397
+ * A hook to access the redux store's state. This hook takes a selector function
21398
+ * as an argument. The selector is called with the store state.
21399
+ *
21400
+ * This hook takes an optional equality comparison function as the second parameter
21401
+ * that allows you to customize the way the selected state is compared to determine
21402
+ * whether the component needs to be re-rendered.
21403
+ *
21404
+ * @param {Function} selector the selector function
21405
+ * @param {Function=} equalityFn the function that will be used to determine equality
21406
+ *
21407
+ * @returns {any} the selected state
21408
+ *
21409
+ * @example
21410
+ *
21411
+ * import React from 'react'
21412
+ * import { useSelector } from 'react-redux'
21413
+ *
21414
+ * export const CounterComponent = () => {
21415
+ * const counter = useSelector(state => state.counter)
21416
+ * return <div>{counter}</div>
21417
+ * }
21418
+ */
21419
 
21420
+ var useSelector = /*#__PURE__*/createSelectorHook();
21421
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/utils/reactBatchedUpdates.js
21422
+ /* eslint-disable import/no-unresolved */
21423
 
21424
+ ;// CONCATENATED MODULE: ./node_modules/react-redux/es/index.js
 
 
 
 
 
21425
 
 
 
 
 
 
 
 
 
 
 
21426
 
 
 
21427
 
 
21428
 
 
 
 
21429
 
 
 
 
 
21430
 
 
 
 
 
 
 
 
 
 
21431
 
21432
 
 
 
 
 
 
21433
 
 
 
 
21434
 
21435
+ setBatch(react_dom.unstable_batchedUpdates);
 
 
 
21436
 
21437
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/styles/transitions.js
21438
+ var transitions = __webpack_require__(43366);
21439
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Fade/Fade.js
21440
 
 
 
 
21441
 
 
 
21442
 
 
 
21443
 
 
 
 
 
 
 
 
21444
 
 
 
21445
 
 
 
 
 
 
21446
 
 
 
21447
 
 
 
 
21448
 
 
 
 
 
21449
 
21450
+ var Fade_styles = {
21451
+ entering: {
21452
+ opacity: 1
21453
+ },
21454
+ entered: {
21455
+ opacity: 1
21456
  }
21457
+ };
21458
+ var defaultTimeout = {
21459
+ enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
21460
+ exit: transitions/* duration.leavingScreen */.x9.leavingScreen
21461
+ };
21462
+ /**
21463
+ * The Fade transition is used by the [Modal](/components/modal/) component.
21464
+ * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
21465
+ */
21466
 
21467
+ var Fade = /*#__PURE__*/react.forwardRef(function Fade(props, ref) {
21468
+ var children = props.children,
21469
+ _props$disableStrictM = props.disableStrictModeCompat,
21470
+ disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
21471
+ inProp = props.in,
21472
+ onEnter = props.onEnter,
21473
+ onEntered = props.onEntered,
21474
+ onEntering = props.onEntering,
21475
+ onExit = props.onExit,
21476
+ onExited = props.onExited,
21477
+ onExiting = props.onExiting,
21478
+ style = props.style,
21479
+ _props$TransitionComp = props.TransitionComponent,
21480
+ TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
21481
+ _props$timeout = props.timeout,
21482
+ timeout = _props$timeout === void 0 ? defaultTimeout : _props$timeout,
21483
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "TransitionComponent", "timeout"]);
21484
 
21485
+ var theme = useTheme_useTheme();
21486
+ var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
21487
+ var nodeRef = react.useRef(null);
21488
+ var foreignRef = (0,useForkRef/* default */.Z)(children.ref, ref);
21489
+ var handleRef = (0,useForkRef/* default */.Z)(enableStrictModeCompat ? nodeRef : undefined, foreignRef);
21490
 
21491
+ var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
21492
+ return function (nodeOrAppearing, maybeAppearing) {
21493
+ if (callback) {
21494
+ var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
21495
+ _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
21496
+ node = _ref2[0],
21497
+ isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
 
 
 
 
 
 
 
 
 
 
 
 
 
21498
 
 
 
 
21499
 
21500
+ if (isAppearing === undefined) {
21501
+ callback(node);
21502
+ } else {
21503
+ callback(node, isAppearing);
 
 
 
 
 
 
 
 
21504
  }
21505
  }
21506
  };
21507
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21508
 
21509
+ var handleEntering = normalizedTransitionCallback(onEntering);
21510
+ var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
21511
+ reflow(node); // So the animation always start from the start.
 
 
 
 
 
 
21512
 
21513
+ var transitionProps = getTransitionProps({
21514
+ style: style,
21515
+ timeout: timeout
21516
+ }, {
21517
+ mode: 'enter'
21518
+ });
21519
+ node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
21520
+ node.style.transition = theme.transitions.create('opacity', transitionProps);
21521
 
21522
+ if (onEnter) {
21523
+ onEnter(node, isAppearing);
 
 
21524
  }
21525
+ });
21526
+ var handleEntered = normalizedTransitionCallback(onEntered);
21527
+ var handleExiting = normalizedTransitionCallback(onExiting);
21528
+ var handleExit = normalizedTransitionCallback(function (node) {
21529
+ var transitionProps = getTransitionProps({
21530
+ style: style,
21531
+ timeout: timeout
21532
+ }, {
21533
+ mode: 'exit'
21534
+ });
21535
+ node.style.webkitTransition = theme.transitions.create('opacity', transitionProps);
21536
+ node.style.transition = theme.transitions.create('opacity', transitionProps);
21537
 
21538
+ if (onExit) {
21539
+ onExit(node);
21540
+ }
21541
+ });
21542
+ var handleExited = normalizedTransitionCallback(onExited);
21543
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21544
+ appear: true,
21545
+ in: inProp,
21546
+ nodeRef: enableStrictModeCompat ? nodeRef : undefined,
21547
+ onEnter: handleEnter,
21548
+ onEntered: handleEntered,
21549
+ onEntering: handleEntering,
21550
+ onExit: handleExit,
21551
+ onExited: handleExited,
21552
+ onExiting: handleExiting,
21553
+ timeout: timeout
21554
+ }, other), function (state, childProps) {
21555
+ return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
21556
+ style: (0,esm_extends/* default */.Z)({
21557
+ opacity: 0,
21558
+ visibility: state === 'exited' && !inProp ? 'hidden' : undefined
21559
+ }, Fade_styles[state], style, children.props.style),
21560
+ ref: handleRef
21561
+ }, childProps));
21562
+ });
21563
+ });
21564
+ false ? 0 : void 0;
21565
+ /* harmony default export */ var Fade_Fade = (Fade);
21566
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Backdrop/Backdrop.js
21567
 
 
 
 
 
 
 
21568
 
21569
 
 
 
 
21570
 
 
 
21571
 
 
 
21572
 
21573
+
21574
+ var Backdrop_styles = {
21575
+ /* Styles applied to the root element. */
21576
+ root: {
21577
+ // Improve scrollable dialog support.
21578
+ zIndex: -1,
21579
+ position: 'fixed',
21580
+ display: 'flex',
21581
+ alignItems: 'center',
21582
+ justifyContent: 'center',
21583
+ right: 0,
21584
+ bottom: 0,
21585
+ top: 0,
21586
+ left: 0,
21587
+ backgroundColor: 'rgba(0, 0, 0, 0.5)',
21588
+ WebkitTapHighlightColor: 'transparent'
21589
+ },
21590
+
21591
+ /* Styles applied to the root element if `invisible={true}`. */
21592
+ invisible: {
21593
+ backgroundColor: 'transparent'
21594
  }
21595
+ };
21596
+ var Backdrop = /*#__PURE__*/react.forwardRef(function Backdrop(props, ref) {
21597
+ var children = props.children,
21598
+ classes = props.classes,
21599
+ className = props.className,
21600
+ _props$invisible = props.invisible,
21601
+ invisible = _props$invisible === void 0 ? false : _props$invisible,
21602
+ open = props.open,
21603
+ transitionDuration = props.transitionDuration,
21604
+ _props$TransitionComp = props.TransitionComponent,
21605
+ TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
21606
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "invisible", "open", "transitionDuration", "TransitionComponent"]);
21607
 
21608
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21609
+ in: open,
21610
+ timeout: transitionDuration
21611
+ }, other), /*#__PURE__*/react.createElement("div", {
21612
+ className: (0,clsx_m/* default */.Z)(classes.root, className, invisible && classes.invisible),
21613
+ "aria-hidden": true,
21614
+ ref: ref
21615
+ }, children));
21616
+ });
21617
+ false ? 0 : void 0;
21618
+ /* harmony default export */ var Backdrop_Backdrop = ((0,withStyles/* default */.Z)(Backdrop_styles, {
21619
+ name: 'MuiBackdrop'
21620
+ })(Backdrop));
21621
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Dialog/Dialog.js
21622
 
 
 
 
21623
 
 
 
21624
 
 
 
 
21625
 
 
 
 
21626
 
 
 
 
 
 
 
 
 
21627
 
 
 
 
21628
 
 
 
 
 
 
 
 
21629
 
21630
 
 
 
 
21631
 
 
21632
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21633
 
21634
 
21635
+ var Dialog_styles = function styles(theme) {
21636
+ return {
21637
+ /* Styles applied to the root element. */
21638
+ root: {
21639
+ '@media print': {
21640
+ // Use !important to override the Modal inline-style.
21641
+ position: 'absolute !important'
21642
+ }
21643
+ },
21644
 
21645
+ /* Styles applied to the container element if `scroll="paper"`. */
21646
+ scrollPaper: {
21647
+ display: 'flex',
21648
+ justifyContent: 'center',
21649
+ alignItems: 'center'
21650
+ },
21651
 
21652
+ /* Styles applied to the container element if `scroll="body"`. */
21653
+ scrollBody: {
21654
+ overflowY: 'auto',
21655
+ overflowX: 'hidden',
21656
+ textAlign: 'center',
21657
+ '&:after': {
21658
+ content: '""',
21659
+ display: 'inline-block',
21660
+ verticalAlign: 'middle',
21661
+ height: '100%',
21662
+ width: '0'
21663
+ }
21664
+ },
21665
 
21666
+ /* Styles applied to the container element. */
21667
+ container: {
21668
+ height: '100%',
21669
+ '@media print': {
21670
+ height: 'auto'
21671
+ },
21672
+ // We disable the focus ring for mouse, touch and keyboard users.
21673
+ outline: 0
21674
+ },
21675
 
21676
+ /* Styles applied to the `Paper` component. */
21677
+ paper: {
21678
+ margin: 32,
21679
+ position: 'relative',
21680
+ overflowY: 'auto',
21681
+ // Fix IE 11 issue, to remove at some point.
21682
+ '@media print': {
21683
+ overflowY: 'visible',
21684
+ boxShadow: 'none'
21685
+ }
21686
+ },
21687
 
21688
+ /* Styles applied to the `Paper` component if `scroll="paper"`. */
21689
+ paperScrollPaper: {
21690
+ display: 'flex',
21691
+ flexDirection: 'column',
21692
+ maxHeight: 'calc(100% - 64px)'
21693
+ },
 
 
21694
 
21695
+ /* Styles applied to the `Paper` component if `scroll="body"`. */
21696
+ paperScrollBody: {
21697
+ display: 'inline-block',
21698
+ verticalAlign: 'middle',
21699
+ textAlign: 'left' // 'initial' doesn't work on IE 11
21700
 
21701
+ },
21702
 
21703
+ /* Styles applied to the `Paper` component if `maxWidth=false`. */
21704
+ paperWidthFalse: {
21705
+ maxWidth: 'calc(100% - 64px)'
21706
+ },
 
 
 
21707
 
21708
+ /* Styles applied to the `Paper` component if `maxWidth="xs"`. */
21709
+ paperWidthXs: {
21710
+ maxWidth: Math.max(theme.breakpoints.values.xs, 444),
21711
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(Math.max(theme.breakpoints.values.xs, 444) + 32 * 2), {
21712
+ maxWidth: 'calc(100% - 64px)'
21713
+ })
21714
+ },
21715
 
21716
+ /* Styles applied to the `Paper` component if `maxWidth="sm"`. */
21717
+ paperWidthSm: {
21718
+ maxWidth: theme.breakpoints.values.sm,
21719
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.sm + 32 * 2), {
21720
+ maxWidth: 'calc(100% - 64px)'
21721
+ })
21722
+ },
21723
 
21724
+ /* Styles applied to the `Paper` component if `maxWidth="md"`. */
21725
+ paperWidthMd: {
21726
+ maxWidth: theme.breakpoints.values.md,
21727
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.md + 32 * 2), {
21728
+ maxWidth: 'calc(100% - 64px)'
21729
+ })
21730
+ },
21731
 
21732
+ /* Styles applied to the `Paper` component if `maxWidth="lg"`. */
21733
+ paperWidthLg: {
21734
+ maxWidth: theme.breakpoints.values.lg,
21735
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.lg + 32 * 2), {
21736
+ maxWidth: 'calc(100% - 64px)'
21737
+ })
21738
+ },
21739
 
21740
+ /* Styles applied to the `Paper` component if `maxWidth="xl"`. */
21741
+ paperWidthXl: {
21742
+ maxWidth: theme.breakpoints.values.xl,
21743
+ '&$paperScrollBody': (0,defineProperty/* default */.Z)({}, theme.breakpoints.down(theme.breakpoints.values.xl + 32 * 2), {
21744
+ maxWidth: 'calc(100% - 64px)'
21745
+ })
21746
+ },
21747
 
21748
+ /* Styles applied to the `Paper` component if `fullWidth={true}`. */
21749
+ paperFullWidth: {
21750
+ width: 'calc(100% - 64px)'
21751
+ },
 
21752
 
21753
+ /* Styles applied to the `Paper` component if `fullScreen={true}`. */
21754
+ paperFullScreen: {
21755
+ margin: 0,
21756
+ width: '100%',
21757
+ maxWidth: '100%',
21758
+ height: '100%',
21759
+ maxHeight: 'none',
21760
+ borderRadius: 0,
21761
+ '&$paperScrollBody': {
21762
+ margin: 0,
21763
+ maxWidth: '100%'
21764
+ }
21765
+ }
21766
+ };
21767
+ };
21768
+ var defaultTransitionDuration = {
21769
+ enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
21770
+ exit: transitions/* duration.leavingScreen */.x9.leavingScreen
21771
+ };
21772
+ /**
21773
+ * Dialogs are overlaid modal paper based components with a backdrop.
21774
+ */
21775
+
21776
+ var Dialog_Dialog = /*#__PURE__*/react.forwardRef(function Dialog(props, ref) {
21777
+ var BackdropProps = props.BackdropProps,
21778
+ children = props.children,
21779
+ classes = props.classes,
21780
+ className = props.className,
21781
+ _props$disableBackdro = props.disableBackdropClick,
21782
+ disableBackdropClick = _props$disableBackdro === void 0 ? false : _props$disableBackdro,
21783
+ _props$disableEscapeK = props.disableEscapeKeyDown,
21784
+ disableEscapeKeyDown = _props$disableEscapeK === void 0 ? false : _props$disableEscapeK,
21785
+ _props$fullScreen = props.fullScreen,
21786
+ fullScreen = _props$fullScreen === void 0 ? false : _props$fullScreen,
21787
+ _props$fullWidth = props.fullWidth,
21788
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
21789
+ _props$maxWidth = props.maxWidth,
21790
+ maxWidth = _props$maxWidth === void 0 ? 'sm' : _props$maxWidth,
21791
+ onBackdropClick = props.onBackdropClick,
21792
+ onClose = props.onClose,
21793
+ onEnter = props.onEnter,
21794
+ onEntered = props.onEntered,
21795
+ onEntering = props.onEntering,
21796
+ onEscapeKeyDown = props.onEscapeKeyDown,
21797
+ onExit = props.onExit,
21798
+ onExited = props.onExited,
21799
+ onExiting = props.onExiting,
21800
+ open = props.open,
21801
+ _props$PaperComponent = props.PaperComponent,
21802
+ PaperComponent = _props$PaperComponent === void 0 ? Paper_Paper : _props$PaperComponent,
21803
+ _props$PaperProps = props.PaperProps,
21804
+ PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
21805
+ _props$scroll = props.scroll,
21806
+ scroll = _props$scroll === void 0 ? 'paper' : _props$scroll,
21807
+ _props$TransitionComp = props.TransitionComponent,
21808
+ TransitionComponent = _props$TransitionComp === void 0 ? Fade_Fade : _props$TransitionComp,
21809
+ _props$transitionDura = props.transitionDuration,
21810
+ transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,
21811
+ TransitionProps = props.TransitionProps,
21812
+ ariaDescribedby = props['aria-describedby'],
21813
+ ariaLabelledby = props['aria-labelledby'],
21814
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["BackdropProps", "children", "classes", "className", "disableBackdropClick", "disableEscapeKeyDown", "fullScreen", "fullWidth", "maxWidth", "onBackdropClick", "onClose", "onEnter", "onEntered", "onEntering", "onEscapeKeyDown", "onExit", "onExited", "onExiting", "open", "PaperComponent", "PaperProps", "scroll", "TransitionComponent", "transitionDuration", "TransitionProps", "aria-describedby", "aria-labelledby"]);
21815
 
21816
+ var mouseDownTarget = react.useRef();
21817
 
21818
+ var handleMouseDown = function handleMouseDown(event) {
21819
+ mouseDownTarget.current = event.target;
21820
+ };
 
 
21821
 
21822
+ var handleBackdropClick = function handleBackdropClick(event) {
21823
+ // Ignore the events not coming from the "backdrop"
21824
+ // We don't want to close the dialog when clicking the dialog content.
21825
+ if (event.target !== event.currentTarget) {
21826
  return;
21827
+ } // Make sure the event starts and ends on the same DOM element.
 
 
21828
 
21829
 
21830
+ if (event.target !== mouseDownTarget.current) {
21831
  return;
21832
  }
21833
 
21834
+ mouseDownTarget.current = null;
21835
 
21836
+ if (onBackdropClick) {
21837
+ onBackdropClick(event);
21838
  }
21839
 
21840
+ if (!disableBackdropClick && onClose) {
21841
+ onClose(event, 'backdropClick');
 
 
21842
  }
21843
+ };
21844
 
21845
+ return /*#__PURE__*/react.createElement(Modal_Modal, (0,esm_extends/* default */.Z)({
21846
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
21847
+ BackdropComponent: Backdrop_Backdrop,
21848
+ BackdropProps: (0,esm_extends/* default */.Z)({
21849
+ transitionDuration: transitionDuration
21850
+ }, BackdropProps),
21851
+ closeAfterTransition: true,
21852
+ disableBackdropClick: disableBackdropClick,
21853
+ disableEscapeKeyDown: disableEscapeKeyDown,
21854
+ onEscapeKeyDown: onEscapeKeyDown,
21855
+ onClose: onClose,
21856
+ open: open,
21857
+ ref: ref
21858
+ }, other), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
21859
+ appear: true,
21860
+ in: open,
21861
+ timeout: transitionDuration,
21862
+ onEnter: onEnter,
21863
+ onEntering: onEntering,
21864
+ onEntered: onEntered,
21865
+ onExit: onExit,
21866
+ onExiting: onExiting,
21867
+ onExited: onExited,
21868
+ role: "none presentation"
21869
+ }, TransitionProps), /*#__PURE__*/react.createElement("div", {
21870
+ className: (0,clsx_m/* default */.Z)(classes.container, classes["scroll".concat((0,utils_capitalize/* default */.Z)(scroll))]),
21871
+ onMouseUp: handleBackdropClick,
21872
+ onMouseDown: handleMouseDown
21873
+ }, /*#__PURE__*/react.createElement(PaperComponent, (0,esm_extends/* default */.Z)({
21874
+ elevation: 24,
21875
+ role: "dialog",
21876
+ "aria-describedby": ariaDescribedby,
21877
+ "aria-labelledby": ariaLabelledby
21878
+ }, PaperProps, {
21879
+ className: (0,clsx_m/* default */.Z)(classes.paper, classes["paperScroll".concat((0,utils_capitalize/* default */.Z)(scroll))], classes["paperWidth".concat((0,utils_capitalize/* default */.Z)(String(maxWidth)))], PaperProps.className, fullScreen && classes.paperFullScreen, fullWidth && classes.paperFullWidth)
21880
+ }), children))));
21881
+ });
21882
+ false ? 0 : void 0;
21883
+ /* harmony default export */ var esm_Dialog_Dialog = ((0,withStyles/* default */.Z)(Dialog_styles, {
21884
+ name: 'MuiDialog'
21885
+ })(Dialog_Dialog));
21886
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogTitle/DialogTitle.js
21887
 
 
 
 
 
21888
 
21889
 
 
 
 
 
21890
 
 
 
21891
 
 
 
21892
 
 
 
 
21893
 
21894
+ var DialogTitle_styles = {
21895
+ /* Styles applied to the root element. */
21896
+ root: {
21897
+ margin: 0,
21898
+ padding: '16px 24px',
21899
+ flex: '0 0 auto'
21900
+ }
21901
+ };
21902
+ var DialogTitle_DialogTitle = /*#__PURE__*/react.forwardRef(function DialogTitle(props, ref) {
21903
+ var children = props.children,
21904
+ classes = props.classes,
21905
+ className = props.className,
21906
+ _props$disableTypogra = props.disableTypography,
21907
+ disableTypography = _props$disableTypogra === void 0 ? false : _props$disableTypogra,
21908
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "disableTypography"]);
21909
 
21910
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
21911
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
21912
+ ref: ref
21913
+ }, other), disableTypography ? children : /*#__PURE__*/react.createElement(Typography_Typography, {
21914
+ component: "h2",
21915
+ variant: "h6"
21916
+ }, children));
21917
+ });
21918
+ false ? 0 : void 0;
21919
+ /* harmony default export */ var esm_DialogTitle_DialogTitle = ((0,withStyles/* default */.Z)(DialogTitle_styles, {
21920
+ name: 'MuiDialogTitle'
21921
+ })(DialogTitle_DialogTitle));
21922
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContent/DialogContent.js
21923
 
 
 
 
 
21924
 
 
 
 
21925
 
 
 
 
 
21926
 
 
 
 
21927
 
21928
+
21929
+ var DialogContent_styles = function styles(theme) {
21930
+ return {
21931
+ /* Styles applied to the root element. */
21932
+ root: {
21933
+ flex: '1 1 auto',
21934
+ WebkitOverflowScrolling: 'touch',
21935
+ // Add iOS momentum scrolling.
21936
+ overflowY: 'auto',
21937
+ padding: '8px 24px',
21938
+ '&:first-child': {
21939
+ // dialog without title
21940
+ paddingTop: 20
21941
  }
21942
+ },
21943
 
21944
+ /* Styles applied to the root element if `dividers={true}`. */
21945
+ dividers: {
21946
+ padding: '16px 24px',
21947
+ borderTop: "1px solid ".concat(theme.palette.divider),
21948
+ borderBottom: "1px solid ".concat(theme.palette.divider)
21949
+ }
21950
+ };
21951
+ };
21952
+ var DialogContent_DialogContent = /*#__PURE__*/react.forwardRef(function DialogContent(props, ref) {
21953
+ var classes = props.classes,
21954
+ className = props.className,
21955
+ _props$dividers = props.dividers,
21956
+ dividers = _props$dividers === void 0 ? false : _props$dividers,
21957
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "dividers"]);
21958
 
21959
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
21960
+ className: (0,clsx_m/* default */.Z)(classes.root, className, dividers && classes.dividers),
21961
+ ref: ref
21962
+ }, other));
21963
+ });
21964
+ false ? 0 : void 0;
21965
+ /* harmony default export */ var esm_DialogContent_DialogContent = ((0,withStyles/* default */.Z)(DialogContent_styles, {
21966
+ name: 'MuiDialogContent'
21967
+ })(DialogContent_DialogContent));
21968
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogContentText/DialogContentText.js
21969
 
21970
 
 
 
 
 
21971
 
 
 
 
21972
 
 
21973
 
21974
+ var DialogContentText_styles = {
21975
+ /* Styles applied to the root element. */
21976
+ root: {
21977
+ marginBottom: 12
21978
+ }
21979
+ };
21980
+ var DialogContentText = /*#__PURE__*/react.forwardRef(function DialogContentText(props, ref) {
21981
+ return /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
21982
+ component: "p",
21983
+ variant: "body1",
21984
+ color: "textSecondary",
21985
+ ref: ref
21986
+ }, props));
21987
+ });
21988
+ false ? 0 : void 0;
21989
+ /* harmony default export */ var DialogContentText_DialogContentText = ((0,withStyles/* default */.Z)(DialogContentText_styles, {
21990
+ name: 'MuiDialogContentText'
21991
+ })(DialogContentText));
21992
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/DialogActions/DialogActions.js
21993
 
 
 
 
 
21994
 
 
 
 
21995
 
 
 
 
21996
 
 
 
 
 
21997
 
 
 
 
 
 
21998
 
21999
+ var DialogActions_styles = {
22000
+ /* Styles applied to the root element. */
22001
+ root: {
22002
+ display: 'flex',
22003
+ alignItems: 'center',
22004
+ padding: 8,
22005
+ justifyContent: 'flex-end',
22006
+ flex: '0 0 auto'
22007
+ },
22008
 
22009
+ /* Styles applied to the root element if `disableSpacing={false}`. */
22010
+ spacing: {
22011
+ '& > :not(:first-child)': {
22012
+ marginLeft: 8
 
 
22013
  }
22014
  }
22015
+ };
22016
+ var DialogActions_DialogActions = /*#__PURE__*/react.forwardRef(function DialogActions(props, ref) {
22017
+ var _props$disableSpacing = props.disableSpacing,
22018
+ disableSpacing = _props$disableSpacing === void 0 ? false : _props$disableSpacing,
22019
+ classes = props.classes,
22020
+ className = props.className,
22021
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["disableSpacing", "classes", "className"]);
22022
 
22023
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
22024
+ className: (0,clsx_m/* default */.Z)(classes.root, className, !disableSpacing && classes.spacing),
22025
+ ref: ref
22026
+ }, other));
22027
+ });
22028
+ false ? 0 : void 0;
22029
+ /* harmony default export */ var esm_DialogActions_DialogActions = ((0,withStyles/* default */.Z)(DialogActions_styles, {
22030
+ name: 'MuiDialogActions'
22031
+ })(DialogActions_DialogActions));
22032
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/ConfirmDialog/index.js
22033
+ function ConfirmDialog_extends() { ConfirmDialog_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return ConfirmDialog_extends.apply(this, arguments); }
 
 
 
 
 
22034
 
 
 
 
22035
 
 
 
 
22036
 
 
 
 
22037
 
 
 
 
22038
 
22039
+ function ConfirmDialog(_ref) {
22040
+ var onClose = _ref.onClose,
22041
+ _ref$icon = _ref.icon,
22042
+ icon = _ref$icon === void 0 ? null : _ref$icon,
22043
+ _ref$open = _ref.open,
22044
+ open = _ref$open === void 0 ? false : _ref$open,
22045
+ _ref$title = _ref.title,
22046
+ title = _ref$title === void 0 ? "Confirm" : _ref$title,
22047
+ _ref$children = _ref.children,
22048
+ children = _ref$children === void 0 ? null : _ref$children,
22049
+ _ref$buttons = _ref.buttons,
22050
+ buttons = _ref$buttons === void 0 ? null : _ref$buttons,
22051
+ _ref$maxWidth = _ref.maxWidth,
22052
+ maxWidth = _ref$maxWidth === void 0 ? "xs" : _ref$maxWidth,
22053
+ _ref$fullWidth = _ref.fullWidth,
22054
+ fullWidth = _ref$fullWidth === void 0 ? true : _ref$fullWidth,
22055
+ className = _ref.className,
22056
+ _ref$testId = _ref.testId,
22057
+ testId = _ref$testId === void 0 ? null : _ref$testId;
22058
+ var defaultButtons = [{
22059
+ value: "cancel",
22060
+ text: translate_translate("modal.cancel")
22061
+ }, {
22062
+ value: "confirm",
22063
+ text: translate_translate("common.confirm")
22064
+ }];
22065
 
22066
+ var handleClose = function handleClose(status) {
22067
+ onClose(status);
22068
+ };
22069
 
22070
+ if (!buttons) buttons = defaultButtons;
22071
+ return /*#__PURE__*/react.createElement(esm_Dialog_Dialog, {
22072
+ open: open,
22073
+ onClose: handleClose,
22074
+ maxWidth: maxWidth,
22075
+ fullWidth: fullWidth,
22076
+ "aria-labelledby": "alert-dialog-title",
22077
+ "aria-describedby": "alert-dialog-description",
22078
+ className: className,
22079
+ "data-testid": testId ? "dialog:".concat(testId) : null
22080
+ }, /*#__PURE__*/react.createElement(esm_DialogTitle_DialogTitle, {
22081
+ id: "alert-dialog-title"
22082
+ }, icon, title), /*#__PURE__*/react.createElement(esm_DialogContent_DialogContent, null, /*#__PURE__*/react.createElement(DialogContentText_DialogContentText, {
22083
+ id: "alert-dialog-description",
22084
+ component: "div"
22085
+ }, children)), /*#__PURE__*/react.createElement(esm_DialogActions_DialogActions, null, buttons.map(function (button, key) {
22086
+ var _button$disabled;
22087
 
22088
+ return /*#__PURE__*/react.createElement(esm_Button_Button, ConfirmDialog_extends({
22089
+ onClick: function onClick() {
22090
+ return handleClose(button.value);
22091
+ },
22092
+ color: "primary",
22093
+ key: key,
22094
+ variant: button.variant,
22095
+ disabled: (_button$disabled = button.disabled) !== null && _button$disabled !== void 0 ? _button$disabled : undefined,
22096
+ "data-testid": testId ? "dialog:".concat(testId, ":button:").concat(button.value) : null
22097
+ }, button.props), button.text);
22098
+ })));
22099
  }
22100
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Slide/Slide.js
22101
 
 
 
 
 
22102
 
 
 
22103
 
 
22104
 
 
 
 
 
 
 
22105
 
 
22106
 
 
 
22107
 
 
 
 
22108
 
 
 
 
 
22109
 
 
 
 
 
 
 
 
22110
 
 
 
22111
 
22112
+ // Translate the node so he can't be seen on the screen.
22113
+ // Later, we gonna translate back the node to his original location
22114
+ // with `none`.`
22115
 
22116
+ function getTranslateValue(direction, node) {
22117
+ var rect = node.getBoundingClientRect();
22118
+ var transform;
 
 
 
22119
 
22120
+ if (node.fakeTransform) {
22121
+ transform = node.fakeTransform;
22122
+ } else {
22123
+ var computedStyle = window.getComputedStyle(node);
22124
+ transform = computedStyle.getPropertyValue('-webkit-transform') || computedStyle.getPropertyValue('transform');
22125
+ }
 
 
22126
 
22127
+ var offsetX = 0;
22128
+ var offsetY = 0;
 
22129
 
22130
+ if (transform && transform !== 'none' && typeof transform === 'string') {
22131
+ var transformValues = transform.split('(')[1].split(')')[0].split(',');
22132
+ offsetX = parseInt(transformValues[4], 10);
22133
+ offsetY = parseInt(transformValues[5], 10);
22134
+ }
 
 
 
 
 
 
 
 
 
 
 
 
22135
 
22136
+ if (direction === 'left') {
22137
+ return "translateX(".concat(window.innerWidth, "px) translateX(").concat(offsetX - rect.left, "px)");
22138
+ }
 
22139
 
22140
+ if (direction === 'right') {
22141
+ return "translateX(-".concat(rect.left + rect.width - offsetX, "px)");
22142
  }
 
22143
 
22144
+ if (direction === 'up') {
22145
+ return "translateY(".concat(window.innerHeight, "px) translateY(").concat(offsetY - rect.top, "px)");
22146
+ } // direction === 'down'
22147
 
 
 
 
22148
 
22149
+ return "translateY(-".concat(rect.top + rect.height - offsetY, "px)");
22150
+ }
22151
 
22152
+ function setTranslateValue(direction, node) {
22153
+ var transform = getTranslateValue(direction, node);
 
 
 
 
22154
 
22155
+ if (transform) {
22156
+ node.style.webkitTransform = transform;
22157
+ node.style.transform = transform;
 
22158
  }
22159
+ }
22160
+ var Slide_defaultTimeout = {
22161
+ enter: transitions/* duration.enteringScreen */.x9.enteringScreen,
22162
+ exit: transitions/* duration.leavingScreen */.x9.leavingScreen
22163
+ };
22164
+ /**
22165
+ * The Slide transition is used by the [Drawer](/components/drawers/) component.
22166
+ * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
22167
+ */
22168
 
22169
+ var Slide = /*#__PURE__*/react.forwardRef(function Slide(props, ref) {
22170
+ var children = props.children,
22171
+ _props$direction = props.direction,
22172
+ direction = _props$direction === void 0 ? 'down' : _props$direction,
22173
+ inProp = props.in,
22174
+ onEnter = props.onEnter,
22175
+ onEntered = props.onEntered,
22176
+ onEntering = props.onEntering,
22177
+ onExit = props.onExit,
22178
+ onExited = props.onExited,
22179
+ onExiting = props.onExiting,
22180
+ style = props.style,
22181
+ _props$timeout = props.timeout,
22182
+ timeout = _props$timeout === void 0 ? Slide_defaultTimeout : _props$timeout,
22183
+ _props$TransitionComp = props.TransitionComponent,
22184
+ TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
22185
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "direction", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
22186
 
22187
+ var theme = useTheme_useTheme();
22188
+ var childrenRef = react.useRef(null);
22189
+ /**
22190
+ * used in cloneElement(children, { ref: handleRef })
22191
+ */
22192
 
22193
+ var handleOwnRef = react.useCallback(function (instance) {
22194
+ // #StrictMode ready
22195
+ childrenRef.current = react_dom.findDOMNode(instance);
22196
+ }, []);
22197
+ var handleRefIntermediary = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef);
22198
+ var handleRef = (0,useForkRef/* default */.Z)(handleRefIntermediary, ref);
22199
 
22200
+ var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
22201
+ return function (isAppearing) {
22202
+ if (callback) {
22203
+ // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
22204
+ if (isAppearing === undefined) {
22205
+ callback(childrenRef.current);
22206
+ } else {
22207
+ callback(childrenRef.current, isAppearing);
22208
  }
22209
+ }
22210
+ };
22211
+ };
 
 
 
 
 
22212
 
22213
+ var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
22214
+ setTranslateValue(direction, node);
22215
+ reflow(node);
22216
 
22217
+ if (onEnter) {
22218
+ onEnter(node, isAppearing);
22219
  }
22220
+ });
22221
+ var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {
22222
+ var transitionProps = getTransitionProps({
22223
+ timeout: timeout,
22224
+ style: style
22225
+ }, {
22226
+ mode: 'enter'
22227
+ });
22228
+ node.style.webkitTransition = theme.transitions.create('-webkit-transform', (0,esm_extends/* default */.Z)({}, transitionProps, {
22229
+ easing: theme.transitions.easing.easeOut
22230
+ }));
22231
+ node.style.transition = theme.transitions.create('transform', (0,esm_extends/* default */.Z)({}, transitionProps, {
22232
+ easing: theme.transitions.easing.easeOut
22233
+ }));
22234
+ node.style.webkitTransform = 'none';
22235
+ node.style.transform = 'none';
22236
 
22237
+ if (onEntering) {
22238
+ onEntering(node, isAppearing);
22239
+ }
22240
+ });
22241
+ var handleEntered = normalizedTransitionCallback(onEntered);
22242
+ var handleExiting = normalizedTransitionCallback(onExiting);
22243
+ var handleExit = normalizedTransitionCallback(function (node) {
22244
+ var transitionProps = getTransitionProps({
22245
+ timeout: timeout,
22246
+ style: style
22247
+ }, {
22248
+ mode: 'exit'
22249
+ });
22250
+ node.style.webkitTransition = theme.transitions.create('-webkit-transform', (0,esm_extends/* default */.Z)({}, transitionProps, {
22251
+ easing: theme.transitions.easing.sharp
22252
  }));
22253
+ node.style.transition = theme.transitions.create('transform', (0,esm_extends/* default */.Z)({}, transitionProps, {
22254
+ easing: theme.transitions.easing.sharp
22255
+ }));
22256
+ setTranslateValue(direction, node);
22257
 
22258
+ if (onExit) {
22259
+ onExit(node);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22260
  }
22261
+ });
22262
+ var handleExited = normalizedTransitionCallback(function (node) {
22263
+ // No need for transitions when the component is hidden
22264
+ node.style.webkitTransition = '';
22265
+ node.style.transition = '';
 
 
 
 
22266
 
22267
+ if (onExited) {
22268
+ onExited(node);
22269
+ }
22270
+ });
22271
+ var updatePosition = react.useCallback(function () {
22272
+ if (childrenRef.current) {
22273
+ setTranslateValue(direction, childrenRef.current);
22274
+ }
22275
+ }, [direction]);
22276
+ react.useEffect(function () {
22277
+ // Skip configuration where the position is screen size invariant.
22278
+ if (inProp || direction === 'down' || direction === 'right') {
22279
+ return undefined;
22280
+ }
22281
 
22282
+ var handleResize = (0,debounce/* default */.Z)(function () {
22283
+ if (childrenRef.current) {
22284
+ setTranslateValue(direction, childrenRef.current);
22285
+ }
22286
+ });
22287
+ window.addEventListener('resize', handleResize);
22288
+ return function () {
22289
+ handleResize.clear();
22290
+ window.removeEventListener('resize', handleResize);
22291
+ };
22292
+ }, [direction, inProp]);
22293
+ react.useEffect(function () {
22294
+ if (!inProp) {
22295
+ // We need to update the position of the drawer when the direction change and
22296
+ // when it's hidden.
22297
+ updatePosition();
22298
+ }
22299
+ }, [inProp, updatePosition]);
22300
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
22301
+ nodeRef: childrenRef,
22302
+ onEnter: handleEnter,
22303
+ onEntered: handleEntered,
22304
+ onEntering: handleEntering,
22305
+ onExit: handleExit,
22306
+ onExited: handleExited,
22307
+ onExiting: handleExiting,
22308
+ appear: true,
22309
+ in: inProp,
22310
+ timeout: timeout
22311
+ }, other), function (state, childProps) {
22312
+ return /*#__PURE__*/react.cloneElement(children, (0,esm_extends/* default */.Z)({
22313
+ ref: handleRef,
22314
+ style: (0,esm_extends/* default */.Z)({
22315
+ visibility: state === 'exited' && !inProp ? 'hidden' : undefined
22316
+ }, style, children.props.style)
22317
+ }, childProps));
22318
+ });
22319
+ });
22320
+ false ? 0 : void 0;
22321
+ /* harmony default export */ var Slide_Slide = (Slide);
22322
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/styles/esm/createStyles/createStyles.js
22323
+ function createStyles(styles) {
22324
+ return styles;
22325
+ }
22326
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/createStyles.js
22327
+ // let warnOnce = false;
22328
+ // To remove in v5
22329
+
22330
+ function createStyles_createStyles(styles) {
22331
+ // warning(
22332
+ // warnOnce,
22333
+ // [
22334
+ // 'Material-UI: createStyles from @material-ui/core/styles is deprecated.',
22335
+ // 'Please use @material-ui/styles/createStyles',
22336
+ // ].join('\n'),
22337
+ // );
22338
+ // warnOnce = true;
22339
+ return createStyles(styles);
22340
+ }
22341
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/makeStyles/makeStyles.js + 4 modules
22342
+ var makeStyles = __webpack_require__(73914);
22343
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/styles/makeStyles.js
22344
 
22345
 
 
 
 
22346
 
22347
 
22348
+ function makeStyles_makeStyles(stylesOrCreator) {
22349
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
22350
+ return (0,makeStyles/* default */.Z)(stylesOrCreator, (0,esm_extends/* default */.Z)({
22351
+ defaultTheme: defaultTheme/* default */.Z
22352
+ }, options));
22353
+ }
22354
 
22355
+ /* harmony default export */ var styles_makeStyles = (makeStyles_makeStyles);
22356
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Collapse/Collapse.js
22357
 
 
 
 
 
22358
 
22359
 
 
 
 
 
22360
 
 
 
22361
 
 
 
 
22362
 
 
 
 
22363
 
 
 
22364
 
 
 
 
22365
 
 
 
 
 
22366
 
 
22367
 
 
 
 
 
22368
 
22369
+ var Collapse_styles = function styles(theme) {
22370
+ return {
22371
+ /* Styles applied to the container element. */
22372
+ container: {
22373
+ height: 0,
22374
+ overflow: 'hidden',
22375
+ transition: theme.transitions.create('height')
22376
+ },
 
 
 
 
 
22377
 
22378
+ /* Styles applied to the container element when the transition has entered. */
22379
+ entered: {
22380
+ height: 'auto',
22381
+ overflow: 'visible'
22382
+ },
22383
 
22384
+ /* Styles applied to the container element when the transition has exited and `collapsedHeight` != 0px. */
22385
+ hidden: {
22386
+ visibility: 'hidden'
22387
+ },
22388
+
22389
+ /* Styles applied to the outer wrapper element. */
22390
+ wrapper: {
22391
+ // Hack to get children with a negative margin to not falsify the height computation.
22392
+ display: 'flex'
22393
+ },
22394
+
22395
+ /* Styles applied to the inner wrapper element. */
22396
+ wrapperInner: {
22397
+ width: '100%'
22398
+ }
22399
+ };
22400
  };
22401
  /**
22402
+ * The Collapse transition is used by the
22403
+ * [Vertical Stepper](/components/steppers/#vertical-stepper) StepContent component.
22404
+ * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
22405
  */
22406
 
22407
+ var Collapse = /*#__PURE__*/react.forwardRef(function Collapse(props, ref) {
22408
+ var children = props.children,
22409
+ classes = props.classes,
22410
+ className = props.className,
22411
+ _props$collapsedHeigh = props.collapsedHeight,
22412
+ collapsedHeightProp = _props$collapsedHeigh === void 0 ? '0px' : _props$collapsedHeigh,
22413
+ _props$component = props.component,
22414
+ Component = _props$component === void 0 ? 'div' : _props$component,
22415
+ _props$disableStrictM = props.disableStrictModeCompat,
22416
+ disableStrictModeCompat = _props$disableStrictM === void 0 ? false : _props$disableStrictM,
22417
+ inProp = props.in,
22418
+ onEnter = props.onEnter,
22419
+ onEntered = props.onEntered,
22420
+ onEntering = props.onEntering,
22421
+ onExit = props.onExit,
22422
+ onExited = props.onExited,
22423
+ onExiting = props.onExiting,
22424
+ style = props.style,
22425
+ _props$timeout = props.timeout,
22426
+ timeout = _props$timeout === void 0 ? transitions/* duration.standard */.x9.standard : _props$timeout,
22427
+ _props$TransitionComp = props.TransitionComponent,
22428
+ TransitionComponent = _props$TransitionComp === void 0 ? esm_Transition : _props$TransitionComp,
22429
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "collapsedHeight", "component", "disableStrictModeCompat", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
22430
 
22431
+ var theme = useTheme_useTheme();
22432
+ var timer = react.useRef();
22433
+ var wrapperRef = react.useRef(null);
22434
+ var autoTransitionDuration = react.useRef();
22435
+ var collapsedHeight = typeof collapsedHeightProp === 'number' ? "".concat(collapsedHeightProp, "px") : collapsedHeightProp;
22436
+ react.useEffect(function () {
22437
+ return function () {
22438
+ clearTimeout(timer.current);
22439
+ };
22440
+ }, []);
22441
+ var enableStrictModeCompat = theme.unstable_strictMode && !disableStrictModeCompat;
22442
+ var nodeRef = react.useRef(null);
22443
+ var handleRef = (0,useForkRef/* default */.Z)(ref, enableStrictModeCompat ? nodeRef : undefined);
22444
 
22445
+ var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
22446
+ return function (nodeOrAppearing, maybeAppearing) {
22447
+ if (callback) {
22448
+ var _ref = enableStrictModeCompat ? [nodeRef.current, nodeOrAppearing] : [nodeOrAppearing, maybeAppearing],
22449
+ _ref2 = (0,slicedToArray/* default */.Z)(_ref, 2),
22450
+ node = _ref2[0],
22451
+ isAppearing = _ref2[1]; // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
22452
 
 
 
 
 
 
 
22453
 
22454
+ if (isAppearing === undefined) {
22455
+ callback(node);
22456
+ } else {
22457
+ callback(node, isAppearing);
22458
+ }
22459
+ }
22460
+ };
22461
+ };
22462
 
22463
+ var handleEnter = normalizedTransitionCallback(function (node, isAppearing) {
22464
+ node.style.height = collapsedHeight;
22465
 
22466
+ if (onEnter) {
22467
+ onEnter(node, isAppearing);
22468
  }
22469
+ });
22470
+ var handleEntering = normalizedTransitionCallback(function (node, isAppearing) {
22471
+ var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;
22472
 
22473
+ var _getTransitionProps = getTransitionProps({
22474
+ style: style,
22475
+ timeout: timeout
22476
+ }, {
22477
+ mode: 'enter'
22478
+ }),
22479
+ transitionDuration = _getTransitionProps.duration;
22480
 
22481
+ if (timeout === 'auto') {
22482
+ var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);
22483
+ node.style.transitionDuration = "".concat(duration2, "ms");
22484
+ autoTransitionDuration.current = duration2;
22485
+ } else {
22486
+ node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : "".concat(transitionDuration, "ms");
22487
  }
22488
 
22489
+ node.style.height = "".concat(wrapperHeight, "px");
22490
 
22491
+ if (onEntering) {
22492
+ onEntering(node, isAppearing);
22493
  }
22494
+ });
22495
+ var handleEntered = normalizedTransitionCallback(function (node, isAppearing) {
22496
+ node.style.height = 'auto';
22497
 
22498
+ if (onEntered) {
22499
+ onEntered(node, isAppearing);
 
22500
  }
22501
+ });
22502
+ var handleExit = normalizedTransitionCallback(function (node) {
22503
+ var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;
22504
+ node.style.height = "".concat(wrapperHeight, "px");
22505
 
22506
+ if (onExit) {
22507
+ onExit(node);
22508
+ }
22509
+ });
22510
+ var handleExited = normalizedTransitionCallback(onExited);
22511
+ var handleExiting = normalizedTransitionCallback(function (node) {
22512
+ var wrapperHeight = wrapperRef.current ? wrapperRef.current.clientHeight : 0;
 
22513
 
22514
+ var _getTransitionProps2 = getTransitionProps({
22515
+ style: style,
22516
+ timeout: timeout
22517
+ }, {
22518
+ mode: 'exit'
22519
+ }),
22520
+ transitionDuration = _getTransitionProps2.duration;
22521
 
22522
+ if (timeout === 'auto') {
22523
+ var duration2 = theme.transitions.getAutoHeightDuration(wrapperHeight);
22524
+ node.style.transitionDuration = "".concat(duration2, "ms");
22525
+ autoTransitionDuration.current = duration2;
22526
+ } else {
22527
+ node.style.transitionDuration = typeof transitionDuration === 'string' ? transitionDuration : "".concat(transitionDuration, "ms");
22528
+ }
 
 
 
22529
 
22530
+ node.style.height = collapsedHeight;
 
 
 
22531
 
22532
+ if (onExiting) {
22533
+ onExiting(node);
22534
+ }
22535
+ });
22536
 
22537
+ var addEndListener = function addEndListener(nodeOrNext, maybeNext) {
22538
+ var next = enableStrictModeCompat ? nodeOrNext : maybeNext;
 
 
 
22539
 
22540
+ if (timeout === 'auto') {
22541
+ timer.current = setTimeout(next, autoTransitionDuration.current || 0);
22542
+ }
22543
+ };
22544
 
22545
+ return /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
22546
+ in: inProp,
22547
+ onEnter: handleEnter,
22548
+ onEntered: handleEntered,
22549
+ onEntering: handleEntering,
22550
+ onExit: handleExit,
22551
+ onExited: handleExited,
22552
+ onExiting: handleExiting,
22553
+ addEndListener: addEndListener,
22554
+ nodeRef: enableStrictModeCompat ? nodeRef : undefined,
22555
+ timeout: timeout === 'auto' ? null : timeout
22556
+ }, other), function (state, childProps) {
22557
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
22558
+ className: (0,clsx_m/* default */.Z)(classes.container, className, {
22559
+ 'entered': classes.entered,
22560
+ 'exited': !inProp && collapsedHeight === '0px' && classes.hidden
22561
+ }[state]),
22562
+ style: (0,esm_extends/* default */.Z)({
22563
+ minHeight: collapsedHeight
22564
+ }, style),
22565
+ ref: handleRef
22566
+ }, childProps), /*#__PURE__*/react.createElement("div", {
22567
+ className: classes.wrapper,
22568
+ ref: wrapperRef
22569
+ }, /*#__PURE__*/react.createElement("div", {
22570
+ className: classes.wrapperInner
22571
+ }, children)));
22572
+ });
22573
+ });
22574
+ false ? 0 : void 0;
22575
+ Collapse.muiSupportAuto = true;
22576
+ /* harmony default export */ var Collapse_Collapse = ((0,withStyles/* default */.Z)(Collapse_styles, {
22577
+ name: 'MuiCollapse'
22578
+ })(Collapse));
22579
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js
22580
+ var SvgIcon = __webpack_require__(62087);
22581
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/ClickAwayListener/ClickAwayListener.js
22582
 
 
 
 
 
 
 
 
22583
 
 
 
22584
 
 
 
 
22585
 
 
 
 
 
 
22586
 
 
 
 
22587
 
 
 
22588
 
 
 
 
22589
 
22590
+ function mapEventPropToEvent(eventProp) {
22591
+ return eventProp.substring(2).toLowerCase();
22592
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22593
 
22594
+ function clickedRootScrollbar(event) {
22595
+ return document.documentElement.clientWidth < event.clientX || document.documentElement.clientHeight < event.clientY;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22596
  }
22597
+ /**
22598
+ * Listen for click events that occur somewhere in the document, outside of the element itself.
22599
+ * For instance, if you need to hide a menu when people click anywhere else on your page.
22600
+ */
22601
 
 
 
 
22602
 
22603
+ function ClickAwayListener(props) {
22604
+ var children = props.children,
22605
+ _props$disableReactTr = props.disableReactTree,
22606
+ disableReactTree = _props$disableReactTr === void 0 ? false : _props$disableReactTr,
22607
+ _props$mouseEvent = props.mouseEvent,
22608
+ mouseEvent = _props$mouseEvent === void 0 ? 'onClick' : _props$mouseEvent,
22609
+ onClickAway = props.onClickAway,
22610
+ _props$touchEvent = props.touchEvent,
22611
+ touchEvent = _props$touchEvent === void 0 ? 'onTouchEnd' : _props$touchEvent;
22612
+ var movedRef = react.useRef(false);
22613
+ var nodeRef = react.useRef(null);
22614
+ var activatedRef = react.useRef(false);
22615
+ var syntheticEventRef = react.useRef(false);
22616
+ react.useEffect(function () {
22617
+ // Ensure that this component is not "activated" synchronously.
22618
+ // https://github.com/facebook/react/issues/20074
22619
+ setTimeout(function () {
22620
+ activatedRef.current = true;
22621
+ }, 0);
22622
+ return function () {
22623
+ activatedRef.current = false;
22624
+ };
22625
+ }, []); // can be removed once we drop support for non ref forwarding class components
22626
 
22627
+ var handleOwnRef = react.useCallback(function (instance) {
22628
+ // #StrictMode ready
22629
+ nodeRef.current = react_dom.findDOMNode(instance);
22630
+ }, []);
22631
+ var handleRef = (0,useForkRef/* default */.Z)(children.ref, handleOwnRef); // The handler doesn't take event.defaultPrevented into account:
22632
+ //
22633
+ // event.preventDefault() is meant to stop default behaviours like
22634
+ // clicking a checkbox to check it, hitting a button to submit a form,
22635
+ // and hitting left arrow to move the cursor in a text input etc.
22636
+ // Only special HTML elements have these default behaviors.
22637
 
22638
+ var handleClickAway = (0,useEventCallback/* default */.Z)(function (event) {
22639
+ // Given developers can stop the propagation of the synthetic event,
22640
+ // we can only be confident with a positive value.
22641
+ var insideReactTree = syntheticEventRef.current;
22642
+ syntheticEventRef.current = false; // 1. IE 11 support, which trigger the handleClickAway even after the unbind
22643
+ // 2. The child might render null.
22644
+ // 3. Behave like a blur listener.
22645
 
22646
+ if (!activatedRef.current || !nodeRef.current || clickedRootScrollbar(event)) {
22647
+ return;
22648
+ } // Do not act if user performed touchmove
22649
 
 
 
 
22650
 
22651
+ if (movedRef.current) {
22652
+ movedRef.current = false;
22653
+ return;
 
 
 
22654
  }
22655
 
22656
+ var insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22657
 
22658
+ if (event.composedPath) {
22659
+ insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;
22660
+ } else {
22661
+ // TODO v6 remove dead logic https://caniuse.com/#search=composedPath.
22662
+ var doc = (0,ownerDocument/* default */.Z)(nodeRef.current);
22663
+ insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);
 
 
 
 
 
 
 
 
 
22664
  }
22665
 
22666
+ if (!insideDOM && (disableReactTree || !insideReactTree)) {
22667
+ onClickAway(event);
 
 
 
 
 
 
22668
  }
22669
+ }); // Keep track of mouse/touch events that bubbled up through the portal.
22670
 
22671
+ var createHandleSynthetic = function createHandleSynthetic(handlerName) {
22672
+ return function (event) {
22673
+ syntheticEventRef.current = true;
22674
+ var childrenPropsHandler = children.props[handlerName];
22675
 
22676
+ if (childrenPropsHandler) {
22677
+ childrenPropsHandler(event);
 
 
22678
  }
22679
+ };
22680
+ };
22681
 
22682
+ var childrenProps = {
22683
+ ref: handleRef
22684
+ };
 
 
 
 
 
22685
 
22686
+ if (touchEvent !== false) {
22687
+ childrenProps[touchEvent] = createHandleSynthetic(touchEvent);
22688
+ }
22689
 
22690
+ react.useEffect(function () {
22691
+ if (touchEvent !== false) {
22692
+ var mappedTouchEvent = mapEventPropToEvent(touchEvent);
22693
+ var doc = (0,ownerDocument/* default */.Z)(nodeRef.current);
22694
 
22695
+ var handleTouchMove = function handleTouchMove() {
22696
+ movedRef.current = true;
22697
+ };
22698
 
22699
+ doc.addEventListener(mappedTouchEvent, handleClickAway);
22700
+ doc.addEventListener('touchmove', handleTouchMove);
22701
+ return function () {
22702
+ doc.removeEventListener(mappedTouchEvent, handleClickAway);
22703
+ doc.removeEventListener('touchmove', handleTouchMove);
22704
+ };
22705
+ }
 
 
 
 
 
 
 
 
22706
 
22707
+ return undefined;
22708
+ }, [handleClickAway, touchEvent]);
 
 
 
 
 
 
 
 
 
 
22709
 
22710
+ if (mouseEvent !== false) {
22711
+ childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);
 
 
 
 
 
 
 
 
22712
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22713
 
22714
+ react.useEffect(function () {
22715
+ if (mouseEvent !== false) {
22716
+ var mappedMouseEvent = mapEventPropToEvent(mouseEvent);
22717
+ var doc = (0,ownerDocument/* default */.Z)(nodeRef.current);
22718
+ doc.addEventListener(mappedMouseEvent, handleClickAway);
22719
+ return function () {
22720
+ doc.removeEventListener(mappedMouseEvent, handleClickAway);
22721
+ };
22722
  }
22723
 
22724
+ return undefined;
22725
+ }, [handleClickAway, mouseEvent]);
22726
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.cloneElement(children, childrenProps));
22727
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22728
 
22729
+ false ? 0 : void 0;
 
 
 
22730
 
22731
+ if (false) {}
 
 
22732
 
22733
+ /* harmony default export */ var ClickAwayListener_ClickAwayListener = (ClickAwayListener);
22734
+ ;// CONCATENATED MODULE: ./node_modules/notistack/dist/notistack.esm.js
 
 
 
22735
 
 
 
 
 
 
22736
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22737
 
22738
 
 
 
 
22739
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22740
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22741
 
 
22742
 
 
22743
 
 
 
 
 
 
 
 
 
 
22744
 
22745
+ function notistack_esm_defineProperties(target, props) {
22746
+ for (var i = 0; i < props.length; i++) {
22747
+ var descriptor = props[i];
22748
+ descriptor.enumerable = descriptor.enumerable || false;
22749
+ descriptor.configurable = true;
22750
+ if ("value" in descriptor) descriptor.writable = true;
22751
+ Object.defineProperty(target, descriptor.key, descriptor);
22752
  }
22753
  }
22754
 
22755
+ function notistack_esm_createClass(Constructor, protoProps, staticProps) {
22756
+ if (protoProps) notistack_esm_defineProperties(Constructor.prototype, protoProps);
22757
+ if (staticProps) notistack_esm_defineProperties(Constructor, staticProps);
22758
+ return Constructor;
22759
+ }
 
 
 
 
 
 
 
 
 
 
 
 
22760
 
22761
+ function notistack_esm_extends() {
22762
+ notistack_esm_extends = Object.assign || function (target) {
22763
+ for (var i = 1; i < arguments.length; i++) {
22764
+ var source = arguments[i];
22765
 
22766
+ for (var key in source) {
22767
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
22768
+ target[key] = source[key];
22769
  }
22770
  }
 
 
 
 
 
 
 
22771
  }
22772
 
22773
+ return target;
22774
+ };
 
 
 
 
 
 
 
 
 
 
 
 
22775
 
22776
+ return notistack_esm_extends.apply(this, arguments);
22777
  }
22778
 
22779
+ function _inheritsLoose(subClass, superClass) {
22780
+ subClass.prototype = Object.create(superClass.prototype);
22781
+ subClass.prototype.constructor = subClass;
22782
+ subClass.__proto__ = superClass;
22783
+ }
 
 
 
 
 
 
 
 
22784
 
22785
+ function notistack_esm_objectWithoutPropertiesLoose(source, excluded) {
22786
  if (source == null) return {};
22787
  var target = {};
22788
  var sourceKeys = Object.keys(source);
22797
  return target;
22798
  }
22799
 
22800
+ var SnackbarContext = /*#__PURE__*/react.createContext();
 
 
 
 
 
22801
 
22802
+ var allClasses = {
22803
+ mui: {
22804
+ root: {},
22805
+ anchorOriginTopCenter: {},
22806
+ anchorOriginBottomCenter: {},
22807
+ anchorOriginTopRight: {},
22808
+ anchorOriginBottomRight: {},
22809
+ anchorOriginTopLeft: {},
22810
+ anchorOriginBottomLeft: {}
22811
+ },
22812
+ container: {
22813
+ containerRoot: {},
22814
+ containerAnchorOriginTopCenter: {},
22815
+ containerAnchorOriginBottomCenter: {},
22816
+ containerAnchorOriginTopRight: {},
22817
+ containerAnchorOriginBottomRight: {},
22818
+ containerAnchorOriginTopLeft: {},
22819
+ containerAnchorOriginBottomLeft: {}
22820
  }
22821
+ };
22822
+ var MESSAGES = {
22823
+ NO_PERSIST_ALL: 'WARNING - notistack: Reached maxSnack while all enqueued snackbars have \'persist\' flag. Notistack will dismiss the oldest snackbar anyway to allow other ones in the queue to be presented.'
22824
+ };
22825
+ var SNACKBAR_INDENTS = {
22826
+ view: {
22827
+ "default": 20,
22828
+ dense: 4
22829
+ },
22830
+ snackbar: {
22831
+ "default": 6,
22832
+ dense: 2
22833
  }
22834
+ };
22835
+ var DEFAULTS = {
22836
+ maxSnack: 3,
22837
+ dense: false,
22838
+ hideIconVariant: false,
22839
+ variant: 'default',
22840
+ autoHideDuration: 5000,
22841
+ anchorOrigin: {
22842
+ vertical: 'bottom',
22843
+ horizontal: 'left'
22844
+ },
22845
+ TransitionComponent: Slide_Slide,
22846
+ transitionDuration: {
22847
+ enter: 225,
22848
+ exit: 195
22849
  }
22850
+ };
22851
+ var capitalise = function capitalise(text) {
22852
+ return text.charAt(0).toUpperCase() + text.slice(1);
22853
+ };
22854
+ var originKeyExtractor = function originKeyExtractor(anchor) {
22855
+ return "" + capitalise(anchor.vertical) + capitalise(anchor.horizontal);
22856
+ };
22857
+ /**
22858
+ * Omit SnackbarContainer class keys that are not needed for SnackbarItem
22859
+ */
22860
 
22861
+ var omitContainerKeys = function omitContainerKeys(classes) {
22862
+ return (// @ts-ignore
22863
+ Object.keys(classes).filter(function (key) {
22864
+ return !allClasses.container[key];
22865
+ }).reduce(function (obj, key) {
22866
+ var _extends2;
 
 
 
 
22867
 
22868
+ return notistack_esm_extends({}, obj, (_extends2 = {}, _extends2[key] = classes[key], _extends2));
22869
+ }, {})
22870
+ );
22871
+ };
22872
+ var REASONS = {
22873
+ TIMEOUT: 'timeout',
22874
+ CLICKAWAY: 'clickaway',
22875
+ MAXSNACK: 'maxsnack',
22876
+ INSTRUCTED: 'instructed'
22877
+ };
22878
+ /** Tranforms classes name */
22879
 
22880
+ var transformer = {
22881
+ toContainerAnchorOrigin: function toContainerAnchorOrigin(origin) {
22882
+ return "containerAnchorOrigin" + origin;
22883
+ },
22884
+ toAnchorOrigin: function toAnchorOrigin(_ref) {
22885
+ var vertical = _ref.vertical,
22886
+ horizontal = _ref.horizontal;
22887
+ return "anchorOrigin" + capitalise(vertical) + capitalise(horizontal);
22888
+ },
22889
+ toVariant: function toVariant(variant) {
22890
+ return "variant" + capitalise(variant);
22891
  }
22892
+ };
22893
+ var isDefined = function isDefined(value) {
22894
+ return !!value || value === 0;
22895
+ };
22896
 
22897
+ var numberOrNull = function numberOrNull(numberish) {
22898
+ return typeof numberish === 'number' || numberish === null;
22899
+ }; // @ts-ignore
22900
+
22901
+
22902
+ var notistack_esm_merge = function merge(options, props, defaults) {
22903
+ return function (name) {
22904
+ if (name === 'autoHideDuration') {
22905
+ if (numberOrNull(options.autoHideDuration)) return options.autoHideDuration;
22906
+ if (numberOrNull(props.autoHideDuration)) return props.autoHideDuration;
22907
+ return DEFAULTS.autoHideDuration;
22908
  }
 
 
 
 
 
22909
 
22910
+ return options[name] || props[name] || defaults[name];
22911
+ };
22912
+ };
22913
+ function objectMerge(options, props, defaults) {
22914
+ if (options === void 0) {
22915
+ options = {};
22916
+ }
22917
 
22918
+ if (props === void 0) {
22919
+ props = {};
22920
+ }
 
 
22921
 
22922
+ if (defaults === void 0) {
22923
+ defaults = {};
22924
  }
22925
 
22926
+ return notistack_esm_extends({}, defaults, {}, props, {}, options);
22927
  }
22928
 
22929
+ var notistack_esm_styles = function styles(theme) {
22930
+ var _root;
22931
+
22932
+ return createStyles_createStyles({
22933
+ root: (_root = {
22934
+ display: 'flex',
22935
+ flexWrap: 'wrap',
22936
+ flexGrow: 1
22937
+ }, _root[theme.breakpoints.up('sm')] = {
22938
+ flexGrow: 'initial',
22939
+ minWidth: 288
22940
+ }, _root)
22941
  });
22942
+ };
22943
 
22944
+ var SnackbarContent = /*#__PURE__*/(0,react.forwardRef)(function (_ref, ref) {
22945
+ var classes = _ref.classes,
22946
+ className = _ref.className,
22947
+ props = notistack_esm_objectWithoutPropertiesLoose(_ref, ["classes", "className"]);
 
22948
 
22949
+ return react.createElement("div", Object.assign({
22950
+ ref: ref,
22951
+ className: (0,clsx_m/* default */.Z)(classes.root, className)
22952
+ }, props));
22953
+ });
22954
+ var SnackbarContent$1 = /*#__PURE__*/(0,withStyles/* default */.Z)(notistack_esm_styles)(SnackbarContent);
22955
 
22956
+ var DIRECTION = {
22957
+ right: 'left',
22958
+ left: 'right',
22959
+ bottom: 'up',
22960
+ top: 'down'
22961
+ };
22962
+ var getTransitionDirection = function getTransitionDirection(anchorOrigin) {
22963
+ if (anchorOrigin.horizontal !== 'center') {
22964
+ return DIRECTION[anchorOrigin.horizontal];
22965
+ }
22966
 
22967
+ return DIRECTION[anchorOrigin.vertical];
22968
+ };
 
22969
 
22970
+ var CheckIcon = function CheckIcon(props) {
22971
+ return react.createElement(SvgIcon/* default */.Z, Object.assign({}, props), react.createElement("path", {
22972
+ d: "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41\n 10.59L10 14.17L17.59 6.58L19 8L10 17Z"
22973
+ }));
22974
+ };
22975
 
22976
+ var WarningIcon = function WarningIcon(props) {
22977
+ return react.createElement(SvgIcon/* default */.Z, Object.assign({}, props), react.createElement("path", {
22978
+ d: "M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z"
22979
+ }));
22980
+ };
22981
 
22982
+ var ErrorIcon = function ErrorIcon(props) {
22983
+ return react.createElement(SvgIcon/* default */.Z, Object.assign({}, props), react.createElement("path", {
22984
+ d: "M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,\n 6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,\n 13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"
22985
+ }));
22986
+ };
22987
 
22988
+ var InfoIcon = function InfoIcon(props) {
22989
+ return react.createElement(SvgIcon/* default */.Z, Object.assign({}, props), react.createElement("path", {
22990
+ d: "M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,\n 0 22,12A10,10 0 0,0 12,2Z"
22991
+ }));
 
 
22992
  };
22993
 
22994
+ var iconStyles = {
22995
+ fontSize: 20,
22996
+ marginInlineEnd: 8
22997
+ };
22998
+ var defaultIconVariants = {
22999
+ "default": undefined,
23000
+ success: /*#__PURE__*/react.createElement(CheckIcon, {
23001
+ style: iconStyles
23002
+ }),
23003
+ warning: /*#__PURE__*/react.createElement(WarningIcon, {
23004
+ style: iconStyles
23005
+ }),
23006
+ error: /*#__PURE__*/react.createElement(ErrorIcon, {
23007
+ style: iconStyles
23008
+ }),
23009
+ info: /*#__PURE__*/react.createElement(InfoIcon, {
23010
+ style: iconStyles
23011
+ })
23012
+ };
23013
 
23014
+ /**
23015
+ * @link https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/createChainedFunction.js
23016
+ */
23017
+ function notistack_esm_createChainedFunction(funcs, extraArg) {
23018
+ return funcs.reduce(function (acc, func) {
23019
+ if (func == null) return acc;
23020
 
23021
+ if (false) {}
 
 
23022
 
23023
+ return function chainedFunction() {
23024
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
23025
+ args[_key] = arguments[_key];
23026
+ }
23027
 
23028
+ var argums = [].concat(args);
 
 
23029
 
23030
+ if (extraArg && argums.indexOf(extraArg) === -1) {
23031
+ argums.push(extraArg);
23032
+ }
 
 
 
 
 
 
 
 
23033
 
23034
+ acc.apply(this, argums);
23035
+ func.apply(this, argums);
23036
+ };
23037
+ }, function () {});
23038
+ }
23039
 
23040
+ /**
23041
+ * @link https://github.com/mui-org/material-ui/blob/master/packages/material-ui/src/utils/useEventCallback.js
23042
+ */
23043
+ var notistack_esm_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
23044
+ function notistack_esm_useEventCallback(fn) {
23045
+ var ref = (0,react.useRef)(fn);
23046
+ notistack_esm_useEnhancedEffect(function () {
23047
+ ref.current = fn;
23048
+ });
23049
+ return (0,react.useCallback)(function () {
23050
+ return (ref.current).apply(void 0, arguments);
23051
+ }, []);
23052
+ }
23053
 
23054
+ var Snackbar = /*#__PURE__*/(0,react.forwardRef)(function (props, ref) {
23055
+ var children = props.children,
23056
+ autoHideDuration = props.autoHideDuration,
23057
+ ClickAwayListenerProps = props.ClickAwayListenerProps,
23058
+ _props$disableWindowB = props.disableWindowBlurListener,
23059
+ disableWindowBlurListener = _props$disableWindowB === void 0 ? false : _props$disableWindowB,
23060
+ onClose = props.onClose,
23061
+ onMouseEnter = props.onMouseEnter,
23062
+ onMouseLeave = props.onMouseLeave,
23063
+ open = props.open,
23064
+ resumeHideDuration = props.resumeHideDuration,
23065
+ other = notistack_esm_objectWithoutPropertiesLoose(props, ["children", "autoHideDuration", "ClickAwayListenerProps", "disableWindowBlurListener", "onClose", "onMouseEnter", "onMouseLeave", "open", "resumeHideDuration"]);
23066
+
23067
+ var timerAutoHide = (0,react.useRef)();
23068
+ var handleClose = notistack_esm_useEventCallback(function () {
23069
+ if (onClose) {
23070
+ onClose.apply(void 0, arguments);
23071
+ }
23072
+ });
23073
+ var setAutoHideTimer = notistack_esm_useEventCallback(function (autoHideDurationParam) {
23074
+ if (!onClose || autoHideDurationParam == null) {
23075
+ return;
23076
  }
23077
 
23078
+ clearTimeout(timerAutoHide.current);
23079
+ timerAutoHide.current = setTimeout(function () {
23080
+ handleClose(null, REASONS.TIMEOUT);
23081
+ }, autoHideDurationParam);
23082
+ });
23083
+ (0,react.useEffect)(function () {
23084
+ if (open) {
23085
+ setAutoHideTimer(autoHideDuration);
23086
+ }
23087
 
23088
+ return function () {
23089
+ clearTimeout(timerAutoHide.current);
23090
+ };
23091
+ }, [open, autoHideDuration, setAutoHideTimer]);
23092
+ /**
23093
+ * Pause the timer when the user is interacting with the Snackbar
23094
+ * or when the user hide the window.
23095
+ */
 
 
 
23096
 
23097
+ var handlePause = function handlePause() {
23098
+ clearTimeout(timerAutoHide.current);
23099
+ };
23100
+ /**
23101
+ * Restart the timer when the user is no longer interacting with the Snackbar
23102
+ * or when the window is shown back.
23103
+ */
 
 
 
 
 
23104
 
 
23105
 
23106
+ var handleResume = (0,react.useCallback)(function () {
23107
+ if (autoHideDuration != null) {
23108
+ setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);
23109
+ }
23110
+ }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);
23111
 
23112
+ var handleMouseEnter = function handleMouseEnter(event) {
23113
+ if (onMouseEnter) {
23114
+ onMouseEnter(event);
23115
+ }
23116
 
23117
+ handlePause();
23118
+ };
 
 
23119
 
23120
+ var handleMouseLeave = function handleMouseLeave(event) {
23121
+ if (onMouseLeave) {
23122
+ onMouseLeave(event);
23123
+ }
23124
 
23125
+ handleResume();
23126
+ };
 
23127
 
23128
+ var handleClickAway = function handleClickAway(event) {
23129
+ if (onClose) {
23130
+ onClose(event, REASONS.CLICKAWAY);
23131
+ }
23132
+ };
 
 
23133
 
23134
+ (0,react.useEffect)(function () {
23135
+ if (!disableWindowBlurListener && open) {
23136
+ window.addEventListener('focus', handleResume);
23137
+ window.addEventListener('blur', handlePause);
23138
  return function () {
23139
+ window.removeEventListener('focus', handleResume);
23140
+ window.removeEventListener('blur', handlePause);
23141
  };
23142
+ }
 
 
 
 
 
 
 
 
 
 
 
 
23143
 
23144
+ return undefined;
23145
+ }, [disableWindowBlurListener, handleResume, open]);
23146
+ return (0,react.createElement)(ClickAwayListener_ClickAwayListener, notistack_esm_extends({
23147
+ onClickAway: handleClickAway
23148
+ }, ClickAwayListenerProps), (0,react.createElement)("div", notistack_esm_extends({
23149
+ onMouseEnter: handleMouseEnter,
23150
+ onMouseLeave: handleMouseLeave,
23151
+ ref: ref
23152
+ }, other), children));
23153
+ });
23154
 
23155
+ var styles$1 = function styles(theme) {
23156
+ // @ts-ignore
23157
+ var mode = theme.palette.mode || theme.palette.type;
23158
+ var backgroundColor = (0,colorManipulator/* emphasize */._4)(theme.palette.background["default"], mode === 'light' ? 0.8 : 0.98);
23159
+ return createStyles_createStyles(notistack_esm_extends({}, allClasses.mui, {
23160
+ contentRoot: notistack_esm_extends({}, theme.typography.body2, {
23161
+ backgroundColor: backgroundColor,
23162
+ color: theme.palette.getContrastText(backgroundColor),
23163
+ alignItems: 'center',
23164
+ padding: '6px 16px',
23165
+ borderRadius: '4px',
23166
+ boxShadow: '0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)'
23167
+ }),
23168
+ lessPadding: {
23169
+ paddingLeft: 8 * 2.5
23170
+ },
23171
+ variantSuccess: {
23172
+ backgroundColor: '#43a047',
23173
+ color: '#fff'
23174
+ },
23175
+ variantError: {
23176
+ backgroundColor: '#d32f2f',
23177
+ color: '#fff'
23178
+ },
23179
+ variantInfo: {
23180
+ backgroundColor: '#2196f3',
23181
+ color: '#fff'
23182
+ },
23183
+ variantWarning: {
23184
+ backgroundColor: '#ff9800',
23185
+ color: '#fff'
23186
+ },
23187
+ message: {
23188
+ display: 'flex',
23189
+ alignItems: 'center',
23190
+ padding: '8px 0'
23191
+ },
23192
+ action: {
23193
+ display: 'flex',
23194
+ alignItems: 'center',
23195
+ marginLeft: 'auto',
23196
+ paddingLeft: 16,
23197
+ marginRight: -8
23198
+ },
23199
+ wrappedRoot: {
23200
+ position: 'relative',
23201
+ transform: 'translateX(0)',
23202
+ top: 0,
23203
+ right: 0,
23204
+ bottom: 0,
23205
+ left: 0
23206
+ }
23207
+ }));
23208
+ };
23209
 
23210
+ var SnackbarItem = function SnackbarItem(_ref) {
23211
+ var classes = _ref.classes,
23212
+ props = notistack_esm_objectWithoutPropertiesLoose(_ref, ["classes"]);
 
 
 
 
23213
 
23214
+ var timeout = (0,react.useRef)();
 
 
 
 
 
 
 
 
 
23215
 
23216
+ var _useState = (0,react.useState)(true),
23217
+ collapsed = _useState[0],
23218
+ setCollapsed = _useState[1];
23219
+
23220
+ (0,react.useEffect)(function () {
23221
+ return function () {
23222
+ if (timeout.current) {
23223
+ clearTimeout(timeout.current);
23224
  }
23225
+ };
23226
+ }, []);
23227
+ var handleClose = notistack_esm_createChainedFunction([props.snack.onClose, props.onClose], props.snack.key);
23228
 
23229
+ var handleEntered = function handleEntered() {
23230
+ if (props.snack.requestClose) {
23231
+ handleClose(null, REASONS.INSTRCUTED);
23232
+ }
23233
+ };
 
 
 
 
 
 
 
 
23234
 
23235
+ var handleExitedScreen = function handleExitedScreen() {
23236
+ timeout.current = setTimeout(function () {
23237
+ setCollapsed(!collapsed);
23238
+ }, 125);
23239
+ };
23240
 
23241
+ var style = props.style,
23242
+ otherAriaAttributes = props.ariaAttributes,
23243
+ otherClassName = props.className,
23244
+ hideIconVariant = props.hideIconVariant,
23245
+ iconVariant = props.iconVariant,
23246
+ snack = props.snack,
23247
+ otherAction = props.action,
23248
+ otherContent = props.content,
23249
+ otherTranComponent = props.TransitionComponent,
23250
+ otherTranProps = props.TransitionProps,
23251
+ otherTranDuration = props.transitionDuration,
23252
+ other = notistack_esm_objectWithoutPropertiesLoose(props, ["style", "dense", "ariaAttributes", "className", "hideIconVariant", "iconVariant", "snack", "action", "content", "TransitionComponent", "TransitionProps", "transitionDuration", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting"]);
23253
 
23254
+ var key = snack.key,
23255
+ open = snack.open,
23256
+ singleClassName = snack.className,
23257
+ variant = snack.variant,
23258
+ singleContent = snack.content,
23259
+ singleAction = snack.action,
23260
+ singleAriaAttributes = snack.ariaAttributes,
23261
+ anchorOrigin = snack.anchorOrigin,
23262
+ snackMessage = snack.message,
23263
+ singleTranComponent = snack.TransitionComponent,
23264
+ singleTranProps = snack.TransitionProps,
23265
+ singleTranDuration = snack.transitionDuration,
23266
+ singleSnackProps = notistack_esm_objectWithoutPropertiesLoose(snack, ["persist", "key", "open", "entered", "requestClose", "className", "variant", "content", "action", "ariaAttributes", "anchorOrigin", "message", "TransitionComponent", "TransitionProps", "transitionDuration", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting"]);
23267
 
23268
+ var icon = notistack_esm_extends({}, defaultIconVariants, {}, iconVariant)[variant];
 
23269
 
23270
+ var ariaAttributes = notistack_esm_extends({
23271
+ 'aria-describedby': 'notistack-snackbar'
23272
+ }, objectMerge(singleAriaAttributes, otherAriaAttributes));
 
 
 
 
23273
 
23274
+ var TransitionComponent = singleTranComponent || otherTranComponent || DEFAULTS.TransitionComponent;
23275
+ var transitionDuration = objectMerge(singleTranDuration, otherTranDuration, DEFAULTS.transitionDuration);
 
23276
 
23277
+ var transitionProps = notistack_esm_extends({
23278
+ direction: getTransitionDirection(anchorOrigin)
23279
+ }, objectMerge(singleTranProps, otherTranProps));
 
 
 
 
 
 
23280
 
23281
+ var action = singleAction || otherAction;
 
23282
 
23283
+ if (typeof action === 'function') {
23284
+ action = action(key);
23285
+ }
23286
 
23287
+ var content = singleContent || otherContent;
 
23288
 
23289
+ if (typeof content === 'function') {
23290
+ content = content(key, snack.message);
23291
+ }
 
 
 
 
 
23292
 
23293
+ var callbacks = ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].reduce(function (acc, cbName) {
23294
+ var _extends2;
 
23295
 
23296
+ return notistack_esm_extends({}, acc, (_extends2 = {}, _extends2[cbName] = notistack_esm_createChainedFunction([props.snack[cbName], props[cbName]], props.snack.key), _extends2));
23297
+ }, {});
23298
+ return react.createElement(Collapse_Collapse, {
23299
+ unmountOnExit: true,
23300
+ timeout: 175,
23301
+ "in": collapsed,
23302
+ onExited: callbacks.onExited
23303
+ }, react.createElement(Snackbar, Object.assign({}, other, singleSnackProps, {
23304
+ open: open,
23305
+ className: (0,clsx_m/* default */.Z)(classes.root, classes.wrappedRoot, classes[transformer.toAnchorOrigin(anchorOrigin)]),
23306
+ onClose: handleClose
23307
+ }), react.createElement(TransitionComponent, Object.assign({
23308
+ appear: true,
23309
+ "in": open,
23310
+ timeout: transitionDuration
23311
+ }, transitionProps, {
23312
+ onExit: callbacks.onExit,
23313
+ onExiting: callbacks.onExiting,
23314
+ onExited: handleExitedScreen,
23315
+ onEnter: callbacks.onEnter,
23316
+ onEntering: callbacks.onEntering,
23317
+ // order matters. first callbacks.onEntered to set entered: true,
23318
+ // then handleEntered to check if there's a request for closing
23319
+ onEntered: notistack_esm_createChainedFunction([callbacks.onEntered, handleEntered])
23320
+ }), content || react.createElement(SnackbarContent$1, Object.assign({}, ariaAttributes, {
23321
+ role: "alert",
23322
+ style: style,
23323
+ className: (0,clsx_m/* default */.Z)(classes.contentRoot, classes[transformer.toVariant(variant)], otherClassName, singleClassName, !hideIconVariant && icon && classes.lessPadding)
23324
+ }), react.createElement("div", {
23325
+ id: ariaAttributes['aria-describedby'],
23326
+ className: classes.message
23327
+ }, !hideIconVariant ? icon : null, snackMessage), action && react.createElement("div", {
23328
+ className: classes.action
23329
+ }, action)))));
23330
+ };
23331
 
23332
+ var SnackbarItem$1 = /*#__PURE__*/(0,withStyles/* default */.Z)(styles$1)(SnackbarItem);
 
 
 
23333
 
23334
+ var collapse = {
23335
+ // Material-UI 4.12.x and above uses MuiCollapse-root; earlier versions use
23336
+ // Mui-Collapse-container. https://github.com/mui-org/material-ui/pull/24084
23337
+ container: '& > .MuiCollapse-container, & > .MuiCollapse-root',
23338
+ wrapper: '& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper'
23339
+ };
23340
+ var xsWidthMargin = 16;
23341
+ var useStyle = /*#__PURE__*/styles_makeStyles(function (theme) {
23342
+ var _root, _rootDense, _left, _right, _center;
23343
 
23344
+ return {
23345
+ root: (_root = {
23346
+ boxSizing: 'border-box',
23347
+ display: 'flex',
23348
+ maxHeight: '100%',
23349
+ position: 'fixed',
23350
+ zIndex: theme.zIndex.snackbar,
23351
+ height: 'auto',
23352
+ width: 'auto',
23353
+ transition: 'top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms',
23354
+ // container itself is invisible and should not block clicks, clicks should be passed to its children
23355
+ pointerEvents: 'none'
23356
+ }, _root[collapse.container] = {
23357
+ pointerEvents: 'all'
23358
+ }, _root[collapse.wrapper] = {
23359
+ padding: SNACKBAR_INDENTS.snackbar["default"] + "px 0px",
23360
+ transition: 'padding 300ms ease 0ms'
23361
+ }, _root.maxWidth = "calc(100% - " + SNACKBAR_INDENTS.view["default"] * 2 + "px)", _root[theme.breakpoints.down('xs')] = {
23362
+ width: '100%',
23363
+ maxWidth: "calc(100% - " + xsWidthMargin * 2 + "px)"
23364
+ }, _root),
23365
+ rootDense: (_rootDense = {}, _rootDense[collapse.wrapper] = {
23366
+ padding: SNACKBAR_INDENTS.snackbar.dense + "px 0px"
23367
+ }, _rootDense),
23368
+ top: {
23369
+ top: SNACKBAR_INDENTS.view["default"] - SNACKBAR_INDENTS.snackbar["default"],
23370
+ flexDirection: 'column'
23371
+ },
23372
+ bottom: {
23373
+ bottom: SNACKBAR_INDENTS.view["default"] - SNACKBAR_INDENTS.snackbar["default"],
23374
+ flexDirection: 'column-reverse'
23375
+ },
23376
+ left: (_left = {
23377
+ left: SNACKBAR_INDENTS.view["default"]
23378
+ }, _left[theme.breakpoints.up('sm')] = {
23379
+ alignItems: 'flex-start'
23380
+ }, _left[theme.breakpoints.down('xs')] = {
23381
+ left: xsWidthMargin + "px"
23382
+ }, _left),
23383
+ right: (_right = {
23384
+ right: SNACKBAR_INDENTS.view["default"]
23385
+ }, _right[theme.breakpoints.up('sm')] = {
23386
+ alignItems: 'flex-end'
23387
+ }, _right[theme.breakpoints.down('xs')] = {
23388
+ right: xsWidthMargin + "px"
23389
+ }, _right),
23390
+ center: (_center = {
23391
+ left: '50%',
23392
+ transform: 'translateX(-50%)'
23393
+ }, _center[theme.breakpoints.up('sm')] = {
23394
+ alignItems: 'center'
23395
+ }, _center)
23396
+ };
23397
+ });
23398
 
23399
+ var SnackbarContainer = function SnackbarContainer(props) {
23400
+ var classes = useStyle();
 
23401
 
23402
+ var className = props.className,
23403
+ anchorOrigin = props.anchorOrigin,
23404
+ dense = props.dense,
23405
+ other = notistack_esm_objectWithoutPropertiesLoose(props, ["className", "anchorOrigin", "dense"]);
 
 
23406
 
23407
+ var combinedClassname = (0,clsx_m/* default */.Z)(classes[anchorOrigin.vertical], classes[anchorOrigin.horizontal], classes.root, // root should come after others to override maxWidth
23408
+ className, dense && classes.rootDense);
23409
+ return react.createElement("div", Object.assign({
23410
+ className: combinedClassname
23411
+ }, other));
23412
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23413
 
23414
+ var SnackbarContainer$1 = /*#__PURE__*/react.memo(SnackbarContainer);
 
 
 
 
 
 
 
 
 
 
23415
 
23416
+ /* eslint-disable */
23417
+ var __DEV__ = (/* unused pure expression or super */ null && ("production" !== 'production'));
 
 
 
 
 
 
 
 
 
23418
 
23419
+ var notistack_esm_warning = (function (message) {
23420
+ if (!__DEV__) return;
 
 
23421
 
23422
+ if (typeof console !== 'undefined') {
23423
+ console.error(message);
23424
+ }
23425
+
23426
+ try {
23427
+ throw new Error(message);
23428
+ } catch (x) {}
 
 
 
 
 
23429
  });
23430
 
23431
+ var SnackbarProvider = /*#__PURE__*/function (_Component) {
23432
+ _inheritsLoose(SnackbarProvider, _Component);
23433
 
23434
+ function SnackbarProvider(props) {
23435
+ var _this;
23436
 
23437
+ _this = _Component.call(this, props) || this;
23438
+ /**
23439
+ * Adds a new snackbar to the queue to be presented.
23440
+ * Returns generated or user defined key referencing the new snackbar or null
23441
+ */
23442
 
23443
+ _this.enqueueSnackbar = function (message, opts) {
23444
+ if (opts === void 0) {
23445
+ opts = {};
23446
+ }
23447
 
23448
+ var _opts = opts,
23449
+ key = _opts.key,
23450
+ preventDuplicate = _opts.preventDuplicate,
23451
+ options = notistack_esm_objectWithoutPropertiesLoose(_opts, ["key", "preventDuplicate"]);
23452
 
23453
+ var hasSpecifiedKey = isDefined(key);
23454
+ var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random();
23455
+ var merger = notistack_esm_merge(options, _this.props, DEFAULTS);
23456
 
23457
+ var snack = notistack_esm_extends({
23458
+ key: id
23459
+ }, options, {
23460
+ message: message,
23461
+ open: true,
23462
+ entered: false,
23463
+ requestClose: false,
23464
+ variant: merger('variant'),
23465
+ anchorOrigin: merger('anchorOrigin'),
23466
+ autoHideDuration: merger('autoHideDuration')
23467
+ });
23468
 
23469
+ if (options.persist) {
23470
+ snack.autoHideDuration = undefined;
23471
+ }
23472
 
23473
+ _this.setState(function (state) {
23474
+ if (preventDuplicate === undefined && _this.props.preventDuplicate || preventDuplicate) {
23475
+ var compareFunction = function compareFunction(item) {
23476
+ return hasSpecifiedKey ? item.key === key : item.message === message;
23477
+ };
23478
 
23479
+ var inQueue = state.queue.findIndex(compareFunction) > -1;
23480
+ var inView = state.snacks.findIndex(compareFunction) > -1;
23481
 
23482
+ if (inQueue || inView) {
23483
+ return state;
23484
+ }
23485
+ }
23486
 
23487
+ return _this.handleDisplaySnack(notistack_esm_extends({}, state, {
23488
+ queue: [].concat(state.queue, [snack])
23489
+ }));
23490
+ });
23491
 
23492
+ return id;
23493
+ };
23494
+ /**
23495
+ * Reducer: Display snack if there's space for it. Otherwise, immediately
23496
+ * begin dismissing the oldest message to start showing the new one.
23497
+ */
23498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23499
 
23500
+ _this.handleDisplaySnack = function (state) {
23501
+ var snacks = state.snacks;
 
 
 
 
 
 
 
 
 
 
 
 
 
23502
 
23503
+ if (snacks.length >= _this.maxSnack) {
23504
+ return _this.handleDismissOldest(state);
23505
+ }
23506
 
23507
+ return _this.processQueue(state);
23508
+ };
23509
+ /**
23510
+ * Reducer: Display items (notifications) in the queue if there's space for them.
23511
+ */
23512
 
23513
 
23514
+ _this.processQueue = function (state) {
23515
+ var queue = state.queue,
23516
+ snacks = state.snacks;
23517
 
23518
+ if (queue.length > 0) {
23519
+ return notistack_esm_extends({}, state, {
23520
+ snacks: [].concat(snacks, [queue[0]]),
23521
+ queue: queue.slice(1, queue.length)
23522
+ });
23523
+ }
23524
 
23525
+ return state;
23526
+ };
23527
+ /**
23528
+ * Reducer: Hide oldest snackbar on the screen because there exists a new one which we have to display.
23529
+ * (ignoring the one with 'persist' flag. i.e. explicitly told by user not to get dismissed).
23530
+ *
23531
+ * Note 1: If there is already a message leaving the screen, no new messages are dismissed.
23532
+ * Note 2: If the oldest message has not yet entered the screen, only a request to close the
23533
+ * snackbar is made. Once it entered the screen, it will be immediately dismissed.
23534
+ */
23535
 
 
 
23536
 
23537
+ _this.handleDismissOldest = function (state) {
23538
+ if (state.snacks.some(function (item) {
23539
+ return !item.open || item.requestClose;
23540
+ })) {
23541
+ return state;
23542
+ }
23543
 
23544
+ var popped = false;
23545
+ var ignore = false;
23546
+ var persistentCount = state.snacks.reduce(function (acc, current) {
23547
+ return acc + (current.open && current.persist ? 1 : 0);
23548
+ }, 0);
23549
 
23550
+ if (persistentCount === _this.maxSnack) {
23551
+ false ? 0 : void 0;
23552
+ ignore = true;
23553
+ }
 
 
23554
 
23555
+ var snacks = state.snacks.map(function (item) {
23556
+ if (!popped && (!item.persist || ignore)) {
23557
+ popped = true;
23558
 
23559
+ if (!item.entered) {
23560
+ return notistack_esm_extends({}, item, {
23561
+ requestClose: true
23562
+ });
23563
+ }
 
 
 
 
 
 
 
 
23564
 
23565
+ if (item.onClose) item.onClose(null, REASONS.MAXSNACK, item.key);
23566
+ if (_this.props.onClose) _this.props.onClose(null, REASONS.MAXSNACK, item.key);
23567
+ return notistack_esm_extends({}, item, {
23568
+ open: false
23569
+ });
23570
+ }
 
23571
 
23572
+ return notistack_esm_extends({}, item);
 
 
 
23573
  });
23574
+ return notistack_esm_extends({}, state, {
23575
+ snacks: snacks
23576
+ });
23577
+ };
23578
+ /**
23579
+ * Set the entered state of the snackbar with the given key.
23580
+ */
23581
 
 
 
23582
 
23583
+ _this.handleEnteredSnack = function (node, isAppearing, key) {
23584
+ if (!isDefined(key)) {
23585
+ throw new Error('handleEnteredSnack Cannot be called with undefined key');
23586
+ }
23587
 
23588
+ _this.setState(function (_ref) {
23589
+ var snacks = _ref.snacks;
23590
+ return {
23591
+ snacks: snacks.map(function (item) {
23592
+ return item.key === key ? notistack_esm_extends({}, item, {
23593
+ entered: true
23594
+ }) : notistack_esm_extends({}, item);
23595
+ })
23596
+ };
23597
+ });
23598
+ };
23599
+ /**
23600
+ * Hide a snackbar after its timeout.
23601
+ */
23602
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23603
 
23604
+ _this.handleCloseSnack = function (event, reason, key) {
23605
+ // should not use createChainedFunction for onClose.
23606
+ // because this.closeSnackbar called this function
23607
+ if (_this.props.onClose) {
23608
+ _this.props.onClose(event, reason, key);
23609
+ }
23610
 
23611
+ if (reason === REASONS.CLICKAWAY) return;
23612
+ var shouldCloseAll = key === undefined;
23613
 
23614
+ _this.setState(function (_ref2) {
23615
+ var snacks = _ref2.snacks,
23616
+ queue = _ref2.queue;
23617
+ return {
23618
+ snacks: snacks.map(function (item) {
23619
+ if (!shouldCloseAll && item.key !== key) {
23620
+ return notistack_esm_extends({}, item);
23621
+ }
23622
 
23623
+ return item.entered ? notistack_esm_extends({}, item, {
23624
+ open: false
23625
+ }) : notistack_esm_extends({}, item, {
23626
+ requestClose: true
23627
+ });
23628
+ }),
23629
+ queue: queue.filter(function (item) {
23630
+ return item.key !== key;
23631
+ })
23632
+ };
23633
+ });
23634
+ };
23635
+ /**
23636
+ * Close snackbar with the given key
23637
+ */
23638
 
 
23639
 
23640
+ _this.closeSnackbar = function (key) {
23641
+ // call individual snackbar onClose callback passed through options parameter
23642
+ var toBeClosed = _this.state.snacks.find(function (item) {
23643
+ return item.key === key;
23644
+ });
23645
 
23646
+ if (isDefined(key) && toBeClosed && toBeClosed.onClose) {
23647
+ toBeClosed.onClose(null, REASONS.INSTRUCTED, key);
23648
+ }
23649
 
23650
+ _this.handleCloseSnack(null, REASONS.INSTRUCTED, key);
23651
+ };
23652
+ /**
23653
+ * When we set open attribute of a snackbar to false (i.e. after we hide a snackbar),
23654
+ * it leaves the screen and immediately after leaving animation is done, this method
23655
+ * gets called. We remove the hidden snackbar from state and then display notifications
23656
+ * waiting in the queue (if any). If after this process the queue is not empty, the
23657
+ * oldest message is dismissed.
23658
+ */
23659
+ // @ts-ignore
23660
 
 
 
 
 
 
 
 
23661
 
23662
+ _this.handleExitedSnack = function (event, key1, key2) {
23663
+ var key = key1 || key2;
 
23664
 
23665
+ if (!isDefined(key)) {
23666
+ throw new Error('handleExitedSnack Cannot be called with undefined key');
23667
+ }
 
 
 
 
 
 
 
 
23668
 
23669
+ _this.setState(function (state) {
23670
+ var newState = _this.processQueue(notistack_esm_extends({}, state, {
23671
+ snacks: state.snacks.filter(function (item) {
23672
+ return item.key !== key;
23673
+ })
23674
+ }));
 
23675
 
23676
+ if (newState.queue.length === 0) {
23677
+ return newState;
23678
+ }
 
23679
 
23680
+ return _this.handleDismissOldest(newState);
23681
+ });
23682
+ };
 
 
23683
 
23684
+ _this.state = {
23685
+ snacks: [],
23686
+ queue: [],
23687
+ contextValue: {
23688
+ enqueueSnackbar: _this.enqueueSnackbar,
23689
+ closeSnackbar: _this.closeSnackbar
23690
+ }
23691
+ };
23692
+ return _this;
23693
+ }
23694
 
23695
+ var _proto = SnackbarProvider.prototype;
23696
 
23697
+ _proto.render = function render() {
23698
+ var _this2 = this;
 
 
 
 
 
23699
 
23700
+ var contextValue = this.state.contextValue;
23701
 
23702
+ var _this$props = this.props,
23703
+ iconVariant = _this$props.iconVariant,
23704
+ _this$props$dense = _this$props.dense,
23705
+ dense = _this$props$dense === void 0 ? DEFAULTS.dense : _this$props$dense,
23706
+ _this$props$hideIconV = _this$props.hideIconVariant,
23707
+ hideIconVariant = _this$props$hideIconV === void 0 ? DEFAULTS.hideIconVariant : _this$props$hideIconV,
23708
+ domRoot = _this$props.domRoot,
23709
+ children = _this$props.children,
23710
+ _this$props$classes = _this$props.classes,
23711
+ classes = _this$props$classes === void 0 ? {} : _this$props$classes,
23712
+ props = notistack_esm_objectWithoutPropertiesLoose(_this$props, ["maxSnack", "preventDuplicate", "variant", "anchorOrigin", "iconVariant", "dense", "hideIconVariant", "domRoot", "children", "classes"]);
23713
 
23714
+ var categ = this.state.snacks.reduce(function (acc, current) {
23715
+ var _extends2;
23716
+
23717
+ var category = originKeyExtractor(current.anchorOrigin);
23718
+ var existingOfCategory = acc[category] || [];
23719
+ return notistack_esm_extends({}, acc, (_extends2 = {}, _extends2[category] = [].concat(existingOfCategory, [current]), _extends2));
23720
+ }, {});
23721
+ var snackbars = Object.keys(categ).map(function (origin) {
23722
+ var snacks = categ[origin];
23723
+ return react.createElement(SnackbarContainer$1, {
23724
+ key: origin,
23725
+ dense: dense,
23726
+ anchorOrigin: snacks[0].anchorOrigin,
23727
+ className: (0,clsx_m/* default */.Z)(classes.containerRoot, classes[transformer.toContainerAnchorOrigin(origin)])
23728
+ }, snacks.map(function (snack) {
23729
+ return react.createElement(SnackbarItem$1, Object.assign({}, props, {
23730
+ key: snack.key,
23731
+ snack: snack,
23732
+ dense: dense,
23733
+ iconVariant: iconVariant,
23734
+ hideIconVariant: hideIconVariant,
23735
+ classes: omitContainerKeys(classes),
23736
+ onClose: _this2.handleCloseSnack,
23737
+ onExited: notistack_esm_createChainedFunction([_this2.handleExitedSnack, _this2.props.onExited]),
23738
+ onEntered: notistack_esm_createChainedFunction([_this2.handleEnteredSnack, _this2.props.onEntered])
23739
+ }));
23740
+ }));
23741
  });
23742
+ return react.createElement(SnackbarContext.Provider, {
23743
+ value: contextValue
23744
+ }, children, domRoot ? (0,react_dom.createPortal)(snackbars, domRoot) : snackbars);
23745
+ };
23746
 
23747
+ notistack_esm_createClass(SnackbarProvider, [{
23748
+ key: "maxSnack",
23749
+ get: function get() {
23750
+ return this.props.maxSnack || DEFAULTS.maxSnack;
 
 
 
 
 
23751
  }
23752
+ }]);
23753
 
23754
+ return SnackbarProvider;
23755
+ }(react.Component);
 
 
 
 
 
 
 
 
 
 
23756
 
23757
+ // https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3
23758
+ var fnNameMatchRegex = /^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s/]*)\s*/;
23759
 
23760
+ var notistack_esm_getFunctionName = function getFunctionName(fn) {
23761
+ var match = ("" + fn).match(fnNameMatchRegex);
23762
+ var name = match && match[1];
23763
+ return name || '';
23764
+ };
 
 
 
 
23765
  /**
23766
+ * @param {function} Component
23767
+ * @param {string} fallback
23768
+ * @returns {string | undefined}
 
 
23769
  */
23770
 
23771
 
23772
+ var getFunctionComponentName = function getFunctionComponentName(Component, fallback) {
23773
+ if (fallback === void 0) {
23774
+ fallback = '';
23775
+ }
23776
 
23777
+ return Component.displayName || Component.name || notistack_esm_getFunctionName(Component) || fallback;
23778
+ };
 
 
 
 
23779
 
23780
+ var getWrappedName = function getWrappedName(outerType, innerType, wrapperName) {
23781
+ var functionName = getFunctionComponentName(innerType);
23782
+ return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
23783
+ };
23784
+ /**
23785
+ * From react-is
23786
+ * @link https://github.com/facebook/react/blob/master/packages/shared/ReactSymbols.js
23787
+ */
23788
 
 
 
 
 
23789
 
23790
+ var ForwardRef = function ForwardRef() {
23791
+ var symbolFor = typeof Symbol === 'function' && Symbol["for"];
23792
+ return symbolFor ? symbolFor('react.forward_ref') : 0xead0;
23793
+ };
23794
+ /**
23795
+ * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js
23796
+ *
23797
+ * @param {React.ReactType} Component
23798
+ * @returns {string | undefined}
23799
+ */
23800
 
 
 
23801
 
23802
+ var getDisplayName = (function (Component) {
23803
+ if (Component == null) {
23804
+ return undefined;
23805
+ }
23806
 
23807
+ if (typeof Component === 'string') {
23808
+ return Component;
23809
+ }
 
 
23810
 
23811
+ if (typeof Component === 'function') {
23812
+ return getFunctionComponentName(Component, 'Component');
23813
+ }
 
23814
 
23815
+ if (typeof Component === 'object') {
23816
+ switch (Component.$$typeof) {
23817
+ case ForwardRef():
23818
+ return getWrappedName(Component, Component.render, 'ForwardRef');
 
 
 
 
 
 
 
 
 
 
 
23819
 
23820
+ default:
23821
+ return undefined;
 
23822
  }
23823
+ }
 
 
 
23824
 
23825
+ return undefined;
23826
+ });
 
23827
 
23828
+ var withSnackbar = function withSnackbar(Component) {
23829
+ var WrappedComponent = React__default.forwardRef(function (props, ref) {
23830
+ return React__default.createElement(SnackbarContext.Consumer, null, function (context) {
23831
+ return React__default.createElement(Component, notistack_esm_extends({}, props, {
23832
+ ref: ref,
23833
+ enqueueSnackbar: context.enqueueSnackbar,
23834
+ closeSnackbar: context.closeSnackbar
23835
+ }));
23836
+ });
23837
+ });
23838
 
23839
+ if (false) {}
 
 
 
 
23840
 
23841
+ hoistNonReactStatics(WrappedComponent, Component);
23842
+ return WrappedComponent;
23843
+ };
 
23844
 
23845
+ var useSnackbar = (function () {
23846
+ return (0,react.useContext)(SnackbarContext);
23847
+ });
 
 
 
 
23848
 
 
 
 
 
23849
 
23850
+ //# sourceMappingURL=notistack.esm.js.map
 
 
 
 
 
 
 
23851
 
23852
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Accordion/AccordionContext.js
 
23853
 
23854
+ /**
23855
+ * @ignore - internal component.
23856
+ * @type {React.Context<{} | {expanded: boolean, disabled: boolean, toggle: () => void}>}
23857
+ */
23858
 
23859
+ var AccordionContext = react.createContext({});
 
23860
 
23861
+ if (false) {}
23862
 
23863
+ /* harmony default export */ var Accordion_AccordionContext = (AccordionContext);
23864
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/useControlled.js
23865
+ var useControlled = __webpack_require__(22775);
23866
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Accordion/Accordion.js
23867
 
23868
 
23869
 
23870
 
 
 
 
23871
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23872
 
 
 
 
 
 
 
 
 
 
23873
 
 
 
 
 
 
 
 
 
 
 
 
23874
 
 
 
 
 
23875
 
 
23876
 
 
 
 
23877
 
 
 
23878
 
 
 
23879
 
 
 
 
23880
 
23881
+ var Accordion_styles = function styles(theme) {
23882
+ var transition = {
23883
+ duration: theme.transitions.duration.shortest
23884
+ };
23885
+ return {
23886
+ /* Styles applied to the root element. */
23887
+ root: {
23888
+ position: 'relative',
23889
+ transition: theme.transitions.create(['margin'], transition),
23890
+ '&:before': {
23891
+ position: 'absolute',
23892
+ left: 0,
23893
+ top: -1,
23894
+ right: 0,
23895
+ height: 1,
23896
+ content: '""',
23897
+ opacity: 1,
23898
+ backgroundColor: theme.palette.divider,
23899
+ transition: theme.transitions.create(['opacity', 'background-color'], transition)
23900
+ },
23901
+ '&:first-child': {
23902
+ '&:before': {
23903
+ display: 'none'
23904
+ }
23905
+ },
23906
+ '&$expanded': {
23907
+ margin: '16px 0',
23908
+ '&:first-child': {
23909
+ marginTop: 0
23910
+ },
23911
+ '&:last-child': {
23912
+ marginBottom: 0
23913
+ },
23914
+ '&:before': {
23915
+ opacity: 0
23916
+ }
23917
+ },
23918
+ '&$expanded + &': {
23919
+ '&:before': {
23920
+ display: 'none'
23921
+ }
23922
+ },
23923
+ '&$disabled': {
23924
+ backgroundColor: theme.palette.action.disabledBackground
23925
  }
23926
+ },
23927
 
23928
+ /* Styles applied to the root element if `square={false}`. */
23929
+ rounded: {
23930
+ borderRadius: 0,
23931
+ '&:first-child': {
23932
+ borderTopLeftRadius: theme.shape.borderRadius,
23933
+ borderTopRightRadius: theme.shape.borderRadius
23934
+ },
23935
+ '&:last-child': {
23936
+ borderBottomLeftRadius: theme.shape.borderRadius,
23937
+ borderBottomRightRadius: theme.shape.borderRadius,
23938
+ // Fix a rendering issue on Edge
23939
+ '@supports (-ms-ime-align: auto)': {
23940
+ borderBottomLeftRadius: 0,
23941
+ borderBottomRightRadius: 0
23942
+ }
23943
  }
23944
+ },
23945
 
23946
+ /* Styles applied to the root element if `expanded={true}`. */
23947
+ expanded: {},
 
 
23948
 
23949
+ /* Styles applied to the root element if `disabled={true}`. */
23950
+ disabled: {}
23951
+ };
23952
+ };
23953
+ var Accordion = /*#__PURE__*/react.forwardRef(function Accordion(props, ref) {
23954
+ var childrenProp = props.children,
23955
+ classes = props.classes,
23956
+ className = props.className,
23957
+ _props$defaultExpande = props.defaultExpanded,
23958
+ defaultExpanded = _props$defaultExpande === void 0 ? false : _props$defaultExpande,
23959
+ _props$disabled = props.disabled,
23960
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
23961
+ expandedProp = props.expanded,
23962
+ onChange = props.onChange,
23963
+ _props$square = props.square,
23964
+ square = _props$square === void 0 ? false : _props$square,
23965
+ _props$TransitionComp = props.TransitionComponent,
23966
+ TransitionComponent = _props$TransitionComp === void 0 ? Collapse_Collapse : _props$TransitionComp,
23967
+ TransitionProps = props.TransitionProps,
23968
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "defaultExpanded", "disabled", "expanded", "onChange", "square", "TransitionComponent", "TransitionProps"]);
23969
 
23970
+ var _useControlled = (0,useControlled/* default */.Z)({
23971
+ controlled: expandedProp,
23972
+ default: defaultExpanded,
23973
+ name: 'Accordion',
23974
+ state: 'expanded'
23975
+ }),
23976
+ _useControlled2 = (0,slicedToArray/* default */.Z)(_useControlled, 2),
23977
+ expanded = _useControlled2[0],
23978
+ setExpandedState = _useControlled2[1];
23979
 
23980
+ var handleChange = react.useCallback(function (event) {
23981
+ setExpandedState(!expanded);
 
 
23982
 
23983
+ if (onChange) {
23984
+ onChange(event, !expanded);
23985
+ }
23986
+ }, [expanded, onChange, setExpandedState]);
23987
+
23988
+ var _React$Children$toArr = react.Children.toArray(childrenProp),
23989
+ _React$Children$toArr2 = _toArray(_React$Children$toArr),
23990
+ summary = _React$Children$toArr2[0],
23991
+ children = _React$Children$toArr2.slice(1);
23992
+
23993
+ var contextValue = react.useMemo(function () {
23994
+ return {
23995
+ expanded: expanded,
23996
+ disabled: disabled,
23997
+ toggle: handleChange
23998
  };
23999
+ }, [expanded, disabled, handleChange]);
24000
+ return /*#__PURE__*/react.createElement(Paper_Paper, (0,esm_extends/* default */.Z)({
24001
+ className: (0,clsx_m/* default */.Z)(classes.root, className, expanded && classes.expanded, disabled && classes.disabled, !square && classes.rounded),
24002
+ ref: ref,
24003
+ square: square
24004
+ }, other), /*#__PURE__*/react.createElement(Accordion_AccordionContext.Provider, {
24005
+ value: contextValue
24006
+ }, summary), /*#__PURE__*/react.createElement(TransitionComponent, (0,esm_extends/* default */.Z)({
24007
+ in: expanded,
24008
+ timeout: "auto"
24009
+ }, TransitionProps), /*#__PURE__*/react.createElement("div", {
24010
+ "aria-labelledby": summary.props.id,
24011
+ id: summary.props['aria-controls'],
24012
+ role: "region"
24013
+ }, children)));
24014
+ });
24015
+ false ? 0 : void 0;
24016
+ /* harmony default export */ var Accordion_Accordion = ((0,withStyles/* default */.Z)(Accordion_styles, {
24017
+ name: 'MuiAccordion'
24018
+ })(Accordion));
24019
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/IconButton/IconButton.js
24020
 
 
 
 
 
 
 
24021
 
 
 
 
 
 
 
 
24022
 
 
 
 
 
 
 
 
 
24023
 
24024
+
24025
+
24026
+
24027
+
24028
+
24029
+
24030
+ var IconButton_styles = function styles(theme) {
24031
+ return {
24032
+ /* Styles applied to the root element. */
24033
+ root: {
24034
+ textAlign: 'center',
24035
+ flex: '0 0 auto',
24036
+ fontSize: theme.typography.pxToRem(24),
24037
+ padding: 12,
24038
+ borderRadius: '50%',
24039
+ overflow: 'visible',
24040
+ // Explicitly set the default value to solve a bug on IE 11.
24041
+ color: theme.palette.action.active,
24042
+ transition: theme.transitions.create('background-color', {
24043
+ duration: theme.transitions.duration.shortest
24044
+ }),
24045
+ '&:hover': {
24046
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.action.active, theme.palette.action.hoverOpacity),
24047
+ // Reset on touch devices, it doesn't add specificity
24048
+ '@media (hover: none)': {
24049
+ backgroundColor: 'transparent'
24050
+ }
24051
+ },
24052
+ '&$disabled': {
24053
+ backgroundColor: 'transparent',
24054
+ color: theme.palette.action.disabled
24055
  }
24056
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
24057
 
24058
+ /* Styles applied to the root element if `edge="start"`. */
24059
+ edgeStart: {
24060
+ marginLeft: -12,
24061
+ '$sizeSmall&': {
24062
+ marginLeft: -3
24063
+ }
24064
+ },
24065
 
24066
+ /* Styles applied to the root element if `edge="end"`. */
24067
+ edgeEnd: {
24068
+ marginRight: -12,
24069
+ '$sizeSmall&': {
24070
+ marginRight: -3
24071
+ }
24072
+ },
24073
 
24074
+ /* Styles applied to the root element if `color="inherit"`. */
24075
+ colorInherit: {
24076
+ color: 'inherit'
24077
+ },
24078
 
24079
+ /* Styles applied to the root element if `color="primary"`. */
24080
+ colorPrimary: {
24081
+ color: theme.palette.primary.main,
24082
+ '&:hover': {
24083
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.primary.main, theme.palette.action.hoverOpacity),
24084
+ // Reset on touch devices, it doesn't add specificity
24085
+ '@media (hover: none)': {
24086
+ backgroundColor: 'transparent'
24087
+ }
24088
+ }
24089
+ },
24090
 
24091
+ /* Styles applied to the root element if `color="secondary"`. */
24092
+ colorSecondary: {
24093
+ color: theme.palette.secondary.main,
24094
+ '&:hover': {
24095
+ backgroundColor: (0,colorManipulator/* fade */.U1)(theme.palette.secondary.main, theme.palette.action.hoverOpacity),
24096
+ // Reset on touch devices, it doesn't add specificity
24097
+ '@media (hover: none)': {
24098
+ backgroundColor: 'transparent'
24099
+ }
24100
+ }
24101
+ },
24102
 
24103
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
24104
+ disabled: {},
24105
 
24106
+ /* Styles applied to the root element if `size="small"`. */
24107
+ sizeSmall: {
24108
+ padding: 3,
24109
+ fontSize: theme.typography.pxToRem(18)
24110
+ },
 
 
 
 
 
 
 
24111
 
24112
+ /* Styles applied to the children container element. */
24113
+ label: {
24114
+ width: '100%',
24115
+ display: 'flex',
24116
+ alignItems: 'inherit',
24117
+ justifyContent: 'inherit'
24118
+ }
24119
+ };
24120
  };
24121
  /**
24122
+ * Refer to the [Icons](/components/icons/) section of the documentation
24123
+ * regarding the available icon options.
24124
  */
24125
 
24126
+ var IconButton_IconButton = /*#__PURE__*/react.forwardRef(function IconButton(props, ref) {
24127
+ var _props$edge = props.edge,
24128
+ edge = _props$edge === void 0 ? false : _props$edge,
24129
+ children = props.children,
24130
+ classes = props.classes,
24131
+ className = props.className,
24132
+ _props$color = props.color,
24133
+ color = _props$color === void 0 ? 'default' : _props$color,
24134
+ _props$disabled = props.disabled,
24135
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
24136
+ _props$disableFocusRi = props.disableFocusRipple,
24137
+ disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,
24138
+ _props$size = props.size,
24139
+ size = _props$size === void 0 ? 'medium' : _props$size,
24140
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["edge", "children", "classes", "className", "color", "disabled", "disableFocusRipple", "size"]);
24141
 
24142
+ return /*#__PURE__*/react.createElement(ButtonBase_ButtonBase, (0,esm_extends/* default */.Z)({
24143
+ className: (0,clsx_m/* default */.Z)(classes.root, className, color !== 'default' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], disabled && classes.disabled, size === "small" && classes["size".concat((0,utils_capitalize/* default */.Z)(size))], {
24144
+ 'start': classes.edgeStart,
24145
+ 'end': classes.edgeEnd
24146
+ }[edge]),
24147
+ centerRipple: true,
24148
+ focusRipple: !disableFocusRipple,
24149
+ disabled: disabled,
24150
  ref: ref
24151
+ }, other), /*#__PURE__*/react.createElement("span", {
24152
+ className: classes.label
24153
+ }, children));
24154
  });
24155
  false ? 0 : void 0;
24156
+ /* harmony default export */ var esm_IconButton_IconButton = ((0,withStyles/* default */.Z)(IconButton_styles, {
24157
+ name: 'MuiIconButton'
24158
+ })(IconButton_IconButton));
24159
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/AccordionSummary/AccordionSummary.js
24160
 
24161
 
24162
 
24163
+ /* eslint-disable jsx-a11y/aria-role */
24164
 
24165
 
24166
 
24168
 
24169
 
24170
 
24171
+ var AccordionSummary_styles = function styles(theme) {
24172
+ var transition = {
24173
+ duration: theme.transitions.duration.shortest
24174
+ };
24175
+ return {
24176
+ /* Styles applied to the root element. */
24177
+ root: {
24178
+ display: 'flex',
24179
+ minHeight: 8 * 6,
24180
+ transition: theme.transitions.create(['min-height', 'background-color'], transition),
24181
+ padding: theme.spacing(0, 2),
24182
+ '&:hover:not($disabled)': {
24183
+ cursor: 'pointer'
24184
+ },
24185
+ '&$expanded': {
24186
+ minHeight: 64
24187
+ },
24188
+ '&$focused': {
24189
+ backgroundColor: theme.palette.action.focus
24190
+ },
24191
+ '&$disabled': {
24192
+ opacity: theme.palette.action.disabledOpacity
24193
+ }
24194
+ },
24195
 
24196
+ /* Pseudo-class applied to the root element, children wrapper element and `IconButton` component if `expanded={true}`. */
24197
+ expanded: {},
24198
 
24199
+ /* Pseudo-class applied to the root element if `focused={true}`. */
24200
+ focused: {},
24201
 
24202
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
24203
+ disabled: {},
24204
 
24205
+ /* Styles applied to the children wrapper element. */
24206
+ content: {
24207
+ display: 'flex',
24208
+ flexGrow: 1,
24209
+ transition: theme.transitions.create(['margin'], transition),
24210
+ margin: '12px 0',
24211
+ '&$expanded': {
24212
+ margin: '20px 0'
24213
+ }
24214
+ },
24215
 
24216
+ /* Styles applied to the `IconButton` component when `expandIcon` is supplied. */
24217
+ expandIcon: {
24218
+ transform: 'rotate(0deg)',
24219
+ transition: theme.transitions.create('transform', transition),
24220
+ '&:hover': {
24221
+ // Disable the hover effect for the IconButton,
24222
+ // because a hover effect should apply to the entire Expand button and
24223
+ // not only to the IconButton.
24224
+ backgroundColor: 'transparent'
24225
+ },
24226
+ '&$expanded': {
24227
+ transform: 'rotate(180deg)'
24228
+ }
24229
+ }
24230
+ };
24231
+ };
24232
+ var AccordionSummary = /*#__PURE__*/react.forwardRef(function AccordionSummary(props, ref) {
24233
+ var children = props.children,
24234
+ classes = props.classes,
24235
+ className = props.className,
24236
+ expandIcon = props.expandIcon,
24237
+ IconButtonProps = props.IconButtonProps,
24238
+ onBlur = props.onBlur,
24239
+ onClick = props.onClick,
24240
+ onFocusVisible = props.onFocusVisible,
24241
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "expandIcon", "IconButtonProps", "onBlur", "onClick", "onFocusVisible"]);
24242
 
24243
+ var _React$useState = react.useState(false),
24244
+ focusedState = _React$useState[0],
24245
+ setFocusedState = _React$useState[1];
 
24246
 
24247
+ var handleFocusVisible = function handleFocusVisible(event) {
24248
+ setFocusedState(true);
 
 
24249
 
24250
+ if (onFocusVisible) {
24251
+ onFocusVisible(event);
24252
+ }
24253
+ };
24254
 
24255
+ var handleBlur = function handleBlur(event) {
24256
+ setFocusedState(false);
 
 
 
 
 
 
 
 
 
 
24257
 
24258
+ if (onBlur) {
24259
+ onBlur(event);
 
24260
  }
24261
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24262
 
24263
+ var _React$useContext = react.useContext(Accordion_AccordionContext),
24264
+ _React$useContext$dis = _React$useContext.disabled,
24265
+ disabled = _React$useContext$dis === void 0 ? false : _React$useContext$dis,
24266
+ expanded = _React$useContext.expanded,
24267
+ toggle = _React$useContext.toggle;
 
 
24268
 
24269
+ var handleChange = function handleChange(event) {
24270
+ if (toggle) {
24271
+ toggle(event);
24272
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24273
 
24274
+ if (onClick) {
24275
+ onClick(event);
24276
+ }
24277
  };
24278
 
24279
+ return /*#__PURE__*/react.createElement(ButtonBase_ButtonBase, (0,esm_extends/* default */.Z)({
24280
+ focusRipple: false,
24281
+ disableRipple: true,
24282
+ disabled: disabled,
24283
+ component: "div",
24284
+ "aria-expanded": expanded,
24285
+ className: (0,clsx_m/* default */.Z)(classes.root, className, disabled && classes.disabled, expanded && classes.expanded, focusedState && classes.focused),
24286
+ onFocusVisible: handleFocusVisible,
24287
+ onBlur: handleBlur,
24288
+ onClick: handleChange,
24289
+ ref: ref
24290
+ }, other), /*#__PURE__*/react.createElement("div", {
24291
+ className: (0,clsx_m/* default */.Z)(classes.content, expanded && classes.expanded)
24292
+ }, children), expandIcon && /*#__PURE__*/react.createElement(esm_IconButton_IconButton, (0,esm_extends/* default */.Z)({
24293
+ className: (0,clsx_m/* default */.Z)(classes.expandIcon, expanded && classes.expanded),
24294
+ edge: "end",
24295
+ component: "div",
24296
+ tabIndex: null,
24297
+ role: null,
24298
+ "aria-hidden": true
24299
+ }, IconButtonProps), expandIcon));
24300
+ });
24301
+ false ? 0 : void 0;
24302
+ /* harmony default export */ var AccordionSummary_AccordionSummary = ((0,withStyles/* default */.Z)(AccordionSummary_styles, {
24303
+ name: 'MuiAccordionSummary'
24304
+ })(AccordionSummary));
24305
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Icon/Icon.js
24306
 
 
 
 
 
24307
 
 
 
24308
 
 
 
 
24309
 
 
 
 
 
 
 
 
 
 
24310
 
 
 
 
24311
 
 
 
 
24312
 
24313
+ var Icon_styles = function styles(theme) {
24314
+ return {
24315
+ /* Styles applied to the root element. */
24316
+ root: {
24317
+ userSelect: 'none',
24318
+ fontSize: theme.typography.pxToRem(24),
24319
+ width: '1em',
24320
+ height: '1em',
24321
+ // Chrome fix for https://bugs.chromium.org/p/chromium/issues/detail?id=820541
24322
+ // To remove at some point.
24323
+ overflow: 'hidden',
24324
+ flexShrink: 0
24325
+ },
 
 
 
 
 
 
 
 
24326
 
24327
+ /* Styles applied to the root element if `color="primary"`. */
24328
+ colorPrimary: {
24329
+ color: theme.palette.primary.main
24330
+ },
24331
 
24332
+ /* Styles applied to the root element if `color="secondary"`. */
24333
+ colorSecondary: {
24334
+ color: theme.palette.secondary.main
24335
+ },
24336
 
24337
+ /* Styles applied to the root element if `color="action"`. */
24338
+ colorAction: {
24339
+ color: theme.palette.action.active
24340
+ },
24341
 
24342
+ /* Styles applied to the root element if `color="error"`. */
24343
+ colorError: {
24344
+ color: theme.palette.error.main
24345
+ },
24346
 
24347
+ /* Styles applied to the root element if `color="disabled"`. */
24348
+ colorDisabled: {
24349
+ color: theme.palette.action.disabled
24350
+ },
24351
 
24352
+ /* Styles applied to the root element if `fontSize="inherit"`. */
24353
+ fontSizeInherit: {
24354
+ fontSize: 'inherit'
24355
+ },
24356
 
24357
+ /* Styles applied to the root element if `fontSize="small"`. */
24358
+ fontSizeSmall: {
24359
+ fontSize: theme.typography.pxToRem(20)
24360
+ },
24361
 
24362
+ /* Styles applied to the root element if `fontSize="large"`. */
24363
+ fontSizeLarge: {
24364
+ fontSize: theme.typography.pxToRem(36)
 
 
 
 
 
 
24365
  }
24366
+ };
24367
+ };
24368
+ var Icon_Icon = /*#__PURE__*/react.forwardRef(function Icon(props, ref) {
24369
+ var classes = props.classes,
24370
+ className = props.className,
24371
+ _props$color = props.color,
24372
+ color = _props$color === void 0 ? 'inherit' : _props$color,
24373
+ _props$component = props.component,
24374
+ Component = _props$component === void 0 ? 'span' : _props$component,
24375
+ _props$fontSize = props.fontSize,
24376
+ fontSize = _props$fontSize === void 0 ? 'default' : _props$fontSize,
24377
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "component", "fontSize"]);
24378
 
24379
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
24380
+ className: (0,clsx_m/* default */.Z)('material-icons', classes.root, className, color !== 'inherit' && classes["color".concat((0,utils_capitalize/* default */.Z)(color))], fontSize !== 'default' && classes["fontSize".concat((0,utils_capitalize/* default */.Z)(fontSize))]),
24381
+ "aria-hidden": true,
24382
+ ref: ref
24383
+ }, other));
24384
+ });
24385
+ false ? 0 : void 0;
24386
+ Icon_Icon.muiName = 'Icon';
24387
+ /* harmony default export */ var esm_Icon_Icon = ((0,withStyles/* default */.Z)(Icon_styles, {
24388
+ name: 'MuiIcon'
24389
+ })(Icon_Icon));
24390
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/AccordionDetails/AccordionDetails.js
24391
 
 
 
 
24392
 
 
 
 
 
 
24393
 
 
 
 
 
24394
 
 
 
 
24395
 
24396
 
24397
+ var AccordionDetails_styles = function styles(theme) {
24398
+ return {
24399
+ /* Styles applied to the root element. */
24400
+ root: {
24401
+ display: 'flex',
24402
+ padding: theme.spacing(1, 2, 2)
24403
+ }
24404
+ };
24405
+ };
24406
+ var AccordionDetails = /*#__PURE__*/react.forwardRef(function AccordionDetails(props, ref) {
24407
+ var classes = props.classes,
24408
+ className = props.className,
24409
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className"]);
24410
 
24411
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
24412
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
24413
+ ref: ref
24414
+ }, other));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24415
  });
24416
  false ? 0 : void 0;
24417
+ /* harmony default export */ var AccordionDetails_AccordionDetails = ((0,withStyles/* default */.Z)(AccordionDetails_styles, {
24418
+ name: 'MuiAccordionDetails'
24419
+ })(AccordionDetails));
24420
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Link/Link.js
 
 
 
 
24421
 
24422
 
24423
 
24426
 
24427
 
24428
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24429
 
 
 
24430
 
 
 
24431
 
24432
+ var Link_styles = {
24433
+ /* Styles applied to the root element. */
24434
+ root: {},
24435
 
24436
+ /* Styles applied to the root element if `underline="none"`. */
24437
+ underlineNone: {
24438
+ textDecoration: 'none'
24439
+ },
24440
 
24441
+ /* Styles applied to the root element if `underline="hover"`. */
24442
+ underlineHover: {
24443
+ textDecoration: 'none',
24444
+ '&:hover': {
24445
+ textDecoration: 'underline'
 
 
 
 
 
 
 
 
24446
  }
24447
+ },
24448
 
24449
+ /* Styles applied to the root element if `underline="always"`. */
24450
+ underlineAlways: {
24451
+ textDecoration: 'underline'
24452
+ },
24453
+ // Same reset as ButtonBase.root
 
24454
 
24455
+ /* Styles applied to the root element if `component="button"`. */
24456
+ button: {
24457
+ position: 'relative',
24458
+ WebkitTapHighlightColor: 'transparent',
24459
+ backgroundColor: 'transparent',
24460
+ // Reset default value
24461
+ // We disable the focus ring for mouse, touch and keyboard users.
24462
+ outline: 0,
24463
+ border: 0,
24464
+ margin: 0,
24465
+ // Remove the margin in Safari
24466
+ borderRadius: 0,
24467
+ padding: 0,
24468
+ // Remove the padding in Firefox
24469
+ cursor: 'pointer',
24470
+ userSelect: 'none',
24471
+ verticalAlign: 'middle',
24472
+ '-moz-appearance': 'none',
24473
+ // Reset
24474
+ '-webkit-appearance': 'none',
24475
+ // Reset
24476
+ '&::-moz-focus-inner': {
24477
+ borderStyle: 'none' // Remove Firefox dotted outline.
24478
 
24479
+ },
24480
+ '&$focusVisible': {
24481
+ outline: 'auto'
 
24482
  }
24483
+ },
24484
 
24485
+ /* Pseudo-class applied to the root element if the link is keyboard focused. */
24486
+ focusVisible: {}
24487
+ };
24488
+ var Link = /*#__PURE__*/react.forwardRef(function Link(props, ref) {
24489
+ var classes = props.classes,
24490
+ className = props.className,
24491
+ _props$color = props.color,
24492
+ color = _props$color === void 0 ? 'primary' : _props$color,
24493
+ _props$component = props.component,
24494
+ component = _props$component === void 0 ? 'a' : _props$component,
24495
+ onBlur = props.onBlur,
24496
+ onFocus = props.onFocus,
24497
+ TypographyClasses = props.TypographyClasses,
24498
+ _props$underline = props.underline,
24499
+ underline = _props$underline === void 0 ? 'hover' : _props$underline,
24500
+ _props$variant = props.variant,
24501
+ variant = _props$variant === void 0 ? 'inherit' : _props$variant,
24502
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "color", "component", "onBlur", "onFocus", "TypographyClasses", "underline", "variant"]);
24503
 
24504
+ var _useIsFocusVisible = (0,useIsFocusVisible/* default */.Z)(),
24505
+ isFocusVisible = _useIsFocusVisible.isFocusVisible,
24506
+ onBlurVisible = _useIsFocusVisible.onBlurVisible,
24507
+ focusVisibleRef = _useIsFocusVisible.ref;
24508
 
24509
+ var _React$useState = react.useState(false),
24510
+ focusVisible = _React$useState[0],
24511
+ setFocusVisible = _React$useState[1];
24512
 
24513
+ var handlerRef = (0,useForkRef/* default */.Z)(ref, focusVisibleRef);
 
24514
 
24515
+ var handleBlur = function handleBlur(event) {
24516
+ if (focusVisible) {
24517
+ onBlurVisible();
24518
+ setFocusVisible(false);
24519
+ }
24520
 
24521
+ if (onBlur) {
24522
+ onBlur(event);
 
 
 
 
 
 
 
24523
  }
24524
+ };
24525
 
24526
+ var handleFocus = function handleFocus(event) {
24527
+ if (isFocusVisible(event)) {
24528
+ setFocusVisible(true);
24529
+ }
24530
 
24531
+ if (onFocus) {
24532
+ onFocus(event);
24533
+ }
24534
  };
24535
 
24536
+ return /*#__PURE__*/react.createElement(Typography_Typography, (0,esm_extends/* default */.Z)({
24537
+ className: (0,clsx_m/* default */.Z)(classes.root, classes["underline".concat((0,utils_capitalize/* default */.Z)(underline))], className, focusVisible && classes.focusVisible, component === 'button' && classes.button),
24538
+ classes: TypographyClasses,
24539
+ color: color,
24540
+ component: component,
24541
+ onBlur: handleBlur,
24542
+ onFocus: handleFocus,
24543
+ ref: handlerRef,
24544
+ variant: variant
24545
+ }, other));
24546
+ });
24547
+ false ? 0 : void 0;
24548
+ /* harmony default export */ var Link_Link = ((0,withStyles/* default */.Z)(Link_styles, {
24549
+ name: 'MuiLink'
24550
+ })(Link));
24551
+ // EXTERNAL MODULE: ./node_modules/@material-ui/utils/esm/formatMuiErrorMessage.js
24552
+ var formatMuiErrorMessage = __webpack_require__(60288);
24553
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/formControlState.js
24554
+ function formControlState(_ref) {
24555
+ var props = _ref.props,
24556
+ states = _ref.states,
24557
+ muiFormControl = _ref.muiFormControl;
24558
+ return states.reduce(function (acc, state) {
24559
+ acc[state] = props[state];
24560
 
24561
+ if (muiFormControl) {
24562
+ if (typeof props[state] === 'undefined') {
24563
+ acc[state] = muiFormControl[state];
24564
+ }
24565
  }
24566
 
24567
+ return acc;
24568
+ }, {});
24569
+ }
24570
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/FormControlContext.js
 
 
24571
 
24572
+ /**
24573
+ * @ignore - internal component.
24574
+ */
 
24575
 
24576
+ var FormControlContext = react.createContext();
 
 
24577
 
24578
+ if (false) {}
 
 
 
 
 
 
 
 
 
 
24579
 
24580
+ function useFormControl() {
24581
+ return react.useContext(FormControlContext);
24582
+ }
24583
+ /* harmony default export */ var FormControl_FormControlContext = (FormControlContext);
24584
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/TextareaAutosize/TextareaAutosize.js
24585
 
 
 
24586
 
 
 
 
24587
 
 
 
 
24588
 
 
 
 
 
 
 
 
 
24589
 
 
 
 
 
 
24590
 
 
 
 
 
 
 
 
 
 
24591
 
24592
+ function getStyleValue(computedStyle, property) {
24593
+ return parseInt(computedStyle[property], 10) || 0;
24594
+ }
24595
 
24596
+ var TextareaAutosize_useEnhancedEffect = typeof window !== 'undefined' ? react.useLayoutEffect : react.useEffect;
24597
+ var TextareaAutosize_styles = {
24598
+ /* Styles applied to the shadow textarea element. */
24599
+ shadow: {
24600
+ // Visibility needed to hide the extra text area on iPads
24601
+ visibility: 'hidden',
24602
+ // Remove from the content flow
24603
+ position: 'absolute',
24604
+ // Ignore the scrollbar width
24605
+ overflow: 'hidden',
24606
+ height: 0,
24607
+ top: 0,
24608
+ left: 0,
24609
+ // Create a new layer, increase the isolation of the computed values
24610
+ transform: 'translateZ(0)'
24611
+ }
24612
+ };
24613
+ var TextareaAutosize = /*#__PURE__*/react.forwardRef(function TextareaAutosize(props, ref) {
24614
+ var onChange = props.onChange,
24615
+ rows = props.rows,
24616
+ rowsMax = props.rowsMax,
24617
+ _props$rowsMin = props.rowsMin,
24618
+ rowsMinProp = _props$rowsMin === void 0 ? 1 : _props$rowsMin,
24619
+ style = props.style,
24620
+ value = props.value,
24621
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["onChange", "rows", "rowsMax", "rowsMin", "style", "value"]);
24622
 
24623
+ var rowsMin = rows || rowsMinProp;
 
 
 
 
 
 
 
24624
 
24625
+ var _React$useRef = react.useRef(value != null),
24626
+ isControlled = _React$useRef.current;
 
 
 
24627
 
24628
+ var inputRef = react.useRef(null);
24629
+ var handleRef = (0,useForkRef/* default */.Z)(ref, inputRef);
24630
+ var shadowRef = react.useRef(null);
24631
+ var renders = react.useRef(0);
 
 
 
 
 
24632
 
24633
+ var _React$useState = react.useState({}),
24634
+ state = _React$useState[0],
24635
+ setState = _React$useState[1];
 
 
 
24636
 
24637
+ var syncHeight = react.useCallback(function () {
24638
+ var input = inputRef.current;
24639
+ var computedStyle = window.getComputedStyle(input);
24640
+ var inputShallow = shadowRef.current;
24641
+ inputShallow.style.width = computedStyle.width;
24642
+ inputShallow.value = input.value || props.placeholder || 'x';
 
24643
 
24644
+ if (inputShallow.value.slice(-1) === '\n') {
24645
+ // Certain fonts which overflow the line height will cause the textarea
24646
+ // to report a different scrollHeight depending on whether the last line
24647
+ // is empty. Make it non-empty to avoid this issue.
24648
+ inputShallow.value += ' ';
24649
+ }
24650
 
24651
+ var boxSizing = computedStyle['box-sizing'];
24652
+ var padding = getStyleValue(computedStyle, 'padding-bottom') + getStyleValue(computedStyle, 'padding-top');
24653
+ var border = getStyleValue(computedStyle, 'border-bottom-width') + getStyleValue(computedStyle, 'border-top-width'); // The height of the inner content
24654
 
24655
+ var innerHeight = inputShallow.scrollHeight - padding; // Measure height of a textarea with a single row
 
 
 
 
 
 
24656
 
24657
+ inputShallow.value = 'x';
24658
+ var singleRowHeight = inputShallow.scrollHeight - padding; // The height of the outer content
 
24659
 
24660
+ var outerHeight = innerHeight;
 
24661
 
24662
+ if (rowsMin) {
24663
+ outerHeight = Math.max(Number(rowsMin) * singleRowHeight, outerHeight);
24664
+ }
 
24665
 
24666
+ if (rowsMax) {
24667
+ outerHeight = Math.min(Number(rowsMax) * singleRowHeight, outerHeight);
 
24668
  }
24669
 
24670
+ outerHeight = Math.max(outerHeight, singleRowHeight); // Take the box sizing into account for applying this value as a style.
 
 
 
24671
 
24672
+ var outerHeightStyle = outerHeight + (boxSizing === 'border-box' ? padding + border : 0);
24673
+ var overflow = Math.abs(outerHeight - innerHeight) <= 1;
24674
+ setState(function (prevState) {
24675
+ // Need a large enough difference to update the height.
24676
+ // This prevents infinite rendering loop.
24677
+ if (renders.current < 20 && (outerHeightStyle > 0 && Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1 || prevState.overflow !== overflow)) {
24678
+ renders.current += 1;
24679
+ return {
24680
+ overflow: overflow,
24681
+ outerHeightStyle: outerHeightStyle
24682
+ };
24683
+ }
24684
+
24685
+ if (false) {}
24686
+
24687
+ return prevState;
24688
+ });
24689
+ }, [rowsMax, rowsMin, props.placeholder]);
24690
+ react.useEffect(function () {
24691
+ var handleResize = (0,debounce/* default */.Z)(function () {
24692
+ renders.current = 0;
24693
+ syncHeight();
24694
+ });
24695
+ window.addEventListener('resize', handleResize);
24696
+ return function () {
24697
+ handleResize.clear();
24698
+ window.removeEventListener('resize', handleResize);
24699
+ };
24700
+ }, [syncHeight]);
24701
+ TextareaAutosize_useEnhancedEffect(function () {
24702
+ syncHeight();
24703
+ });
24704
+ react.useEffect(function () {
24705
+ renders.current = 0;
24706
+ }, [value]);
24707
+
24708
+ var handleChange = function handleChange(event) {
24709
+ renders.current = 0;
24710
+
24711
+ if (!isControlled) {
24712
+ syncHeight();
24713
  }
24714
 
24715
+ if (onChange) {
24716
+ onChange(event);
24717
  }
24718
  };
24719
 
24720
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("textarea", (0,esm_extends/* default */.Z)({
24721
+ value: value,
24722
+ onChange: handleChange,
24723
+ ref: handleRef // Apply the rows prop to get a "correct" first SSR paint
24724
+ ,
24725
+ rows: rowsMin,
24726
+ style: (0,esm_extends/* default */.Z)({
24727
+ height: state.outerHeightStyle,
24728
+ // Need a large enough difference to allow scrolling.
24729
+ // This prevents infinite rendering loop.
24730
+ overflow: state.overflow ? 'hidden' : null
24731
+ }, style)
24732
+ }, other)), /*#__PURE__*/react.createElement("textarea", {
24733
+ "aria-hidden": true,
24734
+ className: props.className,
24735
+ readOnly: true,
24736
+ ref: shadowRef,
24737
+ tabIndex: -1,
24738
+ style: (0,esm_extends/* default */.Z)({}, TextareaAutosize_styles.shadow, style)
24739
+ }));
24740
+ });
24741
+ false ? 0 : void 0;
24742
+ /* harmony default export */ var TextareaAutosize_TextareaAutosize = (TextareaAutosize);
24743
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputBase/utils.js
24744
+ // Supports determination of isControlled().
24745
+ // Controlled input accepts its current value as a prop.
24746
+ //
24747
+ // @see https://facebook.github.io/react/docs/forms.html#controlled-components
24748
+ // @param value
24749
+ // @returns {boolean} true if string (including '') or number (including zero)
24750
+ function hasValue(value) {
24751
+ return value != null && !(Array.isArray(value) && value.length === 0);
24752
+ } // Determine if field is empty or filled.
24753
+ // Response determines if label is presented above field or as placeholder.
24754
+ //
24755
+ // @param obj
24756
+ // @param SSR
24757
+ // @returns {boolean} False when not present or empty string.
24758
+ // True when any number or string with length.
24759
 
24760
+ function isFilled(obj) {
24761
+ var SSR = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
24762
+ return obj && (hasValue(obj.value) && obj.value !== '' || SSR && hasValue(obj.defaultValue) && obj.defaultValue !== '');
24763
+ } // Determine if an Input is adorned on start.
24764
+ // It's corresponding to the left with LTR.
24765
+ //
24766
+ // @param obj
24767
+ // @returns {boolean} False when no adornments.
24768
+ // True when adorned at the start.
24769
 
24770
+ function isAdornedStart(obj) {
24771
+ return obj.startAdornment;
24772
+ }
24773
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputBase/InputBase.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24774
 
 
 
 
 
 
 
 
 
24775
 
 
 
24776
 
 
 
24777
 
24778
+ /* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
24779
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24780
 
24781
 
24782
 
 
 
24783
 
 
24784
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24785
 
24786
 
24787
 
24788
 
24789
 
24790
+ var InputBase_styles = function styles(theme) {
24791
+ var light = theme.palette.type === 'light';
24792
+ var placeholder = {
24793
+ color: 'currentColor',
24794
+ opacity: light ? 0.42 : 0.5,
24795
+ transition: theme.transitions.create('opacity', {
24796
+ duration: theme.transitions.duration.shorter
24797
+ })
24798
+ };
24799
+ var placeholderHidden = {
24800
+ opacity: '0 !important'
24801
+ };
24802
+ var placeholderVisible = {
24803
+ opacity: light ? 0.42 : 0.5
24804
+ };
24805
+ return {
24806
+ '@global': {
24807
+ '@keyframes mui-auto-fill': {},
24808
+ '@keyframes mui-auto-fill-cancel': {}
24809
+ },
24810
 
24811
+ /* Styles applied to the root element. */
24812
+ root: (0,esm_extends/* default */.Z)({}, theme.typography.body1, {
24813
+ color: theme.palette.text.primary,
24814
+ lineHeight: '1.1876em',
24815
+ // Reset (19px), match the native input line-height
24816
+ boxSizing: 'border-box',
24817
+ // Prevent padding issue with fullWidth.
24818
+ position: 'relative',
24819
+ cursor: 'text',
24820
+ display: 'inline-flex',
24821
+ alignItems: 'center',
24822
+ '&$disabled': {
24823
+ color: theme.palette.text.disabled,
24824
+ cursor: 'default'
24825
+ }
24826
+ }),
24827
 
24828
+ /* Styles applied to the root element if the component is a descendant of `FormControl`. */
24829
+ formControl: {},
24830
 
24831
+ /* Styles applied to the root element if the component is focused. */
24832
+ focused: {},
24833
 
24834
+ /* Styles applied to the root element if `disabled={true}`. */
24835
+ disabled: {},
24836
 
24837
+ /* Styles applied to the root element if `startAdornment` is provided. */
24838
+ adornedStart: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24839
 
24840
+ /* Styles applied to the root element if `endAdornment` is provided. */
24841
+ adornedEnd: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24842
 
24843
+ /* Pseudo-class applied to the root element if `error={true}`. */
24844
+ error: {},
 
 
 
 
 
 
 
 
 
 
 
24845
 
24846
+ /* Styles applied to the `input` element if `margin="dense"`. */
24847
+ marginDense: {},
24848
 
24849
+ /* Styles applied to the root element if `multiline={true}`. */
24850
+ multiline: {
24851
+ padding: "".concat(8 - 2, "px 0 ").concat(8 - 1, "px"),
24852
+ '&$marginDense': {
24853
+ paddingTop: 4 - 1
24854
  }
24855
+ },
 
 
 
 
 
24856
 
24857
+ /* Styles applied to the root element if the color is secondary. */
24858
+ colorSecondary: {},
 
 
 
 
 
 
24859
 
24860
+ /* Styles applied to the root element if `fullWidth={true}`. */
24861
+ fullWidth: {
24862
+ width: '100%'
24863
+ },
 
 
 
 
 
 
 
 
 
 
 
24864
 
24865
+ /* Styles applied to the `input` element. */
24866
+ input: {
24867
+ font: 'inherit',
24868
+ letterSpacing: 'inherit',
24869
+ color: 'currentColor',
24870
+ padding: "".concat(8 - 2, "px 0 ").concat(8 - 1, "px"),
24871
+ border: 0,
24872
+ boxSizing: 'content-box',
24873
+ background: 'none',
24874
+ height: '1.1876em',
24875
+ // Reset (19px), match the native input line-height
24876
+ margin: 0,
24877
+ // Reset for Safari
24878
+ WebkitTapHighlightColor: 'transparent',
24879
+ display: 'block',
24880
+ // Make the flex item shrink with Firefox
24881
+ minWidth: 0,
24882
+ width: '100%',
24883
+ // Fix IE 11 width issue
24884
+ animationName: 'mui-auto-fill-cancel',
24885
+ animationDuration: '10ms',
24886
+ '&::-webkit-input-placeholder': placeholder,
24887
+ '&::-moz-placeholder': placeholder,
24888
+ // Firefox 19+
24889
+ '&:-ms-input-placeholder': placeholder,
24890
+ // IE 11
24891
+ '&::-ms-input-placeholder': placeholder,
24892
+ // Edge
24893
+ '&:focus': {
24894
+ outline: 0
24895
+ },
24896
+ // Reset Firefox invalid required input style
24897
+ '&:invalid': {
24898
+ boxShadow: 'none'
24899
+ },
24900
+ '&::-webkit-search-decoration': {
24901
+ // Remove the padding when type=search.
24902
+ '-webkit-appearance': 'none'
24903
+ },
24904
+ // Show and hide the placeholder logic
24905
+ 'label[data-shrink=false] + $formControl &': {
24906
+ '&::-webkit-input-placeholder': placeholderHidden,
24907
+ '&::-moz-placeholder': placeholderHidden,
24908
+ // Firefox 19+
24909
+ '&:-ms-input-placeholder': placeholderHidden,
24910
+ // IE 11
24911
+ '&::-ms-input-placeholder': placeholderHidden,
24912
+ // Edge
24913
+ '&:focus::-webkit-input-placeholder': placeholderVisible,
24914
+ '&:focus::-moz-placeholder': placeholderVisible,
24915
+ // Firefox 19+
24916
+ '&:focus:-ms-input-placeholder': placeholderVisible,
24917
+ // IE 11
24918
+ '&:focus::-ms-input-placeholder': placeholderVisible // Edge
24919
 
24920
+ },
24921
+ '&$disabled': {
24922
+ opacity: 1 // Reset iOS opacity
24923
 
24924
+ },
24925
+ '&:-webkit-autofill': {
24926
+ animationDuration: '5000s',
24927
+ animationName: 'mui-auto-fill'
24928
+ }
24929
+ },
24930
 
24931
+ /* Styles applied to the `input` element if `margin="dense"`. */
24932
+ inputMarginDense: {
24933
+ paddingTop: 4 - 1
24934
+ },
24935
 
24936
+ /* Styles applied to the `input` element if `multiline={true}`. */
24937
+ inputMultiline: {
24938
+ height: 'auto',
24939
+ resize: 'none',
24940
+ padding: 0
24941
+ },
24942
 
24943
+ /* Styles applied to the `input` element if `type="search"`. */
24944
+ inputTypeSearch: {
24945
+ // Improve type search style.
24946
+ '-moz-appearance': 'textfield',
24947
+ '-webkit-appearance': 'textfield'
24948
+ },
24949
 
24950
+ /* Styles applied to the `input` element if `startAdornment` is provided. */
24951
+ inputAdornedStart: {},
24952
 
24953
+ /* Styles applied to the `input` element if `endAdornment` is provided. */
24954
+ inputAdornedEnd: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24955
 
24956
+ /* Styles applied to the `input` element if `hiddenLabel={true}`. */
24957
+ inputHiddenLabel: {}
24958
+ };
 
24959
  };
24960
+ var InputBase_useEnhancedEffect = typeof window === 'undefined' ? react.useEffect : react.useLayoutEffect;
24961
+ /**
24962
+ * `InputBase` contains as few styles as possible.
24963
+ * It aims to be a simple building block for creating an input.
24964
+ * It contains a load of style reset and some state logic.
24965
+ */
24966
+
24967
+ var InputBase = /*#__PURE__*/react.forwardRef(function InputBase(props, ref) {
24968
+ var ariaDescribedby = props['aria-describedby'],
24969
+ autoComplete = props.autoComplete,
24970
+ autoFocus = props.autoFocus,
24971
  classes = props.classes,
24972
  className = props.className,
24973
+ color = props.color,
24974
+ defaultValue = props.defaultValue,
24975
+ disabled = props.disabled,
24976
+ endAdornment = props.endAdornment,
24977
+ error = props.error,
24978
+ _props$fullWidth = props.fullWidth,
24979
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
24980
+ id = props.id,
24981
+ _props$inputComponent = props.inputComponent,
24982
+ inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
24983
+ _props$inputProps = props.inputProps,
24984
+ inputPropsProp = _props$inputProps === void 0 ? {} : _props$inputProps,
24985
+ inputRefProp = props.inputRef,
24986
+ margin = props.margin,
24987
+ _props$multiline = props.multiline,
24988
+ multiline = _props$multiline === void 0 ? false : _props$multiline,
24989
+ name = props.name,
24990
+ onBlur = props.onBlur,
24991
+ onChange = props.onChange,
24992
+ onClick = props.onClick,
24993
+ onFocus = props.onFocus,
24994
+ onKeyDown = props.onKeyDown,
24995
+ onKeyUp = props.onKeyUp,
24996
+ placeholder = props.placeholder,
24997
+ readOnly = props.readOnly,
24998
+ renderSuffix = props.renderSuffix,
24999
+ rows = props.rows,
25000
+ rowsMax = props.rowsMax,
25001
+ rowsMin = props.rowsMin,
25002
+ startAdornment = props.startAdornment,
25003
+ _props$type = props.type,
25004
+ type = _props$type === void 0 ? 'text' : _props$type,
25005
+ valueProp = props.value,
25006
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["aria-describedby", "autoComplete", "autoFocus", "classes", "className", "color", "defaultValue", "disabled", "endAdornment", "error", "fullWidth", "id", "inputComponent", "inputProps", "inputRef", "margin", "multiline", "name", "onBlur", "onChange", "onClick", "onFocus", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "renderSuffix", "rows", "rowsMax", "rowsMin", "startAdornment", "type", "value"]);
25007
 
25008
+ var value = inputPropsProp.value != null ? inputPropsProp.value : valueProp;
25009
 
25010
+ var _React$useRef = react.useRef(value != null),
25011
+ isControlled = _React$useRef.current;
25012
 
25013
+ var inputRef = react.useRef();
25014
+ var handleInputRefWarning = react.useCallback(function (instance) {
25015
+ if (false) {}
25016
+ }, []);
25017
+ var handleInputPropsRefProp = (0,useForkRef/* default */.Z)(inputPropsProp.ref, handleInputRefWarning);
25018
+ var handleInputRefProp = (0,useForkRef/* default */.Z)(inputRefProp, handleInputPropsRefProp);
25019
+ var handleInputRef = (0,useForkRef/* default */.Z)(inputRef, handleInputRefProp);
25020
 
25021
+ var _React$useState = react.useState(false),
25022
+ focused = _React$useState[0],
25023
+ setFocused = _React$useState[1];
25024
 
25025
+ var muiFormControl = useFormControl();
25026
 
25027
+ if (false) {}
25028
 
25029
+ var fcs = formControlState({
25030
+ props: props,
25031
+ muiFormControl: muiFormControl,
25032
+ states: ['color', 'disabled', 'error', 'hiddenLabel', 'margin', 'required', 'filled']
 
 
25033
  });
25034
+ fcs.focused = muiFormControl ? muiFormControl.focused : focused; // The blur won't fire when the disabled state is set on a focused input.
25035
+ // We need to book keep the focused state manually.
 
 
 
 
 
25036
 
25037
+ react.useEffect(function () {
25038
+ if (!muiFormControl && disabled && focused) {
25039
+ setFocused(false);
 
25040
 
25041
+ if (onBlur) {
25042
+ onBlur();
25043
+ }
25044
  }
25045
+ }, [muiFormControl, disabled, focused, onBlur]);
25046
+ var onFilled = muiFormControl && muiFormControl.onFilled;
25047
+ var onEmpty = muiFormControl && muiFormControl.onEmpty;
25048
+ var checkDirty = react.useCallback(function (obj) {
25049
+ if (isFilled(obj)) {
25050
+ if (onFilled) {
25051
+ onFilled();
25052
+ }
25053
+ } else if (onEmpty) {
25054
+ onEmpty();
25055
+ }
25056
+ }, [onFilled, onEmpty]);
25057
+ InputBase_useEnhancedEffect(function () {
25058
+ if (isControlled) {
25059
+ checkDirty({
25060
+ value: value
25061
+ });
25062
+ }
25063
+ }, [value, checkDirty, isControlled]);
25064
 
25065
+ var handleFocus = function handleFocus(event) {
25066
+ // Fix a bug with IE 11 where the focus/blur events are triggered
25067
+ // while the input is disabled.
25068
+ if (fcs.disabled) {
25069
+ event.stopPropagation();
25070
+ return;
25071
+ }
 
 
 
25072
 
25073
+ if (onFocus) {
25074
+ onFocus(event);
25075
+ }
25076
 
25077
+ if (inputPropsProp.onFocus) {
25078
+ inputPropsProp.onFocus(event);
25079
+ }
25080
 
25081
+ if (muiFormControl && muiFormControl.onFocus) {
25082
+ muiFormControl.onFocus(event);
25083
+ } else {
25084
+ setFocused(true);
25085
+ }
25086
+ };
25087
 
25088
+ var handleBlur = function handleBlur(event) {
25089
+ if (onBlur) {
25090
+ onBlur(event);
25091
+ }
25092
 
25093
+ if (inputPropsProp.onBlur) {
25094
+ inputPropsProp.onBlur(event);
25095
+ }
25096
 
25097
+ if (muiFormControl && muiFormControl.onBlur) {
25098
+ muiFormControl.onBlur(event);
25099
+ } else {
25100
+ setFocused(false);
25101
+ }
25102
+ };
25103
 
25104
+ var handleChange = function handleChange(event) {
25105
+ if (!isControlled) {
25106
+ var element = event.target || inputRef.current;
25107
 
25108
+ if (element == null) {
25109
+ throw new Error( false ? 0 : (0,formatMuiErrorMessage/* default */.Z)(1));
25110
+ }
25111
 
25112
+ checkDirty({
25113
+ value: element.value
25114
+ });
25115
+ }
25116
 
25117
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
25118
+ args[_key - 1] = arguments[_key];
25119
+ }
25120
 
25121
+ if (inputPropsProp.onChange) {
25122
+ inputPropsProp.onChange.apply(inputPropsProp, [event].concat(args));
25123
+ } // Perform in the willUpdate
25124
 
25125
 
25126
+ if (onChange) {
25127
+ onChange.apply(void 0, [event].concat(args));
25128
+ }
25129
+ }; // Check the input state on mount, in case it was filled by the user
25130
+ // or auto filled by the browser before the hydration (for SSR).
 
 
 
 
25131
 
 
 
 
 
 
 
25132
 
25133
+ react.useEffect(function () {
25134
+ checkDirty(inputRef.current);
25135
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
 
 
 
 
 
 
 
 
 
 
25136
 
25137
+ var handleClick = function handleClick(event) {
25138
+ if (inputRef.current && event.currentTarget === event.target) {
25139
+ inputRef.current.focus();
25140
+ }
 
 
 
 
 
25141
 
25142
+ if (onClick) {
25143
+ onClick(event);
25144
+ }
25145
+ };
 
 
 
 
 
 
 
25146
 
25147
+ var InputComponent = inputComponent;
 
 
 
 
 
25148
 
25149
+ var inputProps = (0,esm_extends/* default */.Z)({}, inputPropsProp, {
25150
+ ref: handleInputRef
25151
+ });
 
 
25152
 
25153
+ if (typeof InputComponent !== 'string') {
25154
+ inputProps = (0,esm_extends/* default */.Z)({
25155
+ // Rename ref to inputRef as we don't know the
25156
+ // provided `inputComponent` structure.
25157
+ inputRef: handleInputRef,
25158
+ type: type
25159
+ }, inputProps, {
25160
+ ref: null
25161
+ });
25162
+ } else if (multiline) {
25163
+ if (rows && !rowsMax && !rowsMin) {
25164
+ InputComponent = 'textarea';
25165
+ } else {
25166
+ inputProps = (0,esm_extends/* default */.Z)({
25167
+ rows: rows,
25168
+ rowsMax: rowsMax
25169
+ }, inputProps);
25170
+ InputComponent = TextareaAutosize_TextareaAutosize;
25171
+ }
25172
+ } else {
25173
+ inputProps = (0,esm_extends/* default */.Z)({
25174
+ type: type
25175
+ }, inputProps);
25176
+ }
25177
 
25178
+ var handleAutoFill = function handleAutoFill(event) {
25179
+ // Provide a fake value as Chrome might not let you access it for security reasons.
25180
+ checkDirty(event.animationName === 'mui-auto-fill-cancel' ? inputRef.current : {
25181
+ value: 'x'
25182
+ });
25183
+ };
25184
 
25185
+ react.useEffect(function () {
25186
+ if (muiFormControl) {
25187
+ muiFormControl.setAdornedStart(Boolean(startAdornment));
25188
+ }
25189
+ }, [muiFormControl, startAdornment]);
25190
+ return /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
25191
+ className: (0,clsx_m/* default */.Z)(classes.root, classes["color".concat((0,utils_capitalize/* default */.Z)(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fullWidth && classes.fullWidth, fcs.focused && classes.focused, muiFormControl && classes.formControl, multiline && classes.multiline, startAdornment && classes.adornedStart, endAdornment && classes.adornedEnd, fcs.margin === 'dense' && classes.marginDense),
25192
+ onClick: handleClick,
25193
+ ref: ref
25194
+ }, other), startAdornment, /*#__PURE__*/react.createElement(FormControl_FormControlContext.Provider, {
25195
+ value: null
25196
+ }, /*#__PURE__*/react.createElement(InputComponent, (0,esm_extends/* default */.Z)({
25197
+ "aria-invalid": fcs.error,
25198
+ "aria-describedby": ariaDescribedby,
25199
+ autoComplete: autoComplete,
25200
+ autoFocus: autoFocus,
25201
+ defaultValue: defaultValue,
25202
+ disabled: fcs.disabled,
25203
+ id: id,
25204
+ onAnimationStart: handleAutoFill,
25205
+ name: name,
25206
+ placeholder: placeholder,
25207
+ readOnly: readOnly,
25208
+ required: fcs.required,
25209
+ rows: rows,
25210
+ value: value,
25211
+ onKeyDown: onKeyDown,
25212
+ onKeyUp: onKeyUp
25213
+ }, inputProps, {
25214
+ className: (0,clsx_m/* default */.Z)(classes.input, inputPropsProp.className, fcs.disabled && classes.disabled, multiline && classes.inputMultiline, fcs.hiddenLabel && classes.inputHiddenLabel, startAdornment && classes.inputAdornedStart, endAdornment && classes.inputAdornedEnd, type === 'search' && classes.inputTypeSearch, fcs.margin === 'dense' && classes.inputMarginDense),
25215
+ onBlur: handleBlur,
25216
+ onChange: handleChange,
25217
+ onFocus: handleFocus
25218
+ }))), endAdornment, renderSuffix ? renderSuffix((0,esm_extends/* default */.Z)({}, fcs, {
25219
+ startAdornment: startAdornment
25220
+ })) : null);
25221
+ });
25222
+ false ? 0 : void 0;
25223
+ /* harmony default export */ var InputBase_InputBase = ((0,withStyles/* default */.Z)(InputBase_styles, {
25224
+ name: 'MuiInputBase'
25225
+ })(InputBase));
25226
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Input/Input.js
25227
 
 
 
 
 
 
 
 
25228
 
 
 
 
 
 
 
 
25229
 
 
 
 
 
 
 
 
25230
 
25231
+
25232
+
25233
+
25234
+
25235
+ var Input_styles = function styles(theme) {
25236
+ var light = theme.palette.type === 'light';
25237
+ var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
25238
+ return {
25239
+ /* Styles applied to the root element. */
25240
+ root: {
25241
+ position: 'relative'
25242
  },
25243
 
25244
+ /* Styles applied to the root element if the component is a descendant of `FormControl`. */
25245
+ formControl: {
25246
+ 'label + &': {
25247
+ marginTop: 16
25248
+ }
25249
  },
25250
 
25251
+ /* Styles applied to the root element if the component is focused. */
25252
+ focused: {},
25253
+
25254
+ /* Styles applied to the root element if `disabled={true}`. */
25255
+ disabled: {},
25256
+
25257
+ /* Styles applied to the root element if color secondary. */
25258
+ colorSecondary: {
25259
+ '&$underline:after': {
25260
+ borderBottomColor: theme.palette.secondary.main
 
25261
  }
25262
+ },
 
 
 
 
 
 
 
 
 
25263
 
25264
+ /* Styles applied to the root element if `disableUnderline={false}`. */
25265
+ underline: {
25266
+ '&:after': {
25267
+ borderBottom: "2px solid ".concat(theme.palette.primary.main),
25268
+ left: 0,
25269
+ bottom: 0,
25270
+ // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
25271
+ content: '""',
25272
+ position: 'absolute',
25273
+ right: 0,
25274
+ transform: 'scaleX(0)',
25275
+ transition: theme.transitions.create('transform', {
25276
+ duration: theme.transitions.duration.shorter,
25277
+ easing: theme.transitions.easing.easeOut
25278
+ }),
25279
+ pointerEvents: 'none' // Transparent to the hover style.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25280
 
25281
+ },
25282
+ '&$focused:after': {
25283
+ transform: 'scaleX(1)'
25284
+ },
25285
+ '&$error:after': {
25286
+ borderBottomColor: theme.palette.error.main,
25287
+ transform: 'scaleX(1)' // error is always underlined in red
25288
 
25289
+ },
25290
+ '&:before': {
25291
+ borderBottom: "1px solid ".concat(bottomLineColor),
25292
+ left: 0,
25293
+ bottom: 0,
25294
+ // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
25295
+ content: '"\\00a0"',
25296
+ position: 'absolute',
25297
+ right: 0,
25298
+ transition: theme.transitions.create('border-bottom-color', {
25299
+ duration: theme.transitions.duration.shorter
25300
+ }),
25301
+ pointerEvents: 'none' // Transparent to the hover style.
25302
 
25303
+ },
25304
+ '&:hover:not($disabled):before': {
25305
+ borderBottom: "2px solid ".concat(theme.palette.text.primary),
25306
+ // Reset on touch devices, it doesn't add specificity
25307
+ '@media (hover: none)': {
25308
+ borderBottom: "1px solid ".concat(bottomLineColor)
25309
+ }
25310
+ },
25311
+ '&$disabled:before': {
25312
+ borderBottomStyle: 'dotted'
25313
+ }
25314
+ },
25315
 
25316
+ /* Pseudo-class applied to the root element if `error={true}`. */
25317
+ error: {},
25318
 
25319
+ /* Styles applied to the `input` element if `margin="dense"`. */
25320
+ marginDense: {},
 
25321
 
25322
+ /* Styles applied to the root element if `multiline={true}`. */
25323
+ multiline: {},
25324
 
25325
+ /* Styles applied to the root element if `fullWidth={true}`. */
25326
+ fullWidth: {},
 
25327
 
25328
+ /* Styles applied to the `input` element. */
25329
+ input: {},
25330
+
25331
+ /* Styles applied to the `input` element if `margin="dense"`. */
25332
+ inputMarginDense: {},
25333
+
25334
+ /* Styles applied to the `input` element if `multiline={true}`. */
25335
+ inputMultiline: {},
25336
+
25337
+ /* Styles applied to the `input` element if `type="search"`. */
25338
+ inputTypeSearch: {}
25339
  };
25340
+ };
25341
+ var Input = /*#__PURE__*/react.forwardRef(function Input(props, ref) {
25342
+ var disableUnderline = props.disableUnderline,
25343
+ classes = props.classes,
25344
+ _props$fullWidth = props.fullWidth,
25345
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
25346
+ _props$inputComponent = props.inputComponent,
25347
+ inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
25348
+ _props$multiline = props.multiline,
25349
+ multiline = _props$multiline === void 0 ? false : _props$multiline,
25350
+ _props$type = props.type,
25351
+ type = _props$type === void 0 ? 'text' : _props$type,
25352
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["disableUnderline", "classes", "fullWidth", "inputComponent", "multiline", "type"]);
25353
 
25354
+ return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
25355
+ classes: (0,esm_extends/* default */.Z)({}, classes, {
25356
+ root: (0,clsx_m/* default */.Z)(classes.root, !disableUnderline && classes.underline),
25357
+ underline: null
25358
+ }),
25359
+ fullWidth: fullWidth,
25360
+ inputComponent: inputComponent,
25361
+ multiline: multiline,
25362
+ ref: ref,
25363
+ type: type
25364
+ }, other));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25365
  });
25366
  false ? 0 : void 0;
25367
+ Input.muiName = 'Input';
25368
+ /* harmony default export */ var Input_Input = ((0,withStyles/* default */.Z)(Input_styles, {
25369
+ name: 'MuiInput'
25370
+ })(Input));
25371
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FilledInput/FilledInput.js
25372
 
25373
 
25374
 
25376
 
25377
 
25378
 
25379
+
25380
+ var FilledInput_styles = function styles(theme) {
25381
+ var light = theme.palette.type === 'light';
25382
+ var bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';
25383
+ var backgroundColor = light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)';
25384
  return {
25385
  /* Styles applied to the root element. */
25386
  root: {
25387
+ position: 'relative',
25388
+ backgroundColor: backgroundColor,
25389
+ borderTopLeftRadius: theme.shape.borderRadius,
25390
+ borderTopRightRadius: theme.shape.borderRadius,
25391
+ transition: theme.transitions.create('background-color', {
25392
+ duration: theme.transitions.duration.shorter,
25393
+ easing: theme.transitions.easing.easeOut
25394
+ }),
25395
+ '&:hover': {
25396
+ backgroundColor: light ? 'rgba(0, 0, 0, 0.13)' : 'rgba(255, 255, 255, 0.13)',
25397
+ // Reset on touch devices, it doesn't add specificity
25398
+ '@media (hover: none)': {
25399
+ backgroundColor: backgroundColor
25400
+ }
25401
+ },
25402
+ '&$focused': {
25403
+ backgroundColor: light ? 'rgba(0, 0, 0, 0.09)' : 'rgba(255, 255, 255, 0.09)'
25404
+ },
25405
+ '&$disabled': {
25406
+ backgroundColor: light ? 'rgba(0, 0, 0, 0.12)' : 'rgba(255, 255, 255, 0.12)'
25407
+ }
25408
  },
25409
 
25410
+ /* Styles applied to the root element if color secondary. */
25411
+ colorSecondary: {
25412
+ '&$underline:after': {
25413
+ borderBottomColor: theme.palette.secondary.main
25414
+ }
25415
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25416
 
25417
+ /* Styles applied to the root element if `disableUnderline={false}`. */
25418
+ underline: {
25419
+ '&:after': {
25420
+ borderBottom: "2px solid ".concat(theme.palette.primary.main),
25421
+ left: 0,
25422
+ bottom: 0,
25423
+ // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
25424
+ content: '""',
25425
+ position: 'absolute',
25426
+ right: 0,
25427
+ transform: 'scaleX(0)',
25428
+ transition: theme.transitions.create('transform', {
25429
+ duration: theme.transitions.duration.shorter,
25430
+ easing: theme.transitions.easing.easeOut
25431
+ }),
25432
+ pointerEvents: 'none' // Transparent to the hover style.
25433
 
25434
+ },
25435
+ '&$focused:after': {
25436
+ transform: 'scaleX(1)'
25437
+ },
25438
+ '&$error:after': {
25439
+ borderBottomColor: theme.palette.error.main,
25440
+ transform: 'scaleX(1)' // error is always underlined in red
25441
 
25442
+ },
25443
+ '&:before': {
25444
+ borderBottom: "1px solid ".concat(bottomLineColor),
25445
+ left: 0,
25446
+ bottom: 0,
25447
+ // Doing the other way around crash on IE 11 "''" https://github.com/cssinjs/jss/issues/242
25448
+ content: '"\\00a0"',
25449
+ position: 'absolute',
25450
+ right: 0,
25451
+ transition: theme.transitions.create('border-bottom-color', {
25452
+ duration: theme.transitions.duration.shorter
25453
+ }),
25454
+ pointerEvents: 'none' // Transparent to the hover style.
25455
 
25456
+ },
25457
+ '&:hover:before': {
25458
+ borderBottom: "1px solid ".concat(theme.palette.text.primary)
25459
+ },
25460
+ '&$disabled:before': {
25461
+ borderBottomStyle: 'dotted'
25462
+ }
25463
+ },
25464
 
25465
+ /* Pseudo-class applied to the root element if the component is focused. */
25466
+ focused: {},
25467
 
25468
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
25469
+ disabled: {},
25470
 
25471
+ /* Styles applied to the root element if `startAdornment` is provided. */
25472
+ adornedStart: {
25473
+ paddingLeft: 12
 
 
 
25474
  },
25475
 
25476
+ /* Styles applied to the root element if `endAdornment` is provided. */
25477
+ adornedEnd: {
25478
+ paddingRight: 12
25479
  },
25480
 
25481
+ /* Pseudo-class applied to the root element if `error={true}`. */
25482
+ error: {},
 
 
25483
 
25484
+ /* Styles applied to the `input` element if `margin="dense"`. */
25485
+ marginDense: {},
 
 
25486
 
25487
+ /* Styles applied to the root element if `multiline={true}`. */
25488
+ multiline: {
25489
+ padding: '27px 12px 10px',
25490
+ '&$marginDense': {
25491
+ paddingTop: 23,
25492
+ paddingBottom: 6
25493
+ }
25494
  },
25495
 
25496
+ /* Styles applied to the `input` element. */
25497
+ input: {
25498
+ padding: '27px 12px 10px',
25499
+ '&:-webkit-autofill': {
25500
+ WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',
25501
+ WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',
25502
+ caretColor: theme.palette.type === 'light' ? null : '#fff',
25503
+ borderTopLeftRadius: 'inherit',
25504
+ borderTopRightRadius: 'inherit'
25505
+ }
25506
  },
25507
 
25508
+ /* Styles applied to the `input` element if `margin="dense"`. */
25509
+ inputMarginDense: {
25510
+ paddingTop: 23,
25511
+ paddingBottom: 6
25512
  },
25513
 
25514
+ /* Styles applied to the `input` if in `<FormControl hiddenLabel />`. */
25515
+ inputHiddenLabel: {
25516
+ paddingTop: 18,
25517
+ paddingBottom: 19,
25518
+ '&$inputMarginDense': {
25519
+ paddingTop: 10,
25520
+ paddingBottom: 11
25521
+ }
25522
  },
25523
 
25524
+ /* Styles applied to the `input` element if `multiline={true}`. */
25525
+ inputMultiline: {
25526
+ padding: 0
25527
  },
25528
 
25529
+ /* Styles applied to the `input` element if `startAdornment` is provided. */
25530
+ inputAdornedStart: {
25531
+ paddingLeft: 0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25532
  },
25533
 
25534
+ /* Styles applied to the `input` element if `endAdornment` is provided. */
25535
+ inputAdornedEnd: {
25536
+ paddingRight: 0
25537
  }
25538
  };
25539
  };
25540
+ var FilledInput = /*#__PURE__*/react.forwardRef(function FilledInput(props, ref) {
25541
+ var disableUnderline = props.disableUnderline,
 
 
 
 
 
 
 
 
 
 
 
 
 
25542
  classes = props.classes,
25543
+ _props$fullWidth = props.fullWidth,
25544
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
25545
+ _props$inputComponent = props.inputComponent,
25546
+ inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
25547
+ _props$multiline = props.multiline,
25548
+ multiline = _props$multiline === void 0 ? false : _props$multiline,
25549
+ _props$type = props.type,
25550
+ type = _props$type === void 0 ? 'text' : _props$type,
25551
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["disableUnderline", "classes", "fullWidth", "inputComponent", "multiline", "type"]);
 
 
 
 
 
 
 
 
25552
 
25553
+ return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
25554
+ classes: (0,esm_extends/* default */.Z)({}, classes, {
25555
+ root: (0,clsx_m/* default */.Z)(classes.root, !disableUnderline && classes.underline),
25556
+ underline: null
25557
+ }),
25558
+ fullWidth: fullWidth,
25559
+ inputComponent: inputComponent,
25560
+ multiline: multiline,
25561
+ ref: ref,
25562
+ type: type
25563
  }, other));
25564
  });
25565
  false ? 0 : void 0;
25566
+ FilledInput.muiName = 'Input';
25567
+ /* harmony default export */ var FilledInput_FilledInput = ((0,withStyles/* default */.Z)(FilledInput_styles, {
25568
+ name: 'MuiFilledInput'
25569
+ })(FilledInput));
25570
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/OutlinedInput/NotchedOutline.js
25571
 
25572
 
25573
 
25575
 
25576
 
25577
 
25578
+
25579
+
25580
+ var NotchedOutline_styles = function styles(theme) {
25581
+ return {
25582
+ /* Styles applied to the root element. */
25583
+ root: {
25584
+ position: 'absolute',
25585
+ bottom: 0,
25586
+ right: 0,
25587
+ top: -5,
25588
+ left: 0,
25589
+ margin: 0,
25590
+ padding: '0 8px',
25591
+ pointerEvents: 'none',
25592
+ borderRadius: 'inherit',
25593
+ borderStyle: 'solid',
25594
+ borderWidth: 1,
25595
+ overflow: 'hidden'
25596
+ },
25597
+
25598
+ /* Styles applied to the legend element when `labelWidth` is provided. */
25599
+ legend: {
25600
+ textAlign: 'left',
25601
+ padding: 0,
25602
+ lineHeight: '11px',
25603
+ // sync with `height` in `legend` styles
25604
+ transition: theme.transitions.create('width', {
25605
+ duration: 150,
25606
+ easing: theme.transitions.easing.easeOut
25607
+ })
25608
+ },
25609
+
25610
+ /* Styles applied to the legend element. */
25611
+ legendLabelled: {
25612
+ display: 'block',
25613
+ width: 'auto',
25614
+ textAlign: 'left',
25615
+ padding: 0,
25616
+ height: 11,
25617
+ // sync with `lineHeight` in `legend` styles
25618
+ fontSize: '0.75em',
25619
+ visibility: 'hidden',
25620
+ maxWidth: 0.01,
25621
+ transition: theme.transitions.create('max-width', {
25622
+ duration: 50,
25623
+ easing: theme.transitions.easing.easeOut
25624
+ }),
25625
+ '& > span': {
25626
+ paddingLeft: 5,
25627
+ paddingRight: 5,
25628
+ display: 'inline-block'
25629
+ }
25630
+ },
25631
+
25632
+ /* Styles applied to the legend element is notched. */
25633
+ legendNotched: {
25634
+ maxWidth: 1000,
25635
+ transition: theme.transitions.create('max-width', {
25636
+ duration: 100,
25637
+ easing: theme.transitions.easing.easeOut,
25638
+ delay: 50
25639
+ })
25640
+ }
25641
+ };
25642
  };
25643
+ /**
25644
+ * @ignore - internal component.
25645
+ */
25646
+
25647
+ var NotchedOutline = /*#__PURE__*/react.forwardRef(function NotchedOutline(props, ref) {
25648
  var children = props.children,
25649
  classes = props.classes,
25650
  className = props.className,
25651
+ label = props.label,
25652
+ labelWidthProp = props.labelWidth,
25653
+ notched = props.notched,
25654
+ style = props.style,
25655
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "label", "labelWidth", "notched", "style"]);
25656
 
25657
+ var theme = useTheme_useTheme();
25658
+ var align = theme.direction === 'rtl' ? 'right' : 'left';
25659
+
25660
+ if (label !== undefined) {
25661
+ return /*#__PURE__*/react.createElement("fieldset", (0,esm_extends/* default */.Z)({
25662
+ "aria-hidden": true,
25663
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
25664
+ ref: ref,
25665
+ style: style
25666
+ }, other), /*#__PURE__*/react.createElement("legend", {
25667
+ className: (0,clsx_m/* default */.Z)(classes.legendLabelled, notched && classes.legendNotched)
25668
+ }, label ? /*#__PURE__*/react.createElement("span", null, label) : /*#__PURE__*/react.createElement("span", {
25669
+ dangerouslySetInnerHTML: {
25670
+ __html: '&#8203;'
25671
+ }
25672
+ })));
25673
+ }
25674
+
25675
+ var labelWidth = labelWidthProp > 0 ? labelWidthProp * 0.75 + 8 : 0.01;
25676
+ return /*#__PURE__*/react.createElement("fieldset", (0,esm_extends/* default */.Z)({
25677
+ "aria-hidden": true,
25678
+ style: (0,esm_extends/* default */.Z)((0,defineProperty/* default */.Z)({}, "padding".concat((0,utils_capitalize/* default */.Z)(align)), 8), style),
25679
  className: (0,clsx_m/* default */.Z)(classes.root, className),
25680
  ref: ref
25681
+ }, other), /*#__PURE__*/react.createElement("legend", {
25682
+ className: classes.legend,
25683
+ style: {
25684
+ // IE 11: fieldset with legend does not render
25685
+ // a border radius. This maintains consistency
25686
+ // by always having a legend rendered
25687
+ width: notched ? labelWidth : 0.01
25688
+ }
25689
+ }, /*#__PURE__*/react.createElement("span", {
25690
+ dangerouslySetInnerHTML: {
25691
+ __html: '&#8203;'
25692
+ }
25693
+ })));
25694
  });
25695
  false ? 0 : void 0;
25696
+ /* harmony default export */ var OutlinedInput_NotchedOutline = ((0,withStyles/* default */.Z)(NotchedOutline_styles, {
25697
+ name: 'PrivateNotchedOutline'
25698
+ })(NotchedOutline));
25699
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/OutlinedInput/OutlinedInput.js
25700
 
25701
 
25702
 
25703
 
25704
 
25705
 
25706
+
25707
+
25708
+
25709
+ var OutlinedInput_styles = function styles(theme) {
25710
+ var borderColor = theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
25711
  return {
25712
  /* Styles applied to the root element. */
25713
  root: {
25714
+ position: 'relative',
25715
+ borderRadius: theme.shape.borderRadius,
25716
+ '&:hover $notchedOutline': {
25717
+ borderColor: theme.palette.text.primary
25718
+ },
25719
+ // Reset on touch devices, it doesn't add specificity
25720
+ '@media (hover: none)': {
25721
+ '&:hover $notchedOutline': {
25722
+ borderColor: borderColor
25723
+ }
25724
+ },
25725
+ '&$focused $notchedOutline': {
25726
+ borderColor: theme.palette.primary.main,
25727
+ borderWidth: 2
25728
+ },
25729
+ '&$error $notchedOutline': {
25730
+ borderColor: theme.palette.error.main
25731
+ },
25732
+ '&$disabled $notchedOutline': {
25733
+ borderColor: theme.palette.action.disabled
25734
  }
25735
  },
25736
 
25737
+ /* Styles applied to the root element if the color is secondary. */
25738
+ colorSecondary: {
25739
+ '&$focused $notchedOutline': {
25740
+ borderColor: theme.palette.secondary.main
25741
+ }
25742
+ },
 
 
 
 
 
 
 
 
25743
 
25744
+ /* Styles applied to the root element if the component is focused. */
25745
+ focused: {},
 
 
 
 
 
 
 
 
25746
 
25747
+ /* Styles applied to the root element if `disabled={true}`. */
25748
+ disabled: {},
25749
 
25750
+ /* Styles applied to the root element if `startAdornment` is provided. */
25751
+ adornedStart: {
25752
+ paddingLeft: 14
25753
+ },
25754
 
25755
+ /* Styles applied to the root element if `endAdornment` is provided. */
25756
+ adornedEnd: {
25757
+ paddingRight: 14
25758
+ },
25759
 
25760
+ /* Pseudo-class applied to the root element if `error={true}`. */
25761
+ error: {},
25762
 
25763
+ /* Styles applied to the `input` element if `margin="dense"`. */
25764
+ marginDense: {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25765
 
25766
+ /* Styles applied to the root element if `multiline={true}`. */
25767
+ multiline: {
25768
+ padding: '18.5px 14px',
25769
+ '&$marginDense': {
25770
+ paddingTop: 10.5,
25771
+ paddingBottom: 10.5
25772
+ }
25773
+ },
25774
 
25775
+ /* Styles applied to the `NotchedOutline` element. */
25776
+ notchedOutline: {
25777
+ borderColor: borderColor
25778
+ },
25779
 
25780
+ /* Styles applied to the `input` element. */
25781
+ input: {
25782
+ padding: '18.5px 14px',
25783
+ '&:-webkit-autofill': {
25784
+ WebkitBoxShadow: theme.palette.type === 'light' ? null : '0 0 0 100px #266798 inset',
25785
+ WebkitTextFillColor: theme.palette.type === 'light' ? null : '#fff',
25786
+ caretColor: theme.palette.type === 'light' ? null : '#fff',
25787
+ borderRadius: 'inherit'
25788
+ }
25789
+ },
25790
 
25791
+ /* Styles applied to the `input` element if `margin="dense"`. */
25792
+ inputMarginDense: {
25793
+ paddingTop: 10.5,
25794
+ paddingBottom: 10.5
25795
+ },
25796
 
25797
+ /* Styles applied to the `input` element if `multiline={true}`. */
25798
+ inputMultiline: {
25799
+ padding: 0
25800
+ },
25801
 
25802
+ /* Styles applied to the `input` element if `startAdornment` is provided. */
25803
+ inputAdornedStart: {
25804
+ paddingLeft: 0
25805
+ },
 
 
 
 
 
25806
 
25807
+ /* Styles applied to the `input` element if `endAdornment` is provided. */
25808
+ inputAdornedEnd: {
25809
+ paddingRight: 0
 
25810
  }
25811
+ };
25812
  };
25813
+ var OutlinedInput = /*#__PURE__*/react.forwardRef(function OutlinedInput(props, ref) {
25814
+ var classes = props.classes,
25815
+ _props$fullWidth = props.fullWidth,
25816
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
25817
+ _props$inputComponent = props.inputComponent,
25818
+ inputComponent = _props$inputComponent === void 0 ? 'input' : _props$inputComponent,
25819
+ label = props.label,
25820
+ _props$labelWidth = props.labelWidth,
25821
+ labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,
25822
+ _props$multiline = props.multiline,
25823
+ multiline = _props$multiline === void 0 ? false : _props$multiline,
25824
+ notched = props.notched,
25825
+ _props$type = props.type,
25826
+ type = _props$type === void 0 ? 'text' : _props$type,
25827
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "fullWidth", "inputComponent", "label", "labelWidth", "multiline", "notched", "type"]);
25828
 
25829
+ return /*#__PURE__*/react.createElement(InputBase_InputBase, (0,esm_extends/* default */.Z)({
25830
+ renderSuffix: function renderSuffix(state) {
25831
+ return /*#__PURE__*/react.createElement(OutlinedInput_NotchedOutline, {
25832
+ className: classes.notchedOutline,
25833
+ label: label,
25834
+ labelWidth: labelWidth,
25835
+ notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
25836
+ });
25837
+ },
25838
+ classes: (0,esm_extends/* default */.Z)({}, classes, {
25839
+ root: (0,clsx_m/* default */.Z)(classes.root, classes.underline),
25840
+ notchedOutline: null
25841
+ }),
25842
+ fullWidth: fullWidth,
25843
+ inputComponent: inputComponent,
25844
+ multiline: multiline,
25845
+ ref: ref,
25846
+ type: type
25847
  }, other));
25848
  });
25849
  false ? 0 : void 0;
25850
+ OutlinedInput.muiName = 'Input';
25851
+ /* harmony default export */ var OutlinedInput_OutlinedInput = ((0,withStyles/* default */.Z)(OutlinedInput_styles, {
25852
+ name: 'MuiOutlinedInput'
25853
+ })(OutlinedInput));
25854
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/useFormControl.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25855
 
 
 
 
25856
 
25857
+ function useFormControl_useFormControl() {
25858
+ return react.useContext(FormControl_FormControlContext);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25859
  }
25860
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormLabel/FormLabel.js
 
25861
 
25862
 
25863
 
25867
 
25868
 
25869
 
25870
+ var FormLabel_styles = function styles(theme) {
25871
  return {
25872
  /* Styles applied to the root element. */
25873
+ root: (0,esm_extends/* default */.Z)({
25874
+ color: theme.palette.text.secondary
25875
+ }, theme.typography.body1, {
25876
+ lineHeight: 1,
25877
+ padding: 0,
25878
+ '&$focused': {
25879
+ color: theme.palette.primary.main
 
 
 
 
 
 
 
 
 
 
 
25880
  },
25881
  '&$disabled': {
25882
+ color: theme.palette.text.disabled
25883
+ },
25884
+ '&$error': {
25885
+ color: theme.palette.error.main
25886
  }
25887
+ }),
25888
 
25889
+ /* Styles applied to the root element if the color is secondary. */
25890
+ colorSecondary: {
25891
+ '&$focused': {
25892
+ color: theme.palette.secondary.main
 
25893
  }
25894
  },
25895
 
25896
+ /* Pseudo-class applied to the root element if `focused={true}`. */
25897
+ focused: {},
25898
+
25899
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
25900
+ disabled: {},
25901
+
25902
+ /* Pseudo-class applied to the root element if `error={true}`. */
25903
+ error: {},
25904
+
25905
+ /* Pseudo-class applied to the root element if `filled={true}`. */
25906
+ filled: {},
25907
+
25908
+ /* Pseudo-class applied to the root element if `required={true}`. */
25909
+ required: {},
25910
+
25911
+ /* Styles applied to the asterisk element. */
25912
+ asterisk: {
25913
+ '&$error': {
25914
+ color: theme.palette.error.main
25915
  }
25916
+ }
25917
+ };
25918
+ };
25919
+ var FormLabel = /*#__PURE__*/react.forwardRef(function FormLabel(props, ref) {
25920
+ var children = props.children,
25921
+ classes = props.classes,
25922
+ className = props.className,
25923
+ color = props.color,
25924
+ _props$component = props.component,
25925
+ Component = _props$component === void 0 ? 'label' : _props$component,
25926
+ disabled = props.disabled,
25927
+ error = props.error,
25928
+ filled = props.filled,
25929
+ focused = props.focused,
25930
+ required = props.required,
25931
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "error", "filled", "focused", "required"]);
25932
+
25933
+ var muiFormControl = useFormControl_useFormControl();
25934
+ var fcs = formControlState({
25935
+ props: props,
25936
+ muiFormControl: muiFormControl,
25937
+ states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']
25938
+ });
25939
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
25940
+ className: (0,clsx_m/* default */.Z)(classes.root, classes["color".concat((0,utils_capitalize/* default */.Z)(fcs.color || 'primary'))], className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required),
25941
+ ref: ref
25942
+ }, other), children, fcs.required && /*#__PURE__*/react.createElement("span", {
25943
+ "aria-hidden": true,
25944
+ className: (0,clsx_m/* default */.Z)(classes.asterisk, fcs.error && classes.error)
25945
+ }, "\u2009", '*'));
25946
+ });
25947
+ false ? 0 : void 0;
25948
+ /* harmony default export */ var FormLabel_FormLabel = ((0,withStyles/* default */.Z)(FormLabel_styles, {
25949
+ name: 'MuiFormLabel'
25950
+ })(FormLabel));
25951
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/InputLabel/InputLabel.js
25952
+
25953
+
25954
+
25955
+
25956
+
25957
+
25958
+
25959
+
25960
+
25961
+ var InputLabel_styles = function styles(theme) {
25962
+ return {
25963
+ /* Styles applied to the root element. */
25964
+ root: {
25965
+ display: 'block',
25966
+ transformOrigin: 'top left'
25967
  },
25968
 
25969
+ /* Pseudo-class applied to the root element if `focused={true}`. */
25970
+ focused: {},
25971
+
25972
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
25973
+ disabled: {},
25974
+
25975
+ /* Pseudo-class applied to the root element if `error={true}`. */
25976
+ error: {},
25977
+
25978
+ /* Pseudo-class applied to the root element if `required={true}`. */
25979
+ required: {},
25980
+
25981
+ /* Pseudo-class applied to the asterisk element. */
25982
+ asterisk: {},
25983
+
25984
+ /* Styles applied to the root element if the component is a descendant of `FormControl`. */
25985
+ formControl: {
25986
+ position: 'absolute',
25987
+ left: 0,
25988
+ top: 0,
25989
+ // slight alteration to spec spacing to match visual spec result
25990
+ transform: 'translate(0, 24px) scale(1)'
25991
  },
25992
 
25993
+ /* Styles applied to the root element if `margin="dense"`. */
25994
+ marginDense: {
25995
+ // Compensation for the `Input.inputDense` style.
25996
+ transform: 'translate(0, 21px) scale(1)'
 
 
 
 
 
 
25997
  },
25998
 
25999
+ /* Styles applied to the `input` element if `shrink={true}`. */
26000
+ shrink: {
26001
+ transform: 'translate(0, 1.5px) scale(0.75)',
26002
+ transformOrigin: 'top left'
 
 
 
 
 
 
26003
  },
26004
 
26005
+ /* Styles applied to the `input` element if `disableAnimation={false}`. */
26006
+ animated: {
26007
+ transition: theme.transitions.create(['color', 'transform'], {
26008
+ duration: theme.transitions.duration.shorter,
26009
+ easing: theme.transitions.easing.easeOut
26010
+ })
26011
+ },
26012
 
26013
+ /* Styles applied to the root element if `variant="filled"`. */
26014
+ filled: {
26015
+ // Chrome's autofill feature gives the input field a yellow background.
26016
+ // Since the input field is behind the label in the HTML tree,
26017
+ // the input field is drawn last and hides the label with an opaque background color.
26018
+ // zIndex: 1 will raise the label above opaque background-colors of input.
26019
+ zIndex: 1,
26020
+ pointerEvents: 'none',
26021
+ transform: 'translate(12px, 20px) scale(1)',
26022
+ '&$marginDense': {
26023
+ transform: 'translate(12px, 17px) scale(1)'
26024
+ },
26025
+ '&$shrink': {
26026
+ transform: 'translate(12px, 10px) scale(0.75)',
26027
+ '&$marginDense': {
26028
+ transform: 'translate(12px, 7px) scale(0.75)'
26029
+ }
26030
+ }
26031
  },
26032
 
26033
+ /* Styles applied to the root element if `variant="outlined"`. */
26034
+ outlined: {
26035
+ // see comment above on filled.zIndex
26036
+ zIndex: 1,
26037
+ pointerEvents: 'none',
26038
+ transform: 'translate(14px, 20px) scale(1)',
26039
+ '&$marginDense': {
26040
+ transform: 'translate(14px, 12px) scale(1)'
26041
+ },
26042
+ '&$shrink': {
26043
+ transform: 'translate(14px, -6px) scale(0.75)'
26044
+ }
26045
  }
26046
  };
26047
  };
26048
+ var InputLabel = /*#__PURE__*/react.forwardRef(function InputLabel(props, ref) {
26049
+ var classes = props.classes,
26050
+ className = props.className,
26051
+ _props$disableAnimati = props.disableAnimation,
26052
+ disableAnimation = _props$disableAnimati === void 0 ? false : _props$disableAnimati,
26053
+ margin = props.margin,
26054
+ shrinkProp = props.shrink,
26055
+ variant = props.variant,
26056
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "disableAnimation", "margin", "shrink", "variant"]);
26057
+
26058
+ var muiFormControl = useFormControl_useFormControl();
26059
+ var shrink = shrinkProp;
26060
+
26061
+ if (typeof shrink === 'undefined' && muiFormControl) {
26062
+ shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;
26063
+ }
26064
+
26065
+ var fcs = formControlState({
26066
+ props: props,
26067
+ muiFormControl: muiFormControl,
26068
+ states: ['margin', 'variant']
26069
+ });
26070
+ return /*#__PURE__*/react.createElement(FormLabel_FormLabel, (0,esm_extends/* default */.Z)({
26071
+ "data-shrink": shrink,
26072
+ className: (0,clsx_m/* default */.Z)(classes.root, className, muiFormControl && classes.formControl, !disableAnimation && classes.animated, shrink && classes.shrink, fcs.margin === 'dense' && classes.marginDense, {
26073
+ 'filled': classes.filled,
26074
+ 'outlined': classes.outlined
26075
+ }[fcs.variant]),
26076
+ classes: {
26077
+ focused: classes.focused,
26078
+ disabled: classes.disabled,
26079
+ error: classes.error,
26080
+ required: classes.required,
26081
+ asterisk: classes.asterisk
26082
+ },
26083
+ ref: ref
26084
+ }, other));
26085
+ });
26086
+ false ? 0 : void 0;
26087
+ /* harmony default export */ var InputLabel_InputLabel = ((0,withStyles/* default */.Z)(InputLabel_styles, {
26088
+ name: 'MuiInputLabel'
26089
+ })(InputLabel));
26090
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormControl/FormControl.js
26091
+
26092
+
26093
+
26094
+
26095
+
26096
+
26097
+
26098
+
26099
+
26100
+
26101
+ var FormControl_styles = {
26102
+ /* Styles applied to the root element. */
26103
+ root: {
26104
+ display: 'inline-flex',
26105
+ flexDirection: 'column',
26106
+ position: 'relative',
26107
+ // Reset fieldset default style.
26108
+ minWidth: 0,
26109
+ padding: 0,
26110
+ margin: 0,
26111
+ border: 0,
26112
+ verticalAlign: 'top' // Fix alignment issue on Safari.
26113
+
26114
+ },
26115
+
26116
+ /* Styles applied to the root element if `margin="normal"`. */
26117
+ marginNormal: {
26118
+ marginTop: 16,
26119
+ marginBottom: 8
26120
+ },
26121
+
26122
+ /* Styles applied to the root element if `margin="dense"`. */
26123
+ marginDense: {
26124
+ marginTop: 8,
26125
+ marginBottom: 4
26126
+ },
26127
+
26128
+ /* Styles applied to the root element if `fullWidth={true}`. */
26129
+ fullWidth: {
26130
+ width: '100%'
26131
+ }
26132
+ };
26133
  /**
26134
+ * Provides context such as filled/focused/error/required for form inputs.
26135
+ * Relying on the context provides high flexibility and ensures that the state always stays
26136
+ * consistent across the children of the `FormControl`.
26137
+ * This context is used by the following components:
26138
+ *
26139
+ * - FormLabel
26140
+ * - FormHelperText
26141
+ * - Input
26142
+ * - InputLabel
26143
+ *
26144
+ * You can find one composition example below and more going to [the demos](/components/text-fields/#components).
26145
+ *
26146
+ * ```jsx
26147
+ * <FormControl>
26148
+ * <InputLabel htmlFor="my-input">Email address</InputLabel>
26149
+ * <Input id="my-input" aria-describedby="my-helper-text" />
26150
+ * <FormHelperText id="my-helper-text">We'll never share your email.</FormHelperText>
26151
+ * </FormControl>
26152
+ * ```
26153
+ *
26154
+ * ⚠️Only one input can be used within a FormControl.
26155
  */
26156
 
26157
+ var FormControl = /*#__PURE__*/react.forwardRef(function FormControl(props, ref) {
26158
+ var children = props.children,
 
 
26159
  classes = props.classes,
26160
  className = props.className,
26161
  _props$color = props.color,
26162
+ color = _props$color === void 0 ? 'primary' : _props$color,
26163
+ _props$component = props.component,
26164
+ Component = _props$component === void 0 ? 'div' : _props$component,
26165
  _props$disabled = props.disabled,
26166
  disabled = _props$disabled === void 0 ? false : _props$disabled,
26167
+ _props$error = props.error,
26168
+ error = _props$error === void 0 ? false : _props$error,
26169
+ _props$fullWidth = props.fullWidth,
26170
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
26171
+ visuallyFocused = props.focused,
26172
+ _props$hiddenLabel = props.hiddenLabel,
26173
+ hiddenLabel = _props$hiddenLabel === void 0 ? false : _props$hiddenLabel,
26174
+ _props$margin = props.margin,
26175
+ margin = _props$margin === void 0 ? 'none' : _props$margin,
26176
+ _props$required = props.required,
26177
+ required = _props$required === void 0 ? false : _props$required,
26178
+ size = props.size,
26179
+ _props$variant = props.variant,
26180
+ variant = _props$variant === void 0 ? 'standard' : _props$variant,
26181
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "color", "component", "disabled", "error", "fullWidth", "focused", "hiddenLabel", "margin", "required", "size", "variant"]);
26182
 
26183
+ var _React$useState = react.useState(function () {
26184
+ // We need to iterate through the children and find the Input in order
26185
+ // to fully support server-side rendering.
26186
+ var initialAdornedStart = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26187
 
26188
+ if (children) {
26189
+ react.Children.forEach(children, function (child) {
26190
+ if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
26191
+ return;
26192
+ }
26193
 
26194
+ var input = (0,isMuiElement/* default */.Z)(child, ['Select']) ? child.props.input : child;
26195
 
26196
+ if (input && isAdornedStart(input.props)) {
26197
+ initialAdornedStart = true;
26198
+ }
26199
+ });
26200
+ }
26201
 
26202
+ return initialAdornedStart;
26203
+ }),
26204
+ adornedStart = _React$useState[0],
26205
+ setAdornedStart = _React$useState[1];
26206
 
26207
+ var _React$useState2 = react.useState(function () {
26208
+ // We need to iterate through the children and find the Input in order
26209
+ // to fully support server-side rendering.
26210
+ var initialFilled = false;
26211
+
26212
+ if (children) {
26213
+ react.Children.forEach(children, function (child) {
26214
+ if (!(0,isMuiElement/* default */.Z)(child, ['Input', 'Select'])) {
26215
+ return;
26216
+ }
26217
 
26218
+ if (isFilled(child.props, true)) {
26219
+ initialFilled = true;
26220
+ }
26221
+ });
26222
+ }
26223
 
26224
+ return initialFilled;
26225
+ }),
26226
+ filled = _React$useState2[0],
26227
+ setFilled = _React$useState2[1];
26228
 
26229
+ var _React$useState3 = react.useState(false),
26230
+ _focused = _React$useState3[0],
26231
+ setFocused = _React$useState3[1];
26232
 
26233
+ var focused = visuallyFocused !== undefined ? visuallyFocused : _focused;
26234
 
26235
+ if (disabled && focused) {
26236
+ setFocused(false);
26237
+ }
26238
 
26239
+ var registerEffect;
26240
 
26241
+ if (false) { var registeredInput; }
26242
 
26243
+ var onFilled = react.useCallback(function () {
26244
+ setFilled(true);
26245
+ }, []);
26246
+ var onEmpty = react.useCallback(function () {
26247
+ setFilled(false);
26248
+ }, []);
26249
+ var childContext = {
26250
+ adornedStart: adornedStart,
26251
+ setAdornedStart: setAdornedStart,
26252
+ color: color,
26253
+ disabled: disabled,
26254
+ error: error,
26255
+ filled: filled,
26256
+ focused: focused,
26257
+ fullWidth: fullWidth,
26258
+ hiddenLabel: hiddenLabel,
26259
+ margin: (size === 'small' ? 'dense' : undefined) || margin,
26260
+ onBlur: function onBlur() {
26261
+ setFocused(false);
26262
+ },
26263
+ onEmpty: onEmpty,
26264
+ onFilled: onFilled,
26265
+ onFocus: function onFocus() {
26266
+ setFocused(true);
26267
+ },
26268
+ registerEffect: registerEffect,
26269
+ required: required,
26270
+ variant: variant
26271
+ };
26272
+ return /*#__PURE__*/react.createElement(FormControl_FormControlContext.Provider, {
26273
+ value: childContext
26274
+ }, /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
26275
+ className: (0,clsx_m/* default */.Z)(classes.root, className, margin !== 'none' && classes["margin".concat((0,utils_capitalize/* default */.Z)(margin))], fullWidth && classes.fullWidth),
26276
+ ref: ref
26277
+ }, other), children));
26278
+ });
26279
+ false ? 0 : void 0;
26280
+ /* harmony default export */ var FormControl_FormControl = ((0,withStyles/* default */.Z)(FormControl_styles, {
26281
+ name: 'MuiFormControl'
26282
+ })(FormControl));
26283
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/FormHelperText/FormHelperText.js
26284
 
26285
 
26286
 
 
 
26287
 
 
 
 
 
26288
 
 
 
 
 
 
 
 
26289
 
26290
 
 
 
 
 
 
 
 
 
 
26291
 
26292
+ var FormHelperText_styles = function styles(theme) {
26293
+ return {
26294
+ /* Styles applied to the root element. */
26295
+ root: (0,esm_extends/* default */.Z)({
26296
+ color: theme.palette.text.secondary
26297
+ }, theme.typography.caption, {
26298
+ textAlign: 'left',
26299
+ marginTop: 3,
26300
+ margin: 0,
26301
+ '&$disabled': {
26302
+ color: theme.palette.text.disabled
26303
+ },
26304
+ '&$error': {
26305
+ color: theme.palette.error.main
26306
  }
26307
+ }),
26308
 
26309
+ /* Pseudo-class applied to the root element if `error={true}`. */
26310
+ error: {},
 
26311
 
26312
+ /* Pseudo-class applied to the root element if `disabled={true}`. */
26313
+ disabled: {},
26314
 
26315
+ /* Styles applied to the root element if `margin="dense"`. */
26316
+ marginDense: {
26317
+ marginTop: 4
26318
+ },
26319
 
26320
+ /* Styles applied to the root element if `variant="filled"` or `variant="outlined"`. */
26321
+ contained: {
26322
+ marginLeft: 14,
26323
+ marginRight: 14
26324
+ },
26325
+
26326
+ /* Pseudo-class applied to the root element if `focused={true}`. */
26327
+ focused: {},
26328
+
26329
+ /* Pseudo-class applied to the root element if `filled={true}`. */
26330
+ filled: {},
26331
+
26332
+ /* Pseudo-class applied to the root element if `required={true}`. */
26333
+ required: {}
26334
  };
26335
+ };
26336
+ var FormHelperText = /*#__PURE__*/react.forwardRef(function FormHelperText(props, ref) {
26337
+ var children = props.children,
26338
+ classes = props.classes,
26339
+ className = props.className,
26340
+ _props$component = props.component,
26341
+ Component = _props$component === void 0 ? 'p' : _props$component,
26342
+ disabled = props.disabled,
26343
+ error = props.error,
26344
+ filled = props.filled,
26345
+ focused = props.focused,
26346
+ margin = props.margin,
26347
+ required = props.required,
26348
+ variant = props.variant,
26349
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"]);
26350
 
26351
+ var muiFormControl = useFormControl_useFormControl();
26352
+ var fcs = formControlState({
26353
+ props: props,
26354
+ muiFormControl: muiFormControl,
26355
+ states: ['variant', 'margin', 'disabled', 'error', 'filled', 'focused', 'required']
26356
+ });
26357
+ return /*#__PURE__*/react.createElement(Component, (0,esm_extends/* default */.Z)({
26358
+ className: (0,clsx_m/* default */.Z)(classes.root, (fcs.variant === 'filled' || fcs.variant === 'outlined') && classes.contained, className, fcs.disabled && classes.disabled, fcs.error && classes.error, fcs.filled && classes.filled, fcs.focused && classes.focused, fcs.required && classes.required, fcs.margin === 'dense' && classes.marginDense),
26359
+ ref: ref
26360
+ }, other), children === ' ' ?
26361
+ /*#__PURE__*/
26362
+ // eslint-disable-next-line react/no-danger
26363
+ react.createElement("span", {
26364
+ dangerouslySetInnerHTML: {
26365
+ __html: '&#8203;'
26366
+ }
26367
+ }) : children);
26368
+ });
26369
+ false ? 0 : void 0;
26370
+ /* harmony default export */ var FormHelperText_FormHelperText = ((0,withStyles/* default */.Z)(FormHelperText_styles, {
26371
+ name: 'MuiFormHelperText'
26372
+ })(FormHelperText));
26373
+ // EXTERNAL MODULE: ./node_modules/@material-ui/styles/esm/mergeClasses/mergeClasses.js
26374
+ var mergeClasses = __webpack_require__(65835);
26375
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Select/SelectInput.js
26376
+
26377
+
26378
+
26379
+
26380
+
26381
+
26382
+
26383
+
26384
+
26385
+
26386
+
26387
+
26388
+
26389
+
26390
+
26391
+
26392
+
26393
+ function areEqualValues(a, b) {
26394
+ if ((0,esm_typeof/* default */.Z)(b) === 'object' && b !== null) {
26395
+ return a === b;
26396
+ }
26397
+
26398
+ return String(a) === String(b);
26399
  }
26400
 
26401
+ function isEmpty(display) {
26402
+ return display == null || typeof display === 'string' && !display.trim();
26403
+ }
26404
+ /**
26405
+ * @ignore - internal component.
26406
+ */
26407
+
26408
+
26409
+ var SelectInput = /*#__PURE__*/react.forwardRef(function SelectInput(props, ref) {
26410
+ var ariaLabel = props['aria-label'],
26411
+ autoFocus = props.autoFocus,
26412
+ autoWidth = props.autoWidth,
26413
+ children = props.children,
26414
+ classes = props.classes,
26415
+ className = props.className,
26416
+ defaultValue = props.defaultValue,
26417
+ disabled = props.disabled,
26418
+ displayEmpty = props.displayEmpty,
26419
+ IconComponent = props.IconComponent,
26420
+ inputRefProp = props.inputRef,
26421
+ labelId = props.labelId,
26422
+ _props$MenuProps = props.MenuProps,
26423
+ MenuProps = _props$MenuProps === void 0 ? {} : _props$MenuProps,
26424
+ multiple = props.multiple,
26425
+ name = props.name,
26426
+ onBlur = props.onBlur,
26427
+ onChange = props.onChange,
26428
+ onClose = props.onClose,
26429
+ onFocus = props.onFocus,
26430
+ onOpen = props.onOpen,
26431
+ openProp = props.open,
26432
+ readOnly = props.readOnly,
26433
+ renderValue = props.renderValue,
26434
+ _props$SelectDisplayP = props.SelectDisplayProps,
26435
+ SelectDisplayProps = _props$SelectDisplayP === void 0 ? {} : _props$SelectDisplayP,
26436
+ tabIndexProp = props.tabIndex,
26437
+ type = props.type,
26438
+ valueProp = props.value,
26439
+ _props$variant = props.variant,
26440
+ variant = _props$variant === void 0 ? 'standard' : _props$variant,
26441
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["aria-label", "autoFocus", "autoWidth", "children", "classes", "className", "defaultValue", "disabled", "displayEmpty", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"]);
26442
+
26443
+ var _useControlled = (0,useControlled/* default */.Z)({
26444
+ controlled: valueProp,
26445
+ default: defaultValue,
26446
+ name: 'Select'
26447
+ }),
26448
+ _useControlled2 = (0,slicedToArray/* default */.Z)(_useControlled, 2),
26449
+ value = _useControlled2[0],
26450
+ setValue = _useControlled2[1];
26451
+
26452
+ var inputRef = react.useRef(null);
26453
+
26454
+ var _React$useState = react.useState(null),
26455
+ displayNode = _React$useState[0],
26456
+ setDisplayNode = _React$useState[1];
26457
+
26458
+ var _React$useRef = react.useRef(openProp != null),
26459
+ isOpenControlled = _React$useRef.current;
26460
+
26461
+ var _React$useState2 = react.useState(),
26462
+ menuMinWidthState = _React$useState2[0],
26463
+ setMenuMinWidthState = _React$useState2[1];
26464
+
26465
+ var _React$useState3 = react.useState(false),
26466
+ openState = _React$useState3[0],
26467
+ setOpenState = _React$useState3[1];
26468
+
26469
+ var handleRef = (0,useForkRef/* default */.Z)(ref, inputRefProp);
26470
+ react.useImperativeHandle(handleRef, function () {
26471
+ return {
26472
+ focus: function focus() {
26473
+ displayNode.focus();
26474
+ },
26475
+ node: inputRef.current,
26476
+ value: value
26477
+ };
26478
+ }, [displayNode, value]);
26479
+ react.useEffect(function () {
26480
+ if (autoFocus && displayNode) {
26481
+ displayNode.focus();
26482
+ }
26483
+ }, [autoFocus, displayNode]);
26484
+ react.useEffect(function () {
26485
+ if (displayNode) {
26486
+ var label = (0,ownerDocument/* default */.Z)(displayNode).getElementById(labelId);
26487
+
26488
+ if (label) {
26489
+ var handler = function handler() {
26490
+ if (getSelection().isCollapsed) {
26491
+ displayNode.focus();
26492
+ }
26493
+ };
26494
+
26495
+ label.addEventListener('click', handler);
26496
+ return function () {
26497
+ label.removeEventListener('click', handler);
26498
+ };
26499
+ }
26500
+ }
26501
+
26502
+ return undefined;
26503
+ }, [labelId, displayNode]);
26504
+
26505
+ var update = function update(open, event) {
26506
+ if (open) {
26507
+ if (onOpen) {
26508
+ onOpen(event);
26509
+ }
26510
+ } else if (onClose) {
26511
+ onClose(event);
26512
+ }
26513
+
26514
+ if (!isOpenControlled) {
26515
+ setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);
26516
+ setOpenState(open);
26517
+ }
26518
  };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26519
 
26520
+ var handleMouseDown = function handleMouseDown(event) {
26521
+ // Ignore everything but left-click
26522
+ if (event.button !== 0) {
26523
+ return;
26524
+ } // Hijack the default focus behavior.
26525
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26526
 
26527
+ event.preventDefault();
26528
+ displayNode.focus();
26529
+ update(true, event);
26530
+ };
 
 
 
 
 
 
 
 
 
 
 
26531
 
26532
+ var handleClose = function handleClose(event) {
26533
+ update(false, event);
26534
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26535
 
26536
+ var childrenArray = react.Children.toArray(children); // Support autofill.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26537
 
26538
+ var handleChange = function handleChange(event) {
26539
+ var index = childrenArray.map(function (child) {
26540
+ return child.props.value;
26541
+ }).indexOf(event.target.value);
 
 
26542
 
26543
+ if (index === -1) {
26544
+ return;
 
 
 
 
26545
  }
 
 
 
 
 
26546
 
26547
+ var child = childrenArray[index];
26548
+ setValue(child.props.value);
26549
 
26550
+ if (onChange) {
26551
+ onChange(event, child);
26552
  }
26553
+ };
26554
 
26555
+ var handleItemClick = function handleItemClick(child) {
26556
+ return function (event) {
26557
+ if (!multiple) {
26558
+ update(false, event);
26559
+ }
 
 
 
 
 
 
 
 
 
 
26560
 
26561
+ var newValue;
26562
 
26563
+ if (multiple) {
26564
+ newValue = Array.isArray(value) ? value.slice() : [];
26565
+ var itemIndex = value.indexOf(child.props.value);
26566
 
26567
+ if (itemIndex === -1) {
26568
+ newValue.push(child.props.value);
26569
+ } else {
26570
+ newValue.splice(itemIndex, 1);
26571
  }
26572
  } else {
26573
+ newValue = child.props.value;
26574
+ }
 
 
26575
 
26576
+ if (child.props.onClick) {
26577
+ child.props.onClick(event);
26578
+ }
26579
 
26580
+ if (value === newValue) {
26581
+ return;
26582
  }
 
26583
 
26584
+ setValue(newValue);
 
 
 
 
 
26585
 
26586
+ if (onChange) {
26587
+ event.persist(); // Preact support, target is read only property on a native event.
 
 
 
 
 
26588
 
26589
+ Object.defineProperty(event, 'target', {
26590
+ writable: true,
26591
+ value: {
26592
+ value: newValue,
26593
+ name: name
26594
+ }
26595
+ });
26596
+ onChange(event, child);
26597
+ }
26598
+ };
26599
  };
26600
 
26601
+ var handleKeyDown = function handleKeyDown(event) {
26602
+ if (!readOnly) {
26603
+ var validKeys = [' ', 'ArrowUp', 'ArrowDown', // The native select doesn't respond to enter on MacOS, but it's recommended by
26604
+ // https://www.w3.org/TR/wai-aria-practices/examples/listbox/listbox-collapsible.html
26605
+ 'Enter'];
26606
+
26607
+ if (validKeys.indexOf(event.key) !== -1) {
26608
+ event.preventDefault();
26609
+ update(true, event);
26610
  }
 
 
26611
  }
26612
  };
26613
 
26614
+ var open = displayNode !== null && (isOpenControlled ? openProp : openState);
 
 
 
26615
 
26616
+ var handleBlur = function handleBlur(event) {
26617
+ // if open event.stopImmediatePropagation
26618
+ if (!open && onBlur) {
26619
+ event.persist(); // Preact support, target is read only property on a native event.
26620
 
26621
+ Object.defineProperty(event, 'target', {
26622
+ writable: true,
26623
+ value: {
26624
+ value: value,
26625
+ name: name
26626
+ }
 
26627
  });
26628
+ onBlur(event);
 
 
 
 
 
26629
  }
26630
+ };
26631
 
26632
+ delete other['aria-invalid'];
26633
+ var display;
26634
+ var displaySingle;
26635
+ var displayMultiple = [];
26636
+ var computeDisplay = false;
26637
+ var foundMatch = false; // No need to display any value if the field is empty.
26638
 
26639
+ if (isFilled({
26640
+ value: value
26641
+ }) || displayEmpty) {
26642
+ if (renderValue) {
26643
+ display = renderValue(value);
26644
+ } else {
26645
+ computeDisplay = true;
26646
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26647
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26648
 
26649
+ var items = childrenArray.map(function (child) {
26650
+ if (! /*#__PURE__*/react.isValidElement(child)) {
26651
+ return null;
26652
+ }
26653
 
26654
+ if (false) {}
26655
 
26656
+ var selected;
26657
 
26658
+ if (multiple) {
26659
+ if (!Array.isArray(value)) {
26660
+ throw new Error( false ? 0 : (0,formatMuiErrorMessage/* default */.Z)(2));
26661
+ }
 
 
 
 
 
 
 
26662
 
26663
+ selected = value.some(function (v) {
26664
+ return areEqualValues(v, child.props.value);
26665
+ });
26666
 
26667
+ if (selected && computeDisplay) {
26668
+ displayMultiple.push(child.props.children);
26669
+ }
26670
+ } else {
26671
+ selected = areEqualValues(value, child.props.value);
26672
 
26673
+ if (selected && computeDisplay) {
26674
+ displaySingle = child.props.children;
 
 
26675
  }
26676
  }
26677
 
26678
+ if (selected) {
26679
+ foundMatch = true;
26680
+ }
26681
 
26682
+ return /*#__PURE__*/react.cloneElement(child, {
26683
+ 'aria-selected': selected ? 'true' : undefined,
26684
+ onClick: handleItemClick(child),
26685
+ onKeyUp: function onKeyUp(event) {
26686
+ if (event.key === ' ') {
26687
+ // otherwise our MenuItems dispatches a click event
26688
+ // it's not behavior of the native <option> and causes
26689
+ // the select to close immediately since we open on space keydown
26690
+ event.preventDefault();
26691
+ }
26692
 
26693
+ if (child.props.onKeyUp) {
26694
+ child.props.onKeyUp(event);
26695
+ }
26696
+ },
26697
+ role: 'option',
26698
+ selected: selected,
26699
+ value: undefined,
26700
+ // The value is most likely not a valid HTML attribute.
26701
+ 'data-value': child.props.value // Instead, we provide it as a data attribute.
26702
 
 
 
 
 
26703
  });
26704
+ });
 
 
 
 
26705
 
26706
+ if (false) {}
 
 
26707
 
26708
+ if (computeDisplay) {
26709
+ display = multiple ? displayMultiple.join(', ') : displaySingle;
26710
+ } // Avoid performing a layout computation in the render method.
 
 
 
 
 
 
 
 
 
26711
 
 
 
26712
 
26713
+ var menuMinWidth = menuMinWidthState;
 
 
 
 
26714
 
26715
+ if (!autoWidth && isOpenControlled && displayNode) {
26716
+ menuMinWidth = displayNode.clientWidth;
 
 
26717
  }
26718
 
26719
+ var tabIndex;
 
 
 
 
 
 
 
 
 
 
 
26720
 
26721
+ if (typeof tabIndexProp !== 'undefined') {
26722
+ tabIndex = tabIndexProp;
26723
+ } else {
26724
+ tabIndex = disabled ? null : 0;
 
 
26725
  }
26726
 
26727
+ var buttonId = SelectDisplayProps.id || (name ? "mui-component-select-".concat(name) : undefined);
26728
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("div", (0,esm_extends/* default */.Z)({
26729
+ className: (0,clsx_m/* default */.Z)(classes.root, // TODO v5: merge root and select
26730
+ classes.select, classes.selectMenu, classes[variant], className, disabled && classes.disabled),
26731
+ ref: setDisplayNode,
26732
+ tabIndex: tabIndex,
26733
+ role: "button",
26734
+ "aria-disabled": disabled ? 'true' : undefined,
26735
+ "aria-expanded": open ? 'true' : undefined,
26736
+ "aria-haspopup": "listbox",
26737
+ "aria-label": ariaLabel,
26738
+ "aria-labelledby": [labelId, buttonId].filter(Boolean).join(' ') || undefined,
26739
+ onKeyDown: handleKeyDown,
26740
+ onMouseDown: disabled || readOnly ? null : handleMouseDown,
26741
+ onBlur: handleBlur,
26742
+ onFocus: onFocus
26743
+ }, SelectDisplayProps, {
26744
+ // The id is required for proper a11y
26745
+ id: buttonId
26746
+ }), isEmpty(display) ?
26747
+ /*#__PURE__*/
26748
+ // eslint-disable-next-line react/no-danger
26749
+ react.createElement("span", {
26750
+ dangerouslySetInnerHTML: {
26751
+ __html: '&#8203;'
26752
+ }
26753
+ }) : display), /*#__PURE__*/react.createElement("input", (0,esm_extends/* default */.Z)({
26754
+ value: Array.isArray(value) ? value.join(',') : value,
26755
+ name: name,
26756
+ ref: inputRef,
26757
+ "aria-hidden": true,
26758
+ onChange: handleChange,
26759
+ tabIndex: -1,
26760
+ className: classes.nativeInput,
26761
+ autoFocus: autoFocus
26762
+ }, other)), /*#__PURE__*/react.createElement(IconComponent, {
26763
+ className: (0,clsx_m/* default */.Z)(classes.icon, classes["icon".concat((0,utils_capitalize/* default */.Z)(variant))], open && classes.iconOpen, disabled && classes.disabled)
26764
+ }), /*#__PURE__*/react.createElement(Menu_Menu, (0,esm_extends/* default */.Z)({
26765
+ id: "menu-".concat(name || ''),
26766
+ anchorEl: displayNode,
26767
+ open: open,
26768
+ onClose: handleClose
26769
+ }, MenuProps, {
26770
+ MenuListProps: (0,esm_extends/* default */.Z)({
26771
+ 'aria-labelledby': labelId,
26772
+ role: 'listbox',
26773
+ disableListWrap: true
26774
+ }, MenuProps.MenuListProps),
26775
+ PaperProps: (0,esm_extends/* default */.Z)({}, MenuProps.PaperProps, {
26776
+ style: (0,esm_extends/* default */.Z)({
26777
+ minWidth: menuMinWidth
26778
+ }, MenuProps.PaperProps != null ? MenuProps.PaperProps.style : null)
26779
+ })
26780
+ }), items));
26781
+ });
26782
+ false ? 0 : void 0;
26783
+ /* harmony default export */ var Select_SelectInput = (SelectInput);
26784
+ // EXTERNAL MODULE: ./node_modules/@material-ui/core/esm/utils/createSvgIcon.js
26785
+ var createSvgIcon = __webpack_require__(63786);
26786
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/internal/svg-icons/ArrowDropDown.js
26787
 
 
 
 
26788
 
26789
+ /**
26790
+ * @ignore - internal component.
26791
+ */
 
26792
 
26793
+ /* harmony default export */ var svg_icons_ArrowDropDown = ((0,createSvgIcon/* default */.Z)( /*#__PURE__*/react.createElement("path", {
26794
+ d: "M7 10l5 5 5-5z"
26795
+ }), 'ArrowDropDown'));
26796
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelectInput.js
26797
 
 
 
 
26798
 
 
 
 
26799
 
 
 
 
 
26800
 
 
 
 
 
26801
 
 
 
 
 
 
26802
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26803
 
26804
+ /**
26805
+ * @ignore - internal component.
26806
+ */
26807
 
26808
+ var NativeSelectInput = /*#__PURE__*/react.forwardRef(function NativeSelectInput(props, ref) {
26809
+ var classes = props.classes,
26810
+ className = props.className,
26811
+ disabled = props.disabled,
26812
+ IconComponent = props.IconComponent,
26813
+ inputRef = props.inputRef,
26814
+ _props$variant = props.variant,
26815
+ variant = _props$variant === void 0 ? 'standard' : _props$variant,
26816
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["classes", "className", "disabled", "IconComponent", "inputRef", "variant"]);
26817
 
26818
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement("select", (0,esm_extends/* default */.Z)({
26819
+ className: (0,clsx_m/* default */.Z)(classes.root, // TODO v5: merge root and select
26820
+ classes.select, classes[variant], className, disabled && classes.disabled),
26821
+ disabled: disabled,
26822
+ ref: inputRef || ref
26823
+ }, other)), props.multiple ? null : /*#__PURE__*/react.createElement(IconComponent, {
26824
+ className: (0,clsx_m/* default */.Z)(classes.icon, classes["icon".concat((0,utils_capitalize/* default */.Z)(variant))], disabled && classes.disabled)
26825
+ }));
26826
+ });
26827
+ false ? 0 : void 0;
26828
+ /* harmony default export */ var NativeSelect_NativeSelectInput = (NativeSelectInput);
26829
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/NativeSelect/NativeSelect.js
26830
 
 
 
 
 
26831
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26832
 
 
26833
 
 
 
 
 
26834
 
 
 
 
 
 
26835
 
 
 
26836
 
 
 
 
26837
 
 
 
26838
 
 
 
 
26839
 
26840
+ var NativeSelect_styles = function styles(theme) {
26841
+ return {
26842
+ /* Styles applied to the select component `root` class. */
26843
+ root: {},
 
 
 
 
26844
 
26845
+ /* Styles applied to the select component `select` class. */
26846
+ select: {
26847
+ '-moz-appearance': 'none',
26848
+ // Reset
26849
+ '-webkit-appearance': 'none',
26850
+ // Reset
26851
+ // When interacting quickly, the text can end up selected.
26852
+ // Native select can't be selected either.
26853
+ userSelect: 'none',
26854
+ borderRadius: 0,
26855
+ // Reset
26856
+ minWidth: 16,
26857
+ // So it doesn't collapse.
26858
+ cursor: 'pointer',
26859
+ '&:focus': {
26860
+ // Show that it's not an text input
26861
+ backgroundColor: theme.palette.type === 'light' ? 'rgba(0, 0, 0, 0.05)' : 'rgba(255, 255, 255, 0.05)',
26862
+ borderRadius: 0 // Reset Chrome style
26863
 
26864
+ },
26865
+ // Remove IE 11 arrow
26866
+ '&::-ms-expand': {
26867
+ display: 'none'
26868
+ },
26869
+ '&$disabled': {
26870
+ cursor: 'default'
26871
+ },
26872
+ '&[multiple]': {
26873
+ height: 'auto'
26874
+ },
26875
+ '&:not([multiple]) option, &:not([multiple]) optgroup': {
26876
+ backgroundColor: theme.palette.background.paper
26877
+ },
26878
+ '&&': {
26879
+ paddingRight: 24
26880
+ }
26881
+ },
26882
 
26883
+ /* Styles applied to the select component if `variant="filled"`. */
26884
+ filled: {
26885
+ '&&': {
26886
+ paddingRight: 32
26887
+ }
26888
+ },
26889
 
26890
+ /* Styles applied to the select component if `variant="outlined"`. */
26891
+ outlined: {
26892
+ borderRadius: theme.shape.borderRadius,
26893
+ '&&': {
26894
+ paddingRight: 32
26895
+ }
26896
+ },
 
 
 
26897
 
26898
+ /* Styles applied to the select component `selectMenu` class. */
26899
+ selectMenu: {
26900
+ height: 'auto',
26901
+ // Resets for multpile select with chips
26902
+ minHeight: '1.1876em',
26903
+ // Required for select\text-field height consistency
26904
+ textOverflow: 'ellipsis',
26905
+ whiteSpace: 'nowrap',
26906
+ overflow: 'hidden'
26907
+ },
26908
 
26909
+ /* Pseudo-class applied to the select component `disabled` class. */
26910
+ disabled: {},
 
 
 
 
26911
 
26912
+ /* Styles applied to the icon component. */
26913
+ icon: {
26914
+ // We use a position absolute over a flexbox in order to forward the pointer events
26915
+ // to the input and to support wrapping tags..
26916
+ position: 'absolute',
26917
+ right: 0,
26918
+ top: 'calc(50% - 12px)',
26919
+ // Center vertically
26920
+ pointerEvents: 'none',
26921
+ // Don't block pointer events on the select under the icon.
26922
+ color: theme.palette.action.active,
26923
+ '&$disabled': {
26924
+ color: theme.palette.action.disabled
26925
+ }
26926
+ },
26927
 
26928
+ /* Styles applied to the icon component if the popup is open. */
26929
+ iconOpen: {
26930
+ transform: 'rotate(180deg)'
26931
+ },
26932
 
26933
+ /* Styles applied to the icon component if `variant="filled"`. */
26934
+ iconFilled: {
26935
+ right: 7
26936
+ },
26937
 
26938
+ /* Styles applied to the icon component if `variant="outlined"`. */
26939
+ iconOutlined: {
26940
+ right: 7
26941
+ },
26942
 
26943
+ /* Styles applied to the underlying native input component. */
26944
+ nativeInput: {
26945
+ bottom: 0,
26946
+ left: 0,
26947
+ position: 'absolute',
26948
+ opacity: 0,
26949
+ pointerEvents: 'none',
26950
+ width: '100%'
 
26951
  }
26952
+ };
26953
+ };
26954
+ var defaultInput = /*#__PURE__*/react.createElement(Input_Input, null);
26955
+ /**
26956
+ * An alternative to `<Select native />` with a much smaller bundle size footprint.
26957
+ */
26958
 
26959
+ var NativeSelect = /*#__PURE__*/react.forwardRef(function NativeSelect(props, ref) {
26960
+ var children = props.children,
26961
+ classes = props.classes,
26962
+ _props$IconComponent = props.IconComponent,
26963
+ IconComponent = _props$IconComponent === void 0 ? svg_icons_ArrowDropDown : _props$IconComponent,
26964
+ _props$input = props.input,
26965
+ input = _props$input === void 0 ? defaultInput : _props$input,
26966
+ inputProps = props.inputProps,
26967
+ variant = props.variant,
26968
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["children", "classes", "IconComponent", "input", "inputProps", "variant"]);
26969
 
26970
+ var muiFormControl = useFormControl_useFormControl();
26971
+ var fcs = formControlState({
26972
+ props: props,
26973
+ muiFormControl: muiFormControl,
26974
+ states: ['variant']
26975
+ });
26976
+ return /*#__PURE__*/react.cloneElement(input, (0,esm_extends/* default */.Z)({
26977
+ // Most of the logic is implemented in `NativeSelectInput`.
26978
+ // The `Select` component is a simple API wrapper to expose something better to play with.
26979
+ inputComponent: NativeSelect_NativeSelectInput,
26980
+ inputProps: (0,esm_extends/* default */.Z)({
26981
+ children: children,
26982
+ classes: classes,
26983
+ IconComponent: IconComponent,
26984
+ variant: fcs.variant,
26985
+ type: undefined
26986
+ }, inputProps, input ? input.props.inputProps : {}),
26987
+ ref: ref
26988
+ }, other));
26989
+ });
26990
+ false ? 0 : void 0;
26991
+ NativeSelect.muiName = 'Select';
26992
+ /* harmony default export */ var NativeSelect_NativeSelect = ((0,withStyles/* default */.Z)(NativeSelect_styles, {
26993
+ name: 'MuiNativeSelect'
26994
+ })(NativeSelect));
26995
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/Select/Select.js
26996
 
26997
 
26998
 
26999
 
27000
 
27001
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27002
 
 
 
 
 
27003
 
 
27004
 
 
 
 
 
27005
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27006
 
 
 
27007
 
 
 
 
 
 
 
 
 
27008
 
 
 
 
 
 
27009
 
 
 
 
 
 
27010
 
27011
+ var Select_styles = NativeSelect_styles;
 
27012
 
27013
+ var _ref = /*#__PURE__*/react.createElement(Input_Input, null);
 
 
 
 
 
 
 
 
27014
 
27015
+ var _ref2 = /*#__PURE__*/react.createElement(FilledInput_FilledInput, null);
27016
+
27017
+ var Select = /*#__PURE__*/react.forwardRef(function Select(props, ref) {
27018
+ var _props$autoWidth = props.autoWidth,
27019
+ autoWidth = _props$autoWidth === void 0 ? false : _props$autoWidth,
27020
+ children = props.children,
27021
+ classes = props.classes,
27022
+ _props$displayEmpty = props.displayEmpty,
27023
+ displayEmpty = _props$displayEmpty === void 0 ? false : _props$displayEmpty,
27024
+ _props$IconComponent = props.IconComponent,
27025
+ IconComponent = _props$IconComponent === void 0 ? svg_icons_ArrowDropDown : _props$IconComponent,
27026
+ id = props.id,
27027
+ input = props.input,
27028
+ inputProps = props.inputProps,
27029
+ label = props.label,
27030
+ labelId = props.labelId,
27031
+ _props$labelWidth = props.labelWidth,
27032
+ labelWidth = _props$labelWidth === void 0 ? 0 : _props$labelWidth,
27033
+ MenuProps = props.MenuProps,
27034
+ _props$multiple = props.multiple,
27035
+ multiple = _props$multiple === void 0 ? false : _props$multiple,
27036
+ _props$native = props.native,
27037
+ native = _props$native === void 0 ? false : _props$native,
27038
+ onClose = props.onClose,
27039
+ onOpen = props.onOpen,
27040
+ open = props.open,
27041
+ renderValue = props.renderValue,
27042
+ SelectDisplayProps = props.SelectDisplayProps,
27043
+ _props$variant = props.variant,
27044
+ variantProps = _props$variant === void 0 ? 'standard' : _props$variant,
27045
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["autoWidth", "children", "classes", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "labelWidth", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"]);
27046
+
27047
+ var inputComponent = native ? NativeSelect_NativeSelectInput : Select_SelectInput;
27048
+ var muiFormControl = useFormControl_useFormControl();
27049
+ var fcs = formControlState({
27050
+ props: props,
27051
+ muiFormControl: muiFormControl,
27052
+ states: ['variant']
27053
+ });
27054
+ var variant = fcs.variant || variantProps;
27055
+ var InputComponent = input || {
27056
+ standard: _ref,
27057
+ outlined: /*#__PURE__*/react.createElement(OutlinedInput_OutlinedInput, {
27058
+ label: label,
27059
+ labelWidth: labelWidth
27060
+ }),
27061
+ filled: _ref2
27062
+ }[variant];
27063
+ return /*#__PURE__*/react.cloneElement(InputComponent, (0,esm_extends/* default */.Z)({
27064
+ // Most of the logic is implemented in `SelectInput`.
27065
+ // The `Select` component is a simple API wrapper to expose something better to play with.
27066
+ inputComponent: inputComponent,
27067
+ inputProps: (0,esm_extends/* default */.Z)({
27068
+ children: children,
27069
+ IconComponent: IconComponent,
27070
+ variant: variant,
27071
+ type: undefined,
27072
+ // We render a select. We can ignore the type provided by the `Input`.
27073
+ multiple: multiple
27074
+ }, native ? {
27075
+ id: id
27076
+ } : {
27077
+ autoWidth: autoWidth,
27078
+ displayEmpty: displayEmpty,
27079
+ labelId: labelId,
27080
+ MenuProps: MenuProps,
27081
+ onClose: onClose,
27082
+ onOpen: onOpen,
27083
+ open: open,
27084
+ renderValue: renderValue,
27085
+ SelectDisplayProps: (0,esm_extends/* default */.Z)({
27086
+ id: id
27087
+ }, SelectDisplayProps)
27088
+ }, inputProps, {
27089
+ classes: inputProps ? (0,mergeClasses/* default */.Z)({
27090
+ baseClasses: classes,
27091
+ newClasses: inputProps.classes,
27092
+ Component: Select
27093
+ }) : classes
27094
+ }, input ? input.props.inputProps : {}),
27095
+ ref: ref
27096
+ }, other));
27097
+ });
27098
+ false ? 0 : void 0;
27099
+ Select.muiName = 'Select';
27100
+ /* harmony default export */ var Select_Select = ((0,withStyles/* default */.Z)(Select_styles, {
27101
+ name: 'MuiSelect'
27102
+ })(Select));
27103
+ ;// CONCATENATED MODULE: ./node_modules/@material-ui/core/esm/TextField/TextField.js
27104
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27105
 
 
 
 
 
 
27106
 
 
 
27107
 
 
 
 
 
 
 
 
27108
 
 
 
 
 
 
 
27109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27110
 
 
27111
 
 
 
27112
 
 
 
 
27113
 
 
 
 
 
 
 
 
 
27114
 
 
 
 
 
27115
 
 
 
 
 
27116
 
 
 
 
 
 
 
 
27117
 
27118
+ var variantComponent = {
27119
+ standard: Input_Input,
27120
+ filled: FilledInput_FilledInput,
27121
+ outlined: OutlinedInput_OutlinedInput
27122
+ };
27123
+ var TextField_styles = {
27124
+ /* Styles applied to the root element. */
27125
+ root: {}
27126
+ };
27127
  /**
27128
+ * The `TextField` is a convenience wrapper for the most common cases (80%).
27129
+ * It cannot be all things to all people, otherwise the API would grow out of control.
27130
  *
27131
+ * ## Advanced Configuration
27132
+ *
27133
+ * It's important to understand that the text field is a simple abstraction
27134
+ * on top of the following components:
27135
+ *
27136
+ * - [FormControl](/api/form-control/)
27137
+ * - [InputLabel](/api/input-label/)
27138
+ * - [FilledInput](/api/filled-input/)
27139
+ * - [OutlinedInput](/api/outlined-input/)
27140
+ * - [Input](/api/input/)
27141
+ * - [FormHelperText](/api/form-helper-text/)
27142
+ *
27143
+ * If you wish to alter the props applied to the `input` element, you can do so as follows:
27144
+ *
27145
+ * ```jsx
27146
+ * const inputProps = {
27147
+ * step: 300,
27148
+ * };
27149
+ *
27150
+ * return <TextField id="time" type="time" inputProps={inputProps} />;
27151
+ * ```
27152
+ *
27153
+ * For advanced cases, please look at the source of TextField by clicking on the
27154
+ * "Edit this page" button above. Consider either:
27155
+ *
27156
+ * - using the upper case props for passing values directly to the components
27157
+ * - using the underlying components directly as shown in the demos
27158
  */
27159
 
27160
+ var TextField_TextField = /*#__PURE__*/react.forwardRef(function TextField(props, ref) {
27161
+ var autoComplete = props.autoComplete,
27162
+ _props$autoFocus = props.autoFocus,
27163
+ autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
27164
+ children = props.children,
27165
+ classes = props.classes,
27166
+ className = props.className,
27167
+ _props$color = props.color,
27168
+ color = _props$color === void 0 ? 'primary' : _props$color,
27169
+ defaultValue = props.defaultValue,
27170
+ _props$disabled = props.disabled,
27171
+ disabled = _props$disabled === void 0 ? false : _props$disabled,
27172
+ _props$error = props.error,
27173
+ error = _props$error === void 0 ? false : _props$error,
27174
+ FormHelperTextProps = props.FormHelperTextProps,
27175
+ _props$fullWidth = props.fullWidth,
27176
+ fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
27177
+ helperText = props.helperText,
27178
+ hiddenLabel = props.hiddenLabel,
27179
+ id = props.id,
27180
+ InputLabelProps = props.InputLabelProps,
27181
+ inputProps = props.inputProps,
27182
+ InputProps = props.InputProps,
27183
+ inputRef = props.inputRef,
27184
+ label = props.label,
27185
+ _props$multiline = props.multiline,
27186
+ multiline = _props$multiline === void 0 ? false : _props$multiline,
27187
+ name = props.name,
27188
+ onBlur = props.onBlur,
27189
+ onChange = props.onChange,
27190
+ onFocus = props.onFocus,
27191
+ placeholder = props.placeholder,
27192
+ _props$required = props.required,
27193
+ required = _props$required === void 0 ? false : _props$required,
27194
+ rows = props.rows,
27195
+ rowsMax = props.rowsMax,
27196
+ _props$select = props.select,
27197
+ select = _props$select === void 0 ? false : _props$select,
27198
+ SelectProps = props.SelectProps,
27199
+ type = props.type,
27200
+ value = props.value,
27201
+ _props$variant = props.variant,
27202
+ variant = _props$variant === void 0 ? 'standard' : _props$variant,
27203
+ other = (0,objectWithoutProperties/* default */.Z)(props, ["autoComplete", "autoFocus", "children", "classes", "className", "color", "defaultValue", "disabled", "error", "FormHelperTextProps", "fullWidth", "helperText", "hiddenLabel", "id", "InputLabelProps", "inputProps", "InputProps", "inputRef", "label", "multiline", "name", "onBlur", "onChange", "onFocus", "placeholder", "required", "rows", "rowsMax", "select", "SelectProps", "type", "value", "variant"]);
27204
 
27205
+ if (false) {}
 
 
 
 
 
27206
 
27207
+ var InputMore = {};
 
 
 
 
 
 
 
27208
 
27209
+ if (variant === 'outlined') {
27210
+ if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {
27211
+ InputMore.notched = InputLabelProps.shrink;
27212
+ }
27213
 
27214
+ if (label) {
27215
+ var _InputLabelProps$requ;
27216
 
27217
+ var displayRequired = (_InputLabelProps$requ = InputLabelProps === null || InputLabelProps === void 0 ? void 0 : InputLabelProps.required) !== null && _InputLabelProps$requ !== void 0 ? _InputLabelProps$requ : required;
27218
+ InputMore.label = /*#__PURE__*/react.createElement(react.Fragment, null, label, displayRequired && "\xA0*");
27219
+ }
 
 
 
 
27220
  }
 
 
 
 
 
27221
 
27222
+ if (select) {
27223
+ // unset defaults from textbox inputs
27224
+ if (!SelectProps || !SelectProps.native) {
27225
+ InputMore.id = undefined;
27226
+ }
27227
 
27228
+ InputMore['aria-describedby'] = undefined;
 
 
27229
  }
27230
 
27231
+ var helperTextId = helperText && id ? "".concat(id, "-helper-text") : undefined;
27232
+ var inputLabelId = label && id ? "".concat(id, "-label") : undefined;
27233
+ var InputComponent = variantComponent[variant];
27234
+ var InputElement = /*#__PURE__*/react.createElement(InputComponent, (0,esm_extends/* default */.Z)({
27235
+ "aria-describedby": helperTextId,
27236
+ autoComplete: autoComplete,
27237
+ autoFocus: autoFocus,
27238
+ defaultValue: defaultValue,
27239
+ fullWidth: fullWidth,
27240
+ multiline: multiline,
27241
+ name: name,
27242
+ rows: rows,
27243
+ rowsMax: rowsMax,
27244
+ type: type,
27245
+ value: value,
27246
+ id: id,
27247
+ inputRef: inputRef,
27248
+ onBlur: onBlur,
27249
+ onChange: onChange,
27250
+ onFocus: onFocus,
27251
+ placeholder: placeholder,
27252
+ inputProps: inputProps
27253
+ }, InputMore, InputProps));
27254
+ return /*#__PURE__*/react.createElement(FormControl_FormControl, (0,esm_extends/* default */.Z)({
27255
+ className: (0,clsx_m/* default */.Z)(classes.root, className),
27256
+ disabled: disabled,
27257
+ error: error,
27258
+ fullWidth: fullWidth,
27259
+ hiddenLabel: hiddenLabel,
27260
+ ref: ref,
27261
+ required: required,
27262
+ color: color,
27263
+ variant: variant
27264
+ }, other), label && /*#__PURE__*/react.createElement(InputLabel_InputLabel, (0,esm_extends/* default */.Z)({
27265
+ htmlFor: id,
27266
+ id: inputLabelId
27267
+ }, InputLabelProps), label), select ? /*#__PURE__*/react.createElement(Select_Select, (0,esm_extends/* default */.Z)({
27268
+ "aria-describedby": helperTextId,
27269
+ id: id,
27270
+ labelId: inputLabelId,
27271
+ value: value,
27272
+ input: InputElement
27273
+ }, SelectProps), children) : InputElement, helperText && /*#__PURE__*/react.createElement(FormHelperText_FormHelperText, (0,esm_extends/* default */.Z)({
27274
+ id: helperTextId
27275
+ }, FormHelperTextProps), helperText));
27276
+ });
27277
+ false ? 0 : void 0;
27278
+ /* harmony default export */ var esm_TextField_TextField = ((0,withStyles/* default */.Z)(TextField_styles, {
27279
+ name: 'MuiTextField'
27280
+ })(TextField_TextField));
27281
+ // EXTERNAL MODULE: ./node_modules/@material-ui/icons/ExpandMore.js
27282
+ var ExpandMore = __webpack_require__(64566);
27283
+ // EXTERNAL MODULE: ./node_modules/@material-ui/icons/FileCopy.js
27284
+ var FileCopy = __webpack_require__(87239);
27285
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/IntegrateStandaloneDialog/style.module.scss
27286
+ // extracted by mini-css-extract-plugin
27287
+ /* harmony default export */ var style_module = ({"icon":"_3s81HemeKZtqu65wI1fy6E","javascriptCodeBlock":"_2PiruT2xp0ahiZEbiVpgcf","important":"_2fpqeP5Cl7bfJ6a5Nh7IP_","details":"_3FErKLfln3upSA8QUvjViU"});
27288
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Dialogs/IntegrateStandaloneDialog/IntegrateStandaloneDialog.js
27289
+ function IntegrateStandaloneDialog_slicedToArray(arr, i) { return IntegrateStandaloneDialog_arrayWithHoles(arr) || IntegrateStandaloneDialog_iterableToArrayLimit(arr, i) || IntegrateStandaloneDialog_unsupportedIterableToArray(arr, i) || IntegrateStandaloneDialog_nonIterableRest(); }
27290
 
27291
+ function IntegrateStandaloneDialog_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
27292
 
27293
+ function IntegrateStandaloneDialog_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return IntegrateStandaloneDialog_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return IntegrateStandaloneDialog_arrayLikeToArray(o, minLen); }
 
 
 
 
 
 
 
 
27294
 
27295
+ function IntegrateStandaloneDialog_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
 
 
27296
 
27297
+ function IntegrateStandaloneDialog_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
27298
 
27299
+ function IntegrateStandaloneDialog_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
27300
 
 
 
 
27301
 
 
 
 
 
 
27302
 
 
 
 
27303
 
 
27304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27305
 
 
 
 
 
27306
 
 
 
 
 
 
27307
 
 
 
 
 
 
27308
 
 
 
27309
 
 
 
 
27310
 
27311
+ var jsCode = function jsCode(publicIdentifier) {
27312
+ return "<!-- Buttonizer -->\n<script type=\"text/javascript\">\n(function(n,t,c){var o=t.createElement(\"script\");o.async=!0,o.src=\"https://cdn.buttonizer.pro/embed.js\",o.onload=function(){window.Buttonizer.init(c)},t.head.appendChild(o)})(window,document,\"".concat(publicIdentifier, "\");\n</script>\n<!-- End Buttonizer -->");
27313
+ };
 
 
 
 
 
 
27314
 
27315
+ function CodeSnippet(_ref) {
27316
+ var identifier = _ref.identifier;
27317
+ var ref = (0,react.useRef)();
 
 
27318
 
27319
+ var _useSnackbar = useSnackbar(),
27320
+ enqueueSnackbar = _useSnackbar.enqueueSnackbar; // Copy code to clipboard
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27321
 
 
 
 
 
 
 
 
 
 
27322
 
27323
+ var copyFunction = function copyFunction() {
27324
+ ref.current.focus();
27325
+ ref.current.select(); // Add code to clipboard
 
 
27326
 
27327
+ if (navigator.clipboard) {
27328
+ navigator.clipboard.writeText(ref.current.value); // Show code copied message
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27329
 
27330
+ enqueueSnackbar(translate_translate("utils.code_copied"), {
27331
+ anchorOrigin: {
27332
+ vertical: "top",
27333
+ horizontal: "left"
27334
+ }
27335
+ });
27336
+ }
27337
+ };
27338
 
27339
+ return /*#__PURE__*/react.createElement("div", {
27340
+ className: style_module.javascriptCodeBlock
27341
+ }, /*#__PURE__*/react.createElement(esm_Button_Button, {
27342
+ color: "secondary",
27343
+ startIcon: /*#__PURE__*/react.createElement(FileCopy/* default */.Z, null),
27344
+ size: "small",
27345
+ onClick: copyFunction
27346
+ }, translate_translate("utils.copy_code")), /*#__PURE__*/react.createElement("textarea", {
27347
+ className: style_module.javascriptCodeBlock,
27348
+ readOnly: true,
27349
+ value: jsCode(identifier),
27350
+ onClick: copyFunction,
27351
+ ref: ref
27352
+ }));
27353
+ }
27354
 
27355
+ function IntegrateStandaloneDialog(_ref2) {
27356
+ var _ref2$opened = _ref2.opened,
27357
+ opened = _ref2$opened === void 0 ? false : _ref2$opened,
27358
+ _onClose = _ref2.onClose,
27359
+ _ref2$disableWelcome = _ref2.disableWelcome,
27360
+ disableWelcome = _ref2$disableWelcome === void 0 ? false : _ref2$disableWelcome;
27361
+ var store = useStore();
27362
 
27363
+ var _useState = (0,react.useState)(null),
27364
+ _useState2 = IntegrateStandaloneDialog_slicedToArray(_useState, 2),
27365
+ expanded = _useState2[0],
27366
+ setExpanded = _useState2[1];
27367
 
27368
+ var handleChange = function handleChange(panel) {
27369
+ return function (e, isExpanded) {
27370
+ setExpanded(isExpanded ? panel : null);
27371
+ };
27372
+ };
27373
 
27374
+ var identifier = store.getState().misc.identifier;
27375
+ var domain = store.getState().misc.domain;
27376
+ return /*#__PURE__*/react.createElement(ConfirmDialog, {
27377
+ open: opened,
27378
+ title: "Install Buttonizer on your site",
27379
+ maxWidth: "sm",
27380
+ buttons: expanded !== null ? [{
27381
+ value: "open_dashboard",
27382
+ text: translate_translate("common.to_dashboard")
27383
+ }, {
27384
+ value: "confirm",
27385
+ text: translate_translate("common.finish"),
27386
+ variant: "contained"
27387
+ }] : [{
27388
+ value: "confirm",
27389
+ text: translate_translate("modal.close"),
27390
+ disabled: disableWelcome
27391
+ }],
27392
+ onClose: function onClose(val) {
27393
+ if (val === "confirm") {
27394
+ _onClose();
27395
+ } else if (val === "open_dashboard") {
27396
+ window.open("".concat(window.buttonizer_admin.admin, "/sites/").concat(window.buttonizer_admin.siteId));
27397
+ }
27398
+ }
27399
+ }, app.initializedWithWelcome && /*#__PURE__*/react.createElement(Typography_Typography, {
27400
+ variant: "body1",
27401
+ style: {
27402
+ marginBottom: 25
27403
+ }
27404
+ }, "Wow, that looks great! Let's add Buttonizer to your website."), /*#__PURE__*/react.createElement(Typography_Typography, {
27405
+ variant: "body1",
27406
+ style: {
27407
+ marginBottom: 25
27408
+ }
27409
+ }, "Below you can find the installation instructions for ", /*#__PURE__*/react.createElement("b", null, domain), "."), /*#__PURE__*/react.createElement(Accordion_Accordion, {
27410
+ expanded: expanded === "custom",
27411
+ onChange: handleChange("custom")
27412
+ }, /*#__PURE__*/react.createElement(AccordionSummary_AccordionSummary, {
27413
+ expandIcon: /*#__PURE__*/react.createElement(ExpandMore/* default */.Z, null),
27414
+ "aria-controls": "custombh-content",
27415
+ id: "custombh-header"
27416
+ }, /*#__PURE__*/react.createElement(esm_Icon_Icon, {
27417
+ className: style_module.icon
27418
+ }, /*#__PURE__*/react.createElement("i", {
27419
+ className: "fas fa-code"
27420
+ })), /*#__PURE__*/react.createElement(Typography_Typography, {
27421
+ style: {
27422
+ marginLeft: 15
27423
+ }
27424
+ }, "Integrate Buttonizer on a custom site")), /*#__PURE__*/react.createElement(AccordionDetails_AccordionDetails, {
27425
+ className: style_module.details
27426
+ }, /*#__PURE__*/react.createElement(Typography_Typography, {
27427
+ variant: "body1"
27428
+ }, "Integrating Buttonizer is easy! Paste the following short code on the footer your website."), /*#__PURE__*/react.createElement(CodeSnippet, {
27429
+ identifier: identifier
27430
+ }), /*#__PURE__*/react.createElement(Link_Link, {
27431
+ href: "https://community.buttonizer.pro/knowledgebase/897",
27432
+ target: "_blank",
27433
+ color: "secondary"
27434
+ }, "Need help or more information?"))), /*#__PURE__*/react.createElement(Accordion_Accordion, {
27435
+ expanded: expanded === "wordpress",
27436
+ onChange: handleChange("wordpress")
27437
+ }, /*#__PURE__*/react.createElement(AccordionSummary_AccordionSummary, {
27438
+ expandIcon: /*#__PURE__*/react.createElement(ExpandMore/* default */.Z, null),
27439
+ "aria-controls": "wordpressbh-content",
27440
+ id: "wordpressbh-header"
27441
+ }, /*#__PURE__*/react.createElement(esm_Icon_Icon, {
27442
+ className: style_module.icon
27443
+ }, /*#__PURE__*/react.createElement("i", {
27444
+ className: "fab fa-wordpress"
27445
+ })), /*#__PURE__*/react.createElement(Typography_Typography, {
27446
+ style: {
27447
+ marginLeft: 15
27448
+ }
27449
+ }, "Integrate Buttonizer on WordPress")), /*#__PURE__*/react.createElement(AccordionDetails_AccordionDetails, {
27450
+ className: style_module.details
27451
+ }, /*#__PURE__*/react.createElement("div", {
27452
+ className: style_module.important
27453
+ }, /*#__PURE__*/react.createElement(Typography_Typography, {
27454
+ variant: "body1"
27455
+ }, /*#__PURE__*/react.createElement("b", null, "Important:"), " If you already have the WordPress plugin installed, please ", /*#__PURE__*/react.createElement("b", null, "deactivate"), " before placing the install code.")), /*#__PURE__*/react.createElement(Typography_Typography, {
27456
+ variant: "body1"
27457
+ }, "Integrating Buttonizer into your WordPress website is easy!"), /*#__PURE__*/react.createElement(Typography_Typography, {
27458
+ variant: "body1",
27459
+ style: {
27460
+ marginTop: 15
27461
+ }
27462
+ }, "Install a", " ", /*#__PURE__*/react.createElement(Link_Link, {
27463
+ href: "https://wordpress.org/plugins/header-footer/",
27464
+ targt: "_blank",
27465
+ color: "secondary",
27466
+ target: "_blank"
27467
+ }, "Headers & Footers"), " ", "plugin (or a similar plugin). Then, open the settings and paste the following short code to the Footer section."), /*#__PURE__*/react.createElement(CodeSnippet, {
27468
+ identifier: identifier
27469
+ }), /*#__PURE__*/react.createElement(Link_Link, {
27470
+ href: "https://community.buttonizer.pro/knowledgebase/897",
27471
+ target: "_blank",
27472
+ color: "secondary"
27473
+ }, "Need help or more information?"))), /*#__PURE__*/react.createElement(Accordion_Accordion, {
27474
+ expanded: expanded === "developer",
27475
+ onChange: handleChange("developer")
27476
+ }, /*#__PURE__*/react.createElement(AccordionSummary_AccordionSummary, {
27477
+ expandIcon: /*#__PURE__*/react.createElement(ExpandMore/* default */.Z, null),
27478
+ "aria-controls": "developerbh-content",
27479
+ id: "developerbh-header"
27480
+ }, /*#__PURE__*/react.createElement(esm_Icon_Icon, {
27481
+ className: style_module.icon
27482
+ }, /*#__PURE__*/react.createElement("i", {
27483
+ className: "far fa-envelope"
27484
+ })), /*#__PURE__*/react.createElement(Typography_Typography, {
27485
+ style: {
27486
+ marginLeft: 15
27487
  }
27488
+ }, "Send install instructions to my developer")), /*#__PURE__*/react.createElement(AccordionDetails_AccordionDetails, {
27489
+ className: style_module.details
27490
+ }, /*#__PURE__*/react.createElement(Typography_Typography, {
27491
+ variant: "body1"
27492
+ }, "Aren't you familiar with adding scripts to your website? Or do you have a developer wizard? Great! Your developer knows what to do with our integration script."), /*#__PURE__*/react.createElement(Typography_Typography, {
27493
+ variant: "body1",
27494
+ style: {
27495
+ marginTop: 15
27496
  }
27497
+ }, "Copy the link below and send it to your developer", " ", /*#__PURE__*/react.createElement(Link_Link, {
27498
+ href: "mailto:?subject=Install%20Buttonizer&body=Buttonizer%20Integration%20Installation%20Instructions:%20".concat(encodeURI("".concat(window.buttonizer_admin.admin, "/integrate/").concat(identifier))),
27499
+ color: "secondary"
27500
+ }, "per email"), " ", "or chat. This page contains information about your integration."), /*#__PURE__*/react.createElement(esm_TextField_TextField, {
27501
+ variant: "outlined",
27502
+ value: "".concat(window.buttonizer_admin.admin, "/integrate/").concat(identifier),
27503
+ style: {
27504
+ marginTop: 15,
27505
+ marginBottom: 15
27506
+ },
27507
+ label: "Integrate Buttonizer information link",
27508
+ fullWidth: true,
27509
+ onClick: function onClick(e) {
27510
+ e.target.focus();
27511
+ e.target.select();
27512
+ },
27513
+ inputProps: {
27514
+ readOnly: true
27515
+ }
27516
+ }), /*#__PURE__*/react.createElement(Link_Link, {
27517
+ href: "".concat(window.buttonizer_admin.admin, "/integrate/").concat(identifier),
27518
+ target: "_blank",
27519
+ color: "secondary"
27520
+ }, "Preview integration information page"))), expanded === null && /*#__PURE__*/react.createElement(Typography_Typography, {
27521
+ variant: "body1",
27522
+ style: {
27523
+ marginTop: 25,
27524
+ textAlign: "center"
27525
  }
27526
+ }, "Select one of the categories above to continue."));
27527
+ }
27528
+ ;// CONCATENATED MODULE: ./src/js/dashboard/Components/Bar/PublishButton/PublishButton.js
27529
+ function PublishButton_slicedToArray(arr, i) { return PublishButton_arrayWithHoles(arr) || PublishButton_iterableToArrayLimit(arr, i) || PublishButton_unsupportedIterableToArray(arr, i) || PublishButton_nonIterableRest(); }
27530
 
27531
+ function PublishButton_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
 
 
 
 
27532
 
27533
+ function PublishButton_unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return PublishButton_arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return PublishButton_arrayLikeToArray(o, minLen); }
 
 
27534
 
27535
+ function PublishButton_arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
 
 
 
 
 
 
 
27536
 
27537
+ function PublishButton_iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27538
 
27539
+ function PublishButton_arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27540
 
 
 
 
 
27541
 
 
 
 
 
 
 
 
27542
 
27543
+ // import InsightsIcon from "@material-ui/icons/Insights";
27544
+ // import HistoryIcon from "@material-ui/icons/History";
 
27545
 
27546
+ // import BarChartIcon from "@material-ui/icons/BarChart";
 
 
27547
 
 
 
 
 
27548
 
 
 
 
 
 
 
 
 
 
 
 
 
27549
 
 
 
 
 
 
 
27550
 
 
27551
 
 
 
27552
 
 
 
 
27553
 
27554
+ function PublishButton(_ref) {
27555
+ var hasChanges = _ref.hasChanges;
27556
 
27557
+ var _useState = (0,react.useState)(false),
27558
+ _useState2 = PublishButton_slicedToArray(_useState, 2),
27559
+ isPublishing = _useState2[0],
27560
+ setIsPublishing = _useState2[1];
27561
 
27562
+ var _useState3 = (0,react.useState)(false),
27563
+ _useState4 = PublishButton_slicedToArray(_useState3, 2),
27564
+ isPublished = _useState4[0],
27565
+ setIsPublished = _useState4[1];
27566
 
27567
+ var _useState5 = (0,react.useState)(false),
27568
+ _useState6 = PublishButton_slicedToArray(_useState5, 2),
27569
+ showIntegrateDialog = _useState6[0],
27570
+ setShowIntegrateDialog = _useState6[1];
 
 
 
27571
 
27572
+ var _useState7 = (0,react.useState)(false),
27573
+ _useState8 = PublishButton_slicedToArray(_useState7, 2),
27574
+ showedIntegrateDialog = _useState8[0],
27575
+ setShowedIntegrateDialog = _useState8[1];
27576
 
27577
+ var _useState9 = (0,react.useState)(null),
27578
+ _useState10 = PublishButton_slicedToArray(_useState9, 2),
27579
+ menuAnchor = _useState10[0],
27580
+ setMenuAnchor = _useState10[1];
27581
 
27582
+ var buttonRef = (0,react.useRef)();
27583
+
27584
+ function text() {
27585
+ if (isPublishing) {
27586
+ return translate_translate("common.publishing");
27587
+ } else if (isPublished) {
27588
+ return translate_translate("common.published");
27589
  } else {
27590
+ return translate_translate("common.publish");
 
 
 
 
 
 
 
 
 
 
27591
  }
27592
  }
27593
+ /**
27594
+ * Publish buttons
27595
+ */
27596
 
 
 
 
 
27597
 
27598
+ function publish() {
27599
+ if (hasChanges === false) {
27600
+ setIsPublished(true);
27601
+ setTimeout(function () {
27602
+ setIsPublished(false);
27603
 
27604
+ if (app.initializedWithWelcome && !showedIntegrateDialog) {
27605
+ setShowedIntegrateDialog(true);
27606
+ setShowIntegrateDialog(true);
27607
+ }
27608
+ }, 1000);
27609
+ return;
27610
  }
 
27611
 
27612
+ setIsPublishing(true);
27613
+ apiRequest("/publish", {
27614
+ method: "POST",
27615
+ data: {
27616
+ nonce: buttonizer_admin.nonce
27617
+ }
27618
+ }).then(function (_ref2) {
27619
+ var status = _ref2.status,
27620
+ message = _ref2.message;
27621
+ // Done publishing
27622
+ setIsPublishing(false); // Error?
27623
 
27624
+ if (status === "error") {
27625
+ app.loader.hide();
27626
+ app.error({
27627
+ message: message
27628
+ });
27629
+ return;
27630
+ }
27631
 
27632
+ if (app.initializedWithWelcome && !showedIntegrateDialog) {
27633
+ setShowedIntegrateDialog(true);
27634
+ setShowIntegrateDialog(true);
27635
+ }
27636
 
27637
+ app.setHasChanges(false); // Published!
 
 
27638
 
27639
+ setIsPublished(true); // Hide published message
 
27640
 
27641
+ setTimeout(function () {
27642
+ setIsPublished(false);
27643
+ }, 3000);
27644
+ })["catch"](function (_ref3) {
27645
+ var code = _ref3.code;
27646
+ setIsPublishing(false); // Lost internet connection
27647
+
27648
+ if (code === 0) {
27649
+ // app.showDialog(
27650
+ // ConfirmDialog.create({
27651
+ // title: "Lost internet",
27652
+ // buttons: [
27653
+ // {
27654
+ // label: window.Buttonizer.translate("modal.close"),
27655
+ // value: "close",
27656
+ // },
27657
+ // ],
27658
+ // children: (
27659
+ // <>
27660
+ // <p>
27661
+ // You've lost your internet connection. Please try again when
27662
+ // you have your internet back!
27663
+ // </p>
27664
+ // </>
27665
+ // ),
27666
+ // })
27667
+ // );
27668
+ return;
27669
+ } // app.showDialog(
27670
+ // ConfirmDialog.create({
27671
+ // title: "Something went wrong",
27672
+ // buttons: [
27673
+ // {
27674
+ // label: window.Buttonizer.translate("modal.close"),
27675
+ // value: "close",
27676
+ // },
27677
+ // ],
27678
+ // children: (
27679
+ // <>
27680
+ // <p>Seems like something went wrong.</p>
27681
+ // </>
27682
+ // ),
27683
+ // })
27684
+ // );
27685
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27686
  });
27687
+ } // Show standalone menu
27688
 
 
 
 
 
 
 
 
 
 
27689
 
27690
+ if (window.buttonizer_admin.is_stand_alone) {
27691
+ return /*#__PURE__*/react.createElement(react.Fragment, null, /*#__PURE__*/react.createElement(IntegrateStandaloneDialog, {
27692
+ opened: showIntegrateDialog,
27693
+ onClose: function onClose() {
27694
+ return setShowIntegrateDialog(false);
27695
+ },
27696
+ disableWelcome: app.initializedWithWelcome
27697
+ }), /*#__PURE__*/react.createElement(Menu_Menu, {
27698
+ anchorEl: menuAnchor,
27699
+ open: Boolean(menuAnchor),
27700
+ onClose: function onClose() {
27701
+ return setMenuAnchor(null);
27702
+ },
27703
+ anchorOrigin: {
27704
+ vertical: "top",
27705
+ horizontal: "right"
27706
+ },
27707
+ transformOrigin: {
27708
+ vertical: "bottom",
27709
+ horizontal: "right"
27710
+ },
27711
+ onClick: function onClick() {
27712
+ return setMenuAnchor(null);
27713
  }
27714
+ }, /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
27715
+ onClick: function onClick() {
27716
+ return setShowIntegrateDialog(true);
27717
+ }
27718
+ }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Code/* default */.Z, {
27719
+ fontSize: "small"
27720
+ })), /*#__PURE__*/react.createElement(ListItemText_ListItemText, null, "Integrate Buttonizer")), /*#__PURE__*/react.createElement(MenuItem_MenuItem, {
27721
+ component: "a",
27722
+ href: "".concat(window.buttonizer_admin.admin, "/sites/").concat(window.buttonizer_admin.siteId),
27723
+ target: "_blank"
27724
+ }, /*#__PURE__*/react.createElement(ListItemIcon_ListItemIcon, null, /*#__PURE__*/react.createElement(Settings/* default */.Z, {
27725
+ fontSize: "small"
27726
+ })), /*#__PURE__*/react.createElement(ListItemText_ListItemText, null, "Site configuration"))), isPublishing && /*#__PURE__*/react.createElement(CircularProgress_CircularProgress, {
27727
+ size: 20,
27728
+ style: {
27729
+ verticalAlign: "middle",
27730
+ margin: "0 20px"
27731
+ }
27732
+ }), /*#__PURE__*/react.createElement(ButtonGroup_ButtonGroup, {
27733
+ variant: "contained",
27734
+ ref: buttonRef,
27735
+ style: {
27736
+ verticalAlign: "middle"
27737
+ }
27738
+ }, !isPublishing && /*#__PURE__*/react.createElement(esm_Button_Button, {
27739
+ onClick: function onClick() {
27740
+ return publish();
27741
+ },
27742
+ disabled: isPublishing,
27743
+ variant: "contained",
27744
+ color: "primary",
27745
+ "data-testid": "publish-button",
27746
+ className: "MuiButton-Publish"
27747
+ }, text()), /*#__PURE__*/react.createElement(esm_Button_Button, {
27748
+ size: "small",
27749
+ color: "primary" // aria-controls={opened ? "split-button-menu" : undefined}
27750
+ // aria-expanded={opened ? "true" : undefined}
27751
+ ,
27752
+ "aria-label": "select merge strategy",
27753
+ "aria-haspopup": "menu",
27754
+ onClick: function onClick(e) {
27755
+ return setMenuAnchor(e.currentTarget);
27756
+ },
27757
+ className: "MuiButton-PublishGroup"
27758
+ }, /*#__PURE__*/react.createElement(ArrowDropDown/* default */.Z, null))));
27759
  }
27760
 
27761
+ return /*#__PURE__*/react.createElement(esm_Button_Button, {
27762
+ onClick: function onClick() {
27763
+ return publish();
27764
+ },
27765
+ disabled: isPublishing || hasChanges === false,
27766
+ variant: "contained",
27767
+ color: "primary",
27768
+ "data-testid": "publish-button",
27769
+ className: "MuiButton-Publish"
27770
+ }, text());
27771
+ }
27772
 
27773
+ /* harmony default export */ var PublishButton_PublishButton = (connect(function (state) {
27774
+ return {
27775
+ hasChanges: state.misc.hasChanges
27776
+ };
27777
+ })(PublishButton));
27778
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
27779
+ function getBoundingClientRect(element) {
27780
+ var rect = element.getBoundingClientRect();
27781
+ return {
27782
+ width: rect.width,
27783
+ height: rect.height,
27784
+ top: rect.top,
27785
+ right: rect.right,
27786
+ bottom: rect.bottom,
27787
+ left: rect.left,
27788
+ x: rect.left,
27789
+ y: rect.top
27790
+ };
27791
+ }
27792
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js
27793
+ function getWindow(node) {
27794
+ if (node == null) {
27795
+ return window;
27796
  }
27797
 
27798
+ if (node.toString() !== '[object Window]') {
27799
+ var ownerDocument = node.ownerDocument;
27800
+ return ownerDocument ? ownerDocument.defaultView || window : window;
27801
  }
27802
 
27803
+ return node;
27804
+ }
27805
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
27806
 
27807
+ function getWindowScroll(node) {
27808
+ var win = getWindow(node);
27809
+ var scrollLeft = win.pageXOffset;
27810
+ var scrollTop = win.pageYOffset;
27811
+ return {
27812
+ scrollLeft: scrollLeft,
27813
+ scrollTop: scrollTop
27814
+ };
27815
+ }
27816
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
27817
 
27818
+
27819
+ function instanceOf_isElement(node) {
27820
+ var OwnElement = getWindow(node).Element;
27821
+ return node instanceof OwnElement || node instanceof Element;
27822
+ }
27823
+
27824
+ function isHTMLElement(node) {
27825
+ var OwnElement = getWindow(node).HTMLElement;
27826
+ return node instanceof OwnElement || node instanceof HTMLElement;
27827
+ }
27828
+
27829
+ function isShadowRoot(node) {
27830
+ // IE 11 has no ShadowRoot
27831
+ if (typeof ShadowRoot === 'undefined') {
27832
+ return false;
27833
  }
27834
 
27835
+ var OwnElement = getWindow(node).ShadowRoot;
27836
+ return node instanceof OwnElement || node instanceof ShadowRoot;
27837
+ }
27838
 
 
 
 
 
27839
 
27840
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
27841
+ function getHTMLElementScroll(element) {
27842
+ return {
27843
+ scrollLeft: element.scrollLeft,
27844
+ scrollTop: element.scrollTop
27845
+ };
27846
+ }
27847
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
27848
 
 
 
 
 
27849
 
 
 
 
 
 
27850
 
 
 
 
27851
 
27852
+ function getNodeScroll(node) {
27853
+ if (node === getWindow(node) || !isHTMLElement(node)) {
27854
+ return getWindowScroll(node);
27855
+ } else {
27856
+ return getHTMLElementScroll(node);
 
 
27857
  }
27858
+ }
27859
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
27860
+ function getNodeName(element) {
27861
+ return element ? (element.nodeName || '').toLowerCase() : null;
27862
+ }
27863
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
27864
 
27865
+ function getDocumentElement(element) {
27866
+ // $FlowFixMe[incompatible-return]: assume body is always available
27867
+ return ((instanceOf_isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
27868
+ element.document) || window.document).documentElement;
 
 
 
 
 
 
 
 
 
 
27869
  }
27870
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
27871
 
 
 
 
 
 
 
27872
 
27873
 
27874
+ function getWindowScrollBarX(element) {
27875
+ // If <html> has a CSS width greater than the viewport, then this will be
27876
+ // incorrect for RTL.
27877
+ // Popper 1 is broken in this case and never had a bug report so let's assume
27878
+ // it's not an issue. I don't think anyone ever specifies width on <html>
27879
+ // anyway.
27880
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
27881
+ // this (e.g. Edge 2019, IE11, Safari)
27882
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
27883
+ }
27884
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
27885
 
27886
+ function getComputedStyle_getComputedStyle(element) {
27887
+ return getWindow(element).getComputedStyle(element);
27888
+ }
27889
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
 
 
 
 
 
27890
 
27891
+ function isScrollParent(element) {
27892
+ // Firefox wants us to check `-x` and `-y` variations as well
27893
+ var _getComputedStyle = getComputedStyle_getComputedStyle(element),
27894
+ overflow = _getComputedStyle.overflow,
27895
+ overflowX = _getComputedStyle.overflowX,
27896
+ overflowY = _getComputedStyle.overflowY;
27897
 
27898
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
27899
+ }
27900
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
27901
 
 
 
 
27902
 
 
 
 
 
27903
 
 
27904
 
 
 
 
 
 
 
 
 
 
27905
 
 
 
 
 
 
27906
 
27907
+ // Returns the composite rect of an element relative to its offsetParent.
27908
+ // Composite means it takes into account transforms as well as layout.
 
 
 
 
 
 
27909
 
27910
+ function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
27911
+ if (isFixed === void 0) {
27912
+ isFixed = false;
 
 
 
 
 
 
 
 
 
27913
  }
27914
 
27915
+ var documentElement = getDocumentElement(offsetParent);
27916
+ var rect = getBoundingClientRect(elementOrVirtualElement);
27917
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
27918
+ var scroll = {
27919
+ scrollLeft: 0,
27920
+ scrollTop: 0
27921
+ };
27922
+ var offsets = {
27923
+ x: 0,
27924
+ y: 0
27925
+ };
 
 
 
 
 
 
 
27926
 
27927
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
27928
+ if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
27929
+ isScrollParent(documentElement)) {
27930
+ scroll = getNodeScroll(offsetParent);
27931
+ }
27932
 
27933
+ if (isHTMLElement(offsetParent)) {
27934
+ offsets = getBoundingClientRect(offsetParent);
27935
+ offsets.x += offsetParent.clientLeft;
27936
+ offsets.y += offsetParent.clientTop;
27937
+ } else if (documentElement) {
27938
+ offsets.x = getWindowScrollBarX(documentElement);
27939
+ }
27940
  }
27941
 
27942
+ return {
27943
+ x: rect.left + scroll.scrollLeft - offsets.x,
27944
+ y: rect.top + scroll.scrollTop - offsets.y,
27945
+ width: rect.width,
27946
+ height: rect.height
27947
+ };
27948
+ }
27949
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
27950
+ // Returns the layout rect of an element relative to its offsetParent. Layout
27951
+ // means it doesn't take into account transforms.
27952
 
27953
+ function getLayoutRect(element) {
27954
+ var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.
27955
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
 
27956
 
27957
+ var width = element.offsetWidth;
27958
+ var height = element.offsetHeight;
27959
+
27960
+ if (Math.abs(clientRect.width - width) <= 1) {
27961
+ width = clientRect.width;
27962
  }
27963
 
27964
+ if (Math.abs(clientRect.height - height) <= 1) {
27965
+ height = clientRect.height;
27966
  }
27967
 
27968
+ return {
27969
+ x: element.offsetLeft,
27970
+ y: element.offsetTop,
27971
+ width: width,
27972
+ height: height
 
 
 
 
 
 
 
 
 
 
27973
  };
 
27974
  }
27975
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
27976
 
27977
 
27978
 
27979
+ function getParentNode(element) {
27980
+ if (getNodeName(element) === 'html') {
27981
+ return element;
27982
+ }
27983
 
27984
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
27985
+ // $FlowFixMe[incompatible-return]
27986
+ // $FlowFixMe[prop-missing]
27987
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
27988
+ element.parentNode || ( // DOM Element detected
27989
+ isShadowRoot(element) ? element.host : null) || // ShadowRoot detected
27990
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
27991
+ getDocumentElement(element) // fallback
27992
 
27993
+ );
27994
+ }
27995
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
27996
 
27997
 
27998
 
 
 
27999
 
28000
+ function getScrollParent_getScrollParent(node) {
28001
+ if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {
28002
+ // $FlowFixMe[incompatible-return]: assume body is always available
28003
+ return node.ownerDocument.body;
28004
+ }
28005
 
28006
+ if (isHTMLElement(node) && isScrollParent(node)) {
28007
+ return node;
 
 
 
28008
  }
 
28009
 
28010
+ return getScrollParent_getScrollParent(getParentNode(node));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28011
  }
28012
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
28013
 
 
 
 
28014
 
 
 
28015
 
 
28016
 
28017
+ /*
28018
+ given a DOM element, return the list of all scroll parents, up the list of ancesors
28019
+ until we get to the top window object. This list is what we attach scroll listeners
28020
+ to, because if any of these parent elements scroll, we'll need to re-calculate the
28021
+ reference element's position.
28022
+ */
28023
 
28024
+ function listScrollParents(element, list) {
28025
+ var _element$ownerDocumen;
28026
 
28027
+ if (list === void 0) {
28028
+ list = [];
28029
+ }
 
28030
 
28031
+ var scrollParent = getScrollParent_getScrollParent(element);
28032
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
28033
+ var win = getWindow(scrollParent);
28034
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
28035
+ var updatedList = list.concat(target);
28036
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
28037
+ updatedList.concat(listScrollParents(getParentNode(target)));
28038
+ }
28039
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
28040
 
28041
+ function isTableElement(element) {
28042
+ return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;
28043
+ }
28044
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
28045
 
 
 
28046
 
 
 
 
 
 
28047
 
 
 
 
 
28048
 
 
28049
 
 
28050
 
 
 
 
 
 
 
28051
 
28052
+ function getTrueOffsetParent(element) {
28053
+ if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837
28054
+ getComputedStyle_getComputedStyle(element).position === 'fixed') {
28055
+ return null;
28056
+ }
28057
 
28058
+ return element.offsetParent;
28059
+ } // `.offsetParent` reports `null` for fixed elements, while absolute elements
28060
+ // return the containing block
28061
 
 
28062
 
28063
+ function getContainingBlock(element) {
28064
+ var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;
28065
+ var isIE = navigator.userAgent.indexOf('Trident') !== -1;
28066
 
28067
+ if (isIE && isHTMLElement(element)) {
28068
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
28069
+ var elementCss = getComputedStyle_getComputedStyle(element);
28070
 
28071
+ if (elementCss.position === 'fixed') {
28072
+ return null;
28073
+ }
28074
+ }
28075
 
28076
+ var currentNode = getParentNode(element);
 
28077
 
28078
+ while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {
28079
+ var css = getComputedStyle_getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that
28080
+ // create a containing block.
28081
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
 
 
28082
 
28083
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
28084
+ return currentNode;
28085
+ } else {
28086
+ currentNode = currentNode.parentNode;
28087
  }
28088
+ }
28089
 
28090
+ return null;
28091
+ } // Gets the closest ancestor positioned element. Handles some edge cases,
28092
+ // such as table ancestors and cross browser bugs.
28093
 
 
 
 
 
28094
 
28095
+ function getOffsetParent(element) {
28096
+ var window = getWindow(element);
28097
+ var offsetParent = getTrueOffsetParent(element);
 
28098
 
28099
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle_getComputedStyle(offsetParent).position === 'static') {
28100
+ offsetParent = getTrueOffsetParent(offsetParent);
28101
+ }
28102
 
28103
+ if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle_getComputedStyle(offsetParent).position === 'static')) {
28104
+ return window;
28105
+ }
 
 
28106
 
28107
+ return offsetParent || getContainingBlock(element) || window;
28108
+ }
28109
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/enums.js
28110
+ var enums_top = 'top';
28111
+ var bottom = 'bottom';
28112
+ var right = 'right';
28113
+ var left = 'left';
28114
+ var auto = 'auto';
28115
+ var basePlacements = [enums_top, bottom, right, left];
28116
+ var start = 'start';
28117
+ var end = 'end';
28118
+ var clippingParents = 'clippingParents';
28119
+ var viewport = 'viewport';
28120
+ var popper = 'popper';
28121
+ var reference = 'reference';
28122
+ var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
28123
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
28124
+ }, []);
28125
+ var enums_placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
28126
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
28127
+ }, []); // modifiers that need to read the DOM
28128
 
28129
+ var beforeRead = 'beforeRead';
28130
+ var read = 'read';
28131
+ var afterRead = 'afterRead'; // pure-logic modifiers
28132
 
28133
+ var beforeMain = 'beforeMain';
28134
+ var main = 'main';
28135
+ var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
28136
 
28137
+ var beforeWrite = 'beforeWrite';
28138
+ var write = 'write';
28139
+ var afterWrite = 'afterWrite';
28140
+ var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
28141
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/orderModifiers.js
28142
+ // source: https://stackoverflow.com/questions/49875255
28143
 
28144
+ function order(modifiers) {
28145
+ var map = new Map();
28146
+ var visited = new Set();
28147
+ var result = [];
28148
+ modifiers.forEach(function (modifier) {
28149
+ map.set(modifier.name, modifier);
28150
+ }); // On visiting object, check for its dependencies and visit them recursively
28151
 
28152
+ function sort(modifier) {
28153
+ visited.add(modifier.name);
28154
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
28155
+ requires.forEach(function (dep) {
28156
+ if (!visited.has(dep)) {
28157
+ var depModifier = map.get(dep);
28158
 
28159
+ if (depModifier) {
28160
+ sort(depModifier);
28161
+ }
28162
+ }
28163
+ });
28164
+ result.push(modifier);
28165
+ }
28166
+
28167
+ modifiers.forEach(function (modifier) {
28168
+ if (!visited.has(modifier.name)) {
28169
+ // check for visited object
28170
+ sort(modifier);
28171
+ }
28172
+ });
28173
+ return result;
28174
+ }
28175
 
28176
+ function orderModifiers(modifiers) {
28177
+ // order based on dependencies
28178
+ var orderedModifiers = order(modifiers); // order based on phase
28179
+
28180
+ return modifierPhases.reduce(function (acc, phase) {
28181
+ return acc.concat(orderedModifiers.filter(function (modifier) {
28182
+ return modifier.phase === phase;
28183
+ }));
28184
+ }, []);
28185
+ }
28186
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/debounce.js
28187
+ function debounce_debounce(fn) {
28188
+ var pending;
28189
+ return function () {
28190
+ if (!pending) {
28191
+ pending = new Promise(function (resolve) {
28192
+ Promise.resolve().then(function () {
28193
+ pending = undefined;
28194
+ resolve(fn());
28195
+ });
28196
+ });
28197
+ }
28198
 
28199
+ return pending;
28200
+ };
28201
+ }
28202
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergeByName.js
28203
+ function mergeByName(modifiers) {
28204
+ var merged = modifiers.reduce(function (merged, current) {
28205
+ var existing = merged[current.name];
28206
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
28207
+ options: Object.assign({}, existing.options, current.options),
28208
+ data: Object.assign({}, existing.data, current.data)
28209
+ }) : current;
28210
+ return merged;
28211
+ }, {}); // IE11 does not support Object.values
28212
 
28213
+ return Object.keys(merged).map(function (key) {
28214
+ return merged[key];
28215
+ });
28216
+ }
28217
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/createPopper.js
28218
 
28219
 
28220
 
28225
 
28226
 
28227
 
 
28228
 
 
 
 
 
 
28229
 
 
 
 
28230
 
 
28231
 
28232
+ var INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';
28233
+ var INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';
28234
+ var DEFAULT_OPTIONS = {
28235
+ placement: 'bottom',
28236
+ modifiers: [],
28237
+ strategy: 'absolute'
28238
  };
28239
 
28240
+ function areValidElements() {
28241
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
28242
+ args[_key] = arguments[_key];
28243
+ }
28244
 
28245
+ return !args.some(function (element) {
28246
+ return !(element && typeof element.getBoundingClientRect === 'function');
28247
+ });
28248
+ }
28249
 
28250
+ function popperGenerator(generatorOptions) {
28251
+ if (generatorOptions === void 0) {
28252
+ generatorOptions = {};
28253
+ }
28254
 
28255
+ var _generatorOptions = generatorOptions,
28256
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
28257
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
28258
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
28259
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
28260
+ return function createPopper(reference, popper, options) {
28261
+ if (options === void 0) {
28262
+ options = defaultOptions;
28263
+ }
28264
+
28265
+ var state = {
28266
+ placement: 'bottom',
28267
+ orderedModifiers: [],
28268
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
28269
+ modifiersData: {},
28270
+ elements: {
28271
+ reference: reference,
28272
+ popper: popper
28273
+ },
28274
+ attributes: {},
28275
+ styles: {}
28276
  };
28277
+ var effectCleanupFns = [];
28278
+ var isDestroyed = false;
28279
+ var instance = {
28280
+ state: state,
28281
+ setOptions: function setOptions(options) {
28282
+ cleanupModifierEffects();
28283
+ state.options = Object.assign({}, defaultOptions, state.options, options);
28284
+ state.scrollParents = {
28285
+ reference: instanceOf_isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],
28286
+ popper: listScrollParents(popper)
28287
+ }; // Orders the modifiers based on their dependencies and `phase`
28288
+ // properties
28289
 
28290
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
 
28291
 
28292
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
28293
+ return m.enabled;
28294
+ }); // Validate the provided modifiers so that the consumer will get warned
28295
+ // if one of the modifiers is invalid for any reason
 
 
 
 
28296
 
28297
+ if (false) { var _getComputedStyle, marginTop, marginRight, marginBottom, marginLeft, flipModifier, modifiers; }
 
28298
 
28299
+ runModifierEffects();
28300
+ return instance.update();
28301
+ },
28302
+ // Sync update – it will always be executed, even if not necessary. This
28303
+ // is useful for low frequency updates where sync behavior simplifies the
28304
+ // logic.
28305
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
28306
+ // prefer the async Popper#update method
28307
+ forceUpdate: function forceUpdate() {
28308
+ if (isDestroyed) {
28309
+ return;
28310
  }
 
 
28311
 
28312
+ var _state$elements = state.elements,
28313
+ reference = _state$elements.reference,
28314
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
28315
+ // anymore
 
 
 
28316
 
28317
+ if (!areValidElements(reference, popper)) {
28318
+ if (false) {}
 
 
 
 
28319
 
28320
+ return;
28321
+ } // Store the reference and popper rects to be read by modifiers
 
28322
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28323
 
28324
+ state.rects = {
28325
+ reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),
28326
+ popper: getLayoutRect(popper)
28327
+ }; // Modifiers have the ability to reset the current update cycle. The
28328
+ // most common use case for this is the `flip` modifier changing the
28329
+ // placement, which then needs to re-run all the modifiers, because the
28330
+ // logic was previously ran for the previous placement and is therefore
28331
+ // stale/incorrect
28332
 
28333
+ state.reset = false;
28334
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
28335
+ // is filled with the initial data specified by the modifier. This means
28336
+ // it doesn't persist and is fresh on each update.
28337
+ // To ensure persistent data, use `${name}#persistent`
28338
 
28339
+ state.orderedModifiers.forEach(function (modifier) {
28340
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
28341
+ });
28342
+ var __debug_loops__ = 0;
28343
 
28344
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
28345
+ if (false) {}
 
 
28346
 
28347
+ if (state.reset === true) {
28348
+ state.reset = false;
28349
+ index = -1;
28350
+ continue;
28351
+ }
28352
 
28353
+ var _state$orderedModifie = state.orderedModifiers[index],
28354
+ fn = _state$orderedModifie.fn,
28355
+ _state$orderedModifie2 = _state$orderedModifie.options,
28356
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
28357
+ name = _state$orderedModifie.name;
28358
 
28359
+ if (typeof fn === 'function') {
28360
+ state = fn({
28361
+ state: state,
28362
+ options: _options,
28363
+ name: name,
28364
+ instance: instance
28365
+ }) || state;
28366
+ }
28367
+ }
28368
+ },
28369
+ // Async and optimistically optimized update – it will not be executed if
28370
+ // not necessary (debounced to run at most once-per-tick)
28371
+ update: debounce_debounce(function () {
28372
+ return new Promise(function (resolve) {
28373
+ instance.forceUpdate();
28374
+ resolve(state);
28375
+ });
28376
+ }),
28377
+ destroy: function destroy() {
28378
+ cleanupModifierEffects();
28379
+ isDestroyed = true;
28380
+ }
28381
+ };
28382
 
28383
+ if (!areValidElements(reference, popper)) {
28384
+ if (false) {}
28385
 
28386
+ return instance;
28387
+ }
 
 
 
 
28388
 
28389
+ instance.setOptions(options).then(function (state) {
28390
+ if (!isDestroyed && options.onFirstUpdate) {
28391
+ options.onFirstUpdate(state);
28392
+ }
28393
+ }); // Modifiers have the ability to execute arbitrary code before the first
28394
+ // update cycle runs. They will be executed in the same order as the update
28395
+ // cycle. This is useful when a modifier adds some persistent data that
28396
+ // other modifiers need to use, but the modifier is run after the dependent
28397
+ // one.
28398
 
28399
+ function runModifierEffects() {
28400
+ state.orderedModifiers.forEach(function (_ref3) {
28401
+ var name = _ref3.name,
28402
+ _ref3$options = _ref3.options,
28403
+ options = _ref3$options === void 0 ? {} : _ref3$options,
28404
+ effect = _ref3.effect;
28405
 
28406
+ if (typeof effect === 'function') {
28407
+ var cleanupFn = effect({
28408
+ state: state,
28409
+ name: name,
28410
+ instance: instance,
28411
+ options: options
28412
+ });
28413
 
28414
+ var noopFn = function noopFn() {};
 
 
28415
 
28416
+ effectCleanupFns.push(cleanupFn || noopFn);
28417
+ }
28418
+ });
28419
+ }
28420
 
28421
+ function cleanupModifierEffects() {
28422
+ effectCleanupFns.forEach(function (fn) {
28423
+ return fn();
28424
+ });
28425
+ effectCleanupFns = [];
28426
+ }
28427
 
28428
+ return instance;
 
28429
  };
28430
+ }
28431
+ var createPopper = /*#__PURE__*/(/* unused pure expression or super */ null && (popperGenerator())); // eslint-disable-next-line import/no-unused-modules
28432
 
 
 
 
28433
 
28434
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js
28435
+ // eslint-disable-next-line import/no-unused-modules
 
28436
 
28437
+ var passive = {
28438
+ passive: true
28439
+ };
28440
 
28441
+ function effect(_ref) {
28442
+ var state = _ref.state,
28443
+ instance = _ref.instance,
28444
+ options = _ref.options;
28445
+ var _options$scroll = options.scroll,
28446
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
28447
+ _options$resize = options.resize,
28448
+ resize = _options$resize === void 0 ? true : _options$resize;
28449
+ var window = getWindow(state.elements.popper);
28450
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
28451
 
28452
+ if (scroll) {
28453
+ scrollParents.forEach(function (scrollParent) {
28454
+ scrollParent.addEventListener('scroll', instance.update, passive);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28455
  });
28456
+ }
 
 
 
 
 
 
 
 
 
 
 
28457
 
28458
+ if (resize) {
28459
+ window.addEventListener('resize', instance.update, passive);
 
28460
  }
28461
 
28462
+ return function () {
28463
+ if (scroll) {
28464
+ scrollParents.forEach(function (scrollParent) {
28465
+ scrollParent.removeEventListener('scroll', instance.update, passive);
28466
+ });
28467
+ }
28468
 
28469
+ if (resize) {
28470
+ window.removeEventListener('resize', instance.update, passive);
28471
+ }
28472
+ };
28473
+ } // eslint-disable-next-line import/no-unused-modules
28474
 
 
 
 
 
28475
 
28476
+ /* harmony default export */ var eventListeners = ({
28477
+ name: 'eventListeners',
28478
+ enabled: true,
28479
+ phase: 'write',
28480
+ fn: function fn() {},
28481
+ effect: effect,
28482
+ data: {}
28483
+ });
28484
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js
28485
 
28486
+ function getBasePlacement(placement) {
28487
+ return placement.split('-')[0];
28488
+ }
28489
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getVariation.js
28490
+ function getVariation(placement) {
28491
+ return placement.split('-')[1];
28492
  }
28493
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
28494
+ function getMainAxisFromPlacement(placement) {
28495
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
28496
+ }
28497
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeOffsets.js
28498
 
 
 
 
28499
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28500
 
 
 
 
 
28501
 
28502
+ function computeOffsets(_ref) {
28503
+ var reference = _ref.reference,
28504
+ element = _ref.element,
28505
+ placement = _ref.placement;
28506
+ var basePlacement = placement ? getBasePlacement(placement) : null;
28507
+ var variation = placement ? getVariation(placement) : null;
28508
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
28509
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
28510
+ var offsets;
28511
 
28512
+ switch (basePlacement) {
28513
+ case enums_top:
28514
+ offsets = {
28515
+ x: commonX,
28516
+ y: reference.y - element.height
28517
+ };
28518
+ break;
 
 
 
28519
 
28520
+ case bottom:
28521
+ offsets = {
28522
+ x: commonX,
28523
+ y: reference.y + reference.height
28524
+ };
28525
+ break;
28526
 
28527
+ case right:
28528
+ offsets = {
28529
+ x: reference.x + reference.width,
28530
+ y: commonY
28531
+ };
28532
+ break;
28533
 
28534
+ case left:
28535
+ offsets = {
28536
+ x: reference.x - element.width,
28537
+ y: commonY
28538
+ };
28539
+ break;
 
 
 
 
28540
 
28541
+ default:
28542
+ offsets = {
28543
+ x: reference.x,
28544
+ y: reference.y
28545
+ };
28546
  }
28547
 
28548
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
 
 
 
 
 
28549
 
28550
+ if (mainAxis != null) {
28551
+ var len = mainAxis === 'y' ? 'height' : 'width';
 
 
28552
 
28553
+ switch (variation) {
28554
+ case start:
28555
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
28556
+ break;
 
28557
 
28558
+ case end:
28559
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
28560
+ break;
 
 
 
 
 
 
 
 
 
28561
 
28562
+ default:
28563
+ }
28564
+ }
 
 
 
 
28565
 
28566
+ return offsets;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28567
  }
28568
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
28569
 
 
 
 
28570
 
28571
+ function popperOffsets(_ref) {
28572
+ var state = _ref.state,
28573
+ name = _ref.name;
28574
+ // Offsets are the actual position the popper needs to have to be
28575
+ // properly positioned near its reference element
28576
+ // This is the most basic placement, and will be adjusted by
28577
+ // the modifiers in the next step
28578
+ state.modifiersData[name] = computeOffsets({
28579
+ reference: state.rects.reference,
28580
+ element: state.rects.popper,
28581
+ strategy: 'absolute',
28582
+ placement: state.placement
28583
+ });
28584
+ } // eslint-disable-next-line import/no-unused-modules
28585
 
28586
 
28587
+ /* harmony default export */ var modifiers_popperOffsets = ({
28588
+ name: 'popperOffsets',
28589
+ enabled: true,
28590
+ phase: 'read',
28591
+ fn: popperOffsets,
28592
+ data: {}
28593
+ });
28594
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/math.js
28595
+ var math_max = Math.max;
28596
+ var math_min = Math.min;
28597
+ var round = Math.round;
28598
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js
28599
 
 
 
 
28600
 
 
28601
 
 
 
28602
 
 
 
 
 
 
28603
 
 
 
 
 
28604
 
28605
+ // eslint-disable-next-line import/no-unused-modules
 
 
 
 
28606
 
28607
+ var unsetSides = {
28608
+ top: 'auto',
28609
+ right: 'auto',
28610
+ bottom: 'auto',
28611
+ left: 'auto'
28612
+ }; // Round the offsets to the nearest suitable subpixel based on the DPR.
28613
+ // Zooming can change the DPR, but it seems to report a value that will
28614
+ // cleanly divide the values into the appropriate subpixels.
28615
 
28616
+ function roundOffsetsByDPR(_ref) {
28617
+ var x = _ref.x,
28618
+ y = _ref.y;
28619
+ var win = window;
28620
+ var dpr = win.devicePixelRatio || 1;
28621
+ return {
28622
+ x: round(round(x * dpr) / dpr) || 0,
28623
+ y: round(round(y * dpr) / dpr) || 0
28624
  };
28625
+ }
28626
 
28627
+ function mapToStyles(_ref2) {
28628
+ var _Object$assign2;
 
 
28629
 
28630
+ var popper = _ref2.popper,
28631
+ popperRect = _ref2.popperRect,
28632
+ placement = _ref2.placement,
28633
+ offsets = _ref2.offsets,
28634
+ position = _ref2.position,
28635
+ gpuAcceleration = _ref2.gpuAcceleration,
28636
+ adaptive = _ref2.adaptive,
28637
+ roundOffsets = _ref2.roundOffsets;
28638
 
28639
+ var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,
28640
+ _ref3$x = _ref3.x,
28641
+ x = _ref3$x === void 0 ? 0 : _ref3$x,
28642
+ _ref3$y = _ref3.y,
28643
+ y = _ref3$y === void 0 ? 0 : _ref3$y;
 
28644
 
28645
+ var hasX = offsets.hasOwnProperty('x');
28646
+ var hasY = offsets.hasOwnProperty('y');
28647
+ var sideX = left;
28648
+ var sideY = enums_top;
28649
+ var win = window;
 
 
 
28650
 
28651
+ if (adaptive) {
28652
+ var offsetParent = getOffsetParent(popper);
28653
+ var heightProp = 'clientHeight';
28654
+ var widthProp = 'clientWidth';
28655
 
28656
+ if (offsetParent === getWindow(popper)) {
28657
+ offsetParent = getDocumentElement(popper);
 
 
 
28658
 
28659
+ if (getComputedStyle_getComputedStyle(offsetParent).position !== 'static') {
28660
+ heightProp = 'scrollHeight';
28661
+ widthProp = 'scrollWidth';
28662
+ }
28663
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
 
 
28664
 
28665
 
28666
+ offsetParent = offsetParent;
 
 
 
28667
 
28668
+ if (placement === enums_top) {
28669
+ sideY = bottom; // $FlowFixMe[prop-missing]
28670
 
28671
+ y -= offsetParent[heightProp] - popperRect.height;
28672
+ y *= gpuAcceleration ? 1 : -1;
28673
  }
28674
 
28675
+ if (placement === left) {
28676
+ sideX = right; // $FlowFixMe[prop-missing]
 
 
 
28677
 
28678
+ x -= offsetParent[widthProp] - popperRect.width;
28679
+ x *= gpuAcceleration ? 1 : -1;
28680
+ }
28681
+ }
28682
 
28683
+ var commonStyles = Object.assign({
28684
+ position: position
28685
+ }, adaptive && unsetSides);
28686
 
28687
+ if (gpuAcceleration) {
28688
+ var _Object$assign;
 
28689
 
28690
+ 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));
28691
  }
28692
 
28693
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
28694
+ }
28695
 
28696
+ function computeStyles(_ref4) {
28697
+ var state = _ref4.state,
28698
+ options = _ref4.options;
28699
+ var _options$gpuAccelerat = options.gpuAcceleration,
28700
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
28701
+ _options$adaptive = options.adaptive,
28702
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
28703
+ _options$roundOffsets = options.roundOffsets,
28704
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
 
28705
 
28706
+ if (false) { var transitionProperty; }
 
 
 
 
 
 
 
 
28707
 
28708
+ var commonStyles = {
28709
+ placement: getBasePlacement(state.placement),
28710
+ popper: state.elements.popper,
28711
+ popperRect: state.rects.popper,
28712
+ gpuAcceleration: gpuAcceleration
 
 
 
 
 
 
 
 
 
 
 
 
 
28713
  };
28714
 
28715
+ if (state.modifiersData.popperOffsets != null) {
28716
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
28717
+ offsets: state.modifiersData.popperOffsets,
28718
+ position: state.options.strategy,
28719
+ adaptive: adaptive,
28720
+ roundOffsets: roundOffsets
28721
+ })));
28722
+ }
28723
 
28724
+ if (state.modifiersData.arrow != null) {
28725
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
28726
+ offsets: state.modifiersData.arrow,
28727
+ position: 'absolute',
28728
+ adaptive: false,
28729
+ roundOffsets: roundOffsets
28730
+ })));
28731
+ }
28732
 
28733
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
28734
+ 'data-popper-placement': state.placement
28735
+ });
28736
+ } // eslint-disable-next-line import/no-unused-modules
28737
 
 
 
 
 
28738
 
28739
+ /* harmony default export */ var modifiers_computeStyles = ({
28740
+ name: 'computeStyles',
28741
+ enabled: true,
28742
+ phase: 'beforeWrite',
28743
+ fn: computeStyles,
28744
+ data: {}
28745
+ });
28746
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js
28747
 
28748
+ // This modifier takes the styles prepared by the `computeStyles` modifier
28749
+ // and applies them to the HTMLElements such as popper and arrow
28750
 
28751
+ function applyStyles(_ref) {
28752
+ var state = _ref.state;
28753
+ Object.keys(state.elements).forEach(function (name) {
28754
+ var style = state.styles[name] || {};
28755
+ var attributes = state.attributes[name] || {};
28756
+ var element = state.elements[name]; // arrow is optional + virtual elements
28757
 
28758
+ if (!isHTMLElement(element) || !getNodeName(element)) {
28759
+ return;
28760
+ } // Flow doesn't support to extend this property, but it's the most
28761
+ // effective way to apply styles to an HTMLElement
28762
+ // $FlowFixMe[cannot-write]
 
 
28763
 
28764
+
28765
+ Object.assign(element.style, style);
28766
+ Object.keys(attributes).forEach(function (name) {
28767
+ var value = attributes[name];
28768
+
28769
+ if (value === false) {
28770
+ element.removeAttribute(name);
28771
+ } else {
28772
+ element.setAttribute(name, value === true ? '' : value);
28773
+ }
 
 
 
28774
  });
28775
+ });
28776
+ }
28777
 
28778
+ function applyStyles_effect(_ref2) {
28779
+ var state = _ref2.state;
28780
+ var initialStyles = {
28781
+ popper: {
28782
+ position: state.options.strategy,
28783
+ left: '0',
28784
+ top: '0',
28785
+ margin: '0'
28786
+ },
28787
+ arrow: {
28788
+ position: 'absolute'
28789
+ },
28790
+ reference: {}
28791
+ };
28792
+ Object.assign(state.elements.popper.style, initialStyles.popper);
28793
+ state.styles = initialStyles;
28794
 
28795
+ if (state.elements.arrow) {
28796
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
28797
+ }
28798
 
28799
+ return function () {
28800
+ Object.keys(state.elements).forEach(function (name) {
28801
+ var element = state.elements[name];
28802
+ var attributes = state.attributes[name] || {};
28803
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
28804
 
28805
+ var style = styleProperties.reduce(function (style, property) {
28806
+ style[property] = '';
28807
+ return style;
28808
+ }, {}); // arrow is optional + virtual elements
28809
 
28810
+ if (!isHTMLElement(element) || !getNodeName(element)) {
28811
+ return;
28812
+ }
28813
 
28814
+ Object.assign(element.style, style);
28815
+ Object.keys(attributes).forEach(function (attribute) {
28816
+ element.removeAttribute(attribute);
28817
+ });
 
28818
  });
28819
  };
28820
+ } // eslint-disable-next-line import/no-unused-modules
28821
 
 
 
 
 
 
 
 
28822
 
28823
+ /* harmony default export */ var modifiers_applyStyles = ({
28824
+ name: 'applyStyles',
28825
+ enabled: true,
28826
+ phase: 'write',
28827
+ fn: applyStyles,
28828
+ effect: applyStyles_effect,
28829
+ requires: ['computeStyles']
28830
+ });
28831
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/offset.js
28832
 
 
 
 
 
28833
 
28834
+ function distanceAndSkiddingToXY(placement, rects, offset) {
28835
+ var basePlacement = getBasePlacement(placement);
28836
+ var invertDistance = [left, enums_top].indexOf(basePlacement) >= 0 ? -1 : 1;
 
28837
 
28838
+ var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
28839
+ placement: placement
28840
+ })) : offset,
28841
+ skidding = _ref[0],
28842
+ distance = _ref[1];
28843
 
28844
+ skidding = skidding || 0;
28845
+ distance = (distance || 0) * invertDistance;
28846
+ return [left, right].indexOf(basePlacement) >= 0 ? {
28847
+ x: distance,
28848
+ y: skidding
28849
+ } : {
28850
+ x: skidding,
28851
+ y: distance
28852
+ };
28853
  }
28854
 
28855
+ function offset(_ref2) {
28856
+ var state = _ref2.state,
28857
+ options = _ref2.options,
28858
+ name = _ref2.name;
28859
+ var _options$offset = options.offset,
28860
+ offset = _options$offset === void 0 ? [0, 0] : _options$offset;
28861
+ var data = enums_placements.reduce(function (acc, placement) {
28862
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
28863
+ return acc;
28864
+ }, {});
28865
+ var _data$state$placement = data[state.placement],
28866
+ x = _data$state$placement.x,
28867
+ y = _data$state$placement.y;
28868
 
28869
+ if (state.modifiersData.popperOffsets != null) {
28870
+ state.modifiersData.popperOffsets.x += x;
28871
+ state.modifiersData.popperOffsets.y += y;
28872
+ }
28873
 
28874
+ state.modifiersData[name] = data;
28875
+ } // eslint-disable-next-line import/no-unused-modules
28876
 
 
 
28877
 
28878
+ /* harmony default export */ var modifiers_offset = ({
28879
+ name: 'offset',
28880
+ enabled: true,
28881
+ phase: 'main',
28882
+ requires: ['popperOffsets'],
28883
+ fn: offset
28884
+ });
28885
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
28886
+ var hash = {
28887
+ left: 'right',
28888
+ right: 'left',
28889
+ bottom: 'top',
28890
+ top: 'bottom'
28891
+ };
28892
+ function getOppositePlacement(placement) {
28893
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
28894
+ return hash[matched];
28895
+ });
28896
+ }
28897
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
28898
+ var getOppositeVariationPlacement_hash = {
28899
+ start: 'end',
28900
+ end: 'start'
28901
+ };
28902
+ function getOppositeVariationPlacement(placement) {
28903
+ return placement.replace(/start|end/g, function (matched) {
28904
+ return getOppositeVariationPlacement_hash[matched];
28905
+ });
28906
+ }
28907
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
28908
 
 
28909
 
 
28910
 
28911
+ function getViewportRect(element) {
28912
+ var win = getWindow(element);
28913
+ var html = getDocumentElement(element);
28914
+ var visualViewport = win.visualViewport;
28915
+ var width = html.clientWidth;
28916
+ var height = html.clientHeight;
28917
+ var x = 0;
28918
+ var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper
28919
+ // can be obscured underneath it.
28920
+ // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even
28921
+ // if it isn't open, so if this isn't available, the popper will be detected
28922
+ // to overflow the bottom of the screen too early.
28923
 
28924
+ if (visualViewport) {
28925
+ width = visualViewport.width;
28926
+ height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)
28927
+ // In Chrome, it returns a value very close to 0 (+/-) but contains rounding
28928
+ // errors due to floating point numbers, so we need to check precision.
28929
+ // Safari returns a number <= 0, usually < -1 when pinch-zoomed
28930
+ // Feature detection fails in mobile emulation mode in Chrome.
28931
+ // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <
28932
+ // 0.001
28933
+ // Fallback here: "Not Safari" userAgent
28934
 
28935
+ if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {
28936
+ x = visualViewport.offsetLeft;
28937
+ y = visualViewport.offsetTop;
28938
+ }
28939
+ }
28940
 
28941
+ return {
28942
+ width: width,
28943
+ height: height,
28944
+ x: x + getWindowScrollBarX(element),
28945
+ y: y
28946
+ };
28947
+ }
28948
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
28949
 
28950
 
28951
 
28952
 
28953
+ // Gets the entire size of the scrollable document area, even extending outside
28954
+ // of the `<html>` and `<body>` rect bounds if horizontally scrollable
28955
 
28956
+ function getDocumentRect(element) {
28957
+ var _element$ownerDocumen;
 
28958
 
28959
+ var html = getDocumentElement(element);
28960
+ var winScroll = getWindowScroll(element);
28961
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
28962
+ var width = math_max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
28963
+ var height = math_max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
28964
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
28965
+ var y = -winScroll.scrollTop;
28966
 
28967
+ if (getComputedStyle_getComputedStyle(body || html).direction === 'rtl') {
28968
+ x += math_max(html.clientWidth, body ? body.clientWidth : 0) - width;
28969
+ }
28970
 
28971
+ return {
28972
+ width: width,
28973
+ height: height,
28974
+ x: x,
28975
+ y: y
28976
+ };
28977
+ }
28978
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/contains.js
 
 
 
 
 
 
 
 
 
 
 
28979
 
28980
+ function contains(parent, child) {
28981
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
 
28982
 
28983
+ if (parent.contains(child)) {
28984
+ return true;
28985
+ } // then fallback to custom implementation with Shadow DOM support
28986
+ else if (rootNode && isShadowRoot(rootNode)) {
28987
+ var next = child;
28988
 
28989
+ do {
28990
+ if (next && parent.isSameNode(next)) {
28991
+ return true;
28992
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
 
 
28993
 
28994
 
28995
+ next = next.parentNode || next.host;
28996
+ } while (next);
28997
+ } // Give up, the result is false
28998
 
28999
 
29000
+ return false;
29001
+ }
29002
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js
29003
+ function rectToClientRect(rect) {
29004
+ return Object.assign({}, rect, {
29005
+ left: rect.x,
29006
+ top: rect.y,
29007
+ right: rect.x + rect.width,
29008
+ bottom: rect.y + rect.height
29009
+ });
29010
+ }
29011
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
29012
 
29013
 
29014
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29015
 
 
 
 
 
29016
 
 
 
 
 
29017
 
 
 
 
 
29018
 
 
 
 
 
29019
 
 
 
 
 
29020
 
 
 
 
 
29021
 
 
 
 
 
29022
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29023
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29024
 
 
29025
 
 
29026
 
29027
+ function getInnerBoundingClientRect(element) {
29028
+ var rect = getBoundingClientRect(element);
29029
+ rect.top = rect.top + element.clientTop;
29030
+ rect.left = rect.left + element.clientLeft;
29031
+ rect.bottom = rect.top + element.clientHeight;
29032
+ rect.right = rect.left + element.clientWidth;
29033
+ rect.width = element.clientWidth;
29034
+ rect.height = element.clientHeight;
29035
+ rect.x = rect.left;
29036
+ rect.y = rect.top;
29037
+ return rect;
29038
+ }
29039
 
29040
+ function getClientRectFromMixedType(element, clippingParent) {
29041
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
29042
+ } // A "clipping parent" is an overflowable container with the characteristic of
29043
+ // clipping (or hiding) overflowing elements with a position different from
29044
+ // `initial`
29045
 
29046
 
29047
+ function getClippingParents(element) {
29048
+ var clippingParents = listScrollParents(getParentNode(element));
29049
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle_getComputedStyle(element).position) >= 0;
29050
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
29051
 
29052
+ if (!instanceOf_isElement(clipperElement)) {
29053
+ return [];
29054
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
29055
 
29056
 
29057
+ return clippingParents.filter(function (clippingParent) {
29058
+ return instanceOf_isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';
29059
+ });
29060
+ } // Gets the maximum area that the element is visible in due to any number of
29061
+ // clipping parents
 
 
 
 
29062
 
 
 
 
 
 
 
29063
 
29064
+ function getClippingRect(element, boundary, rootBoundary) {
29065
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
29066
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
29067
+ var firstClippingParent = clippingParents[0];
29068
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
29069
+ var rect = getClientRectFromMixedType(element, clippingParent);
29070
+ accRect.top = math_max(rect.top, accRect.top);
29071
+ accRect.right = math_min(rect.right, accRect.right);
29072
+ accRect.bottom = math_min(rect.bottom, accRect.bottom);
29073
+ accRect.left = math_max(rect.left, accRect.left);
29074
+ return accRect;
29075
+ }, getClientRectFromMixedType(element, firstClippingParent));
29076
+ clippingRect.width = clippingRect.right - clippingRect.left;
29077
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
29078
+ clippingRect.x = clippingRect.left;
29079
+ clippingRect.y = clippingRect.top;
29080
+ return clippingRect;
29081
  }
29082
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
29083
+ function getFreshSideObject() {
29084
+ return {
29085
+ top: 0,
29086
+ right: 0,
29087
+ bottom: 0,
29088
+ left: 0
29089
+ };
 
 
 
29090
  }
29091
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
29092
+
29093
+ function mergePaddingObject(paddingObject) {
29094
+ return Object.assign({}, getFreshSideObject(), paddingObject);
 
 
 
 
 
29095
  }
29096
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js
29097
+ function expandToHashMap(value, keys) {
29098
+ return keys.reduce(function (hashMap, key) {
29099
+ hashMap[key] = value;
29100
+ return hashMap;
29101
+ }, {});
29102
+ }
29103
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/detectOverflow.js
29104
 
 
 
 
 
 
 
29105
 
29106
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29107
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29108
 
 
 
 
29109
 
 
 
 
 
 
 
 
 
 
 
 
 
29110
 
 
 
 
 
29111
 
29112
+ // eslint-disable-next-line import/no-unused-modules
29113
 
29114
+ function detectOverflow(state, options) {
29115
+ if (options === void 0) {
29116
+ options = {};
29117
+ }
29118
 
29119
+ var _options = options,
29120
+ _options$placement = _options.placement,
29121
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
29122
+ _options$boundary = _options.boundary,
29123
+ boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,
29124
+ _options$rootBoundary = _options.rootBoundary,
29125
+ rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,
29126
+ _options$elementConte = _options.elementContext,
29127
+ elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,
29128
+ _options$altBoundary = _options.altBoundary,
29129
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
29130
+ _options$padding = _options.padding,
29131
+ padding = _options$padding === void 0 ? 0 : _options$padding;
29132
+ var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
29133
+ var altContext = elementContext === popper ? reference : popper;
29134
+ var referenceElement = state.elements.reference;
29135
+ var popperRect = state.rects.popper;
29136
+ var element = state.elements[altBoundary ? altContext : elementContext];
29137
+ var clippingClientRect = getClippingRect(instanceOf_isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);
29138
+ var referenceClientRect = getBoundingClientRect(referenceElement);
29139
+ var popperOffsets = computeOffsets({
29140
+ reference: referenceClientRect,
29141
+ element: popperRect,
29142
+ strategy: 'absolute',
29143
+ placement: placement
29144
+ });
29145
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));
29146
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
29147
+ // 0 or negative = within the clipping rect
29148
 
29149
+ var overflowOffsets = {
29150
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
29151
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
29152
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
29153
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
29154
+ };
29155
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
29156
 
29157
+ if (elementContext === popper && offsetData) {
29158
+ var offset = offsetData[placement];
29159
+ Object.keys(overflowOffsets).forEach(function (key) {
29160
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
29161
+ var axis = [enums_top, bottom].indexOf(key) >= 0 ? 'y' : 'x';
29162
+ overflowOffsets[key] += offset[axis] * multiply;
29163
+ });
29164
+ }
29165
 
29166
+ return overflowOffsets;
 
 
 
 
 
29167
  }
29168
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
 
 
29169
 
 
 
 
 
 
29170
 
 
 
 
 
29171
 
 
 
 
 
29172
 
29173
+ function computeAutoPlacement(state, options) {
29174
+ if (options === void 0) {
29175
+ options = {};
 
 
 
29176
  }
 
 
 
 
 
 
 
 
29177
 
29178
+ var _options = options,
29179
+ placement = _options.placement,
29180
+ boundary = _options.boundary,
29181
+ rootBoundary = _options.rootBoundary,
29182
+ padding = _options.padding,
29183
+ flipVariations = _options.flipVariations,
29184
+ _options$allowedAutoP = _options.allowedAutoPlacements,
29185
+ allowedAutoPlacements = _options$allowedAutoP === void 0 ? enums_placements : _options$allowedAutoP;
29186
+ var variation = getVariation(placement);
29187
+ var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {
29188
+ return getVariation(placement) === variation;
29189
+ }) : basePlacements;
29190
+ var allowedPlacements = placements.filter(function (placement) {
29191
+ return allowedAutoPlacements.indexOf(placement) >= 0;
29192
+ });
29193
 
29194
+ if (allowedPlacements.length === 0) {
29195
+ allowedPlacements = placements;
29196
 
29197
+ if (false) {}
29198
+ } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
29199
 
29200
 
29201
+ var overflows = allowedPlacements.reduce(function (acc, placement) {
29202
+ acc[placement] = detectOverflow(state, {
29203
+ placement: placement,
29204
+ boundary: boundary,
29205
+ rootBoundary: rootBoundary,
29206
+ padding: padding
29207
+ })[getBasePlacement(placement)];
29208
+ return acc;
29209
+ }, {});
29210
+ return Object.keys(overflows).sort(function (a, b) {
29211
+ return overflows[a] - overflows[b];
29212
+ });
29213
+ }
29214
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/flip.js
29215
 
29216
 
29217
 
29218
 
29219
 
29220
 
29221
+ // eslint-disable-next-line import/no-unused-modules
29222
 
29223
+ function getExpandedFallbackPlacements(placement) {
29224
+ if (getBasePlacement(placement) === auto) {
29225
+ return [];
29226
+ }
29227
 
29228
+ var oppositePlacement = getOppositePlacement(placement);
29229
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
29230
+ }
29231
 
29232
+ function flip(_ref) {
29233
+ var state = _ref.state,
29234
+ options = _ref.options,
29235
+ name = _ref.name;
29236
 
29237
+ if (state.modifiersData[name]._skip) {
29238
+ return;
29239
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29240
 
29241
+ var _options$mainAxis = options.mainAxis,
29242
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
29243
+ _options$altAxis = options.altAxis,
29244
+ checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
29245
+ specifiedFallbackPlacements = options.fallbackPlacements,
29246
+ padding = options.padding,
29247
+ boundary = options.boundary,
29248
+ rootBoundary = options.rootBoundary,
29249
+ altBoundary = options.altBoundary,
29250
+ _options$flipVariatio = options.flipVariations,
29251
+ flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
29252
+ allowedAutoPlacements = options.allowedAutoPlacements;
29253
+ var preferredPlacement = state.options.placement;
29254
+ var basePlacement = getBasePlacement(preferredPlacement);
29255
+ var isBasePlacement = basePlacement === preferredPlacement;
29256
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
29257
+ var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
29258
+ return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {
29259
+ placement: placement,
29260
+ boundary: boundary,
29261
+ rootBoundary: rootBoundary,
29262
+ padding: padding,
29263
+ flipVariations: flipVariations,
29264
+ allowedAutoPlacements: allowedAutoPlacements
29265
+ }) : placement);
29266
+ }, []);
29267
+ var referenceRect = state.rects.reference;
29268
+ var popperRect = state.rects.popper;
29269
+ var checksMap = new Map();
29270
+ var makeFallbackChecks = true;
29271
+ var firstFittingPlacement = placements[0];
29272
 
29273
+ for (var i = 0; i < placements.length; i++) {
29274
+ var placement = placements[i];
29275
 
29276
+ var _basePlacement = getBasePlacement(placement);
 
 
 
 
29277
 
29278
+ var isStartVariation = getVariation(placement) === start;
29279
+ var isVertical = [enums_top, bottom].indexOf(_basePlacement) >= 0;
29280
+ var len = isVertical ? 'width' : 'height';
29281
+ var overflow = detectOverflow(state, {
29282
+ placement: placement,
29283
+ boundary: boundary,
29284
+ rootBoundary: rootBoundary,
29285
+ altBoundary: altBoundary,
29286
+ padding: padding
29287
+ });
29288
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : enums_top;
29289
 
29290
+ if (referenceRect[len] > popperRect[len]) {
29291
+ mainVariationSide = getOppositePlacement(mainVariationSide);
29292
+ }
29293
 
29294
+ var altVariationSide = getOppositePlacement(mainVariationSide);
29295
+ var checks = [];
 
 
 
29296
 
29297
+ if (checkMainAxis) {
29298
+ checks.push(overflow[_basePlacement] <= 0);
29299
+ }
 
 
29300
 
29301
+ if (checkAltAxis) {
29302
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
29303
+ }
 
 
 
 
 
 
 
 
 
 
 
29304
 
29305
+ if (checks.every(function (check) {
29306
+ return check;
29307
+ })) {
29308
+ firstFittingPlacement = placement;
29309
+ makeFallbackChecks = false;
29310
+ break;
29311
+ }
29312
 
29313
+ checksMap.set(placement, checks);
29314
+ }
 
 
 
 
 
 
29315
 
29316
+ if (makeFallbackChecks) {
29317
+ // `2` may be desired in some cases – research later
29318
+ var numberOfChecks = flipVariations ? 3 : 1;
 
 
 
 
 
 
 
 
 
 
 
 
29319
 
29320
+ var _loop = function _loop(_i) {
29321
+ var fittingPlacement = placements.find(function (placement) {
29322
+ var checks = checksMap.get(placement);
 
 
 
 
 
 
 
 
 
 
 
29323
 
29324
+ if (checks) {
29325
+ return checks.slice(0, _i).every(function (check) {
29326
+ return check;
29327
+ });
29328
+ }
29329
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29330
 
29331
+ if (fittingPlacement) {
29332
+ firstFittingPlacement = fittingPlacement;
29333
+ return "break";
29334
+ }
29335
+ };
29336
 
29337
+ for (var _i = numberOfChecks; _i > 0; _i--) {
29338
+ var _ret = _loop(_i);
29339
 
29340
+ if (_ret === "break") break;
29341
+ }
 
 
29342
  }
29343
 
29344
+ if (state.placement !== firstFittingPlacement) {
29345
+ state.modifiersData[name]._skip = true;
29346
+ state.placement = firstFittingPlacement;
29347
+ state.reset = true;
29348
+ }
29349
+ } // eslint-disable-next-line import/no-unused-modules
29350
 
 
 
 
 
 
 
 
29351
 
29352
+ /* harmony default export */ var modifiers_flip = ({
29353
+ name: 'flip',
29354
+ enabled: true,
29355
+ phase: 'main',
29356
+ fn: flip,
29357
+ requiresIfExists: ['offset'],
29358
+ data: {
29359
+ _skip: false
29360
  }
 
 
 
 
 
 
29361
  });
29362
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/getAltAxis.js
29363
+ function getAltAxis(axis) {
29364
+ return axis === 'x' ? 'y' : 'x';
29365
+ }
29366
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/utils/within.js
29367
 
29368
+ function within(min, value, max) {
29369
+ return math_max(min, math_min(value, max));
29370
+ }
29371
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
29372
 
29373
 
29374
 
29376
 
29377
 
29378
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29379
 
 
 
29380
 
 
 
29381
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29382
 
 
29383
 
29384
+ function preventOverflow(_ref) {
29385
+ var state = _ref.state,
29386
+ options = _ref.options,
29387
+ name = _ref.name;
29388
+ var _options$mainAxis = options.mainAxis,
29389
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
29390
+ _options$altAxis = options.altAxis,
29391
+ checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
29392
+ boundary = options.boundary,
29393
+ rootBoundary = options.rootBoundary,
29394
+ altBoundary = options.altBoundary,
29395
+ padding = options.padding,
29396
+ _options$tether = options.tether,
29397
+ tether = _options$tether === void 0 ? true : _options$tether,
29398
+ _options$tetherOffset = options.tetherOffset,
29399
+ tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
29400
+ var overflow = detectOverflow(state, {
29401
+ boundary: boundary,
29402
+ rootBoundary: rootBoundary,
29403
+ padding: padding,
29404
+ altBoundary: altBoundary
29405
+ });
29406
+ var basePlacement = getBasePlacement(state.placement);
29407
+ var variation = getVariation(state.placement);
29408
+ var isBasePlacement = !variation;
29409
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
29410
+ var altAxis = getAltAxis(mainAxis);
29411
+ var popperOffsets = state.modifiersData.popperOffsets;
29412
+ var referenceRect = state.rects.reference;
29413
+ var popperRect = state.rects.popper;
29414
+ var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
29415
+ placement: state.placement
29416
+ })) : tetherOffset;
29417
+ var data = {
29418
+ x: 0,
29419
+ y: 0
29420
+ };
29421
+
29422
+ if (!popperOffsets) {
29423
+ return;
29424
  }
29425
 
29426
+ if (checkMainAxis || checkAltAxis) {
29427
+ var mainSide = mainAxis === 'y' ? enums_top : left;
29428
+ var altSide = mainAxis === 'y' ? bottom : right;
29429
+ var len = mainAxis === 'y' ? 'height' : 'width';
29430
+ var offset = popperOffsets[mainAxis];
29431
+ var min = popperOffsets[mainAxis] + overflow[mainSide];
29432
+ var max = popperOffsets[mainAxis] - overflow[altSide];
29433
+ var additive = tether ? -popperRect[len] / 2 : 0;
29434
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
29435
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
29436
+ // outside the reference bounds
29437
+
29438
+ var arrowElement = state.elements.arrow;
29439
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
29440
+ width: 0,
29441
+ height: 0
29442
+ };
29443
+ var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();
29444
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
29445
+ var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
29446
+ // to include its full size in the calculation. If the reference is small
29447
+ // and near the edge of a boundary, the popper can overflow even if the
29448
+ // reference is not overflowing as well (e.g. virtual elements with no
29449
+ // width or height)
29450
+
29451
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
29452
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;
29453
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;
29454
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
29455
+ var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
29456
+ var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;
29457
+ var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;
29458
+ var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;
29459
 
29460
+ if (checkMainAxis) {
29461
+ var preventedOffset = within(tether ? math_min(min, tetherMin) : min, offset, tether ? math_max(max, tetherMax) : max);
29462
+ popperOffsets[mainAxis] = preventedOffset;
29463
+ data[mainAxis] = preventedOffset - offset;
29464
+ }
29465
 
29466
+ if (checkAltAxis) {
29467
+ var _mainSide = mainAxis === 'x' ? enums_top : left;
29468
 
29469
+ var _altSide = mainAxis === 'x' ? bottom : right;
29470
 
29471
+ var _offset = popperOffsets[altAxis];
29472
 
29473
+ var _min = _offset + overflow[_mainSide];
29474
 
29475
+ var _max = _offset - overflow[_altSide];
29476
 
29477
+ var _preventedOffset = within(tether ? math_min(_min, tetherMin) : _min, _offset, tether ? math_max(_max, tetherMax) : _max);
 
 
 
 
 
 
 
 
29478
 
29479
+ popperOffsets[altAxis] = _preventedOffset;
29480
+ data[altAxis] = _preventedOffset - _offset;
 
29481
  }
29482
+ }
 
 
 
 
29483
 
29484
+ state.modifiersData[name] = data;
29485
+ } // eslint-disable-next-line import/no-unused-modules
 
 
29486
 
29487
+
29488
+ /* harmony default export */ var modifiers_preventOverflow = ({
29489
+ name: 'preventOverflow',
29490
+ enabled: true,
29491
+ phase: 'main',
29492
+ fn: preventOverflow,
29493
+ requiresIfExists: ['offset']
29494
  });
29495
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/arrow.js
 
 
 
 
 
29496
 
 
29497
 
 
29498
 
 
29499
 
 
29500
 
 
29501
 
 
29502
 
 
29503
 
 
29504
 
29505
+ // eslint-disable-next-line import/no-unused-modules
29506
 
29507
+ var toPaddingObject = function toPaddingObject(padding, state) {
29508
+ padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
29509
+ placement: state.placement
29510
+ })) : padding;
29511
+ return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));
29512
+ };
29513
 
29514
+ function arrow(_ref) {
29515
+ var _state$modifiersData$;
29516
 
29517
+ var state = _ref.state,
29518
+ name = _ref.name,
29519
+ options = _ref.options;
29520
+ var arrowElement = state.elements.arrow;
29521
+ var popperOffsets = state.modifiersData.popperOffsets;
29522
+ var basePlacement = getBasePlacement(state.placement);
29523
+ var axis = getMainAxisFromPlacement(basePlacement);
29524
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
29525
+ var len = isVertical ? 'height' : 'width';
29526
 
29527
+ if (!arrowElement || !popperOffsets) {
29528
+ return;
29529
+ }
29530
 
29531
+ var paddingObject = toPaddingObject(options.padding, state);
29532
+ var arrowRect = getLayoutRect(arrowElement);
29533
+ var minProp = axis === 'y' ? enums_top : left;
29534
+ var maxProp = axis === 'y' ? bottom : right;
29535
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
29536
+ var startDiff = popperOffsets[axis] - state.rects.reference[axis];
29537
+ var arrowOffsetParent = getOffsetParent(arrowElement);
29538
+ var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
29539
+ var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
29540
+ // outside of the popper bounds
 
 
 
29541
 
29542
+ var min = paddingObject[minProp];
29543
+ var max = clientSize - arrowRect[len] - paddingObject[maxProp];
29544
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
29545
+ var offset = within(min, center, max); // Prevents breaking syntax highlighting...
29546
 
29547
+ var axisProp = axis;
29548
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
29549
+ }
29550
 
29551
+ function arrow_effect(_ref2) {
29552
+ var state = _ref2.state,
29553
+ options = _ref2.options;
29554
+ var _options$element = options.element,
29555
+ arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
29556
 
29557
+ if (arrowElement == null) {
29558
+ return;
29559
+ } // CSS selector
 
29560
 
 
 
 
 
 
29561
 
29562
+ if (typeof arrowElement === 'string') {
29563
+ arrowElement = state.elements.popper.querySelector(arrowElement);
 
 
 
 
 
 
29564
 
29565
+ if (!arrowElement) {
29566
+ return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29567
  }
29568
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29569
 
29570
+ if (false) {}
 
 
 
 
29571
 
29572
+ if (!contains(state.elements.popper, arrowElement)) {
29573
+ if (false) {}
 
 
29574
 
29575
+ return;
29576
+ }
 
29577
 
29578
+ state.elements.arrow = arrowElement;
29579
+ } // eslint-disable-next-line import/no-unused-modules
29580
 
 
29581
 
29582
+ /* harmony default export */ var modifiers_arrow = ({
29583
+ name: 'arrow',
29584
+ enabled: true,
29585
+ phase: 'main',
29586
+ fn: arrow,
29587
+ effect: arrow_effect,
29588
+ requires: ['popperOffsets'],
29589
+ requiresIfExists: ['preventOverflow']
29590
+ });
29591
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/modifiers/hide.js
29592
 
29593
 
29594
 
29595
+ function getSideOffsets(overflow, rect, preventedOffsets) {
29596
+ if (preventedOffsets === void 0) {
29597
+ preventedOffsets = {
29598
+ x: 0,
29599
+ y: 0
29600
+ };
29601
+ }
29602
 
29603
+ return {
29604
+ top: overflow.top - rect.height - preventedOffsets.y,
29605
+ right: overflow.right - rect.width + preventedOffsets.x,
29606
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
29607
+ left: overflow.left - rect.width - preventedOffsets.x
29608
+ };
29609
+ }
29610
 
29611
+ function isAnySideFullyClipped(overflow) {
29612
+ return [enums_top, right, bottom, left].some(function (side) {
29613
+ return overflow[side] >= 0;
29614
+ });
29615
+ }
29616
 
29617
+ function hide(_ref) {
29618
+ var state = _ref.state,
29619
+ name = _ref.name;
29620
+ var referenceRect = state.rects.reference;
29621
+ var popperRect = state.rects.popper;
29622
+ var preventedOffsets = state.modifiersData.preventOverflow;
29623
+ var referenceOverflow = detectOverflow(state, {
29624
+ elementContext: 'reference'
29625
+ });
29626
+ var popperAltOverflow = detectOverflow(state, {
29627
+ altBoundary: true
29628
+ });
29629
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
29630
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
29631
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
29632
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
29633
+ state.modifiersData[name] = {
29634
+ referenceClippingOffsets: referenceClippingOffsets,
29635
+ popperEscapeOffsets: popperEscapeOffsets,
29636
+ isReferenceHidden: isReferenceHidden,
29637
+ hasPopperEscaped: hasPopperEscaped
29638
+ };
29639
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
29640
+ 'data-popper-reference-hidden': isReferenceHidden,
29641
+ 'data-popper-escaped': hasPopperEscaped
29642
+ });
29643
+ } // eslint-disable-next-line import/no-unused-modules
29644
 
 
 
 
29645
 
29646
+ /* harmony default export */ var modifiers_hide = ({
29647
+ name: 'hide',
29648
+ enabled: true,
29649
+ phase: 'main',
29650
+ requiresIfExists: ['preventOverflow'],
29651
+ fn: hide
29652
+ });
29653
+ ;// CONCATENATED MODULE: ./node_modules/@popperjs/core/lib/popper.js
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29654
 
 
29655
 
 
 
29656
 
 
 
 
 
29657
 
 
 
 
29658
 
 
 
 
 
 
 
29659
 
 
 
 
 
 
 
29660
 
 
 
 
29661
 
 
29662
 
 
 
29663
 
29664
+ var defaultModifiers = [eventListeners, modifiers_popperOffsets, modifiers_computeStyles, modifiers_applyStyles, modifiers_offset, modifiers_flip, modifiers_preventOverflow, modifiers_arrow, modifiers_hide];
29665
+ var popper_createPopper = /*#__PURE__*/popperGenerator({
29666
+ defaultModifiers: defaultModifiers
29667
+ }); // eslint-disable-next-line import/no-unused-modules
29668
 
29669
+ // eslint-disable-next-line import/no-unused-modules
 
 
29670
 
29671
+ // eslint-disable-next-line import/no-unused-modules
 
 
29672
 
 
29673
 
29674
+ ;// CONCATENATED MODULE: ./node_modules/@tippyjs/react/node_modules/tippy.js/dist/tippy.esm.js
29675
+ /**!
29676
+ * tippy.js v6.3.1
29677
+ * (c) 2017-2021 atomiks
29678
+ * MIT License
29679
+ */
 
 
 
 
 
 
29680
 
 
29681
 
29682
+ var ROUND_ARROW = '<svg width="16" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 6s1.796-.013 4.67-3.615C5.851.9 6.93.006 8 0c1.07-.006 2.148.887 3.343 2.385C14.233 6.005 16 6 16 6H0z"></svg>';
29683
+ var BOX_CLASS = "tippy-box";
29684
+ var CONTENT_CLASS = "tippy-content";
29685
+ var BACKDROP_CLASS = "tippy-backdrop";
29686
+ var ARROW_CLASS = "tippy-arrow";
29687
+ var SVG_ARROW_CLASS = "tippy-svg-arrow";
29688
+ var TOUCH_OPTIONS = {
29689
+ passive: true,
29690
+ capture: true
29691
+ };
 
 
 
 
 
 
 
 
 
 
29692
 
29693
+ function tippy_esm_hasOwnProperty(obj, key) {
29694
+ return {}.hasOwnProperty.call(obj, key);
29695
+ }
29696
+ function getValueAtIndexOrReturn(value, index, defaultValue) {
29697
+ if (Array.isArray(value)) {
29698
+ var v = value[index];
29699
+ return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;
29700
+ }
29701
 
29702
+ return value;
29703
+ }
29704
+ function isType(value, type) {
29705
+ var str = {}.toString.call(value);
29706
+ return str.indexOf('[object') === 0 && str.indexOf(type + "]") > -1;
29707
+ }
29708
+ function invokeWithArgsOrReturn(value, args) {
29709
+ return typeof value === 'function' ? value.apply(void 0, args) : value;
29710
+ }
29711
+ function tippy_esm_debounce(fn, ms) {
29712
+ // Avoid wrapping in `setTimeout` if ms is 0 anyway
29713
+ if (ms === 0) {
29714
+ return fn;
29715
+ }
29716
 
29717
+ var timeout;
29718
+ return function (arg) {
29719
+ clearTimeout(timeout);
29720
+ timeout = setTimeout(function () {
29721
+ fn(arg);
29722
+ }, ms);
29723
  };
29724
+ }
29725
+ function removeProperties(obj, keys) {
29726
+ var clone = Object.assign({}, obj);
29727
+ keys.forEach(function (key) {
29728
+ delete clone[key];
29729
+ });
29730
+ return clone;
29731
+ }
29732
+ function splitBySpaces(value) {
29733
+ return value.split(/\s+/).filter(Boolean);
29734
+ }
29735
+ function normalizeToArray(value) {
29736
+ return [].concat(value);
29737
+ }
29738
+ function pushIfUnique(arr, value) {
29739
+ if (arr.indexOf(value) === -1) {
29740
+ arr.push(value);
29741
+ }
29742
+ }
29743
+ function unique(arr) {
29744
+ return arr.filter(function (item, index) {
29745
+ return arr.indexOf(item) === index;
29746
+ });
29747
+ }
29748
+ function tippy_esm_getBasePlacement(placement) {
29749
+ return placement.split('-')[0];
29750
+ }
29751
+ function arrayFrom(value) {
29752
+ return [].slice.call(value);
29753
+ }
29754
+ function removeUndefinedProps(obj) {
29755
+ return Object.keys(obj).reduce(function (acc, key) {
29756
+ if (obj[key] !== undefined) {
29757
+ acc[key] = obj[key];
29758
+ }
29759
 
29760
+ return acc;
29761
+ }, {});
29762
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29763
 
29764
+ function div() {
29765
+ return document.createElement('div');
29766
+ }
29767
+ function tippy_esm_isElement(value) {
29768
+ return ['Element', 'Fragment'].some(function (type) {
29769
+ return isType(value, type);
29770
+ });
29771
+ }
29772
+ function isNodeList(value) {
29773
+ return isType(value, 'NodeList');
29774
+ }
29775
+ function isMouseEvent(value) {
29776
+ return isType(value, 'MouseEvent');
29777
+ }
29778
+ function isReferenceElement(value) {
29779
+ return !!(value && value._tippy && value._tippy.reference === value);
29780
  }
29781
+ function getArrayOfElements(value) {
29782
+ if (tippy_esm_isElement(value)) {
29783
+ return [value];
29784
+ }
 
 
29785
 
29786
+ if (isNodeList(value)) {
29787
+ return arrayFrom(value);
29788
+ }
29789
 
29790
+ if (Array.isArray(value)) {
29791
+ return value;
29792
+ }
29793
 
29794
+ return arrayFrom(document.querySelectorAll(value));
29795
+ }
29796
+ function setTransitionDuration(els, value) {
29797
+ els.forEach(function (el) {
29798
+ if (el) {
29799
+ el.style.transitionDuration = value + "ms";
29800
+ }
29801
+ });
29802
+ }
29803
+ function setVisibilityState(els, state) {
29804
+ els.forEach(function (el) {
29805
+ if (el) {
29806
+ el.setAttribute('data-state', state);
29807
+ }
29808
+ });
29809
+ }
29810
+ function getOwnerDocument(elementOrElements) {
29811
+ var _element$ownerDocumen;
29812
 
29813
+ var _normalizeToArray = normalizeToArray(elementOrElements),
29814
+ element = _normalizeToArray[0]; // Elements created via a <template> have an ownerDocument with no reference to the body
29815
 
29816
 
29817
+ return (element == null ? void 0 : (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body) ? element.ownerDocument : document;
29818
+ }
29819
+ function isCursorOutsideInteractiveBorder(popperTreeData, event) {
29820
+ var clientX = event.clientX,
29821
+ clientY = event.clientY;
29822
+ return popperTreeData.every(function (_ref) {
29823
+ var popperRect = _ref.popperRect,
29824
+ popperState = _ref.popperState,
29825
+ props = _ref.props;
29826
+ var interactiveBorder = props.interactiveBorder;
29827
+ var basePlacement = tippy_esm_getBasePlacement(popperState.placement);
29828
+ var offsetData = popperState.modifiersData.offset;
29829
 
29830
+ if (!offsetData) {
29831
+ return true;
29832
+ }
29833
 
29834
+ var topDistance = basePlacement === 'bottom' ? offsetData.top.y : 0;
29835
+ var bottomDistance = basePlacement === 'top' ? offsetData.bottom.y : 0;
29836
+ var leftDistance = basePlacement === 'right' ? offsetData.left.x : 0;
29837
+ var rightDistance = basePlacement === 'left' ? offsetData.right.x : 0;
29838
+ var exceedsTop = popperRect.top - clientY + topDistance > interactiveBorder;
29839
+ var exceedsBottom = clientY - popperRect.bottom - bottomDistance > interactiveBorder;
29840
+ var exceedsLeft = popperRect.left - clientX + leftDistance > interactiveBorder;
29841
+ var exceedsRight = clientX - popperRect.right - rightDistance > interactiveBorder;
29842
+ return exceedsTop || exceedsBottom || exceedsLeft || exceedsRight;
29843
+ });
29844
+ }
29845
+ function updateTransitionEndListener(box, action, listener) {
29846
+ var method = action + "EventListener"; // some browsers apparently support `transition` (unprefixed) but only fire
29847
+ // `webkitTransitionEnd`...
29848
 
29849
+ ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {
29850
+ box[method](event, listener);
29851
+ });
29852
+ }
29853
 
29854
+ var currentInput = {
29855
+ isTouch: false
29856
+ };
29857
+ var lastMouseMoveTime = 0;
29858
+ /**
29859
+ * When a `touchstart` event is fired, it's assumed the user is using touch
29860
+ * input. We'll bind a `mousemove` event listener to listen for mouse input in
29861
+ * the future. This way, the `isTouch` property is fully dynamic and will handle
29862
+ * hybrid devices that use a mix of touch + mouse input.
29863
+ */
29864
 
29865
+ function onDocumentTouchStart() {
29866
+ if (currentInput.isTouch) {
29867
+ return;
29868
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29869
 
29870
+ currentInput.isTouch = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29871
 
29872
+ if (window.performance) {
29873
+ document.addEventListener('mousemove', onDocumentMouseMove);
29874
+ }
29875
+ }
29876
+ /**
29877
+ * When two `mousemove` event are fired consecutively within 20ms, it's assumed
29878
+ * the user is using mouse input again. `mousemove` can fire on touch devices as
29879
+ * well, but very rarely that quickly.
29880
+ */
29881
 
29882
+ function onDocumentMouseMove() {
29883
+ var now = performance.now();
29884
 
29885
+ if (now - lastMouseMoveTime < 20) {
29886
+ currentInput.isTouch = false;
29887
+ document.removeEventListener('mousemove', onDocumentMouseMove);
29888
+ }
29889
 
29890
+ lastMouseMoveTime = now;
29891
+ }
29892
+ /**
29893
+ * When an element is in focus and has a tippy, leaving the tab/window and
29894
+ * returning causes it to show again. For mouse users this is unexpected, but
29895
+ * for keyboard use it makes sense.
29896
+ * TODO: find a better technique to solve this problem
29897
+ */
29898
 
29899
+ function onWindowBlur() {
29900
+ var activeElement = document.activeElement;
29901
 
29902
+ if (isReferenceElement(activeElement)) {
29903
+ var instance = activeElement._tippy;
29904
 
29905
+ if (activeElement.blur && !instance.state.isVisible) {
29906
+ activeElement.blur();
29907
+ }
29908
+ }
29909
+ }
29910
+ function bindGlobalEventListeners() {
29911
+ document.addEventListener('touchstart', onDocumentTouchStart, TOUCH_OPTIONS);
29912
+ window.addEventListener('blur', onWindowBlur);
29913
+ }
29914
 
29915
+ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
29916
+ var ua = isBrowser ? navigator.userAgent : '';
29917
+ var isIE = /MSIE |Trident\//.test(ua);
 
 
 
 
29918
 
29919
+ function createMemoryLeakWarning(method) {
29920
+ var txt = method === 'destroy' ? 'n already-' : ' ';
29921
+ return [method + "() was called on a" + txt + "destroyed instance. This is a no-op but", 'indicates a potential memory leak.'].join(' ');
29922
+ }
29923
+ function clean(value) {
29924
+ var spacesAndTabs = /[ \t]{2,}/g;
29925
+ var lineStartWithSpaces = /^[ \t]*/gm;
29926
+ return value.replace(spacesAndTabs, ' ').replace(lineStartWithSpaces, '').trim();
29927
+ }
29928
 
29929
+ function getDevMessage(message) {
29930
+ return clean("\n %ctippy.js\n\n %c" + clean(message) + "\n\n %c\uD83D\uDC77\u200D This is a development-only message. It will be removed in production.\n ");
29931
+ }
 
29932
 
29933
+ function getFormattedMessage(message) {
29934
+ return [getDevMessage(message), // title
29935
+ 'color: #00C584; font-size: 1.3em; font-weight: bold;', // message
29936
+ 'line-height: 1.5', // footer
29937
+ 'color: #a6a095;'];
29938
+ } // Assume warnings and errors never have the same message
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29939
 
29940
+ var visitedMessages;
 
 
29941
 
29942
+ if (false) {}
 
 
 
 
 
29943
 
29944
+ function resetVisitedMessages() {
29945
+ visitedMessages = new Set();
29946
+ }
29947
+ function warnWhen(condition, message) {
29948
+ if (condition && !visitedMessages.has(message)) {
29949
+ var _console;
29950
 
29951
+ visitedMessages.add(message);
 
 
 
 
 
29952
 
29953
+ (_console = console).warn.apply(_console, getFormattedMessage(message));
29954
+ }
29955
+ }
29956
+ function errorWhen(condition, message) {
29957
+ if (condition && !visitedMessages.has(message)) {
29958
+ var _console2;
29959
 
29960
+ visitedMessages.add(message);
 
29961
 
29962
+ (_console2 = console).error.apply(_console2, getFormattedMessage(message));
29963
+ }
29964
+ }
29965
+ function validateTargets(targets) {
29966
+ var didPassFalsyValue = !targets;
29967
+ var didPassPlainObject = Object.prototype.toString.call(targets) === '[object Object]' && !targets.addEventListener;
29968
+ errorWhen(didPassFalsyValue, ['tippy() was passed', '`' + String(targets) + '`', 'as its targets (first) argument. Valid types are: String, Element,', 'Element[], or NodeList.'].join(' '));
29969
+ errorWhen(didPassPlainObject, ['tippy() was passed a plain object which is not supported as an argument', 'for virtual positioning. Use props.getReferenceClientRect instead.'].join(' '));
29970
+ }
29971
 
29972
+ var pluginProps = {
29973
+ animateFill: false,
29974
+ followCursor: false,
29975
+ inlinePositioning: false,
29976
+ sticky: false
29977
  };
29978
+ var renderProps = {
29979
+ allowHTML: false,
29980
+ animation: 'fade',
29981
+ arrow: true,
29982
+ content: '',
29983
+ inertia: false,
29984
+ maxWidth: 350,
29985
+ role: 'tooltip',
29986
+ theme: '',
29987
+ zIndex: 9999
29988
+ };
29989
+ var tippy_esm_defaultProps = Object.assign({
29990
+ appendTo: function appendTo() {
29991
+ return document.body;
29992
+ },
29993
+ aria: {
29994
+ content: 'auto',
29995
+ expanded: 'auto'
29996
+ },
29997
+ delay: 0,
29998
+ duration: [300, 250],
29999
+ getReferenceClientRect: null,
30000
+ hideOnClick: true,
30001
+ ignoreAttributes: false,
30002
+ interactive: false,
30003
+ interactiveBorder: 2,
30004
+ interactiveDebounce: 0,
30005
+ moveTransition: '',
30006
+ offset: [0, 10],
30007
+ onAfterUpdate: function onAfterUpdate() {},
30008
+ onBeforeUpdate: function onBeforeUpdate() {},
30009
+ onCreate: function onCreate() {},
30010
+ onDestroy: function onDestroy() {},
30011
+ onHidden: function onHidden() {},
30012
+ onHide: function onHide() {},
30013
+ onMount: function onMount() {},
30014
+ onShow: function onShow() {},
30015
+ onShown: function onShown() {},
30016
+ onTrigger: function onTrigger() {},
30017
+ onUntrigger: function onUntrigger() {},
30018
+ onClickOutside: function onClickOutside() {},
30019
+ placement: 'top',
30020
+ plugins: [],
30021
+ popperOptions: {},
30022
+ render: null,
30023
+ showOnCreate: false,
30024
+ touch: true,
30025
+ trigger: 'mouseenter focus',
30026
+ triggerTarget: null
30027
+ }, pluginProps, {}, renderProps);
30028
+ var defaultKeys = Object.keys(tippy_esm_defaultProps);
30029
+ var setDefaultProps = function setDefaultProps(partialProps) {
30030
+ /* istanbul ignore else */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30031
  if (false) {}
30032
 
30033
+ var keys = Object.keys(partialProps);
30034
+ keys.forEach(function (key) {
30035
+ tippy_esm_defaultProps[key] = partialProps[key];
 
30036
  });
30037
+ };
30038
+ function getExtendedPassedProps(passedProps) {
30039
+ var plugins = passedProps.plugins || [];
30040
+ var pluginProps = plugins.reduce(function (acc, plugin) {
30041
+ var name = plugin.name,
30042
+ defaultValue = plugin.defaultValue;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30043
 
30044
+ if (name) {
30045
+ acc[name] = passedProps[name] !== undefined ? passedProps[name] : defaultValue;
 
30046
  }
30047
 
30048
+ return acc;
30049
+ }, {});
30050
+ return Object.assign({}, passedProps, {}, pluginProps);
30051
+ }
30052
+ function getDataAttributeProps(reference, plugins) {
30053
+ var propKeys = plugins ? Object.keys(getExtendedPassedProps(Object.assign({}, tippy_esm_defaultProps, {
30054
+ plugins: plugins
30055
+ }))) : defaultKeys;
30056
+ var props = propKeys.reduce(function (acc, key) {
30057
+ var valueAsString = (reference.getAttribute("data-tippy-" + key) || '').trim();
30058
+
30059
+ if (!valueAsString) {
30060
+ return acc;
30061
  }
30062
 
30063
+ if (key === 'content') {
30064
+ acc[key] = valueAsString;
30065
  } else {
30066
+ try {
30067
+ acc[key] = JSON.parse(valueAsString);
30068
+ } catch (e) {
30069
+ acc[key] = valueAsString;
30070
+ }
30071
  }
 
30072
 
30073
+ return acc;
30074
+ }, {});
30075
+ return props;
30076
+ }
30077
+ function evaluateProps(reference, props) {
30078
+ var out = Object.assign({}, props, {
30079
+ content: invokeWithArgsOrReturn(props.content, [reference])
30080
+ }, props.ignoreAttributes ? {} : getDataAttributeProps(reference, props.plugins));
30081
+ out.aria = Object.assign({}, tippy_esm_defaultProps.aria, {}, out.aria);
30082
+ out.aria = {
30083
+ expanded: out.aria.expanded === 'auto' ? props.interactive : out.aria.expanded,
30084
+ content: out.aria.content === 'auto' ? props.interactive ? null : 'describedby' : out.aria.content
30085
+ };
30086
+ return out;
30087
+ }
30088
+ function validateProps(partialProps, plugins) {
30089
+ if (partialProps === void 0) {
30090
+ partialProps = {};
30091
+ }
30092
 
30093
+ if (plugins === void 0) {
30094
+ plugins = [];
30095
+ }
30096
 
30097
+ var keys = Object.keys(partialProps);
30098
+ keys.forEach(function (prop) {
30099
+ var nonPluginProps = removeProperties(tippy_esm_defaultProps, Object.keys(pluginProps));
30100
+ var didPassUnknownProp = !tippy_esm_hasOwnProperty(nonPluginProps, prop); // Check if the prop exists in `plugins`
30101
 
30102
+ if (didPassUnknownProp) {
30103
+ didPassUnknownProp = plugins.filter(function (plugin) {
30104
+ return plugin.name === prop;
30105
+ }).length === 0;
30106
  }
30107
 
30108
+ warnWhen(didPassUnknownProp, ["`" + prop + "`", "is not a valid prop. You may have spelled it incorrectly, or if it's", 'a plugin, forgot to pass it in an array as props.plugins.', '\n\n', 'All props: https://atomiks.github.io/tippyjs/v6/all-props/\n', 'Plugins: https://atomiks.github.io/tippyjs/v6/plugins/'].join(' '));
30109
+ });
30110
+ }
30111
 
30112
+ var innerHTML = function innerHTML() {
30113
+ return 'innerHTML';
30114
+ };
30115
 
30116
+ function dangerouslySetInnerHTML(element, html) {
30117
+ element[innerHTML()] = html;
30118
+ }
 
 
30119
 
30120
+ function createArrowElement(value) {
30121
+ var arrow = div();
30122
 
30123
+ if (value === true) {
30124
+ arrow.className = ARROW_CLASS;
30125
+ } else {
30126
+ arrow.className = SVG_ARROW_CLASS;
30127
 
30128
+ if (tippy_esm_isElement(value)) {
30129
+ arrow.appendChild(value);
30130
+ } else {
30131
+ dangerouslySetInnerHTML(arrow, value);
30132
  }
30133
+ }
30134
 
30135
+ return arrow;
30136
+ }
30137
+
30138
+ function setContent(content, props) {
30139
+ if (tippy_esm_isElement(props.content)) {
30140
+ dangerouslySetInnerHTML(content, '');
30141
+ content.appendChild(props.content);
30142
+ } else if (typeof props.content !== 'function') {
30143
+ if (props.allowHTML) {
30144
+ dangerouslySetInnerHTML(content, props.content);
30145
+ } else {
30146
+ content.textContent = props.content;
30147
  }
30148
+ }
30149
+ }
30150
+ function getChildren(popper) {
30151
+ var box = popper.firstElementChild;
30152
+ var boxChildren = arrayFrom(box.children);
30153
+ return {
30154
+ box: box,
30155
+ content: boxChildren.find(function (node) {
30156
+ return node.classList.contains(CONTENT_CLASS);
30157
+ }),
30158
+ arrow: boxChildren.find(function (node) {
30159
+ return node.classList.contains(ARROW_CLASS) || node.classList.contains(SVG_ARROW_CLASS);
30160
+ }),
30161
+ backdrop: boxChildren.find(function (node) {
30162
+ return node.classList.contains(BACKDROP_CLASS);
30163
+ })
30164
  };
30165
+ }
30166
+ function render(instance) {
30167
+ var popper = div();
30168
+ var box = div();
30169
+ box.className = BOX_CLASS;
30170
+ box.setAttribute('data-state', 'hidden');
30171
+ box.setAttribute('tabindex', '-1');
30172
+ var content = div();
30173
+ content.className = CONTENT_CLASS;
30174
+ content.setAttribute('data-state', 'hidden');
30175
+ setContent(content, instance.props);
30176
+ popper.appendChild(box);
30177
+ box.appendChild(content);
30178
+ onUpdate(instance.props, instance.props);
30179
 
30180
+ function onUpdate(prevProps, nextProps) {
30181
+ var _getChildren = getChildren(popper),
30182
+ box = _getChildren.box,
30183
+ content = _getChildren.content,
30184
+ arrow = _getChildren.arrow;
30185
 
30186
+ if (nextProps.theme) {
30187
+ box.setAttribute('data-theme', nextProps.theme);
30188
+ } else {
30189
+ box.removeAttribute('data-theme');
30190
+ }
30191
 
30192
+ if (typeof nextProps.animation === 'string') {
30193
+ box.setAttribute('data-animation', nextProps.animation);
 
 
 
 
 
 
 
 
 
 
30194
  } else {
30195
+ box.removeAttribute('data-animation');
 
 
 
 
30196
  }
 
 
 
 
 
30197
 
30198
+ if (nextProps.inertia) {
30199
+ box.setAttribute('data-inertia', '');
30200
+ } else {
30201
+ box.removeAttribute('data-inertia');
30202
+ }
 
30203
 
30204
+ box.style.maxWidth = typeof nextProps.maxWidth === 'number' ? nextProps.maxWidth + "px" : nextProps.maxWidth;
30205
+
30206
+ if (nextProps.role) {
30207
+ box.setAttribute('role', nextProps.role);
30208
+ } else {
30209
+ box.removeAttribute('role');
30210
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30211
 
30212
+ if (prevProps.content !== nextProps.content || prevProps.allowHTML !== nextProps.allowHTML) {
30213
+ setContent(content, instance.props);
30214
+ }
30215
 
30216
+ if (nextProps.arrow) {
30217
+ if (!arrow) {
30218
+ box.appendChild(createArrowElement(nextProps.arrow));
30219
+ } else if (prevProps.arrow !== nextProps.arrow) {
30220
+ box.removeChild(arrow);
30221
+ box.appendChild(createArrowElement(nextProps.arrow));
30222
+ }
30223
+ } else if (arrow) {
30224
+ box.removeChild(arrow);
30225
+ }
30226
+ }
30227
 
30228
+ return {
30229
+ popper: popper,
30230
+ onUpdate: onUpdate
30231
+ };
30232
+ } // Runtime check to identify if the render function is the default one; this
30233
+ // way we can apply default CSS transitions logic and it can be tree-shaken away
30234
 
30235
+ render.$$tippy = true;
30236
 
30237
+ var idCounter = 1;
30238
+ var mouseMoveListeners = []; // Used by `hideAll()`
30239
 
30240
+ var mountedInstances = [];
30241
+ function createTippy(reference, passedProps) {
30242
+ var props = evaluateProps(reference, Object.assign({}, tippy_esm_defaultProps, {}, getExtendedPassedProps(removeUndefinedProps(passedProps)))); // ===========================================================================
30243
+ // 🔒 Private members
30244
+ // ===========================================================================
30245
 
30246
+ var showTimeout;
30247
+ var hideTimeout;
30248
+ var scheduleHideAnimationFrame;
30249
+ var isVisibleFromClick = false;
30250
+ var didHideDueToDocumentMouseDown = false;
30251
+ var didTouchMove = false;
30252
+ var ignoreOnFirstUpdate = false;
30253
+ var lastTriggerEvent;
30254
+ var currentTransitionEndListener;
30255
+ var onFirstUpdate;
30256
+ var listeners = [];
30257
+ var debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, props.interactiveDebounce);
30258
+ var currentTarget; // ===========================================================================
30259
+ // 🔑 Public members
30260
+ // ===========================================================================
30261
 
30262
+ var id = idCounter++;
30263
+ var popperInstance = null;
30264
+ var plugins = unique(props.plugins);
30265
+ var state = {
30266
+ // Is the instance currently enabled?
30267
+ isEnabled: true,
30268
+ // Is the tippy currently showing and not transitioning out?
30269
+ isVisible: false,
30270
+ // Has the instance been destroyed?
30271
+ isDestroyed: false,
30272
+ // Is the tippy currently mounted to the DOM?
30273
+ isMounted: false,
30274
+ // Has the tippy finished transitioning in?
30275
+ isShown: false
30276
+ };
30277
+ var instance = {
30278
+ // properties
30279
+ id: id,
30280
+ reference: reference,
30281
+ popper: div(),
30282
+ popperInstance: popperInstance,
30283
+ props: props,
30284
+ state: state,
30285
+ plugins: plugins,
30286
+ // methods
30287
+ clearDelayTimeouts: clearDelayTimeouts,
30288
+ setProps: setProps,
30289
+ setContent: setContent,
30290
+ show: show,
30291
+ hide: hide,
30292
+ hideWithInteractivity: hideWithInteractivity,
30293
+ enable: enable,
30294
+ disable: disable,
30295
+ unmount: unmount,
30296
+ destroy: destroy
30297
+ }; // TODO: Investigate why this early return causes a TDZ error in the tests —
30298
+ // it doesn't seem to happen in the browser
30299
 
30300
+ /* istanbul ignore if */
 
 
 
 
 
30301
 
30302
+ if (!props.render) {
30303
+ if (false) {}
30304
 
30305
+ return instance;
30306
+ } // ===========================================================================
30307
+ // Initial mutations
30308
+ // ===========================================================================
30309
 
 
 
 
 
 
 
30310
 
30311
+ var _props$render = props.render(instance),
30312
+ popper = _props$render.popper,
30313
+ onUpdate = _props$render.onUpdate;
 
 
 
 
 
 
 
 
 
 
 
 
 
30314
 
30315
+ popper.setAttribute('data-tippy-root', '');
30316
+ popper.id = "tippy-" + instance.id;
30317
+ instance.popper = popper;
30318
+ reference._tippy = instance;
30319
+ popper._tippy = instance;
30320
+ var pluginsHooks = plugins.map(function (plugin) {
30321
+ return plugin.fn(instance);
30322
+ });
30323
+ var hasAriaExpanded = reference.hasAttribute('aria-expanded');
30324
+ addListeners();
30325
+ handleAriaExpandedAttribute();
30326
+ handleStyles();
30327
+ invokeHook('onCreate', [instance]);
30328
 
30329
+ if (props.showOnCreate) {
30330
+ scheduleShow();
30331
+ } // Prevent a tippy with a delay from hiding if the cursor left then returned
30332
+ // before it started hiding
 
 
 
 
 
 
 
 
 
30333
 
 
 
 
 
 
 
 
 
 
 
 
 
30334
 
30335
+ popper.addEventListener('mouseenter', function () {
30336
+ if (instance.props.interactive && instance.state.isVisible) {
30337
+ instance.clearDelayTimeouts();
30338
+ }
30339
+ });
30340
+ popper.addEventListener('mouseleave', function (event) {
30341
+ if (instance.props.interactive && instance.props.trigger.indexOf('mouseenter') >= 0) {
30342
+ getDocument().addEventListener('mousemove', debouncedOnMouseMove);
30343
+ debouncedOnMouseMove(event);
30344
+ }
30345
+ });
30346
+ return instance; // ===========================================================================
30347
+ // 🔒 Private methods
30348
+ // ===========================================================================
30349
 
30350
+ function getNormalizedTouchSettings() {
30351
+ var touch = instance.props.touch;
30352
+ return Array.isArray(touch) ? touch : [touch, 0];
30353
+ }
30354
 
30355
+ function getIsCustomTouchBehavior() {
30356
+ return getNormalizedTouchSettings()[0] === 'hold';
30357
+ }
30358
 
30359
+ function getIsDefaultRenderFn() {
30360
+ var _instance$props$rende;
30361
 
30362
+ // @ts-ignore
30363
+ return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
30364
+ }
30365
 
30366
+ function getCurrentTarget() {
30367
+ return currentTarget || reference;
30368
+ }
30369
 
30370
+ function getDocument() {
30371
+ var parent = getCurrentTarget().parentNode;
30372
+ return parent ? getOwnerDocument(parent) : document;
30373
+ }
30374
 
30375
+ function getDefaultTemplateChildren() {
30376
+ return getChildren(popper);
30377
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
30378
 
30379
+ function getDelay(isShow) {
30380
+ // For touch or keyboard input, force `0` delay for UX reasons
30381
+ // Also if the instance is mounted but not visible (transitioning out),
30382
+ // ignore delay
30383
+ if (instance.state.isMounted && !instance.state.isVisible || currentInput.isTouch || lastTriggerEvent && lastTriggerEvent.type === 'focus') {
30384
+ return 0;
30385
+ }
 
 
 
 
 
 
 
 
 
 
 
30386
 
30387
+ return getValueAtIndexOrReturn(instance.props.delay, isShow ? 0 : 1, tippy_esm_defaultProps.delay);
30388
+ }
30389
 
30390
+ function handleStyles() {
30391
+ popper.style.pointerEvents = instance.props.interactive && instance.state.isVisible ? '' : 'none';
30392
+ popper.style.zIndex = "" + instance.props.zIndex;
30393
+ }
30394
 
30395
+ function invokeHook(hook, args, shouldInvokePropsHook) {
30396
+ if (shouldInvokePropsHook === void 0) {
30397
+ shouldInvokePropsHook = true;
30398
+ }
30399
 
30400
+ pluginsHooks.forEach(function (pluginHooks) {
30401
+ if (pluginHooks[hook]) {
30402
+ pluginHooks[hook].apply(void 0, args);
30403
+ }
30404
+ });
30405
 
30406
+ if (shouldInvokePropsHook) {
30407
+ var _instance$props;
30408
 
30409
+ (_instance$props = instance.props)[hook].apply(_instance$props, args);
30410
+ }
30411
+ }
30412
 
30413
+ function handleAriaContentAttribute() {
30414
+ var aria = instance.props.aria;
30415
 
30416
+ if (!aria.content) {
30417
+ return;
30418
+ }
30419
+
30420
+ var attr = "aria-" + aria.content;
30421
+ var id = popper.id;
30422
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
30423
+ nodes.forEach(function (node) {
30424
+ var currentValue = node.getAttribute(attr);
30425
+
30426
+ if (instance.state.isVisible) {
30427
+ node.setAttribute(attr, currentValue ? currentValue + " " + id : id);
30428
+ } else {
30429
+ var nextValue = currentValue && currentValue.replace(id, '').trim();
30430
+
30431
+ if (nextValue) {
30432
+ node.setAttribute(attr, nextValue);
30433
+ } else {
30434
+ node.removeAttribute(attr);
 
30435
  }
 
 
 
 
 
 
30436
  }
30437
+ });
30438
+ }
30439
 
30440
+ function handleAriaExpandedAttribute() {
30441
+ if (hasAriaExpanded || !instance.props.aria.expanded) {
30442
+ return;
30443
+ }
30444
+
30445
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
30446
+ nodes.forEach(function (node) {
30447
+ if (instance.props.interactive) {
30448
+ node.setAttribute('aria-expanded', instance.state.isVisible && node === getCurrentTarget() ? 'true' : 'false');
30449
+ } else {
30450
+ node.removeAttribute('aria-expanded');
30451
  }
30452
+ });
30453
+ }
30454
 
30455
+ function cleanupInteractiveMouseListeners() {
30456
+ getDocument().removeEventListener('mousemove', debouncedOnMouseMove);
30457
+ mouseMoveListeners = mouseMoveListeners.filter(function (listener) {
30458
+ return listener !== debouncedOnMouseMove;
30459
+ });
30460
+ }
 
 
 
 
 
 
 
 
 
 
30461
 
30462
+ function onDocumentPress(event) {
30463
+ // Moved finger to scroll instead of an intentional tap outside
30464
+ if (currentInput.isTouch) {
30465
+ if (didTouchMove || event.type === 'mousedown') {
30466
+ return;
30467
+ }
30468
+ } // Clicked on interactive popper
30469
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30470
 
30471
+ if (instance.props.interactive && popper.contains(event.target)) {
30472
+ return;
30473
+ } // Clicked on the event listeners target
30474
+
30475
+
30476
+ if (getCurrentTarget().contains(event.target)) {
30477
+ if (currentInput.isTouch) {
30478
+ return;
30479
  }
 
30480
 
30481
+ if (instance.state.isVisible && instance.props.trigger.indexOf('click') >= 0) {
30482
+ return;
30483
+ }
30484
+ } else {
30485
+ invokeHook('onClickOutside', [instance, event]);
30486
+ }
30487
 
30488
+ if (instance.props.hideOnClick === true) {
30489
+ instance.clearDelayTimeouts();
30490
+ instance.hide(); // `mousedown` event is fired right before `focus` if pressing the
30491
+ // currentTarget. This lets a tippy with `focus` trigger know that it
30492
+ // should not show
30493
 
30494
+ didHideDueToDocumentMouseDown = true;
30495
+ setTimeout(function () {
30496
+ didHideDueToDocumentMouseDown = false;
30497
+ }); // The listener gets added in `scheduleShow()`, but this may be hiding it
30498
+ // before it shows, and hide()'s early bail-out behavior can prevent it
30499
+ // from being cleaned up
30500
 
30501
+ if (!instance.state.isMounted) {
30502
+ removeDocumentPress();
30503
+ }
30504
+ }
30505
+ }
30506
 
30507
+ function onTouchMove() {
30508
+ didTouchMove = true;
30509
+ }
30510
 
30511
+ function onTouchStart() {
30512
+ didTouchMove = false;
30513
+ }
30514
 
30515
+ function addDocumentPress() {
30516
+ var doc = getDocument();
30517
+ doc.addEventListener('mousedown', onDocumentPress, true);
30518
+ doc.addEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
30519
+ doc.addEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
30520
+ doc.addEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
30521
+ }
 
30522
 
30523
+ function removeDocumentPress() {
30524
+ var doc = getDocument();
30525
+ doc.removeEventListener('mousedown', onDocumentPress, true);
30526
+ doc.removeEventListener('touchend', onDocumentPress, TOUCH_OPTIONS);
30527
+ doc.removeEventListener('touchstart', onTouchStart, TOUCH_OPTIONS);
30528
+ doc.removeEventListener('touchmove', onTouchMove, TOUCH_OPTIONS);
30529
+ }
30530
+
30531
+ function onTransitionedOut(duration, callback) {
30532
+ onTransitionEnd(duration, function () {
30533
+ if (!instance.state.isVisible && popper.parentNode && popper.parentNode.contains(popper)) {
30534
+ callback();
30535
  }
30536
+ });
30537
+ }
30538
 
30539
+ function onTransitionedIn(duration, callback) {
30540
+ onTransitionEnd(duration, callback);
30541
+ }
 
 
30542
 
30543
+ function onTransitionEnd(duration, callback) {
30544
+ var box = getDefaultTemplateChildren().box;
 
 
 
 
 
 
 
30545
 
30546
+ function listener(event) {
30547
+ if (event.target === box) {
30548
+ updateTransitionEndListener(box, 'remove', listener);
30549
+ callback();
30550
+ }
30551
+ } // Make callback synchronous if duration is 0
30552
+ // `transitionend` won't fire otherwise
30553
 
 
 
 
 
30554
 
30555
+ if (duration === 0) {
30556
+ return callback();
 
30557
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30558
 
30559
+ updateTransitionEndListener(box, 'remove', currentTransitionEndListener);
30560
+ updateTransitionEndListener(box, 'add', listener);
30561
+ currentTransitionEndListener = listener;
30562
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30563
 
30564
+ function on(eventType, handler, options) {
30565
+ if (options === void 0) {
30566
+ options = false;
30567
+ }
30568
 
30569
+ var nodes = normalizeToArray(instance.props.triggerTarget || reference);
30570
+ nodes.forEach(function (node) {
30571
+ node.addEventListener(eventType, handler, options);
30572
+ listeners.push({
30573
+ node: node,
30574
+ eventType: eventType,
30575
+ handler: handler,
30576
+ options: options
30577
+ });
30578
+ });
30579
+ }
30580
 
30581
+ function addListeners() {
30582
+ if (getIsCustomTouchBehavior()) {
30583
+ on('touchstart', onTrigger, {
30584
+ passive: true
30585
+ });
30586
+ on('touchend', onMouseLeave, {
30587
+ passive: true
30588
+ });
30589
+ }
30590
 
30591
+ splitBySpaces(instance.props.trigger).forEach(function (eventType) {
30592
+ if (eventType === 'manual') {
30593
+ return;
30594
+ }
30595
 
30596
+ on(eventType, onTrigger);
30597
 
30598
+ switch (eventType) {
30599
+ case 'mouseenter':
30600
+ on('mouseleave', onMouseLeave);
30601
+ break;
30602
 
30603
+ case 'focus':
30604
+ on(isIE ? 'focusout' : 'blur', onBlurOrFocusOut);
30605
+ break;
30606
 
30607
+ case 'focusin':
30608
+ on('focusout', onBlurOrFocusOut);
30609
+ break;
30610
+ }
30611
+ });
30612
+ }
30613
 
30614
+ function removeListeners() {
30615
+ listeners.forEach(function (_ref) {
30616
+ var node = _ref.node,
30617
+ eventType = _ref.eventType,
30618
+ handler = _ref.handler,
30619
+ options = _ref.options;
30620
+ node.removeEventListener(eventType, handler, options);
30621
+ });
30622
+ listeners = [];
30623
+ }
 
 
 
 
 
 
 
30624
 
30625
+ function onTrigger(event) {
30626
+ var _lastTriggerEvent;
 
 
 
 
 
 
 
 
 
30627
 
30628
+ var shouldScheduleClickHide = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30629
 
30630
+ if (!instance.state.isEnabled || isEventListenerStopped(event) || didHideDueToDocumentMouseDown) {
30631
+ return;
 
 
 
 
 
 
30632
  }
 
 
 
 
 
30633
 
30634
+ var wasFocused = ((_lastTriggerEvent = lastTriggerEvent) == null ? void 0 : _lastTriggerEvent.type) === 'focus';
30635
+ lastTriggerEvent = event;
30636
+ currentTarget = event.currentTarget;
30637
+ handleAriaExpandedAttribute();
 
 
 
 
 
30638
 
30639
+ if (!instance.state.isVisible && isMouseEvent(event)) {
30640
+ // If scrolling, `mouseenter` events can be fired if the cursor lands
30641
+ // over a new target, but `mousemove` events don't get fired. This
30642
+ // causes interactive tooltips to get stuck open until the cursor is
30643
+ // moved
30644
+ mouseMoveListeners.forEach(function (listener) {
30645
+ return listener(event);
30646
+ });
30647
+ } // Toggle show/hide when clicking click-triggered tooltips
30648
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30649
 
30650
+ if (event.type === 'click' && (instance.props.trigger.indexOf('mouseenter') < 0 || isVisibleFromClick) && instance.props.hideOnClick !== false && instance.state.isVisible) {
30651
+ shouldScheduleClickHide = true;
30652
+ } else {
30653
+ scheduleShow(event);
 
 
 
 
 
 
 
 
 
30654
  }
30655
+
30656
+ if (event.type === 'click') {
30657
+ isVisibleFromClick = !shouldScheduleClickHide;
30658
+ }
30659
+
30660
+ if (shouldScheduleClickHide && !wasFocused) {
30661
+ scheduleHide(event);
30662
+ }
30663
+ }
30664
+
30665
+ function onMouseMove(event) {
30666
+ var target = event.target;
30667
+ var isCursorOverReferenceOrPopper = getCurrentTarget().contains(target) || popper.contains(target);
30668
+
30669
+ if (event.type === 'mousemove' && isCursorOverReferenceOrPopper) {
30670
+ return;
30671
  }
 
 
 
 
 
 
 
30672
 
30673
+ var popperTreeData = getNestedPopperTree().concat(popper).map(function (popper) {
30674
+ var _instance$popperInsta;
30675
 
30676
+ var instance = popper._tippy;
30677
+ var state = (_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.state;
30678
 
30679
+ if (state) {
30680
+ return {
30681
+ popperRect: popper.getBoundingClientRect(),
30682
+ popperState: state,
30683
+ props: props
30684
+ };
30685
+ }
30686
 
30687
+ return null;
30688
+ }).filter(Boolean);
30689
 
30690
+ if (isCursorOutsideInteractiveBorder(popperTreeData, event)) {
30691
+ cleanupInteractiveMouseListeners();
30692
+ scheduleHide(event);
30693
+ }
30694
+ }
30695
 
30696
+ function onMouseLeave(event) {
30697
+ var shouldBail = isEventListenerStopped(event) || instance.props.trigger.indexOf('click') >= 0 && isVisibleFromClick;
30698
 
30699
+ if (shouldBail) {
30700
+ return;
30701
+ }
30702
 
30703
+ if (instance.props.interactive) {
30704
+ instance.hideWithInteractivity(event);
30705
+ return;
30706
+ }
30707
 
30708
+ scheduleHide(event);
30709
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30710
 
30711
+ function onBlurOrFocusOut(event) {
30712
+ if (instance.props.trigger.indexOf('focusin') < 0 && event.target !== getCurrentTarget()) {
30713
+ return;
30714
+ } // If focus was moved to within the popper
 
 
30715
 
 
 
30716
 
30717
+ if (instance.props.interactive && event.relatedTarget && popper.contains(event.relatedTarget)) {
30718
+ return;
30719
+ }
30720
 
30721
+ scheduleHide(event);
30722
+ }
 
 
30723
 
30724
+ function isEventListenerStopped(event) {
30725
+ return currentInput.isTouch ? getIsCustomTouchBehavior() !== event.type.indexOf('touch') >= 0 : false;
30726
+ }
 
30727
 
30728
+ function createPopperInstance() {
30729
+ destroyPopperInstance();
30730
+ var _instance$props2 = instance.props,
30731
+ popperOptions = _instance$props2.popperOptions,
30732
+ placement = _instance$props2.placement,
30733
+ offset = _instance$props2.offset,
30734
+ getReferenceClientRect = _instance$props2.getReferenceClientRect,
30735
+ moveTransition = _instance$props2.moveTransition;
30736
+ var arrow = getIsDefaultRenderFn() ? getChildren(popper).arrow : null;
30737
+ var computedReference = getReferenceClientRect ? {
30738
+ getBoundingClientRect: getReferenceClientRect,
30739
+ contextElement: getReferenceClientRect.contextElement || getCurrentTarget()
30740
+ } : reference;
30741
+ var tippyModifier = {
30742
+ name: '$$tippy',
30743
+ enabled: true,
30744
+ phase: 'beforeWrite',
30745
+ requires: ['computeStyles'],
30746
+ fn: function fn(_ref2) {
30747
+ var state = _ref2.state;
30748
 
30749
+ if (getIsDefaultRenderFn()) {
30750
+ var _getDefaultTemplateCh = getDefaultTemplateChildren(),
30751
+ box = _getDefaultTemplateCh.box;
30752
 
30753
+ ['placement', 'reference-hidden', 'escaped'].forEach(function (attr) {
30754
+ if (attr === 'placement') {
30755
+ box.setAttribute('data-placement', state.placement);
30756
+ } else {
30757
+ if (state.attributes.popper["data-popper-" + attr]) {
30758
+ box.setAttribute("data-" + attr, '');
30759
+ } else {
30760
+ box.removeAttribute("data-" + attr);
30761
+ }
30762
+ }
30763
+ });
30764
+ state.attributes.popper = {};
30765
+ }
30766
  }
30767
+ };
30768
+ var modifiers = [{
30769
+ name: 'offset',
30770
+ options: {
30771
+ offset: offset
 
 
 
 
 
 
 
 
 
 
30772
  }
30773
+ }, {
30774
+ name: 'preventOverflow',
30775
+ options: {
30776
+ padding: {
30777
+ top: 2,
30778
+ bottom: 2,
30779
+ left: 5,
30780
+ right: 5
30781
+ }
30782
+ }
30783
+ }, {
30784
+ name: 'flip',
30785
+ options: {
30786
+ padding: 5
30787
+ }
30788
+ }, {
30789
+ name: 'computeStyles',
30790
+ options: {
30791
+ adaptive: !moveTransition
30792
+ }
30793
+ }, tippyModifier];
30794
 
30795
+ if (getIsDefaultRenderFn() && arrow) {
30796
+ modifiers.push({
30797
+ name: 'arrow',
30798
+ options: {
30799
+ element: arrow,
30800
+ padding: 3
30801
+ }
30802
+ });
30803
+ }
30804
 
30805
+ modifiers.push.apply(modifiers, (popperOptions == null ? void 0 : popperOptions.modifiers) || []);
30806
+ instance.popperInstance = popper_createPopper(computedReference, popper, Object.assign({}, popperOptions, {
30807
+ placement: placement,
30808
+ onFirstUpdate: onFirstUpdate,
30809
+ modifiers: modifiers
30810
+ }));
30811
+ }
30812
 
30813
+ function destroyPopperInstance() {
30814
+ if (instance.popperInstance) {
30815
+ instance.popperInstance.destroy();
30816
+ instance.popperInstance = null;
30817
  }
30818
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30819
 
30820
+ function mount() {
30821
+ var appendTo = instance.props.appendTo;
30822
+ var parentNode; // By default, we'll append the popper to the triggerTargets's parentNode so
30823
+ // it's directly after the reference element so the elements inside the
30824
+ // tippy can be tabbed to
30825
+ // If there are clipping issues, the user can specify a different appendTo
30826
+ // and ensure focus management is handled correctly manually
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30827
 
30828
+ var node = getCurrentTarget();
30829
 
30830
+ if (instance.props.interactive && appendTo === tippy_esm_defaultProps.appendTo || appendTo === 'parent') {
30831
+ parentNode = node.parentNode;
30832
+ } else {
30833
+ parentNode = invokeWithArgsOrReturn(appendTo, [node]);
30834
+ } // The popper element needs to exist on the DOM before its position can be
30835
+ // updated as Popper needs to read its dimensions
30836
 
30837
 
30838
+ if (!parentNode.contains(popper)) {
30839
+ parentNode.appendChild(popper);
30840
+ }
30841
 
30842
+ createPopperInstance();
30843
+ /* istanbul ignore else */
30844
 
30845
+ if (false) {}
30846
+ }
30847
 
30848
+ function getNestedPopperTree() {
30849
+ return arrayFrom(popper.querySelectorAll('[data-tippy-root]'));
30850
+ }
30851
 
30852
+ function scheduleShow(event) {
30853
+ instance.clearDelayTimeouts();
30854
 
30855
+ if (event) {
30856
+ invokeHook('onTrigger', [instance, event]);
30857
+ }
30858
 
30859
+ addDocumentPress();
30860
+ var delay = getDelay(true);
30861
 
30862
+ var _getNormalizedTouchSe = getNormalizedTouchSettings(),
30863
+ touchValue = _getNormalizedTouchSe[0],
30864
+ touchDelay = _getNormalizedTouchSe[1];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30865
 
30866
+ if (currentInput.isTouch && touchValue === 'hold' && touchDelay) {
30867
+ delay = touchDelay;
30868
+ }
 
 
 
30869
 
30870
+ if (delay) {
30871
+ showTimeout = setTimeout(function () {
30872
+ instance.show();
30873
+ }, delay);
30874
+ } else {
30875
+ instance.show();
30876
+ }
30877
+ }
30878
 
30879
+ function scheduleHide(event) {
30880
+ instance.clearDelayTimeouts();
30881
+ invokeHook('onUntrigger', [instance, event]);
30882
 
30883
+ if (!instance.state.isVisible) {
30884
+ removeDocumentPress();
30885
+ return;
30886
+ } // For interactive tippies, scheduleHide is added to a document.body handler
30887
+ // from onMouseLeave so must intercept scheduled hides from mousemove/leave
30888
+ // events when trigger contains mouseenter and click, and the tip is
30889
+ // currently shown as a result of a click.
30890
 
 
 
30891
 
30892
+ if (instance.props.trigger.indexOf('mouseenter') >= 0 && instance.props.trigger.indexOf('click') >= 0 && ['mouseleave', 'mousemove'].indexOf(event.type) >= 0 && isVisibleFromClick) {
30893
+ return;
30894
+ }
30895
 
30896
+ var delay = getDelay(false);
30897
+
30898
+ if (delay) {
30899
+ hideTimeout = setTimeout(function () {
30900
+ if (instance.state.isVisible) {
30901
+ instance.hide();
30902
+ }
30903
+ }, delay);
30904
+ } else {
30905
+ // Fixes a `transitionend` problem when it fires 1 frame too
30906
+ // late sometimes, we don't want hide() to be called.
30907
+ scheduleHideAnimationFrame = requestAnimationFrame(function () {
30908
+ instance.hide();
30909
+ });
30910
  }
30911
+ } // ===========================================================================
30912
+ // 🔑 Public methods
30913
+ // ===========================================================================
 
 
 
 
 
 
 
 
 
 
 
 
30914
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30915
 
30916
+ function enable() {
30917
+ instance.state.isEnabled = true;
30918
+ }
30919
 
30920
+ function disable() {
30921
+ // Disabling the instance should also hide it
30922
+ // https://github.com/atomiks/tippy.js-react/issues/106
30923
+ instance.hide();
30924
+ instance.state.isEnabled = false;
30925
+ }
30926
 
30927
+ function clearDelayTimeouts() {
30928
+ clearTimeout(showTimeout);
30929
+ clearTimeout(hideTimeout);
30930
+ cancelAnimationFrame(scheduleHideAnimationFrame);
30931
+ }
30932
 
30933
+ function setProps(partialProps) {
30934
+ /* istanbul ignore else */
30935
+ if (false) {}
30936
 
30937
+ if (instance.state.isDestroyed) {
30938
+ return;
30939
+ }
30940
 
30941
+ invokeHook('onBeforeUpdate', [instance, partialProps]);
30942
+ removeListeners();
30943
+ var prevProps = instance.props;
30944
+ var nextProps = evaluateProps(reference, Object.assign({}, instance.props, {}, partialProps, {
30945
+ ignoreAttributes: true
30946
+ }));
30947
+ instance.props = nextProps;
30948
+ addListeners();
30949
 
30950
+ if (prevProps.interactiveDebounce !== nextProps.interactiveDebounce) {
30951
+ cleanupInteractiveMouseListeners();
30952
+ debouncedOnMouseMove = tippy_esm_debounce(onMouseMove, nextProps.interactiveDebounce);
30953
+ } // Ensure stale aria-expanded attributes are removed
30954
 
30955
 
30956
+ if (prevProps.triggerTarget && !nextProps.triggerTarget) {
30957
+ normalizeToArray(prevProps.triggerTarget).forEach(function (node) {
30958
+ node.removeAttribute('aria-expanded');
30959
+ });
30960
+ } else if (nextProps.triggerTarget) {
30961
+ reference.removeAttribute('aria-expanded');
30962
+ }
30963
 
30964
+ handleAriaExpandedAttribute();
30965
+ handleStyles();
30966
 
30967
+ if (onUpdate) {
30968
+ onUpdate(prevProps, nextProps);
30969
+ }
30970
 
30971
+ if (instance.popperInstance) {
30972
+ createPopperInstance(); // Fixes an issue with nested tippies if they are all getting re-rendered,
30973
+ // and the nested ones get re-rendered first.
30974
+ // https://github.com/atomiks/tippyjs-react/issues/177
30975
+ // TODO: find a cleaner / more efficient solution(!)
30976
 
30977
+ getNestedPopperTree().forEach(function (nestedPopper) {
30978
+ // React (and other UI libs likely) requires a rAF wrapper as it flushes
30979
+ // its work in one
30980
+ requestAnimationFrame(nestedPopper._tippy.popperInstance.forceUpdate);
30981
+ });
30982
+ }
30983
 
30984
+ invokeHook('onAfterUpdate', [instance, partialProps]);
30985
+ }
30986
 
30987
+ function setContent(content) {
30988
+ instance.setProps({
30989
+ content: content
30990
+ });
30991
+ }
 
 
 
30992
 
30993
+ function show() {
30994
+ /* istanbul ignore else */
30995
+ if (false) {} // Early bail-out
30996
+
30997
+
30998
+ var isAlreadyVisible = instance.state.isVisible;
30999
+ var isDestroyed = instance.state.isDestroyed;
31000
+ var isDisabled = !instance.state.isEnabled;
31001
+ var isTouchAndTouchDisabled = currentInput.isTouch && !instance.props.touch;
31002
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 0, tippy_esm_defaultProps.duration);
31003
+
31004
+ if (isAlreadyVisible || isDestroyed || isDisabled || isTouchAndTouchDisabled) {
31005
+ return;
31006
+ } // Normalize `disabled` behavior across browsers.
31007
+ // Firefox allows events on disabled elements, but Chrome doesn't.
31008
+ // Using a wrapper element (i.e. <span>) is recommended.
31009
 
 
 
 
 
 
31010
 
31011
+ if (getCurrentTarget().hasAttribute('disabled')) {
31012
+ return;
31013
+ }
 
 
 
 
31014
 
31015
+ invokeHook('onShow', [instance], false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31016
 
31017
+ if (instance.props.onShow(instance) === false) {
31018
+ return;
 
 
 
 
 
 
 
 
 
 
31019
  }
 
 
 
 
 
 
 
 
 
 
 
31020
 
31021
+ instance.state.isVisible = true;
 
31022
 
31023
+ if (getIsDefaultRenderFn()) {
31024
+ popper.style.visibility = 'visible';
31025
+ }
31026
 
31027
+ handleStyles();
31028
+ addDocumentPress();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31029
 
31030
+ if (!instance.state.isMounted) {
31031
+ popper.style.transition = 'none';
31032
+ } // If flipping to the opposite side after hiding at least once, the
31033
+ // animation will use the wrong placement without resetting the duration
31034
 
31035
 
31036
+ if (getIsDefaultRenderFn()) {
31037
+ var _getDefaultTemplateCh2 = getDefaultTemplateChildren(),
31038
+ box = _getDefaultTemplateCh2.box,
31039
+ content = _getDefaultTemplateCh2.content;
31040
 
31041
+ setTransitionDuration([box, content], 0);
31042
+ }
31043
 
31044
+ onFirstUpdate = function onFirstUpdate() {
31045
+ var _instance$popperInsta2;
31046
 
31047
+ if (!instance.state.isVisible || ignoreOnFirstUpdate) {
31048
+ return;
31049
+ }
31050
 
31051
+ ignoreOnFirstUpdate = true; // reflow
31052
 
31053
+ void popper.offsetHeight;
31054
+ popper.style.transition = instance.props.moveTransition;
31055
 
31056
+ if (getIsDefaultRenderFn() && instance.props.animation) {
31057
+ var _getDefaultTemplateCh3 = getDefaultTemplateChildren(),
31058
+ _box = _getDefaultTemplateCh3.box,
31059
+ _content = _getDefaultTemplateCh3.content;
31060
 
31061
+ setTransitionDuration([_box, _content], duration);
31062
+ setVisibilityState([_box, _content], 'visible');
31063
+ }
 
 
 
 
 
 
 
 
 
31064
 
31065
+ handleAriaContentAttribute();
31066
+ handleAriaExpandedAttribute();
31067
+ pushIfUnique(mountedInstances, instance); // certain modifiers (e.g. `maxSize`) require a second update after the
31068
+ // popper has been positioned for the first time
31069
 
31070
+ (_instance$popperInsta2 = instance.popperInstance) == null ? void 0 : _instance$popperInsta2.forceUpdate();
31071
+ instance.state.isMounted = true;
31072
+ invokeHook('onMount', [instance]);
 
 
31073
 
31074
+ if (instance.props.animation && getIsDefaultRenderFn()) {
31075
+ onTransitionedIn(duration, function () {
31076
+ instance.state.isShown = true;
31077
+ invokeHook('onShown', [instance]);
31078
+ });
31079
+ }
31080
+ };
31081
 
31082
+ mount();
 
 
31083
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31084
 
31085
+ function hide() {
31086
+ /* istanbul ignore else */
31087
+ if (false) {} // Early bail-out
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31088
 
 
 
 
 
31089
 
31090
+ var isAlreadyHidden = !instance.state.isVisible;
31091
+ var isDestroyed = instance.state.isDestroyed;
31092
+ var isDisabled = !instance.state.isEnabled;
31093
+ var duration = getValueAtIndexOrReturn(instance.props.duration, 1, tippy_esm_defaultProps.duration);
 
31094
 
31095
+ if (isAlreadyHidden || isDestroyed || isDisabled) {
31096
+ return;
31097
+ }
31098
 
31099
+ invokeHook('onHide', [instance], false);
31100
+
31101
+ if (instance.props.onHide(instance) === false) {
31102
+ return;
31103
  }
31104
 
31105
+ instance.state.isVisible = false;
31106
+ instance.state.isShown = false;
31107
+ ignoreOnFirstUpdate = false;
31108
+ isVisibleFromClick = false;
31109
 
31110
+ if (getIsDefaultRenderFn()) {
31111
+ popper.style.visibility = 'hidden';
31112
+ }
 
31113
 
31114
+ cleanupInteractiveMouseListeners();
31115
+ removeDocumentPress();
31116
+ handleStyles();
 
 
31117
 
31118
+ if (getIsDefaultRenderFn()) {
31119
+ var _getDefaultTemplateCh4 = getDefaultTemplateChildren(),
31120
+ box = _getDefaultTemplateCh4.box,
31121
+ content = _getDefaultTemplateCh4.content;
31122
+
31123
+ if (instance.props.animation) {
31124
+ setTransitionDuration([box, content], duration);
31125
+ setVisibilityState([box, content], 'hidden');
31126
+ }
31127
  }
31128
 
31129
+ handleAriaContentAttribute();
31130
+ handleAriaExpandedAttribute();
 
 
31131
 
31132
+ if (instance.props.animation) {
31133
+ if (getIsDefaultRenderFn()) {
31134
+ onTransitionedOut(duration, instance.unmount);
31135
+ }
31136
+ } else {
31137
+ instance.unmount();
31138
+ }
31139
+ }
31140
 
31141
+ function hideWithInteractivity(event) {
31142
+ /* istanbul ignore else */
31143
+ if (false) {}
31144
 
31145
+ getDocument().addEventListener('mousemove', debouncedOnMouseMove);
31146
+ pushIfUnique(mouseMoveListeners, debouncedOnMouseMove);
31147
+ debouncedOnMouseMove(event);
31148
  }
31149
 
31150
+ function unmount() {
31151
+ /* istanbul ignore else */
31152
+ if (false) {}
31153
 
31154
+ if (instance.state.isVisible) {
31155
+ instance.hide();
31156
+ }
31157
 
31158
+ if (!instance.state.isMounted) {
31159
+ return;
31160
+ }
31161
+
31162
+ destroyPopperInstance(); // If a popper is not interactive, it will be appended outside the popper
31163
+ // tree by default. This seems mainly for interactive tippies, but we should
31164
+ // find a workaround if possible
31165
+
31166
+ getNestedPopperTree().forEach(function (nestedPopper) {
31167
+ nestedPopper._tippy.unmount();
31168
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31169
 
31170
+ if (popper.parentNode) {
31171
+ popper.parentNode.removeChild(popper);
31172
+ }
31173
 
31174
+ mountedInstances = mountedInstances.filter(function (i) {
31175
+ return i !== instance;
31176
+ });
31177
+ instance.state.isMounted = false;
31178
+ invokeHook('onHidden', [instance]);
31179
+ }
31180
 
31181
+ function destroy() {
31182
+ /* istanbul ignore else */
31183
+ if (false) {}
31184
 
31185
+ if (instance.state.isDestroyed) {
31186
+ return;
31187
+ }
31188
 
31189
+ instance.clearDelayTimeouts();
31190
+ instance.unmount();
31191
+ removeListeners();
31192
+ delete reference._tippy;
31193
+ instance.state.isDestroyed = true;
31194
+ invokeHook('onDestroy', [instance]);
31195
+ }
31196
+ }
31197
 
31198
+ function tippy(targets, optionalProps) {
31199
+ if (optionalProps === void 0) {
31200
+ optionalProps = {};
31201
+ }
31202
 
31203
+ var plugins = tippy_esm_defaultProps.plugins.concat(optionalProps.plugins || []);
31204
+ /* istanbul ignore else */
31205
 
31206
+ if (false) {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31207
 
31208
+ bindGlobalEventListeners();
31209
+ var passedProps = Object.assign({}, optionalProps, {
31210
+ plugins: plugins
31211
+ });
31212
+ var elements = getArrayOfElements(targets);
31213
+ /* istanbul ignore else */
31214
 
31215
+ if (false) { var isMoreThanOneReferenceElement, isSingleContentElement; }
 
31216
 
31217
+ var instances = elements.reduce(function (acc, reference) {
31218
+ var instance = reference && createTippy(reference, passedProps);
 
 
31219
 
31220
+ if (instance) {
31221
+ acc.push(instance);
31222
+ }
 
 
31223
 
31224
+ return acc;
31225
+ }, []);
31226
+ return tippy_esm_isElement(targets) ? instances[0] : instances;
31227
+ }
31228
 
31229
+ tippy.defaultProps = tippy_esm_defaultProps;
31230
+ tippy.setDefaultProps = setDefaultProps;
31231
+ tippy.currentInput = currentInput;
31232
+ var hideAll = function hideAll(_temp) {
31233
+ var _ref = _temp === void 0 ? {} : _temp,
31234
+ excludedReferenceOrInstance = _ref.exclude,
31235
+ duration = _ref.duration;
31236
 
31237
+ mountedInstances.forEach(function (instance) {
31238
+ var isExcluded = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31239
 
31240
+ if (excludedReferenceOrInstance) {
31241
+ isExcluded = isReferenceElement(excludedReferenceOrInstance) ? instance.reference === excludedReferenceOrInstance : instance.popper === excludedReferenceOrInstance.popper;
 
 
 
 
 
 
 
 
 
 
 
 
 
31242
  }
 
 
 
 
 
 
 
 
 
31243
 
31244
+ if (!isExcluded) {
31245
+ var originalDuration = instance.props.duration;
31246
+ instance.setProps({
31247
+ duration: duration
31248
+ });
31249
+ instance.hide();
31250
 
31251
+ if (!instance.state.isDestroyed) {
31252
+ instance.setProps({
31253
+ duration: originalDuration
31254
+ });
31255
+ }
31256
+ }
31257
+ });
31258
+ };
31259
 
31260
+ // every time the popper is destroyed (i.e. a new target), removing the styles
31261
+ // and causing transitions to break for singletons when the console is open, but
31262
+ // most notably for non-transform styles being used, `gpuAcceleration: false`.
31263
 
31264
+ var applyStylesModifier = Object.assign({}, modifiers_applyStyles, {
31265
+ effect: function effect(_ref) {
31266
+ var state = _ref.state;
31267
+ var initialStyles = {
31268
+ popper: {
31269
+ position: state.options.strategy,
31270
+ left: '0',
31271
+ top: '0',
31272
+ margin: '0'
31273
+ },
31274
+ arrow: {
31275
+ position: 'absolute'
31276
+ },
31277
+ reference: {}
31278
+ };
31279
+ Object.assign(state.elements.popper.style, initialStyles.popper);
31280
+ state.styles = initialStyles;
31281
 
31282
+ if (state.elements.arrow) {
31283
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
31284
+ } // intentionally return no cleanup function
31285
+ // return () => { ... }
31286
 
31287
+ }
31288
+ });
31289
 
31290
+ var createSingleton = function createSingleton(tippyInstances, optionalProps) {
31291
+ var _optionalProps$popper;
31292
 
31293
+ if (optionalProps === void 0) {
31294
+ optionalProps = {};
31295
+ }
31296
 
31297
+ /* istanbul ignore else */
31298
+ if (false) {}
31299
 
31300
+ var individualInstances = tippyInstances;
31301
+ var references = [];
31302
+ var currentTarget;
31303
+ var overrides = optionalProps.overrides;
31304
+ var interceptSetPropsCleanups = [];
31305
+ var shownOnCreate = false;
31306
 
31307
+ function setReferences() {
31308
+ references = individualInstances.map(function (instance) {
31309
+ return instance.reference;
31310
+ });
 
 
 
 
31311
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31312
 
31313
+ function enableInstances(isEnabled) {
31314
+ individualInstances.forEach(function (instance) {
31315
+ if (isEnabled) {
31316
+ instance.enable();
31317
+ } else {
31318
+ instance.disable();
31319
+ }
31320
+ });
31321
+ }
31322
 
31323
+ function interceptSetProps(singleton) {
31324
+ return individualInstances.map(function (instance) {
31325
+ var originalSetProps = instance.setProps;
 
 
 
 
31326
 
31327
+ instance.setProps = function (props) {
31328
+ originalSetProps(props);
31329
 
31330
+ if (instance.reference === currentTarget) {
31331
+ singleton.setProps(props);
 
 
31332
  }
31333
+ };
 
 
31334
 
31335
+ return function () {
31336
+ instance.setProps = originalSetProps;
31337
+ };
31338
+ });
31339
+ } // have to pass singleton, as it maybe undefined on first call
31340
 
 
 
 
 
 
 
 
 
31341
 
31342
+ function prepareInstance(singleton, target) {
31343
+ var index = references.indexOf(target); // bail-out
31344
 
31345
+ if (target === currentTarget) {
31346
+ return;
 
 
 
31347
  }
31348
 
31349
+ currentTarget = target;
31350
+ var overrideProps = (overrides || []).concat('content').reduce(function (acc, prop) {
31351
+ acc[prop] = individualInstances[index].props[prop];
31352
+ return acc;
31353
+ }, {});
31354
+ singleton.setProps(Object.assign({}, overrideProps, {
31355
+ getReferenceClientRect: typeof overrideProps.getReferenceClientRect === 'function' ? overrideProps.getReferenceClientRect : function () {
31356
+ return target.getBoundingClientRect();
31357
+ }
31358
+ }));
31359
+ }
31360
 
31361
+ enableInstances(false);
31362
+ setReferences();
31363
+ var plugin = {
31364
+ fn: function fn() {
31365
+ return {
31366
+ onDestroy: function onDestroy() {
31367
+ enableInstances(true);
31368
+ },
31369
+ onHidden: function onHidden() {
31370
+ currentTarget = null;
31371
+ },
31372
+ onClickOutside: function onClickOutside(instance) {
31373
+ if (instance.props.showOnCreate && !shownOnCreate) {
31374
+ shownOnCreate = true;
31375
+ currentTarget = null;
31376
+ }
31377
+ },
31378
+ onShow: function onShow(instance) {
31379
+ if (instance.props.showOnCreate && !shownOnCreate) {
31380
+ shownOnCreate = true;
31381
+ prepareInstance(instance, references[0]);
31382
+ }
31383
+ },
31384
+ onTrigger: function onTrigger(instance, event) {
31385
+ prepareInstance(instance, event.currentTarget);
31386
+ }
31387
+ };
31388
  }
31389
+ };
31390
+ var singleton = tippy(div(), Object.assign({}, removeProperties(optionalProps, ['overrides']), {
31391
+ plugins: [plugin].concat(optionalProps.plugins || []),
31392
+ triggerTarget: references,
31393
+ popperOptions: Object.assign({}, optionalProps.popperOptions, {
31394
+ modifiers: [].concat(((_optionalProps$popper = optionalProps.popperOptions) == null ? void 0 : _optionalProps$popper.modifiers) || [], [applyStylesModifier])
31395
+ })
31396
+ }));
31397
+ var originalShow = singleton.show;
 
 
 
 
 
31398
 
31399
+ singleton.show = function (target) {
31400
+ originalShow(); // first time, showOnCreate or programmatic call with no params
31401
+ // default to showing first instance
 
 
 
31402
 
31403
+ if (!currentTarget && target == null) {
31404
+ return prepareInstance(singleton, references[0]);
31405
+ } // triggered from event (do nothing as prepareInstance already called by onTrigger)
31406
+ // programmatic call with no params when already visible (do nothing again)
 
 
 
 
 
31407
 
 
 
 
 
 
31408
 
31409
+ if (currentTarget && target == null) {
31410
+ return;
31411
+ } // target is index of instance
31412
 
 
 
 
 
31413
 
31414
+ if (typeof target === 'number') {
31415
+ return references[target] && prepareInstance(singleton, references[target]);
31416
+ } // target is a child tippy instance
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31417
 
31418
 
31419
+ if (individualInstances.includes(target)) {
31420
+ var ref = target.reference;
31421
+ return prepareInstance(singleton, ref);
31422
+ } // target is a ReferenceElement
31423
 
31424
 
31425
+ if (references.includes(target)) {
31426
+ return prepareInstance(singleton, target);
31427
+ }
31428
+ };
31429
 
31430
+ singleton.showNext = function () {
31431
+ var first = references[0];
31432
 
31433
+ if (!currentTarget) {
31434
+ return singleton.show(0);
31435
+ }
31436
 
31437
+ var index = references.indexOf(currentTarget);
31438
+ singleton.show(references[index + 1] || first);
31439
+ };
31440
 
31441
+ singleton.showPrevious = function () {
31442
+ var last = references[references.length - 1];
31443
 
31444
+ if (!currentTarget) {
31445
+ return singleton.show(last);
31446
+ }
31447
 
31448
+ var index = references.indexOf(currentTarget);
31449
+ var target = references[index - 1] || last;
31450
+ singleton.show(target);
31451
+ };
31452
 
31453
+ var originalSetProps = singleton.setProps;
31454
 
31455
+ singleton.setProps = function (props) {
31456
+ overrides = props.overrides || overrides;
31457
+ originalSetProps(props);
31458
+ };
31459
 
31460
+ singleton.setInstances = function (nextInstances) {
31461
+ enableInstances(true);
31462
+ interceptSetPropsCleanups.forEach(function (fn) {
31463
+ return fn();
31464
+ });
31465
+ individualInstances = nextInstances;
31466
+ enableInstances(false);
31467
+ setReferences();
31468
+ interceptSetProps(singleton);
31469
+ singleton.setProps({
31470
+ triggerTarget: references
31471
+ });
31472
+ };
31473
 
31474
+ interceptSetPropsCleanups = interceptSetProps(singleton);
31475
+ return singleton;
31476
+ };
31477
 
31478
+ var BUBBLING_EVENTS_MAP = {
31479
+ mouseover: 'mouseenter',
31480
+ focusin: 'focus',
31481
+ click: 'click'
31482
+ };
31483
+ /**
31484
+ * Creates a delegate instance that controls the creation of tippy instances
31485
+ * for child elements (`target` CSS selector).
31486
+ */
31487
 
31488
+ function delegate(targets, props) {
31489
+ /* istanbul ignore else */
31490
+ if (false) {}
 
 
 
 
31491
 
31492
+ var listeners = [];
31493
+ var childTippyInstances = [];
31494
+ var disabled = false;
31495
+ var target = props.target;
31496
+ var nativeProps = removeProperties(props, ['target']);
31497
+ var parentProps = Object.assign({}, nativeProps, {
31498
+ trigger: 'manual',
31499
+ touch: false
31500
+ });
31501
+ var childProps = Object.assign({}, nativeProps, {
31502
+ showOnCreate: true
31503
+ });
31504
+ var returnValue = tippy(targets, parentProps);
31505
+ var normalizedReturnValue = normalizeToArray(returnValue);
31506
 
31507
+ function onTrigger(event) {
31508
+ if (!event.target || disabled) {
31509
+ return;
31510
+ }
 
 
 
31511
 
31512
+ var targetNode = event.target.closest(target);
 
31513
 
31514
+ if (!targetNode) {
31515
+ return;
31516
+ } // Get relevant trigger with fallbacks:
31517
+ // 1. Check `data-tippy-trigger` attribute on target node
31518
+ // 2. Fallback to `trigger` passed to `delegate()`
31519
+ // 3. Fallback to `defaultProps.trigger`
31520
 
31521
 
31522
+ var trigger = targetNode.getAttribute('data-tippy-trigger') || props.trigger || tippy_esm_defaultProps.trigger; // @ts-ignore
 
 
31523
 
31524
+ if (targetNode._tippy) {
31525
+ return;
31526
+ }
 
31527
 
31528
+ if (event.type === 'touchstart' && typeof childProps.touch === 'boolean') {
31529
+ return;
31530
+ }
31531
 
31532
+ if (event.type !== 'touchstart' && trigger.indexOf(BUBBLING_EVENTS_MAP[event.type]) < 0) {
31533
+ return;
31534
+ }
31535
 
31536
+ var instance = tippy(targetNode, childProps);
 
 
31537
 
31538
+ if (instance) {
31539
+ childTippyInstances = childTippyInstances.concat(instance);
31540
+ }
 
 
 
 
 
 
 
 
 
 
31541
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31542
 
31543
+ function on(node, eventType, handler, options) {
31544
+ if (options === void 0) {
31545
+ options = false;
31546
+ }
31547
 
31548
+ node.addEventListener(eventType, handler, options);
31549
+ listeners.push({
31550
+ node: node,
31551
+ eventType: eventType,
31552
+ handler: handler,
31553
+ options: options
31554
+ });
31555
+ }
31556
 
31557
+ function addEventListeners(instance) {
31558
+ var reference = instance.reference;
31559
+ on(reference, 'touchstart', onTrigger, TOUCH_OPTIONS);
31560
+ on(reference, 'mouseover', onTrigger);
31561
+ on(reference, 'focusin', onTrigger);
31562
+ on(reference, 'click', onTrigger);
31563
+ }
31564
+
31565
+ function removeEventListeners() {
31566
+ listeners.forEach(function (_ref) {
31567
+ var node = _ref.node,
31568
+ eventType = _ref.eventType,
31569
+ handler = _ref.handler,
31570
+ options = _ref.options;
31571
+ node.removeEventListener(eventType, handler, options);
31572
+ });
31573
+ listeners = [];
31574
+ }
31575
 
31576
+ function applyMutations(instance) {
31577
+ var originalDestroy = instance.destroy;
31578
+ var originalEnable = instance.enable;
31579
+ var originalDisable = instance.disable;
31580
 
31581
+ instance.destroy = function (shouldDestroyChildInstances) {
31582
+ if (shouldDestroyChildInstances === void 0) {
31583
+ shouldDestroyChildInstances = true;
31584
+ }
31585
 
31586
+ if (shouldDestroyChildInstances) {
31587
+ childTippyInstances.forEach(function (instance) {
31588
+ instance.destroy();
31589
+ });
31590
+ }
31591
 
31592
+ childTippyInstances = [];
31593
+ removeEventListeners();
31594
+ originalDestroy();
 
31595
  };
 
31596
 
31597
+ instance.enable = function () {
31598
+ originalEnable();
31599
+ childTippyInstances.forEach(function (instance) {
31600
+ return instance.enable();
31601
+ });
31602
+ disabled = false;
31603
+ };
31604
 
31605
+ instance.disable = function () {
31606
+ originalDisable();
31607
+ childTippyInstances.forEach(function (instance) {
31608
+ return instance.disable();
31609
+ });
31610
+ disabled = true;
31611
+ };
31612
 
31613
+ addEventListeners(instance);
31614
+ }
 
 
31615
 
31616
+ normalizedReturnValue.forEach(applyMutations);
31617
+ return returnValue;
31618
+ }
31619
+
31620
+ var animateFill = {
31621
+ name: 'animateFill',
31622
+ defaultValue: false,
31623
+ fn: function fn(instance) {
31624
+ var _instance$props$rende;
31625
 
31626
+ // @ts-ignore
31627
+ if (!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy)) {
31628
  if (false) {}
31629
+
31630
+ return {};
31631
  }
31632
 
31633
+ var _getChildren = getChildren(instance.popper),
31634
+ box = _getChildren.box,
31635
+ content = _getChildren.content;
31636
 
31637
+ var backdrop = instance.props.animateFill ? createBackdropElement() : null;
 
31638
  return {
31639
+ onCreate: function onCreate() {
31640
+ if (backdrop) {
31641
+ box.insertBefore(backdrop, box.firstElementChild);
31642
+ box.setAttribute('data-animatefill', '');
31643
+ box.style.overflow = 'hidden';
31644
+ instance.setProps({
31645
+ arrow: false,
31646
+ animation: 'shift-away'
31647
+ });
31648
+ }
31649
+ },
31650
+ onMount: function onMount() {
31651
+ if (backdrop) {
31652
+ var transitionDuration = box.style.transitionDuration;
31653
+ var duration = Number(transitionDuration.replace('ms', '')); // The content should fade in after the backdrop has mostly filled the
31654
+ // tooltip element. `clip-path` is the other alternative but is not
31655
+ // well-supported and is buggy on some devices.
31656
+
31657
+ content.style.transitionDelay = Math.round(duration / 10) + "ms";
31658
+ backdrop.style.transitionDuration = transitionDuration;
31659
+ setVisibilityState([backdrop], 'visible');
31660
+ }
31661
+ },
31662
+ onShow: function onShow() {
31663
+ if (backdrop) {
31664
+ backdrop.style.transitionDuration = '0ms';
31665
+ }
31666
+ },
31667
+ onHide: function onHide() {
31668
+ if (backdrop) {
31669
+ setVisibilityState([backdrop], 'hidden');
31670
+ }
31671
+ }
31672
  };
31673
+ }
31674
+ };
 
 
 
 
 
 
31675
 
31676
+ function createBackdropElement() {
31677
+ var backdrop = div();
31678
+ backdrop.className = BACKDROP_CLASS;
31679
+ setVisibilityState([backdrop], 'hidden');
31680
+ return backdrop;
31681
+ }
31682
 
31683
+ var mouseCoords = {
31684
+ clientX: 0,
31685
+ clientY: 0
31686
+ };
31687
+ var activeInstances = [];
 
 
31688
 
31689
+ function storeMouseCoords(_ref) {
31690
+ var clientX = _ref.clientX,
31691
+ clientY = _ref.clientY;
31692
+ mouseCoords = {
31693
+ clientX: clientX,
31694
+ clientY: clientY
31695
+ };
31696
+ }
31697
 
31698
+ function addMouseCoordsListener(doc) {
31699
+ doc.addEventListener('mousemove', storeMouseCoords);
31700
+ }
31701
 
31702
+ function removeMouseCoordsListener(doc) {
31703
+ doc.removeEventListener('mousemove', storeMouseCoords);
31704
+ }
 
31705
 
31706
+ var followCursor = {
31707
+ name: 'followCursor',
31708
+ defaultValue: false,
31709
+ fn: function fn(instance) {
31710
+ var reference = instance.reference;
31711
+ var doc = getOwnerDocument(instance.props.triggerTarget || reference);
31712
+ var isInternalUpdate = false;
31713
+ var wasFocusEvent = false;
31714
+ var isUnmounted = true;
31715
+ var prevProps = instance.props;
31716
 
31717
+ function getIsInitialBehavior() {
31718
+ return instance.props.followCursor === 'initial' && instance.state.isVisible;
31719
+ }
31720
 
31721
+ function addListener() {
31722
+ doc.addEventListener('mousemove', onMouseMove);
31723
+ }
 
 
 
31724
 
31725
+ function removeListener() {
31726
+ doc.removeEventListener('mousemove', onMouseMove);
31727
  }
31728
 
31729
+ function unsetGetReferenceClientRect() {
31730
+ isInternalUpdate = true;
31731
+ instance.setProps({
31732
+ getReferenceClientRect: null
31733
+ });
31734
+ isInternalUpdate = false;
31735
+ }
31736
+
31737
+ function onMouseMove(event) {
31738
+ // If the instance is interactive, avoid updating the position unless it's
31739
+ // over the reference element
31740
+ var isCursorOverReference = event.target ? reference.contains(event.target) : true;
31741
+ var followCursor = instance.props.followCursor;
31742
+ var clientX = event.clientX,
31743
+ clientY = event.clientY;
31744
+ var rect = reference.getBoundingClientRect();
31745
+ var relativeX = clientX - rect.left;
31746
+ var relativeY = clientY - rect.top;
31747
 
31748
+ if (isCursorOverReference || !instance.props.interactive) {
31749
+ instance.setProps({
31750
+ getReferenceClientRect: function getReferenceClientRect() {
31751
+ var rect = reference.getBoundingClientRect();
31752
+ var x = clientX;
31753
+ var y = clientY;
31754
 
31755
+ if (followCursor === 'initial') {
31756
+ x = rect.left + relativeX;
31757
+ y = rect.top + relativeY;
31758
+ }
31759
 
31760
+ var top = followCursor === 'horizontal' ? rect.top : y;
31761
+ var right = followCursor === 'vertical' ? rect.right : x;
31762
+ var bottom = followCursor === 'horizontal' ? rect.bottom : y;
31763
+ var left = followCursor === 'vertical' ? rect.left : x;
31764
+ return {
31765
+ width: right - left,
31766
+ height: bottom - top,
31767
+ top: top,
31768
+ right: right,
31769
+ bottom: bottom,
31770
+ left: left
31771
+ };
31772
+ }
31773
+ });
31774
+ }
31775
+ }
31776
 
31777
+ function create() {
31778
+ if (instance.props.followCursor) {
31779
+ activeInstances.push({
31780
+ instance: instance,
31781
+ doc: doc
31782
+ });
31783
+ addMouseCoordsListener(doc);
31784
+ }
31785
+ }
31786
+
31787
+ function destroy() {
31788
+ activeInstances = activeInstances.filter(function (data) {
31789
+ return data.instance !== instance;
31790
+ });
31791
+
31792
+ if (activeInstances.filter(function (data) {
31793
+ return data.doc === doc;
31794
+ }).length === 0) {
31795
+ removeMouseCoordsListener(doc);
31796
+ }
31797
  }
31798
 
31799
  return {
31800
+ onCreate: create,
31801
+ onDestroy: destroy,
31802
+ onBeforeUpdate: function onBeforeUpdate() {
31803
+ prevProps = instance.props;
31804
+ },
31805
+ onAfterUpdate: function onAfterUpdate(_, _ref2) {
31806
+ var followCursor = _ref2.followCursor;
31807
+
31808
+ if (isInternalUpdate) {
31809
+ return;
31810
+ }
31811
+
31812
+ if (followCursor !== undefined && prevProps.followCursor !== followCursor) {
31813
+ destroy();
31814
+
31815
+ if (followCursor) {
31816
+ create();
31817
+
31818
+ if (instance.state.isMounted && !wasFocusEvent && !getIsInitialBehavior()) {
31819
+ addListener();
31820
+ }
31821
+ } else {
31822
+ removeListener();
31823
+ unsetGetReferenceClientRect();
31824
+ }
31825
+ }
31826
+ },
31827
+ onMount: function onMount() {
31828
+ if (instance.props.followCursor && !wasFocusEvent) {
31829
+ if (isUnmounted) {
31830
+ onMouseMove(mouseCoords);
31831
+ isUnmounted = false;
31832
+ }
31833
+
31834
+ if (!getIsInitialBehavior()) {
31835
+ addListener();
31836
+ }
31837
+